Update copyright to LGPL on all files
[dyninst.git] / dyninstAPI / src / as-sparc.h
1 /*
2  * Copyright (c) 1996-2009 Barton P. Miller
3  * 
4  * We provide the Paradyn Parallel Performance Tools (below
5  * described as "Paradyn") on an AS IS basis, and do not warrant its
6  * validity or performance.  We reserve the right to update, modify,
7  * or discontinue this software at any time.  We shall have no
8  * obligation to supply such updates or modifications or any other
9  * form of support to you.
10  * 
11  * By your use of Paradyn, you understand and agree that we (or any
12  * other person or entity with proprietary rights in Paradyn) are
13  * under no obligation to provide either maintenance services,
14  * update services, notices of latent defects, or correction of
15  * defects for Paradyn.
16  * 
17  * This library is free software; you can redistribute it and/or
18  * modify it under the terms of the GNU Lesser General Public
19  * License as published by the Free Software Foundation; either
20  * version 2.1 of the License, or (at your option) any later version.
21  * 
22  * This library is distributed in the hope that it will be useful,
23  * but WITHOUT ANY WARRANTY; without even the implied warranty of
24  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
25  * Lesser General Public License for more details.
26  * 
27  * You should have received a copy of the GNU Lesser General Public
28  * License along with this library; if not, write to the Free Software
29  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
30  */
31
32 /* $Id: as-sparc.h,v 1.11 2004/03/23 01:12:02 eli Exp $ */
33
34 #ifndef AS_SPARC_H
35 #define AS_SPARC_H
36
37
38 /* "pseudo" instructions that are placed in the tramp code for the inst funcs
39  *   to patch up.   This must be invalid instructions (any instruction with
40  *   its top 10 bits as 0 is invalid (technically UNIMP).
41  */
42
43 /* place to put the ba,a insn to return to main code */
44 #define END_TRAMP       0x1
45
46 /* place to put call to inst primative */
47 #define CALL_PRIMITIVE  0x2
48
49 /* place to put arg to inst function */
50 #define PRIMITIVE_ARG   0x3
51
52 /* place to put the re-located instruction we replaced */
53 #define EMULATE_INSN    0x4
54
55 /* branch back instruction */
56 #define RETURN_INSN     0x7
57
58 /* branch to first local pre insn mini-tramp */
59 #define LOCAL_PRE_BRANCH        0x8
60
61 /* branch to first global pre insn mini-tramp */
62 #define GLOBAL_PRE_BRANCH       0xa
63
64 /* branch to first local post insn mini-tramp */
65 #define LOCAL_POST_BRANCH       0xb
66
67 /* branch to first global post insn mini-tramp */
68 #define GLOBAL_POST_BRANCH      0xc
69
70 /* branch back to the application if there is no instrumentation at 
71    this point */
72 #define SKIP_PRE_INSN           0xd
73 #define SKIP_POST_INSN          0xe
74
75 #define UPDATE_COST_INSN        0xf
76
77 #define RECURSIVE_GUARD_ON_PRE_INSN   0x10
78 #define RECURSIVE_GUARD_OFF_PRE_INSN  0x11
79 #define RECURSIVE_GUARD_ON_POST_INSN  0x12
80 #define RECURSIVE_GUARD_OFF_POST_INSN 0x13
81
82 #define CONSERVATIVE_TRAMP_READ_CONDITION 0x14
83 #define CONSERVATIVE_TRAMP_WRITE_CONDITION 0x15
84
85 #define MT_POS_CALC 0x20
86
87 #endif