Search
lxdream.org :: lxdream/src/x86dasm/symcat.h
lxdream 0.9.1
released Jun 29
Download Now
filename src/x86dasm/symcat.h
changeset 362:dc40e2064dc4
author nkeynes
date Sat Dec 27 02:59:35 2008 +0000 (15 years ago)
branchlxdream-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 */
.