1.1 --- a/src/sh4/ia32abi.h Mon Dec 15 10:44:56 2008 +0000
1.2 +++ b/src/sh4/ia32abi.h Sat Dec 20 03:01:40 2008 +0000
1.7 +static inline void call_func1_r32( int addr_reg, int arg1 )
1.9 + if( arg1 != R_EAX ) {
1.10 + MOV_r32_r32( arg1, R_EAX );
1.12 + CALL_r32(addr_reg);
1.15 +static inline void call_func1_r32ind( int preg, uint32_t disp32, int arg1 )
1.17 + if( arg1 != R_EAX ) {
1.18 + MOV_r32_r32( arg1, R_EAX );
1.20 + CALL_r32ind(preg, disp32);
1.23 static inline void call_func2( void *ptr, int arg1, int arg2 )
1.25 if( arg2 != R_EDX ) {
1.30 +static inline void call_func2_r32( int addr_reg, int arg1, int arg2 )
1.32 + if( arg2 != R_EDX ) {
1.33 + MOV_r32_r32( arg2, R_EDX );
1.35 + if( arg1 != R_EAX ) {
1.36 + MOV_r32_r32( arg1, R_EAX );
1.38 + CALL_r32(addr_reg);
1.41 +static inline void call_func2_r32ind( int preg, uint32_t disp32, int arg1, int arg2 )
1.43 + if( arg2 != R_EDX ) {
1.44 + MOV_r32_r32( arg2, R_EDX );
1.46 + if( arg1 != R_EAX ) {
1.47 + MOV_r32_r32( arg1, R_EAX );
1.49 + CALL_r32ind(preg, disp32);
1.54 static inline void call_func1_exc( void *ptr, int arg1, int pc )
1.56 if( arg1 != R_EAX ) {
1.57 @@ -174,12 +214,14 @@
1.60 load_ptr( R_EBP, ((uint8_t *)&sh4r) + 128 );
1.61 - SUB_imm8s_r32( 8, R_ESP );
1.63 + SUB_imm8s_r32( 4, R_ESP );
1.66 static inline void exit_block( )
1.68 - ADD_imm8s_r32( 8, R_ESP );
1.69 + ADD_imm8s_r32( 4, R_ESP );