aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/beam_load.c
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2015-06-17 15:31:36 +0200
committerBjörn Gustavsson <[email protected]>2015-07-03 14:34:57 +0200
commitbede3941be8629efa4d91755c085a91b1416d432 (patch)
tree00d6f203026d71833635e4bfd7a3c656bb0995f7 /erts/emulator/beam/beam_load.c
parent30204739a047ab96d2b7d59ae461d4cbb2131509 (diff)
downloadotp-bede3941be8629efa4d91755c085a91b1416d432.tar.gz
otp-bede3941be8629efa4d91755c085a91b1416d432.tar.bz2
otp-bede3941be8629efa4d91755c085a91b1416d432.zip
Eliminate use of i_fetch for bit syntax instructions
Diffstat (limited to 'erts/emulator/beam/beam_load.c')
-rw-r--r--erts/emulator/beam/beam_load.c27
1 files changed, 10 insertions, 17 deletions
diff --git a/erts/emulator/beam/beam_load.c b/erts/emulator/beam/beam_load.c
index c90576333a..871c2b1f55 100644
--- a/erts/emulator/beam/beam_load.c
+++ b/erts/emulator/beam/beam_load.c
@@ -2854,23 +2854,16 @@ gen_get_integer2(LoaderState* stp, GenOpArg Fail, GenOpArg Ms, GenOpArg Live,
goto generic;
}
} else {
- GenOp* op2;
- NEW_GENOP(stp, op2);
-
- op->op = genop_i_fetch_2;
- op->arity = 2;
- op->a[0] = Ms;
- op->a[1] = Size;
- op->next = op2;
-
- op2->op = genop_i_bs_get_integer_4;
- op2->arity = 4;
- op2->a[0] = Fail;
- op2->a[1] = Live;
- op2->a[2].type = TAG_u;
- op2->a[2].val = (Unit.val << 3) | Flags.val;
- op2->a[3] = Dst;
- op2->next = NULL;
+ op->op = genop_i_bs_get_integer_6;
+ op->arity = 6;
+ op->a[0] = Fail;
+ op->a[1] = Live;
+ op->a[2].type = TAG_u;
+ op->a[2].val = (Unit.val << 3) | Flags.val;
+ op->a[3] = Ms;
+ op->a[4] = Size;
+ op->a[5] = Dst;
+ op->next = NULL;
return op;
}
op->next = NULL;