summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGBuiltin.cpp
diff options
context:
space:
mode:
authorRanjeet Singh <Ranjeet.Singh@arm.com>2016-06-15 14:21:28 +0000
committerRanjeet Singh <Ranjeet.Singh@arm.com>2016-06-15 14:21:28 +0000
commitd48760da643cd8b4e61cf93623a6b32d3e8e4c0d (patch)
tree43cd6bc0b96b37475d07b641546b5a5fa9f5dc49 /clang/lib/CodeGen/CGBuiltin.cpp
parent7320b99b2c588337a377b3426646aa4c496b9a0f (diff)
downloadbcm5719-llvm-d48760da643cd8b4e61cf93623a6b32d3e8e4c0d.tar.gz
bcm5719-llvm-d48760da643cd8b4e61cf93623a6b32d3e8e4c0d.zip
Reverting r272777 because one of the tests
added in the llvm patch is causing an assertion to fail. llvm-svn: 272790
Diffstat (limited to 'clang/lib/CodeGen/CGBuiltin.cpp')
-rw-r--r--clang/lib/CodeGen/CGBuiltin.cpp68
1 files changed, 0 insertions, 68 deletions
diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp
index 462f1a7d6c5..0ec2b140ffa 100644
--- a/clang/lib/CodeGen/CGBuiltin.cpp
+++ b/clang/lib/CodeGen/CGBuiltin.cpp
@@ -3793,74 +3793,6 @@ Value *CodeGenFunction::EmitARMBuiltinExpr(unsigned BuiltinID,
return EmitNounwindRuntimeCall(CGM.CreateRuntimeFunction(FTy, Name), Ops);
}
- if (BuiltinID == ARM::BI__builtin_arm_mcrr ||
- BuiltinID == ARM::BI__builtin_arm_mcrr2) {
- Function *F;
-
- switch (BuiltinID) {
- default: llvm_unreachable("unexpected builtin");
- case ARM::BI__builtin_arm_mcrr:
- F = CGM.getIntrinsic(Intrinsic::arm_mcrr);
- break;
- case ARM::BI__builtin_arm_mcrr2:
- F = CGM.getIntrinsic(Intrinsic::arm_mcrr2);
- break;
- }
-
- // MCRR{2} instruction has 5 operands but
- // the intrinsic has 4 because Rt and Rt2
- // are represented as a single unsigned 64
- // bit integer in the intrinsic definition
- // but internally it's represented as 2 32
- // bit integers.
-
- Value *Coproc = EmitScalarExpr(E->getArg(0));
- Value *Opc1 = EmitScalarExpr(E->getArg(1));
- Value *RtAndRt2 = EmitScalarExpr(E->getArg(2));
- Value *CRm = EmitScalarExpr(E->getArg(3));
-
- Value *C1 = llvm::ConstantInt::get(Int64Ty, 32);
- Value *Rt = Builder.CreateTruncOrBitCast(RtAndRt2, Int32Ty);
- Value *Rt2 = Builder.CreateLShr(RtAndRt2, C1);
- Rt2 = Builder.CreateTruncOrBitCast(Rt2, Int32Ty);
-
- return Builder.CreateCall(F, {Coproc, Opc1, Rt, Rt2, CRm});
- }
-
- if (BuiltinID == ARM::BI__builtin_arm_mrrc ||
- BuiltinID == ARM::BI__builtin_arm_mrrc2) {
- Function *F;
-
- switch (BuiltinID) {
- default: llvm_unreachable("unexpected builtin");
- case ARM::BI__builtin_arm_mrrc:
- F = CGM.getIntrinsic(Intrinsic::arm_mrrc);
- break;
- case ARM::BI__builtin_arm_mrrc2:
- F = CGM.getIntrinsic(Intrinsic::arm_mrrc2);
- break;
- }
-
- Value *Coproc = EmitScalarExpr(E->getArg(0));
- Value *Opc1 = EmitScalarExpr(E->getArg(1));
- Value *CRm = EmitScalarExpr(E->getArg(2));
- Value *RtAndRt2 = Builder.CreateCall(F, {Coproc, Opc1, CRm});
-
- // Returns an unsigned 64 bit integer, represented
- // as two 32 bit integers.
-
- Value *Rt = Builder.CreateExtractValue(RtAndRt2, 1);
- Value *Rt1 = Builder.CreateExtractValue(RtAndRt2, 0);
- Rt = Builder.CreateZExt(Rt, Int64Ty);
- Rt1 = Builder.CreateZExt(Rt1, Int64Ty);
-
- Value *ShiftCast = llvm::ConstantInt::get(Int64Ty, 32);
- RtAndRt2 = Builder.CreateShl(Rt, ShiftCast, "shl", true);
- RtAndRt2 = Builder.CreateOr(RtAndRt2, Rt1);
-
- return Builder.CreateBitCast(RtAndRt2, ConvertType(E->getType()));
- }
-
if (BuiltinID == ARM::BI__builtin_arm_ldrexd ||
((BuiltinID == ARM::BI__builtin_arm_ldrex ||
BuiltinID == ARM::BI__builtin_arm_ldaex) &&
OpenPOWER on IntegriCloud