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 | 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 | 1013 | static inline void gen_vfp_##name(int dp, int arg) \ |
1014 | 1014 | { \ |
1015 | 1015 | if (dp) \ |
... | ... | @@ -1068,9 +1068,9 @@ static inline void gen_vfp_cmpe(int dp) |
1068 | 1068 | static inline void gen_vfp_F1_ld0(int dp) |
1069 | 1069 | { |
1070 | 1070 | if (dp) |
1071 | - tcg_gen_movi_i64(cpu_F0d, 0); | |
1071 | + tcg_gen_movi_i64(cpu_F1d, 0); | |
1072 | 1072 | else |
1073 | - tcg_gen_movi_i32(cpu_F0s, 0); | |
1073 | + tcg_gen_movi_i32(cpu_F1s, 0); | |
1074 | 1074 | } |
1075 | 1075 | |
1076 | 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 | 3117 | else |
3118 | 3118 | i |= 0x800; |
3119 | 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 | 3122 | break; |
3123 | 3123 | case 15: /* extension space */ | ... | ... |