summaryrefslogtreecommitdiffstats
path: root/src/kernel
diff options
context:
space:
mode:
authorPatrick Williams <iawillia@us.ibm.com>2010-05-27 15:00:39 -0500
committerPatrick Williams <iawillia@us.ibm.com>2010-05-27 15:00:39 -0500
commit2fcc3f503c42ab7c5f05276b075698d32bf98057 (patch)
tree881e6b8a89bb71c8c1d05a3d4f94c6fa6b6165a7 /src/kernel
parentb1d1ce12c8b7df4a15ea60997682f49734e2f80a (diff)
downloadtalos-hostboot-2fcc3f503c42ab7c5f05276b075698d32bf98057.tar.gz
talos-hostboot-2fcc3f503c42ab7c5f05276b075698d32bf98057.zip
Shrink start routine by a few instructions.
Diffstat (limited to 'src/kernel')
-rw-r--r--src/kernel/start.S16
1 files changed, 7 insertions, 9 deletions
diff --git a/src/kernel/start.S b/src/kernel/start.S
index 062760953..6906c2c33 100644
--- a/src/kernel/start.S
+++ b/src/kernel/start.S
@@ -22,17 +22,14 @@ pre_relocate:
;// Write address in r5
;// Read address in r1
li 5,0
- li 1, -1 ;// fill r1 with ffff..ffffff
- lis 3, 0x1
- subi 3,3,1 ;// fill r3 with 0000..00ffff
- xor 1,1,3 ;// mask off r1 ffff..ff0000
+ lis 1, -1 ;// fill r1 with ffff..ff0000
and 1,1,2 ;// and with pre_relocate's address from r2 to get start of
;// rom section.
;// Update LR to low address.
- and 6,2,3
- mtlr 6
+ clrldi 2,2,48 ;// Equiv to ~(0x0FFFF)
+ mtlr 2
;// Moving 1MB , so load r2 with (1MB / 8 bytes per word)
lis 2, 0x2
@@ -51,9 +48,10 @@ relocate_loop:
;// Now that we've relocated, erase exception prefix.
mfmsr 11
- li 10, 0x40 ;// bit 6 is MSR_EP
- not 10,10
- and 11,11,10
+
+ rldicl 11,11,57,1 ;// Erase bit 6 ( equiv to r11 & ~(0x40))
+ rotldi 11,11,7
+
mtmsr 11
;// Jump to low address.
OpenPOWER on IntegriCloud