001 002/* 003 * THIS FILE IS MACHINE_GENERATED. DO NOT EDIT. 004 * See InstructionFormats.template, InstructionFormatList.dat, 005 * OperatorList.dat, etc. 006 */ 007 008package org.jikesrvm.compilers.opt.ir.ia32; 009 010import org.jikesrvm.Configuration; 011import org.jikesrvm.compilers.opt.ir.operand.ia32.IA32ConditionOperand; 012import org.jikesrvm.compilers.opt.ir.operand.*; 013import org.jikesrvm.compilers.opt.ir.Instruction; 014import org.jikesrvm.compilers.opt.ir.Operator; 015 016/** 017 * The MIR_UnaryNoRes InstructionFormat class. 018 * 019 * The header comment for {@link Instruction} contains 020 * an explanation of the role of InstructionFormats in the 021 * opt compiler's IR. 022 */ 023@SuppressWarnings("unused") // Machine generated code is never 100% clean 024public final class MIR_UnaryNoRes extends ArchInstructionFormat { 025 /** 026 * InstructionFormat identification method for MIR_UnaryNoRes. 027 * @param i an instruction 028 * @return <code>true</code> if the InstructionFormat of the argument 029 * instruction is MIR_UnaryNoRes or <code>false</code> 030 * if it is not. 031 */ 032 public static boolean conforms(Instruction i) { 033 return conforms(i.operator()); 034 } 035 /** 036 * InstructionFormat identification method for MIR_UnaryNoRes. 037 * @param o an instruction 038 * @return <code>true</code> if the InstructionFormat of the argument 039 * operator is MIR_UnaryNoRes or <code>false</code> 040 * if it is not. 041 */ 042 public static boolean conforms(Operator o) { 043 return o.format == MIR_UnaryNoRes_format; 044 } 045 046 /** 047 * Get the operand called Val from the 048 * argument instruction. Note that the returned operand 049 * will still point to its containing instruction. 050 * @param i the instruction to fetch the operand from 051 * @return the operand called Val 052 */ 053 public static Operand getVal(Instruction i) { 054 if (Configuration.ExtremeAssertions && !conforms(i)) fail(i, "MIR_UnaryNoRes"); 055 return (Operand) i.getOperand(0); 056 } 057 /** 058 * Get the operand called Val from the argument 059 * instruction clearing its instruction pointer. The returned 060 * operand will not point to any containing instruction. 061 * @param i the instruction to fetch the operand from 062 * @return the operand called Val 063 */ 064 public static Operand getClearVal(Instruction i) { 065 if (Configuration.ExtremeAssertions && !conforms(i)) fail(i, "MIR_UnaryNoRes"); 066 return (Operand) i.getClearOperand(0); 067 } 068 /** 069 * Set the operand called Val in the argument 070 * instruction to the argument operand. The operand will 071 * now point to the argument instruction as its containing 072 * instruction. 073 * @param i the instruction in which to store the operand 074 * @param Val the operand to store 075 */ 076 public static void setVal(Instruction i, Operand Val) { 077 if (Configuration.ExtremeAssertions && !conforms(i)) fail(i, "MIR_UnaryNoRes"); 078 i.putOperand(0, Val); 079 } 080 /** 081 * Return the index of the operand called Val 082 * in the argument instruction. 083 * @param i the instruction to access. 084 * @return the index of the operand called Val 085 * in the argument instruction 086 */ 087 public static int indexOfVal(Instruction i) { 088 if (Configuration.ExtremeAssertions && !conforms(i)) fail(i, "MIR_UnaryNoRes"); 089 return 0; 090 } 091 /** 092 * Does the argument instruction have a non-null 093 * operand named Val? 094 * @param i the instruction to access. 095 * @return <code>true</code> if the instruction has an non-null 096 * operand named Val or <code>false</code> 097 * if it does not. 098 */ 099 public static boolean hasVal(Instruction i) { 100 if (Configuration.ExtremeAssertions && !conforms(i)) fail(i, "MIR_UnaryNoRes"); 101 return i.getOperand(0) != null; 102 } 103 104 105 /** 106 * Create an instruction of the MIR_UnaryNoRes instruction format. 107 * @param o the instruction's operator 108 * @param Val the instruction's Val operand 109 * @return the newly created MIR_UnaryNoRes instruction 110 */ 111 public static Instruction create(Operator o 112 , Operand Val 113 ) 114 { 115 if (Configuration.ExtremeAssertions && !conforms(o)) fail(o, "MIR_UnaryNoRes"); 116 Instruction i = Instruction.create(o, 5); 117 i.putOperand(0, Val); 118 return i; 119 } 120 121 /** 122 * Mutate the argument instruction into an instruction of the 123 * MIR_UnaryNoRes instruction format having the specified 124 * operator and operands. 125 * @param i the instruction to mutate 126 * @param o the instruction's operator 127 * @param Val the instruction's Val operand 128 * @return the mutated instruction 129 */ 130 public static Instruction mutate(Instruction i, Operator o 131 , Operand Val 132 ) 133 { 134 if (Configuration.ExtremeAssertions && !conforms(o)) fail(o, "MIR_UnaryNoRes"); 135 i.changeOperatorTo(o); 136 i.putOperand(0, Val); 137 return i; 138 } 139} 140