Commit 273af66025e8cc6982febfb4a74a8d9106a92440

Authored by ths
1 parent b50a6563

Adjust s390 addresses (the MSB is defined as "to be ignored").


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3486 c046a42c-6fe2-441c-8c8c-71466251a162
target-alpha/op_helper.c
@@ -1076,7 +1076,11 @@ void helper_mtpr (int iprn) @@ -1076,7 +1076,11 @@ void helper_mtpr (int iprn)
1076 /* Softmmu support */ 1076 /* Softmmu support */
1077 #if !defined (CONFIG_USER_ONLY) 1077 #if !defined (CONFIG_USER_ONLY)
1078 1078
1079 -#define GETPC() (__builtin_return_address(0)) 1079 +#ifdef __s390__
  1080 +# define GETPC() ((void*)((unsigned long)__builtin_return_address(0) & 0x7fffffffUL))
  1081 +#else
  1082 +# define GETPC() (__builtin_return_address(0))
  1083 +#endif
1080 1084
1081 /* XXX: the two following helpers are pure hacks. 1085 /* XXX: the two following helpers are pure hacks.
1082 * Hopefully, we emulate the PALcode, then we should never see 1086 * Hopefully, we emulate the PALcode, then we should never see
target-arm/op_helper.c
@@ -178,7 +178,11 @@ void do_vfp_get_fpscr(void) @@ -178,7 +178,11 @@ void do_vfp_get_fpscr(void)
178 #if !defined(CONFIG_USER_ONLY) 178 #if !defined(CONFIG_USER_ONLY)
179 179
180 #define MMUSUFFIX _mmu 180 #define MMUSUFFIX _mmu
181 -#define GETPC() (__builtin_return_address(0)) 181 +#ifdef __s390__
  182 +# define GETPC() ((void*)((unsigned long)__builtin_return_address(0) & 0x7fffffffUL))
  183 +#else
  184 +# define GETPC() (__builtin_return_address(0))
  185 +#endif
182 186
183 #define SHIFT 0 187 #define SHIFT 0
184 #include "softmmu_template.h" 188 #include "softmmu_template.h"
target-cris/op_helper.c
@@ -23,7 +23,11 @@ @@ -23,7 +23,11 @@
23 #include "exec.h" 23 #include "exec.h"
24 24
25 #define MMUSUFFIX _mmu 25 #define MMUSUFFIX _mmu
26 -#define GETPC() (__builtin_return_address(0)) 26 +#ifdef __s390__
  27 +# define GETPC() ((void*)((unsigned long)__builtin_return_address(0) & 0x7fffffffUL))
  28 +#else
  29 +# define GETPC() (__builtin_return_address(0))
  30 +#endif
27 31
28 #define SHIFT 0 32 #define SHIFT 0
29 #include "softmmu_template.h" 33 #include "softmmu_template.h"
target-i386/helper.c
@@ -3865,7 +3865,11 @@ void update_fp_status(void) @@ -3865,7 +3865,11 @@ void update_fp_status(void)
3865 #if !defined(CONFIG_USER_ONLY) 3865 #if !defined(CONFIG_USER_ONLY)
3866 3866
3867 #define MMUSUFFIX _mmu 3867 #define MMUSUFFIX _mmu
3868 -#define GETPC() (__builtin_return_address(0)) 3868 +#ifdef __s390__
  3869 +# define GETPC() ((void*)((unsigned long)__builtin_return_address(0) & 0x7fffffffUL))
  3870 +#else
  3871 +# define GETPC() (__builtin_return_address(0))
  3872 +#endif
3869 3873
3870 #define SHIFT 0 3874 #define SHIFT 0
3871 #include "softmmu_template.h" 3875 #include "softmmu_template.h"
target-m68k/op_helper.c
@@ -31,7 +31,11 @@ void do_interrupt(int is_hw) @@ -31,7 +31,11 @@ void do_interrupt(int is_hw)
31 extern int semihosting_enabled; 31 extern int semihosting_enabled;
32 32
33 #define MMUSUFFIX _mmu 33 #define MMUSUFFIX _mmu
34 -#define GETPC() (__builtin_return_address(0)) 34 +#ifdef __s390__
  35 +# define GETPC() ((void*)((unsigned long)__builtin_return_address(0) & 0x7fffffffUL))
  36 +#else
  37 +# define GETPC() (__builtin_return_address(0))
  38 +#endif
35 39
36 #define SHIFT 0 40 #define SHIFT 0
37 #include "softmmu_template.h" 41 #include "softmmu_template.h"
target-mips/op_helper.c
@@ -22,7 +22,11 @@ @@ -22,7 +22,11 @@
22 22
23 #include "host-utils.h" 23 #include "host-utils.h"
24 24
25 -#define GETPC() (__builtin_return_address(0)) 25 +#ifdef __s390__
  26 +# define GETPC() ((void*)((unsigned long)__builtin_return_address(0) & 0x7fffffffUL))
  27 +#else
  28 +# define GETPC() (__builtin_return_address(0))
  29 +#endif
26 30
27 /*****************************************************************************/ 31 /*****************************************************************************/
28 /* Exceptions processing helpers */ 32 /* Exceptions processing helpers */
target-ppc/op_helper.c
@@ -2732,7 +2732,11 @@ DO_SPE_OP1(fsctuf); @@ -2732,7 +2732,11 @@ DO_SPE_OP1(fsctuf);
2732 #if !defined (CONFIG_USER_ONLY) 2732 #if !defined (CONFIG_USER_ONLY)
2733 2733
2734 #define MMUSUFFIX _mmu 2734 #define MMUSUFFIX _mmu
2735 -#define GETPC() (__builtin_return_address(0)) 2735 +#ifdef __s390__
  2736 +# define GETPC() ((void*)((unsigned long)__builtin_return_address(0) & 0x7fffffffUL))
  2737 +#else
  2738 +# define GETPC() (__builtin_return_address(0))
  2739 +#endif
