Index: src/a64/simulator-a64.cc |
diff --git a/src/a64/simulator-a64.cc b/src/a64/simulator-a64.cc |
index c80266bea69cfb229e8c7b304e1f8ba356281abc..64307fae6241052f7b0956c70107b6d2a446361c 100644 |
--- a/src/a64/simulator-a64.cc |
+++ b/src/a64/simulator-a64.cc |
@@ -304,12 +304,14 @@ void Simulator::CorruptAllCallerSavedCPURegisters() { |
// Extending the stack by 2 * 64 bits is required for stack alignment purposes. |
-// TODO(all): Insert a marker in the extra space allocated on the stack. |
uintptr_t Simulator::PushAddress(uintptr_t address) { |
ASSERT(sizeof(uintptr_t) < 2 * kXRegSize); |
intptr_t new_sp = sp() - 2 * kXRegSize; |
+ uintptr_t* alignment_slot = |
+ reinterpret_cast<uintptr_t*>(new_sp + kXRegSize); |
+ memcpy(alignment_slot, &kSlotsZapValue, kPointerSize); |
uintptr_t* stack_slot = reinterpret_cast<uintptr_t*>(new_sp); |
- *stack_slot = address; |
+ memcpy(stack_slot, &address, kPointerSize); |
set_sp(new_sp); |
return new_sp; |
} |
@@ -442,12 +444,6 @@ void Simulator::RunFrom(Instruction* start) { |
} |
-void Simulator::CheckStackAlignment() { |
- // TODO(aleram): The sp alignment check to perform depends on the processor |
- // state. Check the specifications for more details. |
-} |
- |
- |
// When the generated code calls an external reference we need to catch that in |
// the simulator. The external reference will be a function compiled for the |
// host architecture. We need to call that function instead of trying to |
@@ -1711,11 +1707,6 @@ uint64_t Simulator::ReverseBytes(uint64_t value, ReverseByteMode mode) { |
void Simulator::VisitDataProcessing2Source(Instruction* instr) { |
- // TODO(mcapewel) move these to a higher level file, as they are global |
- // assumptions. |
- ASSERT((static_cast<int32_t>(-1) >> 1) == -1); |
- ASSERT((static_cast<uint32_t>(-1) >> 1) == 0x7FFFFFFF); |
- |
Shift shift_op = NO_SHIFT; |
int64_t result = 0; |
switch (instr->Mask(DataProcessing2SourceMask)) { |
@@ -2917,7 +2908,6 @@ void Simulator::Debug() { |
} else if ((strcmp(cmd, "print") == 0) || (strcmp(cmd, "p") == 0)) { |
if (argc == 2) { |
if (strcmp(arg1, "all") == 0) { |
- // TODO(all): better support for printing in the debugger. |
PrintRegisters(true); |
PrintFPRegisters(true); |
} else { |