mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 04:30:12 +00:00
Temporarily backing out r47337. It breaks a number of CBE tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47385 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f83b1f63dd
commit
5144ed1e35
@ -1198,12 +1198,12 @@ void CWriter::writeOperandRaw(Value *Operand) {
|
||||
}
|
||||
|
||||
void CWriter::writeOperand(Value *Operand) {
|
||||
if (isa<GlobalVariable>(Operand) || isDirectAlloca(Operand) || ByValParams.count(Operand))
|
||||
if (isa<GlobalVariable>(Operand) || isDirectAlloca(Operand))
|
||||
Out << "(&"; // Global variables are referenced as their addresses by llvm
|
||||
|
||||
writeOperandInternal(Operand);
|
||||
|
||||
if (isa<GlobalVariable>(Operand) || isDirectAlloca(Operand) || ByValParams.count(Operand))
|
||||
if (isa<GlobalVariable>(Operand) || isDirectAlloca(Operand))
|
||||
Out << ')';
|
||||
}
|
||||
|
||||
@ -2723,11 +2723,13 @@ void CWriter::visitCallInst(CallInst &I) {
|
||||
// Check if the argument is expected to be passed by value.
|
||||
bool isOutByVal = PAL && PAL->paramHasAttr(ArgNo+1, ParamAttr::ByVal);
|
||||
// Check if this argument itself is passed in by reference.
|
||||
//bool isInByVal = ByValParams.count(*AI);
|
||||
if (isOutByVal)
|
||||
bool isInByVal = ByValParams.count(*AI);
|
||||
if (isOutByVal && !isInByVal)
|
||||
Out << "*(";
|
||||
else if (!isOutByVal && isInByVal)
|
||||
Out << "&(";
|
||||
writeOperand(*AI);
|
||||
if (isOutByVal)
|
||||
if (isOutByVal ^ isInByVal)
|
||||
Out << ")";
|
||||
PrintedArg = true;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user