linux/arch/powerpc/boot/ppc_asm.h
<<
>>
Prefs
   1#ifndef _PPC64_PPC_ASM_H
   2#define _PPC64_PPC_ASM_H
   3/*
   4 *
   5 * Definitions used by various bits of low-level assembly code on PowerPC.
   6 *
   7 * Copyright (C) 1995-1999 Gary Thomas, Paul Mackerras, Cort Dougan.
   8 *
   9 *  This program is free software; you can redistribute it and/or
  10 *  modify it under the terms of the GNU General Public License
  11 *  as published by the Free Software Foundation; either version
  12 *  2 of the License, or (at your option) any later version.
  13 */
  14
  15/* Condition Register Bit Fields */
  16
  17#define cr0     0
  18#define cr1     1
  19#define cr2     2
  20#define cr3     3
  21#define cr4     4
  22#define cr5     5
  23#define cr6     6
  24#define cr7     7
  25
  26
  27/* General Purpose Registers (GPRs) */
  28
  29#define r0      0
  30#define r1      1
  31#define r2      2
  32#define r3      3
  33#define r4      4
  34#define r5      5
  35#define r6      6
  36#define r7      7
  37#define r8      8
  38#define r9      9
  39#define r10     10
  40#define r11     11
  41#define r12     12
  42#define r13     13
  43#define r14     14
  44#define r15     15
  45#define r16     16
  46#define r17     17
  47#define r18     18
  48#define r19     19
  49#define r20     20
  50#define r21     21
  51#define r22     22
  52#define r23     23
  53#define r24     24
  54#define r25     25
  55#define r26     26
  56#define r27     27
  57#define r28     28
  58#define r29     29
  59#define r30     30
  60#define r31     31
  61
  62#define SPRN_TBRL       268
  63#define SPRN_TBRU       269
  64#define SPRN_HSRR0      0x13A   /* Hypervisor Save/Restore 0 */
  65#define SPRN_HSRR1      0x13B   /* Hypervisor Save/Restore 1 */
  66
  67#define MSR_LE          0x0000000000000001
  68
  69#define FIXUP_ENDIAN                                               \
  70        tdi   0,0,0x48;   /* Reverse endian of b . + 8          */ \
  71        b     $+44;       /* Skip trampoline if endian is good  */ \
  72        .long 0xa600607d; /* mfmsr r11                          */ \
  73        .long 0x01006b69; /* xori r11,r11,1                     */ \
  74        .long 0x00004039; /* li r10,0                           */ \
  75        .long 0x6401417d; /* mtmsrd r10,1                       */ \
  76        .long 0x05009f42; /* bcl 20,31,$+4                      */ \
  77        .long 0xa602487d; /* mflr r10                           */ \
  78        .long 0x14004a39; /* addi r10,r10,20                    */ \
  79        .long 0xa6035a7d; /* mtsrr0 r10                         */ \
  80        .long 0xa6037b7d; /* mtsrr1 r11                         */ \
  81        .long 0x2400004c  /* rfid                               */
  82
  83#ifdef CONFIG_PPC_8xx
  84#define MFTBL(dest)                     mftb dest
  85#define MFTBU(dest)                     mftbu dest
  86#else
  87#define MFTBL(dest)                     mfspr dest, SPRN_TBRL
  88#define MFTBU(dest)                     mfspr dest, SPRN_TBRU
  89#endif
  90
  91#endif /* _PPC64_PPC_ASM_H */
  92