diff options
author | Mike Pall <mike> | 2011-04-10 16:50:04 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2011-04-10 16:50:04 +0200 |
commit | 161bc379f059bc903873b67da603b48d50cb8ffe (patch) | |
tree | 7cc6b9815f2c7f315e27ab66833db81c80ded50e | |
parent | 27bf481669c13f37becfc4e4044b1d3557253d4d (diff) | |
download | luajit-161bc379f059bc903873b67da603b48d50cb8ffe.tar.gz luajit-161bc379f059bc903873b67da603b48d50cb8ffe.tar.bz2 luajit-161bc379f059bc903873b67da603b48d50cb8ffe.zip |
ARM: Add GPR variants for shift aliases to DynASM.
-rw-r--r-- | dynasm/dasm_arm.lua | 15 |
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 = { | |||
278 | bic_4 = "e1c00000DNMps", | 278 | bic_4 = "e1c00000DNMps", |
279 | mvn_3 = "e1e00000DMps", | 279 | mvn_3 = "e1e00000DMps", |
280 | 280 | ||
281 | lsl_3 = "e1a00000DMvs", | 281 | lsl_3 = "e1a00000DMws", |
282 | lsr_3 = "e1a00020DMvs", | 282 | lsr_3 = "e1a00020DMws", |
283 | asr_3 = "e1a00040DMvs", | 283 | asr_3 = "e1a00040DMws", |
284 | ror_3 = "e1a00060DMvs", | 284 | ror_3 = "e1a00060DMws", |
285 | rrx_2 = "e1a00060DMs", | 285 | rrx_2 = "e1a00060DMs", |
286 | 286 | ||
287 | -- Multiply and multiply-accumulate. | 287 | -- Multiply and multiply-accumulate. |
@@ -747,6 +747,13 @@ map_op[".template__"] = function(params, template, nparams) | |||
747 | op = op + parse_imm16(params[n]); n = n + 1 | 747 | op = op + parse_imm16(params[n]); n = n + 1 |
748 | elseif p == "v" then | 748 | elseif p == "v" then |
749 | op = op + parse_imm(params[n], 5, 7, 0, false); n = n + 1 | 749 | op = op + parse_imm(params[n], 5, 7, 0, false); n = n + 1 |
750 | elseif p == "w" then | ||
751 | local imm = match(params[n], "^#(.*)$") | ||
752 | if imm then | ||
753 | op = op + parse_imm(params[n], 5, 7, 0, false); n = n + 1 | ||
754 | else | ||
755 | op = op + parse_gpr(params[n]) * 256 + 16 | ||
756 | end | ||
750 | elseif p == "X" then | 757 | elseif p == "X" then |
751 | op = op + parse_imm(params[n], 5, 16, 0, false); n = n + 1 | 758 | op = op + parse_imm(params[n], 5, 16, 0, false); n = n + 1 |
752 | elseif p == "K" then | 759 | elseif p == "K" then |