* keep the names of X, Y and Z in assembler files, fixes issue #32150

git-svn-id: trunk@36776 -
This commit is contained in:
florian 2017-07-23 19:24:45 +00:00
parent 8c33fbbe64
commit a2e442e111
14 changed files with 89 additions and 44 deletions

1
.gitattributes vendored
View File

@ -15634,6 +15634,7 @@ tests/webtbs/tw32111.pp svneol=native#text/pascal
tests/webtbs/tw32118.pp svneol=native#text/pascal
tests/webtbs/tw3212.pp svneol=native#text/plain
tests/webtbs/tw3214.pp svneol=native#text/plain
tests/webtbs/tw32150.pp svneol=native#text/pascal
tests/webtbs/tw3216.pp svneol=native#text/plain
tests/webtbs/tw3217.pp svneol=native#text/plain
tests/webtbs/tw3222.pp svneol=native#text/plain

View File

@ -2,43 +2,47 @@
; AVR registers
;
; layout
; <name>,<type>,<value>,<stdname>,<stab idx>,<dwarf idx>
; <name>,<type>,<subreg>,<value>,<stdname>,<stab idx>,<dwarf idx>
;
NO,$00,$00,INVALID,-1,-1
NO,$00,$00,$00,INVALID,-1,-1
R0,$01,$00,r0,0,0
R1,$01,$01,r1,1,1
R2,$01,$02,r2,2,2
R3,$01,$03,r3,3,3
R4,$01,$04,r4,4,4
R5,$01,$05,r5,5,5
R6,$01,$06,r6,6,6
R7,$01,$07,r7,7,7
R8,$01,$08,r8,8,8
R9,$01,$09,r9,9,9
R10,$01,$0a,r10,10,10
R11,$01,$0b,r11,11,11
R12,$01,$0c,r12,12,12
R13,$01,$0d,r13,13,13
R14,$01,$0e,r14,14,14
R15,$01,$0f,r15,15,15
R16,$01,$10,r16,16,16
R17,$01,$11,r17,17,17
R18,$01,$12,r18,18,18
R19,$01,$13,r19,19,19
R20,$01,$14,r20,20,20
R21,$01,$15,r21,21,21
R22,$01,$16,r22,22,22
R23,$01,$17,r23,23,23
R24,$01,$18,r24,24,24
R25,$01,$19,r25,25,25
R26,$01,$1a,r26,26,26
R27,$01,$1b,r27,27,27
R28,$01,$1c,r28,28,28
R29,$01,$1d,r29,29,29
R30,$01,$1e,r30,30,30
R31,$01,$1f,r31,31,31
R0,$01,$00,$00,r0,0,0
R1,$01,$00,$01,r1,1,1
R2,$01,$00,$02,r2,2,2
R3,$01,$00,$03,r3,3,3
R4,$01,$00,$04,r4,4,4
R5,$01,$00,$05,r5,5,5
R6,$01,$00,$06,r6,6,6
R7,$01,$00,$07,r7,7,7
R8,$01,$00,$08,r8,8,8
R9,$01,$00,$09,r9,9,9
R10,$01,$00,$0a,r10,10,10
R11,$01,$00,$0b,r11,11,11
R12,$01,$00,$0c,r12,12,12
R13,$01,$00,$0d,r13,13,13
R14,$01,$00,$0e,r14,14,14
R15,$01,$00,$0f,r15,15,15
R16,$01,$00,$10,r16,16,16
R17,$01,$00,$11,r17,17,17
R18,$01,$00,$12,r18,18,18
R19,$01,$00,$13,r19,19,19
R20,$01,$00,$14,r20,20,20
R21,$01,$00,$15,r21,21,21
R22,$01,$00,$16,r22,22,22
R23,$01,$00,$17,r23,23,23
R24,$01,$00,$18,r24,24,24
R25,$01,$00,$19,r25,25,25
R26,$01,$00,$1a,r26,26,26
R27,$01,$00,$1b,r27,27,27
R28,$01,$00,$1c,r28,28,28
R29,$01,$00,$1d,r29,29,29
R30,$01,$00,$1e,r30,30,30
R31,$01,$00,$1f,r31,31,31
SREG,$05,$00,sreg,0,0
X,$01,$03,$1a,x,26,26
Y,$01,$03,$1c,y,28,28
Z,$01,$03,$1e,z,30,30
SREG,$05,$00,$00,sreg,0,0

