Module Name: src Committed By: dyoung Date: Wed May 5 17:42:19 UTC 2010
Modified Files: src/sys/arch/i386/i386: busfunc.S Log Message: Andrew Doran points out that _ALIGN_TEXT is unused, and the processor may be able to "pair or pipeline" instructions if I load the bus_space_tag pointer nearer the top of the functions. Get rid of the _ALIGN_TEXT definition, and load the pointer earlier. To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 src/sys/arch/i386/i386/busfunc.S Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/i386/i386/busfunc.S diff -u src/sys/arch/i386/i386/busfunc.S:1.6 src/sys/arch/i386/i386/busfunc.S:1.7 --- src/sys/arch/i386/i386/busfunc.S:1.6 Wed Apr 28 19:17:03 2010 +++ src/sys/arch/i386/i386/busfunc.S Wed May 5 17:42:19 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: busfunc.S,v 1.6 2010/04/28 19:17:03 dyoung Exp $ */ +/* $NetBSD: busfunc.S,v 1.7 2010/05/05 17:42:19 dyoung Exp $ */ /*- * Copyright (c) 2007 The NetBSD Foundation, Inc. @@ -30,22 +30,18 @@ */ #include <machine/asm.h> -__KERNEL_RCSID(0, "$NetBSD: busfunc.S,v 1.6 2010/04/28 19:17:03 dyoung Exp $"); +__KERNEL_RCSID(0, "$NetBSD: busfunc.S,v 1.7 2010/05/05 17:42:19 dyoung Exp $"); #include "assym.h" -/* XXX */ -#undef _ALIGN_TEXT -#define _ALIGN_TEXT .align 16 - /* * uint8_t bus_space_read_1(bus_space_tag_t tag, bus_space_handle_t bsh, * bus_size_t offset); */ ENTRY(bus_space_read_1) + movl 4(%esp), %eax movl 8(%esp), %edx addl 12(%esp), %edx - movl 4(%esp), %eax cmpl $X86_BUS_SPACE_IO, BST_TYPE(%eax) je 1f movzbl (%edx), %eax @@ -60,9 +56,9 @@ * bus_size_t offset); */ ENTRY(bus_space_read_2) + movl 4(%esp), %eax movl 8(%esp), %edx addl 12(%esp), %edx - movl 4(%esp), %eax cmpl $X86_BUS_SPACE_IO, BST_TYPE(%eax) je 1f movzwl (%edx), %eax @@ -77,9 +73,9 @@ * bus_size_t offset); */ ENTRY(bus_space_read_4) + movl 4(%esp), %eax movl 8(%esp), %edx addl 12(%esp), %edx - movl 4(%esp), %eax cmpl $X86_BUS_SPACE_IO, BST_TYPE(%eax) je 1f movl (%edx), %eax @@ -97,9 +93,9 @@ * bus_size_t offset, uint8_t value); */ ENTRY(bus_space_write_1) + movl 4(%esp), %eax movl 8(%esp), %edx addl 12(%esp), %edx - movl 4(%esp), %eax cmpl $X86_BUS_SPACE_IO, BST_TYPE(%eax) movl 16(%esp), %eax je 1f @@ -114,9 +110,9 @@ * bus_size_t offset, uint16_t value); */ ENTRY(bus_space_write_2) + movl 4(%esp), %eax movl 8(%esp), %edx addl 12(%esp), %edx - movl 4(%esp), %eax cmpl $X86_BUS_SPACE_IO, BST_TYPE(%eax) movl 16(%esp), %eax je 1f @@ -131,9 +127,9 @@ * bus_size_t offset, uint32_t value); */ ENTRY(bus_space_write_4) + movl 4(%esp), %eax movl 8(%esp), %edx addl 12(%esp), %edx - movl 4(%esp), %eax cmpl $X86_BUS_SPACE_IO, BST_TYPE(%eax) movl 16(%esp), %eax je 1f @@ -153,9 +149,9 @@ */ ENTRY(bus_space_read_multi_1) pushl %edi + movl 8(%esp), %eax movl 12(%esp), %edx addl 16(%esp), %edx - movl 8(%esp), %eax cmpl $X86_BUS_SPACE_IO, BST_TYPE(%eax) movl 20(%esp), %edi movl 24(%esp), %ecx @@ -180,9 +176,9 @@ */ ENTRY(bus_space_read_multi_2) pushl %edi + movl 8(%esp), %eax movl 12(%esp), %edx addl 16(%esp), %edx - movl 8(%esp), %eax cmpl $X86_BUS_SPACE_IO, BST_TYPE(%eax) movl 20(%esp), %edi movl 24(%esp), %ecx @@ -207,9 +203,9 @@ */ ENTRY(bus_space_read_multi_4) pushl %edi + movl 8(%esp), %eax movl 12(%esp), %edx addl 16(%esp), %edx - movl 8(%esp), %eax cmpl $X86_BUS_SPACE_IO, BST_TYPE(%eax) movl 20(%esp), %edi movl 24(%esp), %ecx @@ -238,9 +234,9 @@ */ ENTRY(bus_space_write_multi_1) pushl %esi + movl 8(%esp), %eax movl 12(%esp), %edx addl 16(%esp), %edx - movl 8(%esp), %eax cmpl $X86_BUS_SPACE_IO, BST_TYPE(%eax) movl 20(%esp), %esi movl 24(%esp), %ecx @@ -265,9 +261,9 @@ */ ENTRY(bus_space_write_multi_2) pushl %esi + movl 8(%esp), %eax movl 12(%esp), %edx addl 16(%esp), %edx - movl 8(%esp), %eax cmpl $X86_BUS_SPACE_IO, BST_TYPE(%eax) movl 20(%esp), %esi movl 24(%esp), %ecx @@ -292,9 +288,9 @@ */ ENTRY(bus_space_write_multi_4) pushl %esi + movl 8(%esp), %eax movl 12(%esp), %edx addl 16(%esp), %edx - movl 8(%esp), %eax cmpl $X86_BUS_SPACE_IO, BST_TYPE(%eax) movl 20(%esp), %esi movl 24(%esp), %ecx @@ -323,9 +319,9 @@ */ ENTRY(bus_space_read_region_1) pushl %edi + movl 8(%esp), %eax movl 12(%esp), %edx addl 16(%esp), %edx - movl 8(%esp), %eax cmpl $X86_BUS_SPACE_IO, BST_TYPE(%eax) movl 20(%esp), %edi movl 24(%esp), %ecx @@ -353,9 +349,9 @@ */ ENTRY(bus_space_read_region_2) pushl %edi + movl 8(%esp), %eax movl 12(%esp), %edx addl 16(%esp), %edx - movl 8(%esp), %eax cmpl $X86_BUS_SPACE_IO, BST_TYPE(%eax) movl 20(%esp), %edi movl 24(%esp), %ecx @@ -383,9 +379,9 @@ */ ENTRY(bus_space_read_region_4) pushl %edi + movl 8(%esp), %eax movl 12(%esp), %edx addl 16(%esp), %edx - movl 8(%esp), %eax cmpl $X86_BUS_SPACE_IO, BST_TYPE(%eax) movl 20(%esp), %edi movl 24(%esp), %ecx @@ -417,9 +413,9 @@ */ ENTRY(bus_space_write_region_1) pushl %esi + movl 8(%esp), %eax movl 12(%esp), %edx addl 16(%esp), %edx - movl 8(%esp), %eax cmpl $X86_BUS_SPACE_IO, BST_TYPE(%eax) movl 20(%esp), %esi movl 24(%esp), %ecx @@ -447,9 +443,9 @@ */ ENTRY(bus_space_write_region_2) pushl %esi + movl 8(%esp), %eax movl 12(%esp), %edx addl 16(%esp), %edx - movl 8(%esp), %eax cmpl $X86_BUS_SPACE_IO, BST_TYPE(%eax) movl 20(%esp), %esi movl 24(%esp), %ecx @@ -477,9 +473,9 @@ */ ENTRY(bus_space_write_region_4) pushl %esi + movl 8(%esp), %eax movl 12(%esp), %edx addl 16(%esp), %edx - movl 8(%esp), %eax cmpl $X86_BUS_SPACE_IO, BST_TYPE(%eax) movl 20(%esp), %esi movl 24(%esp), %ecx