X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=pico%2Fcarthw%2Fsvp%2Fstub_arm.S;h=9d5c5fa1a9cb535955e37942b2909bc58ee678b7;hb=2dbc96b1c783a2cb147321f6131d67691d36e592;hp=d5c01bf4add6f73649975917842be0712e5ae96f;hpb=f3fe3e5ba2e5966bb08f51c9e78716ee07651058;p=picodrive.git diff --git a/pico/carthw/svp/stub_arm.S b/pico/carthw/svp/stub_arm.S index d5c01bf..9d5c5fa 100644 --- a/pico/carthw/svp/stub_arm.S +++ b/pico/carthw/svp/stub_arm.S @@ -12,14 +12,6 @@ .text .align 2 -@ externals -#define cache_flush_d_inval_i ESYM(cache_flush_d_inval_i) -#define ssp_get_iram_context ESYM(ssp_get_iram_context) -#define ssp_pm_read ESYM(ssp_pm_read) -#define ssp_pm_write ESYM(ssp_pm_write) -#define ssp_translate_block ESYM(ssp_translate_block) -#define tr_unhandled ESYM(tr_unhandled) - @ SSP_GR0, SSP_X, SSP_Y, SSP_A, @ SSP_ST, SSP_STACK, SSP_PC, SSP_P, @ SSP_PM0, SSP_PM1, SSP_PM2, SSP_XST, @@ -613,4 +605,23 @@ hle_07_036_ending2: mov r0, #0x87 b ssp_drc_next @ let the dispatcher finish this + +@ ios stuff - preserving r9 on external calls +#ifdef __MACH__ + +#define APPLE_WRAP(f) \ + f:; \ + push {r9,lr}; \ + bl _##f; \ + pop {r9,pc} + +APPLE_WRAP(cache_flush_d_inval_i) +APPLE_WRAP(ssp_get_iram_context) +APPLE_WRAP(ssp_pm_read) +APPLE_WRAP(ssp_pm_write) +APPLE_WRAP(ssp_translate_block) +APPLE_WRAP(tr_unhandled) + +#endif + @ vim:filetype=armasm