MachineCodeEmitter &getMachineCodeEmitter() const {
return *(MachineCodeEmitter*)MCE;
}
+ virtual ~MachOWriter();
- ~MachOWriter();
+ virtual const char *getPassName() const {
+ return "Mach-O Writer";
+ }
typedef std::vector<unsigned char> DataBuffer;
-
protected:
MachOWriter(std::ostream &O, TargetMachine &TM);
// TargetMachOWriterInfo
//===--------------------------------------------------------------------===//
- struct TargetMachOWriterInfo {
+ class TargetMachOWriterInfo {
uint32_t CPUType; // CPU specifier
uint32_t CPUSubType; // Machine specifier
-
+ public:
// The various CPU_TYPE_* constants are already defined by at least one
// system header file and create compilation errors if not respected.
#if !defined(CPU_TYPE_I386)
virtual MachineRelocation GetJTRelocation(unsigned Offset,
MachineBasicBlock *MBB) const;
- virtual const char *getPassName() const {
- return "Mach-O Writer";
- }
+ uint32_t getCPUType() const { return CPUType; }
+ uint32_t getCPUSubType() const { return CPUSubType; }
};
} // end llvm namespace
OutputBuffer FHOut(FH, is64Bit, isLittleEndian);
FHOut.outword(Header.magic);
- FHOut.outword(TM.getMachOWriterInfo()->CPUType);
- FHOut.outword(TM.getMachOWriterInfo()->CPUSubType);
+ FHOut.outword(TM.getMachOWriterInfo()->getCPUType());
+ FHOut.outword(TM.getMachOWriterInfo()->getCPUSubType());
FHOut.outword(Header.filetype);
FHOut.outword(Header.ncmds);
FHOut.outword(Header.sizeofcmds);
// Forward declarations
class PPCTargetMachine;
- struct PPCMachOWriterInfo : public TargetMachOWriterInfo {
+ class PPCMachOWriterInfo : public TargetMachOWriterInfo {
+ public:
PPCMachOWriterInfo(const PPCTargetMachine &TM);
virtual ~PPCMachOWriterInfo() {}
-
- virtual const char *getPassName() const {
- return "PowerPC Mach-O Writer";
- }
};
} // end llvm namespace