- unsigned int inst = *((unsigned int *)(unsigned int)(*os_context_pc_addr(context)));
-
- switch (inst >> 26) {
- case 0x0: /* immediate jumps */
- switch (inst & 0x3f) {
- case 0x08:
- case 0x09:
- return CAUSEF_BD;
- }
- break;
- /* branches and register jumps */
- case 0x1:
- case 0x2:
- case 0x3:
- case 0x4:
- case 0x5:
- case 0x6:
- case 0x7:
+ extern boolean arch_insn_with_bdelay_p(unsigned int insn);
+
+ os_vm_address_t addr
+ = (os_vm_address_t)(unsigned int)*os_context_pc_addr(context);
+ unsigned int insn = *(unsigned int *)addr;
+
+ if (arch_insn_with_bdelay_p(insn))