diff options
author | Björn Gustavsson <[email protected]> | 2010-12-09 21:31:08 +0100 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2011-01-17 15:23:45 +0100 |
commit | d5ab5485430c00734a79068fe0eee7bd4f87cf00 (patch) | |
tree | a7fd8d6e250b6508a2341997a37ab13cc3e7a0a1 /erts/emulator/beam | |
parent | 5cf1e739a5599943c1ac1d40d0577f83f5e0e62b (diff) | |
download | otp-d5ab5485430c00734a79068fe0eee7bd4f87cf00.tar.gz otp-d5ab5485430c00734a79068fe0eee7bd4f87cf00.tar.bz2 otp-d5ab5485430c00734a79068fe0eee7bd4f87cf00.zip |
Eliminate the specific move_sd instruction
The move_sd specific instruction is no longer used since there
are specific move instructions covering all possible permutations
of operands. Also eliminate the move_cy instruction because it
is almost never generated by the compiler.
Diffstat (limited to 'erts/emulator/beam')
-rw-r--r-- | erts/emulator/beam/ops.tab | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/erts/emulator/beam/ops.tab b/erts/emulator/beam/ops.tab index c10b3e8d52..0b2e2dca83 100644 --- a/erts/emulator/beam/ops.tab +++ b/erts/emulator/beam/ops.tab @@ -279,6 +279,11 @@ move2 x y x y move2 y x y x move2 x x x x +# The compiler almost never generates a "move Literal y(Y)" instruction, +# so let's cheat if we encounter one. +move S=n D=y => init D +move S=c D=y => move S x | move x D + %macro:move Move -pack -gen_dest move x x move x y @@ -289,15 +294,10 @@ move r x move r y move c r move c x -move c y move n x move n r move y y -%cold -move s d -%hot - # Receive operations. loop_rec Fail Src | smp_mark_target_label(Fail) => i_loop_rec Fail Src |