org.jikesrvm.ia32
Interface RegisterConstants

All Known Subinterfaces:
ArchConstants, ArchitectureSpecific.ArchConstants, ArchitectureSpecific.BaselineConstants, ArchitectureSpecific.RegisterConstants, ArchitectureSpecificOpt.OptGCMapIteratorConstants, ArchitectureSpecificOpt.PhysicalRegisterConstants, BaselineConstants, OptGCMapIteratorConstants, PhysicalRegisterConstants
All Known Implementing Classes:
ArchitectureSpecific.Assembler, ArchitectureSpecific.BaselineCompilerImpl, ArchitectureSpecific.BaselineExceptionDeliverer, ArchitectureSpecific.BaselineGCMapIterator, ArchitectureSpecific.InterfaceMethodConflictResolver, ArchitectureSpecific.JNICompiler, ArchitectureSpecific.JNIGCMapIterator, ArchitectureSpecific.LazyCompilationTrampoline, ArchitectureSpecific.MachineReflection, ArchitectureSpecific.OutOfLineMachineCode, ArchitectureSpecific.Registers, ArchitectureSpecificOpt.AssemblerOpt, ArchitectureSpecificOpt.BaselineExecutionStateExtractor, ArchitectureSpecificOpt.CallingConvention, ArchitectureSpecificOpt.CodeInstaller, ArchitectureSpecificOpt.ConvertALUOperators, ArchitectureSpecificOpt.OptExceptionDeliverer, ArchitectureSpecificOpt.OptExecutionStateExtractor, ArchitectureSpecificOpt.OptGCMapIterator, ArchitectureSpecificOpt.PhysicalRegisterSet, ArchitectureSpecificOpt.PostThreadSwitch, ArchitectureSpecificOpt.RegisterRestrictions, Assembler, AssemblerBase, AssemblerOpt, Barriers, BaselineCompiledMethod, BaselineCompilerImpl, BaselineExceptionDeliverer, BaselineExecutionStateExtractor, BaselineGCMapIterator, CallingConvention, CodeInstaller, ConvertALUOperators, EncodedOSRMap, InterfaceMethodConflictResolver, JNICompiler, JNIGCMapIterator, JSRInfo, LazyCompilationTrampoline, LinearScan.LinearScanPhase, LinearScan.SpillLocationManager, Lister, MachineReflection, MachineSpecificIA, MachineSpecificIA.EM64T, MachineSpecificIA.IA32, OptExceptionDeliverer, OptExecutionStateExtractor, OptGCMap, OptGCMapIterator, OptGenericGCMapIterator, OutOfLineMachineCode, PhysicalRegisterSet, PostThreadSwitch, ReferenceMaps, RegisterRestrictions, Registers, TempRegisters, TraceInterface

public interface RegisterConstants


Nested Class Summary
static interface RegisterConstants.FloatingPointMachineRegister
          Super interface for floating point registers
static class RegisterConstants.FPR
          Representation of x87 floating point registers
static class RegisterConstants.GPR
          Representation of general purpose registers
static interface RegisterConstants.MachineRegister
          Common interface implemented by all registers constants
static class RegisterConstants.MM
          Representation of MMX MM registers N.B.
static class RegisterConstants.XMM
          Representation of SSE XMM registers
 
Field Summary
static RegisterConstants.FloatingPointMachineRegister[] ALL_FPRS
          All floating point purpose registers NB with SSE x87 registers must be explicitly managed
static RegisterConstants.GPR[] ALL_GPRS
          All general purpose registers
static RegisterConstants.GPR EAX
           
static RegisterConstants.GPR EBP
           
static RegisterConstants.GPR EBX
           
static RegisterConstants.GPR ECX
           
static RegisterConstants.GPR EDI
           
static RegisterConstants.GPR EDX
           
static RegisterConstants.GPR ESI
           
static RegisterConstants.GPR ESP
           
static RegisterConstants.FPR FP0
           
static RegisterConstants.FPR FP1
           
static RegisterConstants.FPR FP2
           
static RegisterConstants.FPR FP3
           
static RegisterConstants.FPR FP4
           
static RegisterConstants.FPR FP5
           
static RegisterConstants.FPR FP6
           
static RegisterConstants.FPR FP7
           
