| Index: src/arm/simulator-arm.cc
|
| ===================================================================
|
| --- src/arm/simulator-arm.cc (revision 3208)
|
| +++ src/arm/simulator-arm.cc (working copy)
|
| @@ -1924,6 +1924,25 @@
|
| return result;
|
| }
|
|
|
| +
|
| +uintptr_t Simulator::PushAddress(uintptr_t address) {
|
| + int new_sp = get_register(sp) - sizeof(uintptr_t);
|
| + uintptr_t* stack_slot = reinterpret_cast<uintptr_t*>(new_sp);
|
| + *stack_slot = address;
|
| + set_register(sp, new_sp);
|
| + return new_sp;
|
| +}
|
| +
|
| +
|
| +uintptr_t Simulator::PopAddress() {
|
| + int current_sp = get_register(sp);
|
| + uintptr_t* stack_slot = reinterpret_cast<uintptr_t*>(current_sp);
|
| + uintptr_t address = *stack_slot;
|
| + set_register(sp, current_sp + sizeof(uintptr_t));
|
| + return address;
|
| +}
|
| +
|
| +
|
| } } // namespace assembler::arm
|
|
|
| #endif // !defined(__arm__)
|
|
|