aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/select_instrs.tab
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2017-09-09 12:30:35 +0200
committerBjörn Gustavsson <[email protected]>2017-09-14 10:16:15 +0200
commite8ee9f4cba07c7aa05685207c54ae1d773bf1814 (patch)
treee3d63c6080c85195339603853ae278a8d2cd5b84 /erts/emulator/beam/select_instrs.tab
parent6f45ff73583aa7d0352b8a16df78872f47defd35 (diff)
downloadotp-e8ee9f4cba07c7aa05685207c54ae1d773bf1814.tar.gz
otp-e8ee9f4cba07c7aa05685207c54ae1d773bf1814.tar.bz2
otp-e8ee9f4cba07c7aa05685207c54ae1d773bf1814.zip
Pack failure labels in i_select_val2 and i_select_tuple_arity2
Diffstat (limited to 'erts/emulator/beam/select_instrs.tab')
-rw-r--r--erts/emulator/beam/select_instrs.tab8
1 files changed, 5 insertions, 3 deletions
diff --git a/erts/emulator/beam/select_instrs.tab b/erts/emulator/beam/select_instrs.tab
index f5ce5d5a32..2951949d38 100644
--- a/erts/emulator/beam/select_instrs.tab
+++ b/erts/emulator/beam/select_instrs.tab
@@ -94,11 +94,13 @@ select_val2.get_arity() {
}
}
-select_val2.execute(Fail, T1, T2, D1, D2) {
+select_val2.execute(Fail, T1, T2) {
+ Sint32* jump_tab = (Sint32 *) ($NEXT_INSTRUCTION);
+
if (select_val2 == $T1) {
- $JUMP($D1);
+ $JUMP(jump_tab[0]);
} else if (select_val2 == $T2) {
- $JUMP($D2);
+ $JUMP(jump_tab[1]);
} else {
$FAIL($Fail);
}