|
||||||||||
| PREV NEXT | FRAMES NO FRAMES | |||||||||
| Packages that use AssemblyfileGenerator | |
|---|---|
| dspl.backend | |
| dspl.backend.x86 | |
| Uses of AssemblyfileGenerator in dspl.backend |
|---|
| Fields in dspl.backend declared as AssemblyfileGenerator | |
|---|---|
protected AssemblyfileGenerator |
InstructionProcessor.afg
AssemblyfileGenerator to write the assembly instructions to |
| Methods in dspl.backend with parameters of type AssemblyfileGenerator | |
|---|---|
abstract void |
ArithmaticInstructionProcessor.processAddition(ArithmaticInstruction instr,
SymbolTable st,
AssemblyfileGenerator afg)
Process an Addition Arithmatic Operation |
void |
ArithmaticInstructionProcessor.processArithmaticInstructor(ArithmaticInstruction instr,
SymbolTable st,
AssemblyfileGenerator afg)
Process an Arithmatic Instruction |
abstract void |
ArithmaticInstructionProcessor.processAssignment(ArithmaticInstruction instr,
SymbolTable st,
AssemblyfileGenerator afg)
Process an Assignment Operation |
abstract void |
BranchInstructionProcessor.processBranchInstruction(BranchInstruction inst,
InstructionProcessor ip,
SymbolTable st,
AssemblyfileGenerator afg)
Process a Branch Instruction, converting it into the proper asm instructions |
abstract void |
CCallInstructionProcessor.processCCallInstruction(CCallInstruction inst,
InstructionProcessor ip,
SymbolTable st,
AssemblyfileGenerator afg)
Process a CCall Instruction, converting it into the proper asm instructions |
abstract void |
ArithmaticInstructionProcessor.processConversion(ArithmaticInstruction instr,
SymbolTable st,
AssemblyfileGenerator afg)
Process a Conversion Operation |
abstract void |
ArithmaticInstructionProcessor.processConvolution(ArithmaticInstruction instr,
SymbolTable st,
AssemblyfileGenerator afg)
Process a Convolution Operation |
abstract void |
ArithmaticInstructionProcessor.processDivision(ArithmaticInstruction instr,
SymbolTable st,
AssemblyfileGenerator afg)
Process a Divison Operation |
abstract void |
LoopInstructionProcessor.ProcessLoopInstruction(LoopInstruction inst,
InstructionProcessor ip,
SymbolTable st,
AssemblyfileGenerator afg)
Process the loop instruction |
abstract void |
ArithmaticInstructionProcessor.processMultiplication(ArithmaticInstruction instr,
SymbolTable st,
AssemblyfileGenerator afg)
Process a Multiplication Operation |
abstract void |
ArithmaticInstructionProcessor.processSubtraction(ArithmaticInstruction instr,
SymbolTable st,
AssemblyfileGenerator afg)
Process a Subtraction Operation |
| Constructors in dspl.backend with parameters of type AssemblyfileGenerator | |
|---|---|
InstructionProcessor(SymbolTable st,
AssemblyfileGenerator afg)
Constructs an InstructionProcessor given the provided SymbolTable and AssemblyfileGenerator to route instructions to |
|
| Uses of AssemblyfileGenerator in dspl.backend.x86 |
|---|
| Fields in dspl.backend.x86 declared as AssemblyfileGenerator | |
|---|---|
private AssemblyfileGenerator |
X86VariableManager.afg
AssemblyFileGenerator for the current program Used to write additional move instructions that may be required when providing registers |
| Methods in dspl.backend.x86 with parameters of type AssemblyfileGenerator | |
|---|---|
static X86Operand |
X86VariableManager.prepareArg1Variable(Variable var,
int allowableOpTypes,
AssemblyfileGenerator afg)
Very important note: Arg1, when retrieved in memory, is stored in eax. |
static X86Operand |
X86VariableManager.prepareArg2Variable(Variable var,
int allowableOpTypes,
AssemblyfileGenerator afg)
Very important note: see note above, same holds for ecx |
static X86Register |
X86VariableManager.prepareArrayLocAsReg(Variable var,
X86Register reg,
AssemblyfileGenerator afg)
intended specifically when given an array ("iA", for example), do: mov $iA, %(specified reg) and return the specified reg |
static X86Operand |
X86VariableManager.prepareDestVariable(Variable var,
int allowableOpTypes,
AssemblyfileGenerator afg)
|
static X86Register |
X86VariableManager.prepareRegVariableWithExplicitMove(Variable var,
java.lang.String explicitMovInstruction,
AssemblyfileGenerator afg)
Used when the exact mov instruction for putting the variable into a register is known Added for type conversions Always retuns reg in %eax NOTE: here the register content's lenght IS NOT SET, this must be done after calling the function to get the desired moves for conversion (since length is based on the destination not the src which is the var we have here) |
static X86Operand |
X86VariableManager.prepareVariable(Variable var,
X86Register indexRegister,
X86Register variableRegister,
int allowableOpTypes,
AssemblyfileGenerator afg)
|
void |
X86ArithmaticInstructionrProcessor.processAddition(ArithmaticInstruction instr,
SymbolTable st,
AssemblyfileGenerator afg)
Convert an addition operation into the necessary x86 asm instruction(s) |
void |
X86ArithmaticInstructionrProcessor.processAssignment(ArithmaticInstruction instr,
SymbolTable st,
AssemblyfileGenerator afg)
x86 assignment. |
private void |
X86ArithmaticInstructionrProcessor.processAtomicFPInstruction(ArithmaticInstruction instr,
SymbolTable st,
AssemblyfileGenerator afg,
java.lang.String fpOp)
|
private void |
X86ArithmaticInstructionrProcessor.processAtomicInstruction(ArithmaticInstruction instr,
SymbolTable st,
AssemblyfileGenerator afg,
java.lang.String atomicOp,
boolean explicitlyStateEax)
|
void |
X86BranchInstructionProcessor.processBranchInstruction(BranchInstruction inst,
InstructionProcessor ip,
SymbolTable st,
AssemblyfileGenerator afg)
Convert a BranchInstruction into x86 asm instructions |
void |
X86CCallInstructionProcessor.processCCallInstruction(CCallInstruction inst,
InstructionProcessor ip,
SymbolTable st,
AssemblyfileGenerator afg)
|
void |
X86ArithmaticInstructionrProcessor.processConversion(ArithmaticInstruction instr,
SymbolTable st,
AssemblyfileGenerator afg)
Conversion of natural numbers (ubyte,byte,int,uint) is based upon gcc output... |
void |
X86ArithmaticInstructionrProcessor.processConvolution(ArithmaticInstruction instr,
SymbolTable st,
AssemblyfileGenerator afg)
|
void |
X86ArithmaticInstructionrProcessor.processDivision(ArithmaticInstruction instr,
SymbolTable st,
AssemblyfileGenerator afg)
|
void |
X86LoopInstructionProcessor.ProcessLoopInstruction(LoopInstruction inst,
InstructionProcessor ip,
SymbolTable st,
AssemblyfileGenerator afg)
|
void |
X86ArithmaticInstructionrProcessor.processMultiplication(ArithmaticInstruction instr,
SymbolTable st,
AssemblyfileGenerator afg)
|
private void |
X86ArithmaticInstructionrProcessor.processNonVectorizedArrayArithmatic(ArithmaticInstruction instr,
SymbolTable st,
AssemblyfileGenerator afg,
java.lang.String arithInst,
boolean explicitlyStateEax)
Helper function to process arithmatic instructions on arrays which cannot be performed with vectorized instructions and thus require a loop-based single value computation for each element in the arrays |
void |
X86ArithmaticInstructionrProcessor.processSubtraction(ArithmaticInstruction instr,
SymbolTable st,
AssemblyfileGenerator afg)
|
private void |
X86ArithmaticInstructionrProcessor.processVectorFPDiv(ArithmaticInstruction instr,
SymbolTable st,
AssemblyfileGenerator afg)
|
private void |
X86ArithmaticInstructionrProcessor.processVectorInstruction(ArithmaticInstruction instr,
SymbolTable st,
AssemblyfileGenerator afg,
java.lang.String sseOp)
Code Overview: Example: "iC = iA + iB;" where all three are integer arrays of same length. |
static void |
X86VariableManager.pushFloatingPointVariable(Variable var,
AssemblyfileGenerator afg)
Pushes the floating point variable onto the FPU stack (@ ST(0)); |
static void |
X86VariableManager.writeFPLoad(Variable var,
X86Operand op,
AssemblyfileGenerator afg)
Pushes op (which represents var) onto the stack |
static void |
X86VariableManager.writeMoveInstruction(X86Operand src,
X86Operand dest,
AssemblyfileGenerator afg)
|
static void |
X86VariableManager.writeTopOfFPStack(Variable var,
AssemblyfileGenerator afg)
|
static void |
X86VariableManager.writeVectorMoveInstruction(X86Operand src,
X86Operand dest,
AssemblyfileGenerator afg,
boolean isAligned)
|
| Constructors in dspl.backend.x86 with parameters of type AssemblyfileGenerator | |
|---|---|
X86VariableManager(SymbolTable st,
AssemblyfileGenerator afg)
|
|
|
||||||||||
| PREV NEXT | FRAMES NO FRAMES | |||||||||