Revision 2be0071f target-ppc/translate.c
b/target-ppc/translate.c | ||
---|---|---|
179 | 179 |
RET_EXCP(ctx, EXCP_MTMSR, 0); |
180 | 180 |
} |
181 | 181 |
|
182 |
static inline void RET_CHG_FLOW (DisasContext *ctx) |
|
183 |
{ |
|
184 |
gen_op_raise_exception_err(EXCP_MTMSR, 0); |
|
185 |
ctx->exception = EXCP_MTMSR; |
|
186 |
} |
|
187 |
|
|
182 | 188 |
#define GEN_HANDLER(name, opc1, opc2, opc3, inval, type) \ |
183 | 189 |
static void gen_##name (DisasContext *ctx); \ |
184 | 190 |
GEN_OPCODE(name, opc1, opc2, opc3, inval, type); \ |
... | ... | |
1895 | 1901 |
return; |
1896 | 1902 |
} |
1897 | 1903 |
gen_op_rfi(); |
1898 |
RET_EXCP(ctx, EXCP_RFI, 0);
|
|
1904 |
RET_CHG_FLOW(ctx);
|
|
1899 | 1905 |
#endif |
1900 | 1906 |
} |
1901 | 1907 |
|
... | ... | |
2555 | 2561 |
(msr_se && (ctx.nip < 0x100 || |
2556 | 2562 |
ctx.nip > 0xF00 || |
2557 | 2563 |
(ctx.nip & 0xFC) != 0x04) && |
2558 |
ctx.exception != EXCP_SYSCALL && ctx.exception != EXCP_RFI && |
|
2564 |
ctx.exception != EXCP_SYSCALL && |
|
2565 |
ctx.exception != EXCP_SYSCALL_USER && |
|
2559 | 2566 |
ctx.exception != EXCP_TRAP)) { |
2560 | 2567 |
RET_EXCP(ctxp, EXCP_TRACE, 0); |
2561 | 2568 |
} |
Also available in: Unified diff