@@ -119,13 +119,68 @@ Definition register_names :=
119119 :: ("D28", F28) :: ("D29", F29) :: ("D30", F30) :: ("D31", F31)
120120 :: nil.
121121
122+ Definition register_aliases :=
123+ ("W0", R0) :: ("W1", R1) :: ("W2", R2) :: ("W3", R3)
124+ :: ("W4", R4) :: ("W5", R5) :: ("W6", R6) :: ("W7", R7)
125+ :: ("W8", R8) :: ("W9", R9) :: ("W10", R10) :: ("W11", R11)
126+ :: ("W12", R12) :: ("W13", R13) :: ("W14", R14) :: ("W15", R15)
127+ :: ("W17", R17) :: ("W19", R19)
128+ :: ("W20", R20) :: ("W21", R21) :: ("W22", R22) :: ("W23", R23)
129+ :: ("W24", R24) :: ("W25", R25) :: ("W26", R26) :: ("W27", R27)
130+ :: ("W28", R28) :: ("W29", R29)
131+ :: ("V0", F0) :: ("V1", F1) :: ("V2", F2) :: ("V3", F3)
132+ :: ("V4", F4) :: ("V5", F5) :: ("V6", F6) :: ("V7", F7)
133+ :: ("V8", F8) :: ("V9", F9) :: ("V10", F10) :: ("V11", F11)
134+ :: ("V12", F12) :: ("V13", F13) :: ("V14", F14) :: ("V15", F15)
135+ :: ("V16", F16) :: ("V17", F17) :: ("V18", F18) :: ("V19", F19)
136+ :: ("V20", F20) :: ("V21", F21) :: ("V22", F22) :: ("V23", F23)
137+ :: ("V24", F24) :: ("V25", F25) :: ("V26", F26) :: ("V27", F27)
138+ :: ("V28", F28) :: ("V29", F29) :: ("V30", F30) :: ("V31", F31)
139+ :: ("Q0", F0) :: ("Q1", F1) :: ("Q2", F2) :: ("Q3", F3)
140+ :: ("Q4", F4) :: ("Q5", F5) :: ("Q6", F6) :: ("Q7", F7)
141+ :: ("Q8", F8) :: ("Q9", F9) :: ("Q10", F10) :: ("Q11", F11)
142+ :: ("Q12", F12) :: ("Q13", F13) :: ("Q14", F14) :: ("Q15", F15)
143+ :: ("Q16", F16) :: ("Q17", F17) :: ("Q18", F18) :: ("Q19", F19)
144+ :: ("Q20", F20) :: ("Q21", F21) :: ("Q22", F22) :: ("Q23", F23)
145+ :: ("Q24", F24) :: ("Q25", F25) :: ("Q26", F26) :: ("Q27", F27)
146+ :: ("Q28", F28) :: ("Q29", F29) :: ("Q30", F30) :: ("Q31", F31)
147+ :: ("S0", F0) :: ("S1", F1) :: ("S2", F2) :: ("S3", F3)
148+ :: ("S4", F4) :: ("S5", F5) :: ("S6", F6) :: ("S7", F7)
149+ :: ("S8", F8) :: ("S9", F9) :: ("S10", F10) :: ("S11", F11)
150+ :: ("S12", F12) :: ("S13", F13) :: ("S14", F14) :: ("S15", F15)
151+ :: ("S16", F16) :: ("S17", F17) :: ("S18", F18) :: ("S19", F19)
152+ :: ("S20", F20) :: ("S21", F21) :: ("S22", F22) :: ("S23", F23)
153+ :: ("S24", F24) :: ("S25", F25) :: ("S26", F26) :: ("S27", F27)
154+ :: ("S28", F28) :: ("S29", F29) :: ("S30", F30) :: ("S31", F31)
155+ :: ("H0", F0) :: ("H1", F1) :: ("H2", F2) :: ("H3", F3)
156+ :: ("H4", F4) :: ("H5", F5) :: ("H6", F6) :: ("H7", F7)
157+ :: ("H8", F8) :: ("H9", F9) :: ("H10", F10) :: ("H11", F11)
158+ :: ("H12", F12) :: ("H13", F13) :: ("H14", F14) :: ("H15", F15)
159+ :: ("H16", F16) :: ("H17", F17) :: ("H18", F18) :: ("H19", F19)
160+ :: ("H20", F20) :: ("H21", F21) :: ("H22", F22) :: ("H23", F23)
161+ :: ("H24", F24) :: ("H25", F25) :: ("H26", F26) :: ("H27", F27)
162+ :: ("H28", F28) :: ("H29", F29) :: ("H30", F30) :: ("H31", F31)
163+ :: ("B0", F0) :: ("B1", F1) :: ("B2", F2) :: ("B3", F3)
164+ :: ("B4", F4) :: ("B5", F5) :: ("B6", F6) :: ("B7", F7)
165+ :: ("B8", F8) :: ("B9", F9) :: ("B10", F10) :: ("B11", F11)
166+ :: ("B12", F12) :: ("B13", F13) :: ("B14", F14) :: ("B15", F15)
167+ :: ("B16", F16) :: ("B17", F17) :: ("B18", F18) :: ("B19", F19)
168+ :: ("B20", F20) :: ("B21", F21) :: ("B22", F22) :: ("B23", F23)
169+ :: ("B24", F24) :: ("B25", F25) :: ("B26", F26) :: ("B27", F27)
170+ :: ("B28", F28) :: ("B29", F29) :: ("B30", F30) :: ("B31", F31)
171+ :: nil.
172+
122173Definition register_by_name (s: string) : option mreg :=
123174 let fix assoc (l: list (string * mreg)) : option mreg :=
124175 match l with
125176 | nil => None
126177 | (s1, r1) :: l' => if string_dec s s1 then Some r1 else assoc l'
127178 end
128- in assoc register_names.
179+ in
180+ match assoc register_names with
181+ | Some res => Some res
182+ | None => assoc register_aliases
183+ end .
129184
130185(** ** Destroyed registers, preferred registers *)
131186
0 commit comments