gallium: fix alignment parameter passed to u_mmAllocMem()
authorBrian Paul <brian.paul@tungstengraphics.com>
Wed, 29 Oct 2008 20:55:02 +0000 (14:55 -0600)
committerBrian Paul <brian.paul@tungstengraphics.com>
Wed, 29 Oct 2008 20:55:57 +0000 (14:55 -0600)
Was 32, now 5.  The param is expressed as a power of two exponent.
The net effect is that the alignment was a no-op on X86 but on PPC we
always got the same memory address everytime rtasm_exec_malloc() was called.

src/gallium/auxiliary/rtasm/rtasm_execmem.c

index 19087589a873695fc65e130b34bd3be1d26abdd9..bb3b1a4c25f768773bbbd7bd3b59fed1bc18ff65 100644 (file)
@@ -82,8 +82,8 @@ rtasm_exec_malloc(size_t size)
    init_heap();
 
    if (exec_heap) {
-      size = (size + 31) & ~31;
-      block = mmAllocMem( exec_heap, size, 32, 0 );
+      size = (size + 31) & ~31;  /* next multiple of 32 bytes */
+      block = u_mmAllocMem( exec_heap, size, 5, 0 ); /* 5 -> 32-byte alignment */
    }
 
    if (block)