* integer registers on sparc(64) do not have an explicit size anymore, simplifies compiler code sharing between sparc32 and sparc64

+ %icc and %xcc register for sparc64

git-svn-id: trunk@36548 -
This commit is contained in:
florian 2017-06-19 21:18:09 +00:00
parent 7edc8407fc
commit c321fb35f1
13 changed files with 133 additions and 113 deletions

View File

@ -1,37 +1,37 @@
{ don't edit, this file is generated from spreg.dat } { don't edit, this file is generated from spreg.dat }
NR_NO = tregister($00000000); NR_NO = tregister($00000000);
NR_G0 = tregister($01040000); NR_G0 = tregister($01000000);
NR_G1 = tregister($01040001); NR_G1 = tregister($01000001);
NR_G2 = tregister($01040002); NR_G2 = tregister($01000002);
NR_G3 = tregister($01040003); NR_G3 = tregister($01000003);
NR_G4 = tregister($01040004); NR_G4 = tregister($01000004);
NR_G5 = tregister($01040005); NR_G5 = tregister($01000005);
NR_G6 = tregister($01040006); NR_G6 = tregister($01000006);
NR_G7 = tregister($01040007); NR_G7 = tregister($01000007);
NR_O0 = tregister($01040008); NR_O0 = tregister($01000008);
NR_O1 = tregister($01040009); NR_O1 = tregister($01000009);
NR_O2 = tregister($0104000a); NR_O2 = tregister($0100000a);
NR_O3 = tregister($0104000b); NR_O3 = tregister($0100000b);
NR_O4 = tregister($0104000c); NR_O4 = tregister($0100000c);
NR_O5 = tregister($0104000d); NR_O5 = tregister($0100000d);
NR_O6 = tregister($0104000e); NR_O6 = tregister($0100000e);
NR_O7 = tregister($0104000f); NR_O7 = tregister($0100000f);
NR_L0 = tregister($01040010); NR_L0 = tregister($01000010);
NR_L1 = tregister($01040011); NR_L1 = tregister($01000011);
NR_L2 = tregister($01040012); NR_L2 = tregister($01000012);
NR_L3 = tregister($01040013); NR_L3 = tregister($01000013);
NR_L4 = tregister($01040014); NR_L4 = tregister($01000014);
NR_L5 = tregister($01040015); NR_L5 = tregister($01000015);
NR_L6 = tregister($01040016); NR_L6 = tregister($01000016);
NR_L7 = tregister($01040017); NR_L7 = tregister($01000017);
NR_I0 = tregister($01040018); NR_I0 = tregister($01000018);
NR_I1 = tregister($01040019); NR_I1 = tregister($01000019);
NR_I2 = tregister($0104001a); NR_I2 = tregister($0100001a);
NR_I3 = tregister($0104001b); NR_I3 = tregister($0100001b);
NR_I4 = tregister($0104001c); NR_I4 = tregister($0100001c);
NR_I5 = tregister($0104001d); NR_I5 = tregister($0100001d);
NR_I6 = tregister($0104001e); NR_I6 = tregister($0100001e);
NR_I7 = tregister($0104001f); NR_I7 = tregister($0100001f);
NR_FP = tregister($0104001e); NR_FP = tregister($0104001e);
NR_SP = tregister($0104000e); NR_SP = tregister($0104000e);
NR_F0 = tregister($02060000); NR_F0 = tregister($02060000);

View File

@ -15,7 +15,6 @@
13, 13,
14, 14,
15, 15,
34,
16, 16,
17, 17,
18, 18,
@ -32,8 +31,9 @@
29, 29,
30, 30,
31, 31,
33,
32, 32,
34,
33,
35, 35,
36, 36,
37, 37,

View File

