Revision 3110e292
b/cpu-exec.c | ||
---|---|---|
346 | 346 |
do_interrupt(env); |
347 | 347 |
#elif defined(TARGET_M68K) |
348 | 348 |
do_interrupt(0); |
349 |
#elif defined(TARGET_S390X) |
|
350 |
do_interrupt(env); |
|
349 | 351 |
#endif |
350 | 352 |
env->exception_index = -1; |
351 | 353 |
#endif |
... | ... | |
560 | 562 |
do_interrupt(1); |
561 | 563 |
next_tb = 0; |
562 | 564 |
} |
565 |
#elif defined(TARGET_S390X) && !defined(CONFIG_USER_ONLY) |
|
566 |
if ((interrupt_request & CPU_INTERRUPT_HARD) && |
|
567 |
(env->psw.mask & PSW_MASK_EXT)) { |
|
568 |
do_interrupt(env); |
|
569 |
next_tb = 0; |
|
570 |
} |
|
563 | 571 |
#endif |
564 | 572 |
/* Don't use the cached interupt_request value, |
565 | 573 |
do_interrupt may have updated the EXITTB flag. */ |
b/target-s390x/exec.h | ||
---|---|---|
31 | 31 |
|
32 | 32 |
static inline int cpu_has_work(CPUState *env) |
33 | 33 |
{ |
34 |
return env->interrupt_request & CPU_INTERRUPT_HARD; // guess |
|
34 |
return ((env->interrupt_request & CPU_INTERRUPT_HARD) && |
|
35 |
(env->psw.mask & PSW_MASK_EXT)); |
|
36 |
} |
|
37 |
|
|
38 |
static inline void regs_to_env(void) |
|
39 |
{ |
|
40 |
} |
|
41 |
|
|
42 |
static inline void env_to_regs(void) |
|
43 |
{ |
|
35 | 44 |
} |
36 | 45 |
|
37 | 46 |
static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock* tb) |
b/target-s390x/helper.c | ||
---|---|---|
82 | 82 |
return 0; |
83 | 83 |
} |
84 | 84 |
#endif /* CONFIG_USER_ONLY */ |
85 |
|
|
86 |
void do_interrupt (CPUState *env) |
|
87 |
{ |
|
88 |
} |
Also available in: Unified diff