dioscuri.module.cpu32
Class RPNNode

java.lang.Object
  extended by dioscuri.module.cpu32.RPNNode
Direct Known Subclasses:
ProtectedModeRPNNode, RealModeRPNNode

public abstract class RPNNode
extends java.lang.Object

Author:
Bram Lohman, Bart Kiers

Constructor Summary
RPNNode(int id, MicrocodeNode parent)
           
 
Method Summary
 void attachExceptionHandler(ExceptionHandler handler)
           
abstract  boolean canThrowException()
           
protected abstract  java.lang.Object[] getByteCodes()
           
 int getID()
           
 int getImmediate()
           
 int getMicrocode()
           
 int getX86Index()
           
 int getX86Position()
           
abstract  boolean hasExternalEffect()
           
 boolean hasImmediate()
           
 boolean hasLinks()
           
 void linkTo(RPNNode link)
           
 int markSubtrees(int index)
           
 void print()
           
 void print(java.lang.String indent)
           
 void reset(int location)
           
 void write(CountingOutputStream output, ClassFile cf, boolean leaveResultOnStack)
           
static void writeBytecodes(CountingOutputStream output, ClassFile cf, java.lang.Object[] bytecodes)
           
 void writeExceptionCleanup(CountingOutputStream output, ClassFile cf, boolean leaveResultOnStack)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RPNNode

public RPNNode(int id,
               MicrocodeNode parent)
Parameters:
id -
parent -
Method Detail

hasExternalEffect

public abstract boolean hasExternalEffect()
Returns:
-

canThrowException

public abstract boolean canThrowException()
Returns:
-

getByteCodes

protected abstract java.lang.Object[] getByteCodes()
Returns:
-

getX86Index

public int getX86Index()
Returns:
-

getX86Position

public int getX86Position()
Returns:
-

getImmediate

public int getImmediate()
Returns:
-

hasImmediate

public boolean hasImmediate()
Returns:
-

getID

public int getID()
Returns:
-

getMicrocode

public int getMicrocode()
Returns:
-

hasLinks

public boolean hasLinks()
Returns:
-

linkTo

public void linkTo(RPNNode link)
Parameters:
link -

markSubtrees

public int markSubtrees(int index)
Parameters:
index -
Returns:
-

attachExceptionHandler

public void attachExceptionHandler(ExceptionHandler handler)
Parameters:
handler -

print

public void print(java.lang.String indent)
Parameters:
indent -

print

public void print()

writeBytecodes

public static void writeBytecodes(CountingOutputStream output,
                                  ClassFile cf,
                                  java.lang.Object[] bytecodes)
                           throws java.io.IOException
Parameters:
output -
cf -
bytecodes -
Throws:
java.io.IOException

write

public void write(CountingOutputStream output,
                  ClassFile cf,
                  boolean leaveResultOnStack)
           throws java.io.IOException
Parameters:
output -
cf -
leaveResultOnStack -
Throws:
java.io.IOException

writeExceptionCleanup

public void writeExceptionCleanup(CountingOutputStream output,
                                  ClassFile cf,
                                  boolean leaveResultOnStack)
                           throws java.io.IOException
Parameters:
output -
cf -
leaveResultOnStack -
Throws:
java.io.IOException

reset

public void reset(int location)
Parameters:
location -