mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-19 04:29:21 +00:00
* Include the real (generated) version of getBinaryCodeForInstr()
* Add implementation of getMachineOpValue() for generated code emitter * Convert assert()s in unimplemented functions to abort()s so that non-debug builds fail predictably * Add file header comments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16981 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
bab2adf496
commit
d37faba5b4
@ -7,6 +7,8 @@
|
|||||||
//
|
//
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
//
|
//
|
||||||
|
// This file defines the PowerPC 32-bit CodeEmitter and associated machinery to
|
||||||
|
// JIT-compile bytecode to native PowerPC.
|
||||||
//
|
//
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
@ -24,6 +26,8 @@ namespace {
|
|||||||
TargetMachine &TM;
|
TargetMachine &TM;
|
||||||
MachineCodeEmitter &MCE;
|
MachineCodeEmitter &MCE;
|
||||||
|
|
||||||
|
int64_t getMachineOpValue(MachineInstr &MI, MachineOperand &MO);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
PPC32CodeEmitter(TargetMachine &T, MachineCodeEmitter &M)
|
PPC32CodeEmitter(TargetMachine &T, MachineCodeEmitter &M)
|
||||||
: TM(T), MCE(M) {}
|
: TM(T), MCE(M) {}
|
||||||
@ -42,11 +46,13 @@ namespace {
|
|||||||
///
|
///
|
||||||
void emitWord(unsigned w) { MCE.emitWord(w); }
|
void emitWord(unsigned w) { MCE.emitWord(w); }
|
||||||
|
|
||||||
unsigned getValueBit(int64_t Val, unsigned bit);
|
/// getValueBit - return the particular bit of Val
|
||||||
|
///
|
||||||
|
unsigned getValueBit(int64_t Val, unsigned bit) { return (Val >> bit) & 1; }
|
||||||
|
|
||||||
/// getBinaryCodeForInstr - returns the assembled code for an instruction
|
/// getBinaryCodeForInstr - returns the assembled code for an instruction
|
||||||
///
|
///
|
||||||
unsigned getBinaryCodeForInstr(MachineInstr &MI) { return 0; }
|
unsigned getBinaryCodeForInstr(MachineInstr &MI);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -60,7 +66,7 @@ bool PPC32TargetMachine::addPassesToEmitMachineCode(FunctionPassManager &PM,
|
|||||||
MachineCodeEmitter &MCE) {
|
MachineCodeEmitter &MCE) {
|
||||||
// Machine code emitter pass for PowerPC
|
// Machine code emitter pass for PowerPC
|
||||||
PM.add(new PPC32CodeEmitter(*this, MCE));
|
PM.add(new PPC32CodeEmitter(*this, MCE));
|
||||||
// Delete machine code for this function after emitting it:
|
// Delete machine code for this function after emitting it
|
||||||
PM.add(createMachineCodeDeleter());
|
PM.add(createMachineCodeDeleter());
|
||||||
// We don't yet support machine code emission
|
// We don't yet support machine code emission
|
||||||
return true;
|
return true;
|
||||||
@ -80,22 +86,26 @@ void PPC32CodeEmitter::emitBasicBlock(MachineBasicBlock &MBB) {
|
|||||||
emitWord(getBinaryCodeForInstr(*I));
|
emitWord(getBinaryCodeForInstr(*I));
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned PPC32CodeEmitter::getValueBit(int64_t Val, unsigned bit) {
|
int64_t PPC32CodeEmitter::getMachineOpValue(MachineInstr &MI,
|
||||||
Val >>= bit;
|
MachineOperand &MO) {
|
||||||
return (Val & 1);
|
abort();
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void *PPC32JITInfo::getJITStubForFunction(Function *F,
|
void *PPC32JITInfo::getJITStubForFunction(Function *F,
|
||||||
MachineCodeEmitter &MCE) {
|
MachineCodeEmitter &MCE) {
|
||||||
assert (0 && "PPC32JITInfo::getJITStubForFunction not implemented");
|
std::cerr << "PPC32JITInfo::getJITStubForFunction not implemented\n";
|
||||||
|
abort();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void PPC32JITInfo::replaceMachineCodeForFunction (void *Old, void *New) {
|
void PPC32JITInfo::replaceMachineCodeForFunction (void *Old, void *New) {
|
||||||
assert (0 && "PPC32JITInfo::replaceMachineCodeForFunction not implemented");
|
std::cerr << "PPC32JITInfo::replaceMachineCodeForFunction not implemented\n";
|
||||||
|
abort();
|
||||||
}
|
}
|
||||||
|
|
||||||
//#include "PowerPCGenCodeEmitter.inc"
|
#include "PPC32GenCodeEmitter.inc"
|
||||||
|
|
||||||
} // end llvm namespace
|
} // end llvm namespace
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user