org.jikesrvm.ia32
Class MachineReflection

java.lang.Object
  extended by org.jikesrvm.ia32.MachineReflection
All Implemented Interfaces:
RegisterConstants
Direct Known Subclasses:
ArchitectureSpecific.MachineReflection

public abstract class MachineReflection
extends Object
implements RegisterConstants

Machine dependent portion of Reflective method invoker.


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.jikesrvm.ia32.RegisterConstants
RegisterConstants.FloatingPointMachineRegister, RegisterConstants.FPR, RegisterConstants.GPR, RegisterConstants.MachineRegister, RegisterConstants.MM, RegisterConstants.XMM
 
Field Summary
 
Fields inherited from interface org.jikesrvm.ia32.RegisterConstants
ALL_FPRS, ALL_GPRS, EAX, EBP, EBX, ECX, EDI, EDX, ESI, ESP, FP0, FP1, FP2, FP3, FP4, FP5, FP6, FP7, INSTRUCTION_WIDTH, LG_INSTRUCTION_WIDTH, MM0, MM1, MM10, MM11, MM12, MM13, MM14, MM15, MM2, MM3, MM4, MM5, MM6, MM7, MM8, MM9, NATIVE_NONVOLATILE_FPRS, NATIVE_NONVOLATILE_GPRS, NATIVE_PARAMETER_FPRS, NATIVE_PARAMETER_GPRS, NATIVE_VOLATILE_FPRS, NATIVE_VOLATILE_GPRS, NONVOLATILE_FPRS, NONVOLATILE_GPRS, NUM_FPRS, NUM_GPRS, NUM_NONVOLATILE_FPRS, NUM_NONVOLATILE_GPRS, NUM_PARAMETER_FPRS, NUM_PARAMETER_GPRS, NUM_RETURN_FPRS, NUM_RETURN_GPRS, NUM_VOLATILE_FPRS, NUM_VOLATILE_GPRS, PARAMETER_FPRS, PARAMETER_GPRS, R0, R1, R10, R11, R12, R13, R14, R15, R2, R3, R4, R5, R6, R7, R8, R9, RETURN_FPRS, RETURN_GPRS, STACK_POINTER, THREAD_REGISTER, VOLATILE_FPRS, VOLATILE_GPRS, XMM0, XMM1, XMM10, XMM11, XMM12, XMM13, XMM14, XMM15, XMM2, XMM3, XMM4, XMM5, XMM6, XMM7, XMM8, XMM9
 
Constructor Summary
MachineReflection()
           
 
Method Summary
static int countParameters(RVMMethod method)
          Determine number/type of registers and parameters required to call specified method.
static void packageParameters(RVMMethod method, Object thisArg, Object[] otherArgs, WordArray GPRs, double[] FPRs, byte[] FPRmeta, WordArray Parameters)
          Collect parameters into arrays of registers/spills, as required to call specified method.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MachineReflection

public MachineReflection()
Method Detail

countParameters

public static int countParameters(RVMMethod method)
Determine number/type of registers and parameters required to call specified method. Unlike the PowerPC code we count all the parameters, not just the ones that spill. This allow us to make enough space on the stack following the calling convention.


packageParameters

public static void packageParameters(RVMMethod method,
                                     Object thisArg,
                                     Object[] otherArgs,
                                     WordArray GPRs,
                                     double[] FPRs,
                                     byte[] FPRmeta,
                                     WordArray Parameters)
Collect parameters into arrays of registers/spills, as required to call specified method.