mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 04:30:12 +00:00
No, IDEFs shouldn't be JITed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22648 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
cd33eef1b2
commit
3f55a4fcab
@ -89,9 +89,11 @@ bool AlphaCodeEmitter::runOnMachineFunction(MachineFunction &MF) {
|
||||
for (unsigned i = 0, e = BBRefs.size(); i != e; ++i) {
|
||||
unsigned* Location = (unsigned*)BasicBlockAddrs[BBRefs[i].first];
|
||||
unsigned* Ref = (unsigned*)BBRefs[i].second;
|
||||
intptr_t BranchTargetDisp = (((unsigned char*)Location - (unsigned char*)Ref) >> 2) - 1;
|
||||
intptr_t BranchTargetDisp =
|
||||
(((unsigned char*)Location - (unsigned char*)Ref) >> 2) - 1;
|
||||
DEBUG(std::cerr << "Fixup @ " << (void*)Ref << " to " << (void*)Location
|
||||
<< " Disp " << BranchTargetDisp << " using " << (BranchTargetDisp & ((1 << 22)-1)) << "\n");
|
||||
<< " Disp " << BranchTargetDisp
|
||||
<< " using " << (BranchTargetDisp & ((1 << 22)-1)) << "\n");
|
||||
*Ref |= (BranchTargetDisp & ((1 << 21)-1));
|
||||
}
|
||||
BBRefs.clear();
|
||||
@ -115,6 +117,7 @@ void AlphaCodeEmitter::emitBasicBlock(MachineBasicBlock &MBB) {
|
||||
case Alpha::ALTENT:
|
||||
case Alpha::PCLABEL:
|
||||
case Alpha::MEMLABEL:
|
||||
case Alpha::IDEF:
|
||||
break; //skip these
|
||||
}
|
||||
}
|
||||
|
@ -64,7 +64,7 @@ static void EmitBranchToAt(void *At, void *To) {
|
||||
for (int x = 1; x <= 8; ++x) {
|
||||
AtI[2*x - 1] = BUILD_SLLi(27,27,8);
|
||||
unsigned d = (Fn >> (64 - 8 * x)) & 0x00FF;
|
||||
DEBUG(std::cerr << "outputing " << hex << d << dec << "\n");
|
||||
// DEBUG(std::cerr << "outputing " << hex << d << dec << "\n");
|
||||
AtI[2*x] = BUILD_ORi(27, 27, d);
|
||||
}
|
||||
AtI[17] = BUILD_JMP(31,27,0); //jump, preserving ra, and setting pv
|
||||
|
Loading…
Reference in New Issue
Block a user