| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <limits.h> // For LONG_MIN, LONG_MAX. | 5 #include <limits.h> // For LONG_MIN, LONG_MAX. |
| 6 | 6 |
| 7 #if V8_TARGET_ARCH_MIPS64 | 7 #if V8_TARGET_ARCH_MIPS64 |
| 8 | 8 |
| 9 #include "src/base/division-by-constant.h" | 9 #include "src/base/division-by-constant.h" |
| 10 #include "src/bootstrapper.h" | 10 #include "src/bootstrapper.h" |
| (...skipping 5907 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5918 void MacroAssembler::Prologue(bool code_pre_aging) { | 5918 void MacroAssembler::Prologue(bool code_pre_aging) { |
| 5919 PredictableCodeSizeScope predictible_code_size_scope( | 5919 PredictableCodeSizeScope predictible_code_size_scope( |
| 5920 this, kNoCodeAgeSequenceLength); | 5920 this, kNoCodeAgeSequenceLength); |
| 5921 // The following three instructions must remain together and unmodified | 5921 // The following three instructions must remain together and unmodified |
| 5922 // for code aging to work properly. | 5922 // for code aging to work properly. |
| 5923 if (code_pre_aging) { | 5923 if (code_pre_aging) { |
| 5924 // Pre-age the code. | 5924 // Pre-age the code. |
| 5925 Code* stub = Code::GetPreAgedCodeAgeStub(isolate()); | 5925 Code* stub = Code::GetPreAgedCodeAgeStub(isolate()); |
| 5926 nop(Assembler::CODE_AGE_MARKER_NOP); | 5926 nop(Assembler::CODE_AGE_MARKER_NOP); |
| 5927 // Load the stub address to t9 and call it, | 5927 // Load the stub address to t9 and call it, |
| 5928 // GetCodeAgeAndParity() extracts the stub address from this instruction. | 5928 // GetCodeAge() extracts the stub address from this instruction. |
| 5929 li(t9, | 5929 li(t9, |
| 5930 Operand(reinterpret_cast<uint64_t>(stub->instruction_start())), | 5930 Operand(reinterpret_cast<uint64_t>(stub->instruction_start())), |
| 5931 ADDRESS_LOAD); | 5931 ADDRESS_LOAD); |
| 5932 nop(); // Prevent jalr to jal optimization. | 5932 nop(); // Prevent jalr to jal optimization. |
| 5933 jalr(t9, a0); | 5933 jalr(t9, a0); |
| 5934 nop(); // Branch delay slot nop. | 5934 nop(); // Branch delay slot nop. |
| 5935 nop(); // Pad the empty space. | 5935 nop(); // Pad the empty space. |
| 5936 } else { | 5936 } else { |
| 5937 PushStandardFrame(a1); | 5937 PushStandardFrame(a1); |
| 5938 nop(Assembler::CODE_AGE_SEQUENCE_NOP); | 5938 nop(Assembler::CODE_AGE_SEQUENCE_NOP); |
| (...skipping 1089 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7028 if (mag.shift > 0) sra(result, result, mag.shift); | 7028 if (mag.shift > 0) sra(result, result, mag.shift); |
| 7029 srl(at, dividend, 31); | 7029 srl(at, dividend, 31); |
| 7030 Addu(result, result, Operand(at)); | 7030 Addu(result, result, Operand(at)); |
| 7031 } | 7031 } |
| 7032 | 7032 |
| 7033 | 7033 |
| 7034 } // namespace internal | 7034 } // namespace internal |
| 7035 } // namespace v8 | 7035 } // namespace v8 |
| 7036 | 7036 |
| 7037 #endif // V8_TARGET_ARCH_MIPS64 | 7037 #endif // V8_TARGET_ARCH_MIPS64 |
| OLD | NEW |