drc: fix eabi alignment
authornotaz <notaz@pixelinis>
Sun, 4 Sep 2011 14:37:46 +0000 (17:37 +0300)
committernotaz <notaz@pixelinis>
Sun, 4 Sep 2011 14:37:46 +0000 (17:37 +0300)
arm/arm_stub.S

index a7271fd..cc38dd2 100644 (file)
 #define restore_flags()                                                      ;\
   msr cpsr_f, reg_flags                                                      ;\
 
+#ifdef __ARM_EABI__
+  @ must align stack
+  #define call_c_saved_regs r2, r3, r12, lr
+#else
+  #define call_c_saved_regs r3, r12, lr
+#endif
+
 @ Calls a C function - all caller save registers which are important to the
 @ dynarec and to returning from this function are saved.
 
 #define call_c_function(function)                                            ;\
-  stmdb sp!, { r3, r12, lr }                                                 ;\
+  stmdb sp!, { call_c_saved_regs }                                           ;\
   bl function                                                                ;\
-  ldmia sp!, { r3, r12, lr }                                                 ;\
+  ldmia sp!, { call_c_saved_regs }                                           ;\
 
 
 @ Update the GBA hardware (video, sound, input, etc)