mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-07 07:28:26 +02:00
* register numbers for address registers fixed
This commit is contained in:
parent
2f3f32786f
commit
2555cc8496
@ -142,14 +142,14 @@ implementation
|
||||
|
||||
constructor taicpu.op_none(op : tasmop;_size : topsize);
|
||||
begin
|
||||
inherited create(op);;
|
||||
inherited create(op);
|
||||
init(_size);
|
||||
end;
|
||||
|
||||
|
||||
constructor taicpu.op_reg(op : tasmop;_size : topsize;_op1 : tregister);
|
||||
begin
|
||||
inherited create(op);;
|
||||
inherited create(op);
|
||||
init(_size);
|
||||
ops:=1;
|
||||
loadreg(0,_op1);
|
||||
@ -158,7 +158,7 @@ implementation
|
||||
|
||||
constructor taicpu.op_const(op : tasmop;_size : topsize;_op1 : longint);
|
||||
begin
|
||||
inherited create(op);;
|
||||
inherited create(op);
|
||||
init(_size);
|
||||
ops:=1;
|
||||
loadconst(0,aword(_op1));
|
||||
@ -167,7 +167,7 @@ implementation
|
||||
|
||||
constructor taicpu.op_ref(op : tasmop;_size : topsize;_op1 : treference);
|
||||
begin
|
||||
inherited create(op);;
|
||||
inherited create(op);
|
||||
init(_size);
|
||||
ops:=1;
|
||||
loadref(0,_op1);
|
||||
@ -176,7 +176,7 @@ implementation
|
||||
|
||||
constructor taicpu.op_reg_reg(op : tasmop;_size : topsize;_op1,_op2 : tregister);
|
||||
begin
|
||||
inherited create(op);;
|
||||
inherited create(op);
|
||||
init(_size);
|
||||
ops:=2;
|
||||
loadreg(0,_op1);
|
||||
@ -186,7 +186,7 @@ implementation
|
||||
|
||||
constructor taicpu.op_reg_const(op:tasmop; _size: topsize; _op1: tregister; _op2: longint);
|
||||
begin
|
||||
inherited create(op);;
|
||||
inherited create(op);
|
||||
init(_size);
|
||||
ops:=2;
|
||||
loadreg(0,_op1);
|
||||
@ -196,7 +196,7 @@ implementation
|
||||
|
||||
constructor taicpu.op_reg_ref(op : tasmop;_size : topsize;_op1 : tregister;_op2 : treference);
|
||||
begin
|
||||
inherited create(op);;
|
||||
inherited create(op);
|
||||
init(_size);
|
||||
ops:=2;
|
||||
loadreg(0,_op1);
|
||||
@ -206,7 +206,7 @@ implementation
|
||||
|
||||
constructor taicpu.op_const_reg(op : tasmop;_size : topsize;_op1 : longint;_op2 : tregister);
|
||||
begin
|
||||
inherited create(op);;
|
||||
inherited create(op);
|
||||
init(_size);
|
||||
ops:=2;
|
||||
loadconst(0,aword(_op1));
|
||||
@ -216,7 +216,7 @@ implementation
|
||||
|
||||
constructor taicpu.op_const_const(op : tasmop;_size : topsize;_op1,_op2 : longint);
|
||||
begin
|
||||
inherited create(op);;
|
||||
inherited create(op);
|
||||
init(_size);
|
||||
ops:=2;
|
||||
loadconst(0,aword(_op1));
|
||||
@ -226,7 +226,7 @@ implementation
|
||||
|
||||
constructor taicpu.op_const_ref(op : tasmop;_size : topsize;_op1 : longint;_op2 : treference);
|
||||
begin
|
||||
inherited create(op);;
|
||||
inherited create(op);
|
||||
init(_size);
|
||||
ops:=2;
|
||||
loadconst(0,aword(_op1));
|
||||
@ -236,7 +236,7 @@ implementation
|
||||
|
||||
constructor taicpu.op_ref_reg(op : tasmop;_size : topsize;_op1 : treference;_op2 : tregister);
|
||||
begin
|
||||
inherited create(op);;
|
||||
inherited create(op);
|
||||
init(_size);
|
||||
ops:=2;
|
||||
loadref(0,_op1);
|
||||
@ -246,7 +246,7 @@ implementation
|
||||
|
||||
constructor taicpu.op_ref_ref(op : tasmop;_size : topsize;_op1,_op2 : treference);
|
||||
begin
|
||||
inherited create(op);;
|
||||
inherited create(op);
|
||||
init(_size);
|
||||
ops:=2;
|
||||
loadref(0,_op1);
|
||||
@ -256,7 +256,7 @@ implementation
|
||||
|
||||
constructor taicpu.op_reg_reg_reg(op : tasmop;_size : topsize;_op1,_op2,_op3 : tregister);
|
||||
begin
|
||||
inherited create(op);;
|
||||
inherited create(op);
|
||||
init(_size);
|
||||
ops:=3;
|
||||
loadreg(0,_op1);
|
||||
@ -266,7 +266,7 @@ implementation
|
||||
|
||||
constructor taicpu.op_const_reg_reg(op : tasmop;_size : topsize;_op1 : longint;_op2 : tregister;_op3 : tregister);
|
||||
begin
|
||||
inherited create(op);;
|
||||
inherited create(op);
|
||||
init(_size);
|
||||
ops:=3;
|
||||
loadconst(0,aword(_op1));
|
||||
@ -276,7 +276,7 @@ implementation
|
||||
|
||||
constructor taicpu.op_reg_reg_ref(op : tasmop;_size : topsize;_op1,_op2 : tregister;_op3 : treference);
|
||||
begin
|
||||
inherited create(op);;
|
||||
inherited create(op);
|
||||
init(_size);
|
||||
ops:=3;
|
||||
loadreg(0,_op1);
|
||||
@ -287,7 +287,7 @@ implementation
|
||||
|
||||
constructor taicpu.op_const_ref_reg(op : tasmop;_size : topsize;_op1 : longint;_op2 : treference;_op3 : tregister);
|
||||
begin
|
||||
inherited create(op);;
|
||||
inherited create(op);
|
||||
init(_size);
|
||||
ops:=3;
|
||||
loadconst(0,aword(_op1));
|
||||
@ -298,7 +298,7 @@ implementation
|
||||
|
||||
constructor taicpu.op_const_reg_ref(op : tasmop;_size : topsize;_op1 : longint;_op2 : tregister;_op3 : treference);
|
||||
begin
|
||||
inherited create(op);;
|
||||
inherited create(op);
|
||||
init(_size);
|
||||
ops:=3;
|
||||
loadconst(0,aword(_op1));
|
||||
@ -309,7 +309,7 @@ implementation
|
||||
|
||||
constructor taicpu.op_ref_regset(op: tasmop; _size : topsize; _op1: treference;const _op2: tcpuregisterset);
|
||||
Begin
|
||||
inherited create(op);;
|
||||
inherited create(op);
|
||||
init(_size);
|
||||
ops:=2;
|
||||
loadref(0,_op1);
|
||||
@ -318,7 +318,7 @@ implementation
|
||||
|
||||
constructor taicpu.op_regset_ref(op: tasmop; _size : topsize;const _op1: tcpuregisterset; _op2: treference);
|
||||
Begin
|
||||
inherited create(op);;
|
||||
inherited create(op);
|
||||
init(_size);
|
||||
ops:=2;
|
||||
loadregset(0,_op1);
|
||||
@ -329,7 +329,7 @@ implementation
|
||||
|
||||
constructor taicpu.op_reg_regset(op: tasmop; _size : topsize; _op1: tregister;const _op2: tcpuregisterset);
|
||||
Begin
|
||||
inherited create(op);;
|
||||
inherited create(op);
|
||||
init(_size);
|
||||
ops:=2;
|
||||
loadreg(0,_op1);
|
||||
@ -339,7 +339,7 @@ implementation
|
||||
|
||||
constructor taicpu.op_regset_reg(op: tasmop; _size : topsize;const _op1: tcpuregisterset; _op2: tregister);
|
||||
Begin
|
||||
inherited create(op);;
|
||||
inherited create(op);
|
||||
init(_size);
|
||||
ops:=2;
|
||||
loadregset(0,_op1);
|
||||
@ -349,7 +349,7 @@ implementation
|
||||
|
||||
constructor taicpu.op_sym(op : tasmop;_size : topsize;_op1 : tasmsymbol);
|
||||
begin
|
||||
inherited create(op);;
|
||||
inherited create(op);
|
||||
init(_size);
|
||||
ops:=1;
|
||||
loadsymbol(0,_op1,0);
|
||||
@ -386,7 +386,7 @@ implementation
|
||||
|
||||
constructor taicpu.op_sym_ofs_reg(op : tasmop;_size : topsize;_op1 : tasmsymbol;_op1ofs:longint;_op2 : tregister);
|
||||
begin
|
||||
inherited create(op);;
|
||||
inherited create(op);
|
||||
init(_size);
|
||||
ops:=2;
|
||||
if ((op >= A_DBCC) and (op <= A_DBF))
|
||||
@ -426,7 +426,10 @@ implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.10 2004-01-30 12:17:18 florian
|
||||
Revision 1.11 2004-05-06 22:01:54 florian
|
||||
* register numbers for address registers fixed
|
||||
|
||||
Revision 1.10 2004/01/30 12:17:18 florian
|
||||
* fixed some m68k compilation problems
|
||||
|
||||
Revision 1.9 2003/06/14 14:53:50 jonas
|
||||
|
@ -1100,6 +1100,7 @@ unit cgcpu;
|
||||
tosave : tcpuregisterset;
|
||||
ref : treference;
|
||||
begin
|
||||
{!!!!!
|
||||
tosave:=std_saved_registers;
|
||||
{ only save the registers which are not used and must be saved }
|
||||
tosave:=tosave*(rg[R_INTREGISTER].used_in_proc+rg[R_ADDRESSREGISTER].used_in_proc);
|
||||
@ -1107,6 +1108,7 @@ unit cgcpu;
|
||||
ref.direction:=dir_dec;
|
||||
if tosave<>[] then
|
||||
list.concat(taicpu.op_regset_ref(A_MOVEM,S_L,tosave,ref));
|
||||
}
|
||||
end;
|
||||
|
||||
|
||||
@ -1116,6 +1118,7 @@ unit cgcpu;
|
||||
r:Tregister;
|
||||
ref : treference;
|
||||
begin
|
||||
{!!!!!!!!
|
||||
torestore:=std_saved_registers;
|
||||
{ should be intersected with used regs, no ? }
|
||||
torestore:=torestore*(rg[R_INTREGISTER].used_in_proc+rg[R_ADDRESSREGISTER].used_in_proc);
|
||||
@ -1123,6 +1126,7 @@ unit cgcpu;
|
||||
ref.direction:=dir_inc;
|
||||
if torestore<>[] then
|
||||
list.concat(taicpu.op_ref_regset(A_MOVEM,S_L,ref,torestore));
|
||||
}
|
||||
end;
|
||||
|
||||
|
||||
@ -1309,7 +1313,10 @@ end.
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.25 2004-05-06 20:30:51 florian
|
||||
Revision 1.26 2004-05-06 22:01:54 florian
|
||||
* register numbers for address registers fixed
|
||||
|
||||
Revision 1.25 2004/05/06 20:30:51 florian
|
||||
* m68k compiler compilation fixed
|
||||
|
||||
Revision 1.24 2004/04/19 21:15:12 florian
|
||||
|
@ -368,7 +368,8 @@ unit cpubase;
|
||||
This value can be deduced from CALLED_USED_REGISTERS array in the
|
||||
GCC source.
|
||||
}
|
||||
std_saved_registers = [RS_D2..RS_D7,RS_A2..RS_A5];
|
||||
std_saved_intregisters = [RS_D2..RS_D7];
|
||||
std_saved_addrregisters = [RS_A2..RS_A5];
|
||||
{# Required parameter alignment when calling a routine declared as
|
||||
stdcall and cdecl. The alignment value should be the one defined
|
||||
by GCC or the target ABI.
|
||||
@ -513,7 +514,10 @@ implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.27 2004-05-06 20:30:51 florian
|
||||
Revision 1.28 2004-05-06 22:01:54 florian
|
||||
* register numbers for address registers fixed
|
||||
|
||||
Revision 1.27 2004/05/06 20:30:51 florian
|
||||
* m68k compiler compilation fixed
|
||||
|
||||
Revision 1.26 2004/04/25 21:26:16 florian
|
||||
|
@ -16,14 +16,6 @@ D4,$01,$04,d4,%d4,4
|
||||
D5,$01,$05,d5,%d5,5
|
||||
D6,$01,$06,d6,%d6,6
|
||||
D7,$01,$07,d7,%d7,7
|
||||
A0,$01,$08,a0,%a0,8
|
||||
A1,$01,$09,a1,%a1,9
|
||||
A2,$01,$0a,a2,%a2,10
|
||||
A3,$01,$0b,a3,%a3,11
|
||||
A4,$01,$0c,a4,%a4,12
|
||||
A5,$01,$0d,a5,%a5,13
|
||||
A6,$01,$0e,a6,%a6,14
|
||||
SP,$01,$0f,sp,%sp,15
|
||||
|
||||
FP0,$02,$00,fp0,%fp0,16
|
||||
FP1,$02,$01,fp1,%fp1,17
|
||||
@ -44,9 +36,21 @@ SFC,$05,$06,sfc,%sfc,0
|
||||
VBR,$05,$07,vbr,%vbr,0
|
||||
FPSR,$05,$08,fpsr,%fpsr,0
|
||||
|
||||
A0,$06,$00,a0,%a0,8
|
||||
A1,$06,$01,a1,%a1,9
|
||||
A2,$06,$02,a2,%a2,10
|
||||
A3,$06,$03,a3,%a3,11
|
||||
A4,$06,$04,a4,%a4,12
|
||||
A5,$06,$05,a5,%a5,13
|
||||
A6,$06,$06,a6,%a6,14
|
||||
SP,$06,$07,sp,%sp,15
|
||||
|
||||
;
|
||||
; $Log$
|
||||
; Revision 1.3 2004-04-26 11:05:28 florian
|
||||
; Revision 1.4 2004-05-06 22:01:54 florian
|
||||
; * register numbers for address registers fixed
|
||||
;
|
||||
; Revision 1.3 2004/04/26 11:05:28 florian
|
||||
; + gas registers
|
||||
;
|
||||
; Revision 1.2 2004/04/25 21:26:16 florian
|
||||
|
@ -8,14 +8,6 @@ NR_D4 = tregister($01000004);
|
||||
NR_D5 = tregister($01000005);
|
||||
NR_D6 = tregister($01000006);
|
||||
NR_D7 = tregister($01000007);
|
||||
NR_A0 = tregister($01000008);
|
||||
NR_A1 = tregister($01000009);
|
||||
NR_A2 = tregister($0100000a);
|
||||
NR_A3 = tregister($0100000b);
|
||||
NR_A4 = tregister($0100000c);
|
||||
NR_A5 = tregister($0100000d);
|
||||
NR_A6 = tregister($0100000e);
|
||||
NR_SP = tregister($0100000f);
|
||||
NR_FP0 = tregister($02000000);
|
||||
NR_FP1 = tregister($02000001);
|
||||
NR_FP2 = tregister($02000002);
|
||||
@ -33,3 +25,11 @@ NR_DFC = tregister($05000005);
|
||||
NR_SFC = tregister($05000006);
|
||||
NR_VBR = tregister($05000007);
|
||||
NR_FPSR = tregister($05000008);
|
||||
NR_A0 = tregister($06000000);
|
||||
NR_A1 = tregister($06000001);
|
||||
NR_A2 = tregister($06000002);
|
||||
NR_A3 = tregister($06000003);
|
||||
NR_A4 = tregister($06000004);
|
||||
NR_A5 = tregister($06000005);
|
||||
NR_A6 = tregister($06000006);
|
||||
NR_SP = tregister($06000007);
|
||||
|
@ -8,14 +8,6 @@
|
||||
'%d5',
|
||||
'%d6',
|
||||
'%d7',
|
||||
'%a0',
|
||||
'%a1',
|
||||
'%a2',
|
||||
'%a3',
|
||||
'%a4',
|
||||
'%a5',
|
||||
'%a6',
|
||||
'%sp',
|
||||
'%fp0',
|
||||
'%fp1',
|
||||
'%fp2',
|
||||
@ -32,4 +24,12 @@
|
||||
'%dfc',
|
||||
'%sfc',
|
||||
'%vbr',
|
||||
'%fpsr'
|
||||
'%fpsr',
|
||||
'%a0',
|
||||
'%a1',
|
||||
'%a2',
|
||||
'%a3',
|
||||
'%a4',
|
||||
'%a5',
|
||||
'%a6',
|
||||
'%sp'
|
||||
|
@ -1,12 +1,12 @@
|
||||
{ don't edit, this file is generated from m68kreg.dat }
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
14,
|
||||
15,
|
||||
26,
|
||||
27,
|
||||
28,
|
||||
29,
|
||||
30,
|
||||
31,
|
||||
32,
|
||||
18,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
@ -15,21 +15,21 @@
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
30,
|
||||
17,
|
||||
18,
|
||||
22,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
14,
|
||||
15,
|
||||
16,
|
||||
19,
|
||||
25,
|
||||
17,
|
||||
23,
|
||||
33,
|
||||
20,
|
||||
21,
|
||||
22,
|
||||
23,
|
||||
24,
|
||||
27,
|
||||
33,
|
||||
25,
|
||||
31,
|
||||
16,
|
||||
28,
|
||||
29,
|
||||
32,
|
||||
0
|
||||
|
@ -8,14 +8,6 @@ tregister($01000004),
|
||||
tregister($01000005),
|
||||
tregister($01000006),
|
||||
tregister($01000007),
|
||||
tregister($01000008),
|
||||
tregister($01000009),
|
||||
tregister($0100000a),
|
||||
tregister($0100000b),
|
||||
tregister($0100000c),
|
||||
tregister($0100000d),
|
||||
tregister($0100000e),
|
||||
tregister($0100000f),
|
||||
tregister($02000000),
|
||||
tregister($02000001),
|
||||
tregister($02000002),
|
||||
@ -32,4 +24,12 @@ tregister($05000004),
|
||||
tregister($05000005),
|
||||
tregister($05000006),
|
||||
tregister($05000007),
|
||||
tregister($05000008)
|
||||
tregister($05000008),
|
||||
tregister($06000000),
|
||||
tregister($06000001),
|
||||
tregister($06000002),
|
||||
tregister($06000003),
|
||||
tregister($06000004),
|
||||
tregister($06000005),
|
||||
tregister($06000006),
|
||||
tregister($06000007)
|
||||
|
@ -1,13 +1,13 @@
|
||||
{ don't edit, this file is generated from m68kreg.dat }
|
||||
0,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
14,
|
||||
15,
|
||||
26,
|
||||
27,
|
||||
28,
|
||||
29,
|
||||
30,
|
||||
31,
|
||||
32,
|
||||
18,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
@ -16,20 +16,20 @@
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
30,
|
||||
17,
|
||||
18,
|
||||
22,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
14,
|
||||
15,
|
||||
16,
|
||||
19,
|
||||
25,
|
||||
17,
|
||||
23,
|
||||
33,
|
||||
20,
|
||||
21,
|
||||
22,
|
||||
23,
|
||||
24,
|
||||
27,
|
||||
33,
|
||||
25,
|
||||
31,
|
||||
16,
|
||||
28,
|
||||
29,
|
||||
32
|
||||
24
|
||||
|
@ -8,14 +8,6 @@
|
||||
5,
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
14,
|
||||
15,
|
||||
16,
|
||||
17,
|
||||
18,
|
||||
@ -32,4 +24,12 @@
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
0,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
14,
|
||||
15
|
||||
|
@ -8,14 +8,6 @@
|
||||
'd5',
|
||||
'd6',
|
||||
'd7',
|
||||
'a0',
|
||||
'a1',
|
||||
'a2',
|
||||
'a3',
|
||||
'a4',
|
||||
'a5',
|
||||
'a6',
|
||||
'sp',
|
||||
'fp0',
|
||||
'fp1',
|
||||
'fp2',
|
||||
@ -32,4 +24,12 @@
|
||||
'dfc',
|
||||
'sfc',
|
||||
'vbr',
|
||||
'fpsr'
|
||||
'fpsr',
|
||||
'a0',
|
||||
'a1',
|
||||
'a2',
|
||||
'a3',
|
||||
'a4',
|
||||
'a5',
|
||||
'a6',
|
||||
'sp'
|
||||
|
@ -8,14 +8,6 @@ RS_D4 = $04;
|
||||
RS_D5 = $05;
|
||||
RS_D6 = $06;
|
||||
RS_D7 = $07;
|
||||
RS_A0 = $08;
|
||||
RS_A1 = $09;
|
||||
RS_A2 = $0a;
|
||||
RS_A3 = $0b;
|
||||
RS_A4 = $0c;
|
||||
RS_A5 = $0d;
|
||||
RS_A6 = $0e;
|
||||
RS_SP = $0f;
|
||||
RS_FP0 = $00;
|
||||
RS_FP1 = $01;
|
||||
RS_FP2 = $02;
|
||||
@ -33,3 +25,11 @@ RS_DFC = $05;
|
||||
RS_SFC = $06;
|
||||
RS_VBR = $07;
|
||||
RS_FPSR = $08;
|
||||
RS_A0 = $00;
|
||||
RS_A1 = $01;
|
||||
RS_A2 = $02;
|
||||
RS_A3 = $03;
|
||||
RS_A4 = $04;
|
||||
RS_A5 = $05;
|
||||
RS_A6 = $06;
|
||||
RS_SP = $07;
|
||||
|
Loading…
Reference in New Issue
Block a user