summaryrefslogtreecommitdiff
path: root/dynasm
diff options
context:
space:
mode:
authorMike Pall <mike>2011-04-10 16:50:04 +0200
committerMike Pall <mike>2011-04-10 16:50:04 +0200
commit161bc379f059bc903873b67da603b48d50cb8ffe (patch)
tree7cc6b9815f2c7f315e27ab66833db81c80ded50e /dynasm
parent27bf481669c13f37becfc4e4044b1d3557253d4d (diff)
downloadluajit2-161bc379f059bc903873b67da603b48d50cb8ffe.tar.gz
ARM: Add GPR variants for shift aliases to DynASM.
Diffstat (limited to 'dynasm')
-rw-r--r--dynasm/dasm_arm.lua15
1 files changed, 11 insertions, 4 deletions
diff --git a/dynasm/dasm_arm.lua b/dynasm/dasm_arm.lua
index 1876078b..19bc94b8 100644
--- a/dynasm/dasm_arm.lua
+++ b/dynasm/dasm_arm.lua
@@ -278,10 +278,10 @@ local map_op = {
bic_4 = "e1c00000DNMps",
mvn_3 = "e1e00000DMps",
- lsl_3 = "e1a00000DMvs",
- lsr_3 = "e1a00020DMvs",
- asr_3 = "e1a00040DMvs",
- ror_3 = "e1a00060DMvs",
+ lsl_3 = "e1a00000DMws",
+ lsr_3 = "e1a00020DMws",
+ asr_3 = "e1a00040DMws",
+ ror_3 = "e1a00060DMws",
rrx_2 = "e1a00060DMs",
-- Multiply and multiply-accumulate.
@@ -747,6 +747,13 @@ map_op[".template__"] = function(params, template, nparams)
op = op + parse_imm16(params[n]); n = n + 1
elseif p == "v" then
op = op + parse_imm(params[n], 5, 7, 0, false); n = n + 1
+ elseif p == "w" then
+ local imm = match(params[n], "^#(.*)$")
+ if imm then
+ op = op + parse_imm(params[n], 5, 7, 0, false); n = n + 1
+ else
+ op = op + parse_gpr(params[n]) * 256 + 16
+ end
elseif p == "X" then
op = op + parse_imm(params[n], 5, 16, 0, false); n = n + 1
elseif p == "K" then