From owner-p4-projects@FreeBSD.ORG Fri Apr 4 18:42:18 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1AEF537B404; Fri, 4 Apr 2003 18:42:18 -0800 (PST) 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 AB96737B401 for ; Fri, 4 Apr 2003 18:42:17 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 551CB43FBD for ; Fri, 4 Apr 2003 18:42:17 -0800 (PST) (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 h352gH0U095358 for ; Fri, 4 Apr 2003 18:42:17 -0800 (PST) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h352gGjh095355 for perforce@freebsd.org; Fri, 4 Apr 2003 18:42:16 -0800 (PST) Date: Fri, 4 Apr 2003 18:42:16 -0800 (PST) Message-Id: <200304050242.h352gGjh095355@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 28135 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: Sat, 05 Apr 2003 02:42:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=28135 Change 28135 by peter@peter_overcee on 2003/04/04 18:41:49 use 64 bit bswap. XXX check constraints. Affected files ... .. //depot/projects/hammer/sys/x86_64/include/endian.h#5 edit Differences ... ==== //depot/projects/hammer/sys/x86_64/include/endian.h#5 (text+ko) ==== @@ -74,12 +74,15 @@ __asm ("rorl $16, %0" : "+r" (__X)); \ __X; }) -#if defined(_KERNEL) #define __byte_swap_int(x) \ __extension__ ({ register __uint32_t __X = (x); \ __asm ("bswap %0" : "+r" (__X)); \ __X; }) -#endif + +#define __byte_swap_long(x) \ +__extension__ ({ register __uint64_t __X = (x); \ + __asm ("bswap %0" : "+r" (__X)); \ + __X; }) #define __byte_swap_word(x) \ __extension__ ({ register __uint16_t __X = (x); \ @@ -89,11 +92,8 @@ static __inline __uint64_t __bswap64(__uint64_t _x) { - /* XXX we have a 64 bit variation of the bswap instruction now */ - return ((_x >> 56) | ((_x >> 40) & 0xff00) | ((_x >> 24) & 0xff0000) | - ((_x >> 8) & 0xff000000) | ((_x << 8) & ((__uint64_t)0xff << 32)) | - ((_x << 24) & ((__uint64_t)0xff << 40)) | - ((_x << 40) & ((__uint64_t)0xff << 48)) | ((_x << 56))); + + return (__byte_swap_long(_x)); } static __inline __uint32_t