From owner-p4-projects@FreeBSD.ORG Thu Apr 24 23:17:09 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8F70337B404; Thu, 24 Apr 2003 23:17:07 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 409F737B401 for ; Thu, 24 Apr 2003 23:17:07 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D17CE43FCB for ; Thu, 24 Apr 2003 23:17:06 -0700 (PDT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h3P6H60U059224 for ; Thu, 24 Apr 2003 23:17:06 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h3P6H6ja059218 for perforce@freebsd.org; Thu, 24 Apr 2003 23:17:06 -0700 (PDT) Date: Thu, 24 Apr 2003 23:17:06 -0700 (PDT) Message-Id: <200304250617.h3P6H6ja059218@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Subject: PERFORCE change 29674 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Apr 2003 06:17:09 -0000 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"