5 class dummy_rocc_t
: public rocc_t
8 const char* name() { return "dummy_rocc"; }
10 reg_t
custom0(rocc_insn_t insn
, reg_t xs1
, reg_t xs2
)
12 reg_t prev_acc
= acc
[insn
.rs2
];
14 if (insn
.rs2
>= num_acc
)
15 illegal_instruction();
22 case 1: // xd <- acc (the only real work is the return statement below)
24 case 2: // acc[rs2] <- Mem[xs1]
25 acc
[insn
.rs2
] = p
->get_mmu()->load_uint64(xs1
);
27 case 3: // acc[rs2] <- accX + xs1
31 illegal_instruction();
34 return prev_acc
; // in all cases, xd <- previous value of acc[rs2]
39 memset(acc
, 0, sizeof(acc
));
43 static const int num_acc
= 4;
47 REGISTER_EXTENSION(dummy_rocc
, []() { return new dummy_rocc_t
; })