org.jikesrvm.compilers.opt.ir.ia32
Class PhysicalDefUse

java.lang.Object
  extended by org.jikesrvm.compilers.opt.ir.ia32.PhysicalDefUse
Direct Known Subclasses:
ArchitectureSpecificOpt.PhysicalDefUse

public abstract class PhysicalDefUse
extends Object

This class provides utilities to record defs and uses of physical registers by IR operators.


Nested Class Summary
static class PhysicalDefUse.PDUEnumeration
          A class to enumerate physical registers based on a code.
 
Field Summary
static int mask
          Default empty mask
static int maskAF
          AF in the eflags is used/defined
static int maskAF_CF_OF_PF_SF_ZF
           
static int maskAF_OF_PF_SF_ZF
           
private static int maskALL
          Mask for all bits
static int maskC0
          C0 in the x87 FPU is used/defined
static int maskC0_C1_C2_C3
           
static int maskC1
          C1 in the x87 FPU is used/defined
static int maskC2
          C2 in the x87 FPU is used/defined
static int maskC3
          C3 in the x87 FPU is used/defined
static int maskcallDefs
           
static int maskcallUses
           
static int maskCF
          CF in the eflags is used/defined
static int maskCF_OF
           
static int maskCF_OF_PF_SF_ZF
           
static int maskCF_PF_ZF
           
static int maskESP
          The ESP register is used/defined
private static int maskHIGH
          First mask bit
static int maskIEEEMagicUses
           
static int maskOF
          OF in the eflags is used/defined
static int maskPF
          PF in the eflags is used/defined
static int maskSF
          SF in the eflags is used/defined
static int maskTR
          The processor register is used/defined
static int maskTSPDefs
          Definitions mask used by dependence graph to show a yield point
static int maskTSPUses
          Uses mask used by dependence graph to show a yield point
static int maskZF
          ZF in the eflags is used/defined
 
Constructor Summary
PhysicalDefUse()
           
 
Method Summary
static boolean definesEFLAGS(Operator op)
           
static PhysicalDefUse.PDUEnumeration enumerate(int code, IR ir)
           
static PhysicalDefUse.PDUEnumeration enumerateAllImplicitDefUses(IR ir)
           
static String getString(int code)
           
static boolean usesEFLAGS(Operator op)
           
static boolean usesOrDefinesESP(Operator op)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

mask

public static final int mask
Default empty mask

See Also:
Constant Field Values

maskAF

public static final int maskAF
AF in the eflags is used/defined

See Also:
Constant Field Values

maskCF

public static final int maskCF
CF in the eflags is used/defined

See Also:
Constant Field Values

maskOF

public static final int maskOF
OF in the eflags is used/defined

See Also:
Constant Field Values

maskPF

public static final int maskPF
PF in the eflags is used/defined

See Also:
Constant Field Values

maskSF

public static final int maskSF
SF in the eflags is used/defined

See Also:
Constant Field Values

maskZF

public static final int maskZF
ZF in the eflags is used/defined

See Also:
Constant Field Values

maskC0

public static final int maskC0
C0 in the x87 FPU is used/defined

See Also:
Constant Field Values

maskC1

public static final int maskC1
C1 in the x87 FPU is used/defined

See Also:
Constant Field Values

maskC2

public static final int maskC2
C2 in the x87 FPU is used/defined

See Also:
Constant Field Values

maskC3

public static final int maskC3
C3 in the x87 FPU is used/defined

See Also:
Constant Field Values

maskTR

public static final int maskTR
The processor register is used/defined

See Also:
Constant Field Values

maskESP

public static final int maskESP
The ESP register is used/defined

See Also:
Constant Field Values

maskHIGH

private static final int maskHIGH
First mask bit

See Also:
Constant Field Values

maskALL

private static final int maskALL
Mask for all bits

See Also:
Constant Field Values

maskCF_OF

public static final int maskCF_OF
See Also:
Constant Field Values

maskCF_PF_ZF

public static final int maskCF_PF_ZF
See Also:
Constant Field Values

maskCF_OF_PF_SF_ZF

public static final int maskCF_OF_PF_SF_ZF
See Also:
Constant Field Values

maskAF_OF_PF_SF_ZF

public static final int maskAF_OF_PF_SF_ZF
See Also:
Constant Field Values

maskAF_CF_OF_PF_SF_ZF

public static final int maskAF_CF_OF_PF_SF_ZF
See Also:
Constant Field Values

maskC0_C1_C2_C3

public static final int maskC0_C1_C2_C3
See Also:
Constant Field Values

maskcallDefs

public static final int maskcallDefs
See Also:
Constant Field Values

maskcallUses

public static final int maskcallUses
See Also:
Constant Field Values

maskIEEEMagicUses

public static final int maskIEEEMagicUses
See Also:
Constant Field Values

maskTSPUses

public static final int maskTSPUses
Uses mask used by dependence graph to show a yield point

See Also:
Constant Field Values

maskTSPDefs

public static final int maskTSPDefs
Definitions mask used by dependence graph to show a yield point

See Also:
Constant Field Values
Constructor Detail

PhysicalDefUse

public PhysicalDefUse()
Method Detail

usesEFLAGS

public static boolean usesEFLAGS(Operator op)
Returns:
whether or not an Operator uses the EFLAGS

definesEFLAGS

public static boolean definesEFLAGS(Operator op)
Returns:
whether or not an Operator uses the EFLAGS

usesOrDefinesESP

public static boolean usesOrDefinesESP(Operator op)
Returns:
whether or not an Operator implicitly uses or defines ESP

getString

public static String getString(int code)
Returns:
a string representation of the physical registers encoded by an integer

enumerate

public static PhysicalDefUse.PDUEnumeration enumerate(int code,
                                                      IR ir)
Parameters:
code - an integer that encodes a set of physical registers
ir - the governing IR
Returns:
an enumeration of the physical registers embodied by a code

enumerateAllImplicitDefUses

public static PhysicalDefUse.PDUEnumeration enumerateAllImplicitDefUses(IR ir)
Parameters:
ir - the governing IR
Returns:
an enumeration of all physical registers that code be implicitly defed/used