diff options
author | Sverker Eriksson <[email protected]> | 2011-11-09 21:07:55 +0100 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2011-11-09 21:07:55 +0100 |
commit | a4b82870313b04a51cc2d71f6d5a420b386cec68 (patch) | |
tree | 2368147f9b260058dd49ea5e587b603548f1e2d0 /erts/emulator/beam/erl_gc.c | |
parent | d82c450402b4fe030befc28cc77e3bc2c07001c1 (diff) | |
parent | 79e5d78244143e0c891f87e9971c9598c4cdea4c (diff) | |
download | otp-a4b82870313b04a51cc2d71f6d5a420b386cec68.tar.gz otp-a4b82870313b04a51cc2d71f6d5a420b386cec68.tar.bz2 otp-a4b82870313b04a51cc2d71f6d5a420b386cec68.zip |
Merge branch 'sverk/bif-args/OTP-9662'
* sverk/bif-args/OTP-9662:
erts,hipe: Limited support for hipe cross compilation
erts-hipe: Change THE_NON_VALUE for HiPE enabled debug emulator
erts-hipe: Enable debug compiled hipe-VM with lock checker
erts-hipe: Rename fail_bif_interface_0 to standard_bif_interface_0
erts-hipe: Deliberate leak of native fun entries
erts-hipe: Fix new trap conventions for x86, amd64 and ppc
Store the trap address in p->i
Store the trap arguments in the X register array
erts-hipe: Make some primops use new BIF calling convention
erts-hipe: Adapt generated BIF wrappers for new calling convention
erts-hipe: Remove obscuring macros in generated assembler code
erts-hipe: Make hipe enabled emulator compile with new BIF calls
Simplify the instructions for calling BIFs
Change the calling convention for BIFs
Use the proper macros in all BIFs
Conflicts:
erts/emulator/beam/bif.h
erts/emulator/beam/erl_bif_info.c
Diffstat (limited to 'erts/emulator/beam/erl_gc.c')
-rw-r--r-- | erts/emulator/beam/erl_gc.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/erts/emulator/beam/erl_gc.c b/erts/emulator/beam/erl_gc.c index e3445bcdc5..36615f913d 100644 --- a/erts/emulator/beam/erl_gc.c +++ b/erts/emulator/beam/erl_gc.c @@ -315,7 +315,12 @@ erts_gc_after_bif_call(Process* p, Eterm result, Eterm* regs, Uint arity) if (is_non_value(result)) { if (p->freason == TRAP) { - cost = erts_garbage_collect(p, 0, p->def_arg_reg, p->arity); + #if HIPE + if (regs == NULL) { + regs = ERTS_PROC_GET_SCHDATA(p)->x_reg_array; + } + #endif + cost = erts_garbage_collect(p, 0, regs, p->arity); } else { cost = erts_garbage_collect(p, 0, regs, arity); } |