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; |
514 return (supported_ & (1u << f)) != 0; | 515 return (supported_ & (1u << f)) != 0; |
515 } | 516 } |
516 | 517 |
517 #ifdef DEBUG | 518 #ifdef DEBUG |
518 // Check whether a feature is currently enabled. | 519 // Check whether a feature is currently enabled. |
519 static bool IsEnabled(CpuFeature f) { | 520 static bool IsEnabled(CpuFeature f) { |
520 ASSERT(initialized_); | 521 ASSERT(initialized_); |
521 Isolate* isolate = Isolate::UncheckedCurrent(); | 522 Isolate* isolate = Isolate::UncheckedCurrent(); |
522 if (isolate == NULL) { | 523 if (isolate == NULL) { |
523 // When no isolate is available, work as if we're running in | 524 // 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... |
862 SBit s = LeaveCC, Condition cond = al); | 863 SBit s = LeaveCC, Condition cond = al); |
863 | 864 |
864 void mvn(Register dst, const Operand& src, | 865 void mvn(Register dst, const Operand& src, |
865 SBit s = LeaveCC, Condition cond = al); | 866 SBit s = LeaveCC, Condition cond = al); |
866 | 867 |
867 // Multiply instructions | 868 // Multiply instructions |
868 | 869 |
869 void mla(Register dst, Register src1, Register src2, Register srcA, | 870 void mla(Register dst, Register src1, Register src2, Register srcA, |
870 SBit s = LeaveCC, Condition cond = al); | 871 SBit s = LeaveCC, Condition cond = al); |
871 | 872 |
| 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 |
872 void mul(Register dst, Register src1, Register src2, | 879 void mul(Register dst, Register src1, Register src2, |
873 SBit s = LeaveCC, Condition cond = al); | 880 SBit s = LeaveCC, Condition cond = al); |
874 | 881 |
875 void smlal(Register dstL, Register dstH, Register src1, Register src2, | 882 void smlal(Register dstL, Register dstH, Register src1, Register src2, |
876 SBit s = LeaveCC, Condition cond = al); | 883 SBit s = LeaveCC, Condition cond = al); |
877 | 884 |
878 void smull(Register dstL, Register dstH, Register src1, Register src2, | 885 void smull(Register dstL, Register dstH, Register src1, Register src2, |
879 SBit s = LeaveCC, Condition cond = al); | 886 SBit s = LeaveCC, Condition cond = al); |
880 | 887 |
881 void umlal(Register dstL, Register dstH, Register src1, Register src2, | 888 void umlal(Register dstL, Register dstH, Register src1, Register src2, |
(...skipping 585 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1467 public: | 1474 public: |
1468 explicit EnsureSpace(Assembler* assembler) { | 1475 explicit EnsureSpace(Assembler* assembler) { |
1469 assembler->CheckBuffer(); | 1476 assembler->CheckBuffer(); |
1470 } | 1477 } |
1471 }; | 1478 }; |
1472 | 1479 |
1473 | 1480 |
1474 } } // namespace v8::internal | 1481 } } // namespace v8::internal |
1475 | 1482 |
1476 #endif // V8_ARM_ASSEMBLER_ARM_H_ | 1483 #endif // V8_ARM_ASSEMBLER_ARM_H_ |
OLD | NEW |