mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-23 16:19:52 +00:00
* Remove trailing whitespace
* Convert tabs to spaces git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21426 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -68,8 +68,8 @@ namespace {
|
|||||||
void dumpStack() const {
|
void dumpStack() const {
|
||||||
std::cerr << "Stack contents:";
|
std::cerr << "Stack contents:";
|
||||||
for (unsigned i = 0; i != StackTop; ++i) {
|
for (unsigned i = 0; i != StackTop; ++i) {
|
||||||
std::cerr << " FP" << Stack[i];
|
std::cerr << " FP" << Stack[i];
|
||||||
assert(RegMap[Stack[i]] == i && "Stack[] doesn't match RegMap[]!");
|
assert(RegMap[Stack[i]] == i && "Stack[] doesn't match RegMap[]!");
|
||||||
}
|
}
|
||||||
std::cerr << "\n";
|
std::cerr << "\n";
|
||||||
}
|
}
|
||||||
@@ -104,20 +104,20 @@ namespace {
|
|||||||
bool isAtTop(unsigned RegNo) const { return getSlot(RegNo) == StackTop-1; }
|
bool isAtTop(unsigned RegNo) const { return getSlot(RegNo) == StackTop-1; }
|
||||||
void moveToTop(unsigned RegNo, MachineBasicBlock::iterator &I) {
|
void moveToTop(unsigned RegNo, MachineBasicBlock::iterator &I) {
|
||||||
if (!isAtTop(RegNo)) {
|
if (!isAtTop(RegNo)) {
|
||||||
unsigned Slot = getSlot(RegNo);
|
unsigned Slot = getSlot(RegNo);
|
||||||
unsigned STReg = getSTReg(RegNo);
|
unsigned STReg = getSTReg(RegNo);
|
||||||
unsigned RegOnTop = getStackEntry(0);
|
unsigned RegOnTop = getStackEntry(0);
|
||||||
|
|
||||||
// Swap the slots the regs are in
|
// Swap the slots the regs are in
|
||||||
std::swap(RegMap[RegNo], RegMap[RegOnTop]);
|
std::swap(RegMap[RegNo], RegMap[RegOnTop]);
|
||||||
|
|
||||||
// Swap stack slot contents
|
// Swap stack slot contents
|
||||||
assert(RegMap[RegOnTop] < StackTop);
|
assert(RegMap[RegOnTop] < StackTop);
|
||||||
std::swap(Stack[RegMap[RegOnTop]], Stack[StackTop-1]);
|
std::swap(Stack[RegMap[RegOnTop]], Stack[StackTop-1]);
|
||||||
|
|
||||||
// Emit an fxch to update the runtime processors version of the state
|
// Emit an fxch to update the runtime processors version of the state
|
||||||
BuildMI(*MBB, I, X86::FXCH, 1).addReg(STReg);
|
BuildMI(*MBB, I, X86::FXCH, 1).addReg(STReg);
|
||||||
NumFXCH++;
|
NumFXCH++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -208,23 +208,24 @@ bool FPS::processBasicBlock(MachineFunction &MF, MachineBasicBlock &BB) {
|
|||||||
PrevMI = prior(I);
|
PrevMI = prior(I);
|
||||||
|
|
||||||
++NumFP; // Keep track of # of pseudo instrs
|
++NumFP; // Keep track of # of pseudo instrs
|
||||||
DEBUG(std::cerr << "\nFPInst:\t";
|
DEBUG(std::cerr << "\nFPInst:\t"; MI->print(std::cerr, &(MF.getTarget())));
|
||||||
MI->print(std::cerr, &(MF.getTarget())));
|
|
||||||
|
|
||||||
// Get dead variables list now because the MI pointer may be deleted as part
|
// Get dead variables list now because the MI pointer may be deleted as part
|
||||||
// of processing!
|
// of processing!
|
||||||
LiveVariables::killed_iterator IB = LV->dead_begin(MI);
|
LiveVariables::killed_iterator IB = LV->dead_begin(MI);
|
||||||
LiveVariables::killed_iterator IE = LV->dead_end(MI);
|
LiveVariables::killed_iterator IE = LV->dead_end(MI);
|
||||||
|
|
||||||
DEBUG(const MRegisterInfo *MRI = MF.getTarget().getRegisterInfo();
|
DEBUG(
|
||||||
LiveVariables::killed_iterator I = LV->killed_begin(MI);
|
const MRegisterInfo *MRI = MF.getTarget().getRegisterInfo();
|
||||||
LiveVariables::killed_iterator E = LV->killed_end(MI);
|
LiveVariables::killed_iterator I = LV->killed_begin(MI);
|
||||||
if (I != E) {
|
LiveVariables::killed_iterator E = LV->killed_end(MI);
|
||||||
std::cerr << "Killed Operands:";
|
if (I != E) {
|
||||||
for (; I != E; ++I)
|
std::cerr << "Killed Operands:";
|
||||||
std::cerr << " %" << MRI->getName(I->second);
|
for (; I != E; ++I)
|
||||||
std::cerr << "\n";
|
std::cerr << " %" << MRI->getName(I->second);
|
||||||
});
|
std::cerr << "\n";
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
switch (Flags & X86II::FPTypeMask) {
|
switch (Flags & X86II::FPTypeMask) {
|
||||||
case X86II::ZeroArgFP: handleZeroArgFP(I); break;
|
case X86II::ZeroArgFP: handleZeroArgFP(I); break;
|
||||||
@@ -242,7 +243,7 @@ bool FPS::processBasicBlock(MachineFunction &MF, MachineBasicBlock &BB) {
|
|||||||
for (; IB != IE; ++IB) {
|
for (; IB != IE; ++IB) {
|
||||||
unsigned Reg = IB->second;
|
unsigned Reg = IB->second;
|
||||||
if (Reg >= X86::FP0 && Reg <= X86::FP6) {
|
if (Reg >= X86::FP0 && Reg <= X86::FP6) {
|
||||||
DEBUG(std::cerr << "Register FP#" << Reg-X86::FP0 << " is dead!\n");
|
DEBUG(std::cerr << "Register FP#" << Reg-X86::FP0 << " is dead!\n");
|
||||||
freeStackSlotAfter(I, Reg-X86::FP0);
|
freeStackSlotAfter(I, Reg-X86::FP0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -423,7 +424,7 @@ void FPS::handleOneArgFP(MachineBasicBlock::iterator &I) {
|
|||||||
unsigned Reg = getFPReg(MI->getOperand(MI->getNumOperands()-1));
|
unsigned Reg = getFPReg(MI->getOperand(MI->getNumOperands()-1));
|
||||||
bool KillsSrc = false;
|
bool KillsSrc = false;
|
||||||
for (LiveVariables::killed_iterator KI = LV->killed_begin(MI),
|
for (LiveVariables::killed_iterator KI = LV->killed_begin(MI),
|
||||||
E = LV->killed_end(MI); KI != E; ++KI)
|
E = LV->killed_end(MI); KI != E; ++KI)
|
||||||
KillsSrc |= KI->second == X86::FP0+Reg;
|
KillsSrc |= KI->second == X86::FP0+Reg;
|
||||||
|
|
||||||
// FSTP80r and FISTP64r are strange because there are no non-popping versions.
|
// FSTP80r and FISTP64r are strange because there are no non-popping versions.
|
||||||
@@ -464,7 +465,7 @@ void FPS::handleOneArgFPRW(MachineBasicBlock::iterator &I) {
|
|||||||
unsigned Reg = getFPReg(MI->getOperand(1));
|
unsigned Reg = getFPReg(MI->getOperand(1));
|
||||||
bool KillsSrc = false;
|
bool KillsSrc = false;
|
||||||
for (LiveVariables::killed_iterator KI = LV->killed_begin(MI),
|
for (LiveVariables::killed_iterator KI = LV->killed_begin(MI),
|
||||||
E = LV->killed_end(MI); KI != E; ++KI)
|
E = LV->killed_end(MI); KI != E; ++KI)
|
||||||
KillsSrc |= KI->second == X86::FP0+Reg;
|
KillsSrc |= KI->second == X86::FP0+Reg;
|
||||||
|
|
||||||
if (KillsSrc) {
|
if (KillsSrc) {
|
||||||
@@ -543,7 +544,7 @@ void FPS::handleTwoArgFP(MachineBasicBlock::iterator &I) {
|
|||||||
bool KillsOp0 = false, KillsOp1 = false;
|
bool KillsOp0 = false, KillsOp1 = false;
|
||||||
|
|
||||||
for (LiveVariables::killed_iterator KI = LV->killed_begin(MI),
|
for (LiveVariables::killed_iterator KI = LV->killed_begin(MI),
|
||||||
E = LV->killed_end(MI); KI != E; ++KI) {
|
E = LV->killed_end(MI); KI != E; ++KI) {
|
||||||
KillsOp0 |= (KI->second == X86::FP0+Op0);
|
KillsOp0 |= (KI->second == X86::FP0+Op0);
|
||||||
KillsOp1 |= (KI->second == X86::FP0+Op1);
|
KillsOp1 |= (KI->second == X86::FP0+Op1);
|
||||||
}
|
}
|
||||||
@@ -584,7 +585,7 @@ void FPS::handleTwoArgFP(MachineBasicBlock::iterator &I) {
|
|||||||
// Now we know that one of our operands is on the top of the stack, and at
|
// Now we know that one of our operands is on the top of the stack, and at
|
||||||
// least one of our operands is killed by this instruction.
|
// least one of our operands is killed by this instruction.
|
||||||
assert((TOS == Op0 || TOS == Op1) && (KillsOp0 || KillsOp1) &&
|
assert((TOS == Op0 || TOS == Op1) && (KillsOp0 || KillsOp1) &&
|
||||||
"Stack conditions not set up right!");
|
"Stack conditions not set up right!");
|
||||||
|
|
||||||
// We decide which form to use based on what is on the top of the stack, and
|
// We decide which form to use based on what is on the top of the stack, and
|
||||||
// which operand is killed by this instruction.
|
// which operand is killed by this instruction.
|
||||||
@@ -644,7 +645,7 @@ void FPS::handleCompareFP(MachineBasicBlock::iterator &I) {
|
|||||||
bool KillsOp0 = false, KillsOp1 = false;
|
bool KillsOp0 = false, KillsOp1 = false;
|
||||||
|
|
||||||
for (LiveVariables::killed_iterator KI = LV->killed_begin(MI),
|
for (LiveVariables::killed_iterator KI = LV->killed_begin(MI),
|
||||||
E = LV->killed_end(MI); KI != E; ++KI) {
|
E = LV->killed_end(MI); KI != E; ++KI) {
|
||||||
KillsOp0 |= (KI->second == X86::FP0+Op0);
|
KillsOp0 |= (KI->second == X86::FP0+Op0);
|
||||||
KillsOp1 |= (KI->second == X86::FP0+Op1);
|
KillsOp1 |= (KI->second == X86::FP0+Op1);
|
||||||
}
|
}
|
||||||
@@ -711,7 +712,7 @@ void FPS::handleSpecialFP(MachineBasicBlock::iterator &I) {
|
|||||||
unsigned DestReg = getFPReg(MI->getOperand(0));
|
unsigned DestReg = getFPReg(MI->getOperand(0));
|
||||||
bool KillsSrc = false;
|
bool KillsSrc = false;
|
||||||
for (LiveVariables::killed_iterator KI = LV->killed_begin(MI),
|
for (LiveVariables::killed_iterator KI = LV->killed_begin(MI),
|
||||||
E = LV->killed_end(MI); KI != E; ++KI)
|
E = LV->killed_end(MI); KI != E; ++KI)
|
||||||
KillsSrc |= KI->second == X86::FP0+SrcReg;
|
KillsSrc |= KI->second == X86::FP0+SrcReg;
|
||||||
|
|
||||||
if (KillsSrc) {
|
if (KillsSrc) {
|
||||||
|
|||||||
Reference in New Issue
Block a user