summaryrefslogtreecommitdiffstats
path: root/cpukit/score/cpu/epiphany/epiphany-context-switch.S
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--cpukit/score/cpu/epiphany/epiphany-context-switch.S215
1 files changed, 0 insertions, 215 deletions
diff --git a/cpukit/score/cpu/epiphany/epiphany-context-switch.S b/cpukit/score/cpu/epiphany/epiphany-context-switch.S
deleted file mode 100644
index 8c530651c3..0000000000
--- a/cpukit/score/cpu/epiphany/epiphany-context-switch.S
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * Epiphany CPU Dependent Source
- *
- * Copyright (c) 2015 University of York.
- * Hesham ALMatary <hmka501@york.ac.uk>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <rtems/asm.h>
-
-.section .text,"ax"
-.align 4
-
-PUBLIC(_CPU_Context_switch)
-PUBLIC(_CPU_Context_restore)
-PUBLIC(_CPU_Context_restore_fp)
-PUBLIC(_CPU_Context_save_fp)
-
-SYM(_CPU_Context_switch):
- /* Disable interrupts and store all registers */
- gid
-
- str r0, [r0]
- str r1, [r0,1]
- str r2, [r0,2]
- str r3, [r0,3]
- str r4, [r0,4]
- str r5, [r0,5]
- str r6, [r0,6]
- str r7, [r0,7]
- str r8, [r0,8]
- str r9, [r0,9]
- str r10, [r0,10]
- str fp, [r0,11]
- str r12, [r0,12]
- str sp, [r0,13]
- str lr, [r0,14]
- str r15, [r0,15]
- str r16, [r0,16]
- str r17, [r0,17]
- str r18, [r0,18]
- str r19, [r0,19]
- str r20, [r0,20]
- str r21, [r0,21]
- str r22, [r0,22]
- str r23, [r0,23]
- str r24, [r0,24]
- str r25, [r0,25]
- str r26, [r0,26]
- str r27, [r0,27]
- str r28, [r0,28]
- str r29, [r0,29]
- str r30, [r0,30]
- str r31, [r0,31]
- str r32, [r0,32]
- str r33, [r0,33]
- str r34, [r0,34]
- str r35, [r0,35]
- str r36, [r0,36]
- str r37, [r0,37]
- str r38, [r0,38]
- str r39, [r0,39]
- str r40, [r0,40]
- str r41, [r0,41]
- str r42, [r0,42]
- str r43, [r0,43]
- str r44, [r0,44]
- str r45, [r0,45]
- str r46, [r0,46]
- str r47, [r0,47]
- str r48, [r0,48]
- str r49, [r0,49]
- str r50, [r0,50]
- str r51, [r0,51]
- str r52, [r0,52]
- str r53, [r0,53]
- str r54, [r0,54]
- str r55, [r0,55]
- str r56, [r0,56]
- str r57, [r0,57]
- str r58, [r0,58]
- str r59, [r0,59]
- str r60, [r0,60]
- str r61, [r0,61]
- str r62, [r0,62]
- str r63, [r0,63]
-
- /* Store status register */
- movfs r27, status
- str r27, [r0,64]
-
- /* Store config register */
- movfs r27, config
- str r27, [r0,65]
-
- /* Store interrupt return address register */
- movfs r27, iret
- str r27, [r0,66]
-
-.Lrestore:
-
- /* r1 contains buffer address, skip it */
- ldr r2, [r1,2]
- ldr r3, [r1,3]
- ldr r4, [r1,4]
- ldr r5, [r1,5]
- ldr r6, [r1,6]
- ldr r7, [r1,7]
- ldr r8, [r1,8]
- ldr r9, [r1,9]
- ldr r10, [r1,10]
- ldr fp, [r1,11]
- ldr r12, [r1,12]
- ldr sp, [r1,13]
- ldr lr, [r1,14]
- ldr r15, [r1,15]
- ldr r16, [r1,16]
- ldr r17, [r1,17]
- ldr r18, [r1,18]
- ldr r19, [r1,19]
- ldr r20, [r1,20]
- ldr r21, [r1,21]
- ldr r22, [r1,22]
- ldr r23, [r1,23]
- ldr r24, [r1,24]
- ldr r25, [r1,25]
- ldr r26, [r1,26]
- ldr r27, [r1,27]
- ldr r32, [r1,32]
- ldr r33, [r1,33]
- ldr r34, [r1,34]
- ldr r35, [r1,35]
- ldr r36, [r1,36]
- ldr r37, [r1,37]
- ldr r38, [r1,38]
- ldr r39, [r1,39]
- ldr r40, [r1,40]
- ldr r41, [r1,41]
- ldr r42, [r1,42]
- ldr r43, [r1,43]
- ldr r44, [r1,44]
- ldr r45, [r1,45]
- ldr r46, [r1,46]
- ldr r47, [r1,47]
- ldr r48, [r1,48]
- ldr r49, [r1,49]
- ldr r50, [r1,50]
- ldr r51, [r1,51]
- ldr r52, [r1,52]
- ldr r53, [r1,53]
- ldr r54, [r1,54]
- ldr r55, [r1,55]
- ldr r56, [r1,56]
- ldr r57, [r1,57]
- ldr r58, [r1,58]
- ldr r59, [r1,59]
- ldr r60, [r1,60]
- ldr r61, [r1,61]
- ldr r62, [r1,62]
- ldr r63, [r1,63]
-
- /* Load status register */
- ldr r0, [r1,64]
- movts status, r0
-
- /* Load config register */
- ldr r0, [r1,65]
- movts config, r0
-
- /* Load interrupt return address register */
- ldr r0,[r1,66]
- movts iret, r0
-
- ldr r0,[r1]
- ldr r1,[r1,1]
-
- /* Enable interrupts and return */
- gie
- jr lr
-
-SYM(_CPU_Context_restore):
- mov r1, r0
- b .Lrestore
- nop
-
-/* No FP support for Epiphany yet */
-SYM(_CPU_Context_restore_fp):
- nop
-
- SYM(_CPU_Context_save_fp):
- nop