OPT_ConvertToLowLevelIR.getStatic(s, ir, sysM.record);
OPT_ConvertToLowLevelIR.getStatic(s, ir, VM_Entrypoints.the_boot_recordField);
  public static void expandSysCall(OPT_Instruction s, OPT_IR ir) {        // Determine the address of the method to call.    OPT_RegisterOperand ip = null;    if (CallSpecial.getMethod(s) != null) {      OPT_SysMethodOperand sysM = 	(OPT_SysMethodOperand)CallSpecial.getClearMethod(s);      OPT_RegisterOperand t1 = 	OPT_ConvertToLowLevelIR.getStatic(s, ir, sysM.record);      ip = OPT_ConvertToLowLevelIR.getField(s, ir, t1, sysM.ip);    } else {      ip = (OPT_RegisterOperand)CallSpecial.getClearAddress(s);    }    // Allocate space to save non-volatiles.    allocateSpaceForSysCall(ir);        // Make sure we allocate enough space for the parameters to this call.    int numberParams = CallSpecial.getNumberOfParams(s);    int parameterWords = 0;    for (int i = 0; i < numberParams; i++) {      parameterWords++;      OPT_Operand op = CallSpecial.getParam(s, i);      if (op instanceof OPT_RegisterOperand) {        OPT_RegisterOperand reg = (OPT_RegisterOperand)op;        if ((reg.type == VM_Type.LongType) || (reg.type == VM_Type.DoubleType))          parameterWords++;      } else if ((op instanceof OPT_LongConstantOperand) ||                  (op instanceof OPT_DoubleConstantOperand)) {        parameterWords++;      }    }    // allocate space for each parameter, plus one word on the stack to    // hold the address of the callee.    ir.stackManager.allocateParameterSpace((1 + parameterWords)*4);                                                       // Convert to a SYSCALL instruction with a null method operand.    CallSpecial.mutate0(s, SYSCALL, CallSpecial.getClearResult(s), ip, null);  }