mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
Subtract instructions; minor cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12111 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -165,9 +165,8 @@ static TypeClass getClass (const Type *T) {
|
||||
void V8ISel::copyConstantToRegister(MachineBasicBlock *MBB,
|
||||
MachineBasicBlock::iterator IP,
|
||||
Constant *C, unsigned R) {
|
||||
if (C->getType()->isIntegral()) {
|
||||
if (ConstantInt *CI = dyn_cast<ConstantInt> (C)) {
|
||||
unsigned Class = getClass(C->getType());
|
||||
ConstantInt *CI = cast<ConstantInt>(C);
|
||||
switch (Class) {
|
||||
case cByte:
|
||||
BuildMI (*MBB, IP, V8::ORri, 2, R).addReg (V8::G0).addImm ((uint8_t) CI->getRawValue ());
|
||||
@@ -185,12 +184,12 @@ void V8ISel::copyConstantToRegister(MachineBasicBlock *MBB,
|
||||
return;
|
||||
}
|
||||
default:
|
||||
assert (0 && "Can't move this kind of constant");
|
||||
assert (0 && "Can't copy this kind of constant into register yet");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
assert (0 && "Can't copy constants into registers yet");
|
||||
assert (0 && "Can't copy this kind of constant into register yet");
|
||||
}
|
||||
|
||||
bool V8ISel::runOnFunction(Function &Fn) {
|
||||
@@ -246,6 +245,9 @@ void V8ISel::visitBinaryOperator (BinaryOperator &I) {
|
||||
case Instruction::Add:
|
||||
BuildMI (BB, V8::ADDrr, 2, ResultReg).addReg (Op0Reg).addReg (Op1Reg);
|
||||
break;
|
||||
case Instruction::Sub:
|
||||
BuildMI (BB, V8::SUBrr, 2, ResultReg).addReg (Op0Reg).addReg (Op1Reg);
|
||||
break;
|
||||
default:
|
||||
visitInstruction (I);
|
||||
return;
|
||||
|
Reference in New Issue
Block a user