rename labels to avoid collisions (although they should already be local) (rust bug?)

This commit is contained in:
Jessie
2024-01-26 21:08:45 -05:00
parent 7c2ba320fa
commit b0a2373215
4 changed files with 102 additions and 102 deletions

View File

@@ -3,18 +3,18 @@ core::arch::global_asm!{r#"
memcmp: memcmp:
xor eax, eax xor eax, eax
xor r9d, r9d xor r9d, r9d
.LBB0_1: .L_memcmp_BB0_1:
cmp r8, r9 cmp r8, r9
je .LBB0_4 je .L_memcmp_BB0_4
movzx r10d, byte ptr [rcx + r9] movzx r10d, byte ptr [rcx + r9]
movzx r11d, byte ptr [rdx + r9] movzx r11d, byte ptr [rdx + r9]
inc r9 inc r9
cmp r10b, r11b cmp r10b, r11b
je .LBB0_1 je .L_memcmp_BB0_1
xor eax, eax xor eax, eax
cmp r10b, r11b cmp r10b, r11b
sbb eax, eax sbb eax, eax
or eax, 1 or eax, 1
.LBB0_4: .L_memcmp_BB0_4:
ret ret
"#} "#}

View File

@@ -6,50 +6,50 @@ core::arch::global_asm!{r#"
memcpy: memcpy:
mov rax, rcx mov rax, rcx
cmp r8, 4 cmp r8, 4
ja .LBB0_4 ja .L_memcpy_BB0_4
test r8, r8 test r8, r8
je .LBB0_13 je .L_memcpy_BB0_13
movzx ecx, byte ptr [rdx] movzx ecx, byte ptr [rdx]
mov byte ptr [rax], cl mov byte ptr [rax], cl
movzx ecx, byte ptr [rdx + r8 - 1] movzx ecx, byte ptr [rdx + r8 - 1]
mov byte ptr [rax + r8 - 1], cl mov byte ptr [rax + r8 - 1], cl
cmp r8, 3 cmp r8, 3
jb .LBB0_13 jb .L_memcpy_BB0_13
movzx ecx, byte ptr [rdx + 1] movzx ecx, byte ptr [rdx + 1]
mov byte ptr [rax + 1], cl mov byte ptr [rax + 1], cl
movzx ecx, byte ptr [rdx + 2] movzx ecx, byte ptr [rdx + 2]
mov byte ptr [rax + 2], cl mov byte ptr [rax + 2], cl
ret ret
.LBB0_4: .L_memcpy_BB0_4:
cmp r8, 16 cmp r8, 16
ja .LBB0_8 ja .L_memcpy_BB0_8
cmp r8, 8 cmp r8, 8
jb .LBB0_7 jb .L_memcpy_BB0_7
mov rcx, qword ptr [rdx] mov rcx, qword ptr [rdx]
mov qword ptr [rax], rcx mov qword ptr [rax], rcx
mov rcx, qword ptr [rdx + r8 - 8] mov rcx, qword ptr [rdx + r8 - 8]
mov qword ptr [rax + r8 - 8], rcx mov qword ptr [rax + r8 - 8], rcx
ret ret
.LBB0_8: .L_memcpy_BB0_8:
cmp r8, 32 cmp r8, 32
ja .LBB0_10 ja .L_memcpy_BB0_10
movups xmm0, xmmword ptr [rdx] movups xmm0, xmmword ptr [rdx]
movups xmmword ptr [rax], xmm0 movups xmmword ptr [rax], xmm0
movups xmm0, xmmword ptr [rdx + r8 - 16] movups xmm0, xmmword ptr [rdx + r8 - 16]
movups xmmword ptr [rax + r8 - 16], xmm0 movups xmmword ptr [rax + r8 - 16], xmm0
ret ret
.LBB0_7: .L_memcpy_BB0_7:
mov ecx, dword ptr [rdx] mov ecx, dword ptr [rdx]
mov dword ptr [rax], ecx mov dword ptr [rax], ecx
mov ecx, dword ptr [rdx + r8 - 4] mov ecx, dword ptr [rdx + r8 - 4]
mov dword ptr [rax + r8 - 4], ecx mov dword ptr [rax + r8 - 4], ecx
ret ret
.LBB0_10: .L_memcpy_BB0_10:
lea rcx, [rax + r8] lea rcx, [rax + r8]
add rcx, -32 add rcx, -32
mov r9, rdx mov r9, rdx
mov r10, rax mov r10, rax
.LBB0_11: .L_memcpy_BB0_11:
movups xmm0, xmmword ptr [r9] movups xmm0, xmmword ptr [r9]
movups xmm1, xmmword ptr [r9 + 16] movups xmm1, xmmword ptr [r9 + 16]
movups xmmword ptr [r10 + 16], xmm1 movups xmmword ptr [r10 + 16], xmm1
@@ -57,11 +57,11 @@ memcpy:
add r10, 32 add r10, 32
add r9, 32 add r9, 32
cmp r10, rcx cmp r10, rcx
jb .LBB0_11 jb .L_memcpy_BB0_11
movups xmm0, xmmword ptr [rdx + r8 - 32] movups xmm0, xmmword ptr [rdx + r8 - 32]
movups xmm1, xmmword ptr [rdx + r8 - 16] movups xmm1, xmmword ptr [rdx + r8 - 16]
movups xmmword ptr [rcx + 16], xmm1 movups xmmword ptr [rcx + 16], xmm1
movups xmmword ptr [rcx], xmm0 movups xmmword ptr [rcx], xmm0
.LBB0_13: .L_memcpy_BB0_13:
ret ret
"#} "#}

View File

@@ -6,45 +6,45 @@ memmove:
sub rsp, 40 sub rsp, 40
mov rsi, rcx mov rsi, rcx
cmp rdx, rcx cmp rdx, rcx
je .LBB0_36 je .L_memmove_BB0_36
test r8, r8 test r8, r8
je .LBB0_36 je .L_memmove_BB0_36
mov rcx, rsi mov rcx, rsi
sub rcx, rdx sub rcx, rdx
jbe .LBB0_18 jbe .L_memmove_BB0_18
movsxd rax, r8d movsxd rax, r8d
cmp rcx, rax cmp rcx, rax
jge .LBB0_18 jge .L_memmove_BB0_18
mov eax, r8d mov eax, r8d
dec eax dec eax
js .LBB0_36 js .L_memmove_BB0_36
cmp r8d, 4 cmp r8d, 4
jb .LBB0_16 jb .L_memmove_BB0_16
mov ecx, eax mov ecx, eax
lea r9, [rdx + rcx] lea r9, [rdx + rcx]
add rcx, rsi add rcx, rsi
sub r9, rcx sub r9, rcx
cmp r9, 16 cmp r9, 16
jb .LBB0_16 jb .L_memmove_BB0_16
xor ecx, ecx xor ecx, ecx
cmp r8d, 16 cmp r8d, 16
jb .LBB0_13 jb .L_memmove_BB0_13
mov ecx, r8d mov ecx, r8d
and ecx, -16 and ecx, -16
mov r9d, eax mov r9d, eax
mov r10d, ecx mov r10d, ecx
.LBB0_9: .L_memmove_BB0_9:
mov r11d, r9d mov r11d, r9d
movups xmm0, xmmword ptr [rdx + r11 - 15] movups xmm0, xmmword ptr [rdx + r11 - 15]
movups xmmword ptr [rsi + r11 - 15], xmm0 movups xmmword ptr [rsi + r11 - 15], xmm0
add r9d, -16 add r9d, -16
add r10d, -16 add r10d, -16
jne .LBB0_9 jne .L_memmove_BB0_9
cmp ecx, r8d cmp ecx, r8d
je .LBB0_36 je .L_memmove_BB0_36
test r8b, 12 test r8b, 12
je .LBB0_12 je .L_memmove_BB0_12
.LBB0_13: .L_memmove_BB0_13:
mov r9d, r8d mov r9d, r8d
and r9d, -4 and r9d, -4
sub eax, r9d sub eax, r9d
@@ -52,86 +52,86 @@ memmove:
sub r10d, r9d sub r10d, r9d
not ecx not ecx
add ecx, r8d add ecx, r8d
.LBB0_14: .L_memmove_BB0_14:
mov r11d, ecx mov r11d, ecx
mov edi, dword ptr [rdx + r11 - 3] mov edi, dword ptr [rdx + r11 - 3]
mov dword ptr [rsi + r11 - 3], edi mov dword ptr [rsi + r11 - 3], edi
add ecx, -4 add ecx, -4
add r10d, 4 add r10d, 4
jne .LBB0_14 jne .L_memmove_BB0_14
cmp r9d, r8d cmp r9d, r8d
je .LBB0_36 je .L_memmove_BB0_36
jmp .LBB0_16 jmp .L_memmove_BB0_16
.LBB0_18: .L_memmove_BB0_18:
mov rax, rdx mov rax, rdx
sub rax, rsi sub rax, rsi
jbe .LBB0_35 jbe .L_memmove_BB0_35
movsxd r9, r8d movsxd r9, r8d
cmp rax, r9 cmp rax, r9
jge .LBB0_35 jge .L_memmove_BB0_35
xor eax, eax xor eax, eax
cmp r8, 8 cmp r8, 8
jb .LBB0_31 jb .L_memmove_BB0_31
cmp rcx, 32 cmp rcx, 32
jb .LBB0_31 jb .L_memmove_BB0_31
cmp r8, 32 cmp r8, 32
jae .LBB0_24 jae .L_memmove_BB0_24
xor eax, eax xor eax, eax
jmp .LBB0_28 jmp .L_memmove_BB0_28
.LBB0_35: .L_memmove_BB0_35:
mov rcx, rsi mov rcx, rsi
call "memcpy" call "memcpy"
.LBB0_36: .L_memmove_BB0_36:
mov rax, rsi mov rax, rsi
add rsp, 40 add rsp, 40
pop rdi pop rdi
pop rsi pop rsi
ret ret
.LBB0_24: .L_memmove_BB0_24:
mov rax, r8 mov rax, r8
and rax, -32 and rax, -32
xor ecx, ecx xor ecx, ecx
.LBB0_25: .L_memmove_BB0_25:
movups xmm0, xmmword ptr [rdx + rcx] movups xmm0, xmmword ptr [rdx + rcx]
movups xmm1, xmmword ptr [rdx + rcx + 16] movups xmm1, xmmword ptr [rdx + rcx + 16]
movups xmmword ptr [rsi + rcx], xmm0 movups xmmword ptr [rsi + rcx], xmm0
movups xmmword ptr [rsi + rcx + 16], xmm1 movups xmmword ptr [rsi + rcx + 16], xmm1
add rcx, 32 add rcx, 32
cmp rax, rcx cmp rax, rcx
jne .LBB0_25 jne .L_memmove_BB0_25
cmp rax, r8 cmp rax, r8
je .LBB0_36 je .L_memmove_BB0_36
test r8b, 24 test r8b, 24
je .LBB0_31 je .L_memmove_BB0_31
.LBB0_28: .L_memmove_BB0_28:
mov rcx, rax mov rcx, rax
mov rax, r8 mov rax, r8
and rax, -8 and rax, -8
.LBB0_29: .L_memmove_BB0_29:
mov r9, qword ptr [rdx + rcx] mov r9, qword ptr [rdx + rcx]
mov qword ptr [rsi + rcx], r9 mov qword ptr [rsi + rcx], r9
add rcx, 8 add rcx, 8
cmp rax, rcx cmp rax, rcx
jne .LBB0_29 jne .L_memmove_BB0_29
cmp rax, r8 cmp rax, r8
je .LBB0_36 je .L_memmove_BB0_36
.LBB0_31: .L_memmove_BB0_31:
mov rcx, rax mov rcx, rax
not rcx not rcx
add rcx, r8 add rcx, r8
mov r9, r8 mov r9, r8
and r9, 3 and r9, 3
je .LBB0_33 je .L_memmove_BB0_33
.LBB0_32: .L_memmove_BB0_32:
movzx r10d, byte ptr [rdx + rax] movzx r10d, byte ptr [rdx + rax]
mov byte ptr [rsi + rax], r10b mov byte ptr [rsi + rax], r10b
inc rax inc rax
dec r9 dec r9
jne .LBB0_32 jne .L_memmove_BB0_32
.LBB0_33: .L_memmove_BB0_33:
cmp rcx, 3 cmp rcx, 3
jb .LBB0_36 jb .L_memmove_BB0_36
.LBB0_34: .L_memmove_BB0_34:
movzx ecx, byte ptr [rdx + rax] movzx ecx, byte ptr [rdx + rax]
mov byte ptr [rsi + rax], cl mov byte ptr [rsi + rax], cl
movzx ecx, byte ptr [rdx + rax + 1] movzx ecx, byte ptr [rdx + rax + 1]
@@ -142,18 +142,18 @@ memmove:
mov byte ptr [rsi + rax + 3], cl mov byte ptr [rsi + rax + 3], cl
add rax, 4 add rax, 4
cmp r8, rax cmp r8, rax
jne .LBB0_34 jne .L_memmove_BB0_34
jmp .LBB0_36 jmp .L_memmove_BB0_36
.LBB0_12: .L_memmove_BB0_12:
sub eax, ecx sub eax, ecx
.LBB0_16: .L_memmove_BB0_16:
mov eax, eax mov eax, eax
.LBB0_17: .L_memmove_BB0_17:
movzx ecx, byte ptr [rdx + rax] movzx ecx, byte ptr [rdx + rax]
mov byte ptr [rsi + rax], cl mov byte ptr [rsi + rax], cl
dec rax dec rax
lea ecx, [rax + 1] lea ecx, [rax + 1]
test ecx, ecx test ecx, ecx
jg .LBB0_17 jg .L_memmove_BB0_17
jmp .LBB0_36 jmp .L_memmove_BB0_36
"#} "#}

View File

@@ -6,26 +6,26 @@ core::arch::global_asm!{r#"
memset: memset:
mov rax, rcx mov rax, rcx
cmp r8, 31 cmp r8, 31
ja .LBB0_10 ja .L_memset_BB0_10
cmp r8, 4 cmp r8, 4
ja .LBB0_5 ja .L_memset_BB0_5
test r8, r8 test r8, r8
je .LBB0_26 je .L_memset_BB0_26
mov byte ptr [rax], dl mov byte ptr [rax], dl
mov byte ptr [r8 + rax - 1], dl mov byte ptr [r8 + rax - 1], dl
cmp r8, 3 cmp r8, 3
jb .LBB0_26 jb .L_memset_BB0_26
mov byte ptr [rax + 1], dl mov byte ptr [rax + 1], dl
mov byte ptr [rax + 2], dl mov byte ptr [rax + 2], dl
ret ret
.LBB0_10: .L_memset_BB0_10:
movzx ecx, dl movzx ecx, dl
movd xmm0, ecx movd xmm0, ecx
punpcklbw xmm0, xmm0 punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0 pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0 pshufd xmm0, xmm0, 0
cmp r8, 161 cmp r8, 161
jb .LBB0_23 jb .L_memset_BB0_23
movdqu xmmword ptr [rax], xmm0 movdqu xmmword ptr [rax], xmm0
movdqu xmmword ptr [rax + 16], xmm0 movdqu xmmword ptr [rax + 16], xmm0
mov rdx, rax mov rdx, rax
@@ -35,8 +35,8 @@ memset:
add rcx, -32 add rcx, -32
lea r8, [rdx + 192] lea r8, [rdx + 192]
cmp r8, r9 cmp r8, r9
jae .LBB0_12 jae .L_memset_BB0_12
.LBB0_13: .L_memset_BB0_13:
movdqa xmmword ptr [r8 - 160], xmm0 movdqa xmmword ptr [r8 - 160], xmm0
movdqa xmmword ptr [r8 - 144], xmm0 movdqa xmmword ptr [r8 - 144], xmm0
movdqa xmmword ptr [r8 - 128], xmm0 movdqa xmmword ptr [r8 - 128], xmm0
@@ -49,59 +49,59 @@ memset:
movdqa xmmword ptr [r8 - 16], xmm0 movdqa xmmword ptr [r8 - 16], xmm0
add r8, 160 add r8, 160
cmp r8, r9 cmp r8, r9
jb .LBB0_13 jb .L_memset_BB0_13
add r8, -160 add r8, -160
mov rdx, r8 mov rdx, r8
cmp rdx, rcx cmp rdx, rcx
jb .LBB0_16 jb .L_memset_BB0_16
jmp .LBB0_17 jmp .L_memset_BB0_17
.LBB0_5: .L_memset_BB0_5:
cmp r8, 16 cmp r8, 16
ja .LBB0_9 ja .L_memset_BB0_9
movzx edx, dl movzx edx, dl
movabs rcx, 72340172838076673 movabs rcx, 72340172838076673
imul rcx, rdx imul rcx, rdx
cmp r8, 8 cmp r8, 8
jb .LBB0_8 jb .L_memset_BB0_8
mov qword ptr [rax], rcx mov qword ptr [rax], rcx
mov qword ptr [rax + r8 - 8], rcx mov qword ptr [rax + r8 - 8], rcx
ret ret
.LBB0_23: .L_memset_BB0_23:
lea rcx, [rax + r8] lea rcx, [rax + r8]
add rcx, -32 add rcx, -32
mov rdx, rax mov rdx, rax
.LBB0_24: .L_memset_BB0_24:
movdqu xmmword ptr [rdx], xmm0 movdqu xmmword ptr [rdx], xmm0
movdqu xmmword ptr [rdx + 16], xmm0 movdqu xmmword ptr [rdx + 16], xmm0
add rdx, 32 add rdx, 32
cmp rdx, rcx cmp rdx, rcx
jb .LBB0_24 jb .L_memset_BB0_24
jmp .LBB0_25 jmp .L_memset_BB0_25
.LBB0_12: .L_memset_BB0_12:
add rdx, 32 add rdx, 32
cmp rdx, rcx cmp rdx, rcx
jae .LBB0_17 jae .L_memset_BB0_17
.LBB0_16: .L_memset_BB0_16:
movdqa xmmword ptr [rdx], xmm0 movdqa xmmword ptr [rdx], xmm0
movdqa xmmword ptr [rdx + 16], xmm0 movdqa xmmword ptr [rdx + 16], xmm0
add rdx, 32 add rdx, 32
.LBB0_17: .L_memset_BB0_17:
cmp rdx, rcx cmp rdx, rcx
jb .LBB0_18 jb .L_memset_BB0_18
cmp rdx, rcx cmp rdx, rcx
jb .LBB0_20 jb .L_memset_BB0_20
.LBB0_21: .L_memset_BB0_21:
cmp rdx, rcx cmp rdx, rcx
jae .LBB0_25 jae .L_memset_BB0_25
.LBB0_22: .L_memset_BB0_22:
movdqa xmmword ptr [rdx], xmm0 movdqa xmmword ptr [rdx], xmm0
movdqa xmmword ptr [rdx + 16], xmm0 movdqa xmmword ptr [rdx + 16], xmm0
.LBB0_25: .L_memset_BB0_25:
movdqu xmmword ptr [rcx], xmm0 movdqu xmmword ptr [rcx], xmm0
movdqu xmmword ptr [rcx + 16], xmm0 movdqu xmmword ptr [rcx + 16], xmm0
.LBB0_26: .L_memset_BB0_26:
ret ret
.LBB0_9: .L_memset_BB0_9:
movzx ecx, dl movzx ecx, dl
movd xmm0, ecx movd xmm0, ecx
punpcklbw xmm0, xmm0 punpcklbw xmm0, xmm0
@@ -110,20 +110,20 @@ memset:
movdqu xmmword ptr [rax + r8 - 16], xmm0 movdqu xmmword ptr [rax + r8 - 16], xmm0
movdqu xmmword ptr [rax], xmm0 movdqu xmmword ptr [rax], xmm0
ret ret
.LBB0_18: .L_memset_BB0_18:
movdqa xmmword ptr [rdx], xmm0 movdqa xmmword ptr [rdx], xmm0
movdqa xmmword ptr [rdx + 16], xmm0 movdqa xmmword ptr [rdx + 16], xmm0
add rdx, 32 add rdx, 32
cmp rdx, rcx cmp rdx, rcx
jae .LBB0_21 jae .L_memset_BB0_21
.LBB0_20: .L_memset_BB0_20:
movdqa xmmword ptr [rdx], xmm0 movdqa xmmword ptr [rdx], xmm0
movdqa xmmword ptr [rdx + 16], xmm0 movdqa xmmword ptr [rdx + 16], xmm0
add rdx, 32 add rdx, 32
cmp rdx, rcx cmp rdx, rcx
jb .LBB0_22 jb .L_memset_BB0_22
jmp .LBB0_25 jmp .L_memset_BB0_25
.LBB0_8: .L_memset_BB0_8:
mov dword ptr [rax], ecx mov dword ptr [rax], ecx
mov dword ptr [rax + r8 - 4], ecx mov dword ptr [rax + r8 - 4], ecx
ret ret