Revision c9e1e2b0
b/cpu-exec.c | ||
---|---|---|
1297 | 1297 |
void *puc) |
1298 | 1298 |
{ |
1299 | 1299 |
siginfo_t *info = pinfo; |
1300 |
uint32_t *regs = (uint32_t *)(info + 1); |
|
1301 |
void *sigmask = (regs + 20); |
|
1302 |
unsigned long pc; |
|
1303 | 1300 |
int is_write; |
1304 | 1301 |
uint32_t insn; |
1305 |
|
|
1302 |
#if !defined(__sparc_v9__) || defined(HOST_SOLARIS) |
|
1303 |
uint32_t *regs = (uint32_t *)(info + 1); |
|
1304 |
void *sigmask = (regs + 20); |
|
1306 | 1305 |
/* XXX: is there a standard glibc define ? */ |
1307 |
pc = regs[1]; |
|
1306 |
unsigned long pc = regs[1]; |
|
1307 |
#else |
|
1308 |
struct sigcontext *sc = puc; |
|
1309 |
unsigned long pc = sc->sigc_regs.tpc; |
|
1310 |
void *sigmask = (void *)sc->sigc_mask; |
|
1311 |
#endif |
|
1312 |
|
|
1308 | 1313 |
/* XXX: need kernel patch to get write flag faster */ |
1309 | 1314 |
is_write = 0; |
1310 | 1315 |
insn = *(uint32_t *)pc; |
Also available in: Unified diff