diff options
author | Sverker Eriksson <[email protected]> | 2016-07-05 19:09:16 +0200 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2016-07-05 19:09:16 +0200 |
commit | a94f909586a7b69ba2f4539f4c40e3600cf705d2 (patch) | |
tree | dbc999e7120a41fe7acb41f6d1b4afb001318cc3 /erts/emulator/hipe/hipe_amd64_glue.S | |
parent | 04bb724a572c78d775df2ec12a1694870369c3b4 (diff) | |
parent | 520654d49d9f1c1548dc2a5800c7330001cd3064 (diff) | |
download | otp-a94f909586a7b69ba2f4539f4c40e3600cf705d2.tar.gz otp-a94f909586a7b69ba2f4539f4c40e3600cf705d2.tar.bz2 otp-a94f909586a7b69ba2f4539f4c40e3600cf705d2.zip |
Merge branch 'hipe-trap-gc/PR-1116/OTP-13724' into maint
* hipe-trap-gc/PR-1116:
hipe: Fix bug in trap frame allocation wrappers
hipe: Add assertion for gc in bif without wrapper
Diffstat (limited to 'erts/emulator/hipe/hipe_amd64_glue.S')
-rw-r--r-- | erts/emulator/hipe/hipe_amd64_glue.S | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/erts/emulator/hipe/hipe_amd64_glue.S b/erts/emulator/hipe/hipe_amd64_glue.S index b37ed3c68a..f3404888d5 100644 --- a/erts/emulator/hipe/hipe_amd64_glue.S +++ b/erts/emulator/hipe/hipe_amd64_glue.S @@ -94,6 +94,7 @@ ASYM(nbif_return): .nosave_exit: /* switch to C stack */ SWITCH_ERLANG_TO_C_QUICK + SET_GC_SAFE /* restore C callee-save registers, drop frame, return */ movq (%rsp), %rbp # kills P movq 8(%rsp), %rbx @@ -398,6 +399,7 @@ nbif_4_simple_exception: movl %eax, P_NARITY(P) # Note: narity is a 32-bit field /* find and prepare to invoke the handler */ SWITCH_ERLANG_TO_C_QUICK # The cached state is clean and need not be saved. + SET_GC_SAFE movq P, %rdi call CSYM(hipe_handle_exception) # Note: hipe_handle_exception() conses SWITCH_C_TO_ERLANG # %rsp updated by hipe_find_handler() |