Changeset 964:aa2e3a6c3410
- Timestamp:
- 02/15/09 19:43:14
(3 years ago)
- Author:
- Frits van Bommel <fvbommel wxs.nl>
- branch:
- default
- Message:
Some changes I missed in my last commit (wound up in wrong patch file)
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r959 |
r964 |
|
| 119 | 119 | else version (X86_64) |
|---|
| 120 | 120 | { |
|---|
| 121 | | asm |
|---|
| 122 | | { |
|---|
| 123 | | movss XMM1, [two_f]; |
|---|
| 124 | | movss XMM0, [one_f]; |
|---|
| 125 | | movd ECX, XMM1; |
|---|
| 126 | | movd EAX, XMM0; |
|---|
| 127 | | |
|---|
| 128 | | // invalid operand size :( |
|---|
| 129 | | //shl RCX, 32; |
|---|
| 130 | | //or RAX, RCX; |
|---|
| 131 | | |
|---|
| 132 | | pushq RAX; |
|---|
| 133 | | mov [RSP + 4], EAX; |
|---|
| 134 | | popq RAX; |
|---|
| 135 | | |
|---|
| 136 | | movd XMM0, RAX; |
|---|
| | 121 | version(all) { |
|---|
| | 122 | asm |
|---|
| | 123 | { |
|---|
| | 124 | movss XMM0, [one_f]; |
|---|
| | 125 | movss XMM1, [two_f]; |
|---|
| | 126 | } |
|---|
| | 127 | } else { |
|---|
| | 128 | // Code for when LDC becomes ABI-compatible with GCC |
|---|
| | 129 | // regarding cfloat returns. |
|---|
| | 130 | asm { |
|---|
| | 131 | movd EAX, [one_f]; |
|---|
| | 132 | movd ECX, [two_f]; |
|---|
| | 133 | |
|---|
| | 134 | // invalid operand size :( |
|---|
| | 135 | //shl RCX, 32; |
|---|
| | 136 | //or RAX, RCX; |
|---|
| | 137 | |
|---|
| | 138 | pushq RAX; |
|---|
| | 139 | mov [RSP + 4], EAX; |
|---|
| | 140 | popq RAX; |
|---|
| | 141 | |
|---|
| | 142 | movd XMM0, RAX; |
|---|
| | 143 | } |
|---|
| 137 | 144 | } |
|---|
| 138 | 145 | } |
|---|
| … | … | |
| 154 | 161 | else version (X86_64) |
|---|
| 155 | 162 | { |
|---|
| 156 | | asm |
|---|
| 157 | | { |
|---|
| 158 | | naked; |
|---|
| 159 | | movss XMM1, [two_f]; |
|---|
| 160 | | movss XMM0, [one_f]; |
|---|
| 161 | | movd ECX, XMM1; |
|---|
| 162 | | movd EAX, XMM0; |
|---|
| 163 | | |
|---|
| 164 | | // invalid operand size :( |
|---|
| 165 | | //shl RCX, 32; |
|---|
| 166 | | //or RAX, RCX; |
|---|
| 167 | | |
|---|
| 168 | | pushq RAX; |
|---|
| 169 | | mov [RSP + 4], EAX; |
|---|
| 170 | | popq RAX; |
|---|
| 171 | | |
|---|
| 172 | | movd RAX, XMM0; |
|---|
| 173 | | ret; |
|---|
| | 163 | version(all) { |
|---|
| | 164 | asm |
|---|
| | 165 | { |
|---|
| | 166 | naked; |
|---|
| | 167 | movss XMM0, [one_f]; |
|---|
| | 168 | movss XMM1, [two_f]; |
|---|
| | 169 | ret; |
|---|
| | 170 | } |
|---|
| | 171 | } else { |
|---|
| | 172 | // Code for when LDC becomes ABI-compatible with GCC |
|---|
| | 173 | // regarding cfloat returns. |
|---|
| | 174 | asm { |
|---|
| | 175 | naked; |
|---|
| | 176 | mov EAX, [one_f]; |
|---|
| | 177 | mov ECX, [two_f]; |
|---|
| | 178 | |
|---|
| | 179 | // invalid operand size :( |
|---|
| | 180 | //shl RCX, 32; |
|---|
| | 181 | //or RAX, RCX; |
|---|
| | 182 | |
|---|
| | 183 | pushq RAX; |
|---|
| | 184 | mov [RSP + 4], EAX; |
|---|
| | 185 | popq RAX; |
|---|
| | 186 | |
|---|
| | 187 | movd RAX, XMM0; |
|---|
| | 188 | ret; |
|---|
| | 189 | } |
|---|
| 174 | 190 | } |
|---|
| 175 | 191 | } |
|---|
| … | … | |
| 184 | 200 | version(X86) |
|---|
| 185 | 201 | { |
|---|
| 186 | | asm { fld1; fld two_d } |
|---|
| | 202 | asm { fld1; fld two_d; } |
|---|
| 187 | 203 | } |
|---|
| 188 | 204 | else version (X86_64) |
|---|