00001 // 00002 // Copyright (c) 2005-2008 Kenichi Watanabe. 00003 // Copyright (c) 2005-2008 Yasuhiro Watari. 00004 // Copyright (c) 2005-2008 Hironori Ichibayashi. 00005 // Copyright (c) 2008-2009 Kazuo Horio. 00006 // Copyright (c) 2009-2013 Naruki Kurata. 00007 // Copyright (c) 2005-2013 Ryota Shioya. 00008 // Copyright (c) 2005-2013 Masahiro Goshima. 00009 // 00010 // This software is provided 'as-is', without any express or implied 00011 // warranty. In no event will the authors be held liable for any damages 00012 // arising from the use of this software. 00013 // 00014 // Permission is granted to anyone to use this software for any purpose, 00015 // including commercial applications, and to alter it and redistribute it 00016 // freely, subject to the following restrictions: 00017 // 00018 // 1. The origin of this software must not be misrepresented; you must not 00019 // claim that you wrote the original software. If you use this software 00020 // in a product, an acknowledgment in the product documentation would be 00021 // appreciated but is not required. 00022 // 00023 // 2. Altered source versions must be plainly marked as such, and must not be 00024 // misrepresented as being the original software. 00025 // 00026 // 3. This notice may not be removed or altered from any source 00027 // distribution. 00028 // 00029 // 00030 00031 00032 // 00033 // Pre-compiled header 00034 // 00035 00036 #ifndef PCH_PCH_H 00037 #define PCH_PCH_H 00038 00039 // 00040 // --- Environmentally dependent things --- 00041 // 00042 #include "SysDeps/host_type.h" 00043 #include "SysDeps/Warning.h" 00044 00045 00046 // 00047 // --- Onikiri basic types --- 00048 // 00049 #include "Types.h" 00050 #include "Version.h" 00051 #include "SysDeps/Inline.h" 00052 00053 00054 // 00055 // --- C General headers --- 00056 // 00057 #include <stdio.h> 00058 #include <stdlib.h> 00059 #include <math.h> 00060 #include <assert.h> 00061 #include <time.h> 00062 #include "SysDeps/stdarg.h" 00063 00064 00065 // 00066 // --- C++/STL --- 00067 // 00068 #include <utility> 00069 #include <stdexcept> 00070 #include <iostream> 00071 #include <sstream> 00072 #include <fstream> 00073 #include <exception> 00074 00075 #include <string> 00076 #include <vector> 00077 #include <map> 00078 #include <set> 00079 #include <deque> 00080 #include <stack> 00081 00082 // for compatibility 00083 #include "SysDeps/STL/list.h" 00084 00085 #include <algorithm> 00086 #include <functional> 00087 00088 #include <cassert> 00089 #include <cstddef> 00090 #include <cmath> 00091 #include <limits> 00092 #include <iomanip> 00093 #include <memory> 00094 00095 00096 // 00097 // --- Tiny XML --- 00098 // 00099 #include <tinyxml/tinyxml.h> 00100 00101 00102 // 00103 // --- Boost --- 00104 // 00105 #define BOOST_NO_MT 00106 #define BOOST_DISABLE_THREADS 00107 #define BOOST_SP_USE_QUICK_ALLOCATOR 00108 #define BOOST_SP_DISABLE_THREADS 00109 #define BOOST_ALL_NO_LIB 00110 #define BOOST_SYSTEM_NO_LIB 00111 #define NO_ZLIB 0 00112 00113 #ifndef ONIKIRI_DEBUG 00114 #define BOOST_DISABLE_ASSERTS 00115 #endif 00116 00117 #include "SysDeps/Boost/Boost.h" 00118 00119 // This file is included at this point after enabling boost switches, 00120 // because 'unordered_map' is implemented with boost currently. 00121 #include "SysDeps/STL/unordered_map.h" 00122 00123 #include <boost/detail/quick_allocator.hpp> 00124 #include <boost/pool/pool.hpp> 00125 #include <boost/pool/object_pool.hpp> 00126 #include <boost/pool/singleton_pool.hpp> 00127 #include <boost/pool/pool_alloc.hpp> 00128 00129 #include <boost/iterator/iterator_facade.hpp> 00130 #include <boost/shared_ptr.hpp> 00131 #include <boost/intrusive_ptr.hpp> 00132 #include <boost/dynamic_bitset.hpp> 00133 #include <boost/tokenizer.hpp> 00134 #include <boost/lexical_cast.hpp> 00135 #include <boost/array.hpp> 00136 #include <boost/scoped_array.hpp> 00137 #include <boost/math/special_functions/fpclassify.hpp> 00138 #include <boost/crc.hpp> 00139 00140 #include <boost/filesystem.hpp> 00141 #include <boost/iostreams/filtering_stream.hpp> 00142 #include <boost/iostreams/filter/gzip.hpp> 00143 #include <boost/iostreams/device/file.hpp> 00144 00145 00146 // #include <boost/compressed_pair.hpp> 00147 // #include <boost/crc.hpp> 00148 // #include <boost/any.hpp> 00149 // #include <boost/multi_array.hpp> 00150 // #include <boost/pool/detail/mutex.hpp> 00151 00152 00153 00154 // 00155 // --- Onikiri utility --- 00156 // 00157 00158 // Use onikiri internal allocator because 00159 // boost::pool_allocator has the bug that allocates infinite memory 00160 // when it is used with vector of vector. 00161 #define ONIKIRI_USE_ONIKIRI_POOL_ALLOCATOR 00162 00163 #include "Utility/String.h" 00164 #include "Utility/RuntimeError.h" 00165 #include "Utility/SharedPtrObjectPool.h" 00166 #include "Utility/IntrusivePtrObjectPool.h" 00167 00168 //#include "Utility/Collection/hashed_map_list.h" 00169 //#include "Utility/Collection/hashed_index_list.h" 00170 00171 #include "Utility/Collection/pool/pool_list.h" 00172 #include "Utility/Collection/pool/pool_vector.h" 00173 #include "Utility/Collection/pool/pool_unordered_map.h" 00174 #include "Utility/Collection/fixed_size_buffer.h" 00175 00176 00177 00178 // 00179 // --- shttl --- 00180 // 00181 #define SHTTL_ASSERT(x) { using namespace Onikiri; ASSERT(x); } 00182 #include "Lib/shttl/std_hasher.h" 00183 #include "Lib/shttl/static_off_hasher.h" 00184 #include "Lib/shttl/setassoc_table.h" 00185 #include "Lib/shttl/null_struct.h" 00186 #include "Lib/shttl/counter_array.h" 00187 #include "Lib/shttl/table.h" 00188 00189 // #include <shttl/bit.h> 00190 // #include <shttl/array2d.h> 00191 // #include <shttl/null_data.h> 00192 // #include <shttl/hasher.h> 00193 // #include <shttl/lru.h> 00194 00195 00196 // 00197 // --- Onikiri interface --- 00198 // 00199 #include "Interface/Addr.h" 00200 #include "Interface/EmulatorIF.h" 00201 #include "Interface/ExtraOpDecoderIF.h" 00202 #include "Interface/ISAInfo.h" 00203 #include "Interface/MemIF.h" 00204 #include "Interface/OpClass.h" 00205 #include "Interface/OpInfo.h" 00206 #include "Interface/OpStateIF.h" 00207 #include "Interface/ResourceIF.h" 00208 #include "Interface/SystemIF.h" 00209 00210 // 00211 // --- Onikiri environment --- 00212 // 00213 #include "Env/Env.h" 00214 #include "Env/Param/ParamPredResult.h" 00215 00216 // 00217 // --- Additional user defined --- 00218 // 00219 #include "User/UserPCH.h" 00220 00221 #endif // #ifndef PCH_PCH_H