pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/cross/ppc-morphos-gcc



Module Name:    pkgsrc
Committed By:   js
Date:           Wed Aug 12 23:20:23 UTC 2026

Modified Files:
        pkgsrc/cross/ppc-morphos-gcc: Makefile
Added Files:
        pkgsrc/cross/ppc-morphos-gcc/files: restore_r13-insn.diff
Removed Files:
        pkgsrc/cross/ppc-morphos-gcc/files: no-shrink-wrap-for-baserel.diff

Log Message:
cross/ppc-morphos-gcc: Import restore_r13-insn.diff


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 pkgsrc/cross/ppc-morphos-gcc/Makefile
cvs rdiff -u -r1.1 -r0 \
    pkgsrc/cross/ppc-morphos-gcc/files/no-shrink-wrap-for-baserel.diff
cvs rdiff -u -r0 -r1.1 \
    pkgsrc/cross/ppc-morphos-gcc/files/restore_r13-insn.diff

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/cross/ppc-morphos-gcc/Makefile
diff -u pkgsrc/cross/ppc-morphos-gcc/Makefile:1.14 pkgsrc/cross/ppc-morphos-gcc/Makefile:1.15
--- pkgsrc/cross/ppc-morphos-gcc/Makefile:1.14  Wed Aug  5 22:50:43 2026
+++ pkgsrc/cross/ppc-morphos-gcc/Makefile       Wed Aug 12 23:20:23 2026
@@ -1,7 +1,7 @@
-# $NetBSD: Makefile,v 1.14 2026/08/05 22:50:43 js Exp $
+# $NetBSD: Makefile,v 1.15 2026/08/12 23:20:23 js Exp $
 
 DISTNAME=      gcc-15.2.0
-PKGREVISION=   10
+PKGREVISION=   11
 PKGNAME=       ppc-morphos-${DISTNAME}
 CATEGORIES=    cross
 MASTER_SITES=  ${MASTER_SITE_GNU:=gcc/gcc-${PKGVERSION_NOREV}/}
@@ -55,7 +55,7 @@ pre-patch:
        ${RUN} cd ${WRKSRC} && ${PATCH} -p0 <${FILESDIR}/fix-saveds.diff
        ${RUN} cd ${WRKSRC} && ${PATCH} -p0 <${FILESDIR}/objc-saveds.diff
        ${RUN} cd ${WRKSRC} && ${PATCH} -p1 <${FILESDIR}/libcpp-disable-canonicalize.diff
-       ${RUN} cd ${WRKSRC} && ${PATCH} -p0 <${FILESDIR}/no-shrink-wrap-for-baserel.diff
+       ${RUN} cd ${WRKSRC} && ${PATCH} -p0 <${FILESDIR}/restore_r13-insn.diff
        ${RUN} cd ${WRKSRC} && ${PATCH} -p0 <${FILESDIR}/const-baserel.diff
        ${RUN} cd ${WRKSRC} && ${PATCH} -p0 <${FILESDIR}/save-r13-baserel.diff
        ${RUN} find ${WRKSRC} -name configure -print0 | xargs -0 -r perl -i.orig -p -e 
"s|toolexecdir='\\\$$\(libdir\)/gcc/\\\$$\(target_alias\)'|toolexecdir='\\\$$(libdir)/gcc-lib/\\\$$(target_alias)'|g;"

Added files:

Index: pkgsrc/cross/ppc-morphos-gcc/files/restore_r13-insn.diff
diff -u /dev/null pkgsrc/cross/ppc-morphos-gcc/files/restore_r13-insn.diff:1.1
--- /dev/null   Wed Aug 12 23:20:23 2026
+++ pkgsrc/cross/ppc-morphos-gcc/files/restore_r13-insn.diff    Wed Aug 12 23:20:23 2026
@@ -0,0 +1,57 @@
+Make restore_r13 an insn with properly declared registers and clobbers.
+
+--- gcc/config/rs6000/rs6000.md.orig   2026-08-12 21:46:35.039143013 +0000
++++ gcc/config/rs6000/rs6000.md
+@@ -201,6 +201,7 @@
+    UNSPECV_SPEC_BARRIER         ; Speculation barrier
+    UNSPECV_PLT16_LO
+    UNSPECV_PLT_PCREL
++   UNSPECV_RESTORE_R13
+   ])
+ 
+ ; The three different kinds of epilogue.
+@@ -11341,6 +11342,16 @@
+   [(set (match_dup 0) (high:P (match_dup 1)))
+    (set (match_dup 0) (lo_sum:P (match_dup 0) (match_dup 1)))])
+ 
++
++;; baserel - inspired by load_toc_v4_pic_si
++(define_insn "restore_r13"
++  [(set (reg:SI 13)
++      (unspec_volatile:SI [(reg:SI 12)] UNSPECV_RESTORE_R13))
++   (clobber (reg:SI LR_REGNO))]
++  "TARGET_BASEREL"
++  "bl __restore_r13"
++  [(set_attr "type" "branch")])
++
+ ;;
+ ;;
+ ;;
+--- gcc/config/rs6000/rs6000.cc.orig   2026-08-12 22:19:12.210389558 +0000
++++ gcc/config/rs6000/rs6000.cc
+@@ -10224,6 +10224,9 @@ rs6000_conditional_register_usage (void)
+   if (fixed_regs[2] && (DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_ELFv2))
+     call_used_regs[2] = 0;
+ 
++  if (TARGET_BASEREL)
++    fixed_regs[13] = call_used_regs[13] = 1;
++
+   if (DEFAULT_ABI == ABI_V4 && flag_pic == 2)
+     fixed_regs[RS6000_PIC_OFFSET_TABLE_REGNUM] = 1;
+ 
+--- gcc/config/rs6000/rs6000-logue.cc.orig     2026-08-12 22:00:17.645715902 +0000
++++ gcc/config/rs6000/rs6000-logue.cc
+@@ -3955,12 +3955,7 @@ rs6000_emit_prologue (void)
+   if (info->baserel_save_p && TARGET_BASEREL)
+     {
+       /* Call __restore_r13 */
+-      rtx restore_r13_ref = gen_rtx_SYMBOL_REF (Pmode, "__restore_r13");
+-      SYMBOL_REF_FLAGS (restore_r13_ref) |= (SYMBOL_FLAG_LOCAL | SYMBOL_FLAG_FUNCTION);
+-
+-      emit_call_insn (gen_call (gen_rtx_MEM (SImode, restore_r13_ref), const0_rtx, const0_rtx));
+-
+-      emit_insn (gen_blockage ());
++      emit_insn (gen_restore_r13 ());
+     }
+ #endif
+ 



Home | Main Index | Thread Index | Old Index