Skip to contentSkip to conversation

cpu/mips/cache.S: Introduce NESTED(), LEAF() and END()

U-Boot-Users Shinya Kuribayashi 2 participants 3 messages Mar 17, 2008 – Mar 18, 2008

lore
Share & tools
lore
#0 lore raw

These macros have been widely used by MIPS assemblers, and of course make codes more readable and easily maintainable.

---

 cpu/mips/cache.S |   25 +++++++------------------
 1 files changed, 7 insertions(+), 18 deletions(-)
cpu/mips/cache.S +7 -18
index 9d793bf..66fe47a 100644
@@ -24,6 +24,7 @@
 
 #include <config.h>
 #include <version.h>
+#include <asm/asm.h>
 #include <asm/regdef.h>
 #include <asm/mipsregs.h>
 #include <asm/addrspace.h>
@@ -119,10 +120,7 @@
 * RETURNS: N/A
 *
 */
-	.globl	mips_cache_reset
-	.ent	mips_cache_reset
-mips_cache_reset:
-
+NESTED(mips_cache_reset, 0, ra)
 	li	t2, CFG_ICACHE_SIZE
 	li	t3, CFG_DCACHE_SIZE
 	li	t4, CFG_CACHELINE_SIZE
@@ -198,8 +196,7 @@ mips_cache_reset:
 	icacheop(a0,a1,a2,a3,Index_Store_Tag_D)
 
 	j	ra
-
-	.end	mips_cache_reset
+	END(mips_cache_reset)
 
 /*******************************************************************************
 *
@@ -208,15 +205,11 @@ mips_cache_reset:
 * RETURNS: 0 - cache disabled; 1 - cache enabled
 *
 */
-	.globl	dcache_status
-	.ent	dcache_status
-dcache_status:
-
+LEAF(dcache_status)
 	mfc0	v0, CP0_CONFIG
 	andi	v0, v0, 1
 	j	ra
-
-	.end	dcache_status
+	END(dcache_status)
 
 /*******************************************************************************
 *
@@ -225,15 +218,11 @@ dcache_status:
 * RETURNS: N/A
 *
 */
-	.globl	dcache_disable
-	.ent	dcache_disable
-dcache_disable:
-
+LEAF(dcache_disable)
 	mfc0	t0, CP0_CONFIG
 	li	t1, -8
 	and	t0, t0, t1
 	ori	t0, t0, CONF_CM_UNCACHED
 	mtc0	t0, CP0_CONFIG
 	j	ra
-
-	.end	dcache_disable
+	END(dcache_disable)
#1 lore raw
Quoted 2 lines · In message <[email protected]> you wrote:

These macros have been widely used by MIPS assemblers, and of course make codes more readable and easily maintainable.

I have to admit that for me the resulting code is NOT better readable. Indead of just reading a single source file, I now have to look up a header file for a number of macros.

Speaking for myself, I don't see an improvement.

Best regards,

Wolfgang Denk

Signature · 5 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Cigarette, n.: A fire at one end, a fool at the other, and a  bit  of
tobacco in between.
#2 lore raw
Quoted 7 lines · Wolfgang Denk
Quoted 2 lines · In message <[email protected]> you wrote:

These macros have been widely used by MIPS assemblers, and of course make codes more readable and easily maintainable.

I have to admit that for me the resulting code is NOT better readable. Indead of just reading a single source file, I now have to look up a header file for a number of macros.

You need to look up a header file, true. But these macros are worth doing so.

Quoted 1 line

Speaking for myself, I don't see an improvement.

as can be seen from macro definitions, they specify some more information ecplicitly; alignment, type of symbols, stack frame info which helps generating debug info.

These macros or their variants have been used in SGI or Algorithmics early MIPS programming, PMON, YAMON and of course Linux. They are good helper for MIPS assemblers, so I hope get them in.

Shinya