001 002 /* 003 * THIS FILE IS MACHINE_GENERATED. DO NOT EDIT. 004 * See InstructionFormats.template, InstructionFormatList.dat, 005 * OperatorList.dat, etc. 006 */ 007 008 package org.jikesrvm.compilers.opt.ir; 009 010 import org.jikesrvm.Configuration; 011 import org.jikesrvm.compilers.opt.ir.operand.ia32.IA32ConditionOperand; //NOPMD 012 import org.jikesrvm.compilers.opt.ir.operand.*; 013 014 /** 015 * The MIR_Empty InstructionFormat class. 016 * 017 * The header comment for {@link Instruction} contains 018 * an explanation of the role of InstructionFormats in the 019 * opt compiler's IR. 020 */ 021 @SuppressWarnings("unused") // Machine generated code is never 100% clean 022 public final class MIR_Empty extends InstructionFormat { 023 /** 024 * InstructionFormat identification method for MIR_Empty. 025 * @param i an instruction 026 * @return <code>true</code> if the InstructionFormat of the argument 027 * instruction is MIR_Empty or <code>false</code> 028 * if it is not. 029 */ 030 public static boolean conforms(Instruction i) { 031 return conforms(i.operator); 032 } 033 /** 034 * InstructionFormat identification method for MIR_Empty. 035 * @param o an instruction 036 * @return <code>true</code> if the InstructionFormat of the argument 037 * operator is MIR_Empty or <code>false</code> 038 * if it is not. 039 */ 040 public static boolean conforms(Operator o) { 041 return o.format == MIR_Empty_format; 042 } 043 044 045 /** 046 * Create an instruction of the MIR_Empty instruction format. 047 * @param o the instruction's operator 048 * @return the newly created MIR_Empty instruction 049 */ 050 public static Instruction create(Operator o 051 ) 052 { 053 if (Configuration.ExtremeAssertions && !conforms(o)) fail(o, "MIR_Empty"); 054 Instruction i = new Instruction(o, 5); 055 return i; 056 } 057 058 /** 059 * Mutate the argument instruction into an instruction of the 060 * MIR_Empty instruction format having the specified 061 * operator and operands. 062 * @param i the instruction to mutate 063 * @param o the instruction's operator 064 * @return the mutated instruction 065 */ 066 public static Instruction mutate(Instruction i, Operator o 067 ) 068 { 069 if (Configuration.ExtremeAssertions && !conforms(o)) fail(o, "MIR_Empty"); 070 i.operator = o; 071 return i; 072 } 073 } 074