Commit 90cb94935228cc064f99fe98e70a8ea5deefb689
1 parent
db6e6ed7
s390 bits
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1530 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
3 changed files
with
27 additions
and
0 deletions
cpu-exec.c
| ... | ... | @@ -1280,6 +1280,23 @@ int cpu_signal_handler(int host_signum, struct siginfo *info, void *puc) |
| 1280 | 1280 | &uc->uc_sigmask, puc); |
| 1281 | 1281 | } |
| 1282 | 1282 | |
| 1283 | +#elif defined(__s390__) | |
| 1284 | + | |
| 1285 | +int cpu_signal_handler(int host_signum, struct siginfo *info, | |
| 1286 | + void *puc) | |
| 1287 | +{ | |
| 1288 | + struct ucontext *uc = puc; | |
| 1289 | + unsigned long pc; | |
| 1290 | + int is_write; | |
| 1291 | + | |
| 1292 | + pc = uc->uc_mcontext.psw.addr; | |
| 1293 | + /* XXX: compute is_write */ | |
| 1294 | + is_write = 0; | |
| 1295 | + return handle_cpu_signal(pc, (unsigned long)info->si_addr, | |
| 1296 | + is_write, | |
| 1297 | + &uc->uc_sigmask, puc); | |
| 1298 | +} | |
| 1299 | + | |
| 1283 | 1300 | #else |
| 1284 | 1301 | |
| 1285 | 1302 | #error host CPU specific signal handler needed | ... | ... |
dyngen-exec.h
| ... | ... | @@ -218,6 +218,7 @@ extern int __op_jmp0, __op_jmp1, __op_jmp2, __op_jmp3; |
| 218 | 218 | #endif |
| 219 | 219 | #ifdef __s390__ |
| 220 | 220 | #define EXIT_TB() asm volatile ("br %r14") |
| 221 | +#define GOTO_LABEL_PARAM(n) asm volatile ("b " ASM_NAME(__op_gen_label) #n) | |
| 221 | 222 | #endif |
| 222 | 223 | #ifdef __alpha__ |
| 223 | 224 | #define EXIT_TB() asm volatile ("ret") | ... | ... |
vl.c
| ... | ... | @@ -532,6 +532,15 @@ int64_t cpu_get_real_ticks(void) |
| 532 | 532 | return val; |
| 533 | 533 | } |
| 534 | 534 | |
| 535 | +#elif defined(__s390__) | |
| 536 | + | |
| 537 | +int64_t cpu_get_real_ticks(void) | |
| 538 | +{ | |
| 539 | + int64_t val; | |
| 540 | + asm volatile("stck 0(%1)" : "=m" (val) : "a" (&val) : "cc"); | |
| 541 | + return val; | |
| 542 | +} | |
| 543 | + | |
| 535 | 544 | #else |
| 536 | 545 | #error unsupported CPU |
| 537 | 546 | #endif | ... | ... |