modified entry point for XHDI routines
This commit is contained in:
@@ -29,10 +29,10 @@
|
||||
|
||||
#define DRIVER_VERSION 0x130
|
||||
|
||||
|
||||
static BPB sd_bpb[4]; /* space for four partitions on SD card */
|
||||
|
||||
static xhdi_call_fun old_vector = NULL;
|
||||
extern xhdi_call_fun xhdi_vec;
|
||||
|
||||
__attribute__((__interrupt__)) xhdi_call_fun xhdi_sd_install(xhdi_call_fun ov)
|
||||
{
|
||||
@@ -43,7 +43,7 @@ __attribute__((__interrupt__)) xhdi_call_fun xhdi_sd_install(xhdi_call_fun ov)
|
||||
"move.l %[xhdi_call],d1\n\t"
|
||||
"move.l d1,(sp)\n\t" /* FIXME: dirty overwrite of saved register on stack with return value */
|
||||
: /* output */
|
||||
: [xhdi_call]"g"(xhdi_call)
|
||||
: [xhdi_call]"g"(xhdi_vec)
|
||||
: "d1","memory");
|
||||
|
||||
*_drvbits |= (uint32_t) 1 << ('S' - 'A');
|
||||
|
||||
15
BaS_gcc/sources/xhdi_vec.S
Normal file
15
BaS_gcc/sources/xhdi_vec.S
Normal file
@@ -0,0 +1,15 @@
|
||||
//
|
||||
// XHDI entry point
|
||||
//
|
||||
.extern _xhdi_call
|
||||
.globl _xhdi_vec
|
||||
|
||||
_xhdi_vec:
|
||||
lea -12(sp),sp
|
||||
movem.l d1/a0-a1,(sp)
|
||||
pea 16(sp)
|
||||
jsr _xhdi_call
|
||||
addq.l #4,sp
|
||||
movem.l (sp),d1/a0-a1
|
||||
lea 12(sp),sp
|
||||
rts
|
||||
Reference in New Issue
Block a user