Solaris x86_64 /usr/ccs/bin/as support.
This commit is contained in:
parent
50ec3951dc
commit
e442c36252
@ -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));
|
|||||||
.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:
|
|||||||
.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:
|
|||||||
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
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user