Commit 5b340b51fda6f2bdfde6777aa2c8cf69294e17c9
1 parent
35c4d671
Fix ARM VFP related segfaults.
The fconst change is partly a guess. VFP_OP1 is still unused. An ARMv6 target still won't boot. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4210 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
4 additions
and
4 deletions
target-arm/translate.c
@@ -1009,7 +1009,7 @@ static inline void gen_vfp_##name(int dp) \ | @@ -1009,7 +1009,7 @@ static inline void gen_vfp_##name(int dp) \ | ||
1009 | gen_helper_vfp_##name##s(cpu_F0s, cpu_F0s, cpu_F1s, cpu_env); \ | 1009 | gen_helper_vfp_##name##s(cpu_F0s, cpu_F0s, cpu_F1s, cpu_env); \ |
1010 | } | 1010 | } |
1011 | 1011 | ||
1012 | -#define VFP_OP1i(name) \ | 1012 | +#define VFP_OP1(name) \ |
1013 | static inline void gen_vfp_##name(int dp, int arg) \ | 1013 | static inline void gen_vfp_##name(int dp, int arg) \ |
1014 | { \ | 1014 | { \ |
1015 | if (dp) \ | 1015 | if (dp) \ |
@@ -1068,9 +1068,9 @@ static inline void gen_vfp_cmpe(int dp) | @@ -1068,9 +1068,9 @@ static inline void gen_vfp_cmpe(int dp) | ||
1068 | static inline void gen_vfp_F1_ld0(int dp) | 1068 | static inline void gen_vfp_F1_ld0(int dp) |
1069 | { | 1069 | { |
1070 | if (dp) | 1070 | if (dp) |
1071 | - tcg_gen_movi_i64(cpu_F0d, 0); | 1071 | + tcg_gen_movi_i64(cpu_F1d, 0); |
1072 | else | 1072 | else |
1073 | - tcg_gen_movi_i32(cpu_F0s, 0); | 1073 | + tcg_gen_movi_i32(cpu_F1s, 0); |
1074 | } | 1074 | } |
1075 | 1075 | ||
1076 | static inline void gen_vfp_uito(int dp) | 1076 | static inline void gen_vfp_uito(int dp) |
@@ -3117,7 +3117,7 @@ static int disas_vfp_insn(CPUState * env, DisasContext *s, uint32_t insn) | @@ -3117,7 +3117,7 @@ static int disas_vfp_insn(CPUState * env, DisasContext *s, uint32_t insn) | ||
3117 | else | 3117 | else |
3118 | i |= 0x800; | 3118 | i |= 0x800; |
3119 | n |= i << 19; | 3119 | n |= i << 19; |
3120 | - tcg_gen_movi_i32(cpu_F0d, ((uint64_t)n) << 32); | 3120 | + tcg_gen_movi_i32(cpu_F0s, n); |
3121 | } | 3121 | } |
3122 | break; | 3122 | break; |
3123 | case 15: /* extension space */ | 3123 | case 15: /* extension space */ |