Revision e85e7c6e linux-user/main.c
b/linux-user/main.c | ||
---|---|---|
1008 | 1008 |
"Aborting\n"); |
1009 | 1009 |
break; |
1010 | 1010 |
#endif /* defined(TARGET_PPCEMB) */ |
1011 |
#if defined(TARGET_PPC64) /* PowerPC 64 */ |
|
1011 |
#if defined(TARGET_PPC64) && !defined(TARGET_ABI32) /* PowerPC 64 */
|
|
1012 | 1012 |
case POWERPC_EXCP_DSEG: /* Data segment exception */ |
1013 | 1013 |
cpu_abort(env, "Data segment exception while in user mode. " |
1014 | 1014 |
"Aborting\n"); |
... | ... | |
1017 | 1017 |
cpu_abort(env, "Instruction segment exception " |
1018 | 1018 |
"while in user mode. Aborting\n"); |
1019 | 1019 |
break; |
1020 |
#endif /* defined(TARGET_PPC64) */ |
|
1021 |
#if defined(TARGET_PPC64H) /* PowerPC 64 with hypervisor mode support */ |
|
1020 |
#endif /* defined(TARGET_PPC64) && !defined(TARGET_ABI32) */ |
|
1021 |
#if defined(TARGET_PPC64H) && !defined(TARGET_ABI32) |
|
1022 |
/* PowerPC 64 with hypervisor mode support */ |
|
1022 | 1023 |
case POWERPC_EXCP_HDECR: /* Hypervisor decrementer exception */ |
1023 | 1024 |
cpu_abort(env, "Hypervisor decrementer interrupt " |
1024 | 1025 |
"while in user mode. Aborting\n"); |
1025 | 1026 |
break; |
1026 |
#endif /* defined(TARGET_PPC64H) */ |
|
1027 |
#endif /* defined(TARGET_PPC64H) && !defined(TARGET_ABI32) */
|
|
1027 | 1028 |
case POWERPC_EXCP_TRACE: /* Trace exception */ |
1028 | 1029 |
/* Nothing to do: |
1029 | 1030 |
* we use this exception to emulate step-by-step execution mode. |
1030 | 1031 |
*/ |
1031 | 1032 |
break; |
1032 |
#if defined(TARGET_PPC64H) /* PowerPC 64 with hypervisor mode support */ |
|
1033 |
#if defined(TARGET_PPC64H) && !defined(TARGET_ABI32) |
|
1034 |
/* PowerPC 64 with hypervisor mode support */ |
|
1033 | 1035 |
case POWERPC_EXCP_HDSI: /* Hypervisor data storage exception */ |
1034 | 1036 |
cpu_abort(env, "Hypervisor data storage exception " |
1035 | 1037 |
"while in user mode. Aborting\n"); |
... | ... | |
1046 | 1048 |
cpu_abort(env, "Hypervisor instruction segment exception " |
1047 | 1049 |
"while in user mode. Aborting\n"); |
1048 | 1050 |
break; |
1049 |
#endif /* defined(TARGET_PPC64H) */ |
|
1051 |
#endif /* defined(TARGET_PPC64H) && !defined(TARGET_ABI32) */
|
|
1050 | 1052 |
case POWERPC_EXCP_VPU: /* Vector unavailable exception */ |
1051 | 1053 |
EXCP_DUMP(env, "No Altivec instructions allowed\n"); |
1052 | 1054 |
info.si_signo = TARGET_SIGILL; |
... | ... | |
2170 | 2172 |
if (i != 12 && i != 6 && i != 13) |
2171 | 2173 |
env->msr[i] = (regs->msr >> i) & 1; |
2172 | 2174 |
} |
2173 |
#if defined(TARGET_PPC64) |
|
2175 |
#if defined(TARGET_PPC64) && !defined(TARGET_ABI32)
|
|
2174 | 2176 |
msr_sf = 1; |
2177 |
#else |
|
2178 |
msr_sf = 0; |
|
2175 | 2179 |
#endif |
2176 | 2180 |
env->nip = regs->nip; |
2177 | 2181 |
for(i = 0; i < 32; i++) { |
Also available in: Unified diff