Revision 417bf010
b/target-ppc/translate.c | ||
---|---|---|
3297 | 3297 |
#endif |
3298 | 3298 |
|
3299 | 3299 |
/* sc */ |
3300 |
#if defined(CONFIG_USER_ONLY) |
|
3301 |
#define POWERPC_SYSCALL POWERPC_EXCP_SYSCALL_USER |
|
3302 |
#else |
|
3303 |
#define POWERPC_SYSCALL POWERPC_EXCP_SYSCALL |
|
3304 |
#endif |
|
3300 | 3305 |
GEN_HANDLER(sc, 0x11, 0xFF, 0xFF, 0x03FFF01D, PPC_FLOW) |
3301 | 3306 |
{ |
3302 | 3307 |
uint32_t lev; |
3303 | 3308 |
|
3304 | 3309 |
lev = (ctx->opcode >> 5) & 0x7F; |
3305 |
#if defined(CONFIG_USER_ONLY) |
|
3306 |
GEN_EXCP(ctx, POWERPC_EXCP_SYSCALL_USER, lev); |
|
3307 |
#else |
|
3308 |
GEN_EXCP(ctx, POWERPC_EXCP_SYSCALL, lev); |
|
3309 |
#endif |
|
3310 |
GEN_EXCP(ctx, POWERPC_SYSCALL, lev); |
|
3310 | 3311 |
} |
3311 | 3312 |
|
3312 | 3313 |
/*** Trap ***/ |
... | ... | |
6830 | 6831 |
} else if (unlikely(single_step != 0 && |
6831 | 6832 |
(ctx.nip <= 0x100 || ctx.nip > 0xF00 || |
6832 | 6833 |
(ctx.nip & 0xFC) != 0x04) && |
6833 |
#if defined(CONFIG_USER_ONLY) |
|
6834 |
ctx.exception != POWERPC_EXCP_SYSCALL_USER && |
|
6835 |
#else |
|
6836 |
ctx.exception != POWERPC_EXCP_SYSCALL && |
|
6837 |
#endif |
|
6834 |
ctx.exception != POWERPC_SYSCALL && |
|
6838 | 6835 |
ctx.exception != POWERPC_EXCP_TRAP)) { |
6839 | 6836 |
GEN_EXCP(ctxp, POWERPC_EXCP_TRACE, 0); |
6840 | 6837 |
} else if (unlikely(((ctx.nip & (TARGET_PAGE_SIZE - 1)) == 0) || |
b/target-ppc/translate_init.c | ||
---|---|---|
4024 | 4024 |
#define POWERPC_BFDM_970 (bfd_mach_ppc64) |
4025 | 4025 |
#define POWERPC_FLAG_970 (POWERPC_FLAG_VRE) |
4026 | 4026 |
|
4027 |
#if defined(CONFIG_USER_ONLY) |
|
4028 |
#define POWERPC970_HID5_INIT 0x00000080 |
|
4029 |
#else |
|
4030 |
#define POWERPC970_HID5_INIT 0x00000000 |
|
4031 |
#endif |
|
4032 |
|
|
4027 | 4033 |
static void init_proc_970 (CPUPPCState *env) |
4028 | 4034 |
{ |
4029 | 4035 |
gen_spr_ne_601(env); |
... | ... | |
4050 | 4056 |
spr_register(env, SPR_970_HID5, "HID5", |
4051 | 4057 |
SPR_NOACCESS, SPR_NOACCESS, |
4052 | 4058 |
&spr_read_generic, &spr_write_generic, |
4053 |
#if defined(CONFIG_USER_ONLY) |
|
4054 |
0x00000080 |
|
4055 |
#else |
|
4056 |
0x00000000 |
|
4057 |
#endif |
|
4058 |
); |
|
4059 |
POWERPC970_HID5_INIT); |
|
4059 | 4060 |
/* Memory management */ |
4060 | 4061 |
/* XXX: not correct */ |
4061 | 4062 |
gen_low_BATs(env); |
... | ... | |
4123 | 4124 |
spr_register(env, SPR_970_HID5, "HID5", |
4124 | 4125 |
SPR_NOACCESS, SPR_NOACCESS, |
4125 | 4126 |
&spr_read_generic, &spr_write_generic, |
4126 |
#if defined(CONFIG_USER_ONLY) |
|
4127 |
0x00000080 |
|
4128 |
#else |
|
4129 |
0x00000000 |
|
4130 |
#endif |
|
4131 |
); |
|
4127 |
POWERPC970_HID5_INIT); |
|
4132 | 4128 |
/* Memory management */ |
4133 | 4129 |
/* XXX: not correct */ |
4134 | 4130 |
gen_low_BATs(env); |
... | ... | |
4196 | 4192 |
spr_register(env, SPR_970_HID5, "HID5", |
4197 | 4193 |
SPR_NOACCESS, SPR_NOACCESS, |
4198 | 4194 |
&spr_read_generic, &spr_write_generic, |
4199 |
#if defined(CONFIG_USER_ONLY) |
|
4200 |
0x00000080 |
|
4201 |
#else |
|
4202 |
0x00000000 |
|
4203 |
#endif |
|
4204 |
); |
|
4195 |
POWERPC970_HID5_INIT); |
|
4205 | 4196 |
/* Memory management */ |
4206 | 4197 |
/* XXX: not correct */ |
4207 | 4198 |
gen_low_BATs(env); |
Also available in: Unified diff