static int INSTRUCTION_WIDTH
           
static byte LG_INSTRUCTION_WIDTH
          log2 of instruction width in bytes
static RegisterConstants.MM MM0
           
static RegisterConstants.MM MM1
           
static RegisterConstants.MM MM10
           
static RegisterConstants.MM MM11
           
static RegisterConstants.MM MM12
           
static RegisterConstants.MM MM13
           
static RegisterConstants.MM MM14
           
static RegisterConstants.MM MM15
           
static RegisterConstants.MM MM2
           
static RegisterConstants.MM MM3
           
static RegisterConstants.MM MM4
           
static RegisterConstants.MM MM5
           
static RegisterConstants.MM MM6
           
static RegisterConstants.MM MM7
           
static RegisterConstants.MM MM8
           
static RegisterConstants.MM MM9
           
static RegisterConstants.FloatingPointMachineRegister[] NATIVE_NONVOLATILE_FPRS
          Native non-volatile FPRS
static RegisterConstants.GPR[] NATIVE_NONVOLATILE_GPRS
          Native non-volatile GPRS
static RegisterConstants.FloatingPointMachineRegister[] NATIVE_PARAMETER_FPRS
          Floating point registers to pass arguments to native code
static RegisterConstants.GPR[] NATIVE_PARAMETER_GPRS
          General purpose registers to pass arguments to native code
static RegisterConstants.FloatingPointMachineRegister[] NATIVE_VOLATILE_FPRS
          Native volatile FPRS
static RegisterConstants.GPR[] NATIVE_VOLATILE_GPRS
          Native volatile GPRS
static RegisterConstants.FloatingPointMachineRegister[] NONVOLATILE_FPRS
          Non-volatile floating point registers within the RVM.
static RegisterConstants.GPR[] NONVOLATILE_GPRS
          Non-volatile general purpose registers within the RVM.
static byte NUM_FPRS
          Number of floating point registers
static byte NUM_GPRS
          Number of general purpose registers
static int NUM_NONVOLATILE_FPRS
          Number of non-volatile FPRs
static int NUM_NONVOLATILE_GPRS
          Number of non-volatile GPRs
static int NUM_PARAMETER_FPRS
          Number of parameter FPRs
static int NUM_PARAMETER_GPRS
          Number of parameter GPRs
static int NUM_RETURN_FPRS
          Number of return FPRs
static int NUM_RETURN_GPRS
          Number of return GPRs
static int NUM_VOLATILE_FPRS
          Number of volatile FPRs
static int NUM_VOLATILE_GPRS
           
static RegisterConstants.FloatingPointMachineRegister[] PARAMETER_FPRS
          Floating point registers to pass arguments within the RVM
static RegisterConstants.GPR[] PARAMETER_GPRS
          General purpose registers to pass arguments within the RVM
static RegisterConstants.GPR R0
           
static RegisterConstants.GPR R1
           
static RegisterConstants.GPR R10
           
static RegisterConstants.GPR R11
           
static RegisterConstants.GPR R12
           
static RegisterConstants.GPR R13
           
static RegisterConstants.GPR R14
           
static RegisterConstants.GPR R15
           
static RegisterConstants.GPR R2
           
static RegisterConstants.GPR R3
           
static RegisterConstants.GPR R4
           
static RegisterConstants.GPR R5
           
static RegisterConstants.GPR R6
           
static RegisterConstants.GPR R7
           
static RegisterConstants.GPR R8
           
static RegisterConstants.GPR R9
           
static RegisterConstants.FloatingPointMachineRegister[] RETURN_FPRS
          FPR registers used for returning values
static RegisterConstants.GPR[] RETURN_GPRS
          GPR registers used for returning values
static RegisterConstants.GPR STACK_POINTER
          Register current stack pointer.
static RegisterConstants.GPR THREAD_REGISTER
          Register holding a reference to thread local information
static RegisterConstants.FloatingPointMachineRegister[] VOLATILE_FPRS
          Volatile floating point registers within the RVM.
static RegisterConstants.GPR[] VOLATILE_GPRS
          Volatile general purpose registers.
static RegisterConstants.XMM XMM0
           
static RegisterConstants.XMM XMM1
           
static RegisterConstants.XMM XMM10
           