@ -1,37 +1,37 @@
{ don't edit, this file is generated from spreg.dat } { don't edit, this file is generated from spreg.dat }
NR_NO = tregister($00000000); NR_NO = tregister($00000000);
NR_G0 = tregister($01040000); NR_G0 = tregister($01000000);
NR_G1 = tregister($01040001); NR_G1 = tregister($01000001);
NR_G2 = tregister($01040002); NR_G2 = tregister($01000002);
NR_G3 = tregister($01040003); NR_G3 = tregister($01000003);
NR_G4 = tregister($01040004); NR_G4 = tregister($01000004);
NR_G5 = tregister($01040005); NR_G5 = tregister($01000005);
NR_G6 = tregister($01040006); NR_G6 = tregister($01000006);
NR_G7 = tregister($01040007); NR_G7 = tregister($01000007);
NR_O0 = tregister($01040008); NR_O0 = tregister($01000008);
NR_O1 = tregister($01040009); NR_O1 = tregister($01000009);
NR_O2 = tregister($0104000a); NR_O2 = tregister($0100000a);
NR_O3 = tregister($0104000b); NR_O3 = tregister($0100000b);
NR_O4 = tregister($0104000c); NR_O4 = tregister($0100000c);
NR_O5 = tregister($0104000d); NR_O5 = tregister($0100000d);
NR_O6 = tregister($0104000e); NR_O6 = tregister($0100000e);
NR_O7 = tregister($0104000f); NR_O7 = tregister($0100000f);
NR_L0 = tregister($01040010); NR_L0 = tregister($01000010);
NR_L1 = tregister($01040011); NR_L1 = tregister($01000011);
NR_L2 = tregister($01040012); NR_L2 = tregister($01000012);
NR_L3 = tregister($01040013); NR_L3 = tregister($01000013);
NR_L4 = tregister($01040014); NR_L4 = tregister($01000014);
NR_L5 = tregister($01040015); NR_L5 = tregister($01000015);
NR_L6 = tregister($01040016); NR_L6 = tregister($01000016);
NR_L7 = tregister($01040017); NR_L7 = tregister($01000017);
NR_I0 = tregister($01040018); NR_I0 = tregister($01000018);
NR_I1 = tregister($01040019); NR_I1 = tregister($01000019);
NR_I2 = tregister($0104001a); NR_I2 = tregister($0100001a);
NR_I3 = tregister($0104001b); NR_I3 = tregister($0100001b);
NR_I4 = tregister($0104001c); NR_I4 = tregister($0100001c);
NR_I5 = tregister($0104001d); NR_I5 = tregister($0100001d);
NR_I6 = tregister($0104001e); NR_I6 = tregister($0100001e);
NR_I7 = tregister($0104001f); NR_I7 = tregister($0100001f);
NR_FP = tregister($0104001e); NR_FP = tregister($0104001e);
NR_SP = tregister($0104000e); NR_SP = tregister($0104000e);
NR_F0 = tregister($02060000); NR_F0 = tregister($02060000);
@ -138,6 +138,8 @@ NR_PSR = tregister($05000004);
NR_TBR = tregister($05000005); NR_TBR = tregister($05000005);
NR_WIM = tregister($05000006); NR_WIM = tregister($05000006);
NR_Y = tregister($05000007); NR_Y = tregister($05000007);
NR_ICC = tregister($05000008);
NR_XCC = tregister($05000009);
NR_ASR0 = tregister($04000000); NR_ASR0 = tregister($04000000);
NR_ASR1 = tregister($04000001); NR_ASR1 = tregister($04000001);
NR_ASR2 = tregister($04000002); NR_ASR2 = tregister($04000002);

View File

@ -138,6 +138,8 @@
67, 67,
66, 66,
64, 64,
63,
62,
32, 32,
32, 32,
32, 32,

View File

@ -1,2 +1,2 @@
{ don't edit, this file is generated from spreg.dat } { don't edit, this file is generated from spreg.dat }
171 173

View File

@ -138,6 +138,8 @@ NR_PSR,
NR_TBR, NR_TBR,
NR_WIM, NR_WIM,
NR_Y, NR_Y,
NR_ICC,
NR_XCC,
NR_ASR0, NR_ASR0,
NR_ASR1, NR_ASR1,
NR_ASR2, NR_ASR2,

View File

