diff options
author | Björn Gustavsson <[email protected]> | 2019-03-12 07:20:43 +0100 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2019-03-19 16:01:59 +0100 |
commit | 7e44a4b8eaad7d7d6fadf933794d3a0d05790b23 (patch) | |
tree | 4b47c8a8d88ee6f9bd515ff79c0265af7b6c31e4 /erts/emulator/beam/instrs.tab | |
parent | a0a3f3c1891bf74d35b84855891caa5928cc14c1 (diff) | |
download | otp-7e44a4b8eaad7d7d6fadf933794d3a0d05790b23.tar.gz otp-7e44a4b8eaad7d7d6fadf933794d3a0d05790b23.tar.bz2 otp-7e44a4b8eaad7d7d6fadf933794d3a0d05790b23.zip |
Combine move with trim
It is relatively common to move something from a Y register to
an X register before trimming.
Diffstat (limited to 'erts/emulator/beam/instrs.tab')
-rw-r--r-- | erts/emulator/beam/instrs.tab | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/erts/emulator/beam/instrs.tab b/erts/emulator/beam/instrs.tab index aeb47c3b0f..7fa1df64ff 100644 --- a/erts/emulator/beam/instrs.tab +++ b/erts/emulator/beam/instrs.tab @@ -477,6 +477,13 @@ i_make_fun(FunP, NumFree) { HEAVY_SWAPIN; } +move_trim(Src, Dst, Words) { + Uint cp = E[0]; + $Dst = $Src; + E += $Words; + E[0] = cp; +} + i_trim(Words) { Uint cp = E[0]; E += $Words; |