mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-16 11:24:39 +00:00
Fix some bugs in the alpha backend, some of which I introduced yesterday,
and some that were preexisting. All alpha regtests pass now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22829 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -284,6 +284,7 @@ AlphaTargetLowering::LowerArguments(Function &F, SelectionDAG &DAG)
|
|||||||
case MVT::f32:
|
case MVT::f32:
|
||||||
args_float[count] = AddLiveIn(MF,args_float[count], getRegClassFor(VT));
|
args_float[count] = AddLiveIn(MF,args_float[count], getRegClassFor(VT));
|
||||||
argt = DAG.getCopyFromReg(DAG.getRoot(), args_float[count], VT);
|
argt = DAG.getCopyFromReg(DAG.getRoot(), args_float[count], VT);
|
||||||
|
DAG.setRoot(argt.getValue(1));
|
||||||
break;
|
break;
|
||||||
case MVT::i1:
|
case MVT::i1:
|
||||||
case MVT::i8:
|
case MVT::i8:
|
||||||
@@ -292,12 +293,12 @@ AlphaTargetLowering::LowerArguments(Function &F, SelectionDAG &DAG)
|
|||||||
case MVT::i64:
|
case MVT::i64:
|
||||||
args_int[count] = AddLiveIn(MF, args_int[count],
|
args_int[count] = AddLiveIn(MF, args_int[count],
|
||||||
getRegClassFor(MVT::i64));
|
getRegClassFor(MVT::i64));
|
||||||
argt = DAG.getCopyFromReg(DAG.getRoot(), args_int[count], VT);
|
argt = DAG.getCopyFromReg(DAG.getRoot(), args_int[count], MVT::i64);
|
||||||
|
DAG.setRoot(argt.getValue(1));
|
||||||
if (VT != MVT::i64)
|
if (VT != MVT::i64)
|
||||||
argt = DAG.getNode(ISD::TRUNCATE, VT, argt);
|
argt = DAG.getNode(ISD::TRUNCATE, VT, argt);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
DAG.setRoot(argt.getValue(1));
|
|
||||||
} else { //more args
|
} else { //more args
|
||||||
// Create the frame index object for this incoming parameter...
|
// Create the frame index object for this incoming parameter...
|
||||||
int FI = MFI->CreateFixedObject(8, 8 * (count - 6));
|
int FI = MFI->CreateFixedObject(8, 8 * (count - 6));
|
||||||
|
Reference in New Issue
Block a user