X-Git-Url: http://git.joshuawise.com/firearm.git/blobdiff_plain/96f7e6e169cb1471891980770630f3bed700c604..5bcb3b7e4f103f6d4992992c396a8f6e2c42a637:/Decode.v diff --git a/Decode.v b/Decode.v index 6cfe08b..a34eb3b 100644 --- a/Decode.v +++ b/Decode.v @@ -5,10 +5,12 @@ module Decode( input [31:0] insn, input [31:0] inpc, input [31:0] incpsr, + input [31:0] inspsr, output reg [31:0] op0, output reg [31:0] op1, output reg [31:0] op2, output reg carry, + output reg [31:0] outspsr, output reg [3:0] read_0, output reg [3:0] read_1, @@ -63,9 +65,9 @@ module Decode( `DECODE_CDP, /* Coprocessor data op */ `DECODE_MRCMCR, /* Coprocessor register transfer */ `DECODE_SWI: /* SWI */ - rpc = inpc - 8; + rpc = inpc + 8; `DECODE_ALU: /* ALU */ - rpc = inpc - (insn[25] ? 8 : (insn[4] ? 12 : 8)); + rpc = inpc + (insn[25] ? 8 : (insn[4] ? 12 : 8)); default: /* X everything else out */ rpc = 32'hxxxxxxxx; endcase @@ -220,6 +222,7 @@ module Decode( op1 <= op1_out; /* 'operand 2' - Rm */ op2 <= op2_out; /* thirdedge - Rs */ carry <= carry_out; + outspsr <= inspsr; end endmodule