signal.c (95a29a4e3edb3eabde37587b2bcc9d4874c5306f) | signal.c (5de154e82f4e507084f6c12b4ee300221ce078ce) |
---|---|
1/* 2 * Emulation of Linux signals 3 * 4 * Copyright (c) 2003 Fabrice Bellard 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation; either version 2 of the License, or --- 2906 unchanged lines hidden (view full) --- 2915 offsetof(struct target_signal_frame, info); 2916 env->regwptr[UREG_I2] = sf_addr + 2917 offsetof(struct target_signal_frame, info); 2918 2919 /* 4. signal handler */ 2920 env->pc = ka->_sa_handler; 2921 env->npc = (env->pc + 4); 2922 /* 5. return to kernel instructions */ | 1/* 2 * Emulation of Linux signals 3 * 4 * Copyright (c) 2003 Fabrice Bellard 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation; either version 2 of the License, or --- 2906 unchanged lines hidden (view full) --- 2915 offsetof(struct target_signal_frame, info); 2916 env->regwptr[UREG_I2] = sf_addr + 2917 offsetof(struct target_signal_frame, info); 2918 2919 /* 4. signal handler */ 2920 env->pc = ka->_sa_handler; 2921 env->npc = (env->pc + 4); 2922 /* 5. return to kernel instructions */ |
2923 if (ka->sa_restorer) { 2924 env->regwptr[UREG_I7] = ka->sa_restorer; | 2923 if (ka->ka_restorer) { 2924 env->regwptr[UREG_I7] = ka->ka_restorer; |
2925 } else { 2926 uint32_t val32; 2927 2928 env->regwptr[UREG_I7] = sf_addr + 2929 offsetof(struct target_signal_frame, insns) - 2 * 4; 2930 2931 /* mov __NR_sigreturn, %g1 */ 2932 val32 = 0x821020d8; --- 4526 unchanged lines hidden --- | 2925 } else { 2926 uint32_t val32; 2927 2928 env->regwptr[UREG_I7] = sf_addr + 2929 offsetof(struct target_signal_frame, insns) - 2 * 4; 2930 2931 /* mov __NR_sigreturn, %g1 */ 2932 val32 = 0x821020d8; --- 4526 unchanged lines hidden --- |