1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
#pragma once
#include "Code/Output.h"
#include "FunctionInfo.h"
namespace code {
namespace dwarf {
STORM_PKG(core.asm.dwarf);
/**
* Code output that provides a FunctionInfo object as well.
*/
class CodeOutput : public code::CodeOutput {
STORM_CLASS;
public:
STORM_CTOR CodeOutput();
virtual void STORM_FN setFrameOffset(Offset offset);
virtual void STORM_FN setFrameRegister(Reg reg);
virtual void STORM_FN setFrame(Reg reg, Offset offset);
virtual void STORM_FN markSaved(Reg reg, Offset offset);
virtual void STORM_FN markReturnAuth();
protected:
// Function information to update. Expected to be initialized by a subclass.
FunctionInfo fnInfo;
// Current position in the code. Expected to be updated by a subclass.
Nat pos;
};
}
}
|