diff options
Diffstat (limited to 'erts/emulator/beam/jit/x86/instr_bs.cpp')
-rw-r--r-- | erts/emulator/beam/jit/x86/instr_bs.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/erts/emulator/beam/jit/x86/instr_bs.cpp b/erts/emulator/beam/jit/x86/instr_bs.cpp index 8d7ba7d1c7..47c9faa011 100644 --- a/erts/emulator/beam/jit/x86/instr_bs.cpp +++ b/erts/emulator/beam/jit/x86/instr_bs.cpp @@ -1563,10 +1563,11 @@ void BeamModuleAssembler::emit_bs_init_writable() { void BeamGlobalAssembler::emit_bs_create_bin_error_shared() { emit_enter_runtime<Update::eStack | Update::eHeap>(); - a.mov(ARG3, ARG1); + /* ARG3 is already set by the caller */ a.mov(ARG2, ARG4); + a.mov(ARG4, ARG1); a.mov(ARG1, c_p); - runtime_call<3>(beam_jit_bs_construct_fail_info); + runtime_call<4>(beam_jit_bs_construct_fail_info); emit_leave_runtime<Update::eStack | Update::eHeap>(); @@ -1713,9 +1714,9 @@ void BeamModuleAssembler::emit_i_bs_create_bin(const ArgVal &Fail, a.bind(error); { /* + * ARG1 = optional bad size value; valid if BSC_VALUE_ARG1 is set in ARG4 + * ARG3 = optional bad size value; valid if BSC_VALUE_ARG3 is set in ARG4 * ARG4 = packed error information - * ARG1 = optional bad size value; only valid if BSC_REASON_DEPENDS is - * set in ARG4 */ comment("handle error"); emit_leave_runtime<Update::eReductions | Update::eStack | |