提交 e442c362 编写于 作者: A Andy Polyakov

Solaris x86_64 /usr/ccs/bin/as support.

上级 50ec3951
...@@ -168,6 +168,10 @@ my $current_function; ...@@ -168,6 +168,10 @@ my $current_function;
# on pros side, this results in more compact code:-) # on pros side, this results in more compact code:-)
$self->{index} =~ s/^[er](.?[0-9xp])[d]?$/r\1/; $self->{index} =~ s/^[er](.?[0-9xp])[d]?$/r\1/;
$self->{base} =~ s/^[er](.?[0-9xp])[d]?$/r\1/; $self->{base} =~ s/^[er](.?[0-9xp])[d]?$/r\1/;
# Solaris /usr/ccs/bin/as can't handle multiplications
# in $self->{label}
$self->{label} =~ s/(?<![0-9a-f])(0[x0-9a-f]+)/oct($1)/eg;
$self->{label} =~ s/([0-9]+\s*[\*\/\%]\s*[0-9]+)/eval($1)/eg;
if (defined($self->{index})) { if (defined($self->{index})) {
sprintf "%s(%%%s,%%%s,%d)", sprintf "%s(%%%s,%%%s,%d)",
......
...@@ -70,8 +70,8 @@ print<<___ if(!defined($win64a)); ...@@ -70,8 +70,8 @@ print<<___ if(!defined($win64a));
.align 16 .align 16
OPENSSL_rdtsc: OPENSSL_rdtsc:
rdtsc rdtsc
shl \$32,%rdx shlq \$32,%rdx
or %rdx,%rax orq %rdx,%rax
ret ret
.size OPENSSL_rdtsc,.-OPENSSL_rdtsc .size OPENSSL_rdtsc,.-OPENSSL_rdtsc
...@@ -80,11 +80,11 @@ OPENSSL_rdtsc: ...@@ -80,11 +80,11 @@ OPENSSL_rdtsc:
.align 16 .align 16
OPENSSL_atomic_add: OPENSSL_atomic_add:
movl (%rdi),%eax movl (%rdi),%eax
.Lspin: lea (%rsi,%rax),%r8 .Lspin: leaq (%rsi,%rax),%r8
lock; cmpxchg %r8d,(%rdi) lock; cmpxchgl %r8d,(%rdi)
jne .Lspin jne .Lspin
mov %r8d,%eax movl %r8d,%eax
cdqe .byte 0x48,0x98
ret ret
.size OPENSSL_atomic_add,.-OPENSSL_atomic_add .size OPENSSL_atomic_add,.-OPENSSL_atomic_add
...@@ -108,28 +108,28 @@ OPENSSL_wipe_cpu: ...@@ -108,28 +108,28 @@ OPENSSL_wipe_cpu:
pxor %xmm13,%xmm13 pxor %xmm13,%xmm13
pxor %xmm14,%xmm14 pxor %xmm14,%xmm14
pxor %xmm15,%xmm15 pxor %xmm15,%xmm15
xor %rcx,%rcx xorq %rcx,%rcx
xor %rdx,%rdx xorq %rdx,%rdx
xor %rsi,%rsi xorq %rsi,%rsi
xor %rdi,%rdi xorq %rdi,%rdi
xor %r8,%r8 xorq %r8,%r8
xor %r9,%r9 xorq %r9,%r9
xor %r10,%r10 xorq %r10,%r10
xor %r11,%r11 xorq %r11,%r11
lea 8(%rsp),%rax leaq 8(%rsp),%rax
ret ret
.size OPENSSL_wipe_cpu,.-OPENSSL_wipe_cpu .size OPENSSL_wipe_cpu,.-OPENSSL_wipe_cpu
.globl OPENSSL_ia32_cpuid .globl OPENSSL_ia32_cpuid
.align 16 .align 16
OPENSSL_ia32_cpuid: OPENSSL_ia32_cpuid:
mov %rbx,%r8 movq %rbx,%r8
mov \$1,%eax movl \$1,%eax
cpuid cpuid
shl \$32,%rcx shlq \$32,%rcx
mov %edx,%eax movl %edx,%eax
mov %r8,%rbx movq %r8,%rbx
or %rcx,%rax orq %rcx,%rax
ret ret
.size OPENSSL_ia32_cpuid,.-OPENSSL_ia32_cpuid .size OPENSSL_ia32_cpuid,.-OPENSSL_ia32_cpuid
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册