| 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 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 573 // won't be converted. | 577 // won't be converted. |
| 574 void LoadNumberAsInt32(Register object, | 578 void LoadNumberAsInt32(Register object, |
| 575 Register dst, | 579 Register dst, |
| 576 Register heap_number_map, | 580 Register heap_number_map, |
| 577 Register scratch, | 581 Register scratch, |
| 578 DwVfpRegister double_scratch0, | 582 DwVfpRegister double_scratch0, |
| 579 LowDwVfpRegister double_scratch1, | 583 LowDwVfpRegister double_scratch1, |
| 580 Label* not_int32); | 584 Label* not_int32); |
| 581 | 585 |
| 582 // Generates function and stub prologue code. | 586 // Generates function and stub prologue code. |
| 583 void StubPrologue(); | 587 void StubPrologue(StackFrame::Type type); |
| 584 void Prologue(bool code_pre_aging); | 588 void Prologue(bool code_pre_aging); |
| 585 | 589 |
| 586 // Enter exit frame. | 590 // Enter exit frame. |
| 587 // stack_space - extra stack space, used for alignment before call to C. | 591 // stack_space - extra stack space, used for alignment before call to C. |
| 588 void EnterExitFrame(bool save_doubles, int stack_space = 0); | 592 void EnterExitFrame(bool save_doubles, int stack_space = 0); |
| 589 | 593 |
| 590 // Leave the current exit frame. Expects the return value in r0. | 594 // Leave the current exit frame. Expects the return value in r0. |
| 591 // Expect the number of values, pushed prior to the exit frame, to | 595 // Expect the number of values, pushed prior to the exit frame, to |
| 592 // remove in a register (or no_reg, if there is nothing to remove). | 596 // remove in a register (or no_reg, if there is nothing to remove). |
| 593 void LeaveExitFrame(bool save_doubles, Register argument_count, | 597 void LeaveExitFrame(bool save_doubles, Register argument_count, |
| (...skipping 953 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1547 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> | 1551 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> |
| 1548 #else | 1552 #else |
| 1549 #define ACCESS_MASM(masm) masm-> | 1553 #define ACCESS_MASM(masm) masm-> |
| 1550 #endif | 1554 #endif |
| 1551 | 1555 |
| 1552 | 1556 |
| 1553 } // namespace internal | 1557 } // namespace internal |
| 1554 } // namespace v8 | 1558 } // namespace v8 |
| 1555 | 1559 |
| 1556 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ | 1560 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ |
| OLD | NEW |