Index: crypto/poly1305/asm/poly1305-x86_64.pl
--- crypto/poly1305/asm/poly1305-x86_64.pl.orig
+++ crypto/poly1305/asm/poly1305-x86_64.pl
@@ -229,6 +229,7 @@ $code.=<<___;
 .align	32
 poly1305_blocks:
 .cfi_startproc
+	endbranch
 .Lblocks:
 	shr	\$4,$len
 	jz	.Lno_data		# too short
@@ -303,6 +304,7 @@ $code.=<<___;
 .align	32
 poly1305_emit:
 .cfi_startproc
+	endbranch
 .Lemit:
 	mov	0($ctx),%r8	# load hash value
 	mov	8($ctx),%r9
@@ -524,6 +526,7 @@ __poly1305_init_avx:
 .align	32
 poly1305_blocks_avx:
 .cfi_startproc
+	endbranch
 	mov	20($ctx),%r8d		# is_base2_26
 	cmp	\$128,$len
 	jae	.Lblocks_avx
@@ -1384,6 +1387,7 @@ $code.=<<___;
 .align	32
 poly1305_emit_avx:
 .cfi_startproc
+	endbranch
 	cmpl	\$0,20($ctx)	# is_base2_26?
 	je	.Lemit
 
@@ -1448,6 +1452,7 @@ $code.=<<___;
 .align	32
 poly1305_blocks_avx2:
 .cfi_startproc
+	endbranch
 	mov	20($ctx),%r8d		# is_base2_26
 	cmp	\$128,$len
 	jae	.Lblocks_avx2
@@ -2144,6 +2149,7 @@ $code.=<<___;
 .align	32
 poly1305_blocks_avx512:
 .cfi_startproc
+	endbranch
 .Lblocks_avx512:
 	mov		\$15,%eax
 	kmovw		%eax,%k2
@@ -3778,6 +3784,7 @@ poly1305_emit_base2_44:
 ___
 }	}	}
 $code.=<<___;
+.rodata
 .align	64
 .Lconst:
 .Lmask24:
@@ -3809,6 +3816,7 @@ $code.=<<___;
 .Lx_mask42:
 .quad	0x3ffffffffff,0x3ffffffffff,0x3ffffffffff,0x3ffffffffff
 .quad	0x3ffffffffff,0x3ffffffffff,0x3ffffffffff,0x3ffffffffff
+.previous
 ___
 }
 $code.=<<___;
