summaryrefslogtreecommitdiffstats
path: root/newlib
diff options
context:
space:
mode:
authorDJ Delorie <dj@redhat.com>2012-10-03 20:24:50 +0000
committerDJ Delorie <dj@redhat.com>2012-10-03 20:24:50 +0000
commit2b74bec6c9f968fe1889aa29f10bad9b98b23d76 (patch)
treec083cffd24d92fea6a904356ff535d6bee03e2a5 /newlib
parent13ab44c05b093f87ddd5f1d9431d07022d775e1b (diff)
downloadcygnal-2b74bec6c9f968fe1889aa29f10bad9b98b23d76.tar.gz
cygnal-2b74bec6c9f968fe1889aa29f10bad9b98b23d76.tar.bz2
cygnal-2b74bec6c9f968fe1889aa29f10bad9b98b23d76.zip
* libc/machine/rl78/setjmp.S: Convert from CPP macros to GAS
macros, to avoid dependence on the line separation character. * rl78/crt0.S (_interrupt_vector_table): Convert from CPP macros to GAS macros, to avoid dependence on the line separation character.
Diffstat (limited to 'newlib')
-rw-r--r--newlib/ChangeLog5
-rw-r--r--newlib/libc/machine/rl78/setjmp.S83
2 files changed, 54 insertions, 34 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog
index ec1290209..6e3348d20 100644
--- a/newlib/ChangeLog
+++ b/newlib/ChangeLog
@@ -1,3 +1,8 @@
+2012-10-03 DJ Delorie <dj@redhat.com>
+
+ * libc/machine/rl78/setjmp.S: Convert from CPP macros to GAS
+ macros, to avoid dependence on the line separation character.
+
2012-10-01 DJ Delorie <dj@redhat.com>
* libc/sys/sysnecv850/sbrk.c (_sbrk): Change heap_start to be an
diff --git a/newlib/libc/machine/rl78/setjmp.S b/newlib/libc/machine/rl78/setjmp.S
index 951b4ee7b..ddc60218d 100644
--- a/newlib/libc/machine/rl78/setjmp.S
+++ b/newlib/libc/machine/rl78/setjmp.S
@@ -57,8 +57,14 @@ r23 = 0xffeef
PC 4 bytes
*/
-#define SAVEB(ofs,reg) mov a,reg | mov [hl+ofs],a
-#define SAVE(ofs,reg) movw ax,reg | movw [hl+ofs],ax
+ .macro _saveb ofs,reg
+ mov a,\reg
+ mov [hl+\ofs],a
+ .endm
+ .macro _save ofs,reg
+ movw ax,\reg
+ movw [hl+\ofs],ax
+ .endm
.global _setjmp
.type _setjmp, @function
@@ -72,28 +78,28 @@ _setjmp:
movw hl, ax
pop ax
movw [hl], ax
- SAVE (2, bc)
- SAVE (4, de)
+ _save 2, bc
+ _save 4, de
pop ax
movw [hl+6], ax
- SAVE (8, r8)
- SAVE (10, r10)
- SAVE (12, r12)
- SAVE (14, r14)
- SAVE (16, r16)
- SAVE (18, r18)
- SAVE (20, r20)
- SAVE (22, r22)
+ _save 8, r8
+ _save 10, r10
+ _save 12, r12
+ _save 14, r14
+ _save 16, r16
+ _save 18, r18
+ _save 20, r20
+ _save 22, r22
;; The sp we have now includes one more pushed reg, plus $PC
movw ax, sp
addw ax, #6
movw [hl+24], ax
- SAVEB (26, es)
- SAVEB (27, cs)
- SAVE (28, [sp+2])
- SAVE (30, [sp+4])
+ _saveb 26, es
+ _saveb 27, cs
+ _save 28, [sp+2]
+ _save 30, [sp+4]
clrw ax
movw r8, ax
@@ -102,9 +108,18 @@ _setjmp:
.size _setjmp, . - _setjmp
-#define LOADB(ofs,reg) mov a,[hl+ofs] | mov reg,a
-#define LOAD(ofs,reg) movw ax,[hl+ofs] | movw reg,ax
-#define PUSH(ofs) movw ax,[hl+ofs] | push ax
+ .macro _loadb ofs,reg
+ mov a,[hl+\ofs]
+ mov \reg,a
+ .endm
+ .macro _load ofs,reg
+ movw ax,[hl+\ofs]
+ movw \reg,ax
+ .endm
+ .macro _push ofs
+ movw ax,[hl+\ofs]
+ push ax
+ .endm
.global _longjmp
.type _longjmp, @function
@@ -121,24 +136,24 @@ _longjmp:
movw ax, [hl+24]
movw sp, ax ; this is the *new* stack
- PUSH (30) ; high half of PC
- PUSH (28) ; low half of PC
- PUSH (6) ; HL
- PUSH (0) ; AX
+ _push 30 ; high half of PC
+ _push 28 ; low half of PC
+ _push 6 ; HL
+ _push 0 ; AX
- LOAD (2, bc)
- LOAD (4, de)
+ _load 2, bc
+ _load 4, de
- LOAD (10, r10)
- LOAD (12, r12)
- LOAD (14, r14)
- LOAD (16, r16)
- LOAD (18, r18)
- LOAD (20, r20)
- LOAD (22, r22)
+ _load 10, r10
+ _load 12, r12
+ _load 14, r14
+ _load 16, r16
+ _load 18, r18
+ _load 20, r20
+ _load 22, r22
- LOADB (26, es)
- LOADB (27, cs)
+ _loadb 26, es
+ _loadb 27, cs
pop ax
pop hl