1003 |
__put_user_error(env->regs[14], &sc->arm_lr, err); |
__put_user_error(env->regs[14], &sc->arm_lr, err); |
1004 |
__put_user_error(env->regs[15], &sc->arm_pc, err); |
__put_user_error(env->regs[15], &sc->arm_pc, err); |
1005 |
#ifdef TARGET_CONFIG_CPU_32 |
#ifdef TARGET_CONFIG_CPU_32 |
1006 |
__put_user_error(env->cpsr, &sc->arm_cpsr, err); |
__put_user_error(cpsr_read(env), &sc->arm_cpsr, err); |
1007 |
#endif |
#endif |
1008 |
|
|
1009 |
__put_user_error(/* current->thread.trap_no */ 0, &sc->trap_no, err); |
__put_user_error(/* current->thread.trap_no */ 0, &sc->trap_no, err); |
1040 |
target_ulong retcode; |
target_ulong retcode; |
1041 |
int thumb = 0; |
int thumb = 0; |
1042 |
#if defined(TARGET_CONFIG_CPU_32) |
#if defined(TARGET_CONFIG_CPU_32) |
1043 |
|
#if 0 |
1044 |
target_ulong cpsr = env->cpsr; |
target_ulong cpsr = env->cpsr; |
1045 |
|
|
|
#if 0 |
|
1046 |
/* |
/* |
1047 |
* Maybe we need to deliver a 32-bit signal to a 26-bit task. |
* Maybe we need to deliver a 32-bit signal to a 26-bit task. |
1048 |
*/ |
*/ |
1088 |
env->regs[14] = retcode; |
env->regs[14] = retcode; |
1089 |
env->regs[15] = handler & (thumb ? ~1 : ~3); |
env->regs[15] = handler & (thumb ? ~1 : ~3); |
1090 |
|
|
1091 |
|
#if 0 |
1092 |
#ifdef TARGET_CONFIG_CPU_32 |
#ifdef TARGET_CONFIG_CPU_32 |
1093 |
env->cpsr = cpsr; |
env->cpsr = cpsr; |
1094 |
#endif |
#endif |
1095 |
|
#endif |
1096 |
|
|
1097 |
return 0; |
return 0; |
1098 |
} |
} |
1159 |
restore_sigcontext(CPUState *env, struct target_sigcontext *sc) |
restore_sigcontext(CPUState *env, struct target_sigcontext *sc) |
1160 |
{ |
{ |
1161 |
int err = 0; |
int err = 0; |
1162 |
|
uint32_t cpsr; |
1163 |
|
|
1164 |
__get_user_error(env->regs[0], &sc->arm_r0, err); |
__get_user_error(env->regs[0], &sc->arm_r0, err); |
1165 |
__get_user_error(env->regs[1], &sc->arm_r1, err); |
__get_user_error(env->regs[1], &sc->arm_r1, err); |
1178 |
__get_user_error(env->regs[14], &sc->arm_lr, err); |
__get_user_error(env->regs[14], &sc->arm_lr, err); |
1179 |
__get_user_error(env->regs[15], &sc->arm_pc, err); |
__get_user_error(env->regs[15], &sc->arm_pc, err); |
1180 |
#ifdef TARGET_CONFIG_CPU_32 |
#ifdef TARGET_CONFIG_CPU_32 |
1181 |
__get_user_error(env->cpsr, &sc->arm_cpsr, err); |
__get_user_error(cpsr, &sc->arm_cpsr, err); |
1182 |
|
cpsr_write(env, cpsr, 0xffffffff); |
1183 |
#endif |
#endif |
1184 |
|
|
1185 |
err |= !valid_user_regs(env); |
err |= !valid_user_regs(env); |