OLD | NEW |
1 // Copyright (c) 1994-2006 Sun Microsystems Inc. | 1 // Copyright (c) 1994-2006 Sun Microsystems Inc. |
2 // All Rights Reserved. | 2 // All Rights Reserved. |
3 // | 3 // |
4 // Redistribution and use in source and binary forms, with or without | 4 // Redistribution and use in source and binary forms, with or without |
5 // modification, are permitted provided that the following conditions are | 5 // modification, are permitted provided that the following conditions are |
6 // met: | 6 // met: |
7 // | 7 // |
8 // - Redistributions of source code must retain the above copyright notice, | 8 // - Redistributions of source code must retain the above copyright notice, |
9 // this list of conditions and the following disclaimer. | 9 // this list of conditions and the following disclaimer. |
10 // | 10 // |
(...skipping 2259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2270 uint64_t i; | 2270 uint64_t i; |
2271 memcpy(&i, &d, 8); | 2271 memcpy(&i, &d, 8); |
2272 | 2272 |
2273 *lo = i & 0xffffffff; | 2273 *lo = i & 0xffffffff; |
2274 *hi = i >> 32; | 2274 *hi = i >> 32; |
2275 } | 2275 } |
2276 | 2276 |
2277 | 2277 |
2278 // Arithmetic. | 2278 // Arithmetic. |
2279 | 2279 |
| 2280 void Assembler::add_s(FPURegister fd, FPURegister fs, FPURegister ft) { |
| 2281 GenInstrRegister(COP1, S, ft, fs, fd, ADD_D); |
| 2282 } |
| 2283 |
| 2284 |
2280 void Assembler::add_d(FPURegister fd, FPURegister fs, FPURegister ft) { | 2285 void Assembler::add_d(FPURegister fd, FPURegister fs, FPURegister ft) { |
2281 GenInstrRegister(COP1, D, ft, fs, fd, ADD_D); | 2286 GenInstrRegister(COP1, D, ft, fs, fd, ADD_D); |
2282 } | 2287 } |
2283 | 2288 |
2284 | 2289 |
| 2290 void Assembler::sub_s(FPURegister fd, FPURegister fs, FPURegister ft) { |
| 2291 GenInstrRegister(COP1, S, ft, fs, fd, SUB_D); |
| 2292 } |
| 2293 |
| 2294 |
2285 void Assembler::sub_d(FPURegister fd, FPURegister fs, FPURegister ft) { | 2295 void Assembler::sub_d(FPURegister fd, FPURegister fs, FPURegister ft) { |
2286 GenInstrRegister(COP1, D, ft, fs, fd, SUB_D); | 2296 GenInstrRegister(COP1, D, ft, fs, fd, SUB_D); |
2287 } | 2297 } |
2288 | 2298 |
2289 | 2299 |
| 2300 void Assembler::mul_s(FPURegister fd, FPURegister fs, FPURegister ft) { |
| 2301 GenInstrRegister(COP1, S, ft, fs, fd, MUL_D); |
| 2302 } |
| 2303 |
| 2304 |
2290 void Assembler::mul_d(FPURegister fd, FPURegister fs, FPURegister ft) { | 2305 void Assembler::mul_d(FPURegister fd, FPURegister fs, FPURegister ft) { |
2291 GenInstrRegister(COP1, D, ft, fs, fd, MUL_D); | 2306 GenInstrRegister(COP1, D, ft, fs, fd, MUL_D); |
2292 } | 2307 } |
2293 | 2308 |
2294 | 2309 |
2295 void Assembler::madd_d(FPURegister fd, FPURegister fr, FPURegister fs, | 2310 void Assembler::madd_d(FPURegister fd, FPURegister fr, FPURegister fs, |
2296 FPURegister ft) { | 2311 FPURegister ft) { |
2297 GenInstrRegister(COP1X, fr, ft, fs, fd, MADD_D); | 2312 GenInstrRegister(COP1X, fr, ft, fs, fd, MADD_D); |
2298 } | 2313 } |
2299 | 2314 |
2300 | 2315 |
| 2316 void Assembler::div_s(FPURegister fd, FPURegister fs, FPURegister ft) { |
| 2317 GenInstrRegister(COP1, S, ft, fs, fd, DIV_D); |
| 2318 } |
| 2319 |
| 2320 |
2301 void Assembler::div_d(FPURegister fd, FPURegister fs, FPURegister ft) { | 2321 void Assembler::div_d(FPURegister fd, FPURegister fs, FPURegister ft) { |
2302 GenInstrRegister(COP1, D, ft, fs, fd, DIV_D); | 2322 GenInstrRegister(COP1, D, ft, fs, fd, DIV_D); |
2303 } | 2323 } |
2304 | 2324 |
2305 | 2325 |
2306 void Assembler::abs_d(FPURegister fd, FPURegister fs) { | 2326 void Assembler::abs_d(FPURegister fd, FPURegister fs) { |
2307 GenInstrRegister(COP1, D, f0, fs, fd, ABS_D); | 2327 GenInstrRegister(COP1, D, f0, fs, fd, ABS_D); |
2308 } | 2328 } |
2309 | 2329 |
2310 | 2330 |
2311 void Assembler::mov_d(FPURegister fd, FPURegister fs) { | 2331 void Assembler::mov_d(FPURegister fd, FPURegister fs) { |
2312 GenInstrRegister(COP1, D, f0, fs, fd, MOV_D); | 2332 GenInstrRegister(COP1, D, f0, fs, fd, MOV_D); |
2313 } | 2333 } |
2314 | 2334 |
2315 | 2335 |
| 2336 void Assembler::neg_s(FPURegister fd, FPURegister fs) { |
| 2337 GenInstrRegister(COP1, S, f0, fs, fd, NEG_D); |
| 2338 } |
| 2339 |
| 2340 |
2316 void Assembler::neg_d(FPURegister fd, FPURegister fs) { | 2341 void Assembler::neg_d(FPURegister fd, FPURegister fs) { |
2317 GenInstrRegister(COP1, D, f0, fs, fd, NEG_D); | 2342 GenInstrRegister(COP1, D, f0, fs, fd, NEG_D); |
2318 } | 2343 } |
2319 | 2344 |
2320 | 2345 |
| 2346 void Assembler::sqrt_s(FPURegister fd, FPURegister fs) { |
| 2347 GenInstrRegister(COP1, S, f0, fs, fd, SQRT_D); |
| 2348 } |
| 2349 |
| 2350 |
2321 void Assembler::sqrt_d(FPURegister fd, FPURegister fs) { | 2351 void Assembler::sqrt_d(FPURegister fd, FPURegister fs) { |
2322 GenInstrRegister(COP1, D, f0, fs, fd, SQRT_D); | 2352 GenInstrRegister(COP1, D, f0, fs, fd, SQRT_D); |
2323 } | 2353 } |
2324 | 2354 |
2325 | 2355 |
2326 // Conversions. | 2356 // Conversions. |
2327 | 2357 |
2328 void Assembler::cvt_w_s(FPURegister fd, FPURegister fs) { | 2358 void Assembler::cvt_w_s(FPURegister fd, FPURegister fs) { |
2329 GenInstrRegister(COP1, S, f0, fs, fd, CVT_W_S); | 2359 GenInstrRegister(COP1, S, f0, fs, fd, CVT_W_S); |
2330 } | 2360 } |
(...skipping 599 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2930 void Assembler::PopulateConstantPool(ConstantPoolArray* constant_pool) { | 2960 void Assembler::PopulateConstantPool(ConstantPoolArray* constant_pool) { |
2931 // No out-of-line constant pool support. | 2961 // No out-of-line constant pool support. |
2932 DCHECK(!FLAG_enable_ool_constant_pool); | 2962 DCHECK(!FLAG_enable_ool_constant_pool); |
2933 return; | 2963 return; |
2934 } | 2964 } |
2935 | 2965 |
2936 | 2966 |
2937 } } // namespace v8::internal | 2967 } } // namespace v8::internal |
2938 | 2968 |
2939 #endif // V8_TARGET_ARCH_MIPS64 | 2969 #endif // V8_TARGET_ARCH_MIPS64 |
OLD | NEW |