diff options
author | notaz | 2011-09-06 18:22:09 +0300 |
---|---|---|
committer | notaz | 2011-09-08 00:48:27 +0300 |
commit | 1e02ad6bbd8938b39e1761f20a8ab7392e3ee7b7 (patch) | |
tree | bac660f8fe4bba202359986f1a70419515bd6e5f /arm/arm_stub.S | |
parent | fe1130691ea29cd751e975c8f09f48ac91e5216e (diff) | |
download | picogpsp-1e02ad6bbd8938b39e1761f20a8ab7392e3ee7b7.tar.gz picogpsp-1e02ad6bbd8938b39e1761f20a8ab7392e3ee7b7.tar.bz2 picogpsp-1e02ad6bbd8938b39e1761f20a8ab7392e3ee7b7.zip |
mask off arguments for write hadlers
newer gcc wants this
Diffstat (limited to 'arm/arm_stub.S')
-rw-r--r-- | arm/arm_stub.S | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/arm/arm_stub.S b/arm/arm_stub.S index cc38dd2..6a9fb6d 100644 --- a/arm/arm_stub.S +++ b/arm/arm_stub.S @@ -104,6 +104,15 @@ #define MODE_SUPERVISOR 3 +#ifdef __ARM_ARCH_7A__ + #define extract_u16(rd, rs) \ + uxth rd, rs +#else + #define extract_u16(rd, rs) \ + bic rd, rs, #0xff000000 ;\ + bic rd, rd, #0x00ff0000 +#endif + @ Will load the register set from memory into the appropriate cached registers. @ See arm_emit.h for listing explanation. @@ -535,9 +544,11 @@ execute_arm_translate: #define store_align_8() ;\ + and r1, r1, #0xff ;\ #define store_align_16() ;\ bic r0, r0, #0x01 ;\ + extract_u16(r1, r1) ;\ #define store_align_32() ;\ bic r0, r0, #0x03 ;\ |