diff options
author | John Högberg <[email protected]> | 2019-03-28 14:37:18 +0100 |
---|---|---|
committer | John Högberg <[email protected]> | 2019-03-28 14:37:18 +0100 |
commit | 2367dc1397063f78cc49eafa8e95e7e3493979d1 (patch) | |
tree | d9ff148dde49c5192d85818c853bbede45e671ce /erts/emulator/beam/beam_load.c | |
parent | 2f879097241d289e0100c7d1725485e2276a7f70 (diff) | |
parent | 0398c6868940af8561d3401c00441071c57d7ac5 (diff) | |
download | otp-2367dc1397063f78cc49eafa8e95e7e3493979d1.tar.gz otp-2367dc1397063f78cc49eafa8e95e7e3493979d1.tar.bz2 otp-2367dc1397063f78cc49eafa8e95e7e3493979d1.zip |
Merge branch 'john/erts/remove-destructive-bs_get_binary2/ERL-901'
* john/erts/remove-destructive-bs_get_binary2/ERL-901:
erts: Remove unsafe bs_get_binary2 optimization from loader
Diffstat (limited to 'erts/emulator/beam/beam_load.c')
-rw-r--r-- | erts/emulator/beam/beam_load.c | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/erts/emulator/beam/beam_load.c b/erts/emulator/beam/beam_load.c index 69e49e97f3..941c3ebbbe 100644 --- a/erts/emulator/beam/beam_load.c +++ b/erts/emulator/beam/beam_load.c @@ -3354,19 +3354,12 @@ gen_get_binary2(LoaderState* stp, GenOpArg Fail, GenOpArg Ms, GenOpArg Live, NATIVE_ENDIAN(Flags); if (Size.type == TAG_a && Size.val == am_all) { - if (Ms.type == Dst.type && Ms.val == Dst.val) { - GENOP_NAME_ARITY(op, i_bs_get_binary_all_reuse, 3); - op->a[0] = Ms; - op->a[1] = Fail; - op->a[2] = Unit; - } else { - GENOP_NAME_ARITY(op, i_bs_get_binary_all2, 5); - op->a[0] = Ms; - op->a[1] = Fail; - op->a[2] = Live; - op->a[3] = Unit; - op->a[4] = Dst; - } + GENOP_NAME_ARITY(op, i_bs_get_binary_all2, 5); + op->a[0] = Ms; + op->a[1] = Fail; + op->a[2] = Live; + op->a[3] = Unit; + op->a[4] = Dst; } else if (Size.type == TAG_i) { GENOP_NAME_ARITY(op, i_bs_get_binary_imm2, 6); op->a[0] = Ms; |