Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  entry.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */

#ifndef __ASM_CSKY_ENTRY_H
#define __ASM_CSKY_ENTRY_H

#include <asm/setup.h>
#include <abi/regdef.h>

#define LSAVE_PC 8
#define LSAVE_PSR 12
#define LSAVE_A0 24
#define LSAVE_A1 28
#define LSAVE_A2 32
#define LSAVE_A3 36
#define LSAVE_A4 40
#define LSAVE_A5 44

#define usp ss1

.macro USPTOKSP
 mtcr sp, usp
 mfcr sp, ss0
.endm

.macro KSPTOUSP
 mtcr sp, ss0
 mfcr sp, usp
.endm

.macro SAVE_ALL epc_inc
 mtcr    r13, ss2
 mfcr    r13, epsr
 btsti   r13, 31
 bt      1f
 USPTOKSP
1:
 subi    sp, 32
 subi    sp, 32
 subi    sp, 16
 stw     r13, (sp, 12)

 stw     lr, (sp, 4)

 mfcr lr, epc
 movi r13, \epc_inc
 add lr, r13
 stw     lr, (sp, 8)

 mov lr, sp
 addi lr, 32
 addi lr, 32
 addi lr, 16
 bt 2f
 mfcr lr, ss1
2:
 stw     lr, (sp, 16)

 stw     a0, (sp, 20)
 stw     a0, (sp, 24)
 stw     a1, (sp, 28)
 stw     a2, (sp, 32)
 stw     a3, (sp, 36)

 addi sp, 32
 addi sp, 8
 mfcr    r13, ss2
 stw r6, (sp)
 stw r7, (sp, 4)
 stw r8, (sp, 8)
 stw r9, (sp, 12)
 stw r10, (sp, 16)
 stw r11, (sp, 20)
 stw r12, (sp, 24)
 stw r13, (sp, 28)
 stw r14, (sp, 32)
 stw r1, (sp, 36)
 subi sp, 32
 subi sp, 8
.endm

.macro RESTORE_ALL
 ldw lr, (sp, 4)
 ldw     a0, (sp, 8)
 mtcr    a0, epc
 ldw     a0, (sp, 12)
 mtcr    a0, epsr
 btsti   a0, 31
 bt      1f
 ldw     a0, (sp, 16)
 mtcr a0, ss1
1:
 ldw     a0, (sp, 24)
 ldw     a1, (sp, 28)
 ldw     a2, (sp, 32)
 ldw     a3, (sp, 36)

 addi sp, 32
 addi sp, 8
 ldw r6, (sp)
 ldw r7, (sp, 4)
 ldw r8, (sp, 8)
 ldw r9, (sp, 12)
 ldw r10, (sp, 16)
 ldw r11, (sp, 20)
 ldw r12, (sp, 24)
 ldw r13, (sp, 28)
 ldw r14, (sp, 32)
 ldw r1, (sp, 36)
 addi sp, 32
 addi sp, 8

 bt      2f
 KSPTOUSP
2:
 rte
.endm

.macro SAVE_SWITCH_STACK
 subi    sp, 32
 stm     r8-r15, (sp)
.endm

.macro RESTORE_SWITCH_STACK
 ldm     r8-r15, (sp)
 addi    sp, 32
.endm

/* MMU registers operators. */
.macro RD_MIR rx
 cprcr   \rx, cpcr0
.endm

.macro RD_MEH rx
 cprcr   \rx, cpcr4
.endm

.macro RD_MCIR rx
 cprcr   \rx, cpcr8
.endm

.macro RD_PGDR  rx
 cprcr   \rx, cpcr29
.endm

.macro WR_MEH rx
 cpwcr   \rx, cpcr4
.endm

.macro WR_MCIR rx
 cpwcr   \rx, cpcr8
.endm

.macro SETUP_MMU
 /* Init psr and enable ee */
 lrw r6, DEFAULT_PSR_VALUE
 mtcr    r6, psr
 psrset  ee

 /* Select MMU as co-processor */
 cpseti cp15

 /*
 * cpcr30 format:
 * 31 - 29 | 28 - 4 | 3 | 2 | 1 | 0
 *   BA     Reserved  C   D   V
 */

 cprcr r6, cpcr30
 lsri r6, 29
 lsli r6, 29
 addi r6, 0xe
 cpwcr r6, cpcr30

 movi r6, 0
 cpwcr r6, cpcr31
.endm
#endif /* __ASM_CSKY_ENTRY_H */

Messung V0.5
C=97 H=-100 G=98

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge