result = R(regpool.getSecondReg(result.register));
result = new OPT_RegisterOperand(regpool.getSecondReg(result.register), VM_TypeReference.Int);
  protected final void SYSCALL(OPT_Instruction s, OPT_Operand address) {    burs.ir.setHasSysCall(true);    // Step 1: Find out how many parameters we're going to have.    int numParams = Call.getNumberOfParams(s);    int longParams = 0;    for (int pNum = 0; pNum < numParams; pNum++) {      if (Call.getParam(s, pNum).getType().isLongType()) {        longParams++;      }    }    // Step 2: Figure out what the result and result2 values will be.    OPT_RegisterOperand result = Call.getResult(s);    OPT_RegisterOperand result2 = null;    // NOTE: C callee returns longs little endian!    if (result != null && result.type.isLongType()) {      result.type = VM_TypeReference.Int;      result2 = result;      result = R(regpool.getSecondReg(result.register));    }        // Step 3: Mutate the Call to an MIR_Call.    // Note MIR_Call and Call have a different number of fixed     // arguments, so some amount of copying is required.     OPT_Operand[] params = new OPT_Operand[numParams];    for (int i = 0; i < numParams; i++) {      params[i] = Call.getParam(s, i);    }    MIR_Call.mutate(s, IA32_SYSCALL, result, result2,                     address, Call.getMethod(s),                    numParams + longParams);    for (int paramIdx = 0, mirCallIdx = 0; paramIdx < numParams;) {      OPT_Operand param = params[paramIdx++];      if (param instanceof OPT_RegisterOperand) {        // NOTE: longs passed little endian to C callee!        OPT_RegisterOperand rparam = (OPT_RegisterOperand)param;        if (rparam.type.isLongType()) {          MIR_Call.setParam(s, mirCallIdx++,                             L(regpool.getSecondReg(rparam.register)));        }        MIR_Call.setParam(s, mirCallIdx++, param);      } else if (param instanceof OPT_LongConstantOperand) {        long value = ((OPT_LongConstantOperand)param).value;         int valueHigh = (int)(value >> 32);        int valueLow = (int)(value & 0xffffffff);        // NOTE: longs passed little endian to C callee!        MIR_Call.setParam(s, mirCallIdx++, IC(valueLow));        MIR_Call.setParam(s, mirCallIdx++, IC(valueHigh));      } else {        MIR_Call.setParam(s, mirCallIdx++, param);      }    }    // emit the call instruction.    EMIT(s);  }