diff options
author | Andy Polyakov <appro@openssl.org> | 2005-11-06 22:01:27 +0000 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2005-11-06 22:01:27 +0000 |
commit | f1fbd4c7d12d4fcc5fe14b58db8889adf3a589cc (patch) | |
tree | f40bad5b53bd4a7a42f24978852d23e8eec41309 /crypto/perlasm | |
parent | eed22ac4ac0c44c6b69a6ed4e2f81970674c4b05 (diff) | |
download | openssl-new-f1fbd4c7d12d4fcc5fe14b58db8889adf3a589cc.tar.gz |
Address MASM-specific problems introduced with
http://cvs.openssl.org/chngview?cn=14547.
Diffstat (limited to 'crypto/perlasm')
-rw-r--r-- | crypto/perlasm/x86ms.pl | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/crypto/perlasm/x86ms.pl b/crypto/perlasm/x86ms.pl index d1cb7ee0ac..83d9205e47 100644 --- a/crypto/perlasm/x86ms.pl +++ b/crypto/perlasm/x86ms.pl @@ -28,6 +28,13 @@ sub main'asm_init_output { @out=(); } sub main'asm_get_output { return(@out); } sub main'get_labels { return(@labels); } sub main'external_label { push(@labels,@_); } +sub main'external_label +{ + push(@labels,@_); + foreach (@_) { + push(@out, "EXTRN\t_$_:DWORD\n"); + } +} sub main'LB { @@ -246,7 +253,9 @@ sub main'file local($tmp)=<<"EOF"; TITLE $file.asm .386 -.model FLAT +.model FLAT +_TEXT\$ SEGMENT PAGE 'CODE' + EOF push(@out,$tmp); } @@ -258,7 +267,6 @@ sub main'function_begin push(@labels,$func); local($tmp)=<<"EOF"; -_TEXT\$ SEGMENT PAGE 'CODE' PUBLIC _$func $extra _$func PROC NEAR @@ -276,7 +284,6 @@ sub main'function_begin_B local($func,$extra)=@_; local($tmp)=<<"EOF"; -_TEXT\$ SEGMENT PAGE 'CODE' PUBLIC _$func $extra _$func PROC NEAR @@ -296,7 +303,6 @@ sub main'function_end pop ebp ret _$func ENDP -_TEXT\$ ENDS EOF push(@out,$tmp); $stack=0; @@ -309,7 +315,6 @@ sub main'function_end_B local($tmp)=<<"EOF"; _$func ENDP -_TEXT\$ ENDS EOF push(@out,$tmp); $stack=0; @@ -339,6 +344,7 @@ sub main'file_end elsif (grep {/mm[0-7]\s*,/i} @out) { grep {s/\.[3-7]86/\.686\n\t\.MMX/} @out; } + push(@out,"_TEXT\$ ENDS\n"); push(@out,"END\n"); } |