cpu.x86.bootstrap: don't safepoint in a safepoint

Safepointing in the signal-handler primitive causes a crash if the safepoint is guarded and the signal being handled was raised by a safepoint. Put our own RET in the subprimitive to bail out before the standard epilog gets written out. This tentatively appears to fix #349.
db4
Joe Groff 2011-11-03 20:19:01 -07:00
parent 94eb922998
commit 1bc623167f
1 changed files with 1 additions and 0 deletions

View File

@ -112,6 +112,7 @@ big-endian off
temp0 vm-reg vm-signal-handler-addr-offset [+] MOV
temp0 CALL
frame-size jit-signal-handler-epilog
0 RET
] \ signal-handler define-sub-primitive
: leaf-frame-size ( -- n ) 4 bootstrap-cells ;