root/arch/mips/include/asm/sim.h

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

INCLUDED FROM


   1 /*
   2  * This file is subject to the terms and conditions of the GNU General Public
   3  * License.  See the file "COPYING" in the main directory of this archive
   4  * for more details.
   5  *
   6  * Copyright (C) 1999, 2000, 2003 Ralf Baechle
   7  * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
   8  */
   9 #ifndef _ASM_SIM_H
  10 #define _ASM_SIM_H
  11 
  12 
  13 #include <asm/asm-offsets.h>
  14 
  15 #define __str2(x) #x
  16 #define __str(x) __str2(x)
  17 
  18 #ifdef CONFIG_32BIT
  19 
  20 #define save_static_function(symbol)                                    \
  21 __asm__(                                                                \
  22         ".text\n\t"                                                     \
  23         ".globl\t__" #symbol "\n\t"                                     \
  24         ".align\t2\n\t"                                                 \
  25         ".type\t__" #symbol ", @function\n\t"                           \
  26         ".ent\t__" #symbol ", 0\n__"                                    \
  27         #symbol":\n\t"                                                  \
  28         ".frame\t$29, 0, $31\n\t"                                       \
  29         "sw\t$16,"__str(PT_R16)"($29)\t\t\t# save_static_function\n\t"  \
  30         "sw\t$17,"__str(PT_R17)"($29)\n\t"                              \
  31         "sw\t$18,"__str(PT_R18)"($29)\n\t"                              \
  32         "sw\t$19,"__str(PT_R19)"($29)\n\t"                              \
  33         "sw\t$20,"__str(PT_R20)"($29)\n\t"                              \
  34         "sw\t$21,"__str(PT_R21)"($29)\n\t"                              \
  35         "sw\t$22,"__str(PT_R22)"($29)\n\t"                              \
  36         "sw\t$23,"__str(PT_R23)"($29)\n\t"                              \
  37         "sw\t$30,"__str(PT_R30)"($29)\n\t"                              \
  38         "j\t" #symbol "\n\t"                                            \
  39         ".end\t__" #symbol "\n\t"                                       \
  40         ".size\t__" #symbol",. - __" #symbol)
  41 
  42 #endif /* CONFIG_32BIT */
  43 
  44 #ifdef CONFIG_64BIT
  45 
  46 #define save_static_function(symbol)                                    \
  47 __asm__(                                                                \
  48         ".text\n\t"                                                     \
  49         ".globl\t__" #symbol "\n\t"                                     \
  50         ".align\t2\n\t"                                                 \
  51         ".type\t__" #symbol ", @function\n\t"                           \
  52         ".ent\t__" #symbol ", 0\n__"                                    \
  53         #symbol":\n\t"                                                  \
  54         ".frame\t$29, 0, $31\n\t"                                       \
  55         "sd\t$16,"__str(PT_R16)"($29)\t\t\t# save_static_function\n\t"  \
  56         "sd\t$17,"__str(PT_R17)"($29)\n\t"                              \
  57         "sd\t$18,"__str(PT_R18)"($29)\n\t"                              \
  58         "sd\t$19,"__str(PT_R19)"($29)\n\t"                              \
  59         "sd\t$20,"__str(PT_R20)"($29)\n\t"                              \
  60         "sd\t$21,"__str(PT_R21)"($29)\n\t"                              \
  61         "sd\t$22,"__str(PT_R22)"($29)\n\t"                              \
  62         "sd\t$23,"__str(PT_R23)"($29)\n\t"                              \
  63         "sd\t$30,"__str(PT_R30)"($29)\n\t"                              \
  64         "j\t" #symbol "\n\t"                                            \
  65         ".end\t__" #symbol "\n\t"                                       \
  66         ".size\t__" #symbol",. - __" #symbol)
  67 
  68 #endif /* CONFIG_64BIT */
  69 
  70 #endif /* _ASM_SIM_H */

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