Date: Thu, 24 Apr 2003 23:17:06 -0700 (PDT) From: Peter Wemm <peter@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 29674 for review Message-ID: <200304250617.h3P6H6ja059218@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=29674 Change 29674 by peter@peter_daintree on 2003/04/24 23:16:34 Shuffle the movq's around to match the trapframe and so that it accesses memory in increasing memory order. This should take advantage of any memory burst modes etc. Affected files ... .. //depot/projects/hammer/sys/x86_64/isa/icu_vector.s#10 edit .. //depot/projects/hammer/sys/x86_64/x86_64/exception.s#22 edit Differences ... ==== //depot/projects/hammer/sys/x86_64/isa/icu_vector.s#10 (text+ko) ==== @@ -25,15 +25,15 @@ SUPERALIGN_TEXT ; \ IDTVEC(vec_name) ; \ subq $TF_RIP,%rsp ; /* skip dummy tf_err and tf_trapno */ \ + movq %rdi,TF_RDI(%rsp) ; \ + movq %rsi,TF_RSI(%rsp) ; \ + movq %rdx,TF_RDX(%rsp) ; \ + movq %rcx,TF_RCX(%rsp) ; \ + movq %r8,TF_R8(%rsp) ; \ + movq %r9,TF_R9(%rsp) ; \ movq %rax,TF_RAX(%rsp) ; \ - movq %rcx,TF_RCX(%rsp) ; \ - movq %rdx,TF_RDX(%rsp) ; \ movq %rbx,TF_RBX(%rsp) ; \ movq %rbp,TF_RBP(%rsp) ; \ - movq %rsi,TF_RSI(%rsp) ; \ - movq %rdi,TF_RDI(%rsp) ; \ - movq %r8,TF_R8(%rsp) ; \ - movq %r9,TF_R9(%rsp) ; \ movq %r10,TF_R10(%rsp) ; \ movq %r11,TF_R11(%rsp) ; \ movq %r12,TF_R12(%rsp) ; \ @@ -69,15 +69,15 @@ SUPERALIGN_TEXT ; \ IDTVEC(vec_name) ; \ subq $TF_RIP,%rsp ; /* skip dummy tf_err and tf_trapno */ \ + movq %rdi,TF_RDI(%rsp) ; \ + movq %rsi,TF_RSI(%rsp) ; \ + movq %rdx,TF_RDX(%rsp) ; \ + movq %rcx,TF_RCX(%rsp) ; \ + movq %r8,TF_R8(%rsp) ; \ + movq %r9,TF_R9(%rsp) ; \ movq %rax,TF_RAX(%rsp) ; \ - movq %rcx,TF_RCX(%rsp) ; \ - movq %rdx,TF_RDX(%rsp) ; \ movq %rbx,TF_RBX(%rsp) ; \ movq %rbp,TF_RBP(%rsp) ; \ - movq %rsi,TF_RSI(%rsp) ; \ - movq %rdi,TF_RDI(%rsp) ; \ - movq %r8,TF_R8(%rsp) ; \ - movq %r9,TF_R9(%rsp) ; \ movq %r10,TF_R10(%rsp) ; \ movq %r11,TF_R11(%rsp) ; \ movq %r12,TF_R12(%rsp) ; \ ==== //depot/projects/hammer/sys/x86_64/x86_64/exception.s#22 (text+ko) ==== @@ -130,15 +130,15 @@ .type alltraps,@function alltraps: subq $TF_TRAPNO,%rsp /* tf_err and tf_trapno already pushed */ + movq %rdi,TF_RDI(%rsp) + movq %rsi,TF_RSI(%rsp) + movq %rdx,TF_RDX(%rsp) + movq %rcx,TF_RCX(%rsp) + movq %r8,TF_R8(%rsp) + movq %r9,TF_R9(%rsp) movq %rax,TF_RAX(%rsp) - movq %rcx,TF_RCX(%rsp) - movq %rdx,TF_RDX(%rsp) movq %rbx,TF_RBX(%rsp) movq %rbp,TF_RBP(%rsp) - movq %rsi,TF_RSI(%rsp) - movq %rdi,TF_RDI(%rsp) - movq %r8,TF_R8(%rsp) - movq %r9,TF_R9(%rsp) movq %r10,TF_R10(%rsp) movq %r11,TF_R11(%rsp) movq %r12,TF_R12(%rsp) @@ -171,15 +171,15 @@ IDTVEC(int0x80_syscall) pushq $2 /* sizeof "int 0x80" */ subq $TF_ERR,%rsp /* skip over tf_trapno */ + movq %rdi,TF_RDI(%rsp) + movq %rsi,TF_RSI(%rsp) + movq %rdx,TF_RDX(%rsp) + movq %rcx,TF_RCX(%rsp) + movq %r8,TF_R8(%rsp) + movq %r9,TF_R9(%rsp) movq %rax,TF_RAX(%rsp) - movq %rcx,TF_RCX(%rsp) - movq %rdx,TF_RDX(%rsp) movq %rbx,TF_RBX(%rsp) movq %rbp,TF_RBP(%rsp) - movq %rsi,TF_RSI(%rsp) - movq %rdi,TF_RDI(%rsp) - movq %r8,TF_R8(%rsp) - movq %r9,TF_R9(%rsp) movq %r10,TF_R10(%rsp) movq %r11,TF_R11(%rsp) movq %r12,TF_R12(%rsp) @@ -252,21 +252,21 @@ doreti_exit: MEXITCOUNT - movq TF_R15(%rsp),%r15 - movq TF_R14(%rsp),%r14 - movq TF_R13(%rsp),%r13 - movq TF_R12(%rsp),%r12 - movq TF_R11(%rsp),%r11 - movq TF_R10(%rsp),%r10 - movq TF_R9(%rsp),%r9 - movq TF_R8(%rsp),%r8 movq TF_RDI(%rsp),%rdi movq TF_RSI(%rsp),%rsi - movq TF_RBP(%rsp),%rbp - movq TF_RBX(%rsp),%rbx movq TF_RDX(%rsp),%rdx movq TF_RCX(%rsp),%rcx + movq TF_R8(%rsp),%r8 + movq TF_R9(%rsp),%r9 movq TF_RAX(%rsp),%rax + movq TF_RBX(%rsp),%rbx + movq TF_RBP(%rsp),%rbp + movq TF_R10(%rsp),%r10 + movq TF_R11(%rsp),%r11 + movq TF_R12(%rsp),%r12 + movq TF_R13(%rsp),%r13 + movq TF_R14(%rsp),%r14 + movq TF_R15(%rsp),%r15 addq $TF_RIP,%rsp /* skip over tf_err, tf_trapno */ .globl doreti_iret doreti_iret: @@ -283,23 +283,23 @@ .globl doreti_iret_fault doreti_iret_fault: subq $TF_RIP,%rsp /* space including tf_err, tf_trapno */ + movq %rdi,TF_RDI(%rsp) + movq %rsi,TF_RSI(%rsp) + movq %rdx,TF_RDX(%rsp) + movq %rcx,TF_RCX(%rsp) + movq %r8,TF_R8(%rsp) + movq %r9,TF_R9(%rsp) movq %rax,TF_RAX(%rsp) - movq %rcx,TF_RCX(%rsp) - movq %rdx,TF_RDX(%rsp) movq %rbx,TF_RBX(%rsp) movq %rbp,TF_RBP(%rsp) - movq %rsi,TF_RSI(%rsp) - movq %rdi,TF_RDI(%rsp) - movq %r8,TF_R8(%rsp) - movq %r9,TF_R9(%rsp) movq %r10,TF_R10(%rsp) movq %r11,TF_R11(%rsp) movq %r12,TF_R12(%rsp) movq %r13,TF_R13(%rsp) movq %r14,TF_R14(%rsp) movq %r15,TF_R15(%rsp) + movq $T_PROTFLT,TF_TRAPNO(%rsp) movq $0,TF_ERR(%rsp) /* XXX should be the error code */ - movq $T_PROTFLT,TF_TRAPNO(%rsp) jmp alltraps_with_regs_pushed #include "x86_64/isa/icu_ipl.s"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200304250617.h3P6H6ja059218>