Commit 25bc827cf233dcac309decd095e3f2b6095596f0
1 parent
ddc2db50
Move 128-bit float emulation under linux-user
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4234 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
2 changed files
with
3 additions
and
108 deletions
Makefile.target
target-sparc/op_helper.c
... | ... | @@ -58,21 +58,6 @@ void helper_check_align(target_ulong addr, uint32_t align) |
58 | 58 | |
59 | 59 | #define F_HELPER(name, p) void helper_f##name##p(void) |
60 | 60 | |
61 | -#if defined(CONFIG_USER_ONLY) | |
62 | -#define F_BINOP(name) \ | |
63 | - F_HELPER(name, s) \ | |
64 | - { \ | |
65 | - FT0 = float32_ ## name (FT0, FT1, &env->fp_status); \ | |
66 | - } \ | |
67 | - F_HELPER(name, d) \ | |
68 | - { \ | |
69 | - DT0 = float64_ ## name (DT0, DT1, &env->fp_status); \ | |
70 | - } \ | |
71 | - F_HELPER(name, q) \ | |
72 | - { \ | |
73 | - QT0 = float128_ ## name (QT0, QT1, &env->fp_status); \ | |
74 | - } | |
75 | -#else | |
76 | 61 | #define F_BINOP(name) \ |
77 | 62 | F_HELPER(name, s) \ |
78 | 63 | { \ |
... | ... | @@ -82,7 +67,6 @@ void helper_check_align(target_ulong addr, uint32_t align) |
82 | 67 | { \ |
83 | 68 | DT0 = float64_ ## name (DT0, DT1, &env->fp_status); \ |
84 | 69 | } |
85 | -#endif | |
86 | 70 | |
87 | 71 | F_BINOP(add); |
88 | 72 | F_BINOP(sub); |
... | ... | @@ -97,15 +81,6 @@ void helper_fsmuld(void) |
97 | 81 | &env->fp_status); |
98 | 82 | } |
99 | 83 | |
100 | -#if defined(CONFIG_USER_ONLY) | |
101 | -void helper_fdmulq(void) | |
102 | -{ | |
103 | - QT0 = float128_mul(float64_to_float128(DT0, &env->fp_status), | |
104 | - float64_to_float128(DT1, &env->fp_status), | |
105 | - &env->fp_status); | |
106 | -} | |
107 | -#endif | |
108 | - | |
109 | 84 | F_HELPER(neg, s) |
110 | 85 | { |
111 | 86 | FT0 = float32_chs(FT1); |
... | ... | @@ -116,13 +91,6 @@ F_HELPER(neg, d) |
116 | 91 | { |
117 | 92 | DT0 = float64_chs(DT1); |
118 | 93 | } |
119 | - | |
120 | -#if defined(CONFIG_USER_ONLY) | |
121 | -F_HELPER(neg, q) | |
122 | -{ | |
123 | - QT0 = float128_chs(QT1); | |
124 | -} | |
125 | -#endif | |
126 | 94 | #endif |
127 | 95 | |
128 | 96 | /* Integer to float conversion. */ |
... | ... | @@ -136,13 +104,6 @@ F_HELPER(ito, d) |
136 | 104 | DT0 = int32_to_float64(*((int32_t *)&FT1), &env->fp_status); |
137 | 105 | } |
138 | 106 | |
139 | -#if defined(CONFIG_USER_ONLY) | |
140 | -F_HELPER(ito, q) | |
141 | -{ | |
142 | - QT0 = int32_to_float128(*((int32_t *)&FT1), &env->fp_status); | |
143 | -} | |
144 | -#endif | |
145 | - | |
146 | 107 | #ifdef TARGET_SPARC64 |
147 | 108 | F_HELPER(xto, s) |
148 | 109 | { |
... | ... | @@ -153,12 +114,6 @@ F_HELPER(xto, d) |
153 | 114 | { |
154 | 115 | DT0 = int64_to_float64(*((int64_t *)&DT1), &env->fp_status); |
155 | 116 | } |
156 | -#if defined(CONFIG_USER_ONLY) | |
157 | -F_HELPER(xto, q) | |
158 | -{ | |
159 | - QT0 = int64_to_float128(*((int64_t *)&DT1), &env->fp_status); | |
160 | -} | |
161 | -#endif | |
162 | 117 | #endif |
163 | 118 | #undef F_HELPER |
164 | 119 | |
... | ... | @@ -173,28 +128,6 @@ void helper_fstod(void) |
173 | 128 | DT0 = float32_to_float64(FT1, &env->fp_status); |
174 | 129 | } |
175 | 130 | |
176 | -#if defined(CONFIG_USER_ONLY) | |
177 | -void helper_fqtos(void) | |
178 | -{ | |
179 | - FT0 = float128_to_float32(QT1, &env->fp_status); | |
180 | -} | |
181 | - | |
182 | -void helper_fstoq(void) | |
183 | -{ | |
184 | - QT0 = float32_to_float128(FT1, &env->fp_status); | |
185 | -} | |
186 | - | |
187 | -void helper_fqtod(void) | |
188 | -{ | |
189 | - DT0 = float128_to_float64(QT1, &env->fp_status); | |
190 | -} | |
191 | - | |
192 | -void helper_fdtoq(void) | |
193 | -{ | |
194 | - QT0 = float64_to_float128(DT1, &env->fp_status); | |
195 | -} | |
196 | -#endif | |
197 | - | |
198 | 131 | /* Float to integer conversion. */ |
199 | 132 | void helper_fstoi(void) |
200 | 133 | { |
... | ... | @@ -206,13 +139,6 @@ void helper_fdtoi(void) |
206 | 139 | *((int32_t *)&FT0) = float64_to_int32_round_to_zero(DT1, &env->fp_status); |
207 | 140 | } |
208 | 141 | |
209 | -#if defined(CONFIG_USER_ONLY) | |
210 | -void helper_fqtoi(void) | |
211 | -{ | |
212 | - *((int32_t *)&FT0) = float128_to_int32_round_to_zero(QT1, &env->fp_status); | |
213 | -} | |
214 | -#endif | |
215 | - | |
216 | 142 | #ifdef TARGET_SPARC64 |
217 | 143 | void helper_fstox(void) |
218 | 144 | { |
... | ... | @@ -224,13 +150,6 @@ void helper_fdtox(void) |
224 | 150 | *((int64_t *)&DT0) = float64_to_int64_round_to_zero(DT1, &env->fp_status); |
225 | 151 | } |
226 | 152 | |
227 | -#if defined(CONFIG_USER_ONLY) | |
228 | -void helper_fqtox(void) | |
229 | -{ | |
230 | - *((int64_t *)&DT0) = float128_to_int64_round_to_zero(QT1, &env->fp_status); | |
231 | -} | |
232 | -#endif | |
233 | - | |
234 | 153 | void helper_faligndata(void) |
235 | 154 | { |
236 | 155 | uint64_t tmp; |
... | ... | @@ -718,13 +637,6 @@ void helper_fabsd(void) |
718 | 637 | { |
719 | 638 | DT0 = float64_abs(DT1); |
720 | 639 | } |
721 | - | |
722 | -#if defined(CONFIG_USER_ONLY) | |
723 | -void helper_fabsq(void) | |
724 | -{ | |
725 | - QT0 = float128_abs(QT1); | |
726 | -} | |
727 | -#endif | |
728 | 640 | #endif |
729 | 641 | |
730 | 642 | void helper_fsqrts(void) |
... | ... | @@ -737,13 +649,6 @@ void helper_fsqrtd(void) |
737 | 649 | DT0 = float64_sqrt(DT1, &env->fp_status); |
738 | 650 | } |
739 | 651 | |
740 | -#if defined(CONFIG_USER_ONLY) | |
741 | -void helper_fsqrtq(void) | |
742 | -{ | |
743 | - QT0 = float128_sqrt(QT1, &env->fp_status); | |
744 | -} | |
745 | -#endif | |
746 | - | |
747 | 652 | #define GEN_FCMP(name, size, reg1, reg2, FS, TRAP) \ |
748 | 653 | void glue(helper_, name) (void) \ |
749 | 654 | { \ |
... | ... | @@ -781,11 +686,6 @@ GEN_FCMP(fcmpd, float64, DT0, DT1, 0, 0); |
781 | 686 | GEN_FCMP(fcmpes, float32, FT0, FT1, 0, 1); |
782 | 687 | GEN_FCMP(fcmped, float64, DT0, DT1, 0, 1); |
783 | 688 | |
784 | -#ifdef CONFIG_USER_ONLY | |
785 | -GEN_FCMP(fcmpq, float128, QT0, QT1, 0, 0); | |
786 | -GEN_FCMP(fcmpeq, float128, QT0, QT1, 0, 1); | |
787 | -#endif | |
788 | - | |
789 | 689 | #ifdef TARGET_SPARC64 |
790 | 690 | GEN_FCMP(fcmps_fcc1, float32, FT0, FT1, 22, 0); |
791 | 691 | GEN_FCMP(fcmpd_fcc1, float64, DT0, DT1, 22, 0); |
... | ... | @@ -804,14 +704,6 @@ GEN_FCMP(fcmped_fcc2, float64, DT0, DT1, 24, 1); |
804 | 704 | |
805 | 705 | GEN_FCMP(fcmpes_fcc3, float32, FT0, FT1, 26, 1); |
806 | 706 | GEN_FCMP(fcmped_fcc3, float64, DT0, DT1, 26, 1); |
807 | -#ifdef CONFIG_USER_ONLY | |
808 | -GEN_FCMP(fcmpq_fcc1, float128, QT0, QT1, 22, 0); | |
809 | -GEN_FCMP(fcmpq_fcc2, float128, QT0, QT1, 24, 0); | |
810 | -GEN_FCMP(fcmpq_fcc3, float128, QT0, QT1, 26, 0); | |
811 | -GEN_FCMP(fcmpeq_fcc1, float128, QT0, QT1, 22, 1); | |
812 | -GEN_FCMP(fcmpeq_fcc2, float128, QT0, QT1, 24, 1); | |
813 | -GEN_FCMP(fcmpeq_fcc3, float128, QT0, QT1, 26, 1); | |
814 | -#endif | |
815 | 707 | #endif |
816 | 708 | |
817 | 709 | #if !defined(TARGET_SPARC64) && !defined(CONFIG_USER_ONLY) && defined(DEBUG_MXCC) | ... | ... |