OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 <stdlib.h> | 5 #include <stdlib.h> |
6 #include <cmath> | 6 #include <cmath> |
7 #include <cstdarg> | 7 #include <cstdarg> |
8 #include "src/v8.h" | 8 #include "src/v8.h" |
9 | 9 |
10 #if V8_TARGET_ARCH_ARM64 | 10 #if V8_TARGET_ARCH_ARM64 |
(...skipping 1837 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1848 DCHECK(offset != 0); | 1848 DCHECK(offset != 0); |
1849 uint64_t address = xreg(addr_reg, Reg31IsStackPointer); | 1849 uint64_t address = xreg(addr_reg, Reg31IsStackPointer); |
1850 set_reg(addr_reg, address + offset, Reg31IsStackPointer); | 1850 set_reg(addr_reg, address + offset, Reg31IsStackPointer); |
1851 } | 1851 } |
1852 } | 1852 } |
1853 | 1853 |
1854 | 1854 |
1855 void Simulator::CheckMemoryAccess(uintptr_t address, uintptr_t stack) { | 1855 void Simulator::CheckMemoryAccess(uintptr_t address, uintptr_t stack) { |
1856 if ((address >= stack_limit_) && (address < stack)) { | 1856 if ((address >= stack_limit_) && (address < stack)) { |
1857 fprintf(stream_, "ACCESS BELOW STACK POINTER:\n"); | 1857 fprintf(stream_, "ACCESS BELOW STACK POINTER:\n"); |
1858 fprintf(stream_, " sp is here: 0x%016" PRIx64 "\n", stack); | 1858 fprintf(stream_, " sp is here: 0x%016" PRIx64 "\n", |
1859 fprintf(stream_, " access was here: 0x%016" PRIx64 "\n", address); | 1859 static_cast<uint64_t>(stack)); |
1860 fprintf(stream_, " stack limit is here: 0x%016" PRIx64 "\n", stack_limit_); | 1860 fprintf(stream_, " access was here: 0x%016" PRIx64 "\n", |
| 1861 static_cast<uint64_t>(address)); |
| 1862 fprintf(stream_, " stack limit is here: 0x%016" PRIx64 "\n", |
| 1863 static_cast<uint64_t>(stack_limit_)); |
1861 fprintf(stream_, "\n"); | 1864 fprintf(stream_, "\n"); |
1862 FATAL("ACCESS BELOW STACK POINTER"); | 1865 FATAL("ACCESS BELOW STACK POINTER"); |
1863 } | 1866 } |
1864 } | 1867 } |
1865 | 1868 |
1866 | 1869 |
1867 void Simulator::VisitMoveWideImmediate(Instruction* instr) { | 1870 void Simulator::VisitMoveWideImmediate(Instruction* instr) { |
1868 MoveWideImmediateOp mov_op = | 1871 MoveWideImmediateOp mov_op = |
1869 static_cast<MoveWideImmediateOp>(instr->Mask(MoveWideImmediateMask)); | 1872 static_cast<MoveWideImmediateOp>(instr->Mask(MoveWideImmediateMask)); |
1870 int64_t new_xn_val = 0; | 1873 int64_t new_xn_val = 0; |
(...skipping 1946 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3817 | 3820 |
3818 delete[] format; | 3821 delete[] format; |
3819 } | 3822 } |
3820 | 3823 |
3821 | 3824 |
3822 #endif // USE_SIMULATOR | 3825 #endif // USE_SIMULATOR |
3823 | 3826 |
3824 } } // namespace v8::internal | 3827 } } // namespace v8::internal |
3825 | 3828 |
3826 #endif // V8_TARGET_ARCH_ARM64 | 3829 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |