diff options
author | Sverker Eriksson <[email protected]> | 2014-05-20 18:35:21 +0200 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2014-05-20 18:35:29 +0200 |
commit | 7d78f2563e4ef9f7f165b1ba06212c6f09167809 (patch) | |
tree | 3927758f799cd787a74bc655f4903371971f2605 /erts/emulator/beam/beam_emu.c | |
parent | 50556f5e37cd866ecba39be22d94c32e88d358cb (diff) | |
parent | 0799ae534f61aef1a47d751d48a09c8b49995e7a (diff) | |
download | otp-7d78f2563e4ef9f7f165b1ba06212c6f09167809.tar.gz otp-7d78f2563e4ef9f7f165b1ba06212c6f09167809.tar.bz2 otp-7d78f2563e4ef9f7f165b1ba06212c6f09167809.zip |
Merge branch 'sverk/hipe-global-trace-bug'
OTP-11939
* sverk/hipe-global-trace-bug:
erts: Remove some dead hipe specific code
erts: Fix global tracing of beam function when called from hipe code
erts: Save some space in process struct for hipe
Diffstat (limited to 'erts/emulator/beam/beam_emu.c')
-rw-r--r-- | erts/emulator/beam/beam_emu.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/erts/emulator/beam/beam_emu.c b/erts/emulator/beam/beam_emu.c index 1026e5f649..9b251a6ad1 100644 --- a/erts/emulator/beam/beam_emu.c +++ b/erts/emulator/beam/beam_emu.c @@ -4993,14 +4993,14 @@ get_map_elements_fail: * ... remainder of original BEAM code */ ASSERT(I[-5] == (Uint) OpCode(i_func_info_IaaI)); - c_p->hipe.ncallee = (void(*)(void)) I[-4]; + c_p->hipe.u.ncallee = (void(*)(void)) I[-4]; cmd = HIPE_MODE_SWITCH_CMD_CALL | (I[-1] << 8); ++hipe_trap_count; goto L_hipe_mode_switch; } OpCase(hipe_trap_call_closure): { ASSERT(I[-5] == (Uint) OpCode(i_func_info_IaaI)); - c_p->hipe.ncallee = (void(*)(void)) I[-4]; + c_p->hipe.u.ncallee = (void(*)(void)) I[-4]; cmd = HIPE_MODE_SWITCH_CMD_CALL_CLOSURE | (I[-1] << 8); ++hipe_trap_count; goto L_hipe_mode_switch; @@ -5034,7 +5034,10 @@ get_map_elements_fail: case HIPE_MODE_SWITCH_RES_RETURN: ASSERT(is_value(reg[0])); MoveReturn(reg[0], r(0)); - case HIPE_MODE_SWITCH_RES_CALL: + case HIPE_MODE_SWITCH_RES_CALL_EXPORTED: + c_p->i = c_p->hipe.u.callee_exp->addressv[erts_active_code_ix()]; + /*fall through*/ + case HIPE_MODE_SWITCH_RES_CALL_BEAM: SET_I(c_p->i); r(0) = reg[0]; Dispatch(); |