diff options
author | djm <> | 2012-10-13 21:25:14 +0000 |
---|---|---|
committer | djm <> | 2012-10-13 21:25:14 +0000 |
commit | 93723b50b639d8dc717bc1bf463fd46e1b321239 (patch) | |
tree | 281e0a29ae8f87a8c47fbd4deaa1f3d48b8cc5c1 /src/lib/libcrypto/perlasm/x86nasm.pl | |
parent | 65e72ac55a6405783db7a12d7e35a7561d46005b (diff) | |
download | openbsd-93723b50b639d8dc717bc1bf463fd46e1b321239.tar.gz openbsd-93723b50b639d8dc717bc1bf463fd46e1b321239.tar.bz2 openbsd-93723b50b639d8dc717bc1bf463fd46e1b321239.zip |
resolve conflicts
Diffstat (limited to 'src/lib/libcrypto/perlasm/x86nasm.pl')
-rw-r--r-- | src/lib/libcrypto/perlasm/x86nasm.pl | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/lib/libcrypto/perlasm/x86nasm.pl b/src/lib/libcrypto/perlasm/x86nasm.pl index ce2bed9bb2..ca2511c9eb 100644 --- a/src/lib/libcrypto/perlasm/x86nasm.pl +++ b/src/lib/libcrypto/perlasm/x86nasm.pl | |||
@@ -19,6 +19,8 @@ sub ::generic | |||
19 | { $_[0] = "NEAR $_[0]"; } | 19 | { $_[0] = "NEAR $_[0]"; } |
20 | elsif ($opcode eq "lea" && $#_==1) # wipe storage qualifier from lea | 20 | elsif ($opcode eq "lea" && $#_==1) # wipe storage qualifier from lea |
21 | { $_[1] =~ s/^[^\[]*\[/\[/o; } | 21 | { $_[1] =~ s/^[^\[]*\[/\[/o; } |
22 | elsif ($opcode eq "clflush" && $#_==0) | ||
23 | { $_[0] =~ s/^[^\[]*\[/\[/o; } | ||
22 | } | 24 | } |
23 | &::emit($opcode,@_); | 25 | &::emit($opcode,@_); |
24 | 1; | 26 | 1; |
@@ -67,6 +69,7 @@ sub get_mem | |||
67 | } | 69 | } |
68 | sub ::BP { &get_mem("BYTE",@_); } | 70 | sub ::BP { &get_mem("BYTE",@_); } |
69 | sub ::DWP { &get_mem("DWORD",@_); } | 71 | sub ::DWP { &get_mem("DWORD",@_); } |
72 | sub ::WP { &get_mem("WORD",@_); } | ||
70 | sub ::QWP { &get_mem("",@_); } | 73 | sub ::QWP { &get_mem("",@_); } |
71 | sub ::BC { (($::mwerks)?"":"BYTE ")."@_"; } | 74 | sub ::BC { (($::mwerks)?"":"BYTE ")."@_"; } |
72 | sub ::DWC { (($::mwerks)?"":"DWORD ")."@_"; } | 75 | sub ::DWC { (($::mwerks)?"":"DWORD ")."@_"; } |
@@ -114,7 +117,7 @@ sub ::file_end | |||
114 | { if (grep {/\b${nmdecor}OPENSSL_ia32cap_P\b/i} @out) | 117 | { if (grep {/\b${nmdecor}OPENSSL_ia32cap_P\b/i} @out) |
115 | { my $comm=<<___; | 118 | { my $comm=<<___; |
116 | ${drdecor}segment .bss | 119 | ${drdecor}segment .bss |
117 | ${drdecor}common ${nmdecor}OPENSSL_ia32cap_P 4 | 120 | ${drdecor}common ${nmdecor}OPENSSL_ia32cap_P 8 |
118 | ___ | 121 | ___ |
119 | # comment out OPENSSL_ia32cap_P declarations | 122 | # comment out OPENSSL_ia32cap_P declarations |
120 | grep {s/(^extern\s+${nmdecor}OPENSSL_ia32cap_P)/\;$1/} @out; | 123 | grep {s/(^extern\s+${nmdecor}OPENSSL_ia32cap_P)/\;$1/} @out; |
@@ -135,7 +138,8 @@ sub ::public_label | |||
135 | 138 | ||
136 | sub ::data_byte | 139 | sub ::data_byte |
137 | { push(@out,(($::mwerks)?".byte\t":"db\t").join(',',@_)."\n"); } | 140 | { push(@out,(($::mwerks)?".byte\t":"db\t").join(',',@_)."\n"); } |
138 | 141 | sub ::data_short | |
142 | { push(@out,(($::mwerks)?".word\t":"dw\t").join(',',@_)."\n"); } | ||
139 | sub ::data_word | 143 | sub ::data_word |
140 | { push(@out,(($::mwerks)?".long\t":"dd\t").join(',',@_)."\n"); } | 144 | { push(@out,(($::mwerks)?".long\t":"dd\t").join(',',@_)."\n"); } |
141 | 145 | ||
@@ -163,4 +167,11 @@ sub ::dataseg | |||
163 | else { push(@out,"section\t.data align=4\n"); } | 167 | else { push(@out,"section\t.data align=4\n"); } |
164 | } | 168 | } |
165 | 169 | ||
170 | sub ::safeseh | ||
171 | { my $nm=shift; | ||
172 | push(@out,"%if __NASM_VERSION_ID__ >= 0x02030000\n"); | ||
173 | push(@out,"safeseh ".&::LABEL($nm,$nmdecor.$nm)."\n"); | ||
174 | push(@out,"%endif\n"); | ||
175 | } | ||
176 | |||
166 | 1; | 177 | 1; |