================
@@ -521,6 +521,38 @@ let SimpleBDXStore = 1, mayStore = 1 in {
[(store GR128:$src, bdxaddr20only128:$dst)]>;
}
}
+
+let hasNoSchedulingInfo = 1, hasSideEffects = 1, mayLoad = 1 in {
+ // load the stack guard's address
+ def LOAD_TSGA : Pseudo<(outs ADDR64:$grdaddr),
+ (ins), []>;
+ def LOAD_GSGA : Pseudo<(outs ADDR64:$grdaddr),
+ (ins), []>;
+
+ let mayStore = 1 in {
+ // load the stack guard's address
+ // (via LOAD_[TLS|GLOBAL]STACK_GUARD_ADDRESS),
+ // and move the stack guard to the stack.
+ let usesCustomInserter = 1 in
+ def MOVE_SG_DAG : Pseudo<(outs),
+ (ins bdaddr12only:$grdloc), []>;
+ let Constraints = "@earlyclobber $grdaddr" in
+ def MOVE_SG : Pseudo<(outs ADDR64:$grdaddr),
+ (ins bdaddr12only:$grdloc), []>;
+ }
+ let Defs = [CC] in {
+ // load the stack guard's address
+ // (via LOAD_[TLS|GLOBAL]_STACK_GUARD_ADDRESS),
+ // and compare the stack guard against the one on the stack.
+ let usesCustomInserter = 1 in
+ def COMPARE_SG_BRIDGE : Pseudo<(outs),
----------------
dominik-steenken wrote:
fixed
https://github.com/llvm/llvm-project/pull/169317
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits