Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/asmjit/asmjit.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkobalicek <kobalicek.petr@gmail.com>2022-11-13 15:34:42 +0300
committerkobalicek <kobalicek.petr@gmail.com>2022-11-13 15:34:42 +0300
commit5350efdc6a4953d1f62179d26c979ec879eb36a2 (patch)
treecdfb9463d29eff05eec374d237c62edc348472f3
parent793206ddc6c18b5fca93e779e80a630681a9b912 (diff)
-rw-r--r--db/a64data.json23
-rw-r--r--tools/tablegen-a32.js3
2 files changed, 20 insertions, 6 deletions
diff --git a/db/a64data.json b/db/a64data.json
index 3d61d61..59f1e8c 100644
--- a/db/a64data.json
+++ b/db/a64data.json
@@ -9,6 +9,23 @@
},
"instructions": [
+ {"inst": "adc Rd, Rn, Rm" , "a64": "X0011010|00|0|Rm|000000|Rn|Rd" , "ext": "ARMv8"},
+ {"inst": "adcs Rd, Rn, Rm" , "a64": "X0111010|00|0|Rm|000000|Rn|Rd" , "ext": "ARMv8", "pstate": "NZCV=W"},
+ {"inst": "add Rd, Rn, Rm, {lsl|lsr|asr #n}" , "a64": "X0001011|shift:2|0|Rm|n:6|Rn|Rd" , "ext": "ARMv8"},
+ {"inst": "add Rd|SP, Rn|SP, Rm, {extend #n}" , "a64": "X0001011|00|1|Rm|extend:3|n:3|Rn|Rd" , "ext": "ARMv8"},
+ {"inst": "add Rd|SP, Rn|SP, #immZ, {lsl #n=0|12}" , "a64": "X0010001|0|n:1|immZ:12|Rn|Rd" , "ext": "ARMv8"},
+ {"inst": "addg Xd|SP, Xn|SP, #imm1, #imm2" , "a64": "10010001|10|imm1:6|00|imm2:4|Rn|Rd" , "ext": "MTE"},
+ {"inst": "adds Rd, Rn, Rm, {lsl|lsr|asr #n}" , "a64": "X0101011|shift:2|0|Rm|n:6|Rn|Rd" , "ext": "ARMv8", "pstate": "NZCV=W"},
+ {"inst": "adds Rd, Rn|SP, Rm, {extend #n}" , "a64": "X0101011|00|1|Rm|option:3|n:3|Rn|Rd" , "ext": "ARMv8", "pstate": "NZCV=W"},
+ {"inst": "adds Rd|SP, Rn|SP, #immZ, {lsl #n=0|12}" , "a64": "X0110001|0|n:1|immZ:12|Rn|Rd" , "ext": "ARMv8", "pstate": "NZCV=W"},
+ {"inst": "adr Xd, #relS" , "a64": "0|relS[1:0]|10000|relS[20:2]|Rd" , "ext": "ARMv8"},
+ {"inst": "adrp Xd, #relS" , "a64": "1|relS[1:0]|10000|relS[20:2]|Rd" , "ext": "ARMv8"},
+
+ {"inst": "and Rd|SP, Rn, Rm, {sop #n}" , "a64": "X0001010|sop|0|Rm|imm:6|Rn|Rd" , "ext": "ARMv8", "imm": "ShiftImm(n, x)"},
+ {"inst": "and Rd|SP, Rn, #imm" , "a64": "X0010010|0|imm:13|Rn|Rd" , "ext": "ARMv8", "imm": "LogicalImm(imm, x)"},
+ {"inst": "ands Rd|SP, Rn, Rm, {sop #n}" , "a64": "X1101010|sop|0|Rm|imm:6|Rn|Rd" , "ext": "ARMv8", "imm": "ShiftImm(n, x)"},
+ {"inst": "ands Rd|SP, Rn, #imm" , "a64": "X1110010|0|imm:13|Rn|Rd" , "ext": "ARMv8", "imm": "LogicalImm(imm, x)"},
+
{"inst": "abs Zd.t, Pg/M, Zn.t" , "a64": "00000100|sz|0|10110101|Pg:3|Zn|Zd" , "ext": "SVE"},
{"inst": "adclb Zda.t, Pg/M, Zn.t" , "a64": "01000101|0s|0|Zm|110100|Zn|Zda" , "ext": "SVE2"},
{"inst": "adclt Zda.t, Pg/M, Zn.t" , "a64": "01000101|0s|0|Zm|110101|Zn|Zda" , "ext": "SVE2"},
@@ -20,9 +37,9 @@
{"inst": "addp Zdn.t, Pg/M, Zdn.t, Zm.t" , "a64": "01000100|sz|010001101|Pg:3|Zm|Zdn" , "ext": "SVE"},
{"inst": "addpl Xd|SP, Xn|SP, #immS" , "a64": "00000100|01|1|Rn|01010|immS:6|Rd" , "ext": "SVE"},
{"inst": "addvl Xd|SP, Xn|SP, #immS" , "a64": "00000100|00|1|Rn|01010|immS:6|Rd" , "ext": "SVE"},
- {"inst": "adr Zd.t, [Zn.t, Zm.t], {lsl #amount}]" , "a64": "00000100|1s|1|Zm|1010|msz|Zn|Zd" , "ext": "SVE"},
- {"inst": "adr Zd.D, [Zn.D, Zm.D], {sxtw #amount}]" , "a64": "00000100|00|1|Zm|1010|msz|Zn|Zd" , "ext": "SVE"},
- {"inst": "adr Zd.D, [Zn.D, Zm.D], {uxtw #amount}]" , "a64": "00000100|01|1|Zm|1010|msz|Zn|Zd" , "ext": "SVE"},
+ {"inst": "adr Zd.t, [Zn.t, Zm.t], {lsl #n}]" , "a64": "00000100|1s|1|Zm|1010|msz|Zn|Zd" , "ext": "SVE"},
+ {"inst": "adr Zd.D, [Zn.D, Zm.D], {sxtw #n}]" , "a64": "00000100|00|1|Zm|1010|msz|Zn|Zd" , "ext": "SVE"},
+ {"inst": "adr Zd.D, [Zn.D, Zm.D], {uxtw #n}]" , "a64": "00000100|01|1|Zm|1010|msz|Zn|Zd" , "ext": "SVE"},
{"inst": "aesd Zdn.B, Zdn.B, Zm.B" , "a64": "01000101|00|100010111|001|Zm|Zdn" , "ext": "SVE2_AES"},
{"inst": "aese Zdn.B, Zdn.B, Zm.B" , "a64": "01000101|00|100010111|000|Zm|Zdn" , "ext": "SVE2_AES"},
{"inst": "aesimc Zdn.B, Zdn.B" , "a64": "01000101|00|100000111|001|00000|Zdn" , "ext": "SVE2_AES"},
diff --git a/tools/tablegen-a32.js b/tools/tablegen-a32.js
index ed8eb83..49794b5 100644
--- a/tools/tablegen-a32.js
+++ b/tools/tablegen-a32.js
@@ -54,9 +54,6 @@ function regToOpcode(field, op, regType) {
let vars = {"type": "uint32_t", "name": v, "init": `${op}.as<Reg>().id()`};
for (let value of field.values) {
- const mask = ((1 << (value.size)) - 1) << value.from;
- const shift = value.index - value.from;
-
if (value.from === 0 && value.size === 1)
loHi += `Lo${value.index}`;
else if (value.from === 4 && value.size === 1)