summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcin Bukat <marcin.bukat@gmail.com>2014-01-03 08:45:57 +0100
committerMarcin Bukat <marcin.bukat@gmail.com>2014-01-03 09:00:11 +0100
commit062801e3ed560418264a0fc7954a2008102a4713 (patch)
tree4e65ed20244a6901aa6c14234ab0e19ac1ffd4d8
parent9dbdec14f080456ff3eaeb619f321e4e34aa8a0e (diff)
downloadrockbox-062801e3ed560418264a0fc7954a2008102a4713.tar.gz
rockbox-062801e3ed560418264a0fc7954a2008102a4713.zip
atj213x: obtain PC value in more elegant way
Change-Id: I2e6ffb3b58ddda0ea62ce5d4cd71ac5475b34495
-rw-r--r--utils/atj2137/adfuload/test_binary/backlight_c/crt0.S13
1 files changed, 6 insertions, 7 deletions
diff --git a/utils/atj2137/adfuload/test_binary/backlight_c/crt0.S b/utils/atj2137/adfuload/test_binary/backlight_c/crt0.S
index e3817fcfb7..e03b8b5439 100644
--- a/utils/atj2137/adfuload/test_binary/backlight_c/crt0.S
+++ b/utils/atj2137/adfuload/test_binary/backlight_c/crt0.S
@@ -11,9 +11,13 @@
11 11
12start: 12start:
13 di # disable interrupts 13 di # disable interrupts
14 bal get_pc # v0 = PC + 8 actually 14 bltzal zero, load_addr # ra = PC + 8, branch not taken
15 nop 15 nop
16 addiu v0, -12 # calc real load address 16
17load_addr:
18 addiu v0, ra, -12 # calc real load address
19 # account for branch delay slot
20 # and very first 'di' instruction
17 la t0, relocstart 21 la t0, relocstart
18 la t1, relocend 22 la t1, relocend
19 beq t0, v0, entry_point # no relocation needed 23 beq t0, v0, entry_point # no relocation needed
@@ -31,11 +35,6 @@ entry_point_jump:
31 jr t0 35 jr t0
32 nop 36 nop
33 37
34get_pc:
35 move v0, ra
36 jr ra
37 nop
38
39entry_point: 38entry_point:
40 # setup caches 39 # setup caches
41 # 4-way, 256 sets, 16 bytes cacheline I/D 40 # 4-way, 256 sets, 16 bytes cacheline I/D