From owner-p4-projects@FreeBSD.ORG Thu Jul 23 21:33:24 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3C9F11065677; Thu, 23 Jul 2009 21:33:23 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EF3471065675; Thu, 23 Jul 2009 21:33:22 +0000 (UTC) (envelope-from lulf@freebsd.org) Received: from decibel.pvv.ntnu.no (decibel.pvv.ntnu.no [IPv6:2001:700:300:1900::1:2]) by mx1.freebsd.org (Postfix) with ESMTP id 3F9388FC1A; Thu, 23 Jul 2009 21:33:22 +0000 (UTC) (envelope-from lulf@freebsd.org) Received: from 147.80-202-26.nextgentel.com ([80.202.26.147] helo=nobby.geeknest.org) by decibel.pvv.ntnu.no with esmtpsa (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.69) (envelope-from ) id 1MU5ug-0005mc-L0; Thu, 23 Jul 2009 23:33:20 +0200 Message-ID: <4A68D71B.3010909@freebsd.org> Date: Thu, 23 Jul 2009 23:33:15 +0200 From: Ulf Lilleengen User-Agent: Thunderbird 2.0.0.22 (X11/20090723) MIME-Version: 1.0 To: Oleksandr Tymoshenko References: <200907232022.n6NKMpKH074697@repoman.freebsd.org> In-Reply-To: <200907232022.n6NKMpKH074697@repoman.freebsd.org> X-Enigmail-Version: 0.95.7 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Spam-Score: 0.2 (/) X-Spam-Report: Status=No hits=0.2 required=5.0 tests=ALL_TRUSTED, TVD_RCVD_IP version=3.2.4 Cc: perforce@FreeBSD.org Subject: Re: PERFORCE change 166470 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 23 Jul 2009 21:33:24 -0000 Oleksandr Tymoshenko wrote: > http://perforce.freebsd.org/chv.cgi?CH=166470 > > Change 166470 by gonzo@gonzo_figaro on 2009/07/23 20:22:08 > > - Replace overengineered version of power of 2 calcualtion > with shift operator > Boy do I feel silly :) > Affected files ... > > .. //depot/projects/avr32/src/sys/avr32/avr32/cache.c#5 edit > > Differences ... > > ==== //depot/projects/avr32/src/sys/avr32/avr32/cache.c#5 (text+ko) ==== > > @@ -112,21 +112,6 @@ > u_int avr32_dcache_line_size; > u_int avr32_dcache_ways; > > -/* XXX: there must be a library function for this? */ > -u_int > -pow(u_int base, u_int power) > -{ > - u_int i, result; > - > - if (power == 0) > - return (1); > - > - result = base; > - for (i = 1; i < power; i++) > - result *= base; > - return (result); > -} > - > /* Set up the cache operations according to config. */ > void > avr32_config_cache(void) > @@ -135,16 +120,16 @@ > > config = sysreg_read(CONFIG1); > /* Read instruction cache parameters. */ > - avr32_icache_size = pow(2, bit_value(SYS, CONFIG1, ISET, config)); > - avr32_icache_line_size = pow(2, bit_value(SYS, CONFIG1, ILSZ, config) + > - 1); > - avr32_icache_ways = pow(2, bit_value(SYS, CONFIG1, IASS, config)); > + avr32_icache_size = 1 << bit_value(SYS, CONFIG1, ISET, config); > + avr32_icache_line_size = 1 << > + (bit_value(SYS, CONFIG1, ILSZ, config) + 1); > + avr32_icache_ways = 1 << bit_value(SYS, CONFIG1, IASS, config); > > /* Read data cache parameters. */ > - avr32_dcache_size = pow(2, bit_value(SYS, CONFIG1, DSET, config)); > - avr32_dcache_line_size = pow(2, bit_value(SYS, CONFIG1, DLSZ, config) + > - 1); > - avr32_dcache_ways = pow(2, bit_value(SYS, CONFIG1, DASS, config)); > + avr32_dcache_size = 1 << bit_value(SYS, CONFIG1, DSET, config); > + avr32_dcache_line_size = 1 << > + (bit_value(SYS, CONFIG1, DLSZ, config) + 1); > + avr32_dcache_ways = 1 << bit_value(SYS, CONFIG1, DASS, config); > printf("ICACHE: sz %d lsz %d assoc %d\n", avr32_icache_size, > avr32_icache_line_size, avr32_icache_ways); > printf("DCACHE: sz %d lsz %d assoc %d\n", avr32_dcache_size, >