summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjasone <jasone@FreeBSD.org>2006-07-27 19:09:32 +0000
committerjasone <jasone@FreeBSD.org>2006-07-27 19:09:32 +0000
commitc606303b8ced9d8eb28b8bebcff2036dc76d143a (patch)
tree11f1ac3e3ac4a00d4bfc1d4877cc4a337127f0cc
parent70bf44eb7caea5f0ffbf47cfe811926c04d5e2b8 (diff)
downloadFreeBSD-src-c606303b8ced9d8eb28b8bebcff2036dc76d143a.zip
FreeBSD-src-c606303b8ced9d8eb28b8bebcff2036dc76d143a.tar.gz
Conditionally expand the size_invs lookup table in arena_run_reg_dalloc()
so that architectures with a quantum of 8 (rather than 16) work. Restore arm's quantum to 8. Submitted by: jmg
-rw-r--r--lib/libc/stdlib/malloc.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/lib/libc/stdlib/malloc.c b/lib/libc/stdlib/malloc.c
index 3eae4ec..df543ec 100644
--- a/lib/libc/stdlib/malloc.c
+++ b/lib/libc/stdlib/malloc.c
@@ -270,7 +270,7 @@ __FBSDID("$FreeBSD$");
# define SIZEOF_PTR 8
#endif
#ifdef __arm__
-# define QUANTUM_2POW_MIN 4
+# define QUANTUM_2POW_MIN 3
# define SIZEOF_PTR 4
# define USE_BRK
# define NO_TLS
@@ -1581,6 +1581,17 @@ arena_run_reg_dalloc(arena_run_t *run, arena_bin_t *bin, void *ptr, size_t size)
SIZE_INV(20),SIZE_INV(21), SIZE_INV(22), SIZE_INV(23),
SIZE_INV(24),SIZE_INV(25), SIZE_INV(26), SIZE_INV(27),
SIZE_INV(28),SIZE_INV(29), SIZE_INV(30), SIZE_INV(31)
+#if (QUANTUM_2POW_MIN < 4)
+ ,
+ SIZE_INV(32), SIZE_INV(33), SIZE_INV(34), SIZE_INV(35),
+ SIZE_INV(36), SIZE_INV(37), SIZE_INV(38), SIZE_INV(39),
+ SIZE_INV(40), SIZE_INV(41), SIZE_INV(42), SIZE_INV(43),
+ SIZE_INV(44), SIZE_INV(45), SIZE_INV(46), SIZE_INV(47),
+ SIZE_INV(48), SIZE_INV(49), SIZE_INV(50), SIZE_INV(51),
+ SIZE_INV(52), SIZE_INV(53), SIZE_INV(54), SIZE_INV(55),
+ SIZE_INV(56), SIZE_INV(57), SIZE_INV(58), SIZE_INV(59),
+ SIZE_INV(60), SIZE_INV(61), SIZE_INV(62), SIZE_INV(63)
+#endif
};
unsigned diff, regind, elm, bit;
OpenPOWER on IntegriCloud