forked from OSchip/llvm-project
Use ABIArgInfo::getDirect() for all types that have a pointer representation.
llvm-svn: 82845
This commit is contained in:
parent
fae1d71592
commit
0374742326
|
@ -836,7 +836,7 @@ ABIArgInfo X86_64ABIInfo::getCoerceResult(QualType Ty,
|
|||
if (CoerceTo == llvm::Type::getInt64Ty(CoerceTo->getContext())) {
|
||||
// Integer and pointer types will end up in a general purpose
|
||||
// register.
|
||||
if (Ty->isIntegralType() || Ty->isPointerType())
|
||||
if (Ty->isIntegralType() || Ty->hasPointerRepresentation())
|
||||
return (Ty->isPromotableIntegerType() ?
|
||||
ABIArgInfo::getExtend() : ABIArgInfo::getDirect());
|
||||
} else if (CoerceTo == llvm::Type::getDoubleTy(CoerceTo->getContext())) {
|
||||
|
|
|
@ -9,19 +9,19 @@
|
|||
|
||||
void f0(A *a) {
|
||||
// CHECK-X86-32: call void bitcast (i8* (i8*, %struct.objc_selector*, ...)* @objc_msgSend to void (i8*, %struct.objc_selector*)*)
|
||||
// CHECK-X86-64: call void bitcast (i8* (i8*, %struct.objc_selector*, ...)* @objc_msgSend to void (i64, %struct.objc_selector*)*)
|
||||
// CHECK-X86-64: call void bitcast (i8* (i8*, %struct.objc_selector*, ...)* @objc_msgSend to void (i8*, %struct.objc_selector*)*)
|
||||
[a im0];
|
||||
}
|
||||
|
||||
void f1(A *a) {
|
||||
// CHECK-X86-32: call void bitcast (i8* (i8*, %struct.objc_selector*, ...)* @objc_msgSend to void (i8*, %struct.objc_selector*, i32)*)
|
||||
// CHECK-X86-64: call void bitcast (i8* (i8*, %struct.objc_selector*, ...)* @objc_msgSend to void (i64, %struct.objc_selector*, i32)*)
|
||||
// CHECK-X86-64: call void bitcast (i8* (i8*, %struct.objc_selector*, ...)* @objc_msgSend to void (i8*, %struct.objc_selector*, i32)*)
|
||||
[a im1: 1];
|
||||
}
|
||||
|
||||
void f2(A *a) {
|
||||
// CHECK-X86-32: call void (i8*, %struct.objc_selector*, i32, i32, ...)* bitcast (i8* (i8*, %struct.objc_selector*, ...)* @objc_msgSend to void (i8*, %struct.objc_selector*, i32, i32, ...)*)
|
||||
// CHECK-X86-64: call void (i64, %struct.objc_selector*, i32, i32, ...)* bitcast (i8* (i8*, %struct.objc_selector*, ...)* @objc_msgSend to void (i64, %struct.objc_selector*, i32, i32, ...)*)
|
||||
// CHECK-X86-64: call void (i8*, %struct.objc_selector*, i32, i32, ...)* bitcast (i8* (i8*, %struct.objc_selector*, ...)* @objc_msgSend to void (i8*, %struct.objc_selector*, i32, i32, ...)*)
|
||||
[a im2: 1, 2];
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue