root/arch/sh/include/cpu-sh5/cpu/registers.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


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

/* [<][>][^][v][top][bottom][index][help] */