|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
public interface CalcRexAggImplementor
Translates a call to an aggregate function to calculator assembly language.
Implementors are held in a CalcRexImplementorTable.
| Method Summary | |
|---|---|
boolean |
canImplement(RexCall call)
Returns whether this implementor can handle the given call. |
void |
implementAdd(RexCall call,
CalcReg accumulatorRegister,
RexToCalcTranslator translator)
Generates instructions to add a new value to an aggregation. |
void |
implementDrop(RexCall call,
CalcReg accumulatorRegister,
RexToCalcTranslator translator)
Generates instructions to implement this call, and returns the register which holds the result. |
void |
implementInitAdd(RexCall call,
CalcReg accumulatorRegister,
RexToCalcTranslator translator)
Generates instructions to initialize and add a new value to an aggregation. |
void |
implementInitialize(RexCall call,
CalcReg accumulatorRegister,
RexToCalcTranslator translator)
Generates instructions to initialize an accumulator for a call to this aggregate function, and returns the register which holds the accumulator. |
| Method Detail |
|---|
void implementInitialize(RexCall call,
CalcReg accumulatorRegister,
RexToCalcTranslator translator)
For example, for SUM(x), this method generates O
s8; V 0; T; MOVE O0, C0; and returns the O0 register.
call - The call to the aggregate function to be implementedaccumulatorRegister - The accumulator register to be populatedtranslator - Calculator code generator
void implementAdd(RexCall call,
CalcReg accumulatorRegister,
RexToCalcTranslator translator)
For example, for SUM(x), this method generates I
s8; O s8; T; ADD O0, I0;.
call - The call to the aggregate function to be implementedaccumulatorRegister - The accumulator registertranslator - Calculator code generator
void implementInitAdd(RexCall call,
CalcReg accumulatorRegister,
RexToCalcTranslator translator)
call - The call to the aggregate function to be implementedaccumulatorRegister - The accumulator registertranslator - Calculator code generator
void implementDrop(RexCall call,
CalcReg accumulatorRegister,
RexToCalcTranslator translator)
For example, for SUM(x), this method generates I
s8; O s8; T; SUB O0, I0;
call - The call to the aggregate function to be implemented.accumulatorRegister - The accumulator registertranslator - Calculator code generatorboolean canImplement(RexCall call)
call - The call to the aggregate function to be implemented
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||