m68k: add subregisters. on 68k, these are not as universal as on x86 and work differently, but the compiler needs this infrastructure to do 16bit math (which is a massive improvement on '000) or word-size indexes on CPUs which support it

git-svn-id: trunk@43043 -
This commit is contained in:
Károly Balogh 2019-09-20 11:35:35 +00:00
parent 912bc1e65b
commit 19a6964088
18 changed files with 546 additions and 165 deletions

2
.gitattributes vendored
View File

@ -396,6 +396,7 @@ compiler/m68k/n68kset.pas svneol=native#text/plain
compiler/m68k/r68kbss.inc svneol=native#text/plain
compiler/m68k/r68kcon.inc svneol=native#text/plain
compiler/m68k/r68kgas.inc svneol=native#text/plain
compiler/m68k/r68kgasf.inc svneol=native#text/plain
compiler/m68k/r68kgri.inc svneol=native#text/plain
compiler/m68k/r68knor.inc svneol=native#text/plain
compiler/m68k/r68knum.inc svneol=native#text/plain
@ -403,6 +404,7 @@ compiler/m68k/r68krni.inc svneol=native#text/plain
compiler/m68k/r68ksri.inc svneol=native#text/plain
compiler/m68k/r68ksta.inc svneol=native#text/plain
compiler/m68k/r68kstd.inc svneol=native#text/plain
compiler/m68k/r68kstdf.inc svneol=native#text/plain
compiler/m68k/r68ksup.inc svneol=native#text/plain
compiler/m68k/ra68k.pas svneol=native#text/plain
compiler/m68k/ra68kmot.pas svneol=native#text/plain

View File

@ -111,7 +111,7 @@ interface
with ref do
begin
basestr:=gas_regname(base);
indexstr:=gas_regname(index);
indexstr:=gas_regfullname(index);
if assigned(symbol) then
begin
@ -138,17 +138,17 @@ interface
if (base<>NR_NO) and (index<>NR_NO) then
begin
if scalefactor in [0,1] then
s:=s+'('+basestr+','+indexstr+'.l)'
s:=s+'('+basestr+','+indexstr+')'
else
s:=s+'('+basestr+','+indexstr+'.l*'+tostr(scalefactor)+')';
s:=s+'('+basestr+','+indexstr+'*'+tostr(scalefactor)+')';
exit;
end;
if (base=NR_NO) and (index<>NR_NO) then
begin
if scalefactor in [0,1] then
s:=s+'('+indexstr+'.l)'
s:=s+'('+indexstr+')'
else
s:=s+'('+indexstr+'.l*'+tostr(scalefactor)+')';
s:=s+'('+indexstr+'*'+tostr(scalefactor)+')';
exit;
end;
end;

View File

@ -116,7 +116,7 @@ unit cpubase;
{$i r68ksup.inc}
RS_SP = RS_A7;
R_SUBWHOLE = R_SUBNONE;
R_SUBWHOLE = R_SUBD;
{ Available Registers }
{$i r68kcon.inc}
@ -454,25 +454,40 @@ implementation
end;
function cgsize2subreg(regtype: tregistertype; s:Tcgsize):Tsubregister;
var p: pointer;
begin
case s of
OS_8,OS_S8:
case regtype of
R_INTREGISTER:
if (CPUM68K_HAS_BYTEWORDMATH in cpu_capabilities[current_settings.cputype]) then
case s of
OS_8,OS_S8:
cgsize2subreg:=R_SUBL;
OS_16,OS_S16:
cgsize2subreg:=R_SUBW;
OS_32,OS_S32:
cgsize2subreg:=R_SUBD;
OS_NO:
cgsize2subreg:=R_SUBNONE;
else
internalerror(2019090801);
end
else
case s of
OS_8,OS_S8,
OS_16,OS_S16,
OS_32,OS_S32:
cgsize2subreg:=R_SUBWHOLE;
OS_NO:
cgsize2subreg:=R_SUBNONE;
else
internalerror(2019090803);
end;
R_ADDRESSREGISTER:
cgsize2subreg:=R_SUBWHOLE;
OS_16,OS_S16:
cgsize2subreg:=R_SUBWHOLE;
OS_32,OS_S32:
cgsize2subreg:=R_SUBWHOLE;
OS_64,OS_S64:
cgsize2subreg:=R_SUBWHOLE;
OS_F32,OS_F64 :
R_FPUREGISTER:
cgsize2subreg:=R_SUBNONE;
OS_NO:
cgsize2subreg:=R_SUBNONE;
else
internalerror(2019090801);
internalerror(2019090802);
end;
end;

View File

@ -90,18 +90,23 @@ interface
function gas_regnum_search(const s:string):Tregister;
function gas_regname(r:Tregister):string;
function gas_regfullname(r:Tregister):string;
implementation
const
gas_regname_table : array[tregisterindex] of string[7] = (
{r386att.inc contains the AT&T name of each register.}
{r68kgas.inc contains the name of each register.}
{$i r68kgas.inc}
);
gas_regfullname_table : array[tregisterindex] of string[7] = (
{r68kgasf.inc contains the "full" name of each register.}
{$i r68kgasf.inc}
);
gas_regname_index : array[tregisterindex] of tregisterindex = (
{r386ari.inc contains an index which sorts att_regname_table by
ATT name.}
{r68kgri.inc contains an index which sorts gas_regname_table by name }
{$i r68kgri.inc}
);
@ -142,4 +147,15 @@ interface
result:='%'+generic_regname(r);
end;
function gas_regfullname(r:Tregister):string;
var
p : tregisterindex;
begin
p:=findreg_by_number(r);
if p<>0 then
result:=gas_regfullname_table[p]
else
result:='%'+generic_regname(r);
end;
end.

View File

@ -2,43 +2,67 @@
; Motorola 680x0 registers
;
; layout
; <name>,<value>,<stdname>,<gasname>,<stabidx>
; <name>,<value>,<stdname>,<gasname>,<stfullname>,<gasfullname>,<stabidx>
;
NO,$00000000,INVALID,INVALID,-1
NO,$00000000,INVALID,INVALID,INVALID,INVALID,-1
D0,$01000000,d0,%d0,0
D1,$01000001,d1,%d1,1
D2,$01000002,d2,%d2,2
D3,$01000003,d3,%d3,3
D4,$01000004,d4,%d4,4
D5,$01000005,d5,%d5,5
D6,$01000006,d6,%d6,6
D7,$01000007,d7,%d7,7
D0,$01040000,d0,%d0,d0.l,%d0.l,0
D0W,$01030000,d0,%d0,d0.w,%d0.w,0
D0B,$01010000,d0,%d0,d0.b,%d0.b,0
D1,$01040001,d1,%d1,d1.l,%d1.l,1
D1W,$01030001,d1,%d1,d1.w,%d1.w,1
D1B,$01010001,d1,%d1,d1.b,%d1.b,1
D2,$01040002,d2,%d2,d2.l,%d2.l,2
D2W,$01030002,d2,%d2,d2.w,%d2.w,2
D2B,$01010002,d2,%d2,d2.b,%d2.b,2
D3,$01040003,d3,%d3,d3.l,%d3.l,3
D3W,$01030003,d3,%d3,d3.w,%d3.w,3
D3B,$01010003,d3,%d3,d3.b,%d3.b,3
D4,$01040004,d4,%d4,d4.l,%d4.l,4
D4W,$01030004,d4,%d4,d4.w,%d4.w,4
D4B,$01010004,d4,%d4,d4.b,%d4.b,4
D5,$01040005,d5,%d5,d5.l,%d5.l,5
D5W,$01030005,d5,%d5,d5.w,%d5.w,5
D5B,$01010005,d5,%d5,d5.b,%d5.b,5
D6,$01040006,d6,%d6,d6.l,%d6.l,6
D6W,$01030006,d6,%d6,d6.w,%d6.w,6
D6B,$01010006,d6,%d6,d6.b,%d6.b,6
D7,$01040007,d7,%d7,d7.l,%d7.l,7
D7W,$01030007,d7,%d7,d7.w,%d7.w,7
D7B,$01010007,d7,%d7,d7.b,%d7.b,7
FP0,$02000000,fp0,%fp0,16
FP1,$02000001,fp1,%fp1,17
FP2,$02000002,fp2,%fp2,18
FP3,$02000003,fp3,%fp3,19
FP4,$02000004,fp4,%fp4,20
FP5,$02000005,fp5,%fp5,21
FP6,$02000006,fp6,%fp6,22
FP7,$02000007,fp7,%fp7,23
FP0,$02000000,fp0,%fp0,fp0,%fp0,16
FP1,$02000001,fp1,%fp1,fp1,%fp1,17
FP2,$02000002,fp2,%fp2,fp2,%fp2,18
FP3,$02000003,fp3,%fp3,fp3,%fp3,19
FP4,$02000004,fp4,%fp4,fp4,%fp4,20
FP5,$02000005,fp5,%fp5,fp5,%fp5,21
FP6,$02000006,fp6,%fp6,fp6,%fp6,22
FP7,$02000007,fp7,%fp7,fp7,%fp7,23
PC,$05000000,pc,%pc,24
CCR,$05000001,ccr,%ccr,0
FPCR,$05000002,fpcr,%fpcr,0
SR,$05000003,sr,%sr,0
SSP,$05000004,ssp,%ssp,0
DFC,$05000005,dfc,%dfc,0
SFC,$05000006,sfc,%sfc,0
VBR,$05000007,vbr,%vbr,0
FPSR,$05000008,fpsr,%fpsr,0
PC,$05000000,pc,%pc,pc,%pc,24
CCR,$05000001,ccr,%ccr,ccr,%ccr,0
FPCR,$05000002,fpcr,%fpcr,fpcr,%fpcr,0
SR,$05000003,sr,%sr,sr,%sr,0
SSP,$05000004,ssp,%ssp,ssp,%ssp,0
DFC,$05000005,dfc,%dfc,dfc,%dfc,0
SFC,$05000006,sfc,%sfc,sfc,%sfc,0
VBR,$05000007,vbr,%vbr,vbr,%vbr,0
FPSR,$05000008,fpsr,%fpsr,fpsr,%fpsr,0
A0,$06000000,a0,%a0,8
A1,$06000001,a1,%a1,9
A2,$06000002,a2,%a2,10
A3,$06000003,a3,%a3,11
A4,$06000004,a4,%a4,12
A5,$06000005,a5,%a5,13
A6,$06000006,a6,%a6,14
A7,$06000007,a7,%a7,15
A0,$06040000,a0,%a0,a0.l,%a0.l,8
A0W,$06030000,a0,%a0,a0.w,%a0.w,8
A1,$06040001,a1,%a1,a1.l,%a1.l,9
A1W,$06030001,a1,%a1,a1.w,%a1.w,9
A2,$06040002,a2,%a2,a2.l,%a2.l,10
A2W,$06030002,a2,%a2,a2.w,%a2.w,10
A3,$06040003,a3,%a3,a3.l,%a3.l,11
A3W,$06030003,a3,%a3,a3.w,%a3.w,11
A4,$06040004,a4,%a4,a4.l,%a4.l,12
A4W,$06030004,a4,%a4,a4.w,%a4.w,12
A5,$06040005,a5,%a5,a5.l,%a5.l,13
A5W,$06030005,a5,%a5,a5.w,%a5.w,13
A6,$06040006,a6,%a6,a6.l,%a6.l,14
A6W,$06030006,a6,%a6,a6.w,%a6.w,14
A7,$06040007,a7,%a7,a7.l,%a7.l,15
A7W,$06020007,a7,%a7,a7.w,%a7.w,15

View File

@ -1,13 +1,29 @@
{ don't edit, this file is generated from m68kreg.dat }
NR_NO = tregister($00000000);
NR_D0 = tregister($01000000);
NR_D1 = tregister($01000001);
NR_D2 = tregister($01000002);
NR_D3 = tregister($01000003);
NR_D4 = tregister($01000004);
NR_D5 = tregister($01000005);
NR_D6 = tregister($01000006);
NR_D7 = tregister($01000007);
NR_D0 = tregister($01040000);
NR_D0W = tregister($01030000);
NR_D0B = tregister($01010000);
NR_D1 = tregister($01040001);
NR_D1W = tregister($01030001);
NR_D1B = tregister($01010001);
NR_D2 = tregister($01040002);
NR_D2W = tregister($01030002);
NR_D2B = tregister($01010002);
NR_D3 = tregister($01040003);
NR_D3W = tregister($01030003);
NR_D3B = tregister($01010003);
NR_D4 = tregister($01040004);
NR_D4W = tregister($01030004);
NR_D4B = tregister($01010004);
NR_D5 = tregister($01040005);
NR_D5W = tregister($01030005);
NR_D5B = tregister($01010005);
NR_D6 = tregister($01040006);
NR_D6W = tregister($01030006);
NR_D6B = tregister($01010006);
NR_D7 = tregister($01040007);
NR_D7W = tregister($01030007);
NR_D7B = tregister($01010007);
NR_FP0 = tregister($02000000);
NR_FP1 = tregister($02000001);
NR_FP2 = tregister($02000002);
@ -25,11 +41,19 @@ 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_A7 = tregister($06000007);
NR_A0 = tregister($06040000);
NR_A0W = tregister($06030000);
NR_A1 = tregister($06040001);
NR_A1W = tregister($06030001);
NR_A2 = tregister($06040002);
NR_A2W = tregister($06030002);
NR_A3 = tregister($06040003);
NR_A3W = tregister($06030003);
NR_A4 = tregister($06040004);
NR_A4W = tregister($06030004);
NR_A5 = tregister($06040005);
NR_A5W = tregister($06030005);
NR_A6 = tregister($06040006);
NR_A6W = tregister($06030006);
NR_A7 = tregister($06040007);
NR_A7W = tregister($06020007);

View File

@ -1,12 +1,28 @@
{ don't edit, this file is generated from m68kreg.dat }
'INVALID',
'%d0',
'%d0',
'%d0',
'%d1',
'%d1',
'%d1',
'%d2',
'%d2',
'%d2',
'%d3',
'%d3',
'%d3',
'%d4',
'%d4',
'%d4',
'%d5',
'%d5',
'%d5',
'%d6',
'%d6',
'%d6',
'%d7',
'%d7',
'%d7',
'%fp0',
'%fp1',
@ -26,10 +42,18 @@
'%vbr',
'%fpsr',
'%a0',
'%a0',
'%a1',
'%a1',
'%a2',
'%a2',
'%a3',
'%a3',
'%a4',
'%a4',
'%a5',
'%a5',
'%a6',
'%a6',
'%a7',
'%a7'

View File

@ -0,0 +1,59 @@
{ don't edit, this file is generated from m68kreg.dat }
'INVALID',
'%d0.l',
'%d0.w',
'%d0.b',
'%d1.l',
'%d1.w',
'%d1.b',
'%d2.l',
'%d2.w',
'%d2.b',
'%d3.l',
'%d3.w',
'%d3.b',
'%d4.l',
'%d4.w',
'%d4.b',
'%d5.l',
'%d5.w',
'%d5.b',
'%d6.l',
'%d6.w',
'%d6.b',
'%d7.l',
'%d7.w',
'%d7.b',
'%fp0',
'%fp1',
'%fp2',
'%fp3',
'%fp4',
'%fp5',
'%fp6',
'%fp7',
'%pc',
'%ccr',
'%fpcr',
'%sr',
'%ssp',
'%dfc',
'%sfc',
'%vbr',
'%fpsr',
'%a0.l',
'%a0.w',
'%a1.l',
'%a1.w',
'%a2.l',
'%a2.w',
'%a3.l',
'%a3.w',
'%a4.l',
'%a4.w',
'%a5.l',
'%a5.w',
'%a6.l',
'%a6.w',
'%a7.l',
'%a7.w'

View File

@ -1,13 +1,21 @@
{ don't edit, this file is generated from m68kreg.dat }
26,
27,
28,
29,
30,
31,
32,
33,
18,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
34,
1,
2,
3,
@ -16,20 +24,36 @@
6,
7,
8,
22,
9,
10,
11,
12,
11,
10,
13,
14,
15,
16,
19,
25,
17,
23,
18,
19,
20,
21,
24,
23,
22,
38,
25,
26,
27,
28,
29,
30,
31,
32,
35,
41,
33,
39,
36,
37,
40,
0

View File

@ -1,2 +1,2 @@
{ don't edit, this file is generated from m68kreg.dat }
34
58

View File

@ -1,13 +1,29 @@
{ don't edit, this file is generated from m68kreg.dat }
tregister($00000000),
tregister($01000000),
tregister($01000001),
tregister($01000002),
tregister($01000003),
tregister($01000004),
tregister($01000005),
tregister($01000006),
tregister($01000007),
tregister($01040000),
tregister($01030000),
tregister($01010000),
tregister($01040001),
tregister($01030001),
tregister($01010001),
tregister($01040002),
tregister($01030002),
tregister($01010002),
tregister($01040003),
tregister($01030003),
tregister($01010003),
tregister($01040004),
tregister($01030004),
tregister($01010004),
tregister($01040005),
tregister($01030005),
tregister($01010005),
tregister($01040006),
tregister($01030006),
tregister($01010006),
tregister($01040007),
tregister($01030007),
tregister($01010007),
tregister($02000000),
tregister($02000001),
tregister($02000002),
@ -25,11 +41,19 @@ tregister($05000005),
tregister($05000006),
tregister($05000007),
tregister($05000008),
tregister($06000000),
tregister($06000001),
tregister($06000002),
tregister($06000003),
tregister($06000004),
tregister($06000005),
tregister($06000006),
tregister($06000007)
tregister($06040000),
tregister($06030000),
tregister($06040001),
tregister($06030001),
tregister($06040002),
tregister($06030002),
tregister($06040003),
tregister($06030003),
tregister($06040004),
tregister($06030004),
tregister($06040005),
tregister($06030005),
tregister($06040006),
tregister($06030006),
tregister($06040007),
tregister($06020007)

View File

@ -1,29 +1,29 @@
{ don't edit, this file is generated from m68kreg.dat }
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
2,
5,
8,
11,
14,
17,
20,
23,
1,
4,
7,
10,
13,
16,
19,
22,
25,
26,
27,
@ -32,4 +32,28 @@
30,
31,
32,
33
33,
34,
35,
36,
37,
38,
39,
40,
41,
57,
43,
45,
47,
49,
51,
53,
55,
42,
44,
46,
48,
50,
52,
54,
56

View File

@ -1,5 +1,48 @@
{ don't edit, this file is generated from m68kreg.dat }
0,
43,
42,
45,
44,
47,
46,
49,
48,
51,
50,
53,
52,
55,
54,
57,
56,
34,
1,
3,
2,
5,
4,
6,
7,
9,
8,
11,
12,
10,
13,
15,
14,
17,
16,
18,
19,
21,
20,
23,
24,
22,
38,
25,
26,
27,
28,
@ -7,29 +50,10 @@
30,
31,
32,
35,
41,
33,
18,
1,
2,
3,
4,
5,
6,
7,
8,
22,
9,
10,
11,
12,
13,
14,
15,
16,
19,
25,
17,
23,
20,
21,
24
39,
36,
37,
40

View File

@ -1,12 +1,28 @@
{ don't edit, this file is generated from m68kreg.dat }
-1,
0,
0,
0,
1,
1,
1,
2,
2,
2,
3,
3,
3,
4,
4,
4,
5,
5,
5,
6,
6,
6,
7,
7,
7,
16,
17,
@ -26,10 +42,18 @@
0,
0,
8,
8,
9,
9,
10,
10,
11,
11,
12,
12,
13,
13,
14,
14,
15,
15

View File

@ -1,12 +1,28 @@
{ don't edit, this file is generated from m68kreg.dat }
'INVALID',
'd0',
'd0',
'd0',
'd1',
'd1',
'd1',
'd2',
'd2',
'd2',
'd3',
'd3',
'd3',
'd4',
'd4',
'd4',
'd5',
'd5',
'd5',
'd6',
'd6',
'd6',
'd7',
'd7',
'd7',
'fp0',
'fp1',
@ -26,10 +42,18 @@
'vbr',
'fpsr',
'a0',
'a0',
'a1',
'a1',
'a2',
'a2',
'a3',
'a3',
'a4',
'a4',
'a5',
'a5',
'a6',
'a6',
'a7',
'a7'

View File

@ -0,0 +1,59 @@
{ don't edit, this file is generated from m68kreg.dat }
'INVALID',
'd0.l',
'd0.w',
'd0.b',
'd1.l',
'd1.w',
'd1.b',
'd2.l',
'd2.w',
'd2.b',
'd3.l',
'd3.w',
'd3.b',
'd4.l',
'd4.w',
'd4.b',
'd5.l',
'd5.w',
'd5.b',
'd6.l',
'd6.w',
'd6.b',
'd7.l',
'd7.w',
'd7.b',
'fp0',
'fp1',
'fp2',
'fp3',
'fp4',
'fp5',
'fp6',
'fp7',
'pc',
'ccr',
'fpcr',
'sr',
'ssp',
'dfc',
'sfc',
'vbr',
'fpsr',
'a0.l',
'a0.w',
'a1.l',
'a1.w',
'a2.l',
'a2.w',
'a3.l',
'a3.w',
'a4.l',
'a4.w',
'a5.l',
'a5.w',
'a6.l',
'a6.w',
'a7.l',
'a7.w'

View File

@ -1,13 +1,13 @@
{ don't edit, this file is generated from m68kreg.dat }
RS_NO = $00; { $00000000 }
RS_D0 = $00; { $01000000 }
RS_D1 = $01; { $01000001 }
RS_D2 = $02; { $01000002 }
RS_D3 = $03; { $01000003 }
RS_D4 = $04; { $01000004 }
RS_D5 = $05; { $01000005 }
RS_D6 = $06; { $01000006 }
RS_D7 = $07; { $01000007 }
RS_D0 = $00; { $01040000 }
RS_D1 = $01; { $01040001 }
RS_D2 = $02; { $01040002 }
RS_D3 = $03; { $01040003 }
RS_D4 = $04; { $01040004 }
RS_D5 = $05; { $01040005 }
RS_D6 = $06; { $01040006 }
RS_D7 = $07; { $01040007 }
RS_FP0 = $00; { $02000000 }
RS_FP1 = $01; { $02000001 }
RS_FP2 = $02; { $02000002 }
@ -25,11 +25,11 @@ RS_DFC = $05; { $05000005 }
RS_SFC = $06; { $05000006 }
RS_VBR = $07; { $05000007 }
RS_FPSR = $08; { $05000008 }
RS_A0 = $00; { $06000000 }
RS_A1 = $01; { $06000001 }
RS_A2 = $02; { $06000002 }
RS_A3 = $03; { $06000003 }
RS_A4 = $04; { $06000004 }
RS_A5 = $05; { $06000005 }
RS_A6 = $06; { $06000006 }
RS_A7 = $07; { $06000007 }
RS_A0 = $00; { $06040000 }
RS_A1 = $01; { $06040001 }
RS_A2 = $02; { $06040002 }
RS_A3 = $03; { $06040003 }
RS_A4 = $04; { $06040004 }
RS_A5 = $05; { $06040005 }
RS_A6 = $06; { $06040006 }
RS_A7 = $07; { $06040007 }

View File

@ -27,6 +27,8 @@ var s : string;
values,
stdnames,
gasnames,
stdfullnames,
gasfullnames,
stabs : array[0..max_regcount-1] of string[63];
regnumber_index,
std_regname_index,gas_regname_index : array[0..max_regcount-1] of byte;
@ -203,6 +205,10 @@ begin
readcomma;
gasnames[regcount]:=readstr;
readcomma;
stdfullnames[regcount]:=readstr;
readcomma;
gasfullnames[regcount]:=readstr;
readcomma;
stabs[regcount]:=readstr;
{ Create register number }
if values[regcount][1]<>'$' then
@ -230,7 +236,7 @@ end;
procedure write_inc_files;
var
norfile,stdfile,gasfile,supfile,
norfile,stdfile,stdffile,gasfile,gasffile,supfile,
numfile,stabfile,confile,
rnifile,srifile,grifile,
bssfile:text;
@ -243,6 +249,8 @@ begin
openinc(numfile,'r68knum.inc');
openinc(stdfile,'r68kstd.inc');
openinc(gasfile,'r68kgas.inc');
openinc(stdffile,'r68kstdf.inc');
openinc(gasffile,'r68kgasf.inc');
openinc(stabfile,'r68ksta.inc');
openinc(norfile,'r68knor.inc');
openinc(rnifile,'r68krni.inc');
@ -257,6 +265,8 @@ begin
writeln(numfile,',');
writeln(stdfile,',');
writeln(gasfile,',');
writeln(stdffile,',');
writeln(gasffile,',');
writeln(stabfile,',');
writeln(rnifile,',');
writeln(srifile,',');
@ -270,6 +280,8 @@ begin
write(numfile,'tregister(',values[i],')');
write(stdfile,'''',stdnames[i],'''');
write(gasfile,'''',gasnames[i],'''');
write(stdffile,'''',stdfullnames[i],'''');
write(gasffile,'''',gasfullnames[i],'''');
write(stabfile,stabs[i]);
write(rnifile,regnumber_index[i]);
write(srifile,std_regname_index[i]);
@ -282,6 +294,8 @@ begin
closeinc(numfile);
closeinc(stdfile);
closeinc(gasfile);
closeinc(stdffile);
closeinc(gasffile);
closeinc(stabfile);
closeinc(norfile);
closeinc(rnifile);