Author: jasone
Date: Tue Jun 20 07:25:38 2017
New Revision: 320136
URL: https://svnweb.freebsd.org/changeset/base/320136

Log:
  Decrease relative branch brittleness.
  
  Replace conditional branches with trampolines to unconditional branches when
  jumping to labels within other compilation units.  This increases the offset
  range from +-1 MiB to +-128 MiB.

Modified:
  head/lib/libc/aarch64/gen/sigsetjmp.S

Modified: head/lib/libc/aarch64/gen/sigsetjmp.S
==============================================================================
--- head/lib/libc/aarch64/gen/sigsetjmp.S       Tue Jun 20 06:20:09 2017        
(r320135)
+++ head/lib/libc/aarch64/gen/sigsetjmp.S       Tue Jun 20 07:25:38 2017        
(r320136)
@@ -34,8 +34,10 @@ __FBSDID("$FreeBSD$");
 
 ENTRY(sigsetjmp)
        cmp     x1, #0
-       b.eq    _C_LABEL(_setjmp)
+       b.eq    1f
        b       _C_LABEL(setjmp)
+1:
+       b       _C_LABEL(_setjmp)
 END(sigsetjmp)
 
 ENTRY(siglongjmp)
@@ -45,8 +47,10 @@ ENTRY(siglongjmp)
 
        /* Check the magic */
        cmp     x2, x3
-       b.eq    _C_LABEL(_longjmp)
+       b.eq    1f
        b       _C_LABEL(longjmp)
+1:
+       b       _C_LABEL(_longjmp)
        .align  3
 .Lmagic:
        .quad   _JB_MAGIC__SETJMP
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to