blob: b99c1c0331070c52e56919338c8450dc422e520a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
`include "core/decode/isa.sv"
`include "core/uarch.sv"
module core_decode_ldst_single
(
input word insn,
output ldst_decode decode,
output logic snd_is_imm
);
logic p, w;
assign decode.enable = 1'bx;
assign decode.rn = insn `FIELD_LDST_SINGLE_RN;
assign decode.rd = insn `FIELD_LDST_SINGLE_RD;
assign decode.size = insn `FIELD_LDST_SINGLE_B ? LDST_BYTE : LDST_WORD;
assign decode.load = insn `FIELD_LDST_LD;
assign decode.increment = insn `FIELD_LDST_SINGLE_U;
assign decode.writeback = !p || w;
assign decode.sign_extend = 0;
assign decode.pre_indexed = p;
assign decode.unprivileged = !p && w;
assign decode.user_regs = 0;
assign decode.regs = 16'b0;
assign p = insn `FIELD_LDST_SINGLE_P;
assign w = insn `FIELD_LDST_SINGLE_W;
assign snd_is_imm = !insn `FIELD_LDST_SINGLE_REG;
endmodule
|