This is the mail archive of the cgen@sources.redhat.com mailing list for the CGEN project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

[RFA] Code gen improvement for sim-decode.scm


The following patch improves the generated extraction code -- such that an
`insn' variable is not defined for instructions that have zero ifields.

Comments?  Is there a better way to do this?

Ben


@@ -433,10 +433,13 @@
    " extract_" (gen-sym sfmt) ":\n"
    "  {\n"
    "    const IDESC *idesc = &" IDESC-TABLE-VAR "[itype];\n"
-   "    CGEN_INSN_INT insn = "
-   (if (adata-integral-insn? CURRENT-ARCH)
-       "entire_insn;\n"
-       "base_insn;\n")
+   (if (> (length (sfmt-iflds sfmt)) 0)
+       (string-append
+       "    CGEN_INSN_INT insn = "
+       (if (adata-integral-insn? CURRENT-ARCH)
+           "entire_insn;\n"
+           "base_insn;\n"))
+       "")
    (gen-define-field-macro sfmt)
    (gen-define-ifields (sfmt-iflds sfmt) (sfmt-length sfmt) "    " #f)
    "\n"


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]