ref: 8e416b79aff3f1e84d5b6255f3bb3435e3e2352e
parent: 652c56f79e42c277cfa92007aef17b7bfe95a659
author: Roberto E. Vargas Caballero <[email protected]>
date: Sun Sep 24 13:13:21 EDT 2017
[as] Remove empty fields of instbl.c These arrays were empty and was really hard to detect that they were empty.
--- a/as/target/x86/gen.awk
+++ b/as/target/x86/gen.awk
@@ -40,12 +40,18 @@
print "struct op optab[] = {"
for (i = 0; i < nvar; i++) {
printf "\t{\n" \
- "\t\t.bytes = (char []) {%s},\n"\
"\t\t.size = %d,\n"\
- "\t\t.format = %s,\n"\
- "\t\t.args = (char []) {%s}\n"\
- "\t},\n",
- opbytes[i], opsize[i], opformat[i], str2args(opargs[i])
+ "\t\t.format = %s,\n",
+ opsize[i], opformat[i]
+
+ if (opbytes[i] != "")
+ printf "\t\t.bytes = (char []) {%s},\n", opbytes[i]
+
+ a = str2args(opargs[i])
+ if (a != "")
+ printf "\t\t.args = (char []) {%s}\n", a
+
+ print "\t},"
}
print "};"
}
@@ -52,12 +58,11 @@
function str2args(s, args, i, out)
{
- split(s, args, /,/)
+ if (split(s, args, /,/) == 0 || args[1] == "none")
+ return ""
for (i in args) {
a = args[i]
- if (a == "none") {
- break
- } else if (match(a, /^imm8/)) {
+ if (match(a, /^imm8/)) {
out = "AIMM8"
} else if (match(a, /^imm16/)) {
out = "AIMM16"