diff --git a/cgen/sim-decode.scm b/cgen/sim-decode.scm index 0c6d48c..42c41ec 100644 --- a/cgen/sim-decode.scm +++ b/cgen/sim-decode.scm @@ -437,7 +437,10 @@ void (string-append " CGEN_INSN_WORD insn = " (if (adata-integral-insn? CURRENT-ARCH) - "entire_insn;\n" + (if (current-arch-insn-lsb0?) + "entire_insn;\n" + (string-append + "entire_insn >> (sizeof(UINT) * 8 - " (number->string (sfmt-length sfmt)) ");\n" )) "base_insn;\n")) "") (gen-define-field-macro sfmt)