aboutsummaryrefslogtreecommitdiffstats
path: root/os/ports/GCC/PPC/SPC56ELxx
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2013-02-06 10:49:25 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2013-02-06 10:49:25 +0000
commit8311f8dc8ec2bdc968fe44ec7371310532880e7f (patch)
tree31267e1ab77eb5f3d12731a8b8656b9e8e678b90 /os/ports/GCC/PPC/SPC56ELxx
parent46cc8ccb2b049dda17dd9589395abbebc5934f67 (diff)
downloadChibiOS-8311f8dc8ec2bdc968fe44ec7371310532880e7f.tar.gz
ChibiOS-8311f8dc8ec2bdc968fe44ec7371310532880e7f.tar.bz2
ChibiOS-8311f8dc8ec2bdc968fe44ec7371310532880e7f.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@5120 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/ports/GCC/PPC/SPC56ELxx')
-rw-r--r--os/ports/GCC/PPC/SPC56ELxx/bam.s32
-rw-r--r--os/ports/GCC/PPC/SPC56ELxx/core.s34
2 files changed, 34 insertions, 32 deletions
diff --git a/os/ports/GCC/PPC/SPC56ELxx/bam.s b/os/ports/GCC/PPC/SPC56ELxx/bam.s
index 9bcb9acf4..bccf5d0c5 100644
--- a/os/ports/GCC/PPC/SPC56ELxx/bam.s
+++ b/os/ports/GCC/PPC/SPC56ELxx/bam.s
@@ -83,38 +83,6 @@
b .cleareccloop
.cleareccend:
- /* Special function registers clearing, required in order to avoid
- possible problems with lockstep mode.*/
- mtcrf 0xFF, %r31
- mtspr 8, %r31 /* LR */
- mtspr 9, %r31 /* CTR */
-
- mtspr 272, %r31 /* SPRG1-7 */
- mtspr 273, %r31
- mtspr 274, %r31
- mtspr 275, %r31
- mtspr 276, %r31
- mtspr 277, %r31
- mtspr 278, %r31
- mtspr 279, %r31
- mtspr 604, %r31 /* SPRG8-9 */
- mtspr 605, %r31
- mtspr 26, %r31 /* SRR0-1 */
- mtspr 27, %r31
- mtspr 58, %r31 /* CSRR0-1 */
- mtspr 59, %r31
- mtspr 61, %r31 /* DEAR */
- mtspr 22, %r31 /* DEC */
- mtspr 54, %r31 /* DECAR */
- mtspr 285, %r31 /* TBU */
- mtspr 284, %r31 /* TBL */
- mtspr 570, %r31 /* MCSRR0 */
- mtspr 571, %r31 /* MCSRR1 */
- mtspr 256, %r31 /* USPRG0 */
- mtspr 562, %r31 /* DBCNT */
- mtspr 318, %r31 /* DVC1-2 */
- mtspr 319, %r31
-
/* HW configuration.*/
bl _coreinit
diff --git a/os/ports/GCC/PPC/SPC56ELxx/core.s b/os/ports/GCC/PPC/SPC56ELxx/core.s
index 3d1bfb021..4d24e7ff9 100644
--- a/os/ports/GCC/PPC/SPC56ELxx/core.s
+++ b/os/ports/GCC/PPC/SPC56ELxx/core.s
@@ -197,6 +197,40 @@ _unhandled_exception:
.globl _coreinit
.type _coreinit, @function
_coreinit:
+ /*
+ * Special function registers clearing, required in order to avoid
+ * possible problems with lockstep mode.
+ */
+ xor %r31, %r31, %r31
+ mtcrf 0xFF, %r31
+ mtspr 8, %r31 /* LR */
+ mtspr 9, %r31 /* CTR */
+ mtspr 22, %r31 /* DEC */
+ mtspr 26, %r31 /* SRR0-1 */
+ mtspr 27, %r31
+ mtspr 54, %r31 /* DECAR */
+ mtspr 58, %r31 /* CSRR0-1 */
+ mtspr 59, %r31
+ mtspr 61, %r31 /* DEAR */
+ mtspr 256, %r31 /* USPRG0 */
+ mtspr 272, %r31 /* SPRG1-7 */
+ mtspr 273, %r31
+ mtspr 274, %r31
+ mtspr 275, %r31
+ mtspr 276, %r31
+ mtspr 277, %r31
+ mtspr 278, %r31
+ mtspr 279, %r31
+ mtspr 285, %r31 /* TBU */
+ mtspr 284, %r31 /* TBL */
+ mtspr 318, %r31 /* DVC1-2 */
+ mtspr 319, %r31
+ mtspr 562, %r31 /* DBCNT */
+ mtspr 570, %r31 /* MCSRR0 */
+ mtspr 571, %r31 /* MCSRR1 */
+ mtspr 604, %r31 /* SPRG8-9 */
+ mtspr 605, %r31
+
/* MSR initialization.*/
lis %r3, MSR_DEFAULT@h
ori %r3, %r3, MSR_DEFAULT@l