pc64: fix _intrr(), avoid the linker moving _intrr() arround

This commit is contained in:
cinap_lenrek 2018-03-17 18:25:12 +01:00
parent 108063bc3a
commit 2c1415277f

View file

@ -902,10 +902,6 @@ TEXT forkret(SB), 1, $-4
BYTE $0x48; SYSRET /* SYSRETQ */ BYTE $0x48; SYSRET /* SYSRETQ */
TEXT noteret(SB), 1, $-4
CLI
JMP _intrestore
/* /*
* Interrupt/exception handling. * Interrupt/exception handling.
*/ */
@ -951,8 +947,8 @@ _intrnested:
PUSHQ SP PUSHQ SP
CALL trap(SB) CALL trap(SB)
_intrestore:
TEXT _intrr(SB), 1, $-4 TEXT _intrr(SB), 1, $-4
_intrestore:
POPQ AX POPQ AX
POPQ AX POPQ AX
@ -981,6 +977,10 @@ _iretnested:
ADDQ $40, SP ADDQ $40, SP
IRETQ IRETQ
TEXT noteret(SB), 1, $-4
CLI
JMP _intrestore
TEXT vectortable(SB), $0 TEXT vectortable(SB), $0
CALL _strayintr(SB); BYTE $0x00 /* divide error */ CALL _strayintr(SB); BYTE $0x00 /* divide error */
CALL _strayintr(SB); BYTE $0x01 /* debug exception */ CALL _strayintr(SB); BYTE $0x01 /* debug exception */