signal.c (41feb5b955f0d7c9d071b2c5adbc404ae2895c7a) signal.c (7fbc6a403a0aab834e764fa61d81ed8586cfe352)
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

--- 332 unchanged lines hidden (view full) ---

341
342 memset(&stack, 0, sizeof(stack));
343 target_save_altstack(&stack, env);
344 memcpy(&uc->tuc_stack, &stack, sizeof(stack));
345
346 setup_sigcontext(&uc->tuc_mcontext, env, set->sig[0]);
347 /* Save coprocessor signal frame. */
348 regspace = uc->tuc_regspace;
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

--- 332 unchanged lines hidden (view full) ---

341
342 memset(&stack, 0, sizeof(stack));
343 target_save_altstack(&stack, env);
344 memcpy(&uc->tuc_stack, &stack, sizeof(stack));
345
346 setup_sigcontext(&uc->tuc_mcontext, env, set->sig[0]);
347 /* Save coprocessor signal frame. */
348 regspace = uc->tuc_regspace;
349 if (arm_feature(env, ARM_FEATURE_VFP)) {
349 if (cpu_isar_feature(aa32_vfp_simd, env_archcpu(env))) {
350 regspace = setup_sigframe_v2_vfp(regspace, env);
351 }
352 if (arm_feature(env, ARM_FEATURE_IWMMXT)) {
353 regspace = setup_sigframe_v2_iwmmxt(regspace, env);
354 }
355
356 /* Write terminating magic word */
357 __put_user(0, regspace);

--- 308 unchanged lines hidden (view full) ---

666 target_to_host_sigset(&host_set, &uc->tuc_sigmask);
667 set_sigmask(&host_set);
668
669 if (restore_sigcontext(env, &uc->tuc_mcontext))
670 return 1;
671
672 /* Restore coprocessor signal frame */
673 regspace = uc->tuc_regspace;
350 regspace = setup_sigframe_v2_vfp(regspace, env);
351 }
352 if (arm_feature(env, ARM_FEATURE_IWMMXT)) {
353 regspace = setup_sigframe_v2_iwmmxt(regspace, env);
354 }
355
356 /* Write terminating magic word */
357 __put_user(0, regspace);

--- 308 unchanged lines hidden (view full) ---

666 target_to_host_sigset(&host_set, &uc->tuc_sigmask);
667 set_sigmask(&host_set);
668
669 if (restore_sigcontext(env, &uc->tuc_mcontext))
670 return 1;
671
672 /* Restore coprocessor signal frame */
673 regspace = uc->tuc_regspace;
674 if (arm_feature(env, ARM_FEATURE_VFP)) {
674 if (cpu_isar_feature(aa32_vfp_simd, env_archcpu(env))) {
675 regspace = restore_sigframe_v2_vfp(env, regspace);
676 if (!regspace) {
677 return 1;
678 }
679 }
680 if (arm_feature(env, ARM_FEATURE_IWMMXT)) {
681 regspace = restore_sigframe_v2_iwmmxt(env, regspace);
682 if (!regspace) {

--- 153 unchanged lines hidden ---
675 regspace = restore_sigframe_v2_vfp(env, regspace);
676 if (!regspace) {
677 return 1;
678 }
679 }
680 if (arm_feature(env, ARM_FEATURE_IWMMXT)) {
681 regspace = restore_sigframe_v2_iwmmxt(env, regspace);
682 if (!regspace) {

--- 153 unchanged lines hidden ---