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 |