[clang] [llvm] [SystemZ] Global Stackprotector and associated location section (PR #169317)

Ulrich Weigand via cfe-commits cfe-commits at lists.llvm.org
Wed Feb 4 08:24:21 PST 2026


================
@@ -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), []>;
----------------
uweigand wrote:

Also, `LOAD_TGSA` does not in fact load the stack-guard address, it loads the address of the TLS block itself (where the stack guard is at offset 40).   That should probably be reflected in the name.

https://github.com/llvm/llvm-project/pull/169317


More information about the cfe-commits mailing list