| 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 | 5 // modification, are permitted provided that the following conditions |
| 6 // are met: | 6 // are 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 2321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2332 // cond(31-28) | 11101(27-23)| D=?(22) | 00(21-20) | Vn(19-16) | | 2332 // cond(31-28) | 11101(27-23)| D=?(22) | 00(21-20) | Vn(19-16) | |
| 2333 // Vd(15-12) | 101(11-9) | sz(8)=1 | N(7)=? | 0(6) | M=?(5) | 0(4) | Vm(3-0) | 2333 // Vd(15-12) | 101(11-9) | sz(8)=1 | N(7)=? | 0(6) | M=?(5) | 0(4) | Vm(3-0) |
| 2334 ASSERT(Isolate::Current()->cpu_features()->IsEnabled(VFP3)); | 2334 ASSERT(Isolate::Current()->cpu_features()->IsEnabled(VFP3)); |
| 2335 emit(cond | 0xE*B24 | B23 | src1.code()*B16 | | 2335 emit(cond | 0xE*B24 | B23 | src1.code()*B16 | |
| 2336 dst.code()*B12 | 0x5*B9 | B8 | src2.code()); | 2336 dst.code()*B12 | 0x5*B9 | B8 | src2.code()); |
| 2337 } | 2337 } |
| 2338 | 2338 |
| 2339 | 2339 |
| 2340 void Assembler::vcmp(const DwVfpRegister src1, | 2340 void Assembler::vcmp(const DwVfpRegister src1, |
| 2341 const DwVfpRegister src2, | 2341 const DwVfpRegister src2, |
| 2342 const SBit s, | |
| 2343 const Condition cond) { | 2342 const Condition cond) { |
| 2344 // vcmp(Dd, Dm) double precision floating point comparison. | 2343 // vcmp(Dd, Dm) double precision floating point comparison. |
| 2345 // Instruction details available in ARM DDI 0406A, A8-570. | 2344 // Instruction details available in ARM DDI 0406A, A8-570. |
| 2346 // cond(31-28) | 11101 (27-23)| D=?(22) | 11 (21-20) | 0100 (19-16) | | 2345 // cond(31-28) | 11101 (27-23)| D=?(22) | 11 (21-20) | 0100 (19-16) | |
| 2347 // Vd(15-12) | 101(11-9) | sz(8)=1 | E(7)=? | 1(6) | M(5)=? | 0(4) | Vm(3-0) | 2346 // Vd(15-12) | 101(11-9) | sz(8)=1 | E(7)=0 | 1(6) | M(5)=? | 0(4) | Vm(3-0) |
| 2348 ASSERT(Isolate::Current()->cpu_features()->IsEnabled(VFP3)); | 2347 ASSERT(Isolate::Current()->cpu_features()->IsEnabled(VFP3)); |
| 2349 emit(cond | 0xE*B24 |B23 | 0x3*B20 | B18 | | 2348 emit(cond | 0xE*B24 |B23 | 0x3*B20 | B18 | |
| 2350 src1.code()*B12 | 0x5*B9 | B8 | B6 | src2.code()); | 2349 src1.code()*B12 | 0x5*B9 | B8 | B6 | src2.code()); |
| 2351 } | 2350 } |
| 2352 | 2351 |
| 2353 | 2352 |
| 2354 void Assembler::vcmp(const DwVfpRegister src1, | 2353 void Assembler::vcmp(const DwVfpRegister src1, |
| 2355 const double src2, | 2354 const double src2, |
| 2356 const SBit s, | |
| 2357 const Condition cond) { | 2355 const Condition cond) { |
| 2358 // vcmp(Dd, Dm) double precision floating point comparison. | 2356 // vcmp(Dd, Dm) double precision floating point comparison. |
| 2359 // Instruction details available in ARM DDI 0406A, A8-570. | 2357 // Instruction details available in ARM DDI 0406A, A8-570. |
| 2360 // cond(31-28) | 11101 (27-23)| D=?(22) | 11 (21-20) | 0101 (19-16) | | 2358 // cond(31-28) | 11101 (27-23)| D=?(22) | 11 (21-20) | 0101 (19-16) | |
| 2361 // Vd(15-12) | 101(11-9) | sz(8)=1 | E(7)=? | 1(6) | M(5)=? | 0(4) | 0000(3-0) | 2359 // Vd(15-12) | 101(11-9) | sz(8)=1 | E(7)=0 | 1(6) | M(5)=? | 0(4) | 0000(3-0) |
| 2362 ASSERT(Isolate::Current()->cpu_features()->IsEnabled(VFP3)); | 2360 ASSERT(Isolate::Current()->cpu_features()->IsEnabled(VFP3)); |
| 2363 ASSERT(src2 == 0.0); | 2361 ASSERT(src2 == 0.0); |
| 2364 emit(cond | 0xE*B24 |B23 | 0x3*B20 | B18 | B16 | | 2362 emit(cond | 0xE*B24 |B23 | 0x3*B20 | B18 | B16 | |
| 2365 src1.code()*B12 | 0x5*B9 | B8 | B6); | 2363 src1.code()*B12 | 0x5*B9 | B8 | B6); |
| 2366 } | 2364 } |
| 2367 | 2365 |
| 2368 | 2366 |
| 2369 void Assembler::vmsr(Register dst, Condition cond) { | 2367 void Assembler::vmsr(Register dst, Condition cond) { |
| 2370 // Instruction details available in ARM DDI 0406A, A8-652. | 2368 // Instruction details available in ARM DDI 0406A, A8-652. |
| 2371 // cond(31-28) | 1110 (27-24) | 1110(23-20)| 0001 (19-16) | | 2369 // cond(31-28) | 1110 (27-24) | 1110(23-20)| 0001 (19-16) | |
| (...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2650 | 2648 |
| 2651 // Since a constant pool was just emitted, move the check offset forward by | 2649 // Since a constant pool was just emitted, move the check offset forward by |
| 2652 // the standard interval. | 2650 // the standard interval. |
| 2653 next_buffer_check_ = pc_offset() + kCheckConstInterval; | 2651 next_buffer_check_ = pc_offset() + kCheckConstInterval; |
| 2654 } | 2652 } |
| 2655 | 2653 |
| 2656 | 2654 |
| 2657 } } // namespace v8::internal | 2655 } } // namespace v8::internal |
| 2658 | 2656 |
| 2659 #endif // V8_TARGET_ARCH_ARM | 2657 #endif // V8_TARGET_ARCH_ARM |
| OLD | NEW |