diff options
Diffstat (limited to 'src/gallium/drivers/nv50/codegen/nv50_ir_target.h')
-rw-r--r-- | src/gallium/drivers/nv50/codegen/nv50_ir_target.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/gallium/drivers/nv50/codegen/nv50_ir_target.h b/src/gallium/drivers/nv50/codegen/nv50_ir_target.h index 6640198f090..88996ebbde3 100644 --- a/src/gallium/drivers/nv50/codegen/nv50_ir_target.h +++ b/src/gallium/drivers/nv50/codegen/nv50_ir_target.h @@ -61,6 +61,8 @@ struct RelocInfo class CodeEmitter { public: + CodeEmitter(const Target *); + // returns whether the instruction was encodable and written virtual bool emitInstruction(Instruction *) = 0; @@ -76,12 +78,14 @@ public: inline void *getRelocInfo() const { return relocInfo; } void prepareEmission(Program *); - void prepareEmission(Function *); + virtual void prepareEmission(Function *); virtual void prepareEmission(BasicBlock *); void printBinary() const; protected: + const Target *targ; + uint32_t *code; uint32_t codeSize; uint32_t codeSizeLimit; @@ -105,6 +109,8 @@ public: // The address chosen is supplied to the relocation routine. virtual void getBuiltinCode(const uint32_t **code, uint32_t *size) const = 0; + virtual void parseDriverInfo(const struct nv50_ir_prog_info *info) { } + virtual bool runLegalizePass(Program *, CGStage stage) const = 0; public: |