1#ifndef __ASM_SH_CPU_SH5_REGISTERS_H 2#define __ASM_SH_CPU_SH5_REGISTERS_H 3 4/* 5 * include/asm-sh/cpu-sh5/registers.h 6 * 7 * Copyright (C) 2000, 2001 Paolo Alberelli 8 * Copyright (C) 2004 Richard Curnow 9 * 10 * This file is subject to the terms and conditions of the GNU General Public 11 * License. See the file "COPYING" in the main directory of this archive 12 * for more details. 13 */ 14 15#ifdef __ASSEMBLY__ 16/* ===================================================================== 17** 18** Section 1: acts on assembly sources pre-processed by GPP ( <source.S>). 19** Assigns symbolic names to control & target registers. 20*/ 21 22/* 23 * Define some useful aliases for control registers. 24 */ 25#define SR cr0 26#define SSR cr1 27#define PSSR cr2 28 /* cr3 UNDEFINED */ 29#define INTEVT cr4 30#define EXPEVT cr5 31#define PEXPEVT cr6 32#define TRA cr7 33#define SPC cr8 34#define PSPC cr9 35#define RESVEC cr10 36#define VBR cr11 37 /* cr12 UNDEFINED */ 38#define TEA cr13 39 /* cr14-cr15 UNDEFINED */ 40#define DCR cr16 41#define KCR0 cr17 42#define KCR1 cr18 43 /* cr19-cr31 UNDEFINED */ 44 /* cr32-cr61 RESERVED */ 45#define CTC cr62 46#define USR cr63 47 48/* 49 * ABI dependent registers (general purpose set) 50 */ 51#define RET r2 52#define ARG1 r2 53#define ARG2 r3 54#define ARG3 r4 55#define ARG4 r5 56#define ARG5 r6 57#define ARG6 r7 58#define SP r15 59#define LINK r18 60#define ZERO r63 61 62/* 63 * Status register defines: used only by assembly sources (and 64 * syntax independednt) 65 */ 66#define SR_RESET_VAL 0x0000000050008000 67#define SR_HARMLESS 0x00000000500080f0 /* Write ignores for most */ 68#define SR_ENABLE_FPU 0xffffffffffff7fff /* AND with this */ 69 70#if defined (CONFIG_SH64_SR_WATCH) 71#define SR_ENABLE_MMU 0x0000000084000000 /* OR with this */ 72#else 73#define SR_ENABLE_MMU 0x0000000080000000 /* OR with this */ 74#endif 75 76#define SR_UNBLOCK_EXC 0xffffffffefffffff /* AND with this */ 77#define SR_BLOCK_EXC 0x0000000010000000 /* OR with this */ 78 79#else /* Not __ASSEMBLY__ syntax */ 80 81/* 82** Stringify reg. name 83*/ 84#define __str(x) #x 85 86/* Stringify control register names for use in inline assembly */ 87#define __SR __str(SR) 88#define __SSR __str(SSR) 89#define __PSSR __str(PSSR) 90#define __INTEVT __str(INTEVT) 91#define __EXPEVT __str(EXPEVT) 92#define __PEXPEVT __str(PEXPEVT) 93#define __TRA __str(TRA) 94#define __SPC __str(SPC) 95#define __PSPC __str(PSPC) 96#define __RESVEC __str(RESVEC) 97#define __VBR __str(VBR) 98#define __TEA __str(TEA) 99#define __DCR __str(DCR) 100#define __KCR0 __str(KCR0) 101#define __KCR1 __str(KCR1) 102#define __CTC __str(CTC) 103#define __USR __str(USR) 104 105#endif /* __ASSEMBLY__ */ 106#endif /* __ASM_SH_CPU_SH5_REGISTERS_H */ 107