filename | src/x86dasm/symcat.h |
changeset | 362:dc40e2064dc4 |
author | nkeynes |
date | Sat Dec 27 02:59:35 2008 +0000 (15 years ago) |
branch | lxdream-mem |
permissions | -rw-r--r-- |
last change | Replace fpscr_mask/fpscr flags in xlat_cache_block with a single xlat_sh4_mode, which tracks the field of the same name in sh4r - actually a little faster this way. Now depends on SR.MD, FPSCR.PR and FPSCR.SZ (although it doesn't benefit from the SR flag yet). Also fixed the failure to check the flags in the common case (code address returned by previous block) which took away the performance benefits, but oh well. |
view | annotate | diff | log | raw |
1 /* Symbol concatenation utilities.
3 Copyright (C) 1998, 2000 Free Software Foundation, Inc.
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License along
16 with this program; if not, write to the Free Software Foundation, Inc.,
17 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
19 #ifndef SYM_CAT_H
20 #define SYM_CAT_H
22 #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
23 #define CONCAT2(a,b) a##b
24 #define CONCAT3(a,b,c) a##b##c
25 #define CONCAT4(a,b,c,d) a##b##c##d
26 #define STRINGX(s) #s
27 #else
28 /* Note one should never pass extra whitespace to the CONCATn macros,
29 e.g. CONCAT2(foo, bar) because traditonal C will keep the space between
30 the two labels instead of concatenating them. Instead, make sure to
31 write CONCAT2(foo,bar). */
32 #define CONCAT2(a,b) a/**/b
33 #define CONCAT3(a,b,c) a/**/b/**/c
34 #define CONCAT4(a,b,c,d) a/**/b/**/c/**/d
35 #define STRINGX(s) "s"
36 #endif
38 #define XCONCAT2(a,b) CONCAT2(a,b)
39 #define XCONCAT3(a,b,c) CONCAT3(a,b,c)
40 #define XCONCAT4(a,b,c,d) CONCAT4(a,b,c,d)
42 /* Note the layer of indirection here is typically used to allow
43 stringification of the expansion of macros. I.e. "#define foo
44 bar", "XSTRING(foo)", to yield "bar". Be aware that this only
45 works for __STDC__, not for traditional C which will still resolve
46 to "foo". */
47 #define XSTRING(s) STRINGX(s)
49 #endif /* SYM_CAT_H */
.