OpenASIP
2.0
|
#include <CodeGenerator.hh>
Public Types | |
typedef std::set< TCEString > | RegisterSet |
Static Public Member Functions | |
static TTAProgram::MoveGuard * | createInverseGuard (const TTAProgram::MoveGuard &mg, const TTAMachine::Bus *bus=NULL) |
Private Attributes | |
const TTAMachine::Machine * | mach_ |
Target machine. More... | |
const UniversalMachine * | uMach_ |
Universal machine. More... | |
int | stackAlignment_ |
MachineInfo::OperationSet | opset_ |
CodeGenerator generates code pieces for given Program.
Contains various helper functions for making hand writing of POM easier.
Definition at line 53 of file CodeGenerator.hh.
typedef std::set<TCEString> TTAProgram::CodeGenerator::RegisterSet |
Definition at line 55 of file CodeGenerator.hh.
TTAProgram::CodeGenerator::CodeGenerator | ( | const TTAMachine::Machine & | mach | ) |
Definition at line 45 of file CodeGenerator.cc.
References MachineInfo::getOpset(), MachineInfo::maxMemoryAlignment(), opset_, and stackAlignment_.
|
virtual |
Definition at line 51 of file CodeGenerator.cc.
void TTAProgram::CodeGenerator::addAnnotatedMoveToProcedure | ( | TTAProgram::CodeSnippet & | dstProcedure, |
TTAProgram::Terminal * | srcTerminal, | ||
TTAProgram::Terminal * | dstTerminal, | ||
const TTAProgram::ProgramAnnotation & | annotation | ||
) |
Definition at line 71 of file CodeGenerator.cc.
References TTAProgram::CodeSnippet::add(), TTAProgram::Instruction::addMove(), TTAMachine::NullInstructionTemplate::instance(), uMach_, and UniversalMachine::universalBus().
Referenced by registerJump().
TTAProgram::Instruction * TTAProgram::CodeGenerator::addMoveToProcedure | ( | TTAProgram::CodeSnippet & | dstProcedure, |
TTAProgram::Terminal * | srcTerminal, | ||
TTAProgram::Terminal * | dstTerminal | ||
) |
Definition at line 54 of file CodeGenerator.cc.
References TTAProgram::CodeSnippet::add(), TTAProgram::Instruction::addMove(), TTAMachine::NullInstructionTemplate::instance(), uMach_, and UniversalMachine::universalBus().
Referenced by createCall(), createExternalCall(), decrementRegisterAddress(), llvm::LLVMTCEBuilder::emitLongjmp(), llvm::LLVMTCEBuilder::emitMove(), llvm::LLVMTCEBuilder::emitReadSP(), llvm::LLVMTCEBuilder::emitReturnTo(), llvm::LLVMTCEBuilder::emitSetjmp(), llvm::LLVMTCEBuilder::emitWriteSP(), llvm::LLVMTCEBuilder::handleMemoryCategoryInfo(), immediateMove(), incrementRegisterAddress(), loadTerminal(), registerJump(), registerMove(), and storeTerminal().
ProgramOperationPtr TTAProgram::CodeGenerator::createBreakOperation | ( | const MoveNode * | jump | ) |
Definition at line 1070 of file CodeGenerator.cc.
References MoveNode::addDestinationOperationPtr(), TTAMachine::Machine::controlUnit(), createMove(), createTerminalRegister(), TTAProgram::MoveGuard::guard(), TTAProgram::Move::guard(), TTAMachine::FunctionUnit::hasOperation(), TTAMachine::Guard::isInverted(), TTAProgram::Move::isUnconditional(), mach_, MoveNode::move(), UniversalFunctionUnit::operation(), OperationPool::operation(), uMach_, and UniversalMachine::universalFunctionUnit().
void TTAProgram::CodeGenerator::createCall | ( | TTAProgram::CodeSnippet & | dstProcedure, |
TTAProgram::InstructionReference & | callDst | ||
) |
Creates a call move and adds it to the given procedure.
Definition at line 689 of file CodeGenerator.cc.
References addMoveToProcedure(), and createTerminalFUPort().
std::shared_ptr< TTAProgram::Move > TTAProgram::CodeGenerator::createCall | ( | TTAProgram::InstructionReference & | callDst | ) |
Creates a call move.
Definition at line 657 of file CodeGenerator.cc.
References createTerminalFUPort(), uMach_, and UniversalMachine::universalBus().
void TTAProgram::CodeGenerator::createExternalCall | ( | TTAProgram::CodeSnippet & | dstProcedure, |
const TCEString & | procedureName | ||
) |
Creates an external call move.
Definition at line 671 of file CodeGenerator.cc.
References addMoveToProcedure(), and createTerminalFUPort().
Referenced by createSchedYieldProcedure().
std::vector< ProgramOperationPtr > TTAProgram::CodeGenerator::createForLoopBufferInit | ( | const MoveNode * | dynamicLimitMove, |
int | iterationCount, | ||
int | divider, | ||
int | loopSize | ||
) |
Definition at line 898 of file CodeGenerator.cc.
References MoveNode::addDestinationOperationPtr(), MathTools::ceil_log2(), TTAMachine::Machine::controlUnit(), TTAProgram::Terminal::copy(), createMove(), createTerminalFUPort(), TTAProgram::Move::destination(), TTAMachine::FunctionUnit::hasOperation(), TTAMachine::Machine::is64bit(), MoveNode::isSourceOperation(), mach_, MoveNode::move(), UniversalFunctionUnit::operation(), OperationPool::operation(), MathTools::requiredBitsSigned(), MoveNode::setSourceOperationPtr(), TTAProgram::Move::source(), uMach_, and UniversalMachine::universalFunctionUnit().
|
static |
Creates a guard with same guard register etc but inverted. The guard must be found from the given bus if bus given.
@TODO: support for port guards
mg | guard to inverse |
bus | bus where the guard must be. if null same as bug of mg. |
Definition at line 837 of file CodeGenerator.cc.
References TTAProgram::MoveGuard::guard(), TTAMachine::Bus::guard(), TTAMachine::Bus::guardCount(), TTAMachine::Guard::isInverted(), TTAMachine::Guard::parentBus(), TTAMachine::PortGuard::port(), TTAMachine::RegisterGuard::registerFile(), and TTAMachine::RegisterGuard::registerIndex().
Referenced by Peel2BBLoops::appendBB(), SimpleIfConverter::canConvert(), CopyingDelaySlotFiller::collectMoves(), CopyingDelaySlotFiller::fillDelaySlots(), PreOptimizer::inverseGuardsOfHeads(), BUBasicBlockScheduler::tryToOptimizeWaw(), and BasicBlockScheduler::tryToOptimizeWaw().
std::shared_ptr< TTAProgram::Move > TTAProgram::CodeGenerator::createJump | ( | TTAProgram::InstructionReference & | dst | ) |
Definition at line 640 of file CodeGenerator.cc.
References createTerminalFUPort(), uMach_, and UniversalMachine::universalBus().
Referenced by SimpleIfConverter::addJump().
std::shared_ptr< TTAProgram::Move > TTAProgram::CodeGenerator::createMove | ( | TTAProgram::Terminal * | src, |
TTAProgram::Terminal * | dst | ||
) |
Definition at line 1065 of file CodeGenerator.cc.
References uMach_, and UniversalMachine::universalBus().
Referenced by createBreakOperation(), createForLoopBufferInit(), and createWhileLoopBufferInit().
TTAProgram::Procedure * TTAProgram::CodeGenerator::createSchedYieldProcedure | ( | TTAProgram::InstructionReferenceManager & | refManager, |
const TCEString & | name, | ||
const TCEString & | schedProcedureName, | ||
const TCEString & | stackReg, | ||
const TCEString & | rvReg, | ||
const RegisterSet & | saveRegs | ||
) |
Creates yield function which saves requested registers.
refManager | Reference manager of destination program. |
name | Name for the created procedure. |
schedProcedure | Scheduler function to call sp = schedule(sp) |
stackReg | Stack register name assigned for program. |
rvReg | Return value register name. |
saveRegs | Set of registers, which should be saved. |
Definition at line 743 of file CodeGenerator.cc.
References TTAProgram::Procedure::add(), TTAMachine::FunctionUnit::addressSpace(), TTAProgram::ProgramAnnotation::ANN_JUMP_TO_NEXT, TTAMachine::Machine::controlUnit(), createExternalCall(), TTAProgram::InstructionReferenceManager::createReference(), incrementStackPointer(), TTAMachine::NullInstructionTemplate::instance(), mach_, TTAProgram::CodeSnippet::nextInstruction(), popRegisterFromStack(), pushInstructionReferenceToStack(), pushRegisterToStack(), registerJump(), registerMove(), TTAProgram::Procedure::remove(), and TTAProgram::InstructionReferenceManager::replace().
TTAProgram::TerminalFUPort * TTAProgram::CodeGenerator::createTerminalFUPort | ( | const TCEString & | opName, |
int | operand = 0 |
||
) |
If operand is not given return return address terminal.
Definition at line 94 of file CodeGenerator.cc.
References TTAMachine::Machine::controlUnit(), Operation::isControlFlowOperation(), UniversalFunctionUnit::operation(), OperationPool::operation(), TTAMachine::FunctionUnit::operation(), TTAMachine::ControlUnit::returnAddressPort(), uMach_, and UniversalMachine::universalFunctionUnit().
Referenced by createCall(), createExternalCall(), createForLoopBufferInit(), createJump(), createTerminalRegister(), decrementRegisterAddress(), llvm::LLVMTCEBuilder::emitGlobalXXtructorCalls(), CallsToJumps::handleControlFlowGraph(), incrementRegisterAddress(), loadTerminal(), registerJump(), BFCopyRegWithOp::splitMove(), and storeTerminal().
TTAProgram::Terminal * TTAProgram::CodeGenerator::createTerminalRegister | ( | const TCEString & | name, |
bool | readPort | ||
) |
Definition at line 135 of file CodeGenerator.cc.
References createTerminalFUPort(), createTerminalRegister(), UniversalMachine::integerRegisterFile(), TTAMachine::Machine::Navigator< ComponentType >::item(), mach_, TTAMachine::Machine::registerFileNavigator(), Conversion::toInt(), and uMach_.
TTAProgram::Terminal * TTAProgram::CodeGenerator::createTerminalRegister | ( | const TTAMachine::RegisterFile & | rf, |
int | regNum, | ||
bool | readPort | ||
) | const |
Definition at line 115 of file CodeGenerator.cc.
References TTAMachine::Port::isInput(), TTAMachine::Port::isOutput(), TTAMachine::BaseRegisterFile::port(), and TTAMachine::Unit::portCount().
Referenced by createBreakOperation(), createTerminalRegister(), decrementRegisterAddress(), llvm::LLVMTCEBuilder::emitLongjmp(), llvm::LLVMTCEBuilder::emitReadSP(), llvm::LLVMTCEBuilder::emitReturnTo(), llvm::LLVMTCEBuilder::emitSetjmp(), llvm::LLVMTCEBuilder::emitWriteSP(), immediateMove(), incrementRegisterAddress(), loadFromAddress(), loadFromRegisterAddress(), popFromBuffer(), popFromStack(), pushToBuffer(), pushToStack(), registerJump(), registerMove(), storeToAddress(), and storeToRegisterAddress().
ProgramOperationPtr TTAProgram::CodeGenerator::createWhileLoopBufferInit | ( | int | loopSize | ) |
Definition at line 1116 of file CodeGenerator.cc.
References MoveNode::addDestinationOperationPtr(), TTAMachine::Machine::controlUnit(), createMove(), TTAMachine::FunctionUnit::hasOperation(), mach_, UniversalFunctionUnit::operation(), OperationPool::operation(), MathTools::requiredBitsSigned(), uMach_, and UniversalMachine::universalFunctionUnit().
void TTAProgram::CodeGenerator::decrementRegisterAddress | ( | TTAProgram::CodeSnippet & | dstProcedure, |
const TCEString & | dstReg, | ||
int | decrement | ||
) |
Decrement address in a register by value of decrement.
dstProcedure | Procedure to add the moves to. |
dstReg | Register to decrement. |
decrement | How much to decrement. |
Definition at line 380 of file CodeGenerator.cc.
References addMoveToProcedure(), createTerminalFUPort(), createTerminalRegister(), TTAMachine::Machine::is64bit(), mach_, and MathTools::requiredBitsSigned().
Referenced by decrementStackPointer(), popFromBuffer(), and popRegisterFromBuffer().
void TTAProgram::CodeGenerator::decrementStackPointer | ( | TTAProgram::CodeSnippet & | dstProcedure, |
const TCEString & | spReg | ||
) |
Definition at line 423 of file CodeGenerator.cc.
References decrementRegisterAddress(), and stackAlignment_.
Referenced by llvm::LLVMTCEBuilder::emitSetjmp(), pushRegisterToStack(), and pushToStack().
void TTAProgram::CodeGenerator::immediateMove | ( | TTAProgram::CodeSnippet & | dstProcedure, |
int | imm, | ||
const TCEString & | dstReg | ||
) |
Definition at line 717 of file CodeGenerator.cc.
References addMoveToProcedure(), and createTerminalRegister().
void TTAProgram::CodeGenerator::incrementRegisterAddress | ( | TTAProgram::CodeSnippet & | dstProcedure, |
const TCEString & | dstReg, | ||
int | increment | ||
) |
Increment address in a register by value of increment.
dstProcedure | Procedure to add the moves to. |
dstReg | Register to increment. |
increment | How much to increment. |
Definition at line 335 of file CodeGenerator.cc.
References addMoveToProcedure(), createTerminalFUPort(), createTerminalRegister(), TTAMachine::Machine::is64bit(), mach_, and MathTools::requiredBitsSigned().
Referenced by incrementStackPointer(), pushRegisterToBuffer(), and pushToBuffer().
void TTAProgram::CodeGenerator::incrementStackPointer | ( | TTAProgram::CodeSnippet & | dstProcedure, |
const TCEString & | spReg | ||
) |
Definition at line 417 of file CodeGenerator.cc.
References incrementRegisterAddress(), and stackAlignment_.
Referenced by createSchedYieldProcedure(), llvm::LLVMTCEBuilder::emitLongjmp(), llvm::LLVMTCEBuilder::emitSetjmp(), popFromStack(), and popRegisterFromStack().
void TTAProgram::CodeGenerator::loadFromAddress | ( | TTAProgram::CodeSnippet & | dstProcedure, |
TTAProgram::Terminal * | srcTerminal, | ||
const TCEString & | dstReg | ||
) |
Loads register from address in a terminal.
dstProcedure | Procedure to add the moves to. |
srcTerminal | Address to load from. |
dstReg | Register to store loaded value. |
Definition at line 256 of file CodeGenerator.cc.
References createTerminalRegister(), and loadTerminal().
Referenced by loadFromRegisterAddress().
void TTAProgram::CodeGenerator::loadFromRegisterAddress | ( | TTAProgram::CodeSnippet & | dstProcedure, |
const TCEString & | srcReg, | ||
const TCEString & | dstReg | ||
) |
Loads register from address in another register.
dstProcedure | Procedure to add the moves to. |
srcReg | Address to load from. |
dstReg | Register to store loaded value. |
Definition at line 295 of file CodeGenerator.cc.
References createTerminalRegister(), and loadFromAddress().
Referenced by llvm::LLVMTCEBuilder::emitLongjmp(), popRegisterFromBuffer(), and popRegisterFromStack().
void TTAProgram::CodeGenerator::loadTerminal | ( | TTAProgram::CodeSnippet & | dstProcedure, |
TTAProgram::Terminal * | srcTerminal, | ||
TTAProgram::Terminal * | dstTerminal | ||
) |
Loads terminal from address in a terminal.
dstProcedure | Procedure to add the moves to. |
srcTerminal | Address to load from. |
dstTerminal | Terminal to store loaded value. |
Definition at line 169 of file CodeGenerator.cc.
References abortWithError, addMoveToProcedure(), createTerminalFUPort(), TTAMachine::Machine::is64bit(), TTAProgram::Terminal::isGPR(), TTAMachine::Machine::isLittleEndian(), mach_, opset_, TTAProgram::Terminal::registerFile(), and TTAMachine::BaseRegisterFile::width().
Referenced by llvm::LLVMTCEBuilder::createSPInitLoad(), loadFromAddress(), popFromBuffer(), and popFromStack().
void TTAProgram::CodeGenerator::popFromBuffer | ( | TTAProgram::CodeSnippet & | dstProcedure, |
const TCEString & | indexRegister, | ||
TTAProgram::Terminal * | dstTerminal | ||
) |
TODO Decide how much the register value should be incremented in the following buffer operations. Right now it's 4, but maybe it should be calculated based on the terminal size. These operations aren't currently used anywhere. For stack buffer operations you should use the above functions, since they take into account the stack alignment. Pops value from buffer and stores it in a given terminal.
dstProcedure | Procedure to add the moves to. |
indexRegister | Pointer to the buffer. |
dstTerminal | Terminal to put the value into. |
Definition at line 529 of file CodeGenerator.cc.
References createTerminalRegister(), decrementRegisterAddress(), and loadTerminal().
void TTAProgram::CodeGenerator::popFromStack | ( | TTAProgram::CodeSnippet & | dstProcedure, |
const TCEString & | stackRegister, | ||
TTAProgram::Terminal * | dstTerminal | ||
) |
Pops value from stack and stores it in a given terminal.
dstProcedure | Procedure to add the moves to. |
stackRegister | Stack pointer name. |
dstTerminal | Terminal to put the value into. |
Definition at line 436 of file CodeGenerator.cc.
References createTerminalRegister(), incrementStackPointer(), and loadTerminal().
Referenced by llvm::LLVMTCEBuilder::emitSetjmp().
void TTAProgram::CodeGenerator::popRegisterFromBuffer | ( | TTAProgram::CodeSnippet & | dstProcedure, |
const TCEString & | indexRegister, | ||
const TCEString & | dstReg | ||
) |
Pops value from buffer and stores it in a register.
dstProcedure | Procedure to add the moves to. |
indexRegister | Pointer to the buffer. |
dstReg | Register to put the value into. |
Definition at line 548 of file CodeGenerator.cc.
References decrementRegisterAddress(), and loadFromRegisterAddress().
void TTAProgram::CodeGenerator::popRegisterFromStack | ( | TTAProgram::CodeSnippet & | dstProcedure, |
const TCEString & | stackRegister, | ||
const TCEString & | dstReg | ||
) |
Pops value from stack and stores it in a register.
dstProcedure | Procedure to add the moves to. |
stackRegister | Stack pointer name. |
dstReg | Register to put the value into. |
Definition at line 456 of file CodeGenerator.cc.
References incrementStackPointer(), and loadFromRegisterAddress().
Referenced by createSchedYieldProcedure(), llvm::LLVMTCEBuilder::emitLongjmp(), and llvm::LLVMTCEBuilder::emitSetjmp().
void TTAProgram::CodeGenerator::pushInstructionReferenceToBuffer | ( | TTAProgram::CodeSnippet & | dstProcedure, |
const TCEString & | indexRegister, | ||
TTAProgram::InstructionReference & | srcAddr | ||
) |
Definition at line 596 of file CodeGenerator.cc.
References pushToBuffer().
void TTAProgram::CodeGenerator::pushInstructionReferenceToStack | ( | TTAProgram::CodeSnippet & | dstProcedure, |
const TCEString & | stackRegister, | ||
TTAProgram::InstructionReference & | srcAddr | ||
) |
Definition at line 503 of file CodeGenerator.cc.
References pushToStack().
Referenced by createSchedYieldProcedure(), and llvm::LLVMTCEBuilder::emitSetjmp().
void TTAProgram::CodeGenerator::pushRegisterToBuffer | ( | TTAProgram::CodeSnippet & | dstProcedure, |
const TCEString & | indexRegister, | ||
const TCEString & | srcReg | ||
) |
Push a value in a register to a buffer.
dstProcedure | Procedure to add the moves to. |
indexRegister | Pointer to the buffer. |
srcTerminal | Value to push. |
Definition at line 585 of file CodeGenerator.cc.
References incrementRegisterAddress(), and storeToRegisterAddress().
void TTAProgram::CodeGenerator::pushRegisterToStack | ( | TTAProgram::CodeSnippet & | dstProcedure, |
const TCEString & | stackRegister, | ||
const TCEString & | srcReg | ||
) |
Push a value in a register to the stack.
dstProcedure | Procedure to add the moves to. |
stackRegister | Stack pointer name. |
srcTerminal | Value to push. |
Definition at line 493 of file CodeGenerator.cc.
References decrementStackPointer(), and storeToRegisterAddress().
Referenced by createSchedYieldProcedure(), and llvm::LLVMTCEBuilder::emitSetjmp().
void TTAProgram::CodeGenerator::pushToBuffer | ( | TTAProgram::CodeSnippet & | dstProcedure, |
const TCEString & | indexRegister, | ||
TTAProgram::Terminal * | srcTerminal | ||
) |
Push a value in a terminal to a buffer.
dstProcedure | Procedure to add the moves to. |
indexRegister | Pointer to the buffer. |
srcTerminal | Value to push. |
Definition at line 565 of file CodeGenerator.cc.
References createTerminalRegister(), incrementRegisterAddress(), and storeTerminal().
Referenced by pushInstructionReferenceToBuffer().
void TTAProgram::CodeGenerator::pushToStack | ( | TTAProgram::CodeSnippet & | dstProcedure, |
const TCEString & | stackRegister, | ||
TTAProgram::Terminal * | srcTerminal | ||
) |
Push a value in a terminal to the stack.
dstProcedure | Procedure to add the moves to. |
stackRegister | Stack pointer name. |
srcTerminal | Value to push. |
Definition at line 474 of file CodeGenerator.cc.
References createTerminalRegister(), decrementStackPointer(), and storeTerminal().
Referenced by llvm::LLVMTCEBuilder::emitLongjmp(), llvm::LLVMTCEBuilder::emitSetjmp(), and pushInstructionReferenceToStack().
void TTAProgram::CodeGenerator::registerJump | ( | TTAProgram::CodeSnippet & | dstProcedure, |
const TCEString & | jumpAddrReg | ||
) |
Definition at line 609 of file CodeGenerator.cc.
References addMoveToProcedure(), createTerminalFUPort(), and createTerminalRegister().
Referenced by createSchedYieldProcedure(), llvm::LLVMTCEBuilder::emitLongjmp(), and llvm::LLVMTCEBuilder::emitReturnTo().
void TTAProgram::CodeGenerator::registerJump | ( | TTAProgram::CodeSnippet & | dstProcedure, |
const TCEString & | jumpAddrReg, | ||
const TTAProgram::ProgramAnnotation & | annotation | ||
) |
Definition at line 624 of file CodeGenerator.cc.
References addAnnotatedMoveToProcedure(), createTerminalFUPort(), and createTerminalRegister().
void TTAProgram::CodeGenerator::registerMove | ( | TTAProgram::CodeSnippet & | dstProcedure, |
const TCEString & | srcReg, | ||
const TCEString & | dstReg | ||
) |
Definition at line 703 of file CodeGenerator.cc.
References addMoveToProcedure(), and createTerminalRegister().
Referenced by createSchedYieldProcedure().
void TTAProgram::CodeGenerator::storeTerminal | ( | TTAProgram::CodeSnippet & | dstProcedure, |
TTAProgram::Terminal * | dstTerminal, | ||
TTAProgram::Terminal * | srcTerminal | ||
) |
Store terminal to address in a terminal.
dstProcedure | Procedure to add the moves to. |
dstTerminal | Address to store to. |
srcTerminal | Terminal to store. |
Definition at line 213 of file CodeGenerator.cc.
References abortWithError, addMoveToProcedure(), createTerminalFUPort(), TTAMachine::Machine::is64bit(), TTAProgram::Terminal::isGPR(), TTAMachine::Machine::isLittleEndian(), mach_, opset_, TTAProgram::Terminal::registerFile(), and TTAMachine::BaseRegisterFile::width().
Referenced by pushToBuffer(), pushToStack(), and storeToAddress().
void TTAProgram::CodeGenerator::storeToAddress | ( | TTAProgram::CodeSnippet & | dstProcedure, |
TTAProgram::Terminal * | dstTerminal, | ||
const TCEString & | srcReg | ||
) |
Store register to address in a terminal.
dstProcedure | Procedure to add the moves to. |
dstTerminal | Address to store to. |
srcReg | Register to store. |
Definition at line 276 of file CodeGenerator.cc.
References createTerminalRegister(), and storeTerminal().
Referenced by llvm::LLVMTCEBuilder::emitSetjmp(), and storeToRegisterAddress().
void TTAProgram::CodeGenerator::storeToRegisterAddress | ( | TTAProgram::CodeSnippet & | dstProcedure, |
const TCEString & | dstReg, | ||
const TCEString & | srcReg | ||
) |
Store register to address in another register.
dstProcedure | Procedure to add the moves to. |
dstReg | Address to store to. |
srcReg | Register to store. |
Definition at line 315 of file CodeGenerator.cc.
References createTerminalRegister(), and storeToAddress().
Referenced by pushRegisterToBuffer(), and pushRegisterToStack().
|
private |
Target machine.
Definition at line 220 of file CodeGenerator.hh.
Referenced by createBreakOperation(), createForLoopBufferInit(), createSchedYieldProcedure(), createTerminalRegister(), createWhileLoopBufferInit(), decrementRegisterAddress(), incrementRegisterAddress(), loadTerminal(), and storeTerminal().
|
private |
Definition at line 225 of file CodeGenerator.hh.
Referenced by CodeGenerator(), loadTerminal(), and storeTerminal().
|
private |
Definition at line 224 of file CodeGenerator.hh.
Referenced by CodeGenerator(), decrementStackPointer(), and incrementStackPointer().
|
private |
Universal machine.
Definition at line 222 of file CodeGenerator.hh.
Referenced by addAnnotatedMoveToProcedure(), addMoveToProcedure(), createBreakOperation(), createCall(), createForLoopBufferInit(), createJump(), createMove(), createTerminalFUPort(), createTerminalRegister(), and createWhileLoopBufferInit().