f64a6eeaf0
Most importantly, this version of delocate works for ppc64le. It should also work for x86-64, but will need significant testing to make sure that it covers all the cases that the previous delocate.go covered. It's less stringtastic than the old code, however the parser isn't as nice as I would have liked. I thought that the reason we put up with AT&T syntax with Intel is so that assembly syntax could be somewhat consistent across platforms. At least for ppc64le, that does not appear to be the case. Change-Id: Ic7e3c6acc3803d19f2c3ff5620c5e39703d74212 Reviewed-on: https://boringssl-review.googlesource.com/16464 Reviewed-by: Adam Langley <agl@google.com> Commit-Queue: Adam Langley <agl@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
44 lines
1.1 KiB
ArmAsm
44 lines
1.1 KiB
ArmAsm
# Most instructions and lines should pass unaltered. This is made up of
|
|
# copy-and-pasted bits of compiler output and likely does not actually
|
|
# run.
|
|
.file "bcm.c"
|
|
.text
|
|
|
|
.type foo, @function
|
|
.globl foo
|
|
foo:
|
|
.file 1 "../foo/bar.c"
|
|
.loc 1 2 3
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
movq %rdi, -24(%rbp)
|
|
movq -24(%rbp), %rax
|
|
.loc 1 168 0 is_stmt 0 discriminator 1
|
|
cmpq -8(%rbp), %rax
|
|
jmpq *%rax
|
|
movdqa %xmm3,%xmm10
|
|
psrlq $1,%xmm3
|
|
pxor %xmm6,%xmm5
|
|
pxor %xmm4,%xmm3
|
|
pand %xmm7,%xmm5
|
|
pand %xmm7,%xmm3
|
|
pxor %xmm5,%xmm6
|
|
paddd 112(%r11),%xmm15
|
|
vmovdqa %xmm0,%xmm5
|
|
vpunpckhqdq %xmm0,%xmm0,%xmm3
|
|
vpxor %xmm0,%xmm3,%xmm3
|
|
vpclmulqdq $0x11,%xmm2,%xmm0,%xmm1
|
|
vpclmulqdq $0x00,%xmm2,%xmm0,%xmm0
|
|
vpclmulqdq $0x00,%xmm6,%xmm3,%xmm3
|
|
vpxor %xmm0,%xmm1,%xmm4
|
|
vpxor %xmm4,%xmm3,%xmm3
|
|
.byte 0xf3,0xc3
|
|
movq %rax, %rbx # Comments can be on the same line as an instruction.
|
|
.L3: # Or on the same line as a label.
|
|
.L4: .L5: movq %rbx, %rax # This is also legal.
|
|
.size foo, .-foo
|
|
.type foo, @function
|