diff options
-rw-r--r-- | ports/ChangeLog.arm | 3 | ||||
-rw-r--r-- | ports/sysdeps/arm/__longjmp.S | 2 | ||||
-rw-r--r-- | ports/sysdeps/arm/sysdep.h | 4 |
3 files changed, 4 insertions, 5 deletions
diff --git a/ports/ChangeLog.arm b/ports/ChangeLog.arm index 8279a3e0de..2276ec5ef6 100644 --- a/ports/ChangeLog.arm +++ b/ports/ChangeLog.arm @@ -1,5 +1,8 @@ 2013-03-06 Richard Henderson <rth@redhat.com> + * sysdeps/arm/__longjmp.S (__longjmp): Use ldmia insn directly. + * sysdeps/arm/sysdep.h (LOADREGS): Remove. + * sysdeps/arm/arm-mcount.S (_mcount): Use push/pop mnemonics. * sysdeps/arm/crti.S, sysdeps/arm/crtn.S: Likewise. * sysdeps/arm/dl-tlsdesc.S: Likewise. diff --git a/ports/sysdeps/arm/__longjmp.S b/ports/sysdeps/arm/__longjmp.S index a3a2a8aecb..1d5d56bde6 100644 --- a/ports/sysdeps/arm/__longjmp.S +++ b/ports/sysdeps/arm/__longjmp.S @@ -37,7 +37,7 @@ ENTRY (__longjmp) cfi_undefined (r4) CHECK_SP (r4) #endif - LOADREGS(ia, ip!, {v1-v6, sl, fp, sp, lr}) + ldmia ip!, {v1-v6, sl, fp, sp, lr} cfi_restore (v1) cfi_restore (v2) cfi_restore (v3) diff --git a/ports/sysdeps/arm/sysdep.h b/ports/sysdeps/arm/sysdep.h index d74a32811a..5f6c3f2a45 100644 --- a/ports/sysdeps/arm/sysdep.h +++ b/ports/sysdeps/arm/sysdep.h @@ -35,8 +35,6 @@ /* APCS-32 doesn't preserve the condition codes across function call. */ #ifdef __APCS_32__ -#define LOADREGS(cond, base, reglist...)\ - ldm##cond base,reglist #ifdef __USE_BX__ #define RETINSTR(cond, reg) \ bx##cond reg @@ -49,8 +47,6 @@ mov pc, _reg #endif #else /* APCS-26 */ -#define LOADREGS(cond, base, reglist...)\ - ldm##cond base,reglist^ #define RETINSTR(cond, reg) \ mov##cond##s pc, reg #define DO_RET(_reg) \ |