Mercurial > hg > truffle
comparison graal/com.oracle.max.cri/src/com/oracle/max/cri/xir/CiXirAssembler.java @ 5233:efbb1e33e2f3
removed XIR prologue and epilogues - architecture and runtime specific subclass of Backend is now used instead
removed XIR ops: Align, StackOverflowCheck, PushFrame, PopFrame, RawBytes
enhanced disassembly to annotate marks
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Thu, 12 Apr 2012 15:55:03 +0200 |
parents | 744dade427b8 |
children | 678f31e9724e |
comparison
equal
deleted
inserted
replaced
5232:c005ca943790 | 5233:efbb1e33e2f3 |
---|---|
551 /** | 551 /** |
552 * Record a safepoint. | 552 * Record a safepoint. |
553 */ | 553 */ |
554 Safepoint, | 554 Safepoint, |
555 /** | 555 /** |
556 * Align the code following this instruction to a multiple of (int)extra. | |
557 */ | |
558 Align, | |
559 /** | |
560 * Creates the stack banging overflow check. | |
561 */ | |
562 StackOverflowCheck, | |
563 /** | |
564 * Creates the stack frame for the method and spills callee-save registers (if any) to the {@linkplain CiRegisterSaveArea register save area}. | |
565 */ | |
566 PushFrame, | |
567 /** | |
568 * Restores all callee-save registers (if any) and removes the stack frame of the method. | |
569 */ | |
570 PopFrame, | |
571 /** | |
572 * Inserts an array of bytes directly into the code output. | |
573 */ | |
574 RawBytes, | |
575 /** | |
576 * Pushes a value onto the stack. | 556 * Pushes a value onto the stack. |
577 */ | 557 */ |
578 Push, | 558 Push, |
579 /** | 559 /** |
580 * Pops a value from the stack. | 560 * Pops a value from the stack. |
765 append(new XirInstruction(CiKind.Void, l, Bind, null)); | 745 append(new XirInstruction(CiKind.Void, l, Bind, null)); |
766 } | 746 } |
767 | 747 |
768 public void safepoint() { | 748 public void safepoint() { |
769 append(new XirInstruction(CiKind.Void, null, Safepoint, null)); | 749 append(new XirInstruction(CiKind.Void, null, Safepoint, null)); |
770 } | |
771 | |
772 public void align(int multiple) { | |
773 assert multiple > 0; | |
774 append(new XirInstruction(CiKind.Void, multiple, Align, null)); | |
775 } | |
776 | |
777 public void stackOverflowCheck() { | |
778 append(new XirInstruction(CiKind.Void, null, StackOverflowCheck, null)); | |
779 } | |
780 | |
781 public void pushFrame() { | |
782 append(new XirInstruction(CiKind.Void, null, PushFrame, null)); | |
783 } | |
784 | |
785 public void popFrame() { | |
786 append(new XirInstruction(CiKind.Void, null, PopFrame, null)); | |
787 } | |
788 | |
789 public void rawBytes(byte[] bytes) { | |
790 append(new XirInstruction(CiKind.Void, bytes, RawBytes, null)); | |
791 } | 750 } |
792 | 751 |
793 public void push(XirOperand value) { | 752 public void push(XirOperand value) { |
794 append(new XirInstruction(CiKind.Void, Push, VOID, value)); | 753 append(new XirInstruction(CiKind.Void, Push, VOID, value)); |
795 } | 754 } |