diff options
author | Björn Gustavsson <[email protected]> | 2015-06-17 15:31:36 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2015-07-03 14:34:57 +0200 |
commit | bede3941be8629efa4d91755c085a91b1416d432 (patch) | |
tree | 00d6f203026d71833635e4bfd7a3c656bb0995f7 /erts/emulator/beam/beam_load.c | |
parent | 30204739a047ab96d2b7d59ae461d4cbb2131509 (diff) | |
download | otp-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.c | 27 |
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; |