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