From 5f62355f16d78244c817ba58f1c7482c3cbbdcd1 Mon Sep 17 00:00:00 2001 From: David Jones Date: Thu, 18 Jul 1996 10:45:44 +0100 Subject: [PATCH] Additional log2 interface Removing some redundant code in MPMCheck Copied from Perforce Change: 15962 ServerID: perforce.ravenbrook.com --- mps/src/mpm.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/mps/src/mpm.c b/mps/src/mpm.c index 1734d9c7bb8..20dfd266316 100644 --- a/mps/src/mpm.c +++ b/mps/src/mpm.c @@ -1,12 +1,12 @@ /* impl.c.mpm: GENERAL MPM SUPPORT * - * $HopeName: MMsrc!mpm.c(MMdevel_restr2.3) $ + * $HopeName: MMsrc!mpm.c(trunk.3) $ * Copyright (C) 1996 Harlequin Group, all rights reserved. */ #include "mpm.h" -SRCID(mpm, "$HopeName: MMsrc!mpm.c(MMdevel_restr2.3) $"); +SRCID(mpm, "$HopeName: MMsrc!mpm.c(trunk.3) $"); /* MPMCheck -- test MPM assumptions */ @@ -29,6 +29,7 @@ Bool MPMCheck(void) CHECKL(!SizeIsAligned(64, (unsigned) -1)); CHECKL(SizeIsAligned(0, 32)); CHECKL((SizeAlignUp(1024, 16) == 1024)); + /* .prime: 31051 is prime */ CHECKL(SizeIsAligned(SizeAlignUp(31051, 256), 256)); CHECKL(SizeIsAligned(SizeAlignUp(31051, 512), 512)); CHECKL(!SizeIsAligned(31051, 1024)); @@ -39,11 +40,6 @@ Bool MPMCheck(void) CHECKL(SizeLog2(65536L) == 16); CHECKL(SizeLog2(131072L) == 17); - CHECKL(sizeof(char) == 1); - CHECKL(sizeof(MPS_T_WORD)*8 == WORD_WIDTH); - CHECKL(1u << WORD_SHIFT == WORD_WIDTH); - CHECKL(AlignCheck(ARCH_ALIGN)); - return TRUE; } @@ -82,12 +78,11 @@ Bool SizeIsP2(Size size) } -/* SizeLog2 -- calculate the binary (base 2) log of a size */ +/* Logarithms */ -Shift SizeLog2(Size size) +Shift SizeFloorLog2(Size size) { Shift l = 0; - AVER(SizeIsP2(size)); while(size > 1) { ++l; @@ -97,6 +92,13 @@ Shift SizeLog2(Size size) return l; } +Shift SizeLog2(Size size) +{ + AVER(SizeIsP2(size)); + + return SizeFloorLog2(size); +} + /* AddrAdd -- add a size to an address */