Browse Source

[ARM] Allow gcc to optimise arm_add_memory a little more

For some reason, gcc was calculating meminfo.bank[meminfo.nr_banks]
repeatedly.  Use a pointer to it instead.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Russell King 18 years ago
parent
commit
05f96ef118
1 changed files with 7 additions and 4 deletions
  1. 7 4
      arch/arm/kernel/setup.c

+ 7 - 4
arch/arm/kernel/setup.c

@@ -441,16 +441,19 @@ __early_param("initrd=", early_initrd);
 
 
 static void __init arm_add_memory(unsigned long start, unsigned long size)
 static void __init arm_add_memory(unsigned long start, unsigned long size)
 {
 {
+	struct membank *bank;
+
 	/*
 	/*
 	 * Ensure that start/size are aligned to a page boundary.
 	 * Ensure that start/size are aligned to a page boundary.
 	 * Size is appropriately rounded down, start is rounded up.
 	 * Size is appropriately rounded down, start is rounded up.
 	 */
 	 */
 	size -= start & ~PAGE_MASK;
 	size -= start & ~PAGE_MASK;
 
 
-	meminfo.bank[meminfo.nr_banks].start = PAGE_ALIGN(start);
-	meminfo.bank[meminfo.nr_banks].size  = size & PAGE_MASK;
-	meminfo.bank[meminfo.nr_banks].node  = PHYS_TO_NID(start);
-	meminfo.nr_banks += 1;
+	bank = &meminfo.bank[meminfo.nr_banks++];
+
+	bank->start = PAGE_ALIGN(start);
+	bank->size  = size & PAGE_MASK;
+	bank->node  = PHYS_TO_NID(start);
 }
 }
 
 
 /*
 /*