diff options
author | Björn Gustavsson <[email protected]> | 2010-10-19 16:32:32 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2011-01-17 15:23:38 +0100 |
commit | c5df89ea0d57e41190155dcf14cbc375dc647bee (patch) | |
tree | 309b0ce4d189bd70172b063a6dfc9b8a44f24211 /erts/emulator/beam/beam_load.c | |
parent | e31af112f63b11622d6a3a49cb444d5613af2f1f (diff) | |
download | otp-c5df89ea0d57e41190155dcf14cbc375dc647bee.tar.gz otp-c5df89ea0d57e41190155dcf14cbc375dc647bee.tar.bz2 otp-c5df89ea0d57e41190155dcf14cbc375dc647bee.zip |
If the wordsize is 64 bits, pack up to 4 operands into a word
In the 32-bit BEAM emulator, it is only possible to pack
3 register operands into one word. Therefore, the move2
instruction (that has 4 operands) needs two words for its
operands.
Take advantage of the larger wordsize in the 64-bit emulator
and pack up to 4 operands into a single word.
Diffstat (limited to 'erts/emulator/beam/beam_load.c')
-rw-r--r-- | erts/emulator/beam/beam_load.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/erts/emulator/beam/beam_load.c b/erts/emulator/beam/beam_load.c index 73644ecfd6..c190efb0d1 100644 --- a/erts/emulator/beam/beam_load.c +++ b/erts/emulator/beam/beam_load.c @@ -1765,7 +1765,7 @@ load_code(LoaderState* stp) } stp->specific_op = specific; - CodeNeed(opc[stp->specific_op].sz+2); /* Extra margin for packing */ + CodeNeed(opc[stp->specific_op].sz+16); /* Extra margin for packing */ code[ci++] = BeamOpCode(stp->specific_op); } |