aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/nv50/codegen/nv50_ir_target.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/nv50/codegen/nv50_ir_target.h')
-rw-r--r--src/gallium/drivers/nv50/codegen/nv50_ir_target.h8
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: