Changeset View
Changeset View
Standalone View
Standalone View
sys/i386/i386/copyout_fast.s
Show First 20 Lines • Show All 87 Lines • ▼ Show 20 Lines | ENTRY(copyout_fast) | ||||
popl %edi | popl %edi | ||||
movl %edi,%cr3 | movl %edi,%cr3 | ||||
/* bcopy(%esi = PCPU(copyout_buf), %edi = udaddr, %ecx = len) */ | /* bcopy(%esi = PCPU(copyout_buf), %edi = udaddr, %ecx = len) */ | ||||
popl %ecx | popl %ecx | ||||
popl %edi | popl %edi | ||||
popl %esi | popl %esi | ||||
rep; movsb | pf_x1: rep; movsb | ||||
movl %ebx,%cr3 | movl %ebx,%cr3 | ||||
movl %eax,%esp | movl %eax,%esp | ||||
sti | sti | ||||
xorl %eax,%eax | xorl %eax,%eax | ||||
popl %ebx | popl %ebx | ||||
popl %edi | popl %edi | ||||
Show All 40 Lines | ENTRY(copyin_fast) | ||||
movl %esp,%eax | movl %esp,%eax | ||||
movl %esi,%esp | movl %esi,%esp | ||||
movl %edi,%cr3 | movl %edi,%cr3 | ||||
/* bcopy(%esi = udaddr, %edi = PCPU(copyout_buf), %ecx = len) */ | /* bcopy(%esi = udaddr, %edi = PCPU(copyout_buf), %ecx = len) */ | ||||
popl %ecx | popl %ecx | ||||
popl %edi | popl %edi | ||||
popl %esi | popl %esi | ||||
rep; movsb | pf_x2: rep; movsb | ||||
movl %ebx,%cr3 | movl %ebx,%cr3 | ||||
/* bcopy(%esi = PCPU(copyout_buf), %edi = kaddr, %ecx = len) */ | /* bcopy(%esi = PCPU(copyout_buf), %edi = kaddr, %ecx = len) */ | ||||
popl %ecx | popl %ecx | ||||
popl %edi | popl %edi | ||||
popl %esi | popl %esi | ||||
rep; movsb | rep; movsb | ||||
Show All 30 Lines | ENTRY(fueword_fast) | ||||
movl PCPU(CURPCB),%eax | movl PCPU(CURPCB),%eax | ||||
movl PCB_CR3(%eax),%eax | movl PCB_CR3(%eax),%eax | ||||
movl $fusufault,%edx | movl $fusufault,%edx | ||||
movl 16(%ebp),%ebx | movl 16(%ebp),%ebx | ||||
movl %esp,%esi | movl %esp,%esi | ||||
cli | cli | ||||
movl PCPU(TRAMPSTK),%esp | movl PCPU(TRAMPSTK),%esp | ||||
movl %eax,%cr3 | movl %eax,%cr3 | ||||
movl (%ecx),%eax | pf_x3: movl (%ecx),%eax | ||||
movl %ebx,%cr3 | movl %ebx,%cr3 | ||||
movl %esi,%esp | movl %esi,%esp | ||||
sti | sti | ||||
movl 12(%ebp),%edx | movl 12(%ebp),%edx | ||||
movl %eax,(%edx) | movl %eax,(%edx) | ||||
xorl %eax,%eax | xorl %eax,%eax | ||||
popl %edi | popl %edi | ||||
popl %esi | popl %esi | ||||
Show All 12 Lines | ENTRY(fuword16_fast) | ||||
movl PCPU(CURPCB),%eax | movl PCPU(CURPCB),%eax | ||||
movl PCB_CR3(%eax),%eax | movl PCB_CR3(%eax),%eax | ||||
movl $fusufault,%edx | movl $fusufault,%edx | ||||
movl 12(%ebp),%ebx | movl 12(%ebp),%ebx | ||||
movl %esp,%esi | movl %esp,%esi | ||||
cli | cli | ||||
movl PCPU(TRAMPSTK),%esp | movl PCPU(TRAMPSTK),%esp | ||||
movl %eax,%cr3 | movl %eax,%cr3 | ||||
movzwl (%ecx),%eax | pf_x4: movzwl (%ecx),%eax | ||||
movl %ebx,%cr3 | movl %ebx,%cr3 | ||||
movl %esi,%esp | movl %esi,%esp | ||||
sti | sti | ||||
popl %edi | popl %edi | ||||
popl %esi | popl %esi | ||||
popl %ebx | popl %ebx | ||||
leave | leave | ||||
ret | ret | ||||
Show All 9 Lines | ENTRY(fubyte_fast) | ||||
movl PCPU(CURPCB),%eax | movl PCPU(CURPCB),%eax | ||||
movl PCB_CR3(%eax),%eax | movl PCB_CR3(%eax),%eax | ||||
movl $fusufault,%edx | movl $fusufault,%edx | ||||
movl 12(%ebp),%ebx | movl 12(%ebp),%ebx | ||||
movl %esp,%esi | movl %esp,%esi | ||||
cli | cli | ||||
movl PCPU(TRAMPSTK),%esp | movl PCPU(TRAMPSTK),%esp | ||||
movl %eax,%cr3 | movl %eax,%cr3 | ||||
movzbl (%ecx),%eax | pf_x5: movzbl (%ecx),%eax | ||||
movl %ebx,%cr3 | movl %ebx,%cr3 | ||||
movl %esi,%esp | movl %esi,%esp | ||||
sti | sti | ||||
popl %edi | popl %edi | ||||
popl %esi | popl %esi | ||||
popl %ebx | popl %ebx | ||||
leave | leave | ||||
ret | ret | ||||
Show All 22 Lines | ENTRY(suword_fast) | ||||
movl $fusufault,%edx | movl $fusufault,%edx | ||||
movl 8(%ebp),%ecx /* to */ | movl 8(%ebp),%ecx /* to */ | ||||
movl 12(%ebp),%edi /* val */ | movl 12(%ebp),%edi /* val */ | ||||
movl 16(%ebp),%ebx | movl 16(%ebp),%ebx | ||||
movl %esp,%esi | movl %esp,%esi | ||||
cli | cli | ||||
movl PCPU(TRAMPSTK),%esp | movl PCPU(TRAMPSTK),%esp | ||||
movl %eax,%cr3 | movl %eax,%cr3 | ||||
movl %edi,(%ecx) | pf_x6: movl %edi,(%ecx) | ||||
movl %ebx,%cr3 | movl %ebx,%cr3 | ||||
movl %esi,%esp | movl %esi,%esp | ||||
sti | sti | ||||
xorl %eax,%eax | xorl %eax,%eax | ||||
popl %edi | popl %edi | ||||
popl %esi | popl %esi | ||||
popl %ebx | popl %ebx | ||||
leave | leave | ||||
Show All 11 Lines | ENTRY(suword16_fast) | ||||
movl $fusufault,%edx | movl $fusufault,%edx | ||||
movl 8(%ebp),%ecx /* to */ | movl 8(%ebp),%ecx /* to */ | ||||
movl 12(%ebp),%edi /* val */ | movl 12(%ebp),%edi /* val */ | ||||
movl 16(%ebp),%ebx | movl 16(%ebp),%ebx | ||||
movl %esp,%esi | movl %esp,%esi | ||||
cli | cli | ||||
movl PCPU(TRAMPSTK),%esp | movl PCPU(TRAMPSTK),%esp | ||||
movl %eax,%cr3 | movl %eax,%cr3 | ||||
movw %di,(%ecx) | pf_x7: movw %di,(%ecx) | ||||
movl %ebx,%cr3 | movl %ebx,%cr3 | ||||
movl %esi,%esp | movl %esi,%esp | ||||
sti | sti | ||||
xorl %eax,%eax | xorl %eax,%eax | ||||
popl %edi | popl %edi | ||||
popl %esi | popl %esi | ||||
popl %ebx | popl %ebx | ||||
leave | leave | ||||
Show All 12 Lines | ENTRY(subyte_fast) | ||||
movl 8(%ebp),%ecx /* to */ | movl 8(%ebp),%ecx /* to */ | ||||
movl 12(%ebp),%edi /* val */ | movl 12(%ebp),%edi /* val */ | ||||
movl 16(%ebp),%ebx | movl 16(%ebp),%ebx | ||||
movl %esp,%esi | movl %esp,%esi | ||||
cli | cli | ||||
movl PCPU(TRAMPSTK),%esp | movl PCPU(TRAMPSTK),%esp | ||||
movl %eax,%cr3 | movl %eax,%cr3 | ||||
movl %edi,%eax | movl %edi,%eax | ||||
movb %al,(%ecx) | pf_x8: movb %al,(%ecx) | ||||
movl %ebx,%cr3 | movl %ebx,%cr3 | ||||
movl %esi,%esp | movl %esi,%esp | ||||
sti | sti | ||||
xorl %eax,%eax | xorl %eax,%eax | ||||
popl %edi | popl %edi | ||||
popl %esi | popl %esi | ||||
popl %ebx | popl %ebx | ||||
leave | leave | ||||
ret | ret | ||||
END(subyte_fast) | END(subyte_fast) |