aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_gc.c
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2011-10-14 19:23:26 +0200
committerSverker Eriksson <[email protected]>2011-10-26 18:19:20 +0200
commit17241c30f56ba6bc31518f1c905f6178784fb4fa (patch)
tree10b6e786c2915bdfe55351088fc5634f49475925 /erts/emulator/beam/erl_gc.c
parent5a78dd349ab7974253e3058f9da73188d5394526 (diff)
downloadotp-17241c30f56ba6bc31518f1c905f6178784fb4fa.tar.gz
otp-17241c30f56ba6bc31518f1c905f6178784fb4fa.tar.bz2
otp-17241c30f56ba6bc31518f1c905f6178784fb4fa.zip
erts-hipe: Fix new trap conventions for x86, amd64 and ppc
Diffstat (limited to 'erts/emulator/beam/erl_gc.c')
-rw-r--r--erts/emulator/beam/erl_gc.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_gc.c b/erts/emulator/beam/erl_gc.c
index 17cc6e0a2c..36615f913d 100644
--- a/erts/emulator/beam/erl_gc.c
+++ b/erts/emulator/beam/erl_gc.c
@@ -315,6 +315,11 @@ erts_gc_after_bif_call(Process* p, Eterm result, Eterm* regs, Uint arity)
if (is_non_value(result)) {
if (p->freason == TRAP) {
+ #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);