Revision 274a9e70 target-sh4/helper.c
b/target-sh4/helper.c | ||
---|---|---|
157 | 157 |
env->sgr = env->gregs[15]; |
158 | 158 |
env->sr |= SR_BL | SR_MD | SR_RB; |
159 | 159 |
|
160 |
if (env->flags & (DELAY_SLOT | DELAY_SLOT_CONDITIONAL)) { |
|
161 |
/* Branch instruction should be executed again before delay slot. */ |
|
162 |
env->spc -= 2; |
|
163 |
/* Clear flags for exception/interrupt routine. */ |
|
164 |
env->flags &= ~(DELAY_SLOT | DELAY_SLOT_CONDITIONAL | DELAY_SLOT_TRUE); |
|
165 |
} |
|
166 |
if (env->flags & DELAY_SLOT_CLEARME) |
|
167 |
env->flags = 0; |
|
168 |
|
|
160 | 169 |
if (do_exp) { |
161 | 170 |
env->expevt = env->exception_index; |
162 | 171 |
switch (env->exception_index) { |
Also available in: Unified diff