joeq.Compiler.Quad
Class Operator.Special

java.lang.Object
  extended by joeq.Compiler.Quad.Operator
      extended by joeq.Compiler.Quad.Operator.Special
Direct Known Subclasses:
Operator.Special.ALLOCA, Operator.Special.ATOMICADD_I, Operator.Special.ATOMICAND_I, Operator.Special.ATOMICCAS4, Operator.Special.ATOMICCAS8, Operator.Special.ATOMICSUB_I, Operator.Special.GET_BASE_POINTER, Operator.Special.GET_EAX, Operator.Special.GET_EXCEPTION, Operator.Special.GET_STACK_POINTER, Operator.Special.GET_THREAD_BLOCK, Operator.Special.INVOKE_L, Operator.Special.INVOKE_P, Operator.Special.ISEQ, Operator.Special.ISGE, Operator.Special.LONG_JUMP, Operator.Special.NOP, Operator.Special.POP_FP32, Operator.Special.POP_FP64, Operator.Special.PUSH_FP32, Operator.Special.PUSH_FP64, Operator.Special.PUSHARG_I, Operator.Special.PUSHARG_P, Operator.Special.SET_THREAD_BLOCK
Enclosing class:
Operator

public abstract static class Operator.Special
extends Operator


Nested Class Summary
static class Operator.Special.ALLOCA
           
static class Operator.Special.ATOMICADD_I
           
static class Operator.Special.ATOMICAND_I
           
static class Operator.Special.ATOMICCAS4
           
static class Operator.Special.ATOMICCAS8
           
static class Operator.Special.ATOMICSUB_I
           
static class Operator.Special.GET_BASE_POINTER
           
static class Operator.Special.GET_EAX
           
static class Operator.Special.GET_EXCEPTION
           
static class Operator.Special.GET_STACK_POINTER
           
static class Operator.Special.GET_THREAD_BLOCK
           
static class Operator.Special.INVOKE_L
           
static class Operator.Special.INVOKE_P
           
static class Operator.Special.ISEQ
           
static class Operator.Special.ISGE
           
static class Operator.Special.LONG_JUMP
           
static class Operator.Special.NOP
           
static class Operator.Special.POP_FP32
           
static class Operator.Special.POP_FP64
           
static class Operator.Special.PUSH_FP32
           
static class Operator.Special.PUSH_FP64
           
static class Operator.Special.PUSHARG_I
           
static class Operator.Special.PUSHARG_P
           
static class Operator.Special.SET_THREAD_BLOCK
           
 
Nested classes/interfaces inherited from class joeq.Compiler.Quad.Operator
Operator.ALength, Operator.ALoad, Operator.AStore, Operator.Binary, Operator.BoundsCheck, Operator.Branch, Operator.CheckCast, Operator.Getfield, Operator.Getstatic, Operator.Goto, Operator.InstanceOf, Operator.IntIfCmp, Operator.Invoke, Operator.Jsr, Operator.LookupSwitch, Operator.MemLoad, Operator.MemStore, Operator.Monitor, Operator.Move, Operator.New, Operator.NewArray, Operator.NullCheck, Operator.Phi, Operator.Putfield, Operator.Putstatic, Operator.Ret, Operator.Return, Operator.Special, Operator.StoreCheck, Operator.TableSwitch, Operator.Unary, Operator.ZeroCheck
 
Field Summary
 
Fields inherited from class joeq.Compiler.Quad.Operator
_delegate, anyexception, arithexception, arrayboundsexception, arraystoreexception, classcastexceptions, illegalmonitorstateexception, negativesizeexception, noexceptions, noregisters, nullptrexception, resolutionexceptions
 
Constructor Summary
Operator.Special()
           
 
Method Summary
 void accept(Quad q, QuadVisitor qv)
           
static Quad create(int id, Operator.Special.ALLOCA operator, Operand.RegisterOperand res, Operand val)
           
static Quad create(int id, Operator.Special.ATOMICADD_I operator, Operand loc, Operand val)
           
static Quad create(int id, Operator.Special.ATOMICAND_I operator, Operand loc, Operand val)
           
static Quad create(int id, Operator.Special.ATOMICCAS4 operator, Operand.RegisterOperand res, Operand loc, Operand val1, Operand val2)
           
static Quad create(int id, Operator.Special.ATOMICCAS8 operator, Operand.RegisterOperand res, Operand loc, Operand val1, Operand val2)
           
static Quad create(int id, Operator.Special.ATOMICSUB_I operator, Operand loc, Operand val)
           
static Quad create(int id, Operator.Special.GET_BASE_POINTER operator, Operand.RegisterOperand res)
           
static Quad create(int id, Operator.Special.GET_EAX operator, Operand.RegisterOperand res)
           
static Quad create(int id, Operator.Special.GET_EXCEPTION operator, Operand.RegisterOperand res)
           
static Quad create(int id, Operator.Special.GET_STACK_POINTER operator, Operand.RegisterOperand res)
           
static Quad create(int id, Operator.Special.GET_THREAD_BLOCK operator, Operand.RegisterOperand res)
           
static Quad create(int id, Operator.Special.INVOKE_L operator, Operand.RegisterOperand res, Operand val)
           
static Quad create(int id, Operator.Special.INVOKE_P operator, Operand.RegisterOperand res, Operand val)
           
static Quad create(int id, Operator.Special.ISEQ operator, Operand.RegisterOperand res)
           
static Quad create(int id, Operator.Special.ISGE operator, Operand.RegisterOperand res)
           
