================
@@ -1352,8 +1335,44 @@ RValue CIRGenFunction::emitBuiltinExpr(const GlobalDecl
&gd, unsigned builtinID,
case Builtin::BI__builtin_eh_return:
case Builtin::BI__builtin_unwind_init:
case Builtin::BI__builtin_extend_pointer:
- case Builtin::BI__builtin_setjmp:
- case Builtin::BI__builtin_longjmp:
+ return errorBuiltinNYI(*this, e, builtinID);
+ case Builtin::BI__builtin_setjmp: {
+ Address buf = emitPointerWithAlignment(e->getArg(0));
+ mlir::Location loc = getLoc(e->getExprLoc());
+
+ cir::PointerType ppTy = builder.getPointerTo(builder.getVoidPtrTy());
+ mlir::Value castBuf = builder.createBitcast(buf.getPointer(), ppTy);
+
+ assert(!cir::MissingFeatures::emitCheckedInBoundsGEP());
+ if (getTarget().getTriple().isSystemZ()) {
+ llvm_unreachable("SYSTEMZ NYI");
+ }
+
+ mlir::Value frameaddress =
+ cir::FrameAddrOp::create(builder, loc, builder.getVoidPtrTy(),
+ mlir::ValueRange{builder.getUInt32(0, loc)})
+ .getResult();
+
+ builder.createStore(loc, frameaddress, castBuf);
+
+ mlir::Value stacksave =
----------------
bruteforceboy wrote:
camel case here?
https://github.com/llvm/llvm-project/pull/178989
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits