aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ld/ChangeLog7
-rw-r--r--ld/emultempl/spu_ovl.S22
-rw-r--r--ld/emultempl/spu_ovl.obin1440 -> 1476 bytes
3 files changed, 23 insertions, 6 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index eab2dc9..6e857be 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,5 +1,12 @@
2007-02-13 Alan Modra <amodra@bigpond.net.au>
+ * emultempl/spu_ovl.S (__ovly_return, __ovly_load): Set sym size.
+ (__ovly_load_event): Define.
+ (size): Rename to osize.
+ * emultempl/spu_ovl.o: Regenerate.
+
+2007-02-13 Alan Modra <amodra@bigpond.net.au>
+
* emulparams/elf64ppc.sh (OTHER_READWRITE_SECTIONS): Add ".branch_lt".
* emultempl/ppc64elf.em (ppc_add_stub_section): Create without
SEC_RELOC flag set.
diff --git a/ld/emultempl/spu_ovl.S b/ld/emultempl/spu_ovl.S
index 75d0470..3af4fd8 100644
--- a/ld/emultempl/spu_ovl.S
+++ b/ld/emultempl/spu_ovl.S
@@ -62,7 +62,7 @@
#define vma $6
#define map $7
-#define size $7
+#define osize $7
#define cmp2 $7
#define ea64 $8
@@ -101,6 +101,7 @@ __ovly_return:
shlqbyi $78, $lr, 4
shlqbyi $79, $lr, 8
biz $78, $79
+ .size __ovly_return, . - __ovly_return
/**
* __ovly_load - copy an overlay partion to local store.
@@ -194,6 +195,13 @@ __ovly_backchain_loop:
ceq cmp, $78, cur
brnz cmp, __ovly_load_restore
+/* Marker for profiling code. If we get here, we are about to load
+ * a new overlay.
+ */
+ .global __ovly_load_event
+ .type __ovly_load_event, @function
+__ovly_load_event:
+
/* Set _ovly_buf_table[buf].mapped = $78. */
cwx genwi, tab, off
shufb map, $78, map, genwi
@@ -204,7 +212,7 @@ __ovly_backchain_loop:
* loader, and indicating the value for SPU executable image start.
*/
lqd cgshuf, (__cg_pattern-__ovly_return+4)(retval)
- rotqbyi size, vma, 4
+ rotqbyi osize, vma, 4
rotqbyi sz, vma, 8
lqa ea64, _EAR_
@@ -219,8 +227,8 @@ __ovly_xfer_loop:
/* Setup DMA parameters, then issue DMA request. */
rotqbyi ealo, add64, 4
ila maxsize, MFC_MAX_DMA_SIZE
- cgt cmp, size, maxsize
- selb sz, size, maxsize, cmp
+ cgt cmp, osize, maxsize
+ selb sz, osize, maxsize, cmp
ila tagid, MFC_TAG_ID
wrch $MFC_LSA, vma
wrch $MFC_EAH, ea64
@@ -232,8 +240,8 @@ __ovly_xfer_loop:
/* Increment vma, decrement size, branch back as needed. */
a vma, vma, sz
- sf size, sz, size
- brnz size, __ovly_xfer_loop
+ sf osize, sz, osize
+ brnz osize, __ovly_xfer_loop
/* Save app's tagmask, wait for DMA complete, restore mask. */
rdch oldmask, $MFC_RdTagMask
@@ -273,3 +281,5 @@ __ovly_irq_restore:
__ovly_load_ret:
/* Branch to target address. */
bi $79
+
+ .size __ovly_load, . - __ovly_load
diff --git a/ld/emultempl/spu_ovl.o b/ld/emultempl/spu_ovl.o
index 1d48c00..656e4d3 100644
--- a/ld/emultempl/spu_ovl.o
+++ b/ld/emultempl/spu_ovl.o
Binary files differ