View File

@ -71,14 +71,11 @@ Unit raavrgas;
end;
const
extraregs : array[0..8] of treg2str = (
(name: 'X'; reg : NR_R26),
extraregs : array[0..5] of treg2str = (
(name: 'XL'; reg : NR_R26),
(name: 'XH'; reg : NR_R27),
(name: 'Y'; reg : NR_R28),
(name: 'YL'; reg : NR_R28),
(name: 'YH'; reg : NR_R29),
(name: 'Z'; reg : NR_R30),
(name: 'ZL'; reg : NR_R30),
(name: 'ZH'; reg : NR_R31)
);

View File

@ -32,4 +32,7 @@ NR_R28 = tregister($0100001c);
NR_R29 = tregister($0100001d);
NR_R30 = tregister($0100001e);
NR_R31 = tregister($0100001f);
NR_X = tregister($0103001a);
NR_Y = tregister($0103001c);
NR_Z = tregister($0103001e);
NR_SREG = tregister($05000000);

View File

@ -32,4 +32,7 @@
29,
30,
31,
26,
28,
30,
0

View File

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

View File

@ -32,4 +32,7 @@ tregister($0100001c),
tregister($0100001d),
tregister($0100001e),
tregister($0100001f),
tregister($0103001a),
tregister($0103001c),
tregister($0103001e),
tregister($05000000)

View File

@ -32,4 +32,7 @@
30,
31,
32,
33
33,
34,
35,
36

View File

@ -32,4 +32,7 @@
8,
9,
10,
33
36,
33,
34,
35

View File

@ -32,4 +32,7 @@
29,
30,
31,
26,
28,
30,
0

View File

@ -32,4 +32,7 @@
'r29',
'r30',
'r31',
'x',
'y',
'z',
'sreg'

View File

@ -32,4 +32,7 @@ RS_R28 = $1c;
RS_R29 = $1d;
RS_R30 = $1e;
RS_R31 = $1f;
RS_X = $1a;
RS_Y = $1c;
RS_Z = $1e;
RS_SREG = $00;

View File

@ -13,7 +13,7 @@
**********************************************************************}
{$mode objfpc}
program mkspreg;
program mkavrreg;
const Version = '1.00';
max_regcount = 200;
@ -26,6 +26,7 @@ var s : string;
names,
regtypes,
supregs,
subregs,
numbers,
stdnames,
stabs,dwarf : array[0..max_regcount-1] of string[63];
@ -170,6 +171,8 @@ begin
readcomma;
regtypes[regcount]:=readstr;
readcomma;
subregs[regcount]:=readstr;
readcomma;
supregs[regcount]:=readstr;
readcomma;
stdnames[regcount]:=readstr;
@ -184,7 +187,7 @@ begin
writeln('Line: "',s,'"');
halt(1);
end;
numbers[regcount]:=regtypes[regcount]+'0000'+copy(supregs[regcount],2,255);
numbers[regcount]:=regtypes[regcount]+copy(subregs[regcount],2,255)+'00'+copy(supregs[regcount],2,255);
if i<length(s) then
begin
writeln('Extra chars at end of line, at line ',line);

16
tests/webtbs/tw32150.pp Normal file
View File

@ -0,0 +1,16 @@
{ %CPU=avr }
{$mode objfpc}
program intmathtest;
// Pointer to caller supplied variable in R24:R25
procedure test(out x: byte); assembler; nostackframe;
asm
movw R30, R24
st Z, R1
end;
var a8: byte;
begin
test(a8);
end.