aboutsummaryrefslogtreecommitdiff
path: root/patches/asm/masm-align-64.patch
blob: ba41c710243f8e8e56021456287cce43d4a278cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
commit 3797e05de28ab07bb522898cbf022bdf67a71c99
Author: Brent Cook <busterb@gmail.com>
Date:   Sun Feb 4 22:53:59 2024 -0600

    align read-only sections on masm/windows to 64 bytes
    
    Avoid conflicts where alignment is specified later in the underlying
    assembly.

diff --git a/src/lib/libcrypto/perlasm/x86_64-xlate.pl b/src/lib/libcrypto/perlasm/x86_64-xlate.pl
index 5dbed2a8c..d8b607b5c 100755
--- a/src/lib/libcrypto/perlasm/x86_64-xlate.pl
+++ b/src/lib/libcrypto/perlasm/x86_64-xlate.pl
@@ -567,7 +567,15 @@ my %globals;
 					$v.="$line\tSEGMENT";
 					if ($line=~/\.([prx])data/) {
 					    $v.=" READONLY";
-					    $v.=" ALIGN(".($1 eq "p" ? 4 : 8).")" if ($masm>=$masmref);
+					    if ($masm>=$masmref) {
+						    if ($1 eq "r") {
+							    $v.=" ALIGN(64)";
+						    } elsif ($1 eq "p") {
+							    $v.=" ALIGN(4)";
+						    } else {
+							    $v.=" ALIGN(8)";
+						    }
+					    }
 					} elsif ($line=~/\.CRT\$/i) {
 					    $v.=" READONLY ";
 					    $v.=$masm>=$masmref ? "ALIGN(8)" : "DWORD";