| 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 #ifndef V8_ARM_MACRO_ASSEMBLER_ARM_H_ | 5 #ifndef V8_ARM_MACRO_ASSEMBLER_ARM_H_ |
| 6 #define V8_ARM_MACRO_ASSEMBLER_ARM_H_ | 6 #define V8_ARM_MACRO_ASSEMBLER_ARM_H_ |
| 7 | 7 |
| 8 #include "src/assembler.h" | 8 #include "src/assembler.h" |
| 9 #include "src/bailout-reason.h" | 9 #include "src/bailout-reason.h" |
| 10 #include "src/frames.h" | 10 #include "src/frames.h" |
| (...skipping 439 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 450 Pop(src3, src4, cond); | 450 Pop(src3, src4, cond); |
| 451 ldm(ia_w, sp, src1.bit() | src2.bit(), cond); | 451 ldm(ia_w, sp, src1.bit() | src2.bit(), cond); |
| 452 } | 452 } |
| 453 } else { | 453 } else { |
| 454 Pop(src2, src3, src4, cond); | 454 Pop(src2, src3, src4, cond); |
| 455 ldr(src1, MemOperand(sp, 4, PostIndex), cond); | 455 ldr(src1, MemOperand(sp, 4, PostIndex), cond); |
| 456 } | 456 } |
| 457 } | 457 } |
| 458 | 458 |
| 459 // Push a fixed frame, consisting of lr, fp, constant pool (if | 459 // Push a fixed frame, consisting of lr, fp, constant pool (if |
| 460 // FLAG_enable_embedded_constant_pool), context and JS function / marker id if | 460 // FLAG_enable_embedded_constant_pool) |
| 461 // marker_reg is a valid register. | 461 void PushCommonFrame(Register marker_reg = no_reg); |
| 462 void PushFixedFrame(Register marker_reg = no_reg); | 462 |
| 463 void PopFixedFrame(Register marker_reg = no_reg); | 463 // Push a standard frame, consisting of lr, fp, constant pool (if |
| 464 // FLAG_enable_embedded_constant_pool), context and JS function |
| 465 void PushStandardFrame(Register function_reg); |
| 466 |
| 467 void PopCommonFrame(Register marker_reg = no_reg); |
| 464 | 468 |
| 465 // Push and pop the registers that can hold pointers, as defined by the | 469 // Push and pop the registers that can hold pointers, as defined by the |
| 466 // RegList constant kSafepointSavedRegisters. | 470 // RegList constant kSafepointSavedRegisters. |
| 467 void PushSafepointRegisters(); | 471 void PushSafepointRegisters(); |
| 468 void PopSafepointRegisters(); | 472 void PopSafepointRegisters(); |
| 469 // Store value in register src in the safepoint stack slot for | 473 // Store value in register src in the safepoint stack slot for |
| 470 // register dst. | 474 // register dst. |
| 471 void StoreToSafepointRegisterSlot(Register src, Register dst); | 475 void StoreToSafepointRegisterSlot(Register src, Register dst); |
| 472 // Load the value of the src register from its safepoint stack slot | 476 // Load the value of the src register from its safepoint stack slot |
| 473 // into register dst. | 477 // into register dst. |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 578 // won't be converted. | 582 // won't be converted. |
| 579 void LoadNumberAsInt32(Register object, | 583 void LoadNumberAsInt32(Register object, |
| 580 Register dst, | 584 Register dst, |
| 581 Register heap_number_map, | 585 Register heap_number_map, |
| 582 Register scratch, | 586 Register scratch, |
| 583 DwVfpRegister double_scratch0, | 587 DwVfpRegister double_scratch0, |
| 584 LowDwVfpRegister double_scratch1, | 588 LowDwVfpRegister double_scratch1, |
| 585 Label* not_int32); | 589 Label* not_int32); |
| 586 | 590 |
| 587 // Generates function and stub prologue code. | 591 // Generates function and stub prologue code. |
| 588 void StubPrologue(); | 592 void StubPrologue(StackFrame::Type type); |
| 589 void Prologue(bool code_pre_aging); | 593 void Prologue(bool code_pre_aging); |
| 590 | 594 |
| 591 // Enter exit frame. | 595 // Enter exit frame. |
| 592 // stack_space - extra stack space, used for alignment before call to C. | 596 // stack_space - extra stack space, used for alignment before call to C. |
| 593 void EnterExitFrame(bool save_doubles, int stack_space = 0); | 597 void EnterExitFrame(bool save_doubles, int stack_space = 0); |
| 594 | 598 |
| 595 // Leave the current exit frame. Expects the return value in r0. | 599 // Leave the current exit frame. Expects the return value in r0. |
| 596 // Expect the number of values, pushed prior to the exit frame, to | 600 // Expect the number of values, pushed prior to the exit frame, to |
| 597 // remove in a register (or no_reg, if there is nothing to remove). | 601 // remove in a register (or no_reg, if there is nothing to remove). |
| 598 void LeaveExitFrame(bool save_doubles, Register argument_count, | 602 void LeaveExitFrame(bool save_doubles, Register argument_count, |
| (...skipping 962 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1561 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> | 1565 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> |
| 1562 #else | 1566 #else |
| 1563 #define ACCESS_MASM(masm) masm-> | 1567 #define ACCESS_MASM(masm) masm-> |
| 1564 #endif | 1568 #endif |
| 1565 | 1569 |
| 1566 | 1570 |
| 1567 } // namespace internal | 1571 } // namespace internal |
| 1568 } // namespace v8 | 1572 } // namespace v8 |
| 1569 | 1573 |
| 1570 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ | 1574 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ |
| OLD | NEW |