| 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 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 68 static bool IsSupported(CpuFeature f) { | 68 static bool IsSupported(CpuFeature f) { |
| 69 ASSERT(initialized_); | 69 ASSERT(initialized_); |
| 70 return Check(f, supported_); | 70 return Check(f, supported_); |
| 71 } | 71 } |
| 72 | 72 |
| 73 static bool IsFoundByRuntimeProbingOnly(CpuFeature f) { | 73 static bool IsFoundByRuntimeProbingOnly(CpuFeature f) { |
| 74 ASSERT(initialized_); | 74 ASSERT(initialized_); |
| 75 return Check(f, found_by_runtime_probing_only_); | 75 return Check(f, found_by_runtime_probing_only_); |
| 76 } | 76 } |
| 77 | 77 |
| 78 static bool IsSafeForSnapshot(CpuFeature f) { | 78 static bool IsSafeForSnapshot(Isolate* isolate, CpuFeature f) { |
| 79 return Check(f, cross_compile_) || | 79 return Check(f, cross_compile_) || |
| 80 (IsSupported(f) && | 80 (IsSupported(f) && |
| 81 (!Serializer::enabled() || !IsFoundByRuntimeProbingOnly(f))); | 81 (!Serializer::enabled(isolate) || !IsFoundByRuntimeProbingOnly(f))); |
| 82 } | 82 } |
| 83 | 83 |
| 84 static unsigned cache_line_size() { return cache_line_size_; } | 84 static unsigned cache_line_size() { return cache_line_size_; } |
| 85 | 85 |
| 86 static bool VerifyCrossCompiling() { | 86 static bool VerifyCrossCompiling() { |
| 87 return cross_compile_ == 0; | 87 return cross_compile_ == 0; |
| 88 } | 88 } |
| 89 | 89 |
| 90 static bool VerifyCrossCompiling(CpuFeature f) { | 90 static bool VerifyCrossCompiling(CpuFeature f) { |
| 91 unsigned mask = flag2set(f); | 91 unsigned mask = flag2set(f); |
| (...skipping 493 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 585 explicit Operand(Register rm, ShiftOp shift_op, Register rs); | 585 explicit Operand(Register rm, ShiftOp shift_op, Register rs); |
| 586 | 586 |
| 587 // Return true if this is a register operand. | 587 // Return true if this is a register operand. |
| 588 INLINE(bool is_reg() const); | 588 INLINE(bool is_reg() const); |
| 589 | 589 |
| 590 // Return true if this operand fits in one instruction so that no | 590 // Return true if this operand fits in one instruction so that no |
| 591 // 2-instruction solution with a load into the ip register is necessary. If | 591 // 2-instruction solution with a load into the ip register is necessary. If |
| 592 // the instruction this operand is used for is a MOV or MVN instruction the | 592 // the instruction this operand is used for is a MOV or MVN instruction the |
| 593 // actual instruction to use is required for this calculation. For other | 593 // actual instruction to use is required for this calculation. For other |
| 594 // instructions instr is ignored. | 594 // instructions instr is ignored. |
| 595 bool is_single_instruction(const Assembler* assembler, Instr instr = 0) const; | 595 bool is_single_instruction(Isolate* isolate, |
| 596 bool must_output_reloc_info(const Assembler* assembler) const; | 596 const Assembler* assembler, |
| 597 Instr instr = 0) const; |
| 598 bool must_output_reloc_info(Isolate* isolate, |
| 599 const Assembler* assembler) const; |
| 597 | 600 |
| 598 inline int32_t immediate() const { | 601 inline int32_t immediate() const { |
| 599 ASSERT(!rm_.is_valid()); | 602 ASSERT(!rm_.is_valid()); |
| 600 return imm32_; | 603 return imm32_; |
| 601 } | 604 } |
| 602 | 605 |
| 603 Register rm() const { return rm_; } | 606 Register rm() const { return rm_; } |
| 604 Register rs() const { return rs_; } | 607 Register rs() const { return rs_; } |
| 605 ShiftOp shift_op() const { return shift_op_; } | 608 ShiftOp shift_op() const { return shift_op_; } |
| 606 | 609 |
| (...skipping 1086 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1693 public: | 1696 public: |
| 1694 explicit EnsureSpace(Assembler* assembler) { | 1697 explicit EnsureSpace(Assembler* assembler) { |
| 1695 assembler->CheckBuffer(); | 1698 assembler->CheckBuffer(); |
| 1696 } | 1699 } |
| 1697 }; | 1700 }; |
| 1698 | 1701 |
| 1699 | 1702 |
| 1700 } } // namespace v8::internal | 1703 } } // namespace v8::internal |
| 1701 | 1704 |
| 1702 #endif // V8_ARM_ASSEMBLER_ARM_H_ | 1705 #endif // V8_ARM_ASSEMBLER_ARM_H_ |
| OLD | NEW |