Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
sim.h
Go to the documentation of this file.
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 */