diff options
author | Björn Gustavsson <bjorn@erlang.org> | 2023-02-10 06:55:06 +0100 |
---|---|---|
committer | Björn Gustavsson <bjorn@erlang.org> | 2023-02-10 07:26:50 +0100 |
commit | d0c9496c494c407b2076ce4e1e514346640cad85 (patch) | |
tree | c2a36905d0b594891107313eeacff379019ff5cf /erts/emulator/beam | |
parent | f0117c579bb8cf90b4000db10971f0557a4fde52 (diff) | |
download | erlang-d0c9496c494c407b2076ce4e1e514346640cad85.tar.gz |
AArch64 JIT: Fix crash in bxor/2
With the AArch64 (AMD64) JIT, calling `bxor` with non-integer operands
in a guard would crash the runtime system.
Diffstat (limited to 'erts/emulator/beam')
-rw-r--r-- | erts/emulator/beam/jit/arm/instr_arith.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/erts/emulator/beam/jit/arm/instr_arith.cpp b/erts/emulator/beam/jit/arm/instr_arith.cpp index 95d1ab0019..ccd7721dca 100644 --- a/erts/emulator/beam/jit/arm/instr_arith.cpp +++ b/erts/emulator/beam/jit/arm/instr_arith.cpp @@ -993,6 +993,7 @@ void BeamModuleAssembler::emit_i_bxor(const ArgLabel &Fail, if (Fail.get() != 0) { emit_enter_runtime(Live.get()); + a.mov(ARG1, c_p); runtime_call<3>(erts_bxor); emit_leave_runtime(Live.get()); emit_branch_if_not_value(ARG1, resolve_beam_label(Fail, dispUnknown)); |