static RegisterConstants.XMM XMM11
           
static RegisterConstants.XMM XMM12
           
static RegisterConstants.XMM XMM13
           
static RegisterConstants.XMM XMM14
           
static RegisterConstants.XMM XMM15
           
static RegisterConstants.XMM XMM2
           
static RegisterConstants.XMM XMM3
           
static RegisterConstants.XMM XMM4
           
static RegisterConstants.XMM XMM5
           
static RegisterConstants.XMM XMM6
           
static RegisterConstants.XMM XMM7
           
static RegisterConstants.XMM XMM8
           
static RegisterConstants.XMM XMM9
           
 

Field Detail

LG_INSTRUCTION_WIDTH

static final byte LG_INSTRUCTION_WIDTH
log2 of instruction width in bytes

See Also:
Constant Field Values

INSTRUCTION_WIDTH

static final int INSTRUCTION_WIDTH
See Also:
Constant Field Values

EAX

static final RegisterConstants.GPR EAX

ECX

static final RegisterConstants.GPR ECX

EDX

static final RegisterConstants.GPR EDX

EBX

static final RegisterConstants.GPR EBX

ESP

static final RegisterConstants.GPR ESP

EBP

static final RegisterConstants.GPR EBP

ESI

static final RegisterConstants.GPR ESI

EDI

static final RegisterConstants.GPR EDI

R0

static final RegisterConstants.GPR R0

R1

static final RegisterConstants.GPR R1

R2

static final RegisterConstants.GPR R2

R3

static final RegisterConstants.GPR R3

R4

static final RegisterConstants.GPR R4

R5

static final RegisterConstants.GPR R5

R6

static final RegisterConstants.GPR R6

R7

static final RegisterConstants.GPR R7

R8

static final RegisterConstants.GPR R8

R9

static final RegisterConstants.GPR R9

R10

static final RegisterConstants.GPR R10

R11

static final RegisterConstants.GPR R11

R12

static final RegisterConstants.GPR R12

R13

static final RegisterConstants.GPR R13

R14

static final RegisterConstants.GPR R14

R15

static final RegisterConstants.GPR R15

FP0

static final RegisterConstants.FPR FP0

FP1

static final RegisterConstants.FPR FP1

FP2

static final RegisterConstants.FPR FP2

FP3

static final RegisterConstants.FPR FP3

FP4

static final RegisterConstants.FPR FP4

FP5

static final RegisterConstants.FPR FP5

FP6

static final RegisterConstants.FPR FP6

FP7

static final RegisterConstants.FPR FP7

MM0

static final RegisterConstants.MM MM0

MM1

static final RegisterConstants.MM MM1

MM2

static final RegisterConstants.MM MM2

MM3

static final RegisterConstants.MM MM3

MM4

static final RegisterConstants.MM MM4

MM5

static final RegisterConstants.MM MM5

MM6

static final RegisterConstants.MM MM6

MM7

static final RegisterConstants.MM MM7

MM8

static final RegisterConstants.MM MM8

MM9

static final RegisterConstants.MM MM9

MM10

static final RegisterConstants.MM MM10

MM11

static final RegisterConstants.MM MM11

MM12

static final RegisterConstants.MM MM12

MM13

static final RegisterConstants.MM MM13

MM14

static final RegisterConstants.MM MM14

MM15

static final RegisterConstants.MM MM15

XMM0

static final RegisterConstants.XMM XMM0

XMM1

static final RegisterConstants.XMM XMM1

XMM2

static final RegisterConstants.XMM XMM2

XMM3

static final RegisterConstants.XMM XMM3

XMM4

static final RegisterConstants.XMM XMM4

XMM5

static final RegisterConstants.XMM XMM5

XMM6

static final RegisterConstants.XMM XMM6

XMM7

static final RegisterConstants.XMM XMM7

XMM8

static final RegisterConstants.XMM XMM8

XMM9

static final RegisterConstants.XMM XMM9

XMM10

static final RegisterConstants.XMM XMM10

XMM11

static final RegisterConstants.XMM XMM11

XMM12

static final RegisterConstants.XMM XMM12

XMM13

static final RegisterConstants.XMM XMM13

XMM14

static final RegisterConstants.XMM XMM14

XMM15

static final RegisterConstants.XMM XMM15