@ -15,7 +15,6 @@
13, 13,
14, 14,
15, 15,
34,
16, 16,
17, 17,
18, 18,
@ -32,8 +31,9 @@
29, 29,
30, 30,
31, 31,
33,
32, 32,
34,
33,
35, 35,
36, 36,
37, 37,
@ -130,8 +130,6 @@
128, 128,
129, 129,
130, 130,
139,
140,
141, 141,
142, 142,
143, 143,
@ -162,6 +160,8 @@
168, 168,
169, 169,
170, 170,
171,
172,
131, 131,
132, 132,
133, 133,
@ -169,4 +169,6 @@
135, 135,
136, 136,
137, 137,
138 138,
139,
140

View File

@ -1,8 +1,6 @@
{ don't edit, this file is generated from spreg.dat } { don't edit, this file is generated from spreg.dat }
139, 141,
140, 142,
149,
150,
151, 151,
152, 152,
153, 153,
@ -11,9 +9,9 @@
156, 156,
157, 157,
158, 158,
141,
159, 159,
160, 160,
143,
161, 161,
162, 162,
163, 163,
@ -22,15 +20,17 @@
166, 166,
167, 167,
168, 168,
142,
169, 169,
170, 170,
143,
144, 144,
171,
172,
145, 145,
146, 146,
147, 147,
148, 148,
149,
150,
99, 99,
100, 100,
109, 109,
@ -148,6 +148,7 @@
30, 30,
31, 31,
32, 32,
139,
17, 17,
18, 18,
19, 19,
@ -168,5 +169,6 @@
34, 34,
136, 136,
137, 137,
140,
138, 138,
0 0

View File

@ -138,6 +138,8 @@
67, 67,
66, 66,
64, 64,
63,
62,
32, 32,
32, 32,
32, 32,

View File

@ -138,6 +138,8 @@
'%tbr', '%tbr',
'%wim', '%wim',
'%y', '%y',
'%icc',
'%xcc',
'%asr0', '%asr0',
'%asr1', '%asr1',
'%asr2', '%asr2',

View File

@ -138,6 +138,8 @@ RS_PSR = $04;
RS_TBR = $05; RS_TBR = $05;
RS_WIM = $06; RS_WIM = $06;
RS_Y = $07; RS_Y = $07;
RS_ICC = $08;
RS_XCC = $09;
RS_ASR0 = $00; RS_ASR0 = $00;
RS_ASR1 = $01; RS_ASR1 = $01;
RS_ASR2 = $02; RS_ASR2 = $02;

View File

@ -64,7 +64,7 @@ uses
{$i rspsup.inc} {$i rspsup.inc}
{ No Subregisters } { No Subregisters }
R_SUBWHOLE = R_SUBD; R_SUBWHOLE = R_SUBNONE;
{ Available Registers } { Available Registers }
{$i rspcon.inc} {$i rspcon.inc}
@ -103,7 +103,7 @@ uses
{$i rsp64sup.inc} {$i rsp64sup.inc}
{ No Subregisters } { No Subregisters }
R_SUBWHOLE = R_SUBQ; R_SUBWHOLE = R_SUBNONE;
{ Available Registers } { Available Registers }
{$i rsp64con.inc} {$i rsp64con.inc}
@ -429,9 +429,11 @@ implementation
end; end;
else else
begin begin
{$ifdef SPARC32}
if s in [OS_64,OS_S64] then if s in [OS_64,OS_S64] then
cgsize2subreg:=R_SUBQ cgsize2subreg:=R_SUBQ
else else
{$endif SPARC32}
cgsize2subreg:=R_SUBWHOLE; cgsize2subreg:=R_SUBWHOLE;
end; end;
end; end;

View File

