From: Wilco Dijkstra Date: Wed, 17 Sep 2025 16:36:33 +0000 (+0000) Subject: AArch64: Use dmb ishld+ishst for release fence X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a3d141316c413256adc59f49cb9094d3f76a017f;p=thirdparty%2Fgcc.git AArch64: Use dmb ishld+ishst for release fence Use dmb ishld and dmb ishst for a release fence since this is less restrictive than dmb ish. gcc: * config/aarch64/atomics.md (*dmb): Expand release fence into dmb ishld and dmb ishst. --- diff --git a/gcc/config/aarch64/atomics.md b/gcc/config/aarch64/atomics.md index ea4a9367fc8..d4b4afb5815 100644 --- a/gcc/config/aarch64/atomics.md +++ b/gcc/config/aarch64/atomics.md @@ -870,7 +870,13 @@ enum memmodel model = memmodel_from_int (INTVAL (operands[1])); if (is_mm_acquire (model)) return "dmb\\tishld"; + else if (is_mm_release (model)) + return "dmb\\tishld\;dmb\\tishst"; else return "dmb\\tish"; } + [(set (attr "length") + (if_then_else + (match_test "is_mm_release (memmodel_from_int (INTVAL (operands[1])))") + (const_int 8) (const_int 4)))] )