frysk.value
Class ArithmeticUnit

java.lang.Object
  extended by frysk.value.ArithmeticUnit
Direct Known Subclasses:
AddressUnit, FloatingPointUnit, IntegerUnit

public abstract class ArithmeticUnit
extends Object

Arithmetic and Logical Operation handling for different types.


Field Summary
protected  IntegerType intType
           
protected  ArithmeticType retType
           
protected  int wordSize
           
 
Constructor Summary
protected ArithmeticUnit(int wordSize)
           
 
Method Summary
 Value add(Value v1, Value v2)
           
 Value bitWiseAnd(Value v1, Value v2)
           
 Value bitWiseAndEqual(Value v1, Value v2)
           
 Value bitWiseComplement(Value v1)
           
 Value bitWiseOr(Value v1, Value v2)
           
 Value bitWiseOrEqual(Value v1, Value v2)
           
 Value bitWiseXor(Value v1, Value v2)
           
 Value bitWiseXorEqual(Value v1, Value v2)
           
 Value divide(Value v1, Value v2)
           
 Value divideEqual(Value v1, Value v2)
           
 Value equal(Value v1, Value v2)
           
 ArithmeticType getIntResultType()
          Use to get result type of relational, equality and logical expressions.
 boolean getLogicalValue(Value v1)
           
 ArithmeticType getResultType()
          Use to get result type of multiplicative, additive, shift, bitwise and assigment expressions.
 Value greaterThan(Value v1, Value v2)
           
 Value greaterThanOrEqualTo(Value v1, Value v2)
           
 Value lessThan(Value v1, Value v2)
           
 Value lessThanOrEqualTo(Value v1, Value v2)
           
 Value logicalAnd(Value v1, Value v2)
           
 Value logicalNegation(Value v1)
           
 Value logicalOr(Value v1, Value v2)
           
 Value minusEqual(Value v1, Value v2)
           
 Value mod(Value v1, Value v2)
           
 Value modEqual(Value v1, Value v2)
           
 Value multiply(Value v1, Value v2)
           
 Value notEqual(Value v1, Value v2)
           
 Value plusEqual(Value v1, Value v2)
           
 Value shiftLeft(Value v1, Value v2)
           
 Value shiftLeftEqual(Value v1, Value v2)
           
 Value shiftRight(Value v1, Value v2)
           
 Value shiftRightEqual(Value v1, Value v2)
           
 Value subtract(Value v1, Value v2)
           
 Value timesEqual(Value v1, Value v2)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

retType

protected ArithmeticType retType

intType

protected IntegerType intType

wordSize

protected int wordSize
Constructor Detail

ArithmeticUnit

protected ArithmeticUnit(int wordSize)
Method Detail

getResultType

public ArithmeticType getResultType()
Use to get result type of multiplicative, additive, shift, bitwise and assigment expressions.


getIntResultType

public ArithmeticType getIntResultType()
Use to get result type of relational, equality and logical expressions.


add

public Value add(Value v1,
                 Value v2)

subtract

public Value subtract(Value v1,
                      Value v2)

multiply

public Value multiply(Value v1,
                      Value v2)

divide

public Value divide(Value v1,
                    Value v2)

mod

public Value mod(Value v1,
                 Value v2)

shiftLeft

public Value shiftLeft(Value v1,
                       Value v2)

shiftRight

public Value shiftRight(Value v1,
                        Value v2)

lessThan

public Value lessThan(Value v1,
                      Value v2)

greaterThan

public Value greaterThan(Value v1,
                         Value v2)

lessThanOrEqualTo

public Value lessThanOrEqualTo(Value v1,
                               Value v2)

greaterThanOrEqualTo

public Value greaterThanOrEqualTo(Value v1,
                                  Value v2)

equal

public Value equal(Value v1,
                   Value v2)

notEqual

public Value notEqual(Value v1,
                      Value v2)

bitWiseAnd

public Value bitWiseAnd(Value v1,
                        Value v2)

bitWiseXor

public Value bitWiseXor(Value v1,
                        Value v2)

bitWiseOr

public Value bitWiseOr(Value v1,
                       Value v2)

bitWiseComplement

public Value bitWiseComplement(Value v1)

logicalAnd

public Value logicalAnd(Value v1,
                        Value v2)

logicalOr

public Value logicalOr(Value v1,
                       Value v2)

logicalNegation

public Value logicalNegation(Value v1)

getLogicalValue

public boolean getLogicalValue(Value v1)

plusEqual

public Value plusEqual(Value v1,
                       Value v2)

minusEqual

public Value minusEqual(Value v1,
                        Value v2)

timesEqual

public Value timesEqual(Value v1,
                        Value v2)

divideEqual

public Value divideEqual(Value v1,
                         Value v2)

modEqual

public Value modEqual(Value v1,
                      Value v2)

shiftLeftEqual

public Value shiftLeftEqual(Value v1,
                            Value v2)

shiftRightEqual

public Value shiftRightEqual(Value v1,
                             Value v2)

bitWiseOrEqual

public Value bitWiseOrEqual(Value v1,
                            Value v2)

bitWiseXorEqual

public Value bitWiseXorEqual(Value v1,
                             Value v2)

bitWiseAndEqual

public Value bitWiseAndEqual(Value v1,
                             Value v2)