home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-mips / sim.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  2.3 KB  |  83 lines

  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. #define nabi_no_regargs
  43.  
  44. #endif /* CONFIG_32BIT */
  45.  
  46. #ifdef CONFIG_64BIT
  47.  
  48. #define save_static_function(symbol)                    \
  49. __asm__ (                                \
  50.     ".text\n\t"                            \
  51.     ".globl\t" #symbol "\n\t"                    \
  52.     ".align\t2\n\t"                            \
  53.     ".type\t" #symbol ", @function\n\t"                \
  54.     ".ent\t" #symbol ", 0\n"                    \
  55.     #symbol":\n\t"                            \
  56.     ".frame\t$29, 0, $31\n\t"                    \
  57.     "sd\t$16,"__str(PT_R16)"($29)\t\t\t# save_static_function\n\t"    \
  58.     "sd\t$17,"__str(PT_R17)"($29)\n\t"                \
  59.     "sd\t$18,"__str(PT_R18)"($29)\n\t"                \
  60.     "sd\t$19,"__str(PT_R19)"($29)\n\t"                \
  61.     "sd\t$20,"__str(PT_R20)"($29)\n\t"                \
  62.     "sd\t$21,"__str(PT_R21)"($29)\n\t"                \
  63.     "sd\t$22,"__str(PT_R22)"($29)\n\t"                \
  64.     "sd\t$23,"__str(PT_R23)"($29)\n\t"                \
  65.     "sd\t$30,"__str(PT_R30)"($29)\n\t"                \
  66.     "j\t_" #symbol "\n\t"                        \
  67.     ".end\t" #symbol "\n\t"                        \
  68.     ".size\t" #symbol",. - " #symbol)
  69.  
  70. #define nabi_no_regargs                            \
  71.     unsigned long __dummy0,                        \
  72.     unsigned long __dummy1,                        \
  73.     unsigned long __dummy2,                        \
  74.     unsigned long __dummy3,                        \
  75.     unsigned long __dummy4,                        \
  76.     unsigned long __dummy5,                        \
  77.     unsigned long __dummy6,                        \
  78.     unsigned long __dummy7,
  79.  
  80. #endif /* CONFIG_64BIT */
  81.  
  82. #endif /* _ASM_SIM_H */
  83.