STACK_POINTER

static final RegisterConstants.GPR STACK_POINTER
Register current stack pointer. NB the frame pointer is maintained in the processor.


THREAD_REGISTER

static final RegisterConstants.GPR THREAD_REGISTER
Register holding a reference to thread local information


ALL_GPRS

static final RegisterConstants.GPR[] ALL_GPRS
All general purpose registers


NUM_GPRS

static final byte NUM_GPRS
Number of general purpose registers


ALL_FPRS

static final RegisterConstants.FloatingPointMachineRegister[] ALL_FPRS
All floating point purpose registers NB with SSE x87 registers must be explicitly managed


NUM_FPRS

static final byte NUM_FPRS
Number of floating point registers


VOLATILE_GPRS

static final RegisterConstants.GPR[] VOLATILE_GPRS
Volatile general purpose registers. NB: the order here is important. The opt-compiler allocates the volatile registers in the order they appear here.


NUM_VOLATILE_GPRS

static final int NUM_VOLATILE_GPRS

VOLATILE_FPRS

static final RegisterConstants.FloatingPointMachineRegister[] VOLATILE_FPRS
Volatile floating point registers within the RVM. TODO: this should include XMMs


NUM_VOLATILE_FPRS

static final int NUM_VOLATILE_FPRS
Number of volatile FPRs


NONVOLATILE_GPRS

static final RegisterConstants.GPR[] NONVOLATILE_GPRS
Non-volatile general purpose registers within the RVM. Note: the order here is very important. The opt-compiler allocates the nonvolatile registers in the reverse of order they appear here. R3 (EBX) must be last, because it is the only non-volatile that can be used in instructions that are using r8 and we must ensure that opt doesn't skip over another nonvol while looking for an r8 nonvol.


NUM_NONVOLATILE_GPRS

static final int NUM_NONVOLATILE_GPRS
Number of non-volatile GPRs


NONVOLATILE_FPRS

static final RegisterConstants.FloatingPointMachineRegister[] NONVOLATILE_FPRS
Non-volatile floating point registers within the RVM.


NUM_NONVOLATILE_FPRS

static final int NUM_NONVOLATILE_FPRS
Number of non-volatile FPRs


PARAMETER_GPRS

static final RegisterConstants.GPR[] PARAMETER_GPRS
General purpose registers to pass arguments within the RVM


NUM_PARAMETER_GPRS

static final int NUM_PARAMETER_GPRS
Number of parameter GPRs


PARAMETER_FPRS

static final RegisterConstants.FloatingPointMachineRegister[] PARAMETER_FPRS
Floating point registers to pass arguments within the RVM


NUM_PARAMETER_FPRS

static final int NUM_PARAMETER_FPRS
Number of parameter FPRs


RETURN_GPRS

static final RegisterConstants.GPR[] RETURN_GPRS
GPR registers used for returning values


NUM_RETURN_GPRS

static final int NUM_RETURN_GPRS
Number of return GPRs


RETURN_FPRS

static final RegisterConstants.FloatingPointMachineRegister[] RETURN_FPRS
FPR registers used for returning values


NUM_RETURN_FPRS

static final int NUM_RETURN_FPRS
Number of return FPRs


NATIVE_VOLATILE_GPRS

static final RegisterConstants.GPR[] NATIVE_VOLATILE_GPRS
Native volatile GPRS


NATIVE_NONVOLATILE_GPRS

static final RegisterConstants.GPR[] NATIVE_NONVOLATILE_GPRS
Native non-volatile GPRS


NATIVE_VOLATILE_FPRS

static final RegisterConstants.FloatingPointMachineRegister[] NATIVE_VOLATILE_FPRS
Native volatile FPRS


NATIVE_NONVOLATILE_FPRS

static final RegisterConstants.FloatingPointMachineRegister[] NATIVE_NONVOLATILE_FPRS
Native non-volatile FPRS


NATIVE_PARAMETER_GPRS

static final RegisterConstants.GPR[] NATIVE_PARAMETER_GPRS
General purpose registers to pass arguments to native code


NATIVE_PARAMETER_FPRS

static final RegisterConstants.FloatingPointMachineRegister[] NATIVE_PARAMETER_FPRS
Floating point registers to pass arguments to native code