| 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 493 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 504 public: | 504 public: |
| 505 // Detect features of the target CPU. Set safe defaults if the serializer | 505 // Detect features of the target CPU. Set safe defaults if the serializer |
| 506 // is enabled (snapshots must be portable). | 506 // is enabled (snapshots must be portable). |
| 507 static void Probe(); | 507 static void Probe(); |
| 508 | 508 |
| 509 // Check whether a feature is supported by the target CPU. | 509 // Check whether a feature is supported by the target CPU. |
| 510 static bool IsSupported(CpuFeature f) { | 510 static bool IsSupported(CpuFeature f) { |
| 511 ASSERT(initialized_); | 511 ASSERT(initialized_); |
| 512 if (f == VFP3 && !FLAG_enable_vfp3) return false; | 512 if (f == VFP3 && !FLAG_enable_vfp3) return false; |
| 513 if (f == VFP2 && !FLAG_enable_vfp2) return false; | 513 if (f == VFP2 && !FLAG_enable_vfp2) return false; |
| 514 if (f == SUDIV && !FLAG_enable_sudiv) return false; | |
| 515 return (supported_ & (1u << f)) != 0; | 514 return (supported_ & (1u << f)) != 0; |
| 516 } | 515 } |
| 517 | 516 |
| 518 #ifdef DEBUG | 517 #ifdef DEBUG |
| 519 // Check whether a feature is currently enabled. | 518 // Check whether a feature is currently enabled. |
| 520 static bool IsEnabled(CpuFeature f) { | 519 static bool IsEnabled(CpuFeature f) { |
| 521 ASSERT(initialized_); | 520 ASSERT(initialized_); |
| 522 Isolate* isolate = Isolate::UncheckedCurrent(); | 521 Isolate* isolate = Isolate::UncheckedCurrent(); |
| 523 if (isolate == NULL) { | 522 if (isolate == NULL) { |
| 524 // When no isolate is available, work as if we're running in | 523 // When no isolate is available, work as if we're running in |
| (...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 863 SBit s = LeaveCC, Condition cond = al); | 862 SBit s = LeaveCC, Condition cond = al); |
| 864 | 863 |
| 865 void mvn(Register dst, const Operand& src, | 864 void mvn(Register dst, const Operand& src, |
| 866 SBit s = LeaveCC, Condition cond = al); | 865 SBit s = LeaveCC, Condition cond = al); |
| 867 | 866 |
| 868 // Multiply instructions | 867 // Multiply instructions |
| 869 | 868 |
| 870 void mla(Register dst, Register src1, Register src2, Register srcA, | 869 void mla(Register dst, Register src1, Register src2, Register srcA, |
| 871 SBit s = LeaveCC, Condition cond = al); | 870 SBit s = LeaveCC, Condition cond = al); |
| 872 | 871 |
| 873 void mls(Register dst, Register src1, Register src2, Register srcA, | |
| 874 Condition cond = al); | |
| 875 | |
| 876 void sdiv(Register dst, Register src1, Register src2, | |
| 877 Condition cond = al); | |
| 878 | |
| 879 void mul(Register dst, Register src1, Register src2, | 872 void mul(Register dst, Register src1, Register src2, |
| 880 SBit s = LeaveCC, Condition cond = al); | 873 SBit s = LeaveCC, Condition cond = al); |
| 881 | 874 |
| 882 void smlal(Register dstL, Register dstH, Register src1, Register src2, | 875 void smlal(Register dstL, Register dstH, Register src1, Register src2, |
| 883 SBit s = LeaveCC, Condition cond = al); | 876 SBit s = LeaveCC, Condition cond = al); |
| 884 | 877 |
| 885 void smull(Register dstL, Register dstH, Register src1, Register src2, | 878 void smull(Register dstL, Register dstH, Register src1, Register src2, |
| 886 SBit s = LeaveCC, Condition cond = al); | 879 SBit s = LeaveCC, Condition cond = al); |
| 887 | 880 |
| 888 void umlal(Register dstL, Register dstH, Register src1, Register src2, | 881 void umlal(Register dstL, Register dstH, Register src1, Register src2, |
| (...skipping 586 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1475 public: | 1468 public: |
| 1476 explicit EnsureSpace(Assembler* assembler) { | 1469 explicit EnsureSpace(Assembler* assembler) { |
| 1477 assembler->CheckBuffer(); | 1470 assembler->CheckBuffer(); |
| 1478 } | 1471 } |
| 1479 }; | 1472 }; |
| 1480 | 1473 |
| 1481 | 1474 |
| 1482 } } // namespace v8::internal | 1475 } } // namespace v8::internal |
| 1483 | 1476 |
| 1484 #endif // V8_ARM_ASSEMBLER_ARM_H_ | 1477 #endif // V8_ARM_ASSEMBLER_ARM_H_ |
| OLD | NEW |