mask off arguments for write hadlers
authornotaz <notaz@pixelinis>
Tue, 6 Sep 2011 15:22:09 +0000 (18:22 +0300)
committernotaz <notaz@pixelinis>
Wed, 7 Sep 2011 21:48:27 +0000 (00:48 +0300)
newer gcc wants this

arm/arm_stub.S

index cc38dd2..6a9fb6d 100644 (file)
 #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                                                          ;\