Changeset View
Changeset View
Standalone View
Standalone View
head/sys/amd64/amd64/support.S
Show First 20 Lines • Show All 509 Lines • ▼ Show 20 Lines | 1001: | ||||
movb %r10b,(%rdi) | movb %r10b,(%rdi) | ||||
1000: | 1000: | ||||
POP_FRAME_POINTER | POP_FRAME_POINTER | ||||
ret | ret | ||||
ALIGN_TEXT | ALIGN_TEXT | ||||
1256: | 1256: | ||||
movq %rdi,%r9 | movq %rdi,%r9 | ||||
movq %r10,%rax | movq %r10,%rax | ||||
testl $15,%edi | |||||
jnz 3f | |||||
1: | |||||
.if \erms == 1 | .if \erms == 1 | ||||
rep | rep | ||||
stosb | stosb | ||||
movq %r9,%rax | movq %r9,%rax | ||||
.else | .else | ||||
movq %rcx,%rdx | |||||
shrq $3,%rcx | shrq $3,%rcx | ||||
rep | rep | ||||
stosq | stosq | ||||
movq %r9,%rax | movq %r9,%rax | ||||
andl $7,%edx | andl $7,%edx | ||||
jnz 1f | jnz 2f | ||||
POP_FRAME_POINTER | POP_FRAME_POINTER | ||||
ret | ret | ||||
1: | 2: | ||||
movq %r10,-8(%rdi,%rdx) | movq %r10,-8(%rdi,%rdx) | ||||
.endif | .endif | ||||
POP_FRAME_POINTER | POP_FRAME_POINTER | ||||
ret | ret | ||||
ALIGN_TEXT | |||||
3: | |||||
movq %r10,(%rdi) | |||||
movq %r10,8(%rdi) | |||||
movq %rdi,%r8 | |||||
andq $15,%r8 | |||||
leaq -16(%rcx,%r8),%rcx | |||||
neg %r8 | |||||
leaq 16(%rdi,%r8),%rdi | |||||
jmp 1b | |||||
.endm | .endm | ||||
ENTRY(memset_std) | ENTRY(memset_std) | ||||
MEMSET erms=0 | MEMSET erms=0 | ||||
END(memset_std) | END(memset_std) | ||||
ENTRY(memset_erms) | ENTRY(memset_erms) | ||||
MEMSET erms=1 | MEMSET erms=1 | ||||
▲ Show 20 Lines • Show All 1,027 Lines • Show Last 20 Lines |