Fix up ALU order in Issue.
authorJoshua Wise <joshua@rebirth.joshuawise.com>
Tue, 30 Dec 2008 08:29:33 +0000 (03:29 -0500)
committerJoshua Wise <joshua@rebirth.joshuawise.com>
Tue, 30 Dec 2008 08:29:33 +0000 (03:29 -0500)
Issue.v

diff --git a/Issue.v b/Issue.v
index 4147c9f..8fba308 100644 (file)
--- a/Issue.v
+++ b/Issue.v
@@ -130,18 +130,6 @@ module Issue(
                        def_cpsr = 1;
                        def_regs = 0;
                end
-               `DECODE_ALU:    /* ALU */
-               begin
-                       use_cpsr = `COND_MATTERS(cond) | (!insn[25] /* I */ && shift_requires_carry(insn[11:4]));
-                       use_regs =
-                               (insn[25] /* I */ ? 0 :
-                                       (insn[4] /* shift by reg */ ?
-                                               (idxbit(rs) | idxbit(rm)) :
-                                               (idxbit(rm)))) |
-                               (((alu_opc != `ALU_MOV) && (alu_opc != `ALU_MVN)) ? idxbit(rn) : 0);
-                       def_cpsr = insn[20] /* S */ | alu_is_logical(alu_opc);
-                       def_regs = alu_flags_only(alu_opc) ? 0 : idxbit(rd);
-               end
                `DECODE_ALU_SWP:        /* Atomic swap */
                begin
                        use_cpsr = `COND_MATTERS(cond);
@@ -170,6 +158,18 @@ module Issue(
                        def_cpsr = 0;
                        def_regs = insn[20] /* L */ ? idxbit(rd) : 0;
                end
+               `DECODE_ALU:    /* ALU */
+               begin
+                       use_cpsr = `COND_MATTERS(cond) | (!insn[25] /* I */ && shift_requires_carry(insn[11:4]));
+                       use_regs =
+                               (insn[25] /* I */ ? 0 :
+                                       (insn[4] /* shift by reg */ ?
+                                               (idxbit(rs) | idxbit(rm)) :
+                                               (idxbit(rm)))) |
+                               (((alu_opc != `ALU_MOV) && (alu_opc != `ALU_MVN)) ? idxbit(rn) : 0);
+                       def_cpsr = insn[20] /* S */ | alu_is_logical(alu_opc);
+                       def_regs = alu_flags_only(alu_opc) ? 0 : idxbit(rd);
+               end
                `DECODE_LDRSTR_UNDEFINED:       /* Undefined. I hate ARM */
                begin   
                        use_cpsr = 0;
This page took 0.022456 seconds and 4 git commands to generate.