Skip to content

Commit

Permalink
Fix siglong:jmp: generation in StackVM
Browse files Browse the repository at this point in the history
  • Loading branch information
PalumboN committed Feb 24, 2022
1 parent 42902b3 commit f58e728
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 5 deletions.
7 changes: 2 additions & 5 deletions smalltalksrc/VMMaker/CoInterpreter.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -6343,13 +6343,10 @@ CoInterpreter >> siglong: aJumpBuf jmp: returnValue [
"Hack simulation of sigsetjmp/siglongjmp.
Signal the exception that simulates a longjmp back to the interpreter."
<doNotGenerate>
(aJumpBuf == reenterInterpreter
and: [returnValue ~= 2 "2 == returnToThreadSchedulingLoopVia:"]) ifTrue:
[self assert: (self isOnRumpCStack: cogit processor sp).
self assertValidExecutionPointe: instructionPointer r: framePointer s: stackPointer imbar: true line: nil].
"Restore the Registers"
cogit processor sp: (aJumpBuf properties at: #savedSP).
aJumpBuf returnValue: returnValue; signal.
super siglong: aJumpBuf jmp: returnValue

]

{ #category : #trampolines }
Expand Down
1 change: 1 addition & 0 deletions smalltalksrc/VMMaker/StackInterpreter.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -13940,6 +13940,7 @@ StackInterpreter >> shuffleArgumentsAndStoreAbsentReceiver: theReceiver [

{ #category : #'primitive support' }
StackInterpreter >> siglong: aJumpBuf jmp: returnValue [
<doNotGenerate>
^self long: aJumpBuf jmp: returnValue
]

Expand Down

0 comments on commit f58e728

Please sign in to comment.