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 }