* made (X|W)ZR and (W)SP separate registers, because a number of

instructions can use either depending on the encoding

git-svn-id: trunk@29831 -
This commit is contained in:
Jonas Maebe 2015-02-23 22:48:21 +00:00
parent e8c9b94147
commit f1b619a942
11 changed files with 250 additions and 231 deletions

View File

@ -70,6 +70,11 @@ W30,$01,$04,$1E,w30,30,30
X30,$01,$05,$1E,x30,30,30
WZR,$01,$04,$1F,wzr,31,31
XZR,$01,$05,$1F,xzr,31,31
; sp and zr share the same register number, but we still have to be able to
; differentiate them because some instructions can be encoded with both ->
; use a different superregister after all
WSP,$01,$04,$20,wsp,31,31
SP,$01,$05,$20,sp,31,31
; vfp registers

View File

@ -75,7 +75,9 @@ unit cpubase;
{ Integer Super registers first and last }
first_int_supreg = RS_X0;
first_int_imreg = $20;
{ xzr and sp take up a separate super register because some instructions
are ambiguous otherwise }
first_int_imreg = $21;
{ Integer Super registers first and last }
first_fpu_supreg = RS_S0;
@ -232,10 +234,6 @@ unit cpubase;
Generic Register names
*****************************************************************************}
NR_SP = NR_XZR;
RS_SP = RS_XZR;
NR_WSP = NR_WZR;
RS_WSP = RS_WZR;
{ Stack pointer register }
NR_STACK_POINTER_REG = NR_SP;

View File

@ -64,6 +64,8 @@ NR_W30 = tregister($0104001E);
NR_X30 = tregister($0105001E);
NR_WZR = tregister($0104001F);
NR_XZR = tregister($0105001F);
NR_WSP = tregister($01040020);
NR_SP = tregister($01050020);
NR_B0 = tregister($04010000);
NR_H0 = tregister($04030000);
NR_S0 = tregister($04090000);

View File

@ -64,6 +64,8 @@
30,
31,
31,
31,
31,
0,
0,
0,

View File

@ -1,2 +1,2 @@
{ don't edit, this file is generated from a64reg.dat }
226
228

View File

@ -64,6 +64,8 @@ tregister($0104001E),
tregister($0105001E),
tregister($0104001F),
tregister($0105001F),
tregister($01040020),
tregister($01050020),
tregister($04010000),
tregister($04030000),
tregister($04090000),

View File

@ -32,6 +32,7 @@
59,
61,
63,
65,
2,
4,
6,
@ -64,102 +65,7 @@
60,
62,
64,
65,
70,
75,
80,
85,
90,
95,
100,
105,
110,
115,
120,
125,
130,
135,
140,
145,
150,
155,
160,
165,
170,
175,
180,
185,
190,
195,
200,
205,
210,
215,
220,
66,
71,
76,
81,
86,
91,
96,
101,
106,
111,
116,
121,
126,
131,
136,
141,
146,
151,
156,
161,
166,
171,
176,
181,
186,
191,
196,
201,
206,
211,
216,
221,
69,
74,
79,
84,
89,
94,
99,
104,
109,
114,
119,
124,
129,
134,
139,
144,
149,
154,
159,
164,
169,
174,
179,
184,
189,
194,
199,
204,
209,
214,
219,
224,
67,
72,
77,
@ -224,4 +130,100 @@
213,
218,
223,
225
71,
76,
81,
86,
91,
96,
101,
106,
111,
116,
121,
126,
131,
136,
141,
146,
151,
156,
161,
166,
171,
176,
181,
186,
191,
196,
201,
206,
211,
216,
221,
226,
69,
74,
79,
84,
89,
94,
99,
104,
109,
114,
119,
124,
129,
134,
139,
144,
149,
154,
159,
164,
169,
174,
179,
184,
189,
194,
199,
204,
209,
214,
219,
224,
70,
75,
80,
85,
90,
95,
100,
105,
110,
115,
120,
125,
130,
135,
140,
145,
150,
155,
160,
165,
170,
175,
180,
185,
190,
195,
200,
205,
210,
215,
220,
225,
227

View File

@ -1,134 +1,5 @@
{ don't edit, this file is generated from a64reg.dat }
0,
65,
70,
115,
120,
125,
130,
135,
140,
145,
150,
155,
160,
75,
165,
170,
175,
180,
185,
190,
195,
200,
205,
210,
80,
215,
220,
85,
90,
95,
100,
105,
110,
68,
73,
118,
123,
128,
133,
138,
143,
148,
153,
158,
163,
78,
168,
173,
178,
183,
188,
193,
198,
203,
208,
213,
83,
218,
223,
88,
93,
98,
103,
108,
113,
66,
71,
116,
121,
126,
131,
136,
141,
146,
151,
156,
161,
76,
166,
171,
176,
181,
186,
191,
196,
201,
206,
211,
81,
216,
221,
86,
91,
96,
101,
106,
111,
225,
69,
74,
119,
124,
129,
134,
139,
144,
149,
154,
159,
164,
79,
169,
174,
179,
184,
189,
194,
199,
204,
209,
214,
84,
219,
224,
89,
94,
99,
104,
109,
114,
67,
72,
117,
@ -161,6 +32,136 @@
102,
107,
112,
70,
75,
120,
125,
130,
135,
140,
145,
150,
155,
160,
165,
80,
170,
175,
180,
185,
190,
195,
200,
205,
210,
215,
85,
220,
225,
90,
95,
100,
105,
110,
115,
68,
73,
118,
123,
128,
133,
138,
143,
148,
153,
158,
163,
78,
168,
173,
178,
183,
188,
193,
198,
203,
208,
213,
83,
218,
223,
88,
93,
98,
103,
108,
113,
227,
71,
76,
121,
126,
131,
136,
141,
146,
151,
156,
161,
166,
81,
171,
176,
181,
186,
191,
196,
201,
206,
211,
216,
86,
221,
226,
91,
96,
101,
106,
111,
116,
69,
74,
119,
124,
129,
134,
139,
144,
149,
154,
159,
164,
79,
169,
174,
179,
184,
189,
194,
199,
204,
209,
214,
84,
219,
224,
89,
94,
99,
104,
109,
114,
66,
1,
3,
21,
@ -192,6 +193,7 @@
15,
17,
19,
65,
63,
2,
4,

View File

@ -64,6 +64,8 @@
30,
31,
31,
31,
31,
0,
0,
0,

View File

@ -64,6 +64,8 @@
'x30',
'wzr',
'xzr',
'wsp',
'sp',
'b0',
'h0',
's0',

View File

@ -64,6 +64,8 @@ RS_W30 = $1E;
RS_X30 = $1E;
RS_WZR = $1F;
RS_XZR = $1F;
RS_WSP = $20;
RS_SP = $20;
RS_B0 = $00;
RS_H0 = $00;
RS_S0 = $00;