/[qemu]/qemu/linux-user/signal.c
ViewVC logotype

Diff of /qemu/linux-user/signal.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.29 by bellard, Sun Apr 17 19:16:13 2005 UTC revision 1.30 by bellard, Sat Nov 26 10:38:38 2005 UTC
# Line 1003  setup_sigcontext(struct target_sigcontex Line 1003  setup_sigcontext(struct target_sigcontex
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);
# Line 1040  setup_return(CPUState *env, struct emula Line 1040  setup_return(CPUState *env, struct emula
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           */           */
# Line 1088  setup_return(CPUState *env, struct emula Line 1088  setup_return(CPUState *env, struct emula
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  }  }
# Line 1157  static int Line 1159  static int
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);
# Line 1175  restore_sigcontext(CPUState *env, struct Line 1178  restore_sigcontext(CPUState *env, struct
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);

Legend:
Removed from v.1.29  
changed lines
  Added in v.1.30

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26