static Quad create(int id, Operator.Special.LONG_JUMP operator, Operand ip, Operand fp, Operand sp, Operand eax)
           
static Quad create(int id, Operator.Special.NOP operator)
           
static Quad create(int id, Operator.Special.POP_FP32 operator, Operand.RegisterOperand res)
           
static Quad create(int id, Operator.Special.POP_FP64 operator, Operand.RegisterOperand res)
           
static Quad create(int id, Operator.Special.PUSH_FP32 operator, Operand val)
           
static Quad create(int id, Operator.Special.PUSH_FP64 operator, Operand val)
           
static Quad create(int id, Operator.Special.PUSHARG_I operator, Operand val)
           
static Quad create(int id, Operator.Special.PUSHARG_P operator, Operand val)
           
static Quad create(int id, Operator.Special.SET_THREAD_BLOCK operator, Operand val)
           
static Operand getOp1(Quad q)
           
static Operand getOp2(Quad q)
           
static Operand getOp3(Quad q)
           
static Operand getOp4(Quad q)
           
 boolean hasSideEffects()
           
static void setOp1(Quad q, Operand o)
           
static void setOp2(Quad q, Operand o)
           
static void setOp3(Quad q, Operand o)
           
static void setOp4(Quad q, Operand o)
           
 
Methods inherited from class joeq.Compiler.Quad.Operator
getDefinedRegisters, getReg1_check, getReg1, getReg12, getReg123, getReg1234, getReg124, getReg2, getReg23, getReg234, getReg24, getReg3, getThrownExceptions, getUsedRegisters, interpret
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Operator.Special

public Operator.Special()
Method Detail

create

public static Quad create(int id,
                          Operator.Special.GET_EXCEPTION operator,
                          Operand.RegisterOperand res)

create

public static Quad create(int id,
                          Operator.Special.GET_BASE_POINTER operator,
                          Operand.RegisterOperand res)

create

public static Quad create(int id,
                          Operator.Special.GET_STACK_POINTER operator,
                          Operand.RegisterOperand res)

create

public static Quad create(int id,
                          Operator.Special.GET_THREAD_BLOCK operator,
                          Operand.RegisterOperand res)

create

public static Quad create(int id,
                          Operator.Special.SET_THREAD_BLOCK operator,
                          Operand val)

create

public static Quad create(int id,
                          Operator.Special.ALLOCA operator,
                          Operand.RegisterOperand res,
                          Operand val)

create

public static Quad create(int id,
                          Operator.Special.NOP operator)

create

public static Quad create(int id,
                          Operator.Special.ATOMICADD_I operator,
                          Operand loc,
                          Operand val)

create

public static Quad create(int id,
                          Operator.Special.ATOMICSUB_I operator,
                          Operand loc,
                          Operand val)

create

public static Quad create(int id,
                          Operator.Special.ATOMICAND_I operator,
                          Operand loc,
                          Operand val)

create

public static Quad create(int id,
                          Operator.Special.ATOMICCAS4 operator,
                          Operand.RegisterOperand res,
                          Operand loc,
                          Operand val1,
                          Operand val2)

create

public static Quad create(int id,
                          Operator.Special.ATOMICCAS8 operator,
                          Operand.RegisterOperand res,
                          Operand loc,
                          Operand val1,
                          Operand val2)

create

public static Quad create(int id,
                          Operator.Special.LONG_JUMP operator,
                          Operand ip,
                          Operand fp,
                          Operand sp,
                          Operand eax)

create

public static Quad create(int id,
                          Operator.Special.POP_FP32 operator,
                          Operand.RegisterOperand res)

create

public static Quad create(int id,
                          Operator.Special.POP_FP64 operator,
                          Operand.RegisterOperand res)

create

public static Quad create(int id,
                          Operator.Special.PUSH_FP32 operator,
                          Operand val)

create

public static Quad create(int id,
                          Operator.Special.PUSH_FP64 operator,
                          Operand val)

create

public static Quad create(int id,
                          Operator.Special.GET_EAX operator,
                          Operand.RegisterOperand res)

create

public static Quad create(int id,
                          Operator.Special.PUSHARG_I operator,
                          Operand val)

create

public static Quad create(int id,
                          Operator.Special.PUSHARG_P operator,
                          Operand val)

create

public static Quad create(int id,
                          Operator.Special.INVOKE_L operator,
                          Operand.RegisterOperand res,
                          Operand val)

create

public static Quad create(int id,
                          Operator.Special.INVOKE_P operator,
                          Operand.RegisterOperand res,
                          Operand val)

create

public static Quad create(int id,
                          Operator.Special.ISEQ operator,
                          Operand.RegisterOperand res)

create

public static Quad create(int id,
                          Operator.Special.ISGE operator,
                          Operand.RegisterOperand res)

getOp1

public static Operand getOp1(Quad q)

getOp2

public static Operand getOp2(Quad q)

getOp3

public static Operand getOp3(Quad q)

getOp4

public static Operand getOp4(Quad q)

setOp1

public static void setOp1(Quad q,
                          Operand o)

setOp2

public static void setOp2(Quad q,
                          Operand o)

setOp3

public static void setOp3(Quad q,
                          Operand o)

setOp4

public static void setOp4(Quad q,
                          Operand o)

hasSideEffects

public boolean hasSideEffects()
Specified by:
hasSideEffects in class Operator

accept

public void accept(Quad q,
                   QuadVisitor qv)
Overrides:
accept in class Operator


Copyright © 2001-2008 John Whaley. All Rights Reserved.