@ -6,38 +6,38 @@
; ;
NO,$00,$00,$00,INVALID,-1,-1 NO,$00,$00,$00,INVALID,-1,-1
; Integer registers ; Integer registers
G0,$01,$04,$00,%g0,0,0 G0,$01,$00,$00,%g0,0,0
G1,$01,$04,$01,%g1,1,1 G1,$01,$00,$01,%g1,1,1
G2,$01,$04,$02,%g2,2,2 G2,$01,$00,$02,%g2,2,2
G3,$01,$04,$03,%g3,3,3 G3,$01,$00,$03,%g3,3,3
G4,$01,$04,$04,%g4,4,4 G4,$01,$00,$04,%g4,4,4
G5,$01,$04,$05,%g5,5,5 G5,$01,$00,$05,%g5,5,5
G6,$01,$04,$06,%g6,6,6 G6,$01,$00,$06,%g6,6,6
G7,$01,$04,$07,%g7,7,7 G7,$01,$00,$07,%g7,7,7
O0,$01,$04,$08,%o0,8,8 O0,$01,$00,$08,%o0,8,8
O1,$01,$04,$09,%o1,9,9 O1,$01,$00,$09,%o1,9,9
O2,$01,$04,$0a,%o2,10,10 O2,$01,$00,$0a,%o2,10,10
O3,$01,$04,$0b,%o3,11,11 O3,$01,$00,$0b,%o3,11,11
O4,$01,$04,$0c,%o4,12,12 O4,$01,$00,$0c,%o4,12,12
O5,$01,$04,$0d,%o5,13,13 O5,$01,$00,$0d,%o5,13,13
O6,$01,$04,$0e,%o6,14,14 O6,$01,$00,$0e,%o6,14,14
O7,$01,$04,$0f,%o7,15,15 O7,$01,$00,$0f,%o7,15,15
L0,$01,$04,$10,%l0,16,16 L0,$01,$00,$10,%l0,16,16
L1,$01,$04,$11,%l1,17,17 L1,$01,$00,$11,%l1,17,17
L2,$01,$04,$12,%l2,18,18 L2,$01,$00,$12,%l2,18,18
L3,$01,$04,$13,%l3,19,19 L3,$01,$00,$13,%l3,19,19
L4,$01,$04,$14,%l4,20,20 L4,$01,$00,$14,%l4,20,20
L5,$01,$04,$15,%l5,21,21 L5,$01,$00,$15,%l5,21,21
L6,$01,$04,$16,%l6,22,22 L6,$01,$00,$16,%l6,22,22
L7,$01,$04,$17,%l7,23,23 L7,$01,$00,$17,%l7,23,23
I0,$01,$04,$18,%i0,24,24 I0,$01,$00,$18,%i0,24,24
I1,$01,$04,$19,%i1,25,25 I1,$01,$00,$19,%i1,25,25
I2,$01,$04,$1a,%i2,26,26 I2,$01,$00,$1a,%i2,26,26
I3,$01,$04,$1b,%i3,27,27 I3,$01,$00,$1b,%i3,27,27
I4,$01,$04,$1c,%i4,28,28 I4,$01,$00,$1c,%i4,28,28
I5,$01,$04,$1d,%i5,29,29 I5,$01,$00,$1d,%i5,29,29
I6,$01,$04,$1e,%i6,30,30 I6,$01,$00,$1e,%i6,30,30
I7,$01,$04,$1f,%i7,31,31 I7,$01,$00,$1f,%i7,31,31
; Aliases for stackpointer (%o6) and framepointer (%i6) ; Aliases for stackpointer (%o6) and framepointer (%i6)
FP,$01,$04,$1e,%fp,30,30 FP,$01,$04,$1e,%fp,30,30
SP,$01,$04,$0e,%sp,14,14 SP,$01,$04,$0e,%sp,14,14
@ -152,6 +152,8 @@ PSR,$05,$00,$04,%psr,65,65
TBR,$05,$00,$05,%tbr,67,67 TBR,$05,$00,$05,%tbr,67,67
WIM,$05,$00,$06,%wim,66,66 WIM,$05,$00,$06,%wim,66,66
Y,$05,$00,$07,%y,64,64 Y,$05,$00,$07,%y,64,64
ICC,$05,$00,$08,%icc,63,63,SPARC64
XCC,$05,$00,$09,%xcc,62,62,SPARC64
; Ancillary State Registers ; Ancillary State Registers
ASR0,$04,$00,$00,%asr0,32,32 ASR0,$04,$00,$00,%asr0,32,32