diff options
author | Björn Gustavsson <[email protected]> | 2016-04-18 10:22:21 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2016-04-18 10:22:21 +0200 |
commit | 3a0aa160f5f13857d7335c3f3524bd0a59250cc4 (patch) | |
tree | d553a260475219df046dc544ac82fc32c3357156 /erts/emulator/beam/ops.tab | |
parent | 6f137f7f326a03098d72806495a1365938f14314 (diff) | |
parent | 9b2ee6cfdc09090df81be40ca1d7358c3d273743 (diff) | |
download | otp-3a0aa160f5f13857d7335c3f3524bd0a59250cc4.tar.gz otp-3a0aa160f5f13857d7335c3f3524bd0a59250cc4.tar.bz2 otp-3a0aa160f5f13857d7335c3f3524bd0a59250cc4.zip |
Merge branch 'bjorn/erts/beam_load'
* bjorn/erts/beam_load:
Optimize get_tuple_element instructions that target Y registers
Mend beam_SUITE:packed_registers/1
Correct unpacking of 3 operands on 32-bit archictectures
Eliminate misleading #ifdef ARCH_64 in beam_opcodes.h
beam_debug: Correct masking when unpacking packed operands
Diffstat (limited to 'erts/emulator/beam/ops.tab')
-rw-r--r-- | erts/emulator/beam/ops.tab | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/erts/emulator/beam/ops.tab b/erts/emulator/beam/ops.tab index 69d06094ee..c08b4a8759 100644 --- a/erts/emulator/beam/ops.tab +++ b/erts/emulator/beam/ops.tab @@ -229,6 +229,9 @@ i_get_tuple_element y P y %macro: i_get_tuple_element2 GetTupleElement2 -pack i_get_tuple_element2 x P x +%macro: i_get_tuple_element2y GetTupleElement2Y -pack +i_get_tuple_element2y x P y y + %macro: i_get_tuple_element3 GetTupleElement3 -pack i_get_tuple_element3 x P x @@ -649,6 +652,9 @@ get_tuple_element Reg=x P1 D1=x | get_tuple_element Reg=x P2 D2=x | \ get_tuple_element Reg=x P1 D1=x | get_tuple_element Reg=x P2 D2=x | \ succ(P1, P2) | succ(D1, D2) => i_get_tuple_element2 Reg P1 D1 +get_tuple_element Reg=x P1 D1=y | get_tuple_element Reg=x P2 D2=y | \ + succ(P1, P2) => i_get_tuple_element2y Reg P1 D1 D2 + get_tuple_element Reg P Dst => i_get_tuple_element Reg P Dst is_integer Fail=f i => |