2736 2740
2737 #define SHIFT 0 2741 #define SHIFT 0
2738 #include "softmmu_template.h" 2742 #include "softmmu_template.h"
target-sh4/op_helper.c
@@ -28,7 +28,11 @@ void do_raise_exception(void) @@ -28,7 +28,11 @@ void do_raise_exception(void)
28 #ifndef CONFIG_USER_ONLY 28 #ifndef CONFIG_USER_ONLY
29 29
30 #define MMUSUFFIX _mmu 30 #define MMUSUFFIX _mmu
31 -#define GETPC() (__builtin_return_address(0)) 31 +#ifdef __s390__
  32 +# define GETPC() ((void*)((unsigned long)__builtin_return_address(0) & 0x7fffffffUL))
  33 +#else
  34 +# define GETPC() (__builtin_return_address(0))
  35 +#endif
32 36
33 #define SHIFT 0 37 #define SHIFT 0
34 #include "softmmu_template.h" 38 #include "softmmu_template.h"
target-sparc/op_helper.c
@@ -1680,7 +1680,11 @@ static void do_unaligned_access(target_ulong addr, int is_write, int is_user, @@ -1680,7 +1680,11 @@ static void do_unaligned_access(target_ulong addr, int is_write, int is_user,
1680 1680
1681 #define MMUSUFFIX _mmu 1681 #define MMUSUFFIX _mmu
1682 #define ALIGNED_ONLY 1682 #define ALIGNED_ONLY
1683 -#define GETPC() (__builtin_return_address(0)) 1683 +#ifdef __s390__
  1684 +# define GETPC() ((void*)((unsigned long)__builtin_return_address(0) & 0x7fffffffUL))
  1685 +#else
  1686 +# define GETPC() (__builtin_return_address(0))
  1687 +#endif
1684 1688
1685 #define SHIFT 0 1689 #define SHIFT 0
1686 #include "softmmu_template.h" 1690 #include "softmmu_template.h"