summaryrefslogtreecommitdiff
path: root/erts/emulator/beam/jit/x86/instr_bs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'erts/emulator/beam/jit/x86/instr_bs.cpp')
-rw-r--r--erts/emulator/beam/jit/x86/instr_bs.cpp9
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 |