drc: fix eabi alignment
[gpsp.git] / 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)