diff --git a/Utilities/BEType.h b/Utilities/BEType.h index 1bbc0a8114..768e25770c 100644 --- a/Utilities/BEType.h +++ b/Utilities/BEType.h @@ -451,7 +451,13 @@ template class be_t { static_assert(sizeof(T2) == 1 || sizeof(T2) == 2 || sizeof(T2) == 4 || sizeof(T2) == 8, "Bad be_t type"); - T m_data; + +public: + typedef typename std::remove_cv::type type; + static const bool is_le_machine = true; + +private: + type m_data; template struct _convert @@ -482,54 +488,77 @@ class be_t return (be_t&)res; } }; + public: - typedef T type; - - const T& ToBE() const + const type& ToBE() const { return m_data; } - T ToLE() const + type ToLE() const { - return se_t::func(m_data); + return se_t::func(m_data); } - void FromBE(const T& value) + void FromBE(const type& value) { m_data = value; } - void FromLE(const T& value) + void FromLE(const type& value) { - m_data = se_t::func(value); + m_data = se_t::func(value); } - static be_t make(const T value) + static be_t MakeFromLE(const type value) { - T data = se_t::func(value); + type data = se_t::func(value); return (be_t&)data; } - //template - operator const T() const + static be_t MakeFromBE(const type value) { - return ToLE(); + return (be_t&)value; } + //make be_t from current machine byte ordering + static be_t make(const type value) + { + return is_le_machine ? MakeFromLE(value) : MakeFromBE(value); + } + + //get value in current machine byte ordering + __forceinline type value() const + { + return is_le_machine ? ToLE() : ToBE(); + } + + //be_t() = default; + //be_t(const be_t& value) = default; + + //be_t(type value) + //{ + // m_data = se_t::func(value); + //} + be_t& operator = (const be_t& value) = default; - be_t& operator = (T value) + be_t& operator = (type value) { - m_data = se_t::func(value); + m_data = se_t::func(value); return *this; } + operator type() const + { + return value(); + } + template operator const be_t() const { - return be_t::make(ToLE()); + return be_t::make(value()); //return _convert sizeof(T)) ? 1 : (sizeof(T1) < sizeof(T) ? 2 : 0))>::func(m_data); } @@ -577,62 +606,6 @@ public: be_t& operator-- () { *this -= 1; return *this; } }; -template -class be_t -{ - static_assert(sizeof(T2) == 1 || sizeof(T2) == 2 || sizeof(T2) == 4 || sizeof(T2) == 8, "Bad be_t type"); - const T m_data; - -public: - typedef const T type; - - const T& ToBE() const - { - return m_data; - } - - const T ToLE() const - { - return se_t::func(m_data); - } - - static be_t make(const T value) - { - const T data = se_t::func(value); - return (be_t&)data; - } - - //template - operator const T() const - { - return ToLE(); - } - - template - operator const be_t() const - { - return be_t::make(ToLE()); - } - - template be_t operator & (const be_t& right) const { const T res = ToBE() & right.ToBE(); return (be_t&)res; } - template be_t operator | (const be_t& right) const { const T res = ToBE() | right.ToBE(); return (be_t&)res; } - template be_t operator ^ (const be_t& right) const { const T res = ToBE() ^ right.ToBE(); return (be_t&)res; } - - template bool operator == (T1 right) const { return (T1)ToLE() == right; } - template bool operator != (T1 right) const { return !(*this == right); } - template bool operator > (T1 right) const { return (T1)ToLE() > right; } - template bool operator < (T1 right) const { return (T1)ToLE() < right; } - template bool operator >= (T1 right) const { return (T1)ToLE() >= right; } - template bool operator <= (T1 right) const { return (T1)ToLE() <= right; } - - template bool operator == (const be_t& right) const { return ToBE() == right.ToBE(); } - template bool operator != (const be_t& right) const { return !(*this == right); } - template bool operator > (const be_t& right) const { return (T1)ToLE() > right.ToLE(); } - template bool operator < (const be_t& right) const { return (T1)ToLE() < right.ToLE(); } - template bool operator >= (const be_t& right) const { return (T1)ToLE() >= right.ToLE(); } - template bool operator <= (const be_t& right) const { return (T1)ToLE() <= right.ToLE(); } -}; - template struct is_be_t : public std::integral_constant {}; @@ -672,6 +645,8 @@ public: //be_t if need swap endianes, T otherwise typedef typename _be_type_selector< T, T2, value >::type type; + + typedef typename _be_type_selector< T, T2, !is_be_t::value >::type forced_type; }; template @@ -799,3 +774,51 @@ template __forceinline static void Write64(T& f, const u64 data) { Write64LE(f, re64(data)); } + +template +struct convert_le_be_t +{ + static Tto func(Tfrom&& value) + { + return (Tto)value; + } +}; + +template +struct convert_le_be_t, Tfrom> +{ + static be_t func(Tfrom&& value) + { + return be_t::make(value); + } +}; + +template +struct convert_le_be_t, be_t> +{ + static be_t func(be_t&& value) + { + return value; + } +}; + +template +struct convert_le_be_t> +{ + static Tto func(be_t&& value) + { + return value.value(); + } +}; + +template +__forceinline Tto convert_le_be(Tfrom&& value) +{ + return convert_le_be_t::func(value); +} + +template +__forceinline void convert_le_be(Tto& dst, Tfrom&& src) +{ + dst = convert_le_be_t::func(src); +} \ No newline at end of file diff --git a/llvm_build/include/llvm/Config/AsmParsers.def b/llvm_build/include/llvm/Config/AsmParsers.def deleted file mode 100644 index 069d10b1c8..0000000000 --- a/llvm_build/include/llvm/Config/AsmParsers.def +++ /dev/null @@ -1,30 +0,0 @@ -/*===- llvm/Config/AsmParsers.def - LLVM Assembly Parsers -------*- C++ -*-===*\ -|* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| -|* *| -|*===----------------------------------------------------------------------===*| -|* *| -|* This file enumerates all of the assembly-language parsers *| -|* supported by this build of LLVM. Clients of this file should define *| -|* the LLVM_ASM_PARSER macro to be a function-like macro with a *| -|* single parameter (the name of the target whose assembly can be *| -|* generated); including this file will then enumerate all of the *| -|* targets with assembly parsers. *| -|* *| -|* The set of targets supported by LLVM is generated at configuration *| -|* time, at which point this header is generated. Do not modify this *| -|* header directly. *| -|* *| -\*===----------------------------------------------------------------------===*/ - -#ifndef LLVM_ASM_PARSER -# error Please define the macro LLVM_ASM_PARSER(TargetName) -#endif - -LLVM_ASM_PARSER(X86) - - -#undef LLVM_ASM_PARSER diff --git a/llvm_build/include/llvm/Config/AsmPrinters.def b/llvm_build/include/llvm/Config/AsmPrinters.def deleted file mode 100644 index 69f61cdd8e..0000000000 --- a/llvm_build/include/llvm/Config/AsmPrinters.def +++ /dev/null @@ -1,30 +0,0 @@ -/*===- llvm/Config/AsmPrinters.def - LLVM Assembly Printers -----*- C++ -*-===*\ -|* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| -|* *| -|*===----------------------------------------------------------------------===*| -|* *| -|* This file enumerates all of the assembly-language printers *| -|* supported by this build of LLVM. Clients of this file should define *| -|* the LLVM_ASM_PRINTER macro to be a function-like macro with a *| -|* single parameter (the name of the target whose assembly can be *| -|* generated); including this file will then enumerate all of the *| -|* targets with assembly printers. *| -|* *| -|* The set of targets supported by LLVM is generated at configuration *| -|* time, at which point this header is generated. Do not modify this *| -|* header directly. *| -|* *| -\*===----------------------------------------------------------------------===*/ - -#ifndef LLVM_ASM_PRINTER -# error Please define the macro LLVM_ASM_PRINTER(TargetName) -#endif - -LLVM_ASM_PRINTER(X86) - - -#undef LLVM_ASM_PRINTER diff --git a/llvm_build/include/llvm/Config/Disassemblers.def b/llvm_build/include/llvm/Config/Disassemblers.def deleted file mode 100644 index ce900cadd8..0000000000 --- a/llvm_build/include/llvm/Config/Disassemblers.def +++ /dev/null @@ -1,30 +0,0 @@ -/*===- llvm/Config/Disassemblers.def - LLVM Assembly Parsers ----*- C++ -*-===*\ -|* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| -|* *| -|*===----------------------------------------------------------------------===*| -|* *| -|* This file enumerates all of the assembly-language parsers *| -|* supported by this build of LLVM. Clients of this file should define *| -|* the LLVM_DISASSEMBLER macro to be a function-like macro with a *| -|* single parameter (the name of the target whose assembly can be *| -|* generated); including this file will then enumerate all of the *| -|* targets with assembly parsers. *| -|* *| -|* The set of targets supported by LLVM is generated at configuration *| -|* time, at which point this header is generated. Do not modify this *| -|* header directly. *| -|* *| -\*===----------------------------------------------------------------------===*/ - -#ifndef LLVM_DISASSEMBLER -# error Please define the macro LLVM_DISASSEMBLER(TargetName) -#endif - -LLVM_DISASSEMBLER(X86) - - -#undef LLVM_DISASSEMBLER diff --git a/llvm_build/include/llvm/Config/Targets.def b/llvm_build/include/llvm/Config/Targets.def deleted file mode 100644 index 6d02a945d4..0000000000 --- a/llvm_build/include/llvm/Config/Targets.def +++ /dev/null @@ -1,29 +0,0 @@ -/*===- llvm/Config/Targets.def - LLVM Target Architectures ------*- C++ -*-===*\ -|* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| -|* *| -|*===----------------------------------------------------------------------===*| -|* *| -|* This file enumerates all of the target architectures supported by *| -|* this build of LLVM. Clients of this file should define the *| -|* LLVM_TARGET macro to be a function-like macro with a single *| -|* parameter (the name of the target); including this file will then *| -|* enumerate all of the targets. *| -|* *| -|* The set of targets supported by LLVM is generated at configuration *| -|* time, at which point this header is generated. Do not modify this *| -|* header directly. *| -|* *| -\*===----------------------------------------------------------------------===*/ - -#ifndef LLVM_TARGET -# error Please define the macro LLVM_TARGET(TargetName) -#endif - -LLVM_TARGET(X86) - - -#undef LLVM_TARGET diff --git a/llvm_build/include/llvm/Config/config.h b/llvm_build/include/llvm/Config/config.h deleted file mode 100644 index 68fb4b11ce..0000000000 --- a/llvm_build/include/llvm/Config/config.h +++ /dev/null @@ -1,548 +0,0 @@ -/* include/llvm/Config/config.h.cmake corresponding to config.h.in. */ - -#ifndef CONFIG_H -#define CONFIG_H - -/* Exported configuration */ -#include "llvm/Config/llvm-config.h" - -/* Patch version of the LLVM API */ -/* #undef LLVM_VERSION_PATCH */ - -/* Bug report URL. */ -#define BUG_REPORT_URL "http://llvm.org/bugs/" - -/* Define if you want backtraces on crash */ -#define ENABLE_BACKTRACES - -/* Define to enable crash overrides */ -#define ENABLE_CRASH_OVERRIDES - -/* Define if position independent code is enabled */ -#define ENABLE_PIC - -/* Define if timestamp information (e.g., __DATE__) is allowed */ -#define ENABLE_TIMESTAMPS 1 - -/* Define to 1 if you have the `arc4random' function. */ -/* #undef HAVE_DECL_ARC4RANDOM */ - -/* Define to 1 if you have the `backtrace' function. */ -/* #undef HAVE_BACKTRACE */ - -/* Define to 1 if you have the `bcopy' function. */ -#undef HAVE_BCOPY - -/* Define to 1 if you have the `ceilf' function. */ -#define HAVE_CEILF 1 - -/* Define to 1 if you have the `closedir' function. */ -/* #undef HAVE_CLOSEDIR */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_CXXABI_H */ - -/* Define to 1 if you have the header file. */ -#undef HAVE_CRASHREPORTERCLIENT_H - -/* can use __crashreporter_info__ */ -#undef HAVE_CRASHREPORTER_INFO - -/* Define to 1 if you have the declaration of `strerror_s', and to 0 if you - don't. */ -#define HAVE_DECL_STRERROR_S 1 - -/* Define to 1 if you have the header file, and it defines `DIR'. - */ -/* #undef HAVE_DIRENT_H */ - -/* Define if you have the GNU dld library. */ -#undef HAVE_DLD - -/* Define to 1 if you have the `dlerror' function. */ -/* #undef HAVE_DLERROR */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_DLFCN_H */ - -/* Define if dlopen() is available on this platform. */ -/* #undef HAVE_DLOPEN */ - -/* Define if you have the _dyld_func_lookup function. */ -#undef HAVE_DYLD - -/* Define to 1 if you have the header file. */ -#define HAVE_ERRNO_H 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_EXECINFO_H */ - -/* Define to 1 if you have the header file. */ -#define HAVE_FCNTL_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_FENV_H 1 - -/* Define if libffi is available on this platform. */ -/* #undef HAVE_FFI_CALL */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_FFI_FFI_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_FFI_H */ - -/* Set to 1 if the finite function is found in */ -/* #undef HAVE_FINITE_IN_IEEEFP_H */ - -/* Define to 1 if you have the `floorf' function. */ -#define HAVE_FLOORF 1 - -/* Define to 1 if you have the `log' function. */ -#define HAVE_LOG 1 - -/* Define to 1 if you have the `log2' function. */ -#define HAVE_LOG2 1 - -/* Define to 1 if you have the `log10' function. */ -#define HAVE_LOG10 1 - -/* Define to 1 if you have the `exp' function. */ -#define HAVE_EXP 1 - -/* Define to 1 if you have the `exp2' function. */ -#define HAVE_EXP2 1 - -/* Define to 1 if you have the `exp10' function. */ -/* #undef HAVE_EXP10 */ - -/* Define to 1 if you have the `fmodf' function. */ -#define HAVE_FMODF 1 - -/* Define to 1 if you have the `futimes' function. */ -/* #undef HAVE_FUTIMES */ - -/* Define to 1 if you have the `futimens' function */ -/* #undef HAVE_FUTIMENS */ - -/* Define to 1 if you have the `getcwd' function. */ -/* #undef HAVE_GETCWD */ - -/* Define to 1 if you have the `getpagesize' function. */ -/* #undef HAVE_GETPAGESIZE */ - -/* Define to 1 if you have the `getrlimit' function. */ -/* #undef HAVE_GETRLIMIT */ - -/* Define to 1 if you have the `getrusage' function. */ -/* #undef HAVE_GETRUSAGE */ - -/* Define to 1 if you have the `gettimeofday' function. */ -/* #undef HAVE_GETTIMEOFDAY */ - -/* Define to 1 if the system has the type `int64_t'. */ -#define HAVE_INT64_T 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_INTTYPES_H 1 - -/* Define to 1 if you have the `isatty' function. */ -/* #undef HAVE_ISATTY */ - -/* Set to 1 if the isinf function is found in */ -/* #undef HAVE_ISINF_IN_CMATH */ - -/* Set to 1 if the isinf function is found in */ -#define HAVE_ISINF_IN_MATH_H 1 - -/* Set to 1 if the isnan function is found in */ -/* #undef HAVE_ISNAN_IN_CMATH */ - -/* Set to 1 if the isnan function is found in */ -#define HAVE_ISNAN_IN_MATH_H 1 - -/* Define if you have the libdl library or equivalent. */ -/* #undef HAVE_LIBDL */ - -/* Define to 1 if you have the `imagehlp' library (-limagehlp). */ -/* #undef HAVE_LIBIMAGEHLP */ - -/* Define to 1 if you have the `m' library (-lm). */ -#undef HAVE_LIBM - -/* Define to 1 if you have the `psapi' library (-lpsapi). */ -/* #undef HAVE_LIBPSAPI */ - -/* Define to 1 if you have the `pthread' library (-lpthread). */ -/* #undef HAVE_LIBPTHREAD */ - -/* Define to 1 if you have the `shell32' library (-lshell32). */ -/* #undef HAVE_LIBSHELL32 */ - -/* Define to 1 if you have the 'z' library (-lz). */ -/* #undef HAVE_LIBZ */ - -/* Define to 1 if you have the 'edit' library (-ledit). */ -/* #undef HAVE_LIBEDIT */ - -/* Define to 1 if you have the header file. */ -#define HAVE_LIMITS_H 1 - -/* Define if you can use -rdynamic. */ -#define HAVE_LINK_EXPORT_DYNAMIC 1 - -/* Define if you can use -Wl,-R. to pass -R. to the linker, in order to add - the current directory to the dynamic linker search path. */ -#undef HAVE_LINK_R - -/* Define to 1 if you have the `longjmp' function. */ -/* #undef HAVE_LONGJMP */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_MACH_MACH_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_MACH_O_DYLD_H */ - -/* Define if mallinfo() is available on this platform. */ -/* #undef HAVE_MALLINFO */ - -/* Define to 1 if you have the header file. */ -#define HAVE_MALLOC_H 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_MALLOC_MALLOC_H */ - -/* Define to 1 if you have the `malloc_zone_statistics' function. */ -/* #undef HAVE_MALLOC_ZONE_STATISTICS */ - -/* Define to 1 if you have the `mkdtemp' function. */ -/* #undef HAVE_MKDTEMP */ - -/* Define to 1 if you have the `mkstemp' function. */ -/* #undef HAVE_MKSTEMP */ - -/* Define to 1 if you have the `mktemp' function. */ -/* #undef HAVE_MKTEMP */ - -/* Define to 1 if you have a working `mmap' system call. */ -#undef HAVE_MMAP - -/* Define if mmap() uses MAP_ANONYMOUS to map anonymous pages, or undefine if - it uses MAP_ANON */ -#undef HAVE_MMAP_ANONYMOUS - -/* Define if mmap() can map files into memory */ -#undef HAVE_MMAP_FILE - -/* Define to 1 if you have the header file, and it defines `DIR'. */ -/* #undef HAVE_NDIR_H */ - -/* Define to 1 if you have the `nearbyintf' function. */ -#define HAVE_NEARBYINTF 1 - -/* Define to 1 if you have the `opendir' function. */ -/* #undef HAVE_OPENDIR */ - -/* Define to 1 if you have the `posix_spawn' function. */ -/* #undef HAVE_POSIX_SPAWN */ - -/* Define to 1 if you have the `powf' function. */ -/* #undef HAVE_POWF */ - -/* Define to 1 if you have the `pread' function. */ -/* #undef HAVE_PREAD */ - -/* Define if libtool can extract symbol lists from object files. */ -#undef HAVE_PRELOADED_SYMBOLS - -/* Define to have the %a format string */ -#undef HAVE_PRINTF_A - -/* Have pthread_getspecific */ -/* #undef HAVE_PTHREAD_GETSPECIFIC */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_PTHREAD_H */ - -/* Have pthread_mutex_lock */ -/* #undef HAVE_PTHREAD_MUTEX_LOCK */ - -/* Have pthread_rwlock_init */ -/* #undef HAVE_PTHREAD_RWLOCK_INIT */ - -/* Define to 1 if srand48/lrand48/drand48 exist in */ -/* #undef HAVE_RAND48 */ - -/* Define to 1 if you have the `readdir' function. */ -/* #undef HAVE_READDIR */ - -/* Define to 1 if you have the `realpath' function. */ -/* #undef HAVE_REALPATH */ - -/* Define to 1 if you have the `rintf' function. */ -#undef HAVE_RINTF - -/* Define to 1 if you have the `round' function. */ -/* #undef HAVE_ROUND */ - -/* Define to 1 if you have the `roundf' function. */ -#undef HAVE_ROUNDF - -/* Define to 1 if you have the `sbrk' function. */ -/* #undef HAVE_SBRK */ - -/* Define to 1 if you have the `setenv' function. */ -/* #undef HAVE_SETENV */ - -/* Define to 1 if you have the `setjmp' function. */ -/* #undef HAVE_SETJMP */ - -/* Define to 1 if you have the `setrlimit' function. */ -/* #undef HAVE_SETRLIMIT */ - -/* Define if you have the shl_load function. */ -#undef HAVE_SHL_LOAD - -/* Define to 1 if you have the `siglongjmp' function. */ -/* #undef HAVE_SIGLONGJMP */ - -/* Define to 1 if you have the header file. */ -#define HAVE_SIGNAL_H 1 - -/* Define to 1 if you have the `sigsetjmp' function. */ -/* #undef HAVE_SIGSETJMP */ - -/* Define to 1 if you have the header file. */ -#define HAVE_STDINT_H 1 - -/* Set to 1 if the std::isinf function is found in */ -#undef HAVE_STD_ISINF_IN_CMATH - -/* Set to 1 if the std::isnan function is found in */ -#undef HAVE_STD_ISNAN_IN_CMATH - -/* Define to 1 if you have the `strdup' function. */ -/* #undef HAVE_STRDUP */ - -/* Define to 1 if you have the `strerror' function. */ -#define HAVE_STRERROR 1 - -/* Define to 1 if you have the `strerror_r' function. */ -/* #undef HAVE_STRERROR_R */ - -/* Define to 1 if you have the `strtof' function. */ -/* #undef HAVE_STRTOF */ - -/* Define to 1 if you have the `strtoll' function. */ -#define HAVE_STRTOLL 1 - -/* Define to 1 if you have the `strtoq' function. */ -/* #undef HAVE_STRTOQ */ - -/* Define to 1 if you have the `sysconf' function. */ -#undef HAVE_SYSCONF - -/* Define to 1 if you have the header file, and it defines `DIR'. - */ -/* #undef HAVE_SYS_DIR_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_IOCTL_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_MMAN_H */ - -/* Define to 1 if you have the header file, and it defines `DIR'. - */ -/* #undef HAVE_SYS_NDIR_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_PARAM_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_RESOURCE_H */ - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_STAT_H 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_TIME_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_TYPES_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_UIO_H */ - -/* Define to 1 if you have that is POSIX.1 compatible. */ -/* #undef HAVE_SYS_WAIT_H */ - -/* Define if the setupterm() function is supported this platform. */ -/* #undef HAVE_TERMINFO */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_TERMIOS_H */ - -/* Define to 1 if the system has the type `uint64_t'. */ -#define HAVE_UINT64_T 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_UNISTD_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_UTIME_H */ - -/* Define to 1 if the system has the type `u_int64_t'. */ -/* #undef HAVE_U_INT64_T */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_VALGRIND_VALGRIND_H */ - -/* Define to 1 if you have the `writev' function. */ -/* #undef HAVE_WRITEV */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_ZLIB_H */ - -/* Have host's _alloca */ -/* #undef HAVE__ALLOCA */ - -/* Have host's __alloca */ -/* #undef HAVE___ALLOCA */ - -/* Have host's __ashldi3 */ -/* #undef HAVE___ASHLDI3 */ - -/* Have host's __ashrdi3 */ -/* #undef HAVE___ASHRDI3 */ - -/* Have host's __chkstk */ -#define HAVE___CHKSTK 1 - -/* Have host's __cmpdi2 */ -/* #undef HAVE___CMPDI2 */ - -/* Have host's __divdi3 */ -/* #undef HAVE___DIVDI3 */ - -/* Define to 1 if you have the `__dso_handle' function. */ -#undef HAVE___DSO_HANDLE - -/* Have host's __fixdfdi */ -/* #undef HAVE___FIXDFDI */ - -/* Have host's __fixsfdi */ -/* #undef HAVE___FIXSFDI */ - -/* Have host's __floatdidf */ -/* #undef HAVE___FLOATDIDF */ - -/* Have host's __lshrdi3 */ -/* #undef HAVE___LSHRDI3 */ - -/* Have host's __main */ -/* #undef HAVE___MAIN */ - -/* Have host's __moddi3 */ -/* #undef HAVE___MODDI3 */ - -/* Have host's __udivdi3 */ -/* #undef HAVE___UDIVDI3 */ - -/* Have host's __umoddi3 */ -/* #undef HAVE___UMODDI3 */ - -/* Have host's ___chkstk */ -/* #undef HAVE____CHKSTK */ - -/* Linker version detected at compile time. */ -#undef HOST_LINK_VERSION - -/* Define if we link Polly to the tools */ -/* #undef LINK_POLLY_INTO_TOOLS */ - -/* Define if zlib compression is available */ -#define LLVM_ENABLE_ZLIB 0 - -/* Define if the OS needs help to load dependent libraries for dlopen(). */ -/* #undef LTDL_DLOPEN_DEPLIBS */ - -/* Define to the sub-directory in which libtool stores uninstalled libraries. - */ -#undef LTDL_OBJDIR - -/* Define to the extension used for shared libraries, say, ".so". */ -#define LTDL_SHLIB_EXT ".dll" - -/* Define to the system default library search path. */ -/* #undef LTDL_SYSSEARCHPATH */ - -/* Define if /dev/zero should be used when mapping RWX memory, or undefine if - its not necessary */ -#undef NEED_DEV_ZERO_FOR_MMAP - -/* Define if dlsym() requires a leading underscore in symbol names. */ -#undef NEED_USCORE - -/* Define to the address where bug reports for this package should be sent. */ -#define PACKAGE_BUGREPORT "http://llvm.org/bugs/" - -/* Define to the full name of this package. */ -#define PACKAGE_NAME "LLVM" - -/* Define to the full name and version of this package. */ -#define PACKAGE_STRING "LLVM 3.5.0svn" - -/* Define to the one symbol short name of this package. */ -#undef PACKAGE_TARNAME - -/* Define to the version of this package. */ -#define PACKAGE_VERSION "3.5.0svn" - -/* Define as the return type of signal handlers (`int' or `void'). */ -#define RETSIGTYPE void - -/* Define to 1 if the `S_IS*' macros in do not work properly. */ -#undef STAT_MACROS_BROKEN - -/* Define to 1 if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Define to 1 if you can safely include both and . */ -#undef TIME_WITH_SYS_TIME - -/* Define to 1 if your declares `struct tm'. */ -#undef TM_IN_SYS_TIME - -/* Type of 1st arg on ELM Callback */ -#define WIN32_ELMCB_PCSTR PCSTR - -/* Define to empty if `const' does not conform to ANSI C. */ -#undef const - -/* Define to `int' if does not define. */ -#undef pid_t - -/* Define to `unsigned int' if does not define. */ -#undef size_t - -/* Define to a function replacing strtoll */ -/* #undef strtoll */ - -/* Define to a function implementing strtoull */ -/* #undef strtoull */ - -/* Define to a function implementing stricmp */ -#define stricmp _stricmp - -/* Define to a function implementing strdup */ -#define strdup _strdup - -/* Define to 1 if you have the `_chsize_s' function. */ -#define HAVE__CHSIZE_S 1 - -/* Maximum path length */ -#define MAXPATHLEN 160 - -#endif diff --git a/llvm_build/include/llvm/Config/llvm-config.h b/llvm_build/include/llvm/Config/llvm-config.h deleted file mode 100644 index 0e0e9a419e..0000000000 --- a/llvm_build/include/llvm/Config/llvm-config.h +++ /dev/null @@ -1,98 +0,0 @@ -/*===------- llvm/Config/llvm-config.h - llvm configuration -------*- C -*-===*/ -/* */ -/* The LLVM Compiler Infrastructure */ -/* */ -/* This file is distributed under the University of Illinois Open Source */ -/* License. See LICENSE.TXT for details. */ -/* */ -/*===----------------------------------------------------------------------===*/ - -/* This file enumerates variables from the LLVM configuration so that they - can be in exported headers and won't override package specific directives. - This is a C header that can be included in the llvm-c headers. */ - -#ifndef LLVM_CONFIG_H -#define LLVM_CONFIG_H - -/* Installation directory for binary executables */ -/* #undef LLVM_BINDIR */ - -/* Time at which LLVM was configured */ -/* #undef LLVM_CONFIGTIME */ - -/* Installation directory for data files */ -/* #undef LLVM_DATADIR */ - -/* Target triple LLVM will generate code for by default */ -#define LLVM_DEFAULT_TARGET_TRIPLE "x86_64-pc-win32" - -/* Installation directory for documentation */ -/* #undef LLVM_DOCSDIR */ - -/* Define if threads enabled */ -#define LLVM_ENABLE_THREADS 1 - -/* Installation directory for config files */ -/* #undef LLVM_ETCDIR */ - -/* Has gcc/MSVC atomic intrinsics */ -#define LLVM_HAS_ATOMICS 1 - -/* Host triple LLVM will be executed on */ -#define LLVM_HOST_TRIPLE "x86_64-pc-win32" - -/* Installation directory for include files */ -/* #undef LLVM_INCLUDEDIR */ - -/* Installation directory for .info files */ -/* #undef LLVM_INFODIR */ - -/* Installation directory for man pages */ -/* #undef LLVM_MANDIR */ - -/* LLVM architecture name for the native architecture, if available */ -#define LLVM_NATIVE_ARCH X86 - -/* LLVM name for the native AsmParser init function, if available */ -#define LLVM_NATIVE_ASMPARSER LLVMInitializeX86AsmParser - -/* LLVM name for the native AsmPrinter init function, if available */ -#define LLVM_NATIVE_ASMPRINTER LLVMInitializeX86AsmPrinter - -/* LLVM name for the native Disassembler init function, if available */ -#define LLVM_NATIVE_DISASSEMBLER LLVMInitializeX86Disassembler - -/* LLVM name for the native Target init function, if available */ -#define LLVM_NATIVE_TARGET LLVMInitializeX86Target - -/* LLVM name for the native TargetInfo init function, if available */ -#define LLVM_NATIVE_TARGETINFO LLVMInitializeX86TargetInfo - -/* LLVM name for the native target MC init function, if available */ -#define LLVM_NATIVE_TARGETMC LLVMInitializeX86TargetMC - -/* Define if this is Unixish platform */ -/* #undef LLVM_ON_UNIX */ - -/* Define if this is Win32ish platform */ -#define LLVM_ON_WIN32 1 - -/* Installation prefix directory */ -#define LLVM_PREFIX "C:/Program Files/LLVM" - -/* Define if we have the Intel JIT API runtime support library */ -/* #undef LLVM_USE_INTEL_JITEVENTS */ - -/* Define if we have the oprofile JIT-support library */ -/* #undef LLVM_USE_OPROFILE */ - -/* Major version of the LLVM API */ -#define LLVM_VERSION_MAJOR 3 - -/* Minor version of the LLVM API */ -#define LLVM_VERSION_MINOR 5 - -/* Define if we link Polly to the tools */ -/* #undef LINK_POLLY_INTO_TOOLS */ - -#endif diff --git a/llvm_build/include/llvm/IR/intrinsics_gen.vcxproj b/llvm_build/include/llvm/IR/intrinsics_gen.vcxproj deleted file mode 100644 index 1461b8ecb9..0000000000 --- a/llvm_build/include/llvm/IR/intrinsics_gen.vcxproj +++ /dev/null @@ -1,194 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {0B9F2D3D-23BA-4B2F-9D24-1F2742BE6FAA} - Win32Proj - x64 - intrinsics_gen - - - - Utility - false - MultiByte - v120 - - - Utility - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(Platform)\$(Configuration)\$(ProjectName)\ - $(Platform)\$(Configuration)\$(ProjectName)\ - - - - $(ProjDir)..\..\..\..\llvm_build\include\llvm\IR;$(ProjDir)..\..\..\..\llvm\include\llvm\IR;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - $(ProjDir)..\..\..\..\llvm_build\include\llvm\IR;$(ProjDir)..\..\..\..\llvm\include\llvm\IR;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../../llvm/include/llvm/IR/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/include/llvm/IR/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\include\llvm\IR\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../../llvm/include/llvm/IR/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/include/llvm/IR/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\include\llvm\IR\CMakeFiles\generate.stamp - false - - - - - Building Intrinsics.gen... - setlocal -..\..\..\Debug\bin\llvm-tblgen.exe -gen-intrinsic -I $(ProjDir)../../../../llvm/include/llvm/IR -I $(ProjDir)../../../../llvm/lib/Target -I $(ProjDir)../../../../llvm/include $(ProjDir)../../../../llvm/include/llvm/IR/Intrinsics.td -o $(ProjDir)../../../../llvm_build/include/llvm/IR/Intrinsics.gen.tmp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/43444065875149dfe37439390dbe0cfd/Intrinsics.gen.tmp.rule;$(ProjDir)..\..\..\..\llvm_build\Debug\bin\llvm-tblgen.exe;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\Intrinsics.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsAArch64.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsARM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsHexagon.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsMips.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsNVVM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsPowerPC.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsR600.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsX86.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsXCore.td;$(ProjDir)..\..\..\..\llvm\include\llvm\CodeGen\ValueTypes.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\Intrinsics.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsAArch64.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsARM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsHexagon.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsMips.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsNVVM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsPowerPC.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsR600.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsX86.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsXCore.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Option\OptParser.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\Target.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetCallingConv.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetItinerary.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSchedule.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSelectionDAG.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\Intrinsics.td;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\include\llvm\IR\Intrinsics.gen.tmp - false - Building Intrinsics.gen... - setlocal -..\..\..\Release\bin\llvm-tblgen.exe -gen-intrinsic -I $(ProjDir)../../../../llvm/include/llvm/IR -I $(ProjDir)../../../../llvm/lib/Target -I $(ProjDir)../../../../llvm/include $(ProjDir)../../../../llvm/include/llvm/IR/Intrinsics.td -o $(ProjDir)../../../../llvm_build/include/llvm/IR/Intrinsics.gen.tmp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/43444065875149dfe37439390dbe0cfd/Intrinsics.gen.tmp.rule;$(ProjDir)..\..\..\..\llvm_build\Release\bin\llvm-tblgen.exe;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\Intrinsics.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsAArch64.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsARM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsHexagon.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsMips.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsNVVM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsPowerPC.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsR600.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsX86.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsXCore.td;$(ProjDir)..\..\..\..\llvm\include\llvm\CodeGen\ValueTypes.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\Intrinsics.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsAArch64.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsARM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsHexagon.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsMips.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsNVVM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsPowerPC.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsR600.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsX86.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsXCore.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Option\OptParser.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\Target.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetCallingConv.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetItinerary.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSchedule.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSelectionDAG.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\Intrinsics.td;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\include\llvm\IR\Intrinsics.gen.tmp - false - - - - - Updating Intrinsics.gen... - setlocal -copy /y $(ProjDir)..\..\..\..\llvm_build\include\llvm\IR\Intrinsics.gen.tmp $(ProjDir)..\..\..\..\llvm_build\include\llvm\IR\Intrinsics.gen -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/43444065875149dfe37439390dbe0cfd/Intrinsics.gen.rule;$(ProjDir)..\..\..\..\llvm_build\include\llvm\IR\Intrinsics.gen.tmp;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\include\llvm\IR\Intrinsics.gen - false - Updating Intrinsics.gen... - setlocal -copy /y $(ProjDir)..\..\..\..\llvm_build\include\llvm\IR\Intrinsics.gen.tmp $(ProjDir)..\..\..\..\llvm_build\include\llvm\IR\Intrinsics.gen -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/43444065875149dfe37439390dbe0cfd/Intrinsics.gen.rule;$(ProjDir)..\..\..\..\llvm_build\include\llvm\IR\Intrinsics.gen.tmp;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\include\llvm\IR\Intrinsics.gen - false - - - - - - setlocal -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/b72362b694f6c40fe24baa03116420e5/intrinsics_gen.rule;$(ProjDir)..\..\..\..\llvm_build\include\llvm\IR\Intrinsics.gen;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\include\llvm\IR\CMakeFiles\intrinsics_gen - false - - setlocal -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/b72362b694f6c40fe24baa03116420e5/intrinsics_gen.rule;$(ProjDir)..\..\..\..\llvm_build\include\llvm\IR\Intrinsics.gen;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\include\llvm\IR\CMakeFiles\intrinsics_gen - false - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - 530CB1CA-0D5D-4D1C-AE8A-F6E2438DB511 - - - - - - - \ No newline at end of file diff --git a/llvm_build/include/llvm/IR/intrinsics_gen.vcxproj.filters b/llvm_build/include/llvm/IR/intrinsics_gen.vcxproj.filters deleted file mode 100644 index b87ef2deb2..0000000000 --- a/llvm_build/include/llvm/IR/intrinsics_gen.vcxproj.filters +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CMake Rules - - - CMake Rules - - - CMake Rules - - - - - - - - {D67C7D72-C25D-412B-A18E-3E0785D9470F} - - - \ No newline at end of file diff --git a/llvm_build/include/llvm/Support/DataTypes.h b/llvm_build/include/llvm/Support/DataTypes.h deleted file mode 100644 index 7ad6e06552..0000000000 --- a/llvm_build/include/llvm/Support/DataTypes.h +++ /dev/null @@ -1,129 +0,0 @@ -/*===-- include/Support/DataTypes.h - Define fixed size types -----*- C -*-===*\ -|* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| -|* *| -|*===----------------------------------------------------------------------===*| -|* *| -|* This file contains definitions to figure out the size of _HOST_ data types.*| -|* This file is important because different host OS's define different macros,*| -|* which makes portability tough. This file exports the following *| -|* definitions: *| -|* *| -|* [u]int(32|64)_t : typedefs for signed and unsigned 32/64 bit system types*| -|* [U]INT(8|16|32|64)_(MIN|MAX) : Constants for the min and max values. *| -|* *| -|* No library is required when using these functions. *| -|* *| -|*===----------------------------------------------------------------------===*/ - -/* Please leave this file C-compatible. */ - -/* Please keep this file in sync with DataTypes.h.in */ - -#ifndef SUPPORT_DATATYPES_H -#define SUPPORT_DATATYPES_H - -#define HAVE_INTTYPES_H 1 -#define HAVE_STDINT_H 1 -#define HAVE_UINT64_T 1 -/* #undef HAVE_U_INT64_T */ - -#ifdef __cplusplus -#include -#else -#include -#endif - -#ifdef HAVE_INTTYPES_H -#include -#endif - -#ifdef HAVE_STDINT_H -#include -#else -#error "Compiler must provide an implementation of stdint.h" -#endif - -#ifndef _MSC_VER - -/* Note that this header's correct operation depends on __STDC_LIMIT_MACROS - being defined. We would define it here, but in order to prevent Bad Things - happening when system headers or C++ STL headers include stdint.h before we - define it here, we define it on the g++ command line (in Makefile.rules). */ -#if !defined(__STDC_LIMIT_MACROS) -# error "Must #define __STDC_LIMIT_MACROS before #including Support/DataTypes.h" -#endif - -#if !defined(__STDC_CONSTANT_MACROS) -# error "Must #define __STDC_CONSTANT_MACROS before " \ - "#including Support/DataTypes.h" -#endif - -/* Note that includes , if this is a C99 system. */ -#include - -#ifdef _AIX -#include "llvm/Support/AIXDataTypesFix.h" -#endif - -/* Handle incorrect definition of uint64_t as u_int64_t */ -#ifndef HAVE_UINT64_T -#ifdef HAVE_U_INT64_T -typedef u_int64_t uint64_t; -#else -# error "Don't have a definition for uint64_t on this platform" -#endif -#endif - -#else /* _MSC_VER */ -#include -#include -#include -#ifdef __cplusplus -#include -#else -#include -#endif - -#if defined(_WIN64) -typedef signed __int64 ssize_t; -#else -typedef signed int ssize_t; -#endif /* _WIN64 */ - -#ifndef HAVE_INTTYPES_H -#define PRId64 "I64d" -#define PRIi64 "I64i" -#define PRIo64 "I64o" -#define PRIu64 "I64u" -#define PRIx64 "I64x" -#define PRIX64 "I64X" -#endif /* HAVE_INTTYPES_H */ - -#endif /* _MSC_VER */ - -/* Set defaults for constants which we cannot find. */ -#if !defined(INT64_MAX) -# define INT64_MAX 9223372036854775807LL -#endif -#if !defined(INT64_MIN) -# define INT64_MIN ((-INT64_MAX)-1) -#endif -#if !defined(UINT64_MAX) -# define UINT64_MAX 0xffffffffffffffffULL -#endif - -#if __GNUC__ > 3 -#define END_WITH_NULL __attribute__((sentinel)) -#else -#define END_WITH_NULL -#endif - -#ifndef HUGE_VALF -#define HUGE_VALF (float)HUGE_VAL -#endif - -#endif /* SUPPORT_DATATYPES_H */ diff --git a/llvm_build/include/llvm/module.modulemap b/llvm_build/include/llvm/module.modulemap deleted file mode 100644 index 7150fe9393..0000000000 --- a/llvm_build/include/llvm/module.modulemap +++ /dev/null @@ -1,5 +0,0 @@ -// This is copied into the build area for a $src != $build compilation. -module LLVM_Support_DataTypes { - header "Support/DataTypes.h" - export * -} diff --git a/llvm_build/lib/Analysis/IPA/LLVMipa.vcxproj b/llvm_build/lib/Analysis/IPA/LLVMipa.vcxproj deleted file mode 100644 index 12225c0282..0000000000 --- a/llvm_build/lib/Analysis/IPA/LLVMipa.vcxproj +++ /dev/null @@ -1,169 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {86794B60-FAC8-4051-B465-23F436027A91} - Win32Proj - x64 - LLVMipa - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\..\llvm_build\Debug\lib\ - LLVMipa.dir\Debug\ - LLVMipa - .lib - $(ProjDir)..\..\..\..\llvm_build\Release\lib\ - LLVMipa.dir\Release\ - LLVMipa - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\Analysis\IPA;$(ProjDir)..\..\..\..\llvm\lib\Analysis\IPA;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\Analysis\IPA;$(ProjDir)..\..\..\..\llvm\lib\Analysis\IPA;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\Analysis\IPA;$(ProjDir)..\..\..\..\llvm\lib\Analysis\IPA;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\Analysis\IPA;$(ProjDir)..\..\..\..\llvm\lib\Analysis\IPA;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\Analysis\IPA;$(ProjDir)..\..\..\..\llvm\lib\Analysis\IPA;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\Analysis\IPA;$(ProjDir)..\..\..\..\llvm\lib\Analysis\IPA;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../../llvm/lib/Analysis/IPA/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/Analysis/IPA/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Analysis\IPA\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Analysis\IPA\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Analysis\IPA\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../../llvm/lib/Analysis/IPA/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/Analysis/IPA/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Analysis\IPA\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Analysis\IPA\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Analysis\IPA\CMakeFiles\generate.stamp - false - - - - - - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - 0B9F2D3D-23BA-4B2F-9D24-1F2742BE6FAA - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/Analysis/IPA/LLVMipa.vcxproj.filters b/llvm_build/lib/Analysis/IPA/LLVMipa.vcxproj.filters deleted file mode 100644 index 477ea2aeaa..0000000000 --- a/llvm_build/lib/Analysis/IPA/LLVMipa.vcxproj.filters +++ /dev/null @@ -1,33 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - \ No newline at end of file diff --git a/llvm_build/lib/Analysis/LLVMAnalysis.vcxproj b/llvm_build/lib/Analysis/LLVMAnalysis.vcxproj deleted file mode 100644 index 8795240ded..0000000000 --- a/llvm_build/lib/Analysis/LLVMAnalysis.vcxproj +++ /dev/null @@ -1,217 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {BD94F06C-B7AD-46CF-9B17-CBC40BDFF262} - Win32Proj - x64 - LLVMAnalysis - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\llvm_build\Debug\lib\ - LLVMAnalysis.dir\Debug\ - LLVMAnalysis - .lib - $(ProjDir)..\..\..\llvm_build\Release\lib\ - LLVMAnalysis.dir\Release\ - LLVMAnalysis - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\Analysis;$(ProjDir)..\..\..\llvm\lib\Analysis;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\Analysis;$(ProjDir)..\..\..\llvm\lib\Analysis;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\Analysis;$(ProjDir)..\..\..\llvm\lib\Analysis;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\Analysis;$(ProjDir)..\..\..\llvm\lib\Analysis;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\Analysis;$(ProjDir)..\..\..\llvm\lib\Analysis;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\Analysis;$(ProjDir)..\..\..\llvm\lib\Analysis;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../llvm/lib/Analysis/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/Analysis/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\Analysis\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\Analysis\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\Analysis\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../llvm/lib/Analysis/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/Analysis/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\Analysis\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\Analysis\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\Analysis\CMakeFiles\generate.stamp - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - 0B9F2D3D-23BA-4B2F-9D24-1F2742BE6FAA - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/Analysis/LLVMAnalysis.vcxproj.filters b/llvm_build/lib/Analysis/LLVMAnalysis.vcxproj.filters deleted file mode 100644 index 69a7235300..0000000000 --- a/llvm_build/lib/Analysis/LLVMAnalysis.vcxproj.filters +++ /dev/null @@ -1,177 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - \ No newline at end of file diff --git a/llvm_build/lib/AsmParser/LLVMAsmParser.vcxproj b/llvm_build/lib/AsmParser/LLVMAsmParser.vcxproj deleted file mode 100644 index 0f96d962db..0000000000 --- a/llvm_build/lib/AsmParser/LLVMAsmParser.vcxproj +++ /dev/null @@ -1,165 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {BF1E9A53-4BB0-4EC2-B76D-F3FE7573B2C6} - Win32Proj - x64 - LLVMAsmParser - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\llvm_build\Debug\lib\ - LLVMAsmParser.dir\Debug\ - LLVMAsmParser - .lib - $(ProjDir)..\..\..\llvm_build\Release\lib\ - LLVMAsmParser.dir\Release\ - LLVMAsmParser - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\AsmParser;$(ProjDir)..\..\..\llvm\lib\AsmParser;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\AsmParser;$(ProjDir)..\..\..\llvm\lib\AsmParser;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\AsmParser;$(ProjDir)..\..\..\llvm\lib\AsmParser;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\AsmParser;$(ProjDir)..\..\..\llvm\lib\AsmParser;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\AsmParser;$(ProjDir)..\..\..\llvm\lib\AsmParser;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\AsmParser;$(ProjDir)..\..\..\llvm\lib\AsmParser;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../llvm/lib/AsmParser/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/AsmParser/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\AsmParser\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\AsmParser\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\AsmParser\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../llvm/lib/AsmParser/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/AsmParser/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\AsmParser\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\AsmParser\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\AsmParser\CMakeFiles\generate.stamp - false - - - - - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/AsmParser/LLVMAsmParser.vcxproj.filters b/llvm_build/lib/AsmParser/LLVMAsmParser.vcxproj.filters deleted file mode 100644 index 45653e840d..0000000000 --- a/llvm_build/lib/AsmParser/LLVMAsmParser.vcxproj.filters +++ /dev/null @@ -1,35 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - {C4A58D48-0D94-4539-AE81-2E13421E4512} - - - \ No newline at end of file diff --git a/llvm_build/lib/Bitcode/Reader/LLVMBitReader.vcxproj b/llvm_build/lib/Bitcode/Reader/LLVMBitReader.vcxproj deleted file mode 100644 index 1bc89f3ad3..0000000000 --- a/llvm_build/lib/Bitcode/Reader/LLVMBitReader.vcxproj +++ /dev/null @@ -1,166 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {76CC12E3-6F30-4032-B5C2-5969BDE8E027} - Win32Proj - x64 - LLVMBitReader - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\..\llvm_build\Debug\lib\ - LLVMBitReader.dir\Debug\ - LLVMBitReader - .lib - $(ProjDir)..\..\..\..\llvm_build\Release\lib\ - LLVMBitReader.dir\Release\ - LLVMBitReader - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\Bitcode\Reader;$(ProjDir)..\..\..\..\llvm\lib\Bitcode\Reader;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\Bitcode\Reader;$(ProjDir)..\..\..\..\llvm\lib\Bitcode\Reader;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\Bitcode\Reader;$(ProjDir)..\..\..\..\llvm\lib\Bitcode\Reader;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\Bitcode\Reader;$(ProjDir)..\..\..\..\llvm\lib\Bitcode\Reader;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\Bitcode\Reader;$(ProjDir)..\..\..\..\llvm\lib\Bitcode\Reader;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\Bitcode\Reader;$(ProjDir)..\..\..\..\llvm\lib\Bitcode\Reader;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../../llvm/lib/Bitcode/Reader/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/Bitcode/Reader/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Bitcode\Reader\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Bitcode\Reader\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Bitcode\Reader\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../../llvm/lib/Bitcode/Reader/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/Bitcode/Reader/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Bitcode\Reader\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Bitcode\Reader\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Bitcode\Reader\CMakeFiles\generate.stamp - false - - - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - 0B9F2D3D-23BA-4B2F-9D24-1F2742BE6FAA - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/Bitcode/Reader/LLVMBitReader.vcxproj.filters b/llvm_build/lib/Bitcode/Reader/LLVMBitReader.vcxproj.filters deleted file mode 100644 index 78a969862c..0000000000 --- a/llvm_build/lib/Bitcode/Reader/LLVMBitReader.vcxproj.filters +++ /dev/null @@ -1,29 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - {C4A58D48-0D94-4539-AE81-2E13421E4512} - - - \ No newline at end of file diff --git a/llvm_build/lib/Bitcode/Writer/LLVMBitWriter.vcxproj b/llvm_build/lib/Bitcode/Writer/LLVMBitWriter.vcxproj deleted file mode 100644 index e5beeb1617..0000000000 --- a/llvm_build/lib/Bitcode/Writer/LLVMBitWriter.vcxproj +++ /dev/null @@ -1,164 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {1DA0E565-1BE1-4386-80DD-EEDB6C97D436} - Win32Proj - x64 - LLVMBitWriter - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\..\llvm_build\Debug\lib\ - LLVMBitWriter.dir\Debug\ - LLVMBitWriter - .lib - $(ProjDir)..\..\..\..\llvm_build\Release\lib\ - LLVMBitWriter.dir\Release\ - LLVMBitWriter - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\Bitcode\Writer;$(ProjDir)..\..\..\..\llvm\lib\Bitcode\Writer;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\Bitcode\Writer;$(ProjDir)..\..\..\..\llvm\lib\Bitcode\Writer;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\Bitcode\Writer;$(ProjDir)..\..\..\..\llvm\lib\Bitcode\Writer;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\Bitcode\Writer;$(ProjDir)..\..\..\..\llvm\lib\Bitcode\Writer;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\Bitcode\Writer;$(ProjDir)..\..\..\..\llvm\lib\Bitcode\Writer;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\Bitcode\Writer;$(ProjDir)..\..\..\..\llvm\lib\Bitcode\Writer;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../../llvm/lib/Bitcode/Writer/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/Bitcode/Writer/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Bitcode\Writer\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Bitcode\Writer\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Bitcode\Writer\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../../llvm/lib/Bitcode/Writer/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/Bitcode/Writer/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Bitcode\Writer\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Bitcode\Writer\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Bitcode\Writer\CMakeFiles\generate.stamp - false - - - - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/Bitcode/Writer/LLVMBitWriter.vcxproj.filters b/llvm_build/lib/Bitcode/Writer/LLVMBitWriter.vcxproj.filters deleted file mode 100644 index 9926daefb5..0000000000 --- a/llvm_build/lib/Bitcode/Writer/LLVMBitWriter.vcxproj.filters +++ /dev/null @@ -1,32 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - {C4A58D48-0D94-4539-AE81-2E13421E4512} - - - \ No newline at end of file diff --git a/llvm_build/lib/CodeGen/AsmPrinter/LLVMAsmPrinter.vcxproj b/llvm_build/lib/CodeGen/AsmPrinter/LLVMAsmPrinter.vcxproj deleted file mode 100644 index ea9f452157..0000000000 --- a/llvm_build/lib/CodeGen/AsmPrinter/LLVMAsmPrinter.vcxproj +++ /dev/null @@ -1,197 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {4D940A53-8A9E-47F6-A098-6B8FD6B14E75} - Win32Proj - x64 - LLVMAsmPrinter - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\..\llvm_build\Debug\lib\ - LLVMAsmPrinter.dir\Debug\ - LLVMAsmPrinter - .lib - $(ProjDir)..\..\..\..\llvm_build\Release\lib\ - LLVMAsmPrinter.dir\Release\ - LLVMAsmPrinter - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\CodeGen\AsmPrinter;$(ProjDir)..\..\..\..\llvm\lib\CodeGen\AsmPrinter;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\CodeGen\AsmPrinter;$(ProjDir)..\..\..\..\llvm\lib\CodeGen\AsmPrinter;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\CodeGen\AsmPrinter;$(ProjDir)..\..\..\..\llvm\lib\CodeGen\AsmPrinter;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\CodeGen\AsmPrinter;$(ProjDir)..\..\..\..\llvm\lib\CodeGen\AsmPrinter;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\CodeGen\AsmPrinter;$(ProjDir)..\..\..\..\llvm\lib\CodeGen\AsmPrinter;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\CodeGen\AsmPrinter;$(ProjDir)..\..\..\..\llvm\lib\CodeGen\AsmPrinter;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../../llvm/lib/CodeGen/AsmPrinter/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/CodeGen/AsmPrinter/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\CodeGen\AsmPrinter\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\CodeGen\AsmPrinter\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\CodeGen\AsmPrinter\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../../llvm/lib/CodeGen/AsmPrinter/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/CodeGen/AsmPrinter/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\CodeGen\AsmPrinter\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\CodeGen\AsmPrinter\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\CodeGen\AsmPrinter\CMakeFiles\generate.stamp - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - 0B9F2D3D-23BA-4B2F-9D24-1F2742BE6FAA - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/CodeGen/AsmPrinter/LLVMAsmPrinter.vcxproj.filters b/llvm_build/lib/CodeGen/AsmPrinter/LLVMAsmPrinter.vcxproj.filters deleted file mode 100644 index 0f83c1ba13..0000000000 --- a/llvm_build/lib/CodeGen/AsmPrinter/LLVMAsmPrinter.vcxproj.filters +++ /dev/null @@ -1,122 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - {C4A58D48-0D94-4539-AE81-2E13421E4512} - - - \ No newline at end of file diff --git a/llvm_build/lib/CodeGen/LLVMCodeGen.vcxproj b/llvm_build/lib/CodeGen/LLVMCodeGen.vcxproj deleted file mode 100644 index 19d5583910..0000000000 --- a/llvm_build/lib/CodeGen/LLVMCodeGen.vcxproj +++ /dev/null @@ -1,294 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {B352F418-CD68-473E-817F-70F7B3BF99B8} - Win32Proj - x64 - LLVMCodeGen - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\llvm_build\Debug\lib\ - LLVMCodeGen.dir\Debug\ - LLVMCodeGen - .lib - $(ProjDir)..\..\..\llvm_build\Release\lib\ - LLVMCodeGen.dir\Release\ - LLVMCodeGen - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\CodeGen;$(ProjDir)..\..\..\llvm\lib\CodeGen;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\CodeGen;$(ProjDir)..\..\..\llvm\lib\CodeGen;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\CodeGen;$(ProjDir)..\..\..\llvm\lib\CodeGen;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\CodeGen;$(ProjDir)..\..\..\llvm\lib\CodeGen;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\CodeGen;$(ProjDir)..\..\..\llvm\lib\CodeGen;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\CodeGen;$(ProjDir)..\..\..\llvm\lib\CodeGen;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../llvm/lib/CodeGen/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/CodeGen/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\CodeGen\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\CodeGen\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\CodeGen\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../llvm/lib/CodeGen/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/CodeGen/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\CodeGen\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\CodeGen\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\CodeGen\CMakeFiles\generate.stamp - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - 0B9F2D3D-23BA-4B2F-9D24-1F2742BE6FAA - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/CodeGen/LLVMCodeGen.vcxproj.filters b/llvm_build/lib/CodeGen/LLVMCodeGen.vcxproj.filters deleted file mode 100644 index 743bf3ddba..0000000000 --- a/llvm_build/lib/CodeGen/LLVMCodeGen.vcxproj.filters +++ /dev/null @@ -1,413 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - {C4A58D48-0D94-4539-AE81-2E13421E4512} - - - \ No newline at end of file diff --git a/llvm_build/lib/CodeGen/SelectionDAG/LLVMSelectionDAG.vcxproj b/llvm_build/lib/CodeGen/SelectionDAG/LLVMSelectionDAG.vcxproj deleted file mode 100644 index e2bcb3cf9a..0000000000 --- a/llvm_build/lib/CodeGen/SelectionDAG/LLVMSelectionDAG.vcxproj +++ /dev/null @@ -1,190 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {8E00716F-681F-4EA3-96AC-F39422668ACF} - Win32Proj - x64 - LLVMSelectionDAG - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\..\llvm_build\Debug\lib\ - LLVMSelectionDAG.dir\Debug\ - LLVMSelectionDAG - .lib - $(ProjDir)..\..\..\..\llvm_build\Release\lib\ - LLVMSelectionDAG.dir\Release\ - LLVMSelectionDAG - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\CodeGen\SelectionDAG;$(ProjDir)..\..\..\..\llvm\lib\CodeGen\SelectionDAG;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\CodeGen\SelectionDAG;$(ProjDir)..\..\..\..\llvm\lib\CodeGen\SelectionDAG;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\CodeGen\SelectionDAG;$(ProjDir)..\..\..\..\llvm\lib\CodeGen\SelectionDAG;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\CodeGen\SelectionDAG;$(ProjDir)..\..\..\..\llvm\lib\CodeGen\SelectionDAG;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\CodeGen\SelectionDAG;$(ProjDir)..\..\..\..\llvm\lib\CodeGen\SelectionDAG;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\CodeGen\SelectionDAG;$(ProjDir)..\..\..\..\llvm\lib\CodeGen\SelectionDAG;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../../llvm/lib/CodeGen/SelectionDAG/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/CodeGen/SelectionDAG/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\CodeGen\SelectionDAG\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\CodeGen\SelectionDAG\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\CodeGen\SelectionDAG\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../../llvm/lib/CodeGen/SelectionDAG/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/CodeGen/SelectionDAG/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\CodeGen\SelectionDAG\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\CodeGen\SelectionDAG\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\CodeGen\SelectionDAG\CMakeFiles\generate.stamp - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - 0B9F2D3D-23BA-4B2F-9D24-1F2742BE6FAA - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/CodeGen/SelectionDAG/LLVMSelectionDAG.vcxproj.filters b/llvm_build/lib/CodeGen/SelectionDAG/LLVMSelectionDAG.vcxproj.filters deleted file mode 100644 index 1eac35c9e0..0000000000 --- a/llvm_build/lib/CodeGen/SelectionDAG/LLVMSelectionDAG.vcxproj.filters +++ /dev/null @@ -1,101 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - {C4A58D48-0D94-4539-AE81-2E13421E4512} - - - \ No newline at end of file diff --git a/llvm_build/lib/DebugInfo/LLVMDebugInfo.vcxproj b/llvm_build/lib/DebugInfo/LLVMDebugInfo.vcxproj deleted file mode 100644 index 01d4b26843..0000000000 --- a/llvm_build/lib/DebugInfo/LLVMDebugInfo.vcxproj +++ /dev/null @@ -1,188 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {F571D01D-BCCD-4454-9338-D487C98699DB} - Win32Proj - x64 - LLVMDebugInfo - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\llvm_build\Debug\lib\ - LLVMDebugInfo.dir\Debug\ - LLVMDebugInfo - .lib - $(ProjDir)..\..\..\llvm_build\Release\lib\ - LLVMDebugInfo.dir\Release\ - LLVMDebugInfo - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\DebugInfo;$(ProjDir)..\..\..\llvm\lib\DebugInfo;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\DebugInfo;$(ProjDir)..\..\..\llvm\lib\DebugInfo;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\DebugInfo;$(ProjDir)..\..\..\llvm\lib\DebugInfo;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\DebugInfo;$(ProjDir)..\..\..\llvm\lib\DebugInfo;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\DebugInfo;$(ProjDir)..\..\..\llvm\lib\DebugInfo;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\DebugInfo;$(ProjDir)..\..\..\llvm\lib\DebugInfo;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../llvm/lib/DebugInfo/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/DebugInfo/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\DebugInfo\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\DebugInfo\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\DebugInfo\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../llvm/lib/DebugInfo/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/DebugInfo/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\DebugInfo\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\DebugInfo\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\DebugInfo\CMakeFiles\generate.stamp - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/DebugInfo/LLVMDebugInfo.vcxproj.filters b/llvm_build/lib/DebugInfo/LLVMDebugInfo.vcxproj.filters deleted file mode 100644 index f96eb4009d..0000000000 --- a/llvm_build/lib/DebugInfo/LLVMDebugInfo.vcxproj.filters +++ /dev/null @@ -1,104 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - {C4A58D48-0D94-4539-AE81-2E13421E4512} - - - \ No newline at end of file diff --git a/llvm_build/lib/ExecutionEngine/Interpreter/LLVMInterpreter.vcxproj b/llvm_build/lib/ExecutionEngine/Interpreter/LLVMInterpreter.vcxproj deleted file mode 100644 index 0c388261d7..0000000000 --- a/llvm_build/lib/ExecutionEngine/Interpreter/LLVMInterpreter.vcxproj +++ /dev/null @@ -1,166 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {CA722C21-316D-4851-A06E-5F442A6298F9} - Win32Proj - x64 - LLVMInterpreter - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\..\llvm_build\Debug\lib\ - LLVMInterpreter.dir\Debug\ - LLVMInterpreter - .lib - $(ProjDir)..\..\..\..\llvm_build\Release\lib\ - LLVMInterpreter.dir\Release\ - LLVMInterpreter - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\Interpreter;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\Interpreter;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\Interpreter;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\Interpreter;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\Interpreter;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\Interpreter;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\Interpreter;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\Interpreter;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\Interpreter;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\Interpreter;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\Interpreter;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\Interpreter;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../../llvm/lib/ExecutionEngine/Interpreter/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/ExecutionEngine/Interpreter/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\Interpreter\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\Interpreter\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\Interpreter\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../../llvm/lib/ExecutionEngine/Interpreter/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/ExecutionEngine/Interpreter/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\Interpreter\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\Interpreter\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\Interpreter\CMakeFiles\generate.stamp - false - - - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - 0B9F2D3D-23BA-4B2F-9D24-1F2742BE6FAA - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/ExecutionEngine/Interpreter/LLVMInterpreter.vcxproj.filters b/llvm_build/lib/ExecutionEngine/Interpreter/LLVMInterpreter.vcxproj.filters deleted file mode 100644 index 23526c1b06..0000000000 --- a/llvm_build/lib/ExecutionEngine/Interpreter/LLVMInterpreter.vcxproj.filters +++ /dev/null @@ -1,29 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - {C4A58D48-0D94-4539-AE81-2E13421E4512} - - - \ No newline at end of file diff --git a/llvm_build/lib/ExecutionEngine/JIT/LLVMJIT.vcxproj b/llvm_build/lib/ExecutionEngine/JIT/LLVMJIT.vcxproj deleted file mode 100644 index de63efcd96..0000000000 --- a/llvm_build/lib/ExecutionEngine/JIT/LLVMJIT.vcxproj +++ /dev/null @@ -1,163 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {29FCE658-66A9-4F56-AEDA-83A981ECA87C} - Win32Proj - x64 - LLVMJIT - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\..\llvm_build\Debug\lib\ - LLVMJIT.dir\Debug\ - LLVMJIT - .lib - $(ProjDir)..\..\..\..\llvm_build\Release\lib\ - LLVMJIT.dir\Release\ - LLVMJIT - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\JIT;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\JIT;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;ENABLE_X86_JIT;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;ENABLE_X86_JIT;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\JIT;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\JIT;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\JIT;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\JIT;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\JIT;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\JIT;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;ENABLE_X86_JIT;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;ENABLE_X86_JIT;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\JIT;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\JIT;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\JIT;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\JIT;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../../llvm/lib/ExecutionEngine/JIT/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/ExecutionEngine/JIT/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\JIT\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\JIT\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\JIT\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../../llvm/lib/ExecutionEngine/JIT/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/ExecutionEngine/JIT/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\JIT\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\JIT\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\JIT\CMakeFiles\generate.stamp - false - - - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/ExecutionEngine/JIT/LLVMJIT.vcxproj.filters b/llvm_build/lib/ExecutionEngine/JIT/LLVMJIT.vcxproj.filters deleted file mode 100644 index 1f05fd5136..0000000000 --- a/llvm_build/lib/ExecutionEngine/JIT/LLVMJIT.vcxproj.filters +++ /dev/null @@ -1,29 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - {C4A58D48-0D94-4539-AE81-2E13421E4512} - - - \ No newline at end of file diff --git a/llvm_build/lib/ExecutionEngine/LLVMExecutionEngine.vcxproj b/llvm_build/lib/ExecutionEngine/LLVMExecutionEngine.vcxproj deleted file mode 100644 index f585cddfdd..0000000000 --- a/llvm_build/lib/ExecutionEngine/LLVMExecutionEngine.vcxproj +++ /dev/null @@ -1,164 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {DC3C8227-9E58-421A-9199-BB4C193BFFD8} - Win32Proj - x64 - LLVMExecutionEngine - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\llvm_build\Debug\lib\ - LLVMExecutionEngine.dir\Debug\ - LLVMExecutionEngine - .lib - $(ProjDir)..\..\..\llvm_build\Release\lib\ - LLVMExecutionEngine.dir\Release\ - LLVMExecutionEngine - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\ExecutionEngine;$(ProjDir)..\..\..\llvm\lib\ExecutionEngine;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\ExecutionEngine;$(ProjDir)..\..\..\llvm\lib\ExecutionEngine;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\ExecutionEngine;$(ProjDir)..\..\..\llvm\lib\ExecutionEngine;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\ExecutionEngine;$(ProjDir)..\..\..\llvm\lib\ExecutionEngine;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\ExecutionEngine;$(ProjDir)..\..\..\llvm\lib\ExecutionEngine;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\ExecutionEngine;$(ProjDir)..\..\..\llvm\lib\ExecutionEngine;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../llvm/lib/ExecutionEngine/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/ExecutionEngine/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\ExecutionEngine\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\ExecutionEngine\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\ExecutionEngine\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../llvm/lib/ExecutionEngine/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/ExecutionEngine/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\ExecutionEngine\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\ExecutionEngine\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\ExecutionEngine\CMakeFiles\generate.stamp - false - - - - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/ExecutionEngine/LLVMExecutionEngine.vcxproj.filters b/llvm_build/lib/ExecutionEngine/LLVMExecutionEngine.vcxproj.filters deleted file mode 100644 index ea8313061d..0000000000 --- a/llvm_build/lib/ExecutionEngine/LLVMExecutionEngine.vcxproj.filters +++ /dev/null @@ -1,32 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - {C4A58D48-0D94-4539-AE81-2E13421E4512} - - - \ No newline at end of file diff --git a/llvm_build/lib/ExecutionEngine/MCJIT/LLVMMCJIT.vcxproj b/llvm_build/lib/ExecutionEngine/MCJIT/LLVMMCJIT.vcxproj deleted file mode 100644 index 4c3a056d57..0000000000 --- a/llvm_build/lib/ExecutionEngine/MCJIT/LLVMMCJIT.vcxproj +++ /dev/null @@ -1,162 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {4649C675-9878-42A5-B937-B8CD05372B9B} - Win32Proj - x64 - LLVMMCJIT - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\..\llvm_build\Debug\lib\ - LLVMMCJIT.dir\Debug\ - LLVMMCJIT - .lib - $(ProjDir)..\..\..\..\llvm_build\Release\lib\ - LLVMMCJIT.dir\Release\ - LLVMMCJIT - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\MCJIT;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\MCJIT;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\MCJIT;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\MCJIT;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\MCJIT;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\MCJIT;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\MCJIT;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\MCJIT;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\MCJIT;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\MCJIT;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\MCJIT;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\MCJIT;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../../llvm/lib/ExecutionEngine/MCJIT/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/ExecutionEngine/MCJIT/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\MCJIT\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\MCJIT\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\MCJIT\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../../llvm/lib/ExecutionEngine/MCJIT/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/ExecutionEngine/MCJIT/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\MCJIT\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\MCJIT\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\MCJIT\CMakeFiles\generate.stamp - false - - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/ExecutionEngine/MCJIT/LLVMMCJIT.vcxproj.filters b/llvm_build/lib/ExecutionEngine/MCJIT/LLVMMCJIT.vcxproj.filters deleted file mode 100644 index 0fba9df933..0000000000 --- a/llvm_build/lib/ExecutionEngine/MCJIT/LLVMMCJIT.vcxproj.filters +++ /dev/null @@ -1,26 +0,0 @@ - - - - Source Files - - - Source Files - - - - - Header Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - {C4A58D48-0D94-4539-AE81-2E13421E4512} - - - \ No newline at end of file diff --git a/llvm_build/lib/ExecutionEngine/RuntimeDyld/LLVMRuntimeDyld.vcxproj b/llvm_build/lib/ExecutionEngine/RuntimeDyld/LLVMRuntimeDyld.vcxproj deleted file mode 100644 index 257aba4c38..0000000000 --- a/llvm_build/lib/ExecutionEngine/RuntimeDyld/LLVMRuntimeDyld.vcxproj +++ /dev/null @@ -1,169 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {60656ECA-F89F-42B4-B627-663E8480472A} - Win32Proj - x64 - LLVMRuntimeDyld - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\..\llvm_build\Debug\lib\ - LLVMRuntimeDyld.dir\Debug\ - LLVMRuntimeDyld - .lib - $(ProjDir)..\..\..\..\llvm_build\Release\lib\ - LLVMRuntimeDyld.dir\Release\ - LLVMRuntimeDyld - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\RuntimeDyld;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\RuntimeDyld;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\RuntimeDyld;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\RuntimeDyld;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\RuntimeDyld;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\RuntimeDyld;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\RuntimeDyld;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\RuntimeDyld;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\RuntimeDyld;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\RuntimeDyld;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\RuntimeDyld;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\RuntimeDyld;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../../llvm/lib/ExecutionEngine/RuntimeDyld/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/ExecutionEngine/RuntimeDyld/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\RuntimeDyld\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\RuntimeDyld\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\RuntimeDyld\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../../llvm/lib/ExecutionEngine/RuntimeDyld/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/ExecutionEngine/RuntimeDyld/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\RuntimeDyld\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\ExecutionEngine\RuntimeDyld\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\ExecutionEngine\RuntimeDyld\CMakeFiles\generate.stamp - false - - - - - - - - - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/ExecutionEngine/RuntimeDyld/LLVMRuntimeDyld.vcxproj.filters b/llvm_build/lib/ExecutionEngine/RuntimeDyld/LLVMRuntimeDyld.vcxproj.filters deleted file mode 100644 index eaeaede1bc..0000000000 --- a/llvm_build/lib/ExecutionEngine/RuntimeDyld/LLVMRuntimeDyld.vcxproj.filters +++ /dev/null @@ -1,47 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - {C4A58D48-0D94-4539-AE81-2E13421E4512} - - - \ No newline at end of file diff --git a/llvm_build/lib/IR/LLVMCore.vcxproj b/llvm_build/lib/IR/LLVMCore.vcxproj deleted file mode 100644 index bf45308fd5..0000000000 --- a/llvm_build/lib/IR/LLVMCore.vcxproj +++ /dev/null @@ -1,214 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {E56C0AA9-93F3-4569-88F9-B4439AFEA608} - Win32Proj - x64 - LLVMCore - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\llvm_build\Debug\lib\ - LLVMCore.dir\Debug\ - LLVMCore - .lib - $(ProjDir)..\..\..\llvm_build\Release\lib\ - LLVMCore.dir\Release\ - LLVMCore - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\IR;$(ProjDir)..\..\..\llvm\lib\IR;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\IR;$(ProjDir)..\..\..\llvm\lib\IR;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\IR;$(ProjDir)..\..\..\llvm\lib\IR;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\IR;$(ProjDir)..\..\..\llvm\lib\IR;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\IR;$(ProjDir)..\..\..\llvm\lib\IR;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\IR;$(ProjDir)..\..\..\llvm\lib\IR;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../llvm/lib/IR/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/IR/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\IR\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\IR\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\IR\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../llvm/lib/IR/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/IR/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\IR\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\IR\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\IR\CMakeFiles\generate.stamp - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - 0B9F2D3D-23BA-4B2F-9D24-1F2742BE6FAA - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/IR/LLVMCore.vcxproj.filters b/llvm_build/lib/IR/LLVMCore.vcxproj.filters deleted file mode 100644 index e3dffcf144..0000000000 --- a/llvm_build/lib/IR/LLVMCore.vcxproj.filters +++ /dev/null @@ -1,173 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - {C4A58D48-0D94-4539-AE81-2E13421E4512} - - - \ No newline at end of file diff --git a/llvm_build/lib/IRReader/LLVMIRReader.vcxproj b/llvm_build/lib/IRReader/LLVMIRReader.vcxproj deleted file mode 100644 index 487255a09e..0000000000 --- a/llvm_build/lib/IRReader/LLVMIRReader.vcxproj +++ /dev/null @@ -1,160 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {AFE78A50-475F-4BC9-A6B9-D66BE7DAD20E} - Win32Proj - x64 - LLVMIRReader - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\llvm_build\Debug\lib\ - LLVMIRReader.dir\Debug\ - LLVMIRReader - .lib - $(ProjDir)..\..\..\llvm_build\Release\lib\ - LLVMIRReader.dir\Release\ - LLVMIRReader - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\IRReader;$(ProjDir)..\..\..\llvm\lib\IRReader;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\IRReader;$(ProjDir)..\..\..\llvm\lib\IRReader;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\IRReader;$(ProjDir)..\..\..\llvm\lib\IRReader;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\IRReader;$(ProjDir)..\..\..\llvm\lib\IRReader;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\IRReader;$(ProjDir)..\..\..\llvm\lib\IRReader;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\IRReader;$(ProjDir)..\..\..\llvm\lib\IRReader;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../llvm/lib/IRReader/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/IRReader/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\IRReader\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\IRReader\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\IRReader\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../llvm/lib/IRReader/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/IRReader/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\IRReader\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\IRReader\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\IRReader\CMakeFiles\generate.stamp - false - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/IRReader/LLVMIRReader.vcxproj.filters b/llvm_build/lib/IRReader/LLVMIRReader.vcxproj.filters deleted file mode 100644 index 345001407c..0000000000 --- a/llvm_build/lib/IRReader/LLVMIRReader.vcxproj.filters +++ /dev/null @@ -1,15 +0,0 @@ - - - - Source Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - \ No newline at end of file diff --git a/llvm_build/lib/LTO/LLVMLTO.vcxproj b/llvm_build/lib/LTO/LLVMLTO.vcxproj deleted file mode 100644 index 2369fcec91..0000000000 --- a/llvm_build/lib/LTO/LLVMLTO.vcxproj +++ /dev/null @@ -1,161 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {A6B5AADA-0430-4F87-AAD3-9518680EE7C8} - Win32Proj - x64 - LLVMLTO - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\llvm_build\Debug\lib\ - LLVMLTO.dir\Debug\ - LLVMLTO - .lib - $(ProjDir)..\..\..\llvm_build\Release\lib\ - LLVMLTO.dir\Release\ - LLVMLTO - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\LTO;$(ProjDir)..\..\..\llvm\lib\LTO;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\LTO;$(ProjDir)..\..\..\llvm\lib\LTO;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\LTO;$(ProjDir)..\..\..\llvm\lib\LTO;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\LTO;$(ProjDir)..\..\..\llvm\lib\LTO;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\LTO;$(ProjDir)..\..\..\llvm\lib\LTO;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\LTO;$(ProjDir)..\..\..\llvm\lib\LTO;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../llvm/lib/LTO/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/LTO/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\LTO\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\LTO\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\LTO\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../llvm/lib/LTO/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/LTO/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\LTO\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\LTO\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\LTO\CMakeFiles\generate.stamp - false - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/LTO/LLVMLTO.vcxproj.filters b/llvm_build/lib/LTO/LLVMLTO.vcxproj.filters deleted file mode 100644 index 5e885ce9d0..0000000000 --- a/llvm_build/lib/LTO/LLVMLTO.vcxproj.filters +++ /dev/null @@ -1,18 +0,0 @@ - - - - Source Files - - - Source Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - \ No newline at end of file diff --git a/llvm_build/lib/LineEditor/LLVMLineEditor.vcxproj b/llvm_build/lib/LineEditor/LLVMLineEditor.vcxproj deleted file mode 100644 index 9603411c6d..0000000000 --- a/llvm_build/lib/LineEditor/LLVMLineEditor.vcxproj +++ /dev/null @@ -1,160 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {8E246D74-71A2-4F38-9949-ED0220877BB2} - Win32Proj - x64 - LLVMLineEditor - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\llvm_build\Debug\lib\ - LLVMLineEditor.dir\Debug\ - LLVMLineEditor - .lib - $(ProjDir)..\..\..\llvm_build\Release\lib\ - LLVMLineEditor.dir\Release\ - LLVMLineEditor - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\LineEditor;$(ProjDir)..\..\..\llvm\lib\LineEditor;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\LineEditor;$(ProjDir)..\..\..\llvm\lib\LineEditor;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\LineEditor;$(ProjDir)..\..\..\llvm\lib\LineEditor;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\LineEditor;$(ProjDir)..\..\..\llvm\lib\LineEditor;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\LineEditor;$(ProjDir)..\..\..\llvm\lib\LineEditor;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\LineEditor;$(ProjDir)..\..\..\llvm\lib\LineEditor;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../llvm/lib/LineEditor/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/LineEditor/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\LineEditor\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\LineEditor\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\LineEditor\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../llvm/lib/LineEditor/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/LineEditor/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\LineEditor\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\LineEditor\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\LineEditor\CMakeFiles\generate.stamp - false - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/LineEditor/LLVMLineEditor.vcxproj.filters b/llvm_build/lib/LineEditor/LLVMLineEditor.vcxproj.filters deleted file mode 100644 index 2046b5a971..0000000000 --- a/llvm_build/lib/LineEditor/LLVMLineEditor.vcxproj.filters +++ /dev/null @@ -1,15 +0,0 @@ - - - - Source Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - \ No newline at end of file diff --git a/llvm_build/lib/Linker/LLVMLinker.vcxproj b/llvm_build/lib/Linker/LLVMLinker.vcxproj deleted file mode 100644 index 8fe2c56312..0000000000 --- a/llvm_build/lib/Linker/LLVMLinker.vcxproj +++ /dev/null @@ -1,160 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {6D1995C8-7022-4630-8177-1B808E8D64DC} - Win32Proj - x64 - LLVMLinker - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\llvm_build\Debug\lib\ - LLVMLinker.dir\Debug\ - LLVMLinker - .lib - $(ProjDir)..\..\..\llvm_build\Release\lib\ - LLVMLinker.dir\Release\ - LLVMLinker - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\Linker;$(ProjDir)..\..\..\llvm\lib\Linker;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\Linker;$(ProjDir)..\..\..\llvm\lib\Linker;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\Linker;$(ProjDir)..\..\..\llvm\lib\Linker;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\Linker;$(ProjDir)..\..\..\llvm\lib\Linker;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\Linker;$(ProjDir)..\..\..\llvm\lib\Linker;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\Linker;$(ProjDir)..\..\..\llvm\lib\Linker;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../llvm/lib/Linker/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/Linker/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\Linker\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\Linker\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\Linker\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../llvm/lib/Linker/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/Linker/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\Linker\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\Linker\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\Linker\CMakeFiles\generate.stamp - false - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/Linker/LLVMLinker.vcxproj.filters b/llvm_build/lib/Linker/LLVMLinker.vcxproj.filters deleted file mode 100644 index 6b484f217f..0000000000 --- a/llvm_build/lib/Linker/LLVMLinker.vcxproj.filters +++ /dev/null @@ -1,15 +0,0 @@ - - - - Source Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - \ No newline at end of file diff --git a/llvm_build/lib/MC/LLVMMC.vcxproj b/llvm_build/lib/MC/LLVMMC.vcxproj deleted file mode 100644 index 40c8fdd88e..0000000000 --- a/llvm_build/lib/MC/LLVMMC.vcxproj +++ /dev/null @@ -1,208 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {C4E59662-800C-422B-B9DD-21052E1071EA} - Win32Proj - x64 - LLVMMC - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\llvm_build\Debug\lib\ - LLVMMC.dir\Debug\ - LLVMMC - .lib - $(ProjDir)..\..\..\llvm_build\Release\lib\ - LLVMMC.dir\Release\ - LLVMMC - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\MC;$(ProjDir)..\..\..\llvm\lib\MC;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\MC;$(ProjDir)..\..\..\llvm\lib\MC;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\MC;$(ProjDir)..\..\..\llvm\lib\MC;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\MC;$(ProjDir)..\..\..\llvm\lib\MC;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\MC;$(ProjDir)..\..\..\llvm\lib\MC;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\MC;$(ProjDir)..\..\..\llvm\lib\MC;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../llvm/lib/MC/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/MC/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\MC\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\MC\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\MC\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../llvm/lib/MC/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/MC/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\MC\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\MC\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\MC\CMakeFiles\generate.stamp - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/MC/LLVMMC.vcxproj.filters b/llvm_build/lib/MC/LLVMMC.vcxproj.filters deleted file mode 100644 index 8a62061002..0000000000 --- a/llvm_build/lib/MC/LLVMMC.vcxproj.filters +++ /dev/null @@ -1,159 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - \ No newline at end of file diff --git a/llvm_build/lib/MC/MCAnalysis/LLVMMCAnalysis.vcxproj b/llvm_build/lib/MC/MCAnalysis/LLVMMCAnalysis.vcxproj deleted file mode 100644 index fe9ea97c5f..0000000000 --- a/llvm_build/lib/MC/MCAnalysis/LLVMMCAnalysis.vcxproj +++ /dev/null @@ -1,165 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {901C7733-BCB0-479C-94B0-F6F81F513F28} - Win32Proj - x64 - LLVMMCAnalysis - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\..\llvm_build\Debug\lib\ - LLVMMCAnalysis.dir\Debug\ - LLVMMCAnalysis - .lib - $(ProjDir)..\..\..\..\llvm_build\Release\lib\ - LLVMMCAnalysis.dir\Release\ - LLVMMCAnalysis - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\MC\MCAnalysis;$(ProjDir)..\..\..\..\llvm\lib\MC\MCAnalysis;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\MC\MCAnalysis;$(ProjDir)..\..\..\..\llvm\lib\MC\MCAnalysis;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\MC\MCAnalysis;$(ProjDir)..\..\..\..\llvm\lib\MC\MCAnalysis;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\MC\MCAnalysis;$(ProjDir)..\..\..\..\llvm\lib\MC\MCAnalysis;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\MC\MCAnalysis;$(ProjDir)..\..\..\..\llvm\lib\MC\MCAnalysis;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\MC\MCAnalysis;$(ProjDir)..\..\..\..\llvm\lib\MC\MCAnalysis;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../../llvm/lib/MC/MCAnalysis/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/MC/MCAnalysis/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\MC\MCAnalysis\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\MC\MCAnalysis\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\MC\MCAnalysis\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../../llvm/lib/MC/MCAnalysis/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/MC/MCAnalysis/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\MC\MCAnalysis\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\MC\MCAnalysis\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\MC\MCAnalysis\CMakeFiles\generate.stamp - false - - - - - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/MC/MCAnalysis/LLVMMCAnalysis.vcxproj.filters b/llvm_build/lib/MC/MCAnalysis/LLVMMCAnalysis.vcxproj.filters deleted file mode 100644 index 5a302039cb..0000000000 --- a/llvm_build/lib/MC/MCAnalysis/LLVMMCAnalysis.vcxproj.filters +++ /dev/null @@ -1,30 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - \ No newline at end of file diff --git a/llvm_build/lib/MC/MCDisassembler/LLVMMCDisassembler.vcxproj b/llvm_build/lib/MC/MCDisassembler/LLVMMCDisassembler.vcxproj deleted file mode 100644 index a2f9182cd4..0000000000 --- a/llvm_build/lib/MC/MCDisassembler/LLVMMCDisassembler.vcxproj +++ /dev/null @@ -1,161 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {DE6B1C4C-D793-48AA-813A-C2AB769DBEFE} - Win32Proj - x64 - LLVMMCDisassembler - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\..\llvm_build\Debug\lib\ - LLVMMCDisassembler.dir\Debug\ - LLVMMCDisassembler - .lib - $(ProjDir)..\..\..\..\llvm_build\Release\lib\ - LLVMMCDisassembler.dir\Release\ - LLVMMCDisassembler - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\MC\MCDisassembler;$(ProjDir)..\..\..\..\llvm\lib\MC\MCDisassembler;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\MC\MCDisassembler;$(ProjDir)..\..\..\..\llvm\lib\MC\MCDisassembler;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\MC\MCDisassembler;$(ProjDir)..\..\..\..\llvm\lib\MC\MCDisassembler;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\MC\MCDisassembler;$(ProjDir)..\..\..\..\llvm\lib\MC\MCDisassembler;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\MC\MCDisassembler;$(ProjDir)..\..\..\..\llvm\lib\MC\MCDisassembler;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\MC\MCDisassembler;$(ProjDir)..\..\..\..\llvm\lib\MC\MCDisassembler;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../../llvm/lib/MC/MCDisassembler/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/MC/MCDisassembler/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\MC\MCDisassembler\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\MC\MCDisassembler\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\MC\MCDisassembler\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../../llvm/lib/MC/MCDisassembler/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/MC/MCDisassembler/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\MC\MCDisassembler\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\MC\MCDisassembler\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\MC\MCDisassembler\CMakeFiles\generate.stamp - false - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/MC/MCDisassembler/LLVMMCDisassembler.vcxproj.filters b/llvm_build/lib/MC/MCDisassembler/LLVMMCDisassembler.vcxproj.filters deleted file mode 100644 index 08b9c6fbbc..0000000000 --- a/llvm_build/lib/MC/MCDisassembler/LLVMMCDisassembler.vcxproj.filters +++ /dev/null @@ -1,23 +0,0 @@ - - - - Source Files - - - - - Header Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - {C4A58D48-0D94-4539-AE81-2E13421E4512} - - - \ No newline at end of file diff --git a/llvm_build/lib/MC/MCParser/LLVMMCParser.vcxproj b/llvm_build/lib/MC/MCParser/LLVMMCParser.vcxproj deleted file mode 100644 index 719b82caa7..0000000000 --- a/llvm_build/lib/MC/MCParser/LLVMMCParser.vcxproj +++ /dev/null @@ -1,168 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {0743F073-2EA8-4621-A308-93D9312B75AC} - Win32Proj - x64 - LLVMMCParser - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\..\llvm_build\Debug\lib\ - LLVMMCParser.dir\Debug\ - LLVMMCParser - .lib - $(ProjDir)..\..\..\..\llvm_build\Release\lib\ - LLVMMCParser.dir\Release\ - LLVMMCParser - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\MC\MCParser;$(ProjDir)..\..\..\..\llvm\lib\MC\MCParser;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\MC\MCParser;$(ProjDir)..\..\..\..\llvm\lib\MC\MCParser;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\MC\MCParser;$(ProjDir)..\..\..\..\llvm\lib\MC\MCParser;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\MC\MCParser;$(ProjDir)..\..\..\..\llvm\lib\MC\MCParser;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\MC\MCParser;$(ProjDir)..\..\..\..\llvm\lib\MC\MCParser;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\MC\MCParser;$(ProjDir)..\..\..\..\llvm\lib\MC\MCParser;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../../llvm/lib/MC/MCParser/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/MC/MCParser/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\MC\MCParser\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\MC\MCParser\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\MC\MCParser\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../../llvm/lib/MC/MCParser/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/MC/MCParser/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\MC\MCParser\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\MC\MCParser\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\MC\MCParser\CMakeFiles\generate.stamp - false - - - - - - - - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/MC/MCParser/LLVMMCParser.vcxproj.filters b/llvm_build/lib/MC/MCParser/LLVMMCParser.vcxproj.filters deleted file mode 100644 index 94278b6b5f..0000000000 --- a/llvm_build/lib/MC/MCParser/LLVMMCParser.vcxproj.filters +++ /dev/null @@ -1,39 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - \ No newline at end of file diff --git a/llvm_build/lib/Object/LLVMObject.vcxproj b/llvm_build/lib/Object/LLVMObject.vcxproj deleted file mode 100644 index e171fa9045..0000000000 --- a/llvm_build/lib/Object/LLVMObject.vcxproj +++ /dev/null @@ -1,175 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {EBE92213-242C-4832-9306-2B853DFCDCA4} - Win32Proj - x64 - LLVMObject - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\llvm_build\Debug\lib\ - LLVMObject.dir\Debug\ - LLVMObject - .lib - $(ProjDir)..\..\..\llvm_build\Release\lib\ - LLVMObject.dir\Release\ - LLVMObject - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\Object;$(ProjDir)..\..\..\llvm\lib\Object;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\Object;$(ProjDir)..\..\..\llvm\lib\Object;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\Object;$(ProjDir)..\..\..\llvm\lib\Object;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\Object;$(ProjDir)..\..\..\llvm\lib\Object;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\Object;$(ProjDir)..\..\..\llvm\lib\Object;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\Object;$(ProjDir)..\..\..\llvm\lib\Object;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../llvm/lib/Object/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/Object/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\Object\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\Object\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\Object\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../llvm/lib/Object/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/Object/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\Object\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\Object\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\Object\CMakeFiles\generate.stamp - false - - - - - - - - - - - - - - - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/Object/LLVMObject.vcxproj.filters b/llvm_build/lib/Object/LLVMObject.vcxproj.filters deleted file mode 100644 index 8543fb934a..0000000000 --- a/llvm_build/lib/Object/LLVMObject.vcxproj.filters +++ /dev/null @@ -1,65 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - {C4A58D48-0D94-4539-AE81-2E13421E4512} - - - \ No newline at end of file diff --git a/llvm_build/lib/Option/LLVMOption.vcxproj b/llvm_build/lib/Option/LLVMOption.vcxproj deleted file mode 100644 index 2f84364ade..0000000000 --- a/llvm_build/lib/Option/LLVMOption.vcxproj +++ /dev/null @@ -1,163 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {05A8D15F-20F9-4E2C-87AE-1B3F9EB96415} - Win32Proj - x64 - LLVMOption - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\llvm_build\Debug\lib\ - LLVMOption.dir\Debug\ - LLVMOption - .lib - $(ProjDir)..\..\..\llvm_build\Release\lib\ - LLVMOption.dir\Release\ - LLVMOption - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\Option;$(ProjDir)..\..\..\llvm\lib\Option;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\Option;$(ProjDir)..\..\..\llvm\lib\Option;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\Option;$(ProjDir)..\..\..\llvm\lib\Option;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\Option;$(ProjDir)..\..\..\llvm\lib\Option;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\Option;$(ProjDir)..\..\..\llvm\lib\Option;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\Option;$(ProjDir)..\..\..\llvm\lib\Option;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../llvm/lib/Option/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/Option/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\Option\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\Option\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\Option\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../llvm/lib/Option/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/Option/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\Option\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\Option\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\Option\CMakeFiles\generate.stamp - false - - - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/Option/LLVMOption.vcxproj.filters b/llvm_build/lib/Option/LLVMOption.vcxproj.filters deleted file mode 100644 index 0807b40fd4..0000000000 --- a/llvm_build/lib/Option/LLVMOption.vcxproj.filters +++ /dev/null @@ -1,24 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - \ No newline at end of file diff --git a/llvm_build/lib/ProfileData/LLVMProfileData.vcxproj b/llvm_build/lib/ProfileData/LLVMProfileData.vcxproj deleted file mode 100644 index 12d0bc46f7..0000000000 --- a/llvm_build/lib/ProfileData/LLVMProfileData.vcxproj +++ /dev/null @@ -1,163 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {FA52542C-2A3A-4499-BF44-236ABDA62C38} - Win32Proj - x64 - LLVMProfileData - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\llvm_build\Debug\lib\ - LLVMProfileData.dir\Debug\ - LLVMProfileData - .lib - $(ProjDir)..\..\..\llvm_build\Release\lib\ - LLVMProfileData.dir\Release\ - LLVMProfileData - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\ProfileData;$(ProjDir)..\..\..\llvm\lib\ProfileData;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\ProfileData;$(ProjDir)..\..\..\llvm\lib\ProfileData;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\ProfileData;$(ProjDir)..\..\..\llvm\lib\ProfileData;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\ProfileData;$(ProjDir)..\..\..\llvm\lib\ProfileData;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\ProfileData;$(ProjDir)..\..\..\llvm\lib\ProfileData;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\ProfileData;$(ProjDir)..\..\..\llvm\lib\ProfileData;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../llvm/lib/ProfileData/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/ProfileData/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\ProfileData\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\ProfileData\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\ProfileData\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../llvm/lib/ProfileData/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/ProfileData/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\ProfileData\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\ProfileData\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\ProfileData\CMakeFiles\generate.stamp - false - - - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/ProfileData/LLVMProfileData.vcxproj.filters b/llvm_build/lib/ProfileData/LLVMProfileData.vcxproj.filters deleted file mode 100644 index 6b5a342a0f..0000000000 --- a/llvm_build/lib/ProfileData/LLVMProfileData.vcxproj.filters +++ /dev/null @@ -1,29 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - {C4A58D48-0D94-4539-AE81-2E13421E4512} - - - \ No newline at end of file diff --git a/llvm_build/lib/Support/LLVMSupport.vcxproj b/llvm_build/lib/Support/LLVMSupport.vcxproj deleted file mode 100644 index a8a710043b..0000000000 --- a/llvm_build/lib/Support/LLVMSupport.vcxproj +++ /dev/null @@ -1,713 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {41690A1E-62D3-4EDA-B5CB-514DA463C038} - Win32Proj - x64 - LLVMSupport - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\llvm_build\Debug\lib\ - LLVMSupport.dir\Debug\ - LLVMSupport - .lib - $(ProjDir)..\..\..\llvm_build\Release\lib\ - LLVMSupport.dir\Release\ - LLVMSupport - .lib - - - - -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\Support;$(ProjDir)..\..\..\llvm\lib\Support;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\Support;$(ProjDir)..\..\..\llvm\lib\Support;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\Support;$(ProjDir)..\..\..\llvm\lib\Support;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\Support;$(ProjDir)..\..\..\llvm\lib\Support;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\Support;$(ProjDir)..\..\..\llvm\lib\Support;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\Support;$(ProjDir)..\..\..\llvm\lib\Support;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../llvm/lib/Support/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/Support/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\Support\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\Support\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\Support\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../llvm/lib/Support/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/Support/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\Support\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\Support\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\Support\CMakeFiles\generate.stamp - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - CompileAsC - CompileAsC - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - CompileAsC - CompileAsC - - - CompileAsC - CompileAsC - - - CompileAsC - CompileAsC - - - CompileAsC - CompileAsC - - - CompileAsC - CompileAsC - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - /EHs-c- %(AdditionalOptions) - false - /EHs-c- %(AdditionalOptions) - false - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/Support/LLVMSupport.vcxproj.filters b/llvm_build/lib/Support/LLVMSupport.vcxproj.filters deleted file mode 100644 index b2325543d4..0000000000 --- a/llvm_build/lib/Support/LLVMSupport.vcxproj.filters +++ /dev/null @@ -1,325 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - {C4A58D48-0D94-4539-AE81-2E13421E4512} - - - \ No newline at end of file diff --git a/llvm_build/lib/TableGen/LLVMTableGen.vcxproj b/llvm_build/lib/TableGen/LLVMTableGen.vcxproj deleted file mode 100644 index f4d50564df..0000000000 --- a/llvm_build/lib/TableGen/LLVMTableGen.vcxproj +++ /dev/null @@ -1,169 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {C0E508F0-FE5D-49B5-AE9A-61B13771EB12} - Win32Proj - x64 - LLVMTableGen - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\llvm_build\Debug\lib\ - LLVMTableGen.dir\Debug\ - LLVMTableGen - .lib - $(ProjDir)..\..\..\llvm_build\Release\lib\ - LLVMTableGen.dir\Release\ - LLVMTableGen - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\TableGen;$(ProjDir)..\..\..\llvm\lib\TableGen;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\TableGen;$(ProjDir)..\..\..\llvm\lib\TableGen;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\TableGen;$(ProjDir)..\..\..\llvm\lib\TableGen;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\TableGen;$(ProjDir)..\..\..\llvm\lib\TableGen;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\TableGen;$(ProjDir)..\..\..\llvm\lib\TableGen;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\TableGen;$(ProjDir)..\..\..\llvm\lib\TableGen;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../llvm/lib/TableGen/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/TableGen/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\TableGen\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\TableGen\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\TableGen\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../llvm/lib/TableGen/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/TableGen/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\TableGen\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\TableGen\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\TableGen\CMakeFiles\generate.stamp - false - - - - - - - - - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/TableGen/LLVMTableGen.vcxproj.filters b/llvm_build/lib/TableGen/LLVMTableGen.vcxproj.filters deleted file mode 100644 index e5fb607293..0000000000 --- a/llvm_build/lib/TableGen/LLVMTableGen.vcxproj.filters +++ /dev/null @@ -1,47 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - {C4A58D48-0D94-4539-AE81-2E13421E4512} - - - \ No newline at end of file diff --git a/llvm_build/lib/Target/LLVMTarget.vcxproj b/llvm_build/lib/Target/LLVMTarget.vcxproj deleted file mode 100644 index 9d4bbf9d2a..0000000000 --- a/llvm_build/lib/Target/LLVMTarget.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {9C08916B-BE33-4A1A-AC54-67AD0320A39A} - Win32Proj - x64 - LLVMTarget - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\llvm_build\Debug\lib\ - LLVMTarget.dir\Debug\ - LLVMTarget - .lib - $(ProjDir)..\..\..\llvm_build\Release\lib\ - LLVMTarget.dir\Release\ - LLVMTarget - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\Target;$(ProjDir)..\..\..\llvm\lib\Target;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\Target;$(ProjDir)..\..\..\llvm\lib\Target;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\Target;$(ProjDir)..\..\..\llvm\lib\Target;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\lib\Target;$(ProjDir)..\..\..\llvm\lib\Target;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\lib\Target;$(ProjDir)..\..\..\llvm\lib\Target;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\lib\Target;$(ProjDir)..\..\..\llvm\lib\Target;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../llvm/lib/Target/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/Target/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\Target\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\Target\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\Target\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../llvm/lib/Target/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/lib/Target/CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\Target\CMakeLists.txt;$(ProjDir)..\..\..\llvm\lib\Target\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\lib\Target\CMakeFiles\generate.stamp - false - - - - - - - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/Target/LLVMTarget.vcxproj.filters b/llvm_build/lib/Target/LLVMTarget.vcxproj.filters deleted file mode 100644 index 038954551e..0000000000 --- a/llvm_build/lib/Target/LLVMTarget.vcxproj.filters +++ /dev/null @@ -1,36 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - \ No newline at end of file diff --git a/llvm_build/lib/Target/X86/AsmParser/LLVMX86AsmParser.vcxproj b/llvm_build/lib/Target/X86/AsmParser/LLVMX86AsmParser.vcxproj deleted file mode 100644 index 9c56cf3329..0000000000 --- a/llvm_build/lib/Target/X86/AsmParser/LLVMX86AsmParser.vcxproj +++ /dev/null @@ -1,170 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {8E9CD635-58D8-4518-BA02-66E5E2BF0464} - Win32Proj - x64 - LLVMX86AsmParser - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\..\..\llvm_build\Debug\lib\ - LLVMX86AsmParser.dir\Debug\ - LLVMX86AsmParser - .lib - $(ProjDir)..\..\..\..\..\llvm_build\Release\lib\ - LLVMX86AsmParser.dir\Release\ - LLVMX86AsmParser - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\AsmParser;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\AsmParser;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\AsmParser;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\AsmParser;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\AsmParser;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\AsmParser;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\AsmParser;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\AsmParser;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\AsmParser;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\AsmParser;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\AsmParser;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\AsmParser;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../../../llvm/lib/Target/X86/AsmParser/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../../llvm/lib/Target/X86/AsmParser/CMakeLists.txt;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\AsmParser\CMakeLists.txt;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\AsmParser\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\AsmParser\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../../../llvm/lib/Target/X86/AsmParser/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../../llvm/lib/Target/X86/AsmParser/CMakeLists.txt;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\AsmParser\CMakeLists.txt;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\AsmParser\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\AsmParser\CMakeFiles\generate.stamp - false - - - - - - - - - - - - 3A8E626F-A8B4-49B3-BCFF-4CD53B633B55 - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - 0B9F2D3D-23BA-4B2F-9D24-1F2742BE6FAA - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/Target/X86/AsmParser/LLVMX86AsmParser.vcxproj.filters b/llvm_build/lib/Target/X86/AsmParser/LLVMX86AsmParser.vcxproj.filters deleted file mode 100644 index c064699510..0000000000 --- a/llvm_build/lib/Target/X86/AsmParser/LLVMX86AsmParser.vcxproj.filters +++ /dev/null @@ -1,32 +0,0 @@ - - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - {C4A58D48-0D94-4539-AE81-2E13421E4512} - - - \ No newline at end of file diff --git a/llvm_build/lib/Target/X86/Disassembler/LLVMX86Disassembler.vcxproj b/llvm_build/lib/Target/X86/Disassembler/LLVMX86Disassembler.vcxproj deleted file mode 100644 index 30421e8eb5..0000000000 --- a/llvm_build/lib/Target/X86/Disassembler/LLVMX86Disassembler.vcxproj +++ /dev/null @@ -1,170 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {5860BFDE-6896-485E-83B1-A49433C546AD} - Win32Proj - x64 - LLVMX86Disassembler - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\..\..\llvm_build\Debug\lib\ - LLVMX86Disassembler.dir\Debug\ - LLVMX86Disassembler - .lib - $(ProjDir)..\..\..\..\..\llvm_build\Release\lib\ - LLVMX86Disassembler.dir\Release\ - LLVMX86Disassembler - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\Disassembler;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\Disassembler;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\Disassembler;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\Disassembler;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\Disassembler;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\Disassembler;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\Disassembler;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\Disassembler;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\Disassembler;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\Disassembler;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\Disassembler;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\Disassembler;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../../../llvm/lib/Target/X86/Disassembler/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../../llvm/lib/Target/X86/Disassembler/CMakeLists.txt;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\Disassembler\CMakeLists.txt;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\Disassembler\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\Disassembler\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../../../llvm/lib/Target/X86/Disassembler/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../../llvm/lib/Target/X86/Disassembler/CMakeLists.txt;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\Disassembler\CMakeLists.txt;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\Disassembler\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\Disassembler\CMakeFiles\generate.stamp - false - - - - - - - - - - - - 3A8E626F-A8B4-49B3-BCFF-4CD53B633B55 - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - 0B9F2D3D-23BA-4B2F-9D24-1F2742BE6FAA - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/Target/X86/Disassembler/LLVMX86Disassembler.vcxproj.filters b/llvm_build/lib/Target/X86/Disassembler/LLVMX86Disassembler.vcxproj.filters deleted file mode 100644 index fe64d5d64b..0000000000 --- a/llvm_build/lib/Target/X86/Disassembler/LLVMX86Disassembler.vcxproj.filters +++ /dev/null @@ -1,32 +0,0 @@ - - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - {C4A58D48-0D94-4539-AE81-2E13421E4512} - - - \ No newline at end of file diff --git a/llvm_build/lib/Target/X86/InstPrinter/LLVMX86AsmPrinter.vcxproj b/llvm_build/lib/Target/X86/InstPrinter/LLVMX86AsmPrinter.vcxproj deleted file mode 100644 index ef06852b09..0000000000 --- a/llvm_build/lib/Target/X86/InstPrinter/LLVMX86AsmPrinter.vcxproj +++ /dev/null @@ -1,171 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {7F61F770-92E4-453F-BB0E-D410B23BB0E1} - Win32Proj - x64 - LLVMX86AsmPrinter - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\..\..\llvm_build\Debug\lib\ - LLVMX86AsmPrinter.dir\Debug\ - LLVMX86AsmPrinter - .lib - $(ProjDir)..\..\..\..\..\llvm_build\Release\lib\ - LLVMX86AsmPrinter.dir\Release\ - LLVMX86AsmPrinter - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\InstPrinter;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\InstPrinter;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\InstPrinter;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\InstPrinter;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\InstPrinter;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\InstPrinter;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\InstPrinter;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\InstPrinter;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\InstPrinter;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\InstPrinter;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\InstPrinter;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\InstPrinter;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../../../llvm/lib/Target/X86/InstPrinter/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../../llvm/lib/Target/X86/InstPrinter/CMakeLists.txt;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\InstPrinter\CMakeLists.txt;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\InstPrinter\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\InstPrinter\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../../../llvm/lib/Target/X86/InstPrinter/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../../llvm/lib/Target/X86/InstPrinter/CMakeLists.txt;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\InstPrinter\CMakeLists.txt;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\InstPrinter\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\InstPrinter\CMakeFiles\generate.stamp - false - - - - - - - - - - - - - 3A8E626F-A8B4-49B3-BCFF-4CD53B633B55 - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - 0B9F2D3D-23BA-4B2F-9D24-1F2742BE6FAA - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/Target/X86/InstPrinter/LLVMX86AsmPrinter.vcxproj.filters b/llvm_build/lib/Target/X86/InstPrinter/LLVMX86AsmPrinter.vcxproj.filters deleted file mode 100644 index 67fd4371bb..0000000000 --- a/llvm_build/lib/Target/X86/InstPrinter/LLVMX86AsmPrinter.vcxproj.filters +++ /dev/null @@ -1,35 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - {C4A58D48-0D94-4539-AE81-2E13421E4512} - - - \ No newline at end of file diff --git a/llvm_build/lib/Target/X86/LLVMX86CodeGen.vcxproj b/llvm_build/lib/Target/X86/LLVMX86CodeGen.vcxproj deleted file mode 100644 index f74f3f35cd..0000000000 --- a/llvm_build/lib/Target/X86/LLVMX86CodeGen.vcxproj +++ /dev/null @@ -1,260 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {6CFCA3CC-93FA-4F40-BCF9-7B708ED25CDF} - Win32Proj - x64 - LLVMX86CodeGen - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\..\llvm_build\Debug\lib\ - LLVMX86CodeGen.dir\Debug\ - LLVMX86CodeGen - .lib - $(ProjDir)..\..\..\..\llvm_build\Release\lib\ - LLVMX86CodeGen.dir\Release\ - LLVMX86CodeGen - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../../llvm/lib/Target/X86/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/Target/X86/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\CMakeLists.txt;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeDetermineASM_MASMCompiler.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeDetermineASMCompiler.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeDetermineCompiler.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeDetermineCompilerId.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeFindBinUtils.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeASMCompiler.cmake.in;$(ProjDir)..\..\..\..\llvm_build\CMakeFiles\2.8.12.2\CMakeASM_MASMCompiler.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeASM_MASMInformation.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeASMInformation.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeTestASM_MASMCompiler.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeTestASMCompiler.cmake;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../../llvm/lib/Target/X86/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/Target/X86/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\CMakeLists.txt;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeDetermineASM_MASMCompiler.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeDetermineASMCompiler.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeDetermineCompiler.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeDetermineCompilerId.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeFindBinUtils.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeASMCompiler.cmake.in;$(ProjDir)..\..\..\..\llvm_build\CMakeFiles\2.8.12.2\CMakeASM_MASMCompiler.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeASM_MASMInformation.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeASMInformation.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeTestASM_MASMCompiler.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeTestASMCompiler.cmake;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\CMakeFiles\generate.stamp - false - - - - - Generating X86CompilationCallback_Win64.obj - setlocal -"$(VCInstallDir)bin\x86_amd64\ml64.exe" /Fo $(ProjDir)../../../../llvm_build/lib/Target/X86/X86CompilationCallback_Win64.obj /c $(ProjDir)../../../../llvm/lib/Target/X86/X86CompilationCallback_Win64.asm -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/Target/X86/X86CompilationCallback_Win64.asm;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86CompilationCallback_Win64.asm;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86CompilationCallback_Win64.obj - false - Generating X86CompilationCallback_Win64.obj - setlocal -"$(VCInstallDir)bin\x86_amd64\ml64.exe" /Fo $(ProjDir)../../../../llvm_build/lib/Target/X86/X86CompilationCallback_Win64.obj /c $(ProjDir)../../../../llvm/lib/Target/X86/X86CompilationCallback_Win64.asm -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/Target/X86/X86CompilationCallback_Win64.asm;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86CompilationCallback_Win64.asm;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86CompilationCallback_Win64.obj - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3A8E626F-A8B4-49B3-BCFF-4CD53B633B55 - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - 0B9F2D3D-23BA-4B2F-9D24-1F2742BE6FAA - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/Target/X86/LLVMX86CodeGen.vcxproj.filters b/llvm_build/lib/Target/X86/LLVMX86CodeGen.vcxproj.filters deleted file mode 100644 index 90b5faac8a..0000000000 --- a/llvm_build/lib/Target/X86/LLVMX86CodeGen.vcxproj.filters +++ /dev/null @@ -1,221 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - TableGen descriptions - - - TableGen descriptions - - - TableGen descriptions - - - TableGen descriptions - - - TableGen descriptions - - - TableGen descriptions - - - TableGen descriptions - - - TableGen descriptions - - - TableGen descriptions - - - TableGen descriptions - - - TableGen descriptions - - - TableGen descriptions - - - TableGen descriptions - - - TableGen descriptions - - - TableGen descriptions - - - TableGen descriptions - - - TableGen descriptions - - - TableGen descriptions - - - TableGen descriptions - - - TableGen descriptions - - - TableGen descriptions - - - TableGen descriptions - - - TableGen descriptions - - - TableGen descriptions - - - TableGen descriptions - - - TableGen descriptions - - - TableGen descriptions - - - TableGen descriptions - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - - - - - Object Files - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - {C4A58D48-0D94-4539-AE81-2E13421E4512} - - - {328997F2-C662-4233-9E8F-6675001D54A1} - - - {6762B3E4-24C5-408B-ACB3-D6EF700963AB} - - - \ No newline at end of file diff --git a/llvm_build/lib/Target/X86/MCTargetDesc/LLVMX86Desc.vcxproj b/llvm_build/lib/Target/X86/MCTargetDesc/LLVMX86Desc.vcxproj deleted file mode 100644 index c28c1008f4..0000000000 --- a/llvm_build/lib/Target/X86/MCTargetDesc/LLVMX86Desc.vcxproj +++ /dev/null @@ -1,179 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {798B8AAC-D977-4249-905D-390ED20286D3} - Win32Proj - x64 - LLVMX86Desc - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\..\..\llvm_build\Debug\lib\ - LLVMX86Desc.dir\Debug\ - LLVMX86Desc - .lib - $(ProjDir)..\..\..\..\..\llvm_build\Release\lib\ - LLVMX86Desc.dir\Release\ - LLVMX86Desc - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\MCTargetDesc;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\MCTargetDesc;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\MCTargetDesc;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\MCTargetDesc;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\MCTargetDesc;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\MCTargetDesc;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\MCTargetDesc;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\MCTargetDesc;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\MCTargetDesc;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\MCTargetDesc;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\MCTargetDesc;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\MCTargetDesc;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../../../llvm/lib/Target/X86/MCTargetDesc/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../../llvm/lib/Target/X86/MCTargetDesc/CMakeLists.txt;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\MCTargetDesc\CMakeLists.txt;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\MCTargetDesc\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\MCTargetDesc\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../../../llvm/lib/Target/X86/MCTargetDesc/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../../llvm/lib/Target/X86/MCTargetDesc/CMakeLists.txt;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\MCTargetDesc\CMakeLists.txt;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\MCTargetDesc\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\MCTargetDesc\CMakeFiles\generate.stamp - false - - - - - - - - - - - - - - - - - - - - - 3A8E626F-A8B4-49B3-BCFF-4CD53B633B55 - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - 0B9F2D3D-23BA-4B2F-9D24-1F2742BE6FAA - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/Target/X86/MCTargetDesc/LLVMX86Desc.vcxproj.filters b/llvm_build/lib/Target/X86/MCTargetDesc/LLVMX86Desc.vcxproj.filters deleted file mode 100644 index 2ee10fd031..0000000000 --- a/llvm_build/lib/Target/X86/MCTargetDesc/LLVMX86Desc.vcxproj.filters +++ /dev/null @@ -1,59 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - {C4A58D48-0D94-4539-AE81-2E13421E4512} - - - \ No newline at end of file diff --git a/llvm_build/lib/Target/X86/TargetInfo/LLVMX86Info.vcxproj b/llvm_build/lib/Target/X86/TargetInfo/LLVMX86Info.vcxproj deleted file mode 100644 index 71d2b8224f..0000000000 --- a/llvm_build/lib/Target/X86/TargetInfo/LLVMX86Info.vcxproj +++ /dev/null @@ -1,166 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {4613B191-B386-4835-BA40-B7A95AC56040} - Win32Proj - x64 - LLVMX86Info - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\..\..\llvm_build\Debug\lib\ - LLVMX86Info.dir\Debug\ - LLVMX86Info - .lib - $(ProjDir)..\..\..\..\..\llvm_build\Release\lib\ - LLVMX86Info.dir\Release\ - LLVMX86Info - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\TargetInfo;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\TargetInfo;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\TargetInfo;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\TargetInfo;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\TargetInfo;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\TargetInfo;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\TargetInfo;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\TargetInfo;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\TargetInfo;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\TargetInfo;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\TargetInfo;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\TargetInfo;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../../../llvm/lib/Target/X86/TargetInfo/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../../llvm/lib/Target/X86/TargetInfo/CMakeLists.txt;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\TargetInfo\CMakeLists.txt;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\TargetInfo\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\TargetInfo\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../../../llvm/lib/Target/X86/TargetInfo/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../../llvm/lib/Target/X86/TargetInfo/CMakeLists.txt;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\TargetInfo\CMakeLists.txt;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\TargetInfo\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\TargetInfo\CMakeFiles\generate.stamp - false - - - - - - - - 3A8E626F-A8B4-49B3-BCFF-4CD53B633B55 - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - 0B9F2D3D-23BA-4B2F-9D24-1F2742BE6FAA - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/Target/X86/TargetInfo/LLVMX86Info.vcxproj.filters b/llvm_build/lib/Target/X86/TargetInfo/LLVMX86Info.vcxproj.filters deleted file mode 100644 index d6c45e1744..0000000000 --- a/llvm_build/lib/Target/X86/TargetInfo/LLVMX86Info.vcxproj.filters +++ /dev/null @@ -1,15 +0,0 @@ - - - - Source Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - \ No newline at end of file diff --git a/llvm_build/lib/Target/X86/Utils/LLVMX86Utils.vcxproj b/llvm_build/lib/Target/X86/Utils/LLVMX86Utils.vcxproj deleted file mode 100644 index c12b1712b9..0000000000 --- a/llvm_build/lib/Target/X86/Utils/LLVMX86Utils.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {7C9313B1-441A-4650-B5E6-1481B47D3FF9} - Win32Proj - x64 - LLVMX86Utils - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\..\..\llvm_build\Debug\lib\ - LLVMX86Utils.dir\Debug\ - LLVMX86Utils - .lib - $(ProjDir)..\..\..\..\..\llvm_build\Release\lib\ - LLVMX86Utils.dir\Release\ - LLVMX86Utils - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\Utils;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\Utils;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\Utils;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\Utils;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\Utils;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\Utils;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\Utils;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\Utils;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\Utils;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\Utils;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\Utils;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\Utils;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../../../llvm/lib/Target/X86/Utils/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../../llvm/lib/Target/X86/Utils/CMakeLists.txt;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\Utils\CMakeLists.txt;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\Utils\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\Utils\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../../../llvm/lib/Target/X86/Utils/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../../llvm/lib/Target/X86/Utils/CMakeLists.txt;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\Utils\CMakeLists.txt;$(ProjDir)..\..\..\..\..\llvm\lib\Target\X86\Utils\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\..\llvm_build\lib\Target\X86\Utils\CMakeFiles\generate.stamp - false - - - - - - - - - 3A8E626F-A8B4-49B3-BCFF-4CD53B633B55 - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - 0B9F2D3D-23BA-4B2F-9D24-1F2742BE6FAA - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/Target/X86/Utils/LLVMX86Utils.vcxproj.filters b/llvm_build/lib/Target/X86/Utils/LLVMX86Utils.vcxproj.filters deleted file mode 100644 index 63cbbd070f..0000000000 --- a/llvm_build/lib/Target/X86/Utils/LLVMX86Utils.vcxproj.filters +++ /dev/null @@ -1,23 +0,0 @@ - - - - Source Files - - - - - Header Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - {C4A58D48-0D94-4539-AE81-2E13421E4512} - - - \ No newline at end of file diff --git a/llvm_build/lib/Target/X86/X86CommonTableGen.vcxproj b/llvm_build/lib/Target/X86/X86CommonTableGen.vcxproj deleted file mode 100644 index 8df479e0d9..0000000000 --- a/llvm_build/lib/Target/X86/X86CommonTableGen.vcxproj +++ /dev/null @@ -1,737 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {3A8E626F-A8B4-49B3-BCFF-4CD53B633B55} - Win32Proj - x64 - X86CommonTableGen - - - - Utility - false - MultiByte - v120 - - - Utility - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(Platform)\$(Configuration)\$(ProjectName)\ - $(Platform)\$(Configuration)\$(ProjectName)\ - - - - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86;$(ProjDir)..\..\..\..\llvm\lib\Target\X86;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../../llvm/lib/Target/X86/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/Target/X86/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\CMakeLists.txt;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeDetermineASM_MASMCompiler.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeDetermineASMCompiler.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeDetermineCompiler.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeDetermineCompilerId.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeFindBinUtils.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeASMCompiler.cmake.in;$(ProjDir)..\..\..\..\llvm_build\CMakeFiles\2.8.12.2\CMakeASM_MASMCompiler.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeASM_MASMInformation.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeASMInformation.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeTestASM_MASMCompiler.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeTestASMCompiler.cmake;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../../llvm/lib/Target/X86/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/Target/X86/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\CMakeLists.txt;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeDetermineASM_MASMCompiler.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeDetermineASMCompiler.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeDetermineCompiler.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeDetermineCompilerId.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeFindBinUtils.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeASMCompiler.cmake.in;$(ProjDir)..\..\..\..\llvm_build\CMakeFiles\2.8.12.2\CMakeASM_MASMCompiler.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeASM_MASMInformation.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeASMInformation.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeTestASM_MASMCompiler.cmake;F:\apps\CMake 2.8\share\cmake-2.8\Modules\CMakeTestASMCompiler.cmake;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\CMakeFiles\generate.stamp - false - - - - - Building X86GenRegisterInfo.inc... - setlocal -..\..\..\Debug\bin\llvm-tblgen.exe -gen-register-info -I $(ProjDir)../../../../llvm/lib/Target/X86 -I $(ProjDir)../../../../llvm/lib/Target -I $(ProjDir)../../../../llvm/include $(ProjDir)../../../../llvm/lib/Target/X86/X86.td -o $(ProjDir)../../../../llvm_build/lib/Target/X86/X86GenRegisterInfo.inc.tmp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenRegisterInfo.inc.tmp.rule;$(ProjDir)..\..\..\..\llvm_build\Debug\bin\llvm-tblgen.exe;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86CallingConv.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Instr3DNow.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrArithmetic.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrAVX512.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCMovSetCC.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCompiler.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrControl.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrExtension.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFMA.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFormats.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFPStack.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFragmentsSIMD.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrMMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrShiftRotate.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSSE.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSVM.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSystem.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrTSX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrVMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrXOP.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86RegisterInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedHaswell.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedSandyBridge.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Schedule.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleAtom.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleSLM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\CodeGen\ValueTypes.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\Intrinsics.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsAArch64.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsARM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsHexagon.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsMips.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsNVVM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsPowerPC.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsR600.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsX86.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsXCore.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Option\OptParser.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\Target.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetCallingConv.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetItinerary.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSchedule.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSelectionDAG.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenRegisterInfo.inc.tmp - false - Building X86GenRegisterInfo.inc... - setlocal -..\..\..\Release\bin\llvm-tblgen.exe -gen-register-info -I $(ProjDir)../../../../llvm/lib/Target/X86 -I $(ProjDir)../../../../llvm/lib/Target -I $(ProjDir)../../../../llvm/include $(ProjDir)../../../../llvm/lib/Target/X86/X86.td -o $(ProjDir)../../../../llvm_build/lib/Target/X86/X86GenRegisterInfo.inc.tmp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenRegisterInfo.inc.tmp.rule;$(ProjDir)..\..\..\..\llvm_build\Release\bin\llvm-tblgen.exe;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86CallingConv.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Instr3DNow.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrArithmetic.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrAVX512.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCMovSetCC.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCompiler.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrControl.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrExtension.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFMA.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFormats.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFPStack.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFragmentsSIMD.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrMMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrShiftRotate.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSSE.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSVM.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSystem.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrTSX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrVMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrXOP.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86RegisterInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedHaswell.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedSandyBridge.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Schedule.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleAtom.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleSLM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\CodeGen\ValueTypes.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\Intrinsics.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsAArch64.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsARM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsHexagon.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsMips.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsNVVM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsPowerPC.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsR600.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsX86.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsXCore.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Option\OptParser.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\Target.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetCallingConv.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetItinerary.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSchedule.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSelectionDAG.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenRegisterInfo.inc.tmp - false - - - - - Updating X86GenRegisterInfo.inc... - setlocal -copy /y $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenRegisterInfo.inc.tmp $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenRegisterInfo.inc -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenRegisterInfo.inc.rule;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenRegisterInfo.inc.tmp;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenRegisterInfo.inc - false - Updating X86GenRegisterInfo.inc... - setlocal -copy /y $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenRegisterInfo.inc.tmp $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenRegisterInfo.inc -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenRegisterInfo.inc.rule;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenRegisterInfo.inc.tmp;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenRegisterInfo.inc - false - - - - - Building X86GenDisassemblerTables.inc... - setlocal -..\..\..\Debug\bin\llvm-tblgen.exe -gen-disassembler -I $(ProjDir)../../../../llvm/lib/Target/X86 -I $(ProjDir)../../../../llvm/lib/Target -I $(ProjDir)../../../../llvm/include $(ProjDir)../../../../llvm/lib/Target/X86/X86.td -o $(ProjDir)../../../../llvm_build/lib/Target/X86/X86GenDisassemblerTables.inc.tmp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenDisassemblerTables.inc.tmp.rule;$(ProjDir)..\..\..\..\llvm_build\Debug\bin\llvm-tblgen.exe;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86CallingConv.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Instr3DNow.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrArithmetic.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrAVX512.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCMovSetCC.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCompiler.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrControl.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrExtension.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFMA.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFormats.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFPStack.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFragmentsSIMD.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrMMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrShiftRotate.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSSE.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSVM.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSystem.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrTSX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrVMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrXOP.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86RegisterInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedHaswell.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedSandyBridge.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Schedule.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleAtom.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleSLM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\CodeGen\ValueTypes.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\Intrinsics.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsAArch64.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsARM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsHexagon.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsMips.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsNVVM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsPowerPC.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsR600.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsX86.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsXCore.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Option\OptParser.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\Target.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetCallingConv.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetItinerary.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSchedule.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSelectionDAG.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenDisassemblerTables.inc.tmp - false - Building X86GenDisassemblerTables.inc... - setlocal -..\..\..\Release\bin\llvm-tblgen.exe -gen-disassembler -I $(ProjDir)../../../../llvm/lib/Target/X86 -I $(ProjDir)../../../../llvm/lib/Target -I $(ProjDir)../../../../llvm/include $(ProjDir)../../../../llvm/lib/Target/X86/X86.td -o $(ProjDir)../../../../llvm_build/lib/Target/X86/X86GenDisassemblerTables.inc.tmp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenDisassemblerTables.inc.tmp.rule;$(ProjDir)..\..\..\..\llvm_build\Release\bin\llvm-tblgen.exe;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86CallingConv.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Instr3DNow.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrArithmetic.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrAVX512.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCMovSetCC.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCompiler.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrControl.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrExtension.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFMA.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFormats.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFPStack.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFragmentsSIMD.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrMMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrShiftRotate.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSSE.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSVM.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSystem.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrTSX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrVMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrXOP.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86RegisterInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedHaswell.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedSandyBridge.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Schedule.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleAtom.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleSLM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\CodeGen\ValueTypes.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\Intrinsics.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsAArch64.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsARM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsHexagon.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsMips.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsNVVM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsPowerPC.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsR600.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsX86.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsXCore.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Option\OptParser.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\Target.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetCallingConv.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetItinerary.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSchedule.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSelectionDAG.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenDisassemblerTables.inc.tmp - false - - - - - Updating X86GenDisassemblerTables.inc... - setlocal -copy /y $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenDisassemblerTables.inc.tmp $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenDisassemblerTables.inc -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenDisassemblerTables.inc.rule;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenDisassemblerTables.inc.tmp;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenDisassemblerTables.inc - false - Updating X86GenDisassemblerTables.inc... - setlocal -copy /y $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenDisassemblerTables.inc.tmp $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenDisassemblerTables.inc -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenDisassemblerTables.inc.rule;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenDisassemblerTables.inc.tmp;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenDisassemblerTables.inc - false - - - - - Building X86GenInstrInfo.inc... - setlocal -..\..\..\Debug\bin\llvm-tblgen.exe -gen-instr-info -I $(ProjDir)../../../../llvm/lib/Target/X86 -I $(ProjDir)../../../../llvm/lib/Target -I $(ProjDir)../../../../llvm/include $(ProjDir)../../../../llvm/lib/Target/X86/X86.td -o $(ProjDir)../../../../llvm_build/lib/Target/X86/X86GenInstrInfo.inc.tmp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenInstrInfo.inc.tmp.rule;$(ProjDir)..\..\..\..\llvm_build\Debug\bin\llvm-tblgen.exe;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86CallingConv.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Instr3DNow.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrArithmetic.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrAVX512.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCMovSetCC.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCompiler.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrControl.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrExtension.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFMA.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFormats.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFPStack.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFragmentsSIMD.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrMMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrShiftRotate.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSSE.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSVM.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSystem.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrTSX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrVMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrXOP.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86RegisterInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedHaswell.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedSandyBridge.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Schedule.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleAtom.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleSLM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\CodeGen\ValueTypes.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\Intrinsics.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsAArch64.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsARM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsHexagon.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsMips.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsNVVM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsPowerPC.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsR600.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsX86.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsXCore.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Option\OptParser.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\Target.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetCallingConv.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetItinerary.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSchedule.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSelectionDAG.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenInstrInfo.inc.tmp - false - Building X86GenInstrInfo.inc... - setlocal -..\..\..\Release\bin\llvm-tblgen.exe -gen-instr-info -I $(ProjDir)../../../../llvm/lib/Target/X86 -I $(ProjDir)../../../../llvm/lib/Target -I $(ProjDir)../../../../llvm/include $(ProjDir)../../../../llvm/lib/Target/X86/X86.td -o $(ProjDir)../../../../llvm_build/lib/Target/X86/X86GenInstrInfo.inc.tmp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenInstrInfo.inc.tmp.rule;$(ProjDir)..\..\..\..\llvm_build\Release\bin\llvm-tblgen.exe;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86CallingConv.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Instr3DNow.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrArithmetic.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrAVX512.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCMovSetCC.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCompiler.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrControl.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrExtension.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFMA.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFormats.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFPStack.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFragmentsSIMD.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrMMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrShiftRotate.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSSE.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSVM.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSystem.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrTSX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrVMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrXOP.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86RegisterInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedHaswell.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedSandyBridge.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Schedule.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleAtom.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleSLM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\CodeGen\ValueTypes.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\Intrinsics.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsAArch64.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsARM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsHexagon.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsMips.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsNVVM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsPowerPC.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsR600.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsX86.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsXCore.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Option\OptParser.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\Target.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetCallingConv.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetItinerary.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSchedule.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSelectionDAG.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenInstrInfo.inc.tmp - false - - - - - Updating X86GenInstrInfo.inc... - setlocal -copy /y $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenInstrInfo.inc.tmp $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenInstrInfo.inc -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenInstrInfo.inc.rule;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenInstrInfo.inc.tmp;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenInstrInfo.inc - false - Updating X86GenInstrInfo.inc... - setlocal -copy /y $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenInstrInfo.inc.tmp $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenInstrInfo.inc -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenInstrInfo.inc.rule;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenInstrInfo.inc.tmp;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenInstrInfo.inc - false - - - - - Building X86GenAsmWriter.inc... - setlocal -..\..\..\Debug\bin\llvm-tblgen.exe -gen-asm-writer -I $(ProjDir)../../../../llvm/lib/Target/X86 -I $(ProjDir)../../../../llvm/lib/Target -I $(ProjDir)../../../../llvm/include $(ProjDir)../../../../llvm/lib/Target/X86/X86.td -o $(ProjDir)../../../../llvm_build/lib/Target/X86/X86GenAsmWriter.inc.tmp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenAsmWriter.inc.tmp.rule;$(ProjDir)..\..\..\..\llvm_build\Debug\bin\llvm-tblgen.exe;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86CallingConv.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Instr3DNow.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrArithmetic.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrAVX512.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCMovSetCC.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCompiler.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrControl.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrExtension.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFMA.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFormats.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFPStack.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFragmentsSIMD.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrMMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrShiftRotate.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSSE.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSVM.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSystem.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrTSX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrVMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrXOP.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86RegisterInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedHaswell.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedSandyBridge.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Schedule.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleAtom.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleSLM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\CodeGen\ValueTypes.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\Intrinsics.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsAArch64.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsARM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsHexagon.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsMips.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsNVVM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsPowerPC.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsR600.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsX86.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsXCore.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Option\OptParser.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\Target.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetCallingConv.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetItinerary.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSchedule.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSelectionDAG.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmWriter.inc.tmp - false - Building X86GenAsmWriter.inc... - setlocal -..\..\..\Release\bin\llvm-tblgen.exe -gen-asm-writer -I $(ProjDir)../../../../llvm/lib/Target/X86 -I $(ProjDir)../../../../llvm/lib/Target -I $(ProjDir)../../../../llvm/include $(ProjDir)../../../../llvm/lib/Target/X86/X86.td -o $(ProjDir)../../../../llvm_build/lib/Target/X86/X86GenAsmWriter.inc.tmp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenAsmWriter.inc.tmp.rule;$(ProjDir)..\..\..\..\llvm_build\Release\bin\llvm-tblgen.exe;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86CallingConv.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Instr3DNow.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrArithmetic.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrAVX512.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCMovSetCC.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCompiler.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrControl.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrExtension.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFMA.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFormats.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFPStack.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFragmentsSIMD.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrMMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrShiftRotate.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSSE.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSVM.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSystem.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrTSX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrVMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrXOP.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86RegisterInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedHaswell.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedSandyBridge.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Schedule.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleAtom.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleSLM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\CodeGen\ValueTypes.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\Intrinsics.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsAArch64.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsARM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsHexagon.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsMips.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsNVVM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsPowerPC.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsR600.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsX86.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsXCore.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Option\OptParser.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\Target.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetCallingConv.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetItinerary.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSchedule.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSelectionDAG.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmWriter.inc.tmp - false - - - - - Updating X86GenAsmWriter.inc... - setlocal -copy /y $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmWriter.inc.tmp $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmWriter.inc -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenAsmWriter.inc.rule;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmWriter.inc.tmp;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmWriter.inc - false - Updating X86GenAsmWriter.inc... - setlocal -copy /y $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmWriter.inc.tmp $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmWriter.inc -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenAsmWriter.inc.rule;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmWriter.inc.tmp;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmWriter.inc - false - - - - - Building X86GenAsmWriter1.inc... - setlocal -..\..\..\Debug\bin\llvm-tblgen.exe -gen-asm-writer -asmwriternum=1 -I $(ProjDir)../../../../llvm/lib/Target/X86 -I $(ProjDir)../../../../llvm/lib/Target -I $(ProjDir)../../../../llvm/include $(ProjDir)../../../../llvm/lib/Target/X86/X86.td -o $(ProjDir)../../../../llvm_build/lib/Target/X86/X86GenAsmWriter1.inc.tmp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenAsmWriter1.inc.tmp.rule;$(ProjDir)..\..\..\..\llvm_build\Debug\bin\llvm-tblgen.exe;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86CallingConv.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Instr3DNow.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrArithmetic.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrAVX512.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCMovSetCC.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCompiler.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrControl.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrExtension.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFMA.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFormats.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFPStack.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFragmentsSIMD.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrMMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrShiftRotate.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSSE.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSVM.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSystem.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrTSX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrVMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrXOP.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86RegisterInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedHaswell.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedSandyBridge.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Schedule.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleAtom.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleSLM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\CodeGen\ValueTypes.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\Intrinsics.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsAArch64.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsARM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsHexagon.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsMips.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsNVVM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsPowerPC.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsR600.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsX86.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsXCore.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Option\OptParser.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\Target.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetCallingConv.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetItinerary.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSchedule.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSelectionDAG.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmWriter1.inc.tmp - false - Building X86GenAsmWriter1.inc... - setlocal -..\..\..\Release\bin\llvm-tblgen.exe -gen-asm-writer -asmwriternum=1 -I $(ProjDir)../../../../llvm/lib/Target/X86 -I $(ProjDir)../../../../llvm/lib/Target -I $(ProjDir)../../../../llvm/include $(ProjDir)../../../../llvm/lib/Target/X86/X86.td -o $(ProjDir)../../../../llvm_build/lib/Target/X86/X86GenAsmWriter1.inc.tmp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenAsmWriter1.inc.tmp.rule;$(ProjDir)..\..\..\..\llvm_build\Release\bin\llvm-tblgen.exe;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86CallingConv.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Instr3DNow.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrArithmetic.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrAVX512.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCMovSetCC.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCompiler.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrControl.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrExtension.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFMA.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFormats.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFPStack.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFragmentsSIMD.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrMMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrShiftRotate.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSSE.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSVM.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSystem.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrTSX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrVMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrXOP.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86RegisterInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedHaswell.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedSandyBridge.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Schedule.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleAtom.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleSLM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\CodeGen\ValueTypes.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\Intrinsics.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsAArch64.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsARM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsHexagon.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsMips.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsNVVM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsPowerPC.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsR600.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsX86.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsXCore.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Option\OptParser.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\Target.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetCallingConv.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetItinerary.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSchedule.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSelectionDAG.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmWriter1.inc.tmp - false - - - - - Updating X86GenAsmWriter1.inc... - setlocal -copy /y $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmWriter1.inc.tmp $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmWriter1.inc -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenAsmWriter1.inc.rule;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmWriter1.inc.tmp;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmWriter1.inc - false - Updating X86GenAsmWriter1.inc... - setlocal -copy /y $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmWriter1.inc.tmp $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmWriter1.inc -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenAsmWriter1.inc.rule;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmWriter1.inc.tmp;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmWriter1.inc - false - - - - - Building X86GenAsmMatcher.inc... - setlocal -..\..\..\Debug\bin\llvm-tblgen.exe -gen-asm-matcher -I $(ProjDir)../../../../llvm/lib/Target/X86 -I $(ProjDir)../../../../llvm/lib/Target -I $(ProjDir)../../../../llvm/include $(ProjDir)../../../../llvm/lib/Target/X86/X86.td -o $(ProjDir)../../../../llvm_build/lib/Target/X86/X86GenAsmMatcher.inc.tmp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenAsmMatcher.inc.tmp.rule;$(ProjDir)..\..\..\..\llvm_build\Debug\bin\llvm-tblgen.exe;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86CallingConv.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Instr3DNow.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrArithmetic.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrAVX512.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCMovSetCC.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCompiler.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrControl.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrExtension.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFMA.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFormats.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFPStack.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFragmentsSIMD.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrMMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrShiftRotate.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSSE.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSVM.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSystem.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrTSX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrVMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrXOP.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86RegisterInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedHaswell.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedSandyBridge.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Schedule.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleAtom.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleSLM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\CodeGen\ValueTypes.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\Intrinsics.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsAArch64.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsARM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsHexagon.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsMips.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsNVVM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsPowerPC.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsR600.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsX86.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsXCore.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Option\OptParser.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\Target.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetCallingConv.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetItinerary.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSchedule.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSelectionDAG.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmMatcher.inc.tmp - false - Building X86GenAsmMatcher.inc... - setlocal -..\..\..\Release\bin\llvm-tblgen.exe -gen-asm-matcher -I $(ProjDir)../../../../llvm/lib/Target/X86 -I $(ProjDir)../../../../llvm/lib/Target -I $(ProjDir)../../../../llvm/include $(ProjDir)../../../../llvm/lib/Target/X86/X86.td -o $(ProjDir)../../../../llvm_build/lib/Target/X86/X86GenAsmMatcher.inc.tmp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenAsmMatcher.inc.tmp.rule;$(ProjDir)..\..\..\..\llvm_build\Release\bin\llvm-tblgen.exe;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86CallingConv.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Instr3DNow.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrArithmetic.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrAVX512.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCMovSetCC.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCompiler.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrControl.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrExtension.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFMA.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFormats.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFPStack.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFragmentsSIMD.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrMMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrShiftRotate.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSSE.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSVM.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSystem.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrTSX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrVMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrXOP.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86RegisterInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedHaswell.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedSandyBridge.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Schedule.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleAtom.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleSLM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\CodeGen\ValueTypes.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\Intrinsics.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsAArch64.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsARM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsHexagon.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsMips.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsNVVM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsPowerPC.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsR600.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsX86.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsXCore.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Option\OptParser.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\Target.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetCallingConv.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetItinerary.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSchedule.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSelectionDAG.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmMatcher.inc.tmp - false - - - - - Updating X86GenAsmMatcher.inc... - setlocal -copy /y $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmMatcher.inc.tmp $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmMatcher.inc -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenAsmMatcher.inc.rule;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmMatcher.inc.tmp;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmMatcher.inc - false - Updating X86GenAsmMatcher.inc... - setlocal -copy /y $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmMatcher.inc.tmp $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmMatcher.inc -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenAsmMatcher.inc.rule;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmMatcher.inc.tmp;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmMatcher.inc - false - - - - - Building X86GenDAGISel.inc... - setlocal -..\..\..\Debug\bin\llvm-tblgen.exe -gen-dag-isel -I $(ProjDir)../../../../llvm/lib/Target/X86 -I $(ProjDir)../../../../llvm/lib/Target -I $(ProjDir)../../../../llvm/include $(ProjDir)../../../../llvm/lib/Target/X86/X86.td -o $(ProjDir)../../../../llvm_build/lib/Target/X86/X86GenDAGISel.inc.tmp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenDAGISel.inc.tmp.rule;$(ProjDir)..\..\..\..\llvm_build\Debug\bin\llvm-tblgen.exe;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86CallingConv.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Instr3DNow.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrArithmetic.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrAVX512.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCMovSetCC.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCompiler.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrControl.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrExtension.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFMA.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFormats.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFPStack.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFragmentsSIMD.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrMMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrShiftRotate.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSSE.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSVM.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSystem.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrTSX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrVMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrXOP.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86RegisterInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedHaswell.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedSandyBridge.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Schedule.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleAtom.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleSLM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\CodeGen\ValueTypes.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\Intrinsics.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsAArch64.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsARM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsHexagon.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsMips.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsNVVM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsPowerPC.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsR600.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsX86.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsXCore.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Option\OptParser.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\Target.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetCallingConv.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetItinerary.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSchedule.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSelectionDAG.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenDAGISel.inc.tmp - false - Building X86GenDAGISel.inc... - setlocal -..\..\..\Release\bin\llvm-tblgen.exe -gen-dag-isel -I $(ProjDir)../../../../llvm/lib/Target/X86 -I $(ProjDir)../../../../llvm/lib/Target -I $(ProjDir)../../../../llvm/include $(ProjDir)../../../../llvm/lib/Target/X86/X86.td -o $(ProjDir)../../../../llvm_build/lib/Target/X86/X86GenDAGISel.inc.tmp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenDAGISel.inc.tmp.rule;$(ProjDir)..\..\..\..\llvm_build\Release\bin\llvm-tblgen.exe;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86CallingConv.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Instr3DNow.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrArithmetic.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrAVX512.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCMovSetCC.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCompiler.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrControl.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrExtension.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFMA.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFormats.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFPStack.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFragmentsSIMD.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrMMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrShiftRotate.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSSE.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSVM.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSystem.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrTSX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrVMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrXOP.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86RegisterInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedHaswell.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedSandyBridge.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Schedule.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleAtom.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleSLM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\CodeGen\ValueTypes.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\Intrinsics.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsAArch64.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsARM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsHexagon.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsMips.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsNVVM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsPowerPC.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsR600.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsX86.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsXCore.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Option\OptParser.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\Target.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetCallingConv.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetItinerary.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSchedule.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSelectionDAG.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenDAGISel.inc.tmp - false - - - - - Updating X86GenDAGISel.inc... - setlocal -copy /y $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenDAGISel.inc.tmp $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenDAGISel.inc -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenDAGISel.inc.rule;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenDAGISel.inc.tmp;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenDAGISel.inc - false - Updating X86GenDAGISel.inc... - setlocal -copy /y $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenDAGISel.inc.tmp $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenDAGISel.inc -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenDAGISel.inc.rule;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenDAGISel.inc.tmp;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenDAGISel.inc - false - - - - - Building X86GenFastISel.inc... - setlocal -..\..\..\Debug\bin\llvm-tblgen.exe -gen-fast-isel -I $(ProjDir)../../../../llvm/lib/Target/X86 -I $(ProjDir)../../../../llvm/lib/Target -I $(ProjDir)../../../../llvm/include $(ProjDir)../../../../llvm/lib/Target/X86/X86.td -o $(ProjDir)../../../../llvm_build/lib/Target/X86/X86GenFastISel.inc.tmp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenFastISel.inc.tmp.rule;$(ProjDir)..\..\..\..\llvm_build\Debug\bin\llvm-tblgen.exe;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86CallingConv.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Instr3DNow.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrArithmetic.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrAVX512.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCMovSetCC.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCompiler.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrControl.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrExtension.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFMA.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFormats.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFPStack.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFragmentsSIMD.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrMMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrShiftRotate.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSSE.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSVM.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSystem.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrTSX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrVMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrXOP.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86RegisterInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedHaswell.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedSandyBridge.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Schedule.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleAtom.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleSLM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\CodeGen\ValueTypes.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\Intrinsics.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsAArch64.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsARM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsHexagon.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsMips.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsNVVM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsPowerPC.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsR600.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsX86.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsXCore.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Option\OptParser.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\Target.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetCallingConv.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetItinerary.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSchedule.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSelectionDAG.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenFastISel.inc.tmp - false - Building X86GenFastISel.inc... - setlocal -..\..\..\Release\bin\llvm-tblgen.exe -gen-fast-isel -I $(ProjDir)../../../../llvm/lib/Target/X86 -I $(ProjDir)../../../../llvm/lib/Target -I $(ProjDir)../../../../llvm/include $(ProjDir)../../../../llvm/lib/Target/X86/X86.td -o $(ProjDir)../../../../llvm_build/lib/Target/X86/X86GenFastISel.inc.tmp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenFastISel.inc.tmp.rule;$(ProjDir)..\..\..\..\llvm_build\Release\bin\llvm-tblgen.exe;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86CallingConv.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Instr3DNow.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrArithmetic.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrAVX512.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCMovSetCC.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCompiler.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrControl.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrExtension.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFMA.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFormats.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFPStack.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFragmentsSIMD.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrMMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrShiftRotate.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSSE.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSVM.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSystem.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrTSX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrVMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrXOP.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86RegisterInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedHaswell.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedSandyBridge.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Schedule.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleAtom.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleSLM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\CodeGen\ValueTypes.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\Intrinsics.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsAArch64.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsARM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsHexagon.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsMips.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsNVVM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsPowerPC.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsR600.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsX86.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsXCore.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Option\OptParser.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\Target.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetCallingConv.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetItinerary.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSchedule.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSelectionDAG.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenFastISel.inc.tmp - false - - - - - Updating X86GenFastISel.inc... - setlocal -copy /y $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenFastISel.inc.tmp $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenFastISel.inc -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenFastISel.inc.rule;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenFastISel.inc.tmp;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenFastISel.inc - false - Updating X86GenFastISel.inc... - setlocal -copy /y $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenFastISel.inc.tmp $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenFastISel.inc -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenFastISel.inc.rule;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenFastISel.inc.tmp;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenFastISel.inc - false - - - - - Building X86GenCallingConv.inc... - setlocal -..\..\..\Debug\bin\llvm-tblgen.exe -gen-callingconv -I $(ProjDir)../../../../llvm/lib/Target/X86 -I $(ProjDir)../../../../llvm/lib/Target -I $(ProjDir)../../../../llvm/include $(ProjDir)../../../../llvm/lib/Target/X86/X86.td -o $(ProjDir)../../../../llvm_build/lib/Target/X86/X86GenCallingConv.inc.tmp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenCallingConv.inc.tmp.rule;$(ProjDir)..\..\..\..\llvm_build\Debug\bin\llvm-tblgen.exe;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86CallingConv.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Instr3DNow.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrArithmetic.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrAVX512.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCMovSetCC.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCompiler.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrControl.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrExtension.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFMA.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFormats.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFPStack.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFragmentsSIMD.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrMMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrShiftRotate.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSSE.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSVM.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSystem.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrTSX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrVMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrXOP.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86RegisterInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedHaswell.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedSandyBridge.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Schedule.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleAtom.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleSLM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\CodeGen\ValueTypes.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\Intrinsics.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsAArch64.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsARM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsHexagon.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsMips.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsNVVM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsPowerPC.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsR600.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsX86.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsXCore.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Option\OptParser.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\Target.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetCallingConv.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetItinerary.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSchedule.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSelectionDAG.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenCallingConv.inc.tmp - false - Building X86GenCallingConv.inc... - setlocal -..\..\..\Release\bin\llvm-tblgen.exe -gen-callingconv -I $(ProjDir)../../../../llvm/lib/Target/X86 -I $(ProjDir)../../../../llvm/lib/Target -I $(ProjDir)../../../../llvm/include $(ProjDir)../../../../llvm/lib/Target/X86/X86.td -o $(ProjDir)../../../../llvm_build/lib/Target/X86/X86GenCallingConv.inc.tmp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenCallingConv.inc.tmp.rule;$(ProjDir)..\..\..\..\llvm_build\Release\bin\llvm-tblgen.exe;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86CallingConv.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Instr3DNow.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrArithmetic.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrAVX512.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCMovSetCC.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCompiler.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrControl.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrExtension.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFMA.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFormats.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFPStack.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFragmentsSIMD.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrMMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrShiftRotate.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSSE.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSVM.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSystem.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrTSX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrVMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrXOP.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86RegisterInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedHaswell.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedSandyBridge.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Schedule.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleAtom.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleSLM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\CodeGen\ValueTypes.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\Intrinsics.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsAArch64.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsARM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsHexagon.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsMips.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsNVVM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsPowerPC.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsR600.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsX86.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsXCore.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Option\OptParser.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\Target.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetCallingConv.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetItinerary.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSchedule.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSelectionDAG.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenCallingConv.inc.tmp - false - - - - - Updating X86GenCallingConv.inc... - setlocal -copy /y $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenCallingConv.inc.tmp $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenCallingConv.inc -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenCallingConv.inc.rule;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenCallingConv.inc.tmp;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenCallingConv.inc - false - Updating X86GenCallingConv.inc... - setlocal -copy /y $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenCallingConv.inc.tmp $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenCallingConv.inc -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenCallingConv.inc.rule;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenCallingConv.inc.tmp;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenCallingConv.inc - false - - - - - Building X86GenSubtargetInfo.inc... - setlocal -..\..\..\Debug\bin\llvm-tblgen.exe -gen-subtarget -I $(ProjDir)../../../../llvm/lib/Target/X86 -I $(ProjDir)../../../../llvm/lib/Target -I $(ProjDir)../../../../llvm/include $(ProjDir)../../../../llvm/lib/Target/X86/X86.td -o $(ProjDir)../../../../llvm_build/lib/Target/X86/X86GenSubtargetInfo.inc.tmp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenSubtargetInfo.inc.tmp.rule;$(ProjDir)..\..\..\..\llvm_build\Debug\bin\llvm-tblgen.exe;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86CallingConv.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Instr3DNow.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrArithmetic.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrAVX512.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCMovSetCC.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCompiler.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrControl.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrExtension.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFMA.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFormats.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFPStack.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFragmentsSIMD.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrMMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrShiftRotate.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSSE.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSVM.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSystem.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrTSX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrVMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrXOP.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86RegisterInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedHaswell.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedSandyBridge.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Schedule.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleAtom.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleSLM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\CodeGen\ValueTypes.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\Intrinsics.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsAArch64.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsARM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsHexagon.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsMips.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsNVVM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsPowerPC.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsR600.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsX86.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsXCore.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Option\OptParser.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\Target.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetCallingConv.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetItinerary.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSchedule.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSelectionDAG.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenSubtargetInfo.inc.tmp - false - Building X86GenSubtargetInfo.inc... - setlocal -..\..\..\Release\bin\llvm-tblgen.exe -gen-subtarget -I $(ProjDir)../../../../llvm/lib/Target/X86 -I $(ProjDir)../../../../llvm/lib/Target -I $(ProjDir)../../../../llvm/include $(ProjDir)../../../../llvm/lib/Target/X86/X86.td -o $(ProjDir)../../../../llvm_build/lib/Target/X86/X86GenSubtargetInfo.inc.tmp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenSubtargetInfo.inc.tmp.rule;$(ProjDir)..\..\..\..\llvm_build\Release\bin\llvm-tblgen.exe;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86CallingConv.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Instr3DNow.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrArithmetic.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrAVX512.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCMovSetCC.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrCompiler.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrControl.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrExtension.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFMA.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFormats.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFPStack.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrFragmentsSIMD.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrMMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrShiftRotate.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSSE.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSVM.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrSystem.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrTSX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrVMX.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86InstrXOP.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86RegisterInfo.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedHaswell.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86SchedSandyBridge.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86Schedule.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleAtom.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86ScheduleSLM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\CodeGen\ValueTypes.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\Intrinsics.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsAArch64.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsARM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsHexagon.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsMips.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsNVVM.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsPowerPC.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsR600.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsX86.td;$(ProjDir)..\..\..\..\llvm\include\llvm\IR\IntrinsicsXCore.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Option\OptParser.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\Target.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetCallingConv.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetItinerary.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSchedule.td;$(ProjDir)..\..\..\..\llvm\include\llvm\Target\TargetSelectionDAG.td;$(ProjDir)..\..\..\..\llvm\lib\Target\X86\X86.td;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenSubtargetInfo.inc.tmp - false - - - - - Updating X86GenSubtargetInfo.inc... - setlocal -copy /y $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenSubtargetInfo.inc.tmp $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenSubtargetInfo.inc -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenSubtargetInfo.inc.rule;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenSubtargetInfo.inc.tmp;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenSubtargetInfo.inc - false - Updating X86GenSubtargetInfo.inc... - setlocal -copy /y $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenSubtargetInfo.inc.tmp $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenSubtargetInfo.inc -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c2193a484be62350f17b11827d8909e4/X86GenSubtargetInfo.inc.rule;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenSubtargetInfo.inc.tmp;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenSubtargetInfo.inc - false - - - - - - setlocal -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/119f22f6f43f0c71b19740265bf5be01/X86CommonTableGen.rule;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenRegisterInfo.inc;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenDisassemblerTables.inc;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenInstrInfo.inc;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmWriter.inc;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmWriter1.inc;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmMatcher.inc;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenDAGISel.inc;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenFastISel.inc;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenCallingConv.inc;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenSubtargetInfo.inc;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\CMakeFiles\X86CommonTableGen - false - - setlocal -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/119f22f6f43f0c71b19740265bf5be01/X86CommonTableGen.rule;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenRegisterInfo.inc;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenDisassemblerTables.inc;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenInstrInfo.inc;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmWriter.inc;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmWriter1.inc;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenAsmMatcher.inc;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenDAGISel.inc;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenFastISel.inc;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenCallingConv.inc;$(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\X86GenSubtargetInfo.inc;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Target\X86\CMakeFiles\X86CommonTableGen - false - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - 0B9F2D3D-23BA-4B2F-9D24-1F2742BE6FAA - - - 530CB1CA-0D5D-4D1C-AE8A-F6E2438DB511 - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/Target/X86/X86CommonTableGen.vcxproj.filters b/llvm_build/lib/Target/X86/X86CommonTableGen.vcxproj.filters deleted file mode 100644 index bfa3bd87b6..0000000000 --- a/llvm_build/lib/Target/X86/X86CommonTableGen.vcxproj.filters +++ /dev/null @@ -1,76 +0,0 @@ - - - - - CMake Rules - - - CMake Rules - - - CMake Rules - - - CMake Rules - - - CMake Rules - - - CMake Rules - - - CMake Rules - - - CMake Rules - - - CMake Rules - - - CMake Rules - - - CMake Rules - - - CMake Rules - - - CMake Rules - - - CMake Rules - - - CMake Rules - - - CMake Rules - - - CMake Rules - - - CMake Rules - - - CMake Rules - - - CMake Rules - - - CMake Rules - - - - - - - - {D67C7D72-C25D-412B-A18E-3E0785D9470F} - - - \ No newline at end of file diff --git a/llvm_build/lib/Transforms/Hello/LLVMHello.vcxproj b/llvm_build/lib/Transforms/Hello/LLVMHello.vcxproj deleted file mode 100644 index bc3364753c..0000000000 --- a/llvm_build/lib/Transforms/Hello/LLVMHello.vcxproj +++ /dev/null @@ -1,131 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {302572BB-6820-4878-8595-40CB10B67424} - Win32Proj - x64 - LLVMHello - - - - Utility - false - MultiByte - v120 - - - Utility - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(Platform)\$(Configuration)\$(ProjectName)\ - $(Platform)\$(Configuration)\$(ProjectName)\ - - - - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Hello;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Hello;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Hello;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Hello;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../../llvm/lib/Transforms/Hello/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/Transforms/Hello/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Hello\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Hello\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Hello\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../../llvm/lib/Transforms/Hello/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/Transforms/Hello/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Hello\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Hello\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Hello\CMakeFiles\generate.stamp - false - - - - - - setlocal -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c9b819979a0e4c28c15ef0cfe9f30b33/LLVMHello.rule;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Hello\CMakeFiles\LLVMHello - false - - setlocal -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm_build/CMakeFiles/c9b819979a0e4c28c15ef0cfe9f30b33/LLVMHello.rule;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Hello\CMakeFiles\LLVMHello - false - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/Transforms/Hello/LLVMHello.vcxproj.filters b/llvm_build/lib/Transforms/Hello/LLVMHello.vcxproj.filters deleted file mode 100644 index 978cd1304c..0000000000 --- a/llvm_build/lib/Transforms/Hello/LLVMHello.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - CMake Rules - - - - - - - - {D67C7D72-C25D-412B-A18E-3E0785D9470F} - - - \ No newline at end of file diff --git a/llvm_build/lib/Transforms/IPO/LLVMipo.vcxproj b/llvm_build/lib/Transforms/IPO/LLVMipo.vcxproj deleted file mode 100644 index 276557f89d..0000000000 --- a/llvm_build/lib/Transforms/IPO/LLVMipo.vcxproj +++ /dev/null @@ -1,183 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {18949A49-98AB-4252-A9B8-0108FE1DC311} - Win32Proj - x64 - LLVMipo - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\..\llvm_build\Debug\lib\ - LLVMipo.dir\Debug\ - LLVMipo - .lib - $(ProjDir)..\..\..\..\llvm_build\Release\lib\ - LLVMipo.dir\Release\ - LLVMipo - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\IPO;$(ProjDir)..\..\..\..\llvm\lib\Transforms\IPO;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\IPO;$(ProjDir)..\..\..\..\llvm\lib\Transforms\IPO;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\IPO;$(ProjDir)..\..\..\..\llvm\lib\Transforms\IPO;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\IPO;$(ProjDir)..\..\..\..\llvm\lib\Transforms\IPO;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\IPO;$(ProjDir)..\..\..\..\llvm\lib\Transforms\IPO;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\IPO;$(ProjDir)..\..\..\..\llvm\lib\Transforms\IPO;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../../llvm/lib/Transforms/IPO/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/Transforms/IPO/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\IPO\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\IPO\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\IPO\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../../llvm/lib/Transforms/IPO/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/Transforms/IPO/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\IPO\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\IPO\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\IPO\CMakeFiles\generate.stamp - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - 0B9F2D3D-23BA-4B2F-9D24-1F2742BE6FAA - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/Transforms/IPO/LLVMipo.vcxproj.filters b/llvm_build/lib/Transforms/IPO/LLVMipo.vcxproj.filters deleted file mode 100644 index 1b93c63942..0000000000 --- a/llvm_build/lib/Transforms/IPO/LLVMipo.vcxproj.filters +++ /dev/null @@ -1,75 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - \ No newline at end of file diff --git a/llvm_build/lib/Transforms/InstCombine/LLVMInstCombine.vcxproj b/llvm_build/lib/Transforms/InstCombine/LLVMInstCombine.vcxproj deleted file mode 100644 index c013908a47..0000000000 --- a/llvm_build/lib/Transforms/InstCombine/LLVMInstCombine.vcxproj +++ /dev/null @@ -1,177 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {34A41D1F-88E4-4B0D-AEF5-9E8F600740A8} - Win32Proj - x64 - LLVMInstCombine - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\..\llvm_build\Debug\lib\ - LLVMInstCombine.dir\Debug\ - LLVMInstCombine - .lib - $(ProjDir)..\..\..\..\llvm_build\Release\lib\ - LLVMInstCombine.dir\Release\ - LLVMInstCombine - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\InstCombine;$(ProjDir)..\..\..\..\llvm\lib\Transforms\InstCombine;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\InstCombine;$(ProjDir)..\..\..\..\llvm\lib\Transforms\InstCombine;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\InstCombine;$(ProjDir)..\..\..\..\llvm\lib\Transforms\InstCombine;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\InstCombine;$(ProjDir)..\..\..\..\llvm\lib\Transforms\InstCombine;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\InstCombine;$(ProjDir)..\..\..\..\llvm\lib\Transforms\InstCombine;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\InstCombine;$(ProjDir)..\..\..\..\llvm\lib\Transforms\InstCombine;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../../llvm/lib/Transforms/InstCombine/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/Transforms/InstCombine/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\InstCombine\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\InstCombine\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\InstCombine\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../../llvm/lib/Transforms/InstCombine/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/Transforms/InstCombine/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\InstCombine\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\InstCombine\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\InstCombine\CMakeFiles\generate.stamp - false - - - - - - - - - - - - - - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - 0B9F2D3D-23BA-4B2F-9D24-1F2742BE6FAA - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/Transforms/InstCombine/LLVMInstCombine.vcxproj.filters b/llvm_build/lib/Transforms/InstCombine/LLVMInstCombine.vcxproj.filters deleted file mode 100644 index d3166bef8e..0000000000 --- a/llvm_build/lib/Transforms/InstCombine/LLVMInstCombine.vcxproj.filters +++ /dev/null @@ -1,62 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - {C4A58D48-0D94-4539-AE81-2E13421E4512} - - - \ No newline at end of file diff --git a/llvm_build/lib/Transforms/Instrumentation/LLVMInstrumentation.vcxproj b/llvm_build/lib/Transforms/Instrumentation/LLVMInstrumentation.vcxproj deleted file mode 100644 index 73322238bb..0000000000 --- a/llvm_build/lib/Transforms/Instrumentation/LLVMInstrumentation.vcxproj +++ /dev/null @@ -1,172 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {1D8A1D0C-3A20-49AD-AABE-B93015AB9A2A} - Win32Proj - x64 - LLVMInstrumentation - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\..\llvm_build\Debug\lib\ - LLVMInstrumentation.dir\Debug\ - LLVMInstrumentation - .lib - $(ProjDir)..\..\..\..\llvm_build\Release\lib\ - LLVMInstrumentation.dir\Release\ - LLVMInstrumentation - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Instrumentation;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Instrumentation;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Instrumentation;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Instrumentation;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Instrumentation;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Instrumentation;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Instrumentation;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Instrumentation;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Instrumentation;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Instrumentation;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Instrumentation;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Instrumentation;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../../llvm/lib/Transforms/Instrumentation/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/Transforms/Instrumentation/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Instrumentation\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Instrumentation\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Instrumentation\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../../llvm/lib/Transforms/Instrumentation/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/Transforms/Instrumentation/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Instrumentation\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Instrumentation\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Instrumentation\CMakeFiles\generate.stamp - false - - - - - - - - - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - 0B9F2D3D-23BA-4B2F-9D24-1F2742BE6FAA - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/Transforms/Instrumentation/LLVMInstrumentation.vcxproj.filters b/llvm_build/lib/Transforms/Instrumentation/LLVMInstrumentation.vcxproj.filters deleted file mode 100644 index aae94f347e..0000000000 --- a/llvm_build/lib/Transforms/Instrumentation/LLVMInstrumentation.vcxproj.filters +++ /dev/null @@ -1,47 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - {C4A58D48-0D94-4539-AE81-2E13421E4512} - - - \ No newline at end of file diff --git a/llvm_build/lib/Transforms/ObjCARC/LLVMObjCARCOpts.vcxproj b/llvm_build/lib/Transforms/ObjCARC/LLVMObjCARCOpts.vcxproj deleted file mode 100644 index a68580829f..0000000000 --- a/llvm_build/lib/Transforms/ObjCARC/LLVMObjCARCOpts.vcxproj +++ /dev/null @@ -1,176 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {B99AF916-2876-49B0-BA40-3E4757107459} - Win32Proj - x64 - LLVMObjCARCOpts - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\..\llvm_build\Debug\lib\ - LLVMObjCARCOpts.dir\Debug\ - LLVMObjCARCOpts - .lib - $(ProjDir)..\..\..\..\llvm_build\Release\lib\ - LLVMObjCARCOpts.dir\Release\ - LLVMObjCARCOpts - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\ObjCARC;$(ProjDir)..\..\..\..\llvm\lib\Transforms\ObjCARC;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\ObjCARC;$(ProjDir)..\..\..\..\llvm\lib\Transforms\ObjCARC;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\ObjCARC;$(ProjDir)..\..\..\..\llvm\lib\Transforms\ObjCARC;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\ObjCARC;$(ProjDir)..\..\..\..\llvm\lib\Transforms\ObjCARC;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\ObjCARC;$(ProjDir)..\..\..\..\llvm\lib\Transforms\ObjCARC;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\ObjCARC;$(ProjDir)..\..\..\..\llvm\lib\Transforms\ObjCARC;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../../llvm/lib/Transforms/ObjCARC/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/Transforms/ObjCARC/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\ObjCARC\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\ObjCARC\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\ObjCARC\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../../llvm/lib/Transforms/ObjCARC/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/Transforms/ObjCARC/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\ObjCARC\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\ObjCARC\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\ObjCARC\CMakeFiles\generate.stamp - false - - - - - - - - - - - - - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - 0B9F2D3D-23BA-4B2F-9D24-1F2742BE6FAA - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/Transforms/ObjCARC/LLVMObjCARCOpts.vcxproj.filters b/llvm_build/lib/Transforms/ObjCARC/LLVMObjCARCOpts.vcxproj.filters deleted file mode 100644 index c7c8abca86..0000000000 --- a/llvm_build/lib/Transforms/ObjCARC/LLVMObjCARCOpts.vcxproj.filters +++ /dev/null @@ -1,59 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - {C4A58D48-0D94-4539-AE81-2E13421E4512} - - - \ No newline at end of file diff --git a/llvm_build/lib/Transforms/Scalar/LLVMScalarOpts.vcxproj b/llvm_build/lib/Transforms/Scalar/LLVMScalarOpts.vcxproj deleted file mode 100644 index 4b193c848b..0000000000 --- a/llvm_build/lib/Transforms/Scalar/LLVMScalarOpts.vcxproj +++ /dev/null @@ -1,200 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {696AC711-8C59-47B6-BAEE-3720F1584BD9} - Win32Proj - x64 - LLVMScalarOpts - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\..\llvm_build\Debug\lib\ - LLVMScalarOpts.dir\Debug\ - LLVMScalarOpts - .lib - $(ProjDir)..\..\..\..\llvm_build\Release\lib\ - LLVMScalarOpts.dir\Release\ - LLVMScalarOpts - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Scalar;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Scalar;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Scalar;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Scalar;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Scalar;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Scalar;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Scalar;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Scalar;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Scalar;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Scalar;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Scalar;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Scalar;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../../llvm/lib/Transforms/Scalar/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/Transforms/Scalar/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Scalar\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Scalar\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Scalar\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../../llvm/lib/Transforms/Scalar/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/Transforms/Scalar/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Scalar\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Scalar\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Scalar\CMakeFiles\generate.stamp - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - 0B9F2D3D-23BA-4B2F-9D24-1F2742BE6FAA - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/Transforms/Scalar/LLVMScalarOpts.vcxproj.filters b/llvm_build/lib/Transforms/Scalar/LLVMScalarOpts.vcxproj.filters deleted file mode 100644 index e91f52234b..0000000000 --- a/llvm_build/lib/Transforms/Scalar/LLVMScalarOpts.vcxproj.filters +++ /dev/null @@ -1,126 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - \ No newline at end of file diff --git a/llvm_build/lib/Transforms/Utils/LLVMTransformUtils.vcxproj b/llvm_build/lib/Transforms/Utils/LLVMTransformUtils.vcxproj deleted file mode 100644 index 7ace163152..0000000000 --- a/llvm_build/lib/Transforms/Utils/LLVMTransformUtils.vcxproj +++ /dev/null @@ -1,199 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {0AA93183-D470-4784-8E49-FAEE03328077} - Win32Proj - x64 - LLVMTransformUtils - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\..\llvm_build\Debug\lib\ - LLVMTransformUtils.dir\Debug\ - LLVMTransformUtils - .lib - $(ProjDir)..\..\..\..\llvm_build\Release\lib\ - LLVMTransformUtils.dir\Release\ - LLVMTransformUtils - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Utils;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Utils;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Utils;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Utils;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Utils;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Utils;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Utils;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Utils;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Utils;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Utils;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Utils;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Utils;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../../llvm/lib/Transforms/Utils/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/Transforms/Utils/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Utils\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Utils\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Utils\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../../llvm/lib/Transforms/Utils/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/Transforms/Utils/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Utils\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Utils\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Utils\CMakeFiles\generate.stamp - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - 0B9F2D3D-23BA-4B2F-9D24-1F2742BE6FAA - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/Transforms/Utils/LLVMTransformUtils.vcxproj.filters b/llvm_build/lib/Transforms/Utils/LLVMTransformUtils.vcxproj.filters deleted file mode 100644 index 7fb7006e3c..0000000000 --- a/llvm_build/lib/Transforms/Utils/LLVMTransformUtils.vcxproj.filters +++ /dev/null @@ -1,123 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - \ No newline at end of file diff --git a/llvm_build/lib/Transforms/Vectorize/LLVMVectorize.vcxproj b/llvm_build/lib/Transforms/Vectorize/LLVMVectorize.vcxproj deleted file mode 100644 index 0de68edd77..0000000000 --- a/llvm_build/lib/Transforms/Vectorize/LLVMVectorize.vcxproj +++ /dev/null @@ -1,166 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {5F51E07D-BCD5-49F1-9105-55527DF84D14} - Win32Proj - x64 - LLVMVectorize - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\..\llvm_build\Debug\lib\ - LLVMVectorize.dir\Debug\ - LLVMVectorize - .lib - $(ProjDir)..\..\..\..\llvm_build\Release\lib\ - LLVMVectorize.dir\Release\ - LLVMVectorize - .lib - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Vectorize;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Vectorize;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Vectorize;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Vectorize;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Vectorize;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Vectorize;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Vectorize;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Vectorize;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Vectorize;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Vectorize;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Vectorize;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Vectorize;$(ProjDir)..\..\..\..\llvm_build\include;$(ProjDir)..\..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Building Custom Rule $(ProjDir)../../../../llvm/lib/Transforms/Vectorize/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/Transforms/Vectorize/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Vectorize\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Vectorize\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Vectorize\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../../llvm/lib/Transforms/Vectorize/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../../llvm/lib/Transforms/Vectorize/CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Vectorize\CMakeLists.txt;$(ProjDir)..\..\..\..\llvm\lib\Transforms\Vectorize\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\..\llvm_build\lib\Transforms\Vectorize\CMakeFiles\generate.stamp - false - - - - - - - - - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - 0B9F2D3D-23BA-4B2F-9D24-1F2742BE6FAA - - - - - - - \ No newline at end of file diff --git a/llvm_build/lib/Transforms/Vectorize/LLVMVectorize.vcxproj.filters b/llvm_build/lib/Transforms/Vectorize/LLVMVectorize.vcxproj.filters deleted file mode 100644 index 23ff793651..0000000000 --- a/llvm_build/lib/Transforms/Vectorize/LLVMVectorize.vcxproj.filters +++ /dev/null @@ -1,24 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - \ No newline at end of file diff --git a/llvm_build/utils/TableGen/llvm-tblgen.vcxproj b/llvm_build/utils/TableGen/llvm-tblgen.vcxproj deleted file mode 100644 index 34d1fb2644..0000000000 --- a/llvm_build/utils/TableGen/llvm-tblgen.vcxproj +++ /dev/null @@ -1,242 +0,0 @@ - - - - Debug - x64 - - - Release - x64 - - - - {530CB1CA-0D5D-4D1C-AE8A-F6E2438DB511} - Win32Proj - x64 - llvm-tblgen - - - - Application - false - MultiByte - v120 - - - Application - false - MultiByte - v120 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(ProjDir)..\..\..\llvm_build\Debug\bin\ - llvm-tblgen.dir\Debug\ - llvm-tblgen - .exe - true - true - $(ProjDir)..\..\..\llvm_build\Release\bin\ - llvm-tblgen.dir\Release\ - llvm-tblgen - .exe - false - true - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\utils\TableGen;$(ProjDir)..\..\..\llvm\utils\TableGen;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Debug/ - EnableFastChecks - CompileAsCpp - ProgramDatabase - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - Disabled - true - Disabled - NotUsing - MultiThreadedDebugDLL - false - 4238 - Level3 - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\utils\TableGen;$(ProjDir)..\..\..\llvm\utils\TableGen;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\utils\TableGen;$(ProjDir)..\..\..\llvm\utils\TableGen;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - /machine:x64 /debug %(AdditionalOptions) - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;..\..\Debug\lib\LLVMSupport.lib;..\..\Debug\lib\LLVMTableGen.lib;..\..\Debug\lib\LLVMSupport.lib - %(AdditionalLibraryDirectories) - true - $(ProjDir)../../../llvm_build/Debug/lib/llvm-tblgen.lib - $(ProjDir)../../../llvm_build/Debug/bin/llvm-tblgen.pdb - 10000000 - Console - - - - false - - - - - /EHs-c- -w14062 %(AdditionalOptions) - $(ProjDir)..\..\..\llvm_build\utils\TableGen;$(ProjDir)..\..\..\llvm\utils\TableGen;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - Release/ - CompileAsCpp - 4146;4180;4244;4267;4291;4345;4351;4355;4503;4624;4722;4800 - - - AnySuitable - true - MaxSpeed - NotUsing - MultiThreadedDLL - false - 4238 - Level3 - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;_HAS_EXCEPTIONS=0;GTEST_HAS_RTTI=0;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;__STDC_LIMIT_MACROS;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - $(ProjDir)..\..\..\llvm_build\utils\TableGen;$(ProjDir)..\..\..\llvm\utils\TableGen;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - - - $(ProjDir)..\..\..\llvm_build\utils\TableGen;$(ProjDir)..\..\..\llvm\utils\TableGen;$(ProjDir)..\..\..\llvm_build\include;$(ProjDir)..\..\..\llvm\include;%(AdditionalIncludeDirectories) - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - /machine:x64 %(AdditionalOptions) - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;..\..\Release\lib\LLVMSupport.lib;..\..\Release\lib\LLVMTableGen.lib;..\..\Release\lib\LLVMSupport.lib - %(AdditionalLibraryDirectories) - false - $(ProjDir)../../../llvm_build/Release/lib/llvm-tblgen.lib - $(ProjDir)../../../llvm_build/Release/bin/llvm-tblgen.pdb - 10000000 - Console - - - - false - - - - - Building Custom Rule $(ProjDir)../../../llvm/utils/TableGen/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/utils/TableGen/CMakeLists.txt;$(ProjDir)..\..\..\llvm\utils\TableGen\CMakeLists.txt;$(ProjDir)..\..\..\llvm\utils\TableGen\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\utils\TableGen\CMakeFiles\generate.stamp - false - Building Custom Rule $(ProjDir)../../../llvm/utils/TableGen/CMakeLists.txt - setlocal -REM OMMITTED CMAKE COMMAND -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - $(ProjDir)../../../llvm/utils/TableGen/CMakeLists.txt;$(ProjDir)..\..\..\llvm\utils\TableGen\CMakeLists.txt;$(ProjDir)..\..\..\llvm\utils\TableGen\CMakeLists.txt;%(AdditionalInputs) - $(ProjDir)..\..\..\llvm_build\utils\TableGen\CMakeFiles\generate.stamp - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 41690A1E-62D3-4EDA-B5CB-514DA463C038 - - - C0E508F0-FE5D-49B5-AE9A-61B13771EB12 - - - F657D95D-4514-49A3-A0BE-D73580846B47 - - - - - - - \ No newline at end of file diff --git a/llvm_build/utils/TableGen/llvm-tblgen.vcxproj.filters b/llvm_build/utils/TableGen/llvm-tblgen.vcxproj.filters deleted file mode 100644 index a77d705ad2..0000000000 --- a/llvm_build/utils/TableGen/llvm-tblgen.vcxproj.filters +++ /dev/null @@ -1,152 +0,0 @@ - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - - - - {73255B00-5C5F-44DF-AF13-17E25F77C964} - - - {C4A58D48-0D94-4539-AE81-2E13421E4512} - - - \ No newline at end of file diff --git a/rpcs3.sln b/rpcs3.sln index 0507e81cc5..e594502b11 100644 --- a/rpcs3.sln +++ b/rpcs3.sln @@ -1,6 +1,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 -VisualStudioVersion = 12.0.30723.0 +VisualStudioVersion = 12.0.31101.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rpcs3", "rpcs3\rpcs3.vcxproj", "{70CD65B0-91D6-4FAE-9A7B-4AF55D0D1B12}" ProjectSection(ProjectDependencies) = postProject @@ -139,6 +139,9 @@ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "asmjit", "asmjit", "{E2A982F2-4B1A-48B1-8D77-A17A589C58D7}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "emucore", "rpcs3\emucore.vcxproj", "{C4A10229-4712-4BD2-B63E-50D93C67A038}" + ProjectSection(ProjectDependencies) = postProject + {8BC303AB-25BE-4276-8E57-73F171B2D672} = {8BC303AB-25BE-4276-8E57-73F171B2D672} + EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "llvm", "llvm", "{C8068CE9-D626-4FEA-BEE7-893F06A25BF3}" EndProject @@ -441,4 +444,4 @@ Global {AC40FF01-426E-4838-A317-66354CEFAE88} = {E2A982F2-4B1A-48B1-8D77-A17A589C58D7} {8BC303AB-25BE-4276-8E57-73F171B2D672} = {C8068CE9-D626-4FEA-BEE7-893F06A25BF3} EndGlobalSection -EndGlobal +EndGlobal diff --git a/rpcs3/CMakeLists.txt b/rpcs3/CMakeLists.txt index cf55a5ca0b..9245ac9125 100644 --- a/rpcs3/CMakeLists.txt +++ b/rpcs3/CMakeLists.txt @@ -81,7 +81,11 @@ ${LLVM_INCLUDE_DIRS} add_definitions(${LLVM_DEFINITIONS}) add_definitions(-DLLVM_AVAILABLE) -llvm_map_components_to_libnames(LLVM_LIBS jit vectorize x86codegen x86disassembler) +if (CMAKE_BUILD_TYPE STREQUAL "Release") + llvm_map_components_to_libnames(LLVM_LIBS jit vectorize x86codegen x86disassembler) +else() + llvm_map_components_to_libnames(LLVM_LIBS jit vectorize x86codegen x86disassembler mcdisassembler) +endif() link_directories("${RPCS3_SRC_DIR}/../ffmpeg/${PLATFORM_ARCH}/lib") diff --git a/rpcs3/Crypto/unself.cpp b/rpcs3/Crypto/unself.cpp index 67ef26a4b1..28b464c100 100644 --- a/rpcs3/Crypto/unself.cpp +++ b/rpcs3/Crypto/unself.cpp @@ -10,6 +10,101 @@ #include #include + +void WriteEhdr(rFile& f, Elf64_Ehdr& ehdr) +{ +Write32(f, ehdr.e_magic); +Write8(f, ehdr.e_class); +Write8(f, ehdr.e_data); +Write8(f, ehdr.e_curver); +Write8(f, ehdr.e_os_abi); +Write64(f, ehdr.e_abi_ver); +Write16(f, ehdr.e_type); +Write16(f, ehdr.e_machine); +Write32(f, ehdr.e_version); +Write64(f, ehdr.e_entry); +Write64(f, ehdr.e_phoff); +Write64(f, ehdr.e_shoff); +Write32(f, ehdr.e_flags); +Write16(f, ehdr.e_ehsize); +Write16(f, ehdr.e_phentsize); +Write16(f, ehdr.e_phnum); +Write16(f, ehdr.e_shentsize); +Write16(f, ehdr.e_shnum); +Write16(f, ehdr.e_shstrndx); +} +void WritePhdr(rFile& f, Elf64_Phdr& phdr) +{ +Write32(f, phdr.p_type); +Write32(f, phdr.p_flags); +Write64(f, phdr.p_offset); +Write64(f, phdr.p_vaddr); +Write64(f, phdr.p_paddr); +Write64(f, phdr.p_filesz); +Write64(f, phdr.p_memsz); +Write64(f, phdr.p_align); +} +void WriteShdr(rFile& f, Elf64_Shdr& shdr) +{ +Write32(f, shdr.sh_name); +Write32(f, shdr.sh_type); +Write64(f, shdr.sh_flags); +Write64(f, shdr.sh_addr); +Write64(f, shdr.sh_offset); +Write64(f, shdr.sh_size); +Write32(f, shdr.sh_link); +Write32(f, shdr.sh_info); +Write64(f, shdr.sh_addralign); +Write64(f, shdr.sh_entsize); +} +void WriteEhdr(rFile& f, Elf32_Ehdr& ehdr) +{ + Write32(f, ehdr.e_magic); + Write8(f, ehdr.e_class); + Write8(f, ehdr.e_data); + Write8(f, ehdr.e_curver); + Write8(f, ehdr.e_os_abi); + Write64(f, ehdr.e_abi_ver); + Write16(f, ehdr.e_type); + Write16(f, ehdr.e_machine); + Write32(f, ehdr.e_version); + Write32(f, ehdr.e_entry); + Write32(f, ehdr.e_phoff); + Write32(f, ehdr.e_shoff); + Write32(f, ehdr.e_flags); + Write16(f, ehdr.e_ehsize); + Write16(f, ehdr.e_phentsize); + Write16(f, ehdr.e_phnum); + Write16(f, ehdr.e_shentsize); + Write16(f, ehdr.e_shnum); + Write16(f, ehdr.e_shstrndx); +} +void WritePhdr(rFile& f, Elf32_Phdr& phdr) +{ + Write32(f, phdr.p_type); + Write32(f, phdr.p_offset); + Write32(f, phdr.p_vaddr); + Write32(f, phdr.p_paddr); + Write32(f, phdr.p_filesz); + Write32(f, phdr.p_memsz); + Write32(f, phdr.p_flags); + Write32(f, phdr.p_align); +} +void WriteShdr(rFile& f, Elf32_Shdr& shdr) +{ + Write32(f, shdr.sh_name); + Write32(f, shdr.sh_type); + Write32(f, shdr.sh_flags); + Write32(f, shdr.sh_addr); + Write32(f, shdr.sh_offset); + Write32(f, shdr.sh_size); + Write32(f, shdr.sh_link); + Write32(f, shdr.sh_info); + Write32(f, shdr.sh_addralign); + Write32(f, shdr.sh_entsize); +} + + void AppInfo::Load(vfsStream& f) { authid = Read64(f); diff --git a/rpcs3/Crypto/unself.h b/rpcs3/Crypto/unself.h index 53b34bee30..787fc00c7b 100644 --- a/rpcs3/Crypto/unself.h +++ b/rpcs3/Crypto/unself.h @@ -1,6 +1,5 @@ #pragma once -#include "Loader/SELF.h" #include "Loader/ELF64.h" #include "Loader/ELF32.h" #include "key_vault.h" @@ -142,7 +141,8 @@ struct MetadataSectionHeader void Show(); }; -struct SectionHash { +struct SectionHash +{ u8 sha1[20]; u8 padding[12]; u8 hmac_key[64]; @@ -183,6 +183,291 @@ struct SelfSection void Load(vfsStream& f); }; +struct Elf32_Ehdr +{ + u32 e_magic; + u8 e_class; + u8 e_data; + u8 e_curver; + u8 e_os_abi; + u64 e_abi_ver; + u16 e_type; + u16 e_machine; + u32 e_version; + u32 e_entry; + u32 e_phoff; + u32 e_shoff; + u32 e_flags; + u16 e_ehsize; + u16 e_phentsize; + u16 e_phnum; + u16 e_shentsize; + u16 e_shnum; + u16 e_shstrndx; + void Show() {} + bool IsLittleEndian() const + { + return e_data == 1; + } + + void Load(vfsStream& f) + { + e_magic = Read32(f); + e_class = Read8(f); + e_data = Read8(f); + e_curver = Read8(f); + e_os_abi = Read8(f); + + if (IsLittleEndian()) + { + e_abi_ver = Read64LE(f); + e_type = Read16LE(f); + e_machine = Read16LE(f); + e_version = Read32LE(f); + e_entry = Read32LE(f); + e_phoff = Read32LE(f); + e_shoff = Read32LE(f); + e_flags = Read32LE(f); + e_ehsize = Read16LE(f); + e_phentsize = Read16LE(f); + e_phnum = Read16LE(f); + e_shentsize = Read16LE(f); + e_shnum = Read16LE(f); + e_shstrndx = Read16LE(f); + } + else + { + e_abi_ver = Read64(f); + e_type = Read16(f); + e_machine = Read16(f); + e_version = Read32(f); + e_entry = Read32(f); + e_phoff = Read32(f); + e_shoff = Read32(f); + e_flags = Read32(f); + e_ehsize = Read16(f); + e_phentsize = Read16(f); + e_phnum = Read16(f); + e_shentsize = Read16(f); + e_shnum = Read16(f); + e_shstrndx = Read16(f); + } + } + bool CheckMagic() const { return e_magic == 0x7F454C46; } + u32 GetEntry() const { return e_entry; } +}; + +struct Elf32_Shdr +{ + u32 sh_name; + u32 sh_type; + u32 sh_flags; + u32 sh_addr; + u32 sh_offset; + u32 sh_size; + u32 sh_link; + u32 sh_info; + u32 sh_addralign; + u32 sh_entsize; + void Load(vfsStream& f) + { + sh_name = Read32(f); + sh_type = Read32(f); + sh_flags = Read32(f); + sh_addr = Read32(f); + sh_offset = Read32(f); + sh_size = Read32(f); + sh_link = Read32(f); + sh_info = Read32(f); + sh_addralign = Read32(f); + sh_entsize = Read32(f); + } + void LoadLE(vfsStream& f) + { + f.Read(this, sizeof(*this)); + } + void Show() {} +}; +struct Elf32_Phdr +{ + u32 p_type; + u32 p_offset; + u32 p_vaddr; + u32 p_paddr; + u32 p_filesz; + u32 p_memsz; + u32 p_flags; + u32 p_align; + void Load(vfsStream& f) + { + p_type = Read32(f); + p_offset = Read32(f); + p_vaddr = Read32(f); + p_paddr = Read32(f); + p_filesz = Read32(f); + p_memsz = Read32(f); + p_flags = Read32(f); + p_align = Read32(f); + } + void LoadLE(vfsStream& f) + { + f.Read(this, sizeof(*this)); + } + void Show() {} +}; + +struct Elf64_Ehdr +{ + u32 e_magic; + u8 e_class; + u8 e_data; + u8 e_curver; + u8 e_os_abi; + u64 e_abi_ver; + u16 e_type; + u16 e_machine; + u32 e_version; + u64 e_entry; + u64 e_phoff; + u64 e_shoff; + u32 e_flags; + u16 e_ehsize; + u16 e_phentsize; + u16 e_phnum; + u16 e_shentsize; + u16 e_shnum; + u16 e_shstrndx; + void Load(vfsStream& f) + { + e_magic = Read32(f); + e_class = Read8(f); + e_data = Read8(f); + e_curver = Read8(f); + e_os_abi = Read8(f); + e_abi_ver = Read64(f); + e_type = Read16(f); + e_machine = Read16(f); + e_version = Read32(f); + e_entry = Read64(f); + e_phoff = Read64(f); + e_shoff = Read64(f); + e_flags = Read32(f); + e_ehsize = Read16(f); + e_phentsize = Read16(f); + e_phnum = Read16(f); + e_shentsize = Read16(f); + e_shnum = Read16(f); + e_shstrndx = Read16(f); + } + void Show() {} + bool CheckMagic() const { return e_magic == 0x7F454C46; } + u64 GetEntry() const { return e_entry; } +}; + +struct Elf64_Shdr +{ + u32 sh_name; + u32 sh_type; + u64 sh_flags; + u64 sh_addr; + u64 sh_offset; + u64 sh_size; + u32 sh_link; + u32 sh_info; + u64 sh_addralign; + u64 sh_entsize; + void Load(vfsStream& f) + { + sh_name = Read32(f); + sh_type = Read32(f); + sh_flags = Read64(f); + sh_addr = Read64(f); + sh_offset = Read64(f); + sh_size = Read64(f); + sh_link = Read32(f); + sh_info = Read32(f); + sh_addralign = Read64(f); + sh_entsize = Read64(f); + } + void Show(){} +}; + +struct Elf64_Phdr +{ + u32 p_type; + u32 p_flags; + u64 p_offset; + u64 p_vaddr; + u64 p_paddr; + u64 p_filesz; + u64 p_memsz; + u64 p_align; + void Load(vfsStream& f) + { + p_type = Read32(f); + p_flags = Read32(f); + p_offset = Read64(f); + p_vaddr = Read64(f); + p_paddr = Read64(f); + p_filesz = Read64(f); + p_memsz = Read64(f); + p_align = Read64(f); + } + void Show(){} +}; + +struct SceHeader +{ + u32 se_magic; + u32 se_hver; + u16 se_flags; + u16 se_type; + u32 se_meta; + u64 se_hsize; + u64 se_esize; + void Load(vfsStream& f) + { + se_magic = Read32(f); + se_hver = Read32(f); + se_flags = Read16(f); + se_type = Read16(f); + se_meta = Read32(f); + se_hsize = Read64(f); + se_esize = Read64(f); + } + void Show(){} + bool CheckMagic() const { return se_magic == 0x53434500; } +}; + +struct SelfHeader +{ + u64 se_htype; + u64 se_appinfooff; + u64 se_elfoff; + u64 se_phdroff; + u64 se_shdroff; + u64 se_secinfoff; + u64 se_sceveroff; + u64 se_controloff; + u64 se_controlsize; + u64 pad; + void Load(vfsStream& f) + { + se_htype = Read64(f); + se_appinfooff = Read64(f); + se_elfoff = Read64(f); + se_phdroff = Read64(f); + se_shdroff = Read64(f); + se_secinfoff = Read64(f); + se_sceveroff = Read64(f); + se_controloff = Read64(f); + se_controlsize = Read64(f); + pad = Read64(f); + } + void Show(){} +}; + + class SELFDecrypter { // Main SELF file stream. diff --git a/rpcs3/Emu/ARMv7/ARMv7Thread.cpp b/rpcs3/Emu/ARMv7/ARMv7Thread.cpp index 732c2ad7fa..8c57c78485 100644 --- a/rpcs3/Emu/ARMv7/ARMv7Thread.cpp +++ b/rpcs3/Emu/ARMv7/ARMv7Thread.cpp @@ -3,6 +3,7 @@ #include "Utilities/Log.h" #include "Emu/Memory/Memory.h" #include "Emu/System.h" +#include "Emu/CPU/CPUThreadManager.h" #include "ARMv7Thread.h" #include "ARMv7Decoder.h" @@ -100,3 +101,15 @@ void ARMv7Thread::DoStop() void ARMv7Thread::DoCode() { } + +arm7_thread::arm7_thread(u32 entry, const std::string& name, u32 stack_size, u32 prio) +{ + thread = &Emu.GetCPU().AddThread(CPU_THREAD_ARMv7); + + thread->SetName(name); + thread->SetEntry(entry); + thread->SetStackSize(stack_size ? stack_size : Emu.GetInfo().GetProcParam().primary_stacksize); + thread->SetPrio(prio ? prio : Emu.GetInfo().GetProcParam().primary_prio); + + argc = 0; +} \ No newline at end of file diff --git a/rpcs3/Emu/ARMv7/ARMv7Thread.h b/rpcs3/Emu/ARMv7/ARMv7Thread.h index a7a12fb98b..1eeefff09c 100644 --- a/rpcs3/Emu/ARMv7/ARMv7Thread.h +++ b/rpcs3/Emu/ARMv7/ARMv7Thread.h @@ -138,3 +138,48 @@ protected: virtual void DoCode(); }; +class arm7_thread : cpu_thread +{ + static const u32 stack_align = 0x10; + vm::ptr argv; + u32 argc; + vm::ptr envp; + +public: + arm7_thread(u32 entry, const std::string& name = "", u32 stack_size = 0, u32 prio = 0); + + cpu_thread& args(std::initializer_list values) override + { + if (!values.size()) + return *this; + + assert(argc == 0); + + envp.set(vm::alloc((u32)sizeof(envp), stack_align, vm::main)); + *envp = 0; + argv.set(vm::alloc(u32(sizeof(argv)* values.size()), stack_align, vm::main)); + + for (auto &arg : values) + { + u32 arg_size = align(u32(arg.size() + 1), stack_align); + u32 arg_addr = vm::alloc(arg_size, stack_align, vm::main); + + std::strcpy(vm::get_ptr(arg_addr), arg.c_str()); + + argv[argc++] = arg_addr; + } + + return *this; + } + + cpu_thread& run() override + { + thread->Run(); + + static_cast(thread)->GPR[3] = argc; + static_cast(thread)->GPR[4] = argv.addr(); + static_cast(thread)->GPR[5] = envp.addr(); + + return *this; + } +}; diff --git a/rpcs3/Emu/CPU/CPUDecoder.h b/rpcs3/Emu/CPU/CPUDecoder.h index df28e54467..beb0027055 100644 --- a/rpcs3/Emu/CPU/CPUDecoder.h +++ b/rpcs3/Emu/CPU/CPUDecoder.h @@ -333,6 +333,17 @@ public: }); } + InstrBase(const InstrBase &source) + : InstrCaller(source) + , m_name(source.m_name) + , m_opcode(source.m_opcode) + , m_args_count(source.m_args_count) + , m_args(source.m_args_count ? new CodeFieldBase*[source.m_args_count] : nullptr) + { + for(uint i = 0; i < source.m_args_count; ++i) + m_args[i] = source.m_args[i]; + } + virtual ~InstrBase() { if (m_args) { diff --git a/rpcs3/Emu/CPU/CPUThread.cpp b/rpcs3/Emu/CPU/CPUThread.cpp index fea5e15400..5990228a29 100644 --- a/rpcs3/Emu/CPU/CPUThread.cpp +++ b/rpcs3/Emu/CPU/CPUThread.cpp @@ -29,6 +29,7 @@ CPUThread::CPUThread(CPUThreadType type) , m_status(Stopped) , m_last_syscall(0) , m_trace_enabled(false) + , m_trace_call_stack(true) { } @@ -155,7 +156,7 @@ void CPUThread::SetBranch(const u32 pc, bool record_branch) m_is_branch = true; nPC = pc; - if(record_branch) + if(m_trace_call_stack && record_branch) CallStackBranch(pc); } diff --git a/rpcs3/Emu/CPU/CPUThread.h b/rpcs3/Emu/CPU/CPUThread.h index 3acb2c12b3..6bfbc0e8d4 100644 --- a/rpcs3/Emu/CPU/CPUThread.h +++ b/rpcs3/Emu/CPU/CPUThread.h @@ -43,6 +43,8 @@ protected: CPUDecoder* m_dec; + bool m_trace_call_stack; + public: virtual void InitRegs()=0; @@ -113,6 +115,8 @@ public: return temp; } + CPUDecoder * GetDecoder() { return m_dec; }; + public: u32 entry; u32 PC; @@ -175,6 +179,8 @@ public: u32 GetId() const { return m_id; } CPUThreadType GetType() const { return m_type; } + void SetCallStackTracing(bool trace_call_stack) { m_trace_call_stack = trace_call_stack; } + void Reset(); void Close(); void Run(); @@ -222,13 +228,13 @@ public: m_call_stack.erase((res + 1).base(), m_call_stack.end()); return; } - + //add a new entry otherwise CallStackItem new_item; - + new_item.branch_pc = pc; new_item.pc = PC; - + m_call_stack.push_back(new_item); } @@ -250,3 +256,42 @@ protected: }; CPUThread* GetCurrentCPUThread(); + +class cpu_thread +{ +protected: + CPUThread* thread; + +public: + u32 get_entry() const + { + return thread->entry; + } + + virtual cpu_thread& args(std::initializer_list values) = 0; + + virtual cpu_thread& run() = 0; + + u64 join() + { + if (!joinable()) + throw "thread must be joinable for join"; + + thread->SetJoinable(false); + + while (thread->IsRunning()) + std::this_thread::sleep_for(std::chrono::milliseconds(1)); + + return thread->GetExitStatus(); + } + + bool joinable() const + { + return thread->IsJoinable(); + } + + u32 get_id() const + { + return thread->GetId(); + } +}; \ No newline at end of file diff --git a/rpcs3/Emu/Cell/PPCDecoder.cpp b/rpcs3/Emu/Cell/PPCDecoder.cpp index 52e28b9e91..de2b55fdf9 100644 --- a/rpcs3/Emu/Cell/PPCDecoder.cpp +++ b/rpcs3/Emu/Cell/PPCDecoder.cpp @@ -8,4 +8,4 @@ u8 PPCDecoder::DecodeMemory(const u32 address) Decode(instr); return sizeof(u32); -} +} \ No newline at end of file diff --git a/rpcs3/Emu/Cell/PPCThread.h b/rpcs3/Emu/Cell/PPCThread.h index f06cf4eaee..c7e5dab93c 100644 --- a/rpcs3/Emu/Cell/PPCThread.h +++ b/rpcs3/Emu/Cell/PPCThread.h @@ -9,7 +9,7 @@ public: virtual std::string GetThreadName() const { - return (GetFName() + fmt::Format("[0x%08llx]", PC)); + return (GetFName() + fmt::Format("[0x%08x]", PC)); } protected: diff --git a/rpcs3/Emu/Cell/PPUInstrTable.h b/rpcs3/Emu/Cell/PPUInstrTable.h index 77f742d467..676f32fa79 100644 --- a/rpcs3/Emu/Cell/PPUInstrTable.h +++ b/rpcs3/Emu/Cell/PPUInstrTable.h @@ -5,628 +5,656 @@ namespace PPU_instr { - //This field is used in rotate instructions to specify the first 1 bit of a 64-bit mask - static DoubleCodeField<21, 25, 26, 26, 5> mb; + namespace fields + { + //This field is used in rotate instructions to specify the first 1 bit of a 64-bit mask + static DoubleCodeField<21, 25, 26, 26, 5> mb; - //This field is used in rotate instructions to specify the last 1 bit of a 64-bit mask - static DoubleCodeField<21, 25, 26, 26, 5> me; + //This field is used in rotate instructions to specify the last 1 bit of a 64-bit mask + static DoubleCodeField<21, 25, 26, 26, 5> me; - //This field is used to specify a shift amount - static DoubleCodeField<16, 20, 30, 30, 5> sh; + //This field is used to specify a shift amount + static DoubleCodeField<16, 20, 30, 30, 5> sh; - //This field is used to specify a special-purpose register for the mtspr and mfspr instructions - static CodeField<11, 20> SPR; + //This field is used to specify a special-purpose register for the mtspr and mfspr instructions + static CodeField<11, 20> SPR; - // - static CodeField<6, 10> VS(FIELD_R_VPR); + // + static CodeField<6, 10> VS(FIELD_R_VPR); - // - static CodeField<6, 10> VD(FIELD_R_VPR); + // + static CodeField<6, 10> VD(FIELD_R_VPR); - // - static CodeField<11, 15> VA(FIELD_R_VPR); + // + static CodeField<11, 15> VA(FIELD_R_VPR); - // - static CodeField<16, 20> VB(FIELD_R_VPR); + // + static CodeField<16, 20> VB(FIELD_R_VPR); - // - static CodeField<21, 25> VC(FIELD_R_VPR); + // + static CodeField<21, 25> VC(FIELD_R_VPR); - // - static CodeField<11, 15> VUIMM; + // + static CodeField<11, 15> VUIMM; - // - static CodeFieldSigned<11, 15> VSIMM; + // + static CodeFieldSigned<11, 15> VSIMM; - // - static CodeField<22, 25> VSH; + // + static CodeField<22, 25> VSH; - //This field is used to specify a GPR to be used as a destination - static CodeField<6, 10> RD(FIELD_R_GPR); + //This field is used to specify a GPR to be used as a destination + static CodeField<6, 10> RD(FIELD_R_GPR); - //This field is used to specify a GPR to be used as a source - static CodeField<6, 10> RS(FIELD_R_GPR); + //This field is used to specify a GPR to be used as a source + static CodeField<6, 10> RS(FIELD_R_GPR); - //This field is used to specify a GPR to be used as a source or destination - static CodeField<11, 15> RA(FIELD_R_GPR); + //This field is used to specify a GPR to be used as a source or destination + static CodeField<11, 15> RA(FIELD_R_GPR); - //This field is used to specify a GPR to be used as a source - static CodeField<16, 20> RB(FIELD_R_GPR); + //This field is used to specify a GPR to be used as a source + static CodeField<16, 20> RB(FIELD_R_GPR); - //This field is used to specify the number of bytes to move in an immediate string load or store - static CodeField<16, 20> NB; + //This field is used to specify the number of bytes to move in an immediate string load or store + static CodeField<16, 20> NB; - //This field is used to specify one of the CR fields, or one of the FPSCR fields, as a destination - static CodeField<6, 8> CRFD(FIELD_R_CR); + //This field is used to specify one of the CR fields, or one of the FPSCR fields, as a destination + static CodeField<6, 8> CRFD(FIELD_R_CR); - //This field is used to specify one of the CR fields, or one of the FPSCR fields, as a source - static CodeField<11, 13> CRFS(FIELD_R_CR); + //This field is used to specify one of the CR fields, or one of the FPSCR fields, as a source + static CodeField<11, 13> CRFS(FIELD_R_CR); - //This field is used to specify a bit in the CR to be used as a source - static CodeField<11, 15> CRBA(FIELD_R_CR); + //This field is used to specify a bit in the CR to be used as a source + static CodeField<11, 15> CRBA(FIELD_R_CR); - //This field is used to specify a bit in the CR to be used as a source - static CodeField<16, 20> CRBB(FIELD_R_CR); + //This field is used to specify a bit in the CR to be used as a source + static CodeField<16, 20> CRBB(FIELD_R_CR); - //This field is used to specify a bit in the CR, or in the FPSCR, as the destination of the result of an instruction - static CodeField<6, 10> CRBD(FIELD_R_CR); + //This field is used to specify a bit in the CR, or in the FPSCR, as the destination of the result of an instruction + static CodeField<6, 10> CRBD(FIELD_R_CR); - //This field is used to specify options for the branch conditional instructions - static CodeField<6, 10> BO; + //This field is used to specify options for the branch conditional instructions + static CodeField<6, 10> BO; - //This field is used to specify a bit in the CR to be used as the condition of a branch conditional instruction - static CodeField<11, 15> BI; + //This field is used to specify a bit in the CR to be used as the condition of a branch conditional instruction + static CodeField<11, 15> BI; - //Immediate field specifying a 14-bit signed two's complement branch displacement that is concatenated on the - //right with '00' and sign-extended to 64 bits. - static CodeFieldSigned<16, 31> BD(FIELD_BRANCH); + //Immediate field specifying a 14-bit signed two's complement branch displacement that is concatenated on the + //right with '00' and sign-extended to 64 bits. + static CodeFieldSigned<16, 31> BD(FIELD_BRANCH); - // - static CodeField<19, 20> BH; + // + static CodeField<19, 20> BH; - // - static CodeField<11, 13> BFA; - - //Field used by the optional data stream variant of the dcbt instruction. - static CodeField<9, 10> TH; + // + static CodeField<11, 13> BFA; - //This field is used to specify the conditions on which to trap - static CodeField<6, 10> TO; + //Field used by the optional data stream variant of the dcbt instruction. + static CodeField<9, 10> TH; - // - static CodeField<21, 25> MB; + //This field is used to specify the conditions on which to trap + static CodeField<6, 10> TO; - // - static CodeField<26, 30> ME; + // + static CodeField<21, 25> MB; - //This field is used to specify a shift amount - static CodeField<16, 20> SH; + // + static CodeField<26, 30> ME; - /* - Absolute address bit. - 0 The immediate field represents an address relative to the current instruction address (CIA). (For more - information on the CIA, see Table 8-3.) The effective (logical) address of the branch is either the sum - of the LI field sign-extended to 64 bits and the address of the branch instruction or the sum of the BD - field sign-extended to 64 bits and the address of the branch instruction. - 1 The immediate field represents an absolute address. The effective address (EA) of the branch is the - LI field sign-extended to 64 bits or the BD field sign-extended to 64 bits. - */ - static CodeField<30> AA; + //This field is used to specify a shift amount + static CodeField<16, 20> SH; - static CodeFieldSignedOffset<6, 29, 2> LI(FIELD_BRANCH); - - // - static CodeFieldSignedOffset<6, 29, 2> LL(FIELD_BRANCH); - /* - Link bit. - 0 Does not update the link register (LR). - 1 Updates the LR. If the instruction is a branch instruction, the address of the instruction following the - branch instruction is placed into the LR. - */ - static CodeField<31> LK; - - //This field is used for extended arithmetic to enable setting OV and SO in the XER - static CodeField<21> OE; - - //Field used to specify whether an integer compare instruction is to compare 64-bit numbers or 32-bit numbers - static CodeField<10> L_10; - static CodeField<6> L_6; - static CodeField<9, 10> L_9_10; - static CodeField<11> L_11; - // - static CodeField<16, 19> I; - - // - static CodeField<16, 27> DQ; - - //This field is used to specify an FPR as the destination - static CodeField<6, 10> FRD; - - //This field is used to specify an FPR as a source - static CodeField<6, 10> FRS; - - // - static CodeField<7, 14> FM; - - //This field is used to specify an FPR as a source - static CodeField<11, 15> FRA(FIELD_R_FPR); - - //This field is used to specify an FPR as a source - static CodeField<16, 20> FRB(FIELD_R_FPR); - - //This field is used to specify an FPR as a source - static CodeField<21, 25> FRC(FIELD_R_FPR); - - //This field mask is used to identify the CR fields that are to be updated by the mtcrf instruction. - static CodeField<12, 19> CRM; - - // - static CodeField<6, 31> SYS; - - //Immediate field specifying a 16-bit signed two's complement integer that is sign-extended to 64 bits - static CodeFieldSigned<16, 31> D; - - // - static CodeFieldSignedOffset<16, 29, 2> DS; - - //This immediate field is used to specify a 16-bit signed integer - static CodeFieldSigned<16, 31> simm16; - - //This immediate field is used to specify a 16-bit unsigned integer - static CodeField<16, 31> uimm16; - - /* - Record bit. - 0 Does not update the condition register (CR). - 1 Updates the CR to reflect the result of the operation. - For integer instructions, CR bits [0-2] are set to reflect the result as a signed quantity and CR bit [3] - receives a copy of the summary overflow bit, XER[SO]. The result as an unsigned quantity or a bit - string can be deduced from the EQ bit. For floating-point instructions, CR bits [4-7] are set to reflect - floating-point exception, floating-point enabled exception, floating-point invalid operation exception, - and floating-point overflow exception. - */ - static CodeField<31> RC; - - //Primary opcode field - static CodeField<0, 5> OPCD; - - static CodeField<26, 31> GD_04; //0x3f - static CodeField<21, 31> GD_04_0;//0x7ff - static CodeField<21, 30> GD_13; //0x3ff - static CodeField<27, 29> GD_1e; //0x7 - static CodeField<21, 30> GD_1f; //0x3ff - static CodeField<30, 31> GD_3a; //0x3 - static CodeField<26, 30> GD_3b; //0x1f - static CodeField<30, 31> GD_3e; //0x3 - static CodeField<26, 30> GD_3f;//0x1f - static CodeField<21, 30> GD_3f_0; //0x3ff - - static CodeField<9, 10> STRM; - - //static auto main_list = new_list(OPCD, instr_bind(&PPUOpcodes::UNK, GetCode, OPCD, OPCD)); - static InstrList<1 << CodeField<0, 5>::size, ::PPUOpcodes> main_list_obj(OPCD, instr_bind(&PPUOpcodes::UNK, GetCode, OPCD, OPCD)); - static auto main_list = &main_list_obj; - static auto g04_list = new_list(main_list, PPU_opcodes::G_04, GD_04); - static auto g04_0_list = new_list(g04_list, GD_04_0, instr_bind(&PPUOpcodes::UNK, GetCode, OPCD, GD_04_0)); - static auto g13_list = new_list(main_list, PPU_opcodes::G_13, GD_13, instr_bind(&PPUOpcodes::UNK, GetCode, OPCD, GD_13)); - static auto g1e_list = new_list(main_list, PPU_opcodes::G_1e, GD_1e, instr_bind(&PPUOpcodes::UNK, GetCode, OPCD, GD_1e)); - static auto g1f_list = new_list(main_list, PPU_opcodes::G_1f, GD_1f, instr_bind(&PPUOpcodes::UNK, GetCode, OPCD, GD_1f)); - static auto g3a_list = new_list(main_list, PPU_opcodes::G_3a, GD_3a, instr_bind(&PPUOpcodes::UNK, GetCode, OPCD, GD_3a)); - static auto g3b_list = new_list(main_list, PPU_opcodes::G_3b, GD_3b, instr_bind(&PPUOpcodes::UNK, GetCode, OPCD, GD_3b)); - static auto g3e_list = new_list(main_list, PPU_opcodes::G_3e, GD_3e, instr_bind(&PPUOpcodes::UNK, GetCode, OPCD, GD_3e)); - static auto g3f_list = new_list(main_list, PPU_opcodes::G_3f, GD_3f); - static auto g3f_0_list = new_list(g3f_list, GD_3f_0, instr_bind(&PPUOpcodes::UNK, GetCode, OPCD, GD_3f_0)); - - #define bind_instr(list, name, ...) \ - static const auto& name = make_instr(list, #name, &PPUOpcodes::name, ##__VA_ARGS__) - - bind_instr(main_list, TDI, TO, RA, simm16); - bind_instr(main_list, TWI, TO, RA, simm16); - bind_instr(main_list, MULLI, RD, RA, simm16); - bind_instr(main_list, SUBFIC, RD, RA, simm16); - bind_instr(main_list, CMPLI, CRFD, L_10, RA, uimm16); - bind_instr(main_list, CMPI, CRFD, L_10, RA, simm16); - bind_instr(main_list, ADDIC, RD, RA, simm16); - bind_instr(main_list, ADDIC_, RD, RA, simm16); - bind_instr(main_list, ADDI, RD, RA, simm16); - bind_instr(main_list, ADDIS, RD, RA, simm16); - bind_instr(main_list, BC, BO, BI, BD, AA, LK); - bind_instr(main_list, SC, SYS); - bind_instr(main_list, B, LI, AA, LK); - bind_instr(main_list, RLWIMI, RA, RS, SH, MB, ME, RC); - bind_instr(main_list, RLWINM, RA, RS, SH, MB, ME, RC); - bind_instr(main_list, RLWNM, RA, RS, RB, MB, ME, RC); - bind_instr(main_list, ORI, RA, RS, uimm16); - bind_instr(main_list, ORIS, RA, RS, uimm16); - bind_instr(main_list, XORI, RA, RS, uimm16); - bind_instr(main_list, XORIS, RA, RS, uimm16); - bind_instr(main_list, ANDI_, RA, RS, uimm16); - bind_instr(main_list, ANDIS_, RA, RS, uimm16); - bind_instr(main_list, LWZ, RD, RA, D); - bind_instr(main_list, LWZU, RD, RA, D); - bind_instr(main_list, LBZ, RD, RA, D); - bind_instr(main_list, LBZU, RD, RA, D); - bind_instr(main_list, STW, RS, RA, D); - bind_instr(main_list, STWU, RS, RA, D); - bind_instr(main_list, STB, RS, RA, D); - bind_instr(main_list, STBU, RS, RA, D); - bind_instr(main_list, LHZ, RD, RA, D); - bind_instr(main_list, LHZU, RD, RA, D); - bind_instr(main_list, LHA, RD, RA, D); - bind_instr(main_list, LHAU, RD, RA, D); - bind_instr(main_list, STH, RS, RA, D); - bind_instr(main_list, STHU, RS, RA, D); - bind_instr(main_list, LMW, RD, RA, D); - bind_instr(main_list, STMW, RS, RA, D); - bind_instr(main_list, LFS, FRD, RA, D); - bind_instr(main_list, LFSU, FRD, RA, D); - bind_instr(main_list, LFD, FRD, RA, D); - bind_instr(main_list, LFDU, FRD, RA, D); - bind_instr(main_list, STFS, FRS, RA, D); - bind_instr(main_list, STFSU, FRS, RA, D); - bind_instr(main_list, STFD, FRS, RA, D); - bind_instr(main_list, STFDU, FRS, RA, D); - - bind_instr(g04_list, VMADDFP, VD, VA, VC, VB); - bind_instr(g04_list, VMHADDSHS, VD, VA, VB, VC); - bind_instr(g04_list, VMHRADDSHS, VD, VA, VB, VC); - bind_instr(g04_list, VMLADDUHM, VD, VA, VB, VC); - bind_instr(g04_list, VMSUMMBM, VD, VA, VB, VC); - bind_instr(g04_list, VMSUMSHM, VD, VA, VB, VC); - bind_instr(g04_list, VMSUMSHS, VD, VA, VB, VC); - bind_instr(g04_list, VMSUMUBM, VD, VA, VB, VC); - bind_instr(g04_list, VMSUMUHM, VD, VA, VB, VC); - bind_instr(g04_list, VMSUMUHS, VD, VA, VB, VC); - bind_instr(g04_list, VNMSUBFP, VD, VA, VC, VB); - bind_instr(g04_list, VPERM, VD, VA, VB, VC); - bind_instr(g04_list, VSEL, VD, VA, VB, VC); - bind_instr(g04_list, VSLDOI, VD, VA, VB, VSH); - - bind_instr(g04_0_list, MFVSCR, VD); - bind_instr(g04_0_list, MTVSCR, VB); - bind_instr(g04_0_list, VADDCUW, VD, VA, VB); - bind_instr(g04_0_list, VADDFP, VD, VA, VB); - bind_instr(g04_0_list, VADDSBS, VD, VA, VB); - bind_instr(g04_0_list, VADDSHS, VD, VA, VB); - bind_instr(g04_0_list, VADDSWS, VD, VA, VB); - bind_instr(g04_0_list, VADDUBM, VD, VA, VB); - bind_instr(g04_0_list, VADDUBS, VD, VA, VB); - bind_instr(g04_0_list, VADDUHM, VD, VA, VB); - bind_instr(g04_0_list, VADDUHS, VD, VA, VB); - bind_instr(g04_0_list, VADDUWM, VD, VA, VB); - bind_instr(g04_0_list, VADDUWS, VD, VA, VB); - bind_instr(g04_0_list, VAND, VD, VA, VB); - bind_instr(g04_0_list, VANDC, VD, VA, VB); - bind_instr(g04_0_list, VAVGSB, VD, VA, VB); - bind_instr(g04_0_list, VAVGSH, VD, VA, VB); - bind_instr(g04_0_list, VAVGSW, VD, VA, VB); - bind_instr(g04_0_list, VAVGUB, VD, VA, VB); - bind_instr(g04_0_list, VAVGUH, VD, VA, VB); - bind_instr(g04_0_list, VAVGUW, VD, VA, VB); - bind_instr(g04_0_list, VCFSX, VD, VUIMM, VB); - bind_instr(g04_0_list, VCFUX, VD, VUIMM, VB); - bind_instr(g04_0_list, VCMPBFP, VD, VA, VB); - bind_instr(g04_0_list, VCMPBFP_, VD, VA, VB); - bind_instr(g04_0_list, VCMPEQFP, VD, VA, VB); - bind_instr(g04_0_list, VCMPEQFP_, VD, VA, VB); - bind_instr(g04_0_list, VCMPEQUB, VD, VA, VB); - bind_instr(g04_0_list, VCMPEQUB_, VD, VA, VB); - bind_instr(g04_0_list, VCMPEQUH, VD, VA, VB); - bind_instr(g04_0_list, VCMPEQUH_, VD, VA, VB); - bind_instr(g04_0_list, VCMPEQUW, VD, VA, VB); - bind_instr(g04_0_list, VCMPEQUW_, VD, VA, VB); - bind_instr(g04_0_list, VCMPGEFP, VD, VA, VB); - bind_instr(g04_0_list, VCMPGEFP_, VD, VA, VB); - bind_instr(g04_0_list, VCMPGTFP, VD, VA, VB); - bind_instr(g04_0_list, VCMPGTFP_, VD, VA, VB); - bind_instr(g04_0_list, VCMPGTSB, VD, VA, VB); - bind_instr(g04_0_list, VCMPGTSB_, VD, VA, VB); - bind_instr(g04_0_list, VCMPGTSH, VD, VA, VB); - bind_instr(g04_0_list, VCMPGTSH_, VD, VA, VB); - bind_instr(g04_0_list, VCMPGTSW, VD, VA, VB); - bind_instr(g04_0_list, VCMPGTSW_, VD, VA, VB); - bind_instr(g04_0_list, VCMPGTUB, VD, VA, VB); - bind_instr(g04_0_list, VCMPGTUB_, VD, VA, VB); - bind_instr(g04_0_list, VCMPGTUH, VD, VA, VB); - bind_instr(g04_0_list, VCMPGTUH_, VD, VA, VB); - bind_instr(g04_0_list, VCMPGTUW, VD, VA, VB); - bind_instr(g04_0_list, VCMPGTUW_, VD, VA, VB); - bind_instr(g04_0_list, VCTSXS, VD, VUIMM, VB); - bind_instr(g04_0_list, VCTUXS, VD, VUIMM, VB); - bind_instr(g04_0_list, VEXPTEFP, VD, VB); - bind_instr(g04_0_list, VLOGEFP, VD, VB); - bind_instr(g04_0_list, VMAXFP, VD, VA, VB); - bind_instr(g04_0_list, VMAXSB, VD, VA, VB); - bind_instr(g04_0_list, VMAXSH, VD, VA, VB); - bind_instr(g04_0_list, VMAXSW, VD, VA, VB); - bind_instr(g04_0_list, VMAXUB, VD, VA, VB); - bind_instr(g04_0_list, VMAXUH, VD, VA, VB); - bind_instr(g04_0_list, VMAXUW, VD, VA, VB); - bind_instr(g04_0_list, VMINFP, VD, VA, VB); - bind_instr(g04_0_list, VMINSB, VD, VA, VB); - bind_instr(g04_0_list, VMINSH, VD, VA, VB); - bind_instr(g04_0_list, VMINSW, VD, VA, VB); - bind_instr(g04_0_list, VMINUB, VD, VA, VB); - bind_instr(g04_0_list, VMINUH, VD, VA, VB); - bind_instr(g04_0_list, VMINUW, VD, VA, VB); - bind_instr(g04_0_list, VMRGHB, VD, VA, VB); - bind_instr(g04_0_list, VMRGHH, VD, VA, VB); - bind_instr(g04_0_list, VMRGHW, VD, VA, VB); - bind_instr(g04_0_list, VMRGLB, VD, VA, VB); - bind_instr(g04_0_list, VMRGLH, VD, VA, VB); - bind_instr(g04_0_list, VMRGLW, VD, VA, VB); - bind_instr(g04_0_list, VMULESB, VD, VA, VB); - bind_instr(g04_0_list, VMULESH, VD, VA, VB); - bind_instr(g04_0_list, VMULEUB, VD, VA, VB); - bind_instr(g04_0_list, VMULEUH, VD, VA, VB); - bind_instr(g04_0_list, VMULOSB, VD, VA, VB); - bind_instr(g04_0_list, VMULOSH, VD, VA, VB); - bind_instr(g04_0_list, VMULOUB, VD, VA, VB); - bind_instr(g04_0_list, VMULOUH, VD, VA, VB); - bind_instr(g04_0_list, VNOR, VD, VA, VB); - bind_instr(g04_0_list, VOR, VD, VA, VB); - bind_instr(g04_0_list, VPKPX, VD, VA, VB); - bind_instr(g04_0_list, VPKSHSS, VD, VA, VB); - bind_instr(g04_0_list, VPKSHUS, VD, VA, VB); - bind_instr(g04_0_list, VPKSWSS, VD, VA, VB); - bind_instr(g04_0_list, VPKSWUS, VD, VA, VB); - bind_instr(g04_0_list, VPKUHUM, VD, VA, VB); - bind_instr(g04_0_list, VPKUHUS, VD, VA, VB); - bind_instr(g04_0_list, VPKUWUM, VD, VA, VB); - bind_instr(g04_0_list, VPKUWUS, VD, VA, VB); - bind_instr(g04_0_list, VREFP, VD, VB); - bind_instr(g04_0_list, VRFIM, VD, VB); - bind_instr(g04_0_list, VRFIN, VD, VB); - bind_instr(g04_0_list, VRFIP, VD, VB); - bind_instr(g04_0_list, VRFIZ, VD, VB); - bind_instr(g04_0_list, VRLB, VD, VA, VB); - bind_instr(g04_0_list, VRLH, VD, VA, VB); - bind_instr(g04_0_list, VRLW, VD, VA, VB); - bind_instr(g04_0_list, VRSQRTEFP, VD, VB); - bind_instr(g04_0_list, VSL, VD, VA, VB); - bind_instr(g04_0_list, VSLB, VD, VA, VB); - bind_instr(g04_0_list, VSLH, VD, VA, VB); - bind_instr(g04_0_list, VSLO, VD, VA, VB); - bind_instr(g04_0_list, VSLW, VD, VA, VB); - bind_instr(g04_0_list, VSPLTB, VD, VUIMM, VB); - bind_instr(g04_0_list, VSPLTH, VD, VUIMM, VB); - bind_instr(g04_0_list, VSPLTISB, VD, VSIMM); - bind_instr(g04_0_list, VSPLTISH, VD, VSIMM); - bind_instr(g04_0_list, VSPLTISW, VD, VSIMM); - bind_instr(g04_0_list, VSPLTW, VD, VUIMM, VB); - bind_instr(g04_0_list, VSR, VD, VA, VB); - bind_instr(g04_0_list, VSRAB, VD, VA, VB); - bind_instr(g04_0_list, VSRAH, VD, VA, VB); - bind_instr(g04_0_list, VSRAW, VD, VA, VB); - bind_instr(g04_0_list, VSRB, VD, VA, VB); - bind_instr(g04_0_list, VSRH, VD, VA, VB); - bind_instr(g04_0_list, VSRO, VD, VA, VB); - bind_instr(g04_0_list, VSRW, VD, VA, VB); - bind_instr(g04_0_list, VSUBCUW, VD, VA, VB); - bind_instr(g04_0_list, VSUBFP, VD, VA, VB); - bind_instr(g04_0_list, VSUBSBS, VD, VA, VB); - bind_instr(g04_0_list, VSUBSHS, VD, VA, VB); - bind_instr(g04_0_list, VSUBSWS, VD, VA, VB); - bind_instr(g04_0_list, VSUBUBM, VD, VA, VB); - bind_instr(g04_0_list, VSUBUBS, VD, VA, VB); - bind_instr(g04_0_list, VSUBUHM, VD, VA, VB); - bind_instr(g04_0_list, VSUBUHS, VD, VA, VB); - bind_instr(g04_0_list, VSUBUWM, VD, VA, VB); - bind_instr(g04_0_list, VSUBUWS, VD, VA, VB); - bind_instr(g04_0_list, VSUMSWS, VD, VA, VB); - bind_instr(g04_0_list, VSUM2SWS, VD, VA, VB); - bind_instr(g04_0_list, VSUM4SBS, VD, VA, VB); - bind_instr(g04_0_list, VSUM4SHS, VD, VA, VB); - bind_instr(g04_0_list, VSUM4UBS, VD, VA, VB); - bind_instr(g04_0_list, VUPKHPX, VD, VB); - bind_instr(g04_0_list, VUPKHSB, VD, VB); - bind_instr(g04_0_list, VUPKHSH, VD, VB); - bind_instr(g04_0_list, VUPKLPX, VD, VB); - bind_instr(g04_0_list, VUPKLSB, VD, VB); - bind_instr(g04_0_list, VUPKLSH, VD, VB); - bind_instr(g04_0_list, VXOR, VD, VA, VB); - - bind_instr(g13_list, MCRF, CRFD, CRFS); - bind_instr(g13_list, BCLR, BO, BI, BH, LK); - bind_instr(g13_list, CRNOR, CRBD, CRBA, CRBB); - bind_instr(g13_list, CRANDC, CRBD, CRBA, CRBB); - bind_instr(g13_list, ISYNC); - bind_instr(g13_list, CRXOR, CRBD, CRBA, CRBB); - bind_instr(g13_list, CRNAND, CRBD, CRBA, CRBB); - bind_instr(g13_list, CRAND, CRBD, CRBA, CRBB); - bind_instr(g13_list, CREQV, CRBD, CRBA, CRBB); - bind_instr(g13_list, CRORC, CRBD, CRBA, CRBB); - bind_instr(g13_list, CROR, CRBD, CRBA, CRBB); - bind_instr(g13_list, BCCTR, BO, BI, BH, LK); - - bind_instr(g1e_list, RLDICL, RA, RS, sh, mb, RC); - bind_instr(g1e_list, RLDICR, RA, RS, sh, me, RC); - bind_instr(g1e_list, RLDIC, RA, RS, sh, mb, RC); - bind_instr(g1e_list, RLDIMI, RA, RS, sh, mb, RC); - bind_instr(g1e_list, RLDC_LR, RA, RS, RB, mb, AA, RC); - - /*0x000*/bind_instr(g1f_list, CMP, CRFD, L_10, RA, RB); - /*0x004*/bind_instr(g1f_list, TW, TO, RA, RB); - /*0x006*/bind_instr(g1f_list, LVSL, VD, RA, RB); - /*0x007*/bind_instr(g1f_list, LVEBX, VD, RA, RB); - /*0x008*/bind_instr(g1f_list, SUBFC, RD, RA, RB, OE, RC); - /*0x009*/bind_instr(g1f_list, MULHDU, RD, RA, RB, RC); - /*0x00a*/bind_instr(g1f_list, ADDC, RD, RA, RB, OE, RC); - /*0x00b*/bind_instr(g1f_list, MULHWU, RD, RA, RB, RC); - /*0x013*/bind_instr(g1f_list, MFOCRF, L_11, RD, CRM); - /*0x014*/bind_instr(g1f_list, LWARX, RD, RA, RB); - /*0x015*/bind_instr(g1f_list, LDX, RD, RA, RB); - /*0x017*/bind_instr(g1f_list, LWZX, RD, RA, RB); - /*0x018*/bind_instr(g1f_list, SLW, RA, RS, RB, RC); - /*0x01a*/bind_instr(g1f_list, CNTLZW, RA, RS, RC); - /*0x01b*/bind_instr(g1f_list, SLD, RA, RS, RB, RC); - /*0x01c*/bind_instr(g1f_list, AND, RA, RS, RB, RC); - /*0x020*/bind_instr(g1f_list, CMPL, CRFD, L_10, RA, RB); - /*0x026*/bind_instr(g1f_list, LVSR, VD, RA, RB); - /*0x027*/bind_instr(g1f_list, LVEHX, VD, RA, RB); - /*0x028*/bind_instr(g1f_list, SUBF, RD, RA, RB, OE, RC); - /*0x035*/bind_instr(g1f_list, LDUX, RD, RA, RB); - /*0x036*/bind_instr(g1f_list, DCBST, RA, RB); - /*0x037*/bind_instr(g1f_list, LWZUX, RD, RA, RB); - /*0x03a*/bind_instr(g1f_list, CNTLZD, RA, RS, RC); - /*0x03c*/bind_instr(g1f_list, ANDC, RA, RS, RB, RC); - /*0x03c*/bind_instr(g1f_list, TD, TO, RA, RB); - /*0x047*/bind_instr(g1f_list, LVEWX, VD, RA, RB); - /*0x049*/bind_instr(g1f_list, MULHD, RD, RA, RB, RC); - /*0x04b*/bind_instr(g1f_list, MULHW, RD, RA, RB, RC); - /*0x054*/bind_instr(g1f_list, LDARX, RD, RA, RB); - /*0x056*/bind_instr(g1f_list, DCBF, RA, RB); - /*0x057*/bind_instr(g1f_list, LBZX, RD, RA, RB); - /*0x067*/bind_instr(g1f_list, LVX, VD, RA, RB); - /*0x068*/bind_instr(g1f_list, NEG, RD, RA, OE, RC); - /*0x077*/bind_instr(g1f_list, LBZUX, RD, RA, RB); - /*0x07c*/bind_instr(g1f_list, NOR, RA, RS, RB, RC); - /*0x087*/bind_instr(g1f_list, STVEBX, VS, RA, RB); - /*0x088*/bind_instr(g1f_list, SUBFE, RD, RA, RB, OE, RC); - /*0x08a*/bind_instr(g1f_list, ADDE, RD, RA, RB, OE, RC); - /*0x090*/bind_instr(g1f_list, MTOCRF, L_11, CRM, RS); - /*0x095*/bind_instr(g1f_list, STDX, RS, RA, RB); - /*0x096*/bind_instr(g1f_list, STWCX_, RS, RA, RB); - /*0x097*/bind_instr(g1f_list, STWX, RS, RA, RB); - /*0x0a7*/bind_instr(g1f_list, STVEHX, VS, RA, RB); - /*0x0b5*/bind_instr(g1f_list, STDUX, RS, RA, RB); - /*0x0b7*/bind_instr(g1f_list, STWUX, RS, RA, RB); - /*0x0c7*/bind_instr(g1f_list, STVEWX, VS, RA, RB); - /*0x0c8*/bind_instr(g1f_list, SUBFZE, RD, RA, OE, RC); - /*0x0ca*/bind_instr(g1f_list, ADDZE, RD, RA, OE, RC); - /*0x0d6*/bind_instr(g1f_list, STDCX_, RS, RA, RB); - /*0x0d7*/bind_instr(g1f_list, STBX, RS, RA, RB); - /*0x0e7*/bind_instr(g1f_list, STVX, VS, RA, RB); - /*0x0e8*/bind_instr(g1f_list, SUBFME, RD, RA, OE, RC); - /*0x0e9*/bind_instr(g1f_list, MULLD, RD, RA, RB, OE, RC); - /*0x0ea*/bind_instr(g1f_list, ADDME, RD, RA, OE, RC); - /*0x0eb*/bind_instr(g1f_list, MULLW, RD, RA, RB, OE, RC); - /*0x0f6*/bind_instr(g1f_list, DCBTST, RA, RB, TH); - /*0x0f7*/bind_instr(g1f_list, STBUX, RS, RA, RB); - /*0x10a*/bind_instr(g1f_list, ADD, RD, RA, RB, OE, RC); - /*0x116*/bind_instr(g1f_list, DCBT, RA, RB, TH); - /*0x117*/bind_instr(g1f_list, LHZX, RD, RA, RB); - /*0x11c*/bind_instr(g1f_list, EQV, RA, RS, RB, RC); - /*0x136*/bind_instr(g1f_list, ECIWX, RD, RA, RB); - /*0x137*/bind_instr(g1f_list, LHZUX, RD, RA, RB); - /*0x13c*/bind_instr(g1f_list, XOR, RA, RS, RB, RC); - /*0x153*/bind_instr(g1f_list, MFSPR, RD, SPR); - /*0x155*/bind_instr(g1f_list, LWAX, RD, RA, RB); - /*0x156*/bind_instr(g1f_list, DST, RA, RB, STRM, L_6); - /*0x157*/bind_instr(g1f_list, LHAX, RD, RA, RB); - /*0x167*/bind_instr(g1f_list, LVXL, VD, RA, RB); - /*0x173*/bind_instr(g1f_list, MFTB, RD, SPR); - /*0x175*/bind_instr(g1f_list, LWAUX, RD, RA, RB); - /*0x176*/bind_instr(g1f_list, DSTST, RA, RB, STRM, L_6); - /*0x177*/bind_instr(g1f_list, LHAUX, RD, RA, RB); - /*0x197*/bind_instr(g1f_list, STHX, RS, RA, RB); - /*0x19c*/bind_instr(g1f_list, ORC, RA, RS, RB, RC); - /*0x1b6*/bind_instr(g1f_list, ECOWX, RS, RA, RB); - /*0x1b7*/bind_instr(g1f_list, STHUX, RS, RA, RB); - /*0x1bc*/bind_instr(g1f_list, OR, RA, RS, RB, RC); - /*0x1c9*/bind_instr(g1f_list, DIVDU, RD, RA, RB, OE, RC); - /*0x1cb*/bind_instr(g1f_list, DIVWU, RD, RA, RB, OE, RC); - /*0x1d3*/bind_instr(g1f_list, MTSPR, SPR, RS); - /*0x1d6*/bind_instr(g1f_list, DCBI, RA, RB); - /*0x1dc*/bind_instr(g1f_list, NAND, RA, RS, RB, RC); - /*0x1e7*/bind_instr(g1f_list, STVXL, VS, RA, RB); - /*0x1e9*/bind_instr(g1f_list, DIVD, RD, RA, RB, OE, RC); - /*0x1eb*/bind_instr(g1f_list, DIVW, RD, RA, RB, OE, RC); - /*0x207*/bind_instr(g1f_list, LVLX, VD, RA, RB); - /*0x214*/bind_instr(g1f_list, LDBRX, RD, RA, RB); - /*0x215*/bind_instr(g1f_list, LSWX, RD, RA, RB); - /*0x216*/bind_instr(g1f_list, LWBRX, RD, RA, RB); - /*0x217*/bind_instr(g1f_list, LFSX, FRD, RA, RB); - /*0x218*/bind_instr(g1f_list, SRW, RA, RS, RB, RC); - /*0x21b*/bind_instr(g1f_list, SRD, RA, RS, RB, RC); - /*0x227*/bind_instr(g1f_list, LVRX, VD, RA, RB); - /*0x237*/bind_instr(g1f_list, LFSUX, FRD, RA, RB); - /*0x255*/bind_instr(g1f_list, LSWI, RD, RA, NB); - /*0x256*/bind_instr(g1f_list, SYNC, L_9_10); - /*0x257*/bind_instr(g1f_list, LFDX, FRD, RA, RB); - /*0x277*/bind_instr(g1f_list, LFDUX, FRD, RA, RB); - /*0x287*/bind_instr(g1f_list, STVLX, VS, RA, RB); - /*0x296*/bind_instr(g1f_list, STSWX, RS, RA, RB); - /*0x296*/bind_instr(g1f_list, STWBRX, RS, RA, RB); - /*0x297*/bind_instr(g1f_list, STFSX, FRS, RA, RB); - /*0x2a7*/bind_instr(g1f_list, STVRX, VS, RA, RB); - /*0x2b7*/bind_instr(g1f_list, STFSUX, FRS, RA, RB); - /*0x2d5*/bind_instr(g1f_list, STSWI, RS, RA, NB); - /*0x2d7*/bind_instr(g1f_list, STFDX, FRS, RA, RB); - /*0x2d7*/bind_instr(g1f_list, STFDUX, FRS, RA, RB); - /*0x307*/bind_instr(g1f_list, LVLXL, VD, RA, RB); - /*0x316*/bind_instr(g1f_list, LHBRX, RD, RA, RB); - /*0x318*/bind_instr(g1f_list, SRAW, RA, RS, RB, RC); - /*0x31a*/bind_instr(g1f_list, SRAD, RA, RS, RB, RC); - /*0x327*/bind_instr(g1f_list, LVRXL, VD, RA, RB); - /*0x336*/bind_instr(g1f_list, DSS, STRM, L_6); - /*0x338*/bind_instr(g1f_list, SRAWI, RA, RS, SH, RC); - /*0x33a*/bind_instr(g1f_list, SRADI1, RA, RS, sh, RC); - /*0x33b*/bind_instr(g1f_list, SRADI2, RA, RS, sh, RC); - /*0x356*/bind_instr(g1f_list, EIEIO); - /*0x387*/bind_instr(g1f_list, STVLXL, VS, RA, RB); - /*0x396*/bind_instr(g1f_list, STHBRX, RS, RA, RB); - /*0x39a*/bind_instr(g1f_list, EXTSH, RA, RS, RC); - /*0x387*/bind_instr(g1f_list, STVRXL, VS, RA, RB); - /*0x3ba*/bind_instr(g1f_list, EXTSB, RA, RS, RC); - /*0x3d7*/bind_instr(g1f_list, STFIWX, FRS, RA, RB); - /*0x3da*/bind_instr(g1f_list, EXTSW, RA, RS, RC); - /*0x3d6*/bind_instr(g1f_list, ICBI, RA, RB); - /*0x3f6*/bind_instr(g1f_list, DCBZ, RA, RB); - - bind_instr(g3a_list, LD, RD, RA, DS); - bind_instr(g3a_list, LDU, RD, RA, DS); - bind_instr(g3a_list, LWA, RD, RA, DS); - - bind_instr(g3b_list, FDIVS, FRD, FRA, FRB, RC); - bind_instr(g3b_list, FSUBS, FRD, FRA, FRB, RC); - bind_instr(g3b_list, FADDS, FRD, FRA, FRB, RC); - bind_instr(g3b_list, FSQRTS, FRD, FRB, RC); - bind_instr(g3b_list, FRES, FRD, FRB, RC); - bind_instr(g3b_list, FMULS, FRD, FRA, FRC, RC); - bind_instr(g3b_list, FMADDS, FRD, FRA, FRC, FRB, RC); - bind_instr(g3b_list, FMSUBS, FRD, FRA, FRC, FRB, RC); - bind_instr(g3b_list, FNMSUBS, FRD, FRA, FRC, FRB, RC); - bind_instr(g3b_list, FNMADDS, FRD, FRA, FRC, FRB, RC); - - bind_instr(g3e_list, STD, RS, RA, DS); - bind_instr(g3e_list, STDU, RS, RA, DS); - - bind_instr(g3f_list, FSEL, FRD, FRA, FRC, FRB, RC); - bind_instr(g3f_list, FMUL, FRD, FRA, FRC, RC); - bind_instr(g3f_list, FMSUB, FRD, FRA, FRC, FRB, RC); - bind_instr(g3f_list, FMADD, FRD, FRA, FRC, FRB, RC); - bind_instr(g3f_list, FNMSUB, FRD, FRA, FRC, FRB, RC); - bind_instr(g3f_list, FNMADD, FRD, FRA, FRC, FRB, RC); - - bind_instr(g3f_0_list, FDIV, FRD, FRA, FRB, RC); - bind_instr(g3f_0_list, FSUB, FRD, FRA, FRB, RC); - bind_instr(g3f_0_list, FADD, FRD, FRA, FRB, RC); - bind_instr(g3f_0_list, FSQRT, FRD, FRB, RC); - bind_instr(g3f_0_list, FRSQRTE, FRD, FRB, RC); - bind_instr(g3f_0_list, FCMPU, CRFD, FRA, FRB); - bind_instr(g3f_0_list, FRSP, FRD, FRB, RC); - bind_instr(g3f_0_list, FCTIW, FRD, FRB, RC); - bind_instr(g3f_0_list, FCTIWZ, FRD, FRB, RC); - bind_instr(g3f_0_list, FCMPO, CRFD, FRA, FRB); - bind_instr(g3f_0_list, FNEG, FRD, FRB, RC); - bind_instr(g3f_0_list, FMR, FRD, FRB, RC); - bind_instr(g3f_0_list, FNABS, FRD, FRB, RC); - bind_instr(g3f_0_list, FABS, FRD, FRB, RC); - bind_instr(g3f_0_list, FCFID, FRD, FRB, RC); - bind_instr(g3f_0_list, FCTID, FRD, FRB, RC); - bind_instr(g3f_0_list, FCTIDZ, FRD, FRB, RC); - - bind_instr(g3f_0_list, MTFSB1, CRBD, RC); - bind_instr(g3f_0_list, MCRFS, CRFD, CRFS); - bind_instr(g3f_0_list, MTFSB0, CRBD, RC); - bind_instr(g3f_0_list, MTFSFI, CRFD, I, RC); - bind_instr(g3f_0_list, MFFS, FRD, RC); - bind_instr(g3f_0_list, MTFSF, FM, FRB, RC); - - static auto LIS = std::bind(ADDIS, std::placeholders::_1, 0, std::placeholders::_2); - static auto NOP = std::bind(ORI, 0, 0, 0); - static auto BLR = std::bind(BCLR, 0x10 | 0x04, 0, 0, 0); + /* + Absolute address bit. + 0 The immediate field represents an address relative to the current instruction address (CIA). (For more + information on the CIA, see Table 8-3.) The effective (logical) address of the branch is either the sum + of the LI field sign-extended to 64 bits and the address of the branch instruction or the sum of the BD + field sign-extended to 64 bits and the address of the branch instruction. + 1 The immediate field represents an absolute address. The effective address (EA) of the branch is the + LI field sign-extended to 64 bits or the BD field sign-extended to 64 bits. + */ + static CodeField<30> AA; + static CodeFieldSignedOffset<6, 29, 2> LI(FIELD_BRANCH); + + // + static CodeFieldSignedOffset<6, 29, 2> LL(FIELD_BRANCH); + /* + Link bit. + 0 Does not update the link register (LR). + 1 Updates the LR. If the instruction is a branch instruction, the address of the instruction following the + branch instruction is placed into the LR. + */ + static CodeField<31> LK; + + //This field is used for extended arithmetic to enable setting OV and SO in the XER + static CodeField<21> OE; + + //Field used to specify whether an integer compare instruction is to compare 64-bit numbers or 32-bit numbers + static CodeField<10> L_10; + static CodeField<6> L_6; + static CodeField<9, 10> L_9_10; + static CodeField<11> L_11; + // + static CodeField<16, 19> I; + + // + static CodeField<16, 27> DQ; + + //This field is used to specify an FPR as the destination + static CodeField<6, 10> FRD; + + //This field is used to specify an FPR as a source + static CodeField<6, 10> FRS; + + // + static CodeField<7, 14> FM; + + //This field is used to specify an FPR as a source + static CodeField<11, 15> FRA(FIELD_R_FPR); + + //This field is used to specify an FPR as a source + static CodeField<16, 20> FRB(FIELD_R_FPR); + + //This field is used to specify an FPR as a source + static CodeField<21, 25> FRC(FIELD_R_FPR); + + //This field mask is used to identify the CR fields that are to be updated by the mtcrf instruction. + static CodeField<12, 19> CRM; + + // + static CodeField<6, 31> SYS; + + //Immediate field specifying a 16-bit signed two's complement integer that is sign-extended to 64 bits + static CodeFieldSigned<16, 31> D; + + // + static CodeFieldSignedOffset<16, 29, 2> DS; + + //This immediate field is used to specify a 16-bit signed integer + static CodeFieldSigned<16, 31> simm16; + + //This immediate field is used to specify a 16-bit unsigned integer + static CodeField<16, 31> uimm16; + + /* + Record bit. + 0 Does not update the condition register (CR). + 1 Updates the CR to reflect the result of the operation. + For integer instructions, CR bits [0-2] are set to reflect the result as a signed quantity and CR bit [3] + receives a copy of the summary overflow bit, XER[SO]. The result as an unsigned quantity or a bit + string can be deduced from the EQ bit. For floating-point instructions, CR bits [4-7] are set to reflect + floating-point exception, floating-point enabled exception, floating-point invalid operation exception, + and floating-point overflow exception. + */ + static CodeField<31> RC; + + //Primary opcode field + static CodeField<0, 5> OPCD; + + static CodeField<26, 31> GD_04; //0x3f + static CodeField<21, 31> GD_04_0;//0x7ff + static CodeField<21, 30> GD_13; //0x3ff + static CodeField<27, 29> GD_1e; //0x7 + static CodeField<21, 30> GD_1f; //0x3ff + static CodeField<30, 31> GD_3a; //0x3 + static CodeField<26, 30> GD_3b; //0x1f + static CodeField<30, 31> GD_3e; //0x3 + static CodeField<26, 30> GD_3f;//0x1f + static CodeField<21, 30> GD_3f_0; //0x3ff + + static CodeField<9, 10> STRM; + } + + namespace lists + { + using namespace fields; + + //static auto main_list = new_list(OPCD, instr_bind(&PPUOpcodes::UNK, GetCode, OPCD, OPCD)); + static InstrList<1 << CodeField<0, 5>::size, ::PPUOpcodes> main_list_obj(OPCD, instr_bind(&PPUOpcodes::UNK, GetCode, OPCD, OPCD)); + static auto main_list = &main_list_obj; + static auto g04_list = new_list(main_list, PPU_opcodes::G_04, GD_04); + static auto g04_0_list = new_list(g04_list, GD_04_0, instr_bind(&PPUOpcodes::UNK, GetCode, OPCD, GD_04_0)); + static auto g13_list = new_list(main_list, PPU_opcodes::G_13, GD_13, instr_bind(&PPUOpcodes::UNK, GetCode, OPCD, GD_13)); + static auto g1e_list = new_list(main_list, PPU_opcodes::G_1e, GD_1e, instr_bind(&PPUOpcodes::UNK, GetCode, OPCD, GD_1e)); + static auto g1f_list = new_list(main_list, PPU_opcodes::G_1f, GD_1f, instr_bind(&PPUOpcodes::UNK, GetCode, OPCD, GD_1f)); + static auto g3a_list = new_list(main_list, PPU_opcodes::G_3a, GD_3a, instr_bind(&PPUOpcodes::UNK, GetCode, OPCD, GD_3a)); + static auto g3b_list = new_list(main_list, PPU_opcodes::G_3b, GD_3b, instr_bind(&PPUOpcodes::UNK, GetCode, OPCD, GD_3b)); + static auto g3e_list = new_list(main_list, PPU_opcodes::G_3e, GD_3e, instr_bind(&PPUOpcodes::UNK, GetCode, OPCD, GD_3e)); + static auto g3f_list = new_list(main_list, PPU_opcodes::G_3f, GD_3f); + static auto g3f_0_list = new_list(g3f_list, GD_3f_0, instr_bind(&PPUOpcodes::UNK, GetCode, OPCD, GD_3f_0)); + +#define bind_instr(list, name, ...) \ + static const auto& name = make_instr(list, #name, &PPUOpcodes::name, ##__VA_ARGS__) + + bind_instr(main_list, TDI, TO, RA, simm16); + bind_instr(main_list, TWI, TO, RA, simm16); + bind_instr(main_list, MULLI, RD, RA, simm16); + bind_instr(main_list, SUBFIC, RD, RA, simm16); + bind_instr(main_list, CMPLI, CRFD, L_10, RA, uimm16); + bind_instr(main_list, CMPI, CRFD, L_10, RA, simm16); + bind_instr(main_list, ADDIC, RD, RA, simm16); + bind_instr(main_list, ADDIC_, RD, RA, simm16); + bind_instr(main_list, ADDI, RD, RA, simm16); + bind_instr(main_list, ADDIS, RD, RA, simm16); + bind_instr(main_list, BC, BO, BI, BD, AA, LK); + bind_instr(main_list, SC, SYS); + bind_instr(main_list, B, LI, AA, LK); + bind_instr(main_list, RLWIMI, RA, RS, SH, MB, ME, RC); + bind_instr(main_list, RLWINM, RA, RS, SH, MB, ME, RC); + bind_instr(main_list, RLWNM, RA, RS, RB, MB, ME, RC); + bind_instr(main_list, ORI, RA, RS, uimm16); + bind_instr(main_list, ORIS, RA, RS, uimm16); + bind_instr(main_list, XORI, RA, RS, uimm16); + bind_instr(main_list, XORIS, RA, RS, uimm16); + bind_instr(main_list, ANDI_, RA, RS, uimm16); + bind_instr(main_list, ANDIS_, RA, RS, uimm16); + bind_instr(main_list, LWZ, RD, RA, D); + bind_instr(main_list, LWZU, RD, RA, D); + bind_instr(main_list, LBZ, RD, RA, D); + bind_instr(main_list, LBZU, RD, RA, D); + bind_instr(main_list, STW, RS, RA, D); + bind_instr(main_list, STWU, RS, RA, D); + bind_instr(main_list, STB, RS, RA, D); + bind_instr(main_list, STBU, RS, RA, D); + bind_instr(main_list, LHZ, RD, RA, D); + bind_instr(main_list, LHZU, RD, RA, D); + bind_instr(main_list, LHA, RD, RA, D); + bind_instr(main_list, LHAU, RD, RA, D); + bind_instr(main_list, STH, RS, RA, D); + bind_instr(main_list, STHU, RS, RA, D); + bind_instr(main_list, LMW, RD, RA, D); + bind_instr(main_list, STMW, RS, RA, D); + bind_instr(main_list, LFS, FRD, RA, D); + bind_instr(main_list, LFSU, FRD, RA, D); + bind_instr(main_list, LFD, FRD, RA, D); + bind_instr(main_list, LFDU, FRD, RA, D); + bind_instr(main_list, STFS, FRS, RA, D); + bind_instr(main_list, STFSU, FRS, RA, D); + bind_instr(main_list, STFD, FRS, RA, D); + bind_instr(main_list, STFDU, FRS, RA, D); + + bind_instr(g04_list, VMADDFP, VD, VA, VC, VB); + bind_instr(g04_list, VMHADDSHS, VD, VA, VB, VC); + bind_instr(g04_list, VMHRADDSHS, VD, VA, VB, VC); + bind_instr(g04_list, VMLADDUHM, VD, VA, VB, VC); + bind_instr(g04_list, VMSUMMBM, VD, VA, VB, VC); + bind_instr(g04_list, VMSUMSHM, VD, VA, VB, VC); + bind_instr(g04_list, VMSUMSHS, VD, VA, VB, VC); + bind_instr(g04_list, VMSUMUBM, VD, VA, VB, VC); + bind_instr(g04_list, VMSUMUHM, VD, VA, VB, VC); + bind_instr(g04_list, VMSUMUHS, VD, VA, VB, VC); + bind_instr(g04_list, VNMSUBFP, VD, VA, VC, VB); + bind_instr(g04_list, VPERM, VD, VA, VB, VC); + bind_instr(g04_list, VSEL, VD, VA, VB, VC); + bind_instr(g04_list, VSLDOI, VD, VA, VB, VSH); + + bind_instr(g04_0_list, MFVSCR, VD); + bind_instr(g04_0_list, MTVSCR, VB); + bind_instr(g04_0_list, VADDCUW, VD, VA, VB); + bind_instr(g04_0_list, VADDFP, VD, VA, VB); + bind_instr(g04_0_list, VADDSBS, VD, VA, VB); + bind_instr(g04_0_list, VADDSHS, VD, VA, VB); + bind_instr(g04_0_list, VADDSWS, VD, VA, VB); + bind_instr(g04_0_list, VADDUBM, VD, VA, VB); + bind_instr(g04_0_list, VADDUBS, VD, VA, VB); + bind_instr(g04_0_list, VADDUHM, VD, VA, VB); + bind_instr(g04_0_list, VADDUHS, VD, VA, VB); + bind_instr(g04_0_list, VADDUWM, VD, VA, VB); + bind_instr(g04_0_list, VADDUWS, VD, VA, VB); + bind_instr(g04_0_list, VAND, VD, VA, VB); + bind_instr(g04_0_list, VANDC, VD, VA, VB); + bind_instr(g04_0_list, VAVGSB, VD, VA, VB); + bind_instr(g04_0_list, VAVGSH, VD, VA, VB); + bind_instr(g04_0_list, VAVGSW, VD, VA, VB); + bind_instr(g04_0_list, VAVGUB, VD, VA, VB); + bind_instr(g04_0_list, VAVGUH, VD, VA, VB); + bind_instr(g04_0_list, VAVGUW, VD, VA, VB); + bind_instr(g04_0_list, VCFSX, VD, VUIMM, VB); + bind_instr(g04_0_list, VCFUX, VD, VUIMM, VB); + bind_instr(g04_0_list, VCMPBFP, VD, VA, VB); + bind_instr(g04_0_list, VCMPBFP_, VD, VA, VB); + bind_instr(g04_0_list, VCMPEQFP, VD, VA, VB); + bind_instr(g04_0_list, VCMPEQFP_, VD, VA, VB); + bind_instr(g04_0_list, VCMPEQUB, VD, VA, VB); + bind_instr(g04_0_list, VCMPEQUB_, VD, VA, VB); + bind_instr(g04_0_list, VCMPEQUH, VD, VA, VB); + bind_instr(g04_0_list, VCMPEQUH_, VD, VA, VB); + bind_instr(g04_0_list, VCMPEQUW, VD, VA, VB); + bind_instr(g04_0_list, VCMPEQUW_, VD, VA, VB); + bind_instr(g04_0_list, VCMPGEFP, VD, VA, VB); + bind_instr(g04_0_list, VCMPGEFP_, VD, VA, VB); + bind_instr(g04_0_list, VCMPGTFP, VD, VA, VB); + bind_instr(g04_0_list, VCMPGTFP_, VD, VA, VB); + bind_instr(g04_0_list, VCMPGTSB, VD, VA, VB); + bind_instr(g04_0_list, VCMPGTSB_, VD, VA, VB); + bind_instr(g04_0_list, VCMPGTSH, VD, VA, VB); + bind_instr(g04_0_list, VCMPGTSH_, VD, VA, VB); + bind_instr(g04_0_list, VCMPGTSW, VD, VA, VB); + bind_instr(g04_0_list, VCMPGTSW_, VD, VA, VB); + bind_instr(g04_0_list, VCMPGTUB, VD, VA, VB); + bind_instr(g04_0_list, VCMPGTUB_, VD, VA, VB); + bind_instr(g04_0_list, VCMPGTUH, VD, VA, VB); + bind_instr(g04_0_list, VCMPGTUH_, VD, VA, VB); + bind_instr(g04_0_list, VCMPGTUW, VD, VA, VB); + bind_instr(g04_0_list, VCMPGTUW_, VD, VA, VB); + bind_instr(g04_0_list, VCTSXS, VD, VUIMM, VB); + bind_instr(g04_0_list, VCTUXS, VD, VUIMM, VB); + bind_instr(g04_0_list, VEXPTEFP, VD, VB); + bind_instr(g04_0_list, VLOGEFP, VD, VB); + bind_instr(g04_0_list, VMAXFP, VD, VA, VB); + bind_instr(g04_0_list, VMAXSB, VD, VA, VB); + bind_instr(g04_0_list, VMAXSH, VD, VA, VB); + bind_instr(g04_0_list, VMAXSW, VD, VA, VB); + bind_instr(g04_0_list, VMAXUB, VD, VA, VB); + bind_instr(g04_0_list, VMAXUH, VD, VA, VB); + bind_instr(g04_0_list, VMAXUW, VD, VA, VB); + bind_instr(g04_0_list, VMINFP, VD, VA, VB); + bind_instr(g04_0_list, VMINSB, VD, VA, VB); + bind_instr(g04_0_list, VMINSH, VD, VA, VB); + bind_instr(g04_0_list, VMINSW, VD, VA, VB); + bind_instr(g04_0_list, VMINUB, VD, VA, VB); + bind_instr(g04_0_list, VMINUH, VD, VA, VB); + bind_instr(g04_0_list, VMINUW, VD, VA, VB); + bind_instr(g04_0_list, VMRGHB, VD, VA, VB); + bind_instr(g04_0_list, VMRGHH, VD, VA, VB); + bind_instr(g04_0_list, VMRGHW, VD, VA, VB); + bind_instr(g04_0_list, VMRGLB, VD, VA, VB); + bind_instr(g04_0_list, VMRGLH, VD, VA, VB); + bind_instr(g04_0_list, VMRGLW, VD, VA, VB); + bind_instr(g04_0_list, VMULESB, VD, VA, VB); + bind_instr(g04_0_list, VMULESH, VD, VA, VB); + bind_instr(g04_0_list, VMULEUB, VD, VA, VB); + bind_instr(g04_0_list, VMULEUH, VD, VA, VB); + bind_instr(g04_0_list, VMULOSB, VD, VA, VB); + bind_instr(g04_0_list, VMULOSH, VD, VA, VB); + bind_instr(g04_0_list, VMULOUB, VD, VA, VB); + bind_instr(g04_0_list, VMULOUH, VD, VA, VB); + bind_instr(g04_0_list, VNOR, VD, VA, VB); + bind_instr(g04_0_list, VOR, VD, VA, VB); + bind_instr(g04_0_list, VPKPX, VD, VA, VB); + bind_instr(g04_0_list, VPKSHSS, VD, VA, VB); + bind_instr(g04_0_list, VPKSHUS, VD, VA, VB); + bind_instr(g04_0_list, VPKSWSS, VD, VA, VB); + bind_instr(g04_0_list, VPKSWUS, VD, VA, VB); + bind_instr(g04_0_list, VPKUHUM, VD, VA, VB); + bind_instr(g04_0_list, VPKUHUS, VD, VA, VB); + bind_instr(g04_0_list, VPKUWUM, VD, VA, VB); + bind_instr(g04_0_list, VPKUWUS, VD, VA, VB); + bind_instr(g04_0_list, VREFP, VD, VB); + bind_instr(g04_0_list, VRFIM, VD, VB); + bind_instr(g04_0_list, VRFIN, VD, VB); + bind_instr(g04_0_list, VRFIP, VD, VB); + bind_instr(g04_0_list, VRFIZ, VD, VB); + bind_instr(g04_0_list, VRLB, VD, VA, VB); + bind_instr(g04_0_list, VRLH, VD, VA, VB); + bind_instr(g04_0_list, VRLW, VD, VA, VB); + bind_instr(g04_0_list, VRSQRTEFP, VD, VB); + bind_instr(g04_0_list, VSL, VD, VA, VB); + bind_instr(g04_0_list, VSLB, VD, VA, VB); + bind_instr(g04_0_list, VSLH, VD, VA, VB); + bind_instr(g04_0_list, VSLO, VD, VA, VB); + bind_instr(g04_0_list, VSLW, VD, VA, VB); + bind_instr(g04_0_list, VSPLTB, VD, VUIMM, VB); + bind_instr(g04_0_list, VSPLTH, VD, VUIMM, VB); + bind_instr(g04_0_list, VSPLTISB, VD, VSIMM); + bind_instr(g04_0_list, VSPLTISH, VD, VSIMM); + bind_instr(g04_0_list, VSPLTISW, VD, VSIMM); + bind_instr(g04_0_list, VSPLTW, VD, VUIMM, VB); + bind_instr(g04_0_list, VSR, VD, VA, VB); + bind_instr(g04_0_list, VSRAB, VD, VA, VB); + bind_instr(g04_0_list, VSRAH, VD, VA, VB); + bind_instr(g04_0_list, VSRAW, VD, VA, VB); + bind_instr(g04_0_list, VSRB, VD, VA, VB); + bind_instr(g04_0_list, VSRH, VD, VA, VB); + bind_instr(g04_0_list, VSRO, VD, VA, VB); + bind_instr(g04_0_list, VSRW, VD, VA, VB); + bind_instr(g04_0_list, VSUBCUW, VD, VA, VB); + bind_instr(g04_0_list, VSUBFP, VD, VA, VB); + bind_instr(g04_0_list, VSUBSBS, VD, VA, VB); + bind_instr(g04_0_list, VSUBSHS, VD, VA, VB); + bind_instr(g04_0_list, VSUBSWS, VD, VA, VB); + bind_instr(g04_0_list, VSUBUBM, VD, VA, VB); + bind_instr(g04_0_list, VSUBUBS, VD, VA, VB); + bind_instr(g04_0_list, VSUBUHM, VD, VA, VB); + bind_instr(g04_0_list, VSUBUHS, VD, VA, VB); + bind_instr(g04_0_list, VSUBUWM, VD, VA, VB); + bind_instr(g04_0_list, VSUBUWS, VD, VA, VB); + bind_instr(g04_0_list, VSUMSWS, VD, VA, VB); + bind_instr(g04_0_list, VSUM2SWS, VD, VA, VB); + bind_instr(g04_0_list, VSUM4SBS, VD, VA, VB); + bind_instr(g04_0_list, VSUM4SHS, VD, VA, VB); + bind_instr(g04_0_list, VSUM4UBS, VD, VA, VB); + bind_instr(g04_0_list, VUPKHPX, VD, VB); + bind_instr(g04_0_list, VUPKHSB, VD, VB); + bind_instr(g04_0_list, VUPKHSH, VD, VB); + bind_instr(g04_0_list, VUPKLPX, VD, VB); + bind_instr(g04_0_list, VUPKLSB, VD, VB); + bind_instr(g04_0_list, VUPKLSH, VD, VB); + bind_instr(g04_0_list, VXOR, VD, VA, VB); + + bind_instr(g13_list, MCRF, CRFD, CRFS); + bind_instr(g13_list, BCLR, BO, BI, BH, LK); + bind_instr(g13_list, CRNOR, CRBD, CRBA, CRBB); + bind_instr(g13_list, CRANDC, CRBD, CRBA, CRBB); + bind_instr(g13_list, ISYNC); + bind_instr(g13_list, CRXOR, CRBD, CRBA, CRBB); + bind_instr(g13_list, CRNAND, CRBD, CRBA, CRBB); + bind_instr(g13_list, CRAND, CRBD, CRBA, CRBB); + bind_instr(g13_list, CREQV, CRBD, CRBA, CRBB); + bind_instr(g13_list, CRORC, CRBD, CRBA, CRBB); + bind_instr(g13_list, CROR, CRBD, CRBA, CRBB); + bind_instr(g13_list, BCCTR, BO, BI, BH, LK); + + bind_instr(g1e_list, RLDICL, RA, RS, sh, mb, RC); + bind_instr(g1e_list, RLDICR, RA, RS, sh, me, RC); + bind_instr(g1e_list, RLDIC, RA, RS, sh, mb, RC); + bind_instr(g1e_list, RLDIMI, RA, RS, sh, mb, RC); + bind_instr(g1e_list, RLDC_LR, RA, RS, RB, mb, AA, RC); + + /*0x000*/bind_instr(g1f_list, CMP, CRFD, L_10, RA, RB); + /*0x004*/bind_instr(g1f_list, TW, TO, RA, RB); + /*0x006*/bind_instr(g1f_list, LVSL, VD, RA, RB); + /*0x007*/bind_instr(g1f_list, LVEBX, VD, RA, RB); + /*0x008*/bind_instr(g1f_list, SUBFC, RD, RA, RB, OE, RC); + /*0x009*/bind_instr(g1f_list, MULHDU, RD, RA, RB, RC); + /*0x00a*/bind_instr(g1f_list, ADDC, RD, RA, RB, OE, RC); + /*0x00b*/bind_instr(g1f_list, MULHWU, RD, RA, RB, RC); + /*0x013*/bind_instr(g1f_list, MFOCRF, L_11, RD, CRM); + /*0x014*/bind_instr(g1f_list, LWARX, RD, RA, RB); + /*0x015*/bind_instr(g1f_list, LDX, RD, RA, RB); + /*0x017*/bind_instr(g1f_list, LWZX, RD, RA, RB); + /*0x018*/bind_instr(g1f_list, SLW, RA, RS, RB, RC); + /*0x01a*/bind_instr(g1f_list, CNTLZW, RA, RS, RC); + /*0x01b*/bind_instr(g1f_list, SLD, RA, RS, RB, RC); + /*0x01c*/bind_instr(g1f_list, AND, RA, RS, RB, RC); + /*0x020*/bind_instr(g1f_list, CMPL, CRFD, L_10, RA, RB); + /*0x026*/bind_instr(g1f_list, LVSR, VD, RA, RB); + /*0x027*/bind_instr(g1f_list, LVEHX, VD, RA, RB); + /*0x028*/bind_instr(g1f_list, SUBF, RD, RA, RB, OE, RC); + /*0x035*/bind_instr(g1f_list, LDUX, RD, RA, RB); + /*0x036*/bind_instr(g1f_list, DCBST, RA, RB); + /*0x037*/bind_instr(g1f_list, LWZUX, RD, RA, RB); + /*0x03a*/bind_instr(g1f_list, CNTLZD, RA, RS, RC); + /*0x03c*/bind_instr(g1f_list, ANDC, RA, RS, RB, RC); + /*0x03c*/bind_instr(g1f_list, TD, TO, RA, RB); + /*0x047*/bind_instr(g1f_list, LVEWX, VD, RA, RB); + /*0x049*/bind_instr(g1f_list, MULHD, RD, RA, RB, RC); + /*0x04b*/bind_instr(g1f_list, MULHW, RD, RA, RB, RC); + /*0x054*/bind_instr(g1f_list, LDARX, RD, RA, RB); + /*0x056*/bind_instr(g1f_list, DCBF, RA, RB); + /*0x057*/bind_instr(g1f_list, LBZX, RD, RA, RB); + /*0x067*/bind_instr(g1f_list, LVX, VD, RA, RB); + /*0x068*/bind_instr(g1f_list, NEG, RD, RA, OE, RC); + /*0x077*/bind_instr(g1f_list, LBZUX, RD, RA, RB); + /*0x07c*/bind_instr(g1f_list, NOR, RA, RS, RB, RC); + /*0x087*/bind_instr(g1f_list, STVEBX, VS, RA, RB); + /*0x088*/bind_instr(g1f_list, SUBFE, RD, RA, RB, OE, RC); + /*0x08a*/bind_instr(g1f_list, ADDE, RD, RA, RB, OE, RC); + /*0x090*/bind_instr(g1f_list, MTOCRF, L_11, CRM, RS); + /*0x095*/bind_instr(g1f_list, STDX, RS, RA, RB); + /*0x096*/bind_instr(g1f_list, STWCX_, RS, RA, RB); + /*0x097*/bind_instr(g1f_list, STWX, RS, RA, RB); + /*0x0a7*/bind_instr(g1f_list, STVEHX, VS, RA, RB); + /*0x0b5*/bind_instr(g1f_list, STDUX, RS, RA, RB); + /*0x0b7*/bind_instr(g1f_list, STWUX, RS, RA, RB); + /*0x0c7*/bind_instr(g1f_list, STVEWX, VS, RA, RB); + /*0x0c8*/bind_instr(g1f_list, SUBFZE, RD, RA, OE, RC); + /*0x0ca*/bind_instr(g1f_list, ADDZE, RD, RA, OE, RC); + /*0x0d6*/bind_instr(g1f_list, STDCX_, RS, RA, RB); + /*0x0d7*/bind_instr(g1f_list, STBX, RS, RA, RB); + /*0x0e7*/bind_instr(g1f_list, STVX, VS, RA, RB); + /*0x0e8*/bind_instr(g1f_list, SUBFME, RD, RA, OE, RC); + /*0x0e9*/bind_instr(g1f_list, MULLD, RD, RA, RB, OE, RC); + /*0x0ea*/bind_instr(g1f_list, ADDME, RD, RA, OE, RC); + /*0x0eb*/bind_instr(g1f_list, MULLW, RD, RA, RB, OE, RC); + /*0x0f6*/bind_instr(g1f_list, DCBTST, RA, RB, TH); + /*0x0f7*/bind_instr(g1f_list, STBUX, RS, RA, RB); + /*0x10a*/bind_instr(g1f_list, ADD, RD, RA, RB, OE, RC); + /*0x116*/bind_instr(g1f_list, DCBT, RA, RB, TH); + /*0x117*/bind_instr(g1f_list, LHZX, RD, RA, RB); + /*0x11c*/bind_instr(g1f_list, EQV, RA, RS, RB, RC); + /*0x136*/bind_instr(g1f_list, ECIWX, RD, RA, RB); + /*0x137*/bind_instr(g1f_list, LHZUX, RD, RA, RB); + /*0x13c*/bind_instr(g1f_list, XOR, RA, RS, RB, RC); + /*0x153*/bind_instr(g1f_list, MFSPR, RD, SPR); + /*0x155*/bind_instr(g1f_list, LWAX, RD, RA, RB); + /*0x156*/bind_instr(g1f_list, DST, RA, RB, STRM, L_6); + /*0x157*/bind_instr(g1f_list, LHAX, RD, RA, RB); + /*0x167*/bind_instr(g1f_list, LVXL, VD, RA, RB); + /*0x173*/bind_instr(g1f_list, MFTB, RD, SPR); + /*0x175*/bind_instr(g1f_list, LWAUX, RD, RA, RB); + /*0x176*/bind_instr(g1f_list, DSTST, RA, RB, STRM, L_6); + /*0x177*/bind_instr(g1f_list, LHAUX, RD, RA, RB); + /*0x197*/bind_instr(g1f_list, STHX, RS, RA, RB); + /*0x19c*/bind_instr(g1f_list, ORC, RA, RS, RB, RC); + /*0x1b6*/bind_instr(g1f_list, ECOWX, RS, RA, RB); + /*0x1b7*/bind_instr(g1f_list, STHUX, RS, RA, RB); + /*0x1bc*/bind_instr(g1f_list, OR, RA, RS, RB, RC); + /*0x1c9*/bind_instr(g1f_list, DIVDU, RD, RA, RB, OE, RC); + /*0x1cb*/bind_instr(g1f_list, DIVWU, RD, RA, RB, OE, RC); + /*0x1d3*/bind_instr(g1f_list, MTSPR, SPR, RS); + /*0x1d6*///DCBI + /*0x1dc*/bind_instr(g1f_list, NAND, RA, RS, RB, RC); + /*0x1e7*/bind_instr(g1f_list, STVXL, VS, RA, RB); + /*0x1e9*/bind_instr(g1f_list, DIVD, RD, RA, RB, OE, RC); + /*0x1eb*/bind_instr(g1f_list, DIVW, RD, RA, RB, OE, RC); + /*0x207*/bind_instr(g1f_list, LVLX, VD, RA, RB); + /*0x214*/bind_instr(g1f_list, LDBRX, RD, RA, RB); + /*0x215*/bind_instr(g1f_list, LSWX, RD, RA, RB); + /*0x216*/bind_instr(g1f_list, LWBRX, RD, RA, RB); + /*0x217*/bind_instr(g1f_list, LFSX, FRD, RA, RB); + /*0x218*/bind_instr(g1f_list, SRW, RA, RS, RB, RC); + /*0x21b*/bind_instr(g1f_list, SRD, RA, RS, RB, RC); + /*0x227*/bind_instr(g1f_list, LVRX, VD, RA, RB); + /*0x237*/bind_instr(g1f_list, LFSUX, FRD, RA, RB); + /*0x255*/bind_instr(g1f_list, LSWI, RD, RA, NB); + /*0x256*/bind_instr(g1f_list, SYNC, L_9_10); + /*0x257*/bind_instr(g1f_list, LFDX, FRD, RA, RB); + /*0x277*/bind_instr(g1f_list, LFDUX, FRD, RA, RB); + /*0x287*/bind_instr(g1f_list, STVLX, VS, RA, RB); + /*0x296*/bind_instr(g1f_list, STSWX, RS, RA, RB); + /*0x296*/bind_instr(g1f_list, STWBRX, RS, RA, RB); + /*0x297*/bind_instr(g1f_list, STFSX, FRS, RA, RB); + /*0x2a7*/bind_instr(g1f_list, STVRX, VS, RA, RB); + /*0x2b7*/bind_instr(g1f_list, STFSUX, FRS, RA, RB); + /*0x2d5*/bind_instr(g1f_list, STSWI, RS, RA, NB); + /*0x2d7*/bind_instr(g1f_list, STFDX, FRS, RA, RB); + /*0x2d7*/bind_instr(g1f_list, STFDUX, FRS, RA, RB); + /*0x307*/bind_instr(g1f_list, LVLXL, VD, RA, RB); + /*0x316*/bind_instr(g1f_list, LHBRX, RD, RA, RB); + /*0x318*/bind_instr(g1f_list, SRAW, RA, RS, RB, RC); + /*0x31a*/bind_instr(g1f_list, SRAD, RA, RS, RB, RC); + /*0x327*/bind_instr(g1f_list, LVRXL, VD, RA, RB); + /*0x336*/bind_instr(g1f_list, DSS, STRM, L_6); + /*0x338*/bind_instr(g1f_list, SRAWI, RA, RS, SH, RC); + /*0x33a*/bind_instr(g1f_list, SRADI1, RA, RS, sh, RC); + /*0x33b*/bind_instr(g1f_list, SRADI2, RA, RS, sh, RC); + /*0x356*/bind_instr(g1f_list, EIEIO); + /*0x387*/bind_instr(g1f_list, STVLXL, VS, RA, RB); + /*0x396*/bind_instr(g1f_list, STHBRX, RS, RA, RB); + /*0x39a*/bind_instr(g1f_list, EXTSH, RA, RS, RC); + /*0x387*/bind_instr(g1f_list, STVRXL, VS, RA, RB); + /*0x3ba*/bind_instr(g1f_list, EXTSB, RA, RS, RC); + /*0x3d7*/bind_instr(g1f_list, STFIWX, FRS, RA, RB); + /*0x3da*/bind_instr(g1f_list, EXTSW, RA, RS, RC); + /*0x3d6*/bind_instr(g1f_list, ICBI, RA, RB); + /*0x3f6*/bind_instr(g1f_list, DCBZ, RA, RB); + + bind_instr(g3a_list, LD, RD, RA, DS); + bind_instr(g3a_list, LDU, RD, RA, DS); + bind_instr(g3a_list, LWA, RD, RA, DS); + + bind_instr(g3b_list, FDIVS, FRD, FRA, FRB, RC); + bind_instr(g3b_list, FSUBS, FRD, FRA, FRB, RC); + bind_instr(g3b_list, FADDS, FRD, FRA, FRB, RC); + bind_instr(g3b_list, FSQRTS, FRD, FRB, RC); + bind_instr(g3b_list, FRES, FRD, FRB, RC); + bind_instr(g3b_list, FMULS, FRD, FRA, FRC, RC); + bind_instr(g3b_list, FMADDS, FRD, FRA, FRC, FRB, RC); + bind_instr(g3b_list, FMSUBS, FRD, FRA, FRC, FRB, RC); + bind_instr(g3b_list, FNMSUBS, FRD, FRA, FRC, FRB, RC); + bind_instr(g3b_list, FNMADDS, FRD, FRA, FRC, FRB, RC); + + bind_instr(g3e_list, STD, RS, RA, DS); + bind_instr(g3e_list, STDU, RS, RA, DS); + + bind_instr(g3f_list, FSEL, FRD, FRA, FRC, FRB, RC); + bind_instr(g3f_list, FMUL, FRD, FRA, FRC, RC); + bind_instr(g3f_list, FMSUB, FRD, FRA, FRC, FRB, RC); + bind_instr(g3f_list, FMADD, FRD, FRA, FRC, FRB, RC); + bind_instr(g3f_list, FNMSUB, FRD, FRA, FRC, FRB, RC); + bind_instr(g3f_list, FNMADD, FRD, FRA, FRC, FRB, RC); + + bind_instr(g3f_0_list, FDIV, FRD, FRA, FRB, RC); + bind_instr(g3f_0_list, FSUB, FRD, FRA, FRB, RC); + bind_instr(g3f_0_list, FADD, FRD, FRA, FRB, RC); + bind_instr(g3f_0_list, FSQRT, FRD, FRB, RC); + bind_instr(g3f_0_list, FRSQRTE, FRD, FRB, RC); + bind_instr(g3f_0_list, FCMPU, CRFD, FRA, FRB); + bind_instr(g3f_0_list, FRSP, FRD, FRB, RC); + bind_instr(g3f_0_list, FCTIW, FRD, FRB, RC); + bind_instr(g3f_0_list, FCTIWZ, FRD, FRB, RC); + bind_instr(g3f_0_list, FCMPO, CRFD, FRA, FRB); + bind_instr(g3f_0_list, FNEG, FRD, FRB, RC); + bind_instr(g3f_0_list, FMR, FRD, FRB, RC); + bind_instr(g3f_0_list, FNABS, FRD, FRB, RC); + bind_instr(g3f_0_list, FABS, FRD, FRB, RC); + bind_instr(g3f_0_list, FCFID, FRD, FRB, RC); + bind_instr(g3f_0_list, FCTID, FRD, FRB, RC); + bind_instr(g3f_0_list, FCTIDZ, FRD, FRB, RC); + + bind_instr(g3f_0_list, MTFSB1, CRBD, RC); + bind_instr(g3f_0_list, MCRFS, CRFD, CRFS); + bind_instr(g3f_0_list, MTFSB0, CRBD, RC); + bind_instr(g3f_0_list, MTFSFI, CRFD, I, RC); + bind_instr(g3f_0_list, MFFS, FRD, RC); + bind_instr(g3f_0_list, MTFSF, FM, FRB, RC); + + enum + { + r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, + r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, + r22, r23, r24, r25, r26, r27, r28, r29, r30, r31 + }; + } + + namespace implicts + { + using namespace lists; + + //static auto LIS = std::bind(ADDIS, std::placeholders::_1, r0, std::placeholders::_2); + //static auto LI = std::bind(ADDI, std::placeholders::_1, r0, std::placeholders::_2); + static auto NOP = std::bind(ORI, r0, r0, 0); + static auto MR = std::bind(OR, std::placeholders::_1, std::placeholders::_2, std::placeholders::_2, false); + static auto BLR = std::bind(BCLR, 0x10 | 0x04, 0, 0, 0); + static auto BCTR = std::bind(BCCTR, 0x10 | 0x04, 0, 0, 0); + static auto BCTRL = std::bind(BCCTR, 0x10 | 0x04, 0, 0, 1); + static auto MTCTR = std::bind(MTSPR, (0x1 << 5) | 0x8, std::placeholders::_1); + } + + + using namespace lists; + using namespace implicts; #undef bind_instr -}; +}; \ No newline at end of file diff --git a/rpcs3/Emu/Cell/PPUInterpreter.h b/rpcs3/Emu/Cell/PPUInterpreter.h index ea6f0d575d..c24509ea0f 100644 --- a/rpcs3/Emu/Cell/PPUInterpreter.h +++ b/rpcs3/Emu/Cell/PPUInterpreter.h @@ -55,10 +55,14 @@ u64 rotr64(const u64 x, const u8 n) { return (x >> n) | (x << (64 - n)); } #define rotl64 _rotl64 #define rotr64 _rotr64 +namespace ppu_recompiler_llvm { + class Compiler; +} + class PPUInterpreter : public PPUOpcodes { #ifdef PPU_LLVM_RECOMPILER - friend class PPULLVMRecompiler; + friend class ppu_recompiler_llvm::Compiler; #endif private: PPUThread& CPU; @@ -133,21 +137,73 @@ private: return ctr_ok && cond_ok; } - u64& GetRegBySPR(u32 spr) + u64 ReadSPR(u32 spr) { const u32 n = (spr >> 5) | ((spr & 0x1f) << 5); - switch(n) + switch (n) { case 0x001: return CPU.XER.XER; case 0x008: return CPU.LR; case 0x009: return CPU.CTR; - case 0x100: return CPU.USPRG0; + case 0x100: + case 0x101: + case 0x102: + case 0x103: + case 0x104: + case 0x105: + case 0x106: + case 0x107: return CPU.USPRG[n - 0x100]; + + case 0x10C: return get_time(); + + case 0x110: + case 0x111: + case 0x112: + case 0x113: + case 0x114: + case 0x115: + case 0x116: + case 0x117: return CPU.SPRG[n - 0x110]; } - UNK(fmt::Format("GetRegBySPR error: Unknown SPR 0x%x!", n)); + UNK(fmt::Format("ReadSPR error: Unknown SPR 0x%x!", n)); return CPU.XER.XER; } + + void WriteSPR(u32 spr, u64 value) + { + const u32 n = (spr >> 5) | ((spr & 0x1f) << 5); + + switch (n) + { + case 0x001: CPU.XER.XER = value; return; + case 0x008: CPU.LR = value; return; + case 0x009: CPU.CTR = value; return; + case 0x100: + case 0x101: + case 0x102: + case 0x103: + case 0x104: + case 0x105: + case 0x106: + case 0x107: CPU.USPRG[n - 0x100] = value; return; + + case 0x10C: UNK("WriteSPR: Write to time-based SPR. Report this to a developer!"); return; + + case 0x110: + case 0x111: + case 0x112: + case 0x113: + case 0x114: + case 0x115: + case 0x116: + case 0x117: CPU.SPRG[n - 0x110] = value; return; + } + + UNK(fmt::Format("WriteSPR error: Unknown SPR 0x%x!", n)); + return; + } void TDI(u32 to, u32 ra, s32 simm16) { @@ -2911,7 +2967,7 @@ private: } void MFSPR(u32 rd, u32 spr) { - CPU.GPR[rd] = GetRegBySPR(spr); + CPU.GPR[rd] = ReadSPR(spr); } void LWAX(u32 rd, u32 ra, u32 rb) { @@ -3062,7 +3118,7 @@ private: } void MTSPR(u32 spr, u32 rs) { - GetRegBySPR(spr) = CPU.GPR[rs]; + WriteSPR(spr, CPU.GPR[rs]); } void DCBI(u32 ra, u32 rb) { diff --git a/rpcs3/Emu/Cell/PPULLVMRecompiler.cpp b/rpcs3/Emu/Cell/PPULLVMRecompiler.cpp index eba1940139..07354dd068 100644 --- a/rpcs3/Emu/Cell/PPULLVMRecompiler.cpp +++ b/rpcs3/Emu/Cell/PPULLVMRecompiler.cpp @@ -5,7 +5,6 @@ #include "llvm/Support/TargetSelect.h" #include "llvm/Support/Host.h" #include "llvm/Support/ManagedStatic.h" -#include "llvm/Support/raw_ostream.h" #include "llvm/CodeGen/MachineCodeInfo.h" #include "llvm/ExecutionEngine/GenericValue.h" #include "llvm/IR/Intrinsics.h" @@ -19,15 +18,16 @@ #include "llvm/Transforms/Scalar.h" #include "llvm/Transforms/Vectorize.h" #include "llvm/MC/MCDisassembler.h" +#include "llvm/IR/Verifier.h" using namespace llvm; +using namespace ppu_recompiler_llvm; -u64 PPULLVMRecompiler::s_rotate_mask[64][64]; -bool PPULLVMRecompiler::s_rotate_mask_inited = false; +u64 Compiler::s_rotate_mask[64][64]; +bool Compiler::s_rotate_mask_inited = false; -PPULLVMRecompiler::PPULLVMRecompiler() - : ThreadBase("PPULLVMRecompiler") - , m_revision(0) { +Compiler::Compiler(RecompilationEngine & recompilation_engine, const Executable execute_unknown_function, const Executable execute_unknown_block) + : m_recompilation_engine(recompilation_engine) { InitializeNativeTarget(); InitializeNativeTargetAsmPrinter(); InitializeNativeTargetDisassembler(); @@ -64,187 +64,255 @@ PPULLVMRecompiler::PPULLVMRecompiler() m_fpm->add(createCFGSimplificationPass()); m_fpm->doInitialization(); + std::vector arg_types; + arg_types.push_back(m_ir_builder->getInt8PtrTy()); + arg_types.push_back(m_ir_builder->getInt8PtrTy()); + arg_types.push_back(m_ir_builder->getInt64Ty()); + m_compiled_function_type = FunctionType::get(m_ir_builder->getInt32Ty(), arg_types, false); + + m_execute_unknown_function = (Function *)m_module->getOrInsertFunction("execute_unknown_function", m_compiled_function_type); + m_execute_unknown_function->setCallingConv(CallingConv::X86_64_Win64); + m_execution_engine->addGlobalMapping(m_execute_unknown_function, (void *)execute_unknown_function); + + m_execute_unknown_block = (Function *)m_module->getOrInsertFunction("execute_unknown_block", m_compiled_function_type); + m_execute_unknown_block->setCallingConv(CallingConv::X86_64_Win64); + m_execution_engine->addGlobalMapping(m_execute_unknown_block, (void *)execute_unknown_block); + if (!s_rotate_mask_inited) { InitRotateMask(); s_rotate_mask_inited = true; } } -PPULLVMRecompiler::~PPULLVMRecompiler() { - Stop(); - +Compiler::~Compiler() { delete m_execution_engine; delete m_fpm; delete m_ir_builder; delete m_llvm_context; } -std::pair PPULLVMRecompiler::GetExecutable(u32 address) { - std::lock_guard lock(m_compiled_shared_lock); +Executable Compiler::Compile(const std::string & name, const ControlFlowGraph & cfg, bool inline_all, bool generate_linkable_exits) { + auto compilation_start = std::chrono::high_resolution_clock::now(); - auto compiled = m_compiled_shared.lower_bound(std::make_pair(address, 0)); - if (compiled != m_compiled_shared.end() && compiled->first.first == address) { - compiled->second.second++; - return std::make_pair(compiled->second.first, compiled->first.second); - } + m_state.cfg = &cfg; + m_state.inline_all = inline_all; + m_state.generate_linkable_exits = generate_linkable_exits; - return std::make_pair(nullptr, 0); -} + // Create the function + m_state.function = (Function *)m_module->getOrInsertFunction(name, m_compiled_function_type); + m_state.function->setCallingConv(CallingConv::X86_64_Win64); + auto arg_i = m_state.function->arg_begin(); + arg_i->setName("ppu_state"); + m_state.args[CompileTaskState::Args::State] = arg_i; + (++arg_i)->setName("interpreter"); + m_state.args[CompileTaskState::Args::Interpreter] = arg_i; + (++arg_i)->setName("context"); + m_state.args[CompileTaskState::Args::Context] = arg_i; -void PPULLVMRecompiler::ReleaseExecutable(u32 address, u32 revision) { - std::lock_guard lock(m_compiled_shared_lock); + // Create the entry block and add code to branch to the first instruction + m_ir_builder->SetInsertPoint(GetBasicBlockFromAddress(0)); + m_ir_builder->CreateBr(GetBasicBlockFromAddress(cfg.start_address)); - auto compiled = m_compiled_shared.find(std::make_pair(address, revision)); - if (compiled != m_compiled_shared.end()) { - compiled->second.second--; - } -} + // Convert each instruction in the CFG to LLVM IR + std::vector exit_instr_list; + for (auto instr_i = cfg.instruction_addresses.begin(); instr_i != cfg.instruction_addresses.end(); instr_i++) { + m_state.hit_branch_instruction = false; + m_state.current_instruction_address = *instr_i; + auto instr_bb = GetBasicBlockFromAddress(m_state.current_instruction_address); + m_ir_builder->SetInsertPoint(instr_bb); -void PPULLVMRecompiler::RequestCompilation(u32 address) { - { - std::lock_guard lock(m_uncompiled_shared_lock); - m_uncompiled_shared.push_back(address); - } + if (!inline_all && *instr_i != cfg.start_address) { + // Use an already compiled implementation of this block if available + auto ordinal = m_recompilation_engine.GetOrdinal(*instr_i); + if (ordinal != 0xFFFFFFFF) { + auto exit_instr_i32 = m_ir_builder->CreatePHI(m_ir_builder->getInt32Ty(), 0); + exit_instr_list.push_back(exit_instr_i32); - if (!IsAlive()) { - Start(); - } + auto context_i64 = m_ir_builder->CreateZExt(exit_instr_i32, m_ir_builder->getInt64Ty()); + context_i64 = m_ir_builder->CreateOr(context_i64, (u64)cfg.function_address << 32); + auto ret_i32 = IndirectCall(*instr_i, context_i64, false); - Notify(); -} - -u32 PPULLVMRecompiler::GetCurrentRevision() { - return m_revision.load(std::memory_order_relaxed); -} - -void PPULLVMRecompiler::Task() { - auto start = std::chrono::high_resolution_clock::now(); - - while (!TestDestroy() && !Emu.IsStopped()) { - // Wait a few ms for something to happen - auto idling_start = std::chrono::high_resolution_clock::now(); - WaitForAnySignal(250); - auto idling_end = std::chrono::high_resolution_clock::now(); - m_idling_time += std::chrono::duration_cast(idling_end - idling_start); - - // Update the set of blocks that have been hit with the set of blocks that have been requested for compilation. - { - std::lock_guard lock(m_uncompiled_shared_lock); - for (auto i = m_uncompiled_shared.begin(); i != m_uncompiled_shared.end(); i++) { - m_hit_blocks.insert(*i); - } - } - - u32 num_compiled = 0; - while (!TestDestroy() && !Emu.IsStopped()) { - u32 address; - - { - std::lock_guard lock(m_uncompiled_shared_lock); - - auto i = m_uncompiled_shared.begin(); - if (i != m_uncompiled_shared.end()) { - address = *i; - m_uncompiled_shared.erase(i); - } else { - break; - } - } - - m_hit_blocks.insert(address); - if (NeedsCompiling(address)) { - Compile(address); - num_compiled++; - } - } - - if (num_compiled == 0) { - // If we get here, it means the recompilation thread is idling. - // We use this oppurtunity to optimize the code. - RemoveUnusedOldVersions(); - for (auto i = m_compiled.begin(); i != m_compiled.end(); i++) { - if (NeedsCompiling(i->first.first)) { - Compile(i->first.first); - num_compiled++; + auto switch_instr = m_ir_builder->CreateSwitch(ret_i32, GetBasicBlockFromAddress(0xFFFFFFFF)); + auto branch_i = cfg.branches.find(*instr_i); + if (branch_i != cfg.branches.end()) { + for (auto next_instr_i = branch_i->second.begin(); next_instr_i != branch_i->second.end(); next_instr_i++) { + switch_instr->addCase(m_ir_builder->getInt32(*next_instr_i), GetBasicBlockFromAddress(*next_instr_i)); + } } } } + + if (instr_bb->empty()) { + u32 instr = re32(vm::get_ref(m_state.current_instruction_address)); + Decode(instr); + if (!m_state.hit_branch_instruction) { + m_ir_builder->CreateBr(GetBasicBlockFromAddress(m_state.current_instruction_address + 4)); + } + } } - std::chrono::high_resolution_clock::time_point end = std::chrono::high_resolution_clock::now(); - m_total_time = std::chrono::duration_cast(end - start); + // Generate exit logic for all empty blocks + auto default_exit_block_name = GetBasicBlockNameFromAddress(0xFFFFFFFF); + for (auto block_i = m_state.function->begin(); block_i != m_state.function->end(); block_i++) { + if (!block_i->getInstList().empty() || block_i->getName() == default_exit_block_name) { + continue; + } - std::string error; - raw_fd_ostream log_file("PPULLVMRecompiler.log", error, sys::fs::F_Text); - log_file << "Total time = " << m_total_time.count() / 1000000 << "ms\n"; - log_file << " Time spent compiling = " << m_compilation_time.count() / 1000000 << "ms\n"; - log_file << " Time spent building IR = " << m_ir_build_time.count() / 1000000 << "ms\n"; - log_file << " Time spent optimizing = " << m_optimizing_time.count() / 1000000 << "ms\n"; - log_file << " Time spent translating = " << m_translation_time.count() / 1000000 << "ms\n"; - log_file << " Time spent idling = " << m_idling_time.count() / 1000000 << "ms\n"; - log_file << " Time spent doing misc tasks = " << (m_total_time.count() - m_idling_time.count() - m_compilation_time.count()) / 1000000 << "ms\n"; - log_file << "Revision = " << m_revision << "\n"; - log_file << "\nInterpreter fallback stats:\n"; - for (auto i = m_interpreter_fallback_stats.begin(); i != m_interpreter_fallback_stats.end(); i++) { - log_file << i->first << " = " << i->second << "\n"; + // Found an empty block + m_ir_builder->SetInsertPoint(block_i); + auto exit_instr_i32 = m_ir_builder->CreatePHI(m_ir_builder->getInt32Ty(), 0); + exit_instr_list.push_back(exit_instr_i32); + + auto instr_address = GetAddressFromBasicBlockName(block_i->getName()); + SetPc(m_ir_builder->getInt32(instr_address)); + + if (generate_linkable_exits) { + auto context_i64 = m_ir_builder->CreateZExt(exit_instr_i32, m_ir_builder->getInt64Ty()); + context_i64 = m_ir_builder->CreateOr(context_i64, (u64)cfg.function_address << 32); + auto ret_i32 = IndirectCall(instr_address, context_i64, false); + auto cmp_i1 = m_ir_builder->CreateICmpNE(ret_i32, m_ir_builder->getInt32(0)); + auto then_bb = GetBasicBlockFromAddress(instr_address, "then"); + auto merge_bb = GetBasicBlockFromAddress(instr_address, "merge"); + m_ir_builder->CreateCondBr(cmp_i1, then_bb, merge_bb); + + m_ir_builder->SetInsertPoint(then_bb); + context_i64 = m_ir_builder->CreateZExt(ret_i32, m_ir_builder->getInt64Ty()); + context_i64 = m_ir_builder->CreateOr(context_i64, (u64)cfg.function_address << 32); + m_ir_builder->CreateCall3(m_execute_unknown_block, m_state.args[CompileTaskState::Args::State], m_state.args[CompileTaskState::Args::Interpreter], context_i64); + m_ir_builder->CreateBr(merge_bb); + + m_ir_builder->SetInsertPoint(merge_bb); + m_ir_builder->CreateRet(m_ir_builder->getInt32(0)); + } else { + m_ir_builder->CreateRet(exit_instr_i32); + } } - log_file << "\nDisassembly:\n"; - //auto disassembler = LLVMCreateDisasm(sys::getProcessTriple().c_str(), nullptr, 0, nullptr, nullptr); - for (auto i = m_compiled.begin(); i != m_compiled.end(); i++) { - log_file << fmt::Format("%s: Size = %u bytes, Number of instructions = %u\n", i->second.llvm_function->getName().str().c_str(), i->second.size, i->second.num_instructions); + // If the function has a default exit block then generate code for it + auto default_exit_bb = GetBasicBlockFromAddress(0xFFFFFFFF, "", false); + if (default_exit_bb) { + m_ir_builder->SetInsertPoint(default_exit_bb); + auto exit_instr_i32 = m_ir_builder->CreatePHI(m_ir_builder->getInt32Ty(), 0); + exit_instr_list.push_back(exit_instr_i32); - //uint8_t * fn_ptr = (uint8_t *)i->second.executable; - //for (size_t pc = 0; pc < i->second.size;) { - // char str[1024]; + if (generate_linkable_exits) { + auto cmp_i1 = m_ir_builder->CreateICmpNE(exit_instr_i32, m_ir_builder->getInt32(0)); + auto then_bb = GetBasicBlockFromAddress(0xFFFFFFFF, "then"); + auto merge_bb = GetBasicBlockFromAddress(0xFFFFFFFF, "merge"); + m_ir_builder->CreateCondBr(cmp_i1, then_bb, merge_bb); - // auto size = LLVMDisasmInstruction(disassembler, fn_ptr + pc, i->second.size - pc, (uint64_t)(fn_ptr + pc), str, sizeof(str)); - // log_file << str << '\n'; - // pc += size; - //} + m_ir_builder->SetInsertPoint(then_bb); + auto context_i64 = m_ir_builder->CreateZExt(exit_instr_i32, m_ir_builder->getInt64Ty()); + context_i64 = m_ir_builder->CreateOr(context_i64, (u64)cfg.function_address << 32); + m_ir_builder->CreateCall3(m_execute_unknown_block, m_state.args[CompileTaskState::Args::State], m_state.args[CompileTaskState::Args::Interpreter], context_i64); + m_ir_builder->CreateBr(merge_bb); + + m_ir_builder->SetInsertPoint(merge_bb); + m_ir_builder->CreateRet(m_ir_builder->getInt32(0)); + } else { + m_ir_builder->CreateRet(exit_instr_i32); + } } - //LLVMDisasmDispose(disassembler); + // Add incoming values for all exit instr PHI nodes + for (auto exit_instr_i = exit_instr_list.begin(); exit_instr_i != exit_instr_list.end(); exit_instr_i++) { + auto block = (*exit_instr_i)->getParent(); + for (auto pred_i = pred_begin(block); pred_i != pred_end(block); pred_i++) { + auto pred_address = GetAddressFromBasicBlockName((*pred_i)->getName()); + (*exit_instr_i)->addIncoming(m_ir_builder->getInt32(pred_address), *pred_i); + } + } - //log_file << "\nLLVM IR:\n" << *m_module; +#ifdef _DEBUG + m_recompilation_engine.Log() << *m_state.function; - LOG_NOTICE(PPU, "PPU LLVM compiler thread exiting."); + std::string verify; + raw_string_ostream verify_ostream(verify); + if (verifyFunction(*m_state.function, &verify_ostream)) { + m_recompilation_engine.Log() << "Verification failed: " << verify << "\n"; + } +#endif + + auto ir_build_end = std::chrono::high_resolution_clock::now(); + m_stats.ir_build_time += std::chrono::duration_cast(ir_build_end - compilation_start); + + // Optimize this function + m_fpm->run(*m_state.function); + auto optimize_end = std::chrono::high_resolution_clock::now(); + m_stats.optimization_time += std::chrono::duration_cast(optimize_end - ir_build_end); + + // Translate to machine code + MachineCodeInfo mci; + m_execution_engine->runJITOnFunction(m_state.function, &mci); + auto translate_end = std::chrono::high_resolution_clock::now(); + m_stats.translation_time += std::chrono::duration_cast(translate_end - optimize_end); + +#ifdef _DEBUG + m_recompilation_engine.Log() << "\nDisassembly:\n"; + auto disassembler = LLVMCreateDisasm(sys::getProcessTriple().c_str(), nullptr, 0, nullptr, nullptr); + for (size_t pc = 0; pc < mci.size();) { + char str[1024]; + + auto size = LLVMDisasmInstruction(disassembler, ((u8 *)mci.address()) + pc, mci.size() - pc, (uint64_t)(((u8 *)mci.address()) + pc), str, sizeof(str)); + m_recompilation_engine.Log() << fmt::Format("0x%08X: ", (u64)(((u8 *)mci.address()) + pc)) << str << '\n'; + pc += size; + } + + LLVMDisasmDispose(disassembler); +#endif + + auto compilation_end = std::chrono::high_resolution_clock::now(); + m_stats.total_time += std::chrono::duration_cast(compilation_end - compilation_start); + + return (Executable)mci.address(); } -void PPULLVMRecompiler::Decode(const u32 code) { +void Compiler::FreeExecutable(const std::string & name) { + auto function = m_module->getFunction(name); + if (function) { + m_execution_engine->freeMachineCodeForFunction(function); + function->eraseFromParent(); + } +} + +Compiler::Stats Compiler::GetStats() { + return m_stats; +} + +void Compiler::Decode(const u32 code) { (*PPU_instr::main_list)(this, code); } -void PPULLVMRecompiler::NULL_OP() { +void Compiler::NULL_OP() { InterpreterCall("NULL_OP", &PPUInterpreter::NULL_OP); } -void PPULLVMRecompiler::NOP() { +void Compiler::NOP() { InterpreterCall("NOP", &PPUInterpreter::NOP); } -void PPULLVMRecompiler::TDI(u32 to, u32 ra, s32 simm16) { +void Compiler::TDI(u32 to, u32 ra, s32 simm16) { InterpreterCall("TDI", &PPUInterpreter::TDI, to, ra, simm16); } -void PPULLVMRecompiler::TWI(u32 to, u32 ra, s32 simm16) { +void Compiler::TWI(u32 to, u32 ra, s32 simm16) { InterpreterCall("TWI", &PPUInterpreter::TWI, to, ra, simm16); } -void PPULLVMRecompiler::MFVSCR(u32 vd) { +void Compiler::MFVSCR(u32 vd) { auto vscr_i32 = GetVscr(); auto vscr_i128 = m_ir_builder->CreateZExt(vscr_i32, m_ir_builder->getIntNTy(128)); SetVr(vd, vscr_i128); } -void PPULLVMRecompiler::MTVSCR(u32 vb) { +void Compiler::MTVSCR(u32 vb) { auto vb_v4i32 = GetVrAsIntVec(vb, 32); auto vscr_i32 = m_ir_builder->CreateExtractElement(vb_v4i32, m_ir_builder->getInt32(0)); vscr_i32 = m_ir_builder->CreateAnd(vscr_i32, 0x00010001); SetVscr(vscr_i32); } -void PPULLVMRecompiler::VADDCUW(u32 vd, u32 va, u32 vb) { +void Compiler::VADDCUW(u32 vd, u32 va, u32 vb) { auto va_v4i32 = GetVrAsIntVec(va, 32); auto vb_v4i32 = GetVrAsIntVec(vb, 32); @@ -254,14 +322,14 @@ void PPULLVMRecompiler::VADDCUW(u32 vd, u32 va, u32 vb) { SetVr(vd, cmpv4i32); } -void PPULLVMRecompiler::VADDFP(u32 vd, u32 va, u32 vb) { +void Compiler::VADDFP(u32 vd, u32 va, u32 vb) { auto va_v4f32 = GetVrAsFloatVec(va); auto vb_v4f32 = GetVrAsFloatVec(vb); auto sum_v4f32 = m_ir_builder->CreateFAdd(va_v4f32, vb_v4f32); SetVr(vd, sum_v4f32); } -void PPULLVMRecompiler::VADDSBS(u32 vd, u32 va, u32 vb) { +void Compiler::VADDSBS(u32 vd, u32 va, u32 vb) { auto va_v16i8 = GetVrAsIntVec(va, 8); auto vb_v16i8 = GetVrAsIntVec(vb, 8); auto sum_v16i8 = m_ir_builder->CreateCall2(Intrinsic::getDeclaration(m_module, Intrinsic::x86_sse2_padds_b), va_v16i8, vb_v16i8); @@ -270,7 +338,7 @@ void PPULLVMRecompiler::VADDSBS(u32 vd, u32 va, u32 vb) { // TODO: Set VSCR.SAT } -void PPULLVMRecompiler::VADDSHS(u32 vd, u32 va, u32 vb) { +void Compiler::VADDSHS(u32 vd, u32 va, u32 vb) { auto va_v8i16 = GetVrAsIntVec(va, 16); auto vb_v8i16 = GetVrAsIntVec(vb, 16); auto sum_v8i16 = m_ir_builder->CreateCall2(Intrinsic::getDeclaration(m_module, Intrinsic::x86_sse2_padds_w), va_v8i16, vb_v8i16); @@ -279,7 +347,7 @@ void PPULLVMRecompiler::VADDSHS(u32 vd, u32 va, u32 vb) { // TODO: Set VSCR.SAT } -void PPULLVMRecompiler::VADDSWS(u32 vd, u32 va, u32 vb) { +void Compiler::VADDSWS(u32 vd, u32 va, u32 vb) { auto va_v4i32 = GetVrAsIntVec(va, 32); auto vb_v4i32 = GetVrAsIntVec(vb, 32); @@ -320,14 +388,14 @@ void PPULLVMRecompiler::VADDSWS(u32 vd, u32 va, u32 vb) { // TODO: Set SAT } -void PPULLVMRecompiler::VADDUBM(u32 vd, u32 va, u32 vb) { +void Compiler::VADDUBM(u32 vd, u32 va, u32 vb) { auto va_v16i8 = GetVrAsIntVec(va, 8); auto vb_v16i8 = GetVrAsIntVec(vb, 8); auto sum_v16i8 = m_ir_builder->CreateAdd(va_v16i8, vb_v16i8); SetVr(vd, sum_v16i8); } -void PPULLVMRecompiler::VADDUBS(u32 vd, u32 va, u32 vb) { +void Compiler::VADDUBS(u32 vd, u32 va, u32 vb) { auto va_v16i8 = GetVrAsIntVec(va, 8); auto vb_v16i8 = GetVrAsIntVec(vb, 8); auto sum_v16i8 = m_ir_builder->CreateCall2(Intrinsic::getDeclaration(m_module, Intrinsic::x86_sse2_paddus_b), va_v16i8, vb_v16i8); @@ -336,14 +404,14 @@ void PPULLVMRecompiler::VADDUBS(u32 vd, u32 va, u32 vb) { // TODO: Set SAT } -void PPULLVMRecompiler::VADDUHM(u32 vd, u32 va, u32 vb) { +void Compiler::VADDUHM(u32 vd, u32 va, u32 vb) { auto va_v8i16 = GetVrAsIntVec(va, 16); auto vb_v8i16 = GetVrAsIntVec(vb, 16); auto sum_v8i16 = m_ir_builder->CreateAdd(va_v8i16, vb_v8i16); SetVr(vd, sum_v8i16); } -void PPULLVMRecompiler::VADDUHS(u32 vd, u32 va, u32 vb) { +void Compiler::VADDUHS(u32 vd, u32 va, u32 vb) { auto va_v8i16 = GetVrAsIntVec(va, 16); auto vb_v8i16 = GetVrAsIntVec(vb, 16); auto sum_v8i16 = m_ir_builder->CreateCall2(Intrinsic::getDeclaration(m_module, Intrinsic::x86_sse2_paddus_w), va_v8i16, vb_v8i16); @@ -352,14 +420,14 @@ void PPULLVMRecompiler::VADDUHS(u32 vd, u32 va, u32 vb) { // TODO: Set SAT } -void PPULLVMRecompiler::VADDUWM(u32 vd, u32 va, u32 vb) { +void Compiler::VADDUWM(u32 vd, u32 va, u32 vb) { auto va_v4i32 = GetVrAsIntVec(va, 32); auto vb_v4i32 = GetVrAsIntVec(vb, 32); auto sum_v4i32 = m_ir_builder->CreateAdd(va_v4i32, vb_v4i32); SetVr(vd, sum_v4i32); } -void PPULLVMRecompiler::VADDUWS(u32 vd, u32 va, u32 vb) { +void Compiler::VADDUWS(u32 vd, u32 va, u32 vb) { auto va_v4i32 = GetVrAsIntVec(va, 32); auto vb_v4i32 = GetVrAsIntVec(vb, 32); auto sum_v4i32 = m_ir_builder->CreateAdd(va_v4i32, vb_v4i32); @@ -371,14 +439,14 @@ void PPULLVMRecompiler::VADDUWS(u32 vd, u32 va, u32 vb) { // TODO: Set SAT } -void PPULLVMRecompiler::VAND(u32 vd, u32 va, u32 vb) { +void Compiler::VAND(u32 vd, u32 va, u32 vb) { auto va_v4i32 = GetVrAsIntVec(va, 32); auto vb_v4i32 = GetVrAsIntVec(vb, 32); auto res_v4i32 = m_ir_builder->CreateAnd(va_v4i32, vb_v4i32); SetVr(vd, res_v4i32); } -void PPULLVMRecompiler::VANDC(u32 vd, u32 va, u32 vb) { +void Compiler::VANDC(u32 vd, u32 va, u32 vb) { auto va_v4i32 = GetVrAsIntVec(va, 32); auto vb_v4i32 = GetVrAsIntVec(vb, 32); vb_v4i32 = m_ir_builder->CreateNot(vb_v4i32); @@ -386,7 +454,7 @@ void PPULLVMRecompiler::VANDC(u32 vd, u32 va, u32 vb) { SetVr(vd, res_v4i32); } -void PPULLVMRecompiler::VAVGSB(u32 vd, u32 va, u32 vb) { +void Compiler::VAVGSB(u32 vd, u32 va, u32 vb) { auto va_v16i8 = GetVrAsIntVec(va, 8); auto vb_v16i8 = GetVrAsIntVec(vb, 8); auto va_v16i16 = m_ir_builder->CreateSExt(va_v16i8, VectorType::get(m_ir_builder->getInt16Ty(), 16)); @@ -398,7 +466,7 @@ void PPULLVMRecompiler::VAVGSB(u32 vd, u32 va, u32 vb) { SetVr(vd, avg_v16i8); } -void PPULLVMRecompiler::VAVGSH(u32 vd, u32 va, u32 vb) { +void Compiler::VAVGSH(u32 vd, u32 va, u32 vb) { auto va_v8i16 = GetVrAsIntVec(va, 16); auto vb_v8i16 = GetVrAsIntVec(vb, 16); auto va_v8i32 = m_ir_builder->CreateSExt(va_v8i16, VectorType::get(m_ir_builder->getInt32Ty(), 8)); @@ -410,7 +478,7 @@ void PPULLVMRecompiler::VAVGSH(u32 vd, u32 va, u32 vb) { SetVr(vd, avg_v8i16); } -void PPULLVMRecompiler::VAVGSW(u32 vd, u32 va, u32 vb) { +void Compiler::VAVGSW(u32 vd, u32 va, u32 vb) { auto va_v4i32 = GetVrAsIntVec(va, 32); auto vb_v4i32 = GetVrAsIntVec(vb, 32); auto va_v4i64 = m_ir_builder->CreateSExt(va_v4i32, VectorType::get(m_ir_builder->getInt64Ty(), 4)); @@ -422,21 +490,21 @@ void PPULLVMRecompiler::VAVGSW(u32 vd, u32 va, u32 vb) { SetVr(vd, avg_v4i32); } -void PPULLVMRecompiler::VAVGUB(u32 vd, u32 va, u32 vb) { +void Compiler::VAVGUB(u32 vd, u32 va, u32 vb) { auto va_v16i8 = GetVrAsIntVec(va, 8); auto vb_v16i8 = GetVrAsIntVec(vb, 8); auto avg_v16i8 = m_ir_builder->CreateCall2(Intrinsic::getDeclaration(m_module, Intrinsic::x86_sse2_pavg_b), va_v16i8, vb_v16i8); SetVr(vd, avg_v16i8); } -void PPULLVMRecompiler::VAVGUH(u32 vd, u32 va, u32 vb) { +void Compiler::VAVGUH(u32 vd, u32 va, u32 vb) { auto va_v8i16 = GetVrAsIntVec(va, 16); auto vb_v8i16 = GetVrAsIntVec(vb, 16); auto avg_v8i16 = m_ir_builder->CreateCall2(Intrinsic::getDeclaration(m_module, Intrinsic::x86_sse2_pavg_w), va_v8i16, vb_v8i16); SetVr(vd, avg_v8i16); } -void PPULLVMRecompiler::VAVGUW(u32 vd, u32 va, u32 vb) { +void Compiler::VAVGUW(u32 vd, u32 va, u32 vb) { auto va_v4i32 = GetVrAsIntVec(va, 32); auto vb_v4i32 = GetVrAsIntVec(vb, 32); auto va_v4i64 = m_ir_builder->CreateZExt(va_v4i32, VectorType::get(m_ir_builder->getInt64Ty(), 4)); @@ -448,7 +516,7 @@ void PPULLVMRecompiler::VAVGUW(u32 vd, u32 va, u32 vb) { SetVr(vd, avg_v4i32); } -void PPULLVMRecompiler::VCFSX(u32 vd, u32 uimm5, u32 vb) { +void Compiler::VCFSX(u32 vd, u32 uimm5, u32 vb) { auto vb_v4i32 = GetVrAsIntVec(vb, 32); auto res_v4f32 = m_ir_builder->CreateSIToFP(vb_v4i32, VectorType::get(m_ir_builder->getFloatTy(), 4)); @@ -460,7 +528,7 @@ void PPULLVMRecompiler::VCFSX(u32 vd, u32 uimm5, u32 vb) { SetVr(vd, res_v4f32); } -void PPULLVMRecompiler::VCFUX(u32 vd, u32 uimm5, u32 vb) { +void Compiler::VCFUX(u32 vd, u32 uimm5, u32 vb) { auto vb_v4i32 = GetVrAsIntVec(vb, 32); auto res_v4f32 = m_ir_builder->CreateUIToFP(vb_v4i32, VectorType::get(m_ir_builder->getFloatTy(), 4)); @@ -472,7 +540,7 @@ void PPULLVMRecompiler::VCFUX(u32 vd, u32 uimm5, u32 vb) { SetVr(vd, res_v4f32); } -void PPULLVMRecompiler::VCMPBFP(u32 vd, u32 va, u32 vb) { +void Compiler::VCMPBFP(u32 vd, u32 va, u32 vb) { auto va_v4f32 = GetVrAsFloatVec(va); auto vb_v4f32 = GetVrAsFloatVec(vb); auto cmp_gt_v4i1 = m_ir_builder->CreateFCmpOGT(va_v4f32, vb_v4f32); @@ -488,7 +556,7 @@ void PPULLVMRecompiler::VCMPBFP(u32 vd, u32 va, u32 vb) { // TODO: Implement NJ mode } -void PPULLVMRecompiler::VCMPBFP_(u32 vd, u32 va, u32 vb) { +void Compiler::VCMPBFP_(u32 vd, u32 va, u32 vb) { VCMPBFP(vd, va, vb); auto vd_v16i8 = GetVrAsIntVec(vd, 8); @@ -500,7 +568,7 @@ void PPULLVMRecompiler::VCMPBFP_(u32 vd, u32 va, u32 vb) { SetCrField(6, nullptr, nullptr, cmp_i1, nullptr); } -void PPULLVMRecompiler::VCMPEQFP(u32 vd, u32 va, u32 vb) { +void Compiler::VCMPEQFP(u32 vd, u32 va, u32 vb) { auto va_v4f32 = GetVrAsFloatVec(va); auto vb_v4f32 = GetVrAsFloatVec(vb); auto cmp_v4i1 = m_ir_builder->CreateFCmpOEQ(va_v4f32, vb_v4f32); @@ -508,12 +576,12 @@ void PPULLVMRecompiler::VCMPEQFP(u32 vd, u32 va, u32 vb) { SetVr(vd, cmp_v4i32); } -void PPULLVMRecompiler::VCMPEQFP_(u32 vd, u32 va, u32 vb) { +void Compiler::VCMPEQFP_(u32 vd, u32 va, u32 vb) { VCMPEQFP(vd, va, vb); SetCr6AfterVectorCompare(vd); } -void PPULLVMRecompiler::VCMPEQUB(u32 vd, u32 va, u32 vb) { +void Compiler::VCMPEQUB(u32 vd, u32 va, u32 vb) { auto va_v16i8 = GetVrAsIntVec(va, 8); auto vb_v16i8 = GetVrAsIntVec(vb, 8); auto cmp_v16i1 = m_ir_builder->CreateICmpEQ(va_v16i8, vb_v16i8); @@ -521,12 +589,12 @@ void PPULLVMRecompiler::VCMPEQUB(u32 vd, u32 va, u32 vb) { SetVr(vd, cmp_v16i8); } -void PPULLVMRecompiler::VCMPEQUB_(u32 vd, u32 va, u32 vb) { +void Compiler::VCMPEQUB_(u32 vd, u32 va, u32 vb) { VCMPEQUB(vd, va, vb); SetCr6AfterVectorCompare(vd); } -void PPULLVMRecompiler::VCMPEQUH(u32 vd, u32 va, u32 vb) { +void Compiler::VCMPEQUH(u32 vd, u32 va, u32 vb) { auto va_v8i16 = GetVrAsIntVec(va, 16); auto vb_v8i16 = GetVrAsIntVec(vb, 16); auto cmp_v8i1 = m_ir_builder->CreateICmpEQ(va_v8i16, vb_v8i16); @@ -534,12 +602,12 @@ void PPULLVMRecompiler::VCMPEQUH(u32 vd, u32 va, u32 vb) { SetVr(vd, cmp_v8i16); } -void PPULLVMRecompiler::VCMPEQUH_(u32 vd, u32 va, u32 vb) { +void Compiler::VCMPEQUH_(u32 vd, u32 va, u32 vb) { VCMPEQUH(vd, va, vb); SetCr6AfterVectorCompare(vd); } -void PPULLVMRecompiler::VCMPEQUW(u32 vd, u32 va, u32 vb) { +void Compiler::VCMPEQUW(u32 vd, u32 va, u32 vb) { auto va_v4i32 = GetVrAsIntVec(va, 32); auto vb_v4i32 = GetVrAsIntVec(vb, 32); auto cmp_v4i1 = m_ir_builder->CreateICmpEQ(va_v4i32, vb_v4i32); @@ -547,12 +615,12 @@ void PPULLVMRecompiler::VCMPEQUW(u32 vd, u32 va, u32 vb) { SetVr(vd, cmp_v4i32); } -void PPULLVMRecompiler::VCMPEQUW_(u32 vd, u32 va, u32 vb) { +void Compiler::VCMPEQUW_(u32 vd, u32 va, u32 vb) { VCMPEQUW(vd, va, vb); SetCr6AfterVectorCompare(vd); } -void PPULLVMRecompiler::VCMPGEFP(u32 vd, u32 va, u32 vb) { +void Compiler::VCMPGEFP(u32 vd, u32 va, u32 vb) { auto va_v4f32 = GetVrAsFloatVec(va); auto vb_v4f32 = GetVrAsFloatVec(vb); auto cmp_v4i1 = m_ir_builder->CreateFCmpOGE(va_v4f32, vb_v4f32); @@ -560,12 +628,12 @@ void PPULLVMRecompiler::VCMPGEFP(u32 vd, u32 va, u32 vb) { SetVr(vd, cmp_v4i32); } -void PPULLVMRecompiler::VCMPGEFP_(u32 vd, u32 va, u32 vb) { +void Compiler::VCMPGEFP_(u32 vd, u32 va, u32 vb) { VCMPGEFP(vd, va, vb); SetCr6AfterVectorCompare(vd); } -void PPULLVMRecompiler::VCMPGTFP(u32 vd, u32 va, u32 vb) { +void Compiler::VCMPGTFP(u32 vd, u32 va, u32 vb) { auto va_v4f32 = GetVrAsFloatVec(va); auto vb_v4f32 = GetVrAsFloatVec(vb); auto cmp_v4i1 = m_ir_builder->CreateFCmpOGT(va_v4f32, vb_v4f32); @@ -573,12 +641,12 @@ void PPULLVMRecompiler::VCMPGTFP(u32 vd, u32 va, u32 vb) { SetVr(vd, cmp_v4i32); } -void PPULLVMRecompiler::VCMPGTFP_(u32 vd, u32 va, u32 vb) { +void Compiler::VCMPGTFP_(u32 vd, u32 va, u32 vb) { VCMPGTFP(vd, va, vb); SetCr6AfterVectorCompare(vd); } -void PPULLVMRecompiler::VCMPGTSB(u32 vd, u32 va, u32 vb) { +void Compiler::VCMPGTSB(u32 vd, u32 va, u32 vb) { auto va_v16i8 = GetVrAsIntVec(va, 8); auto vb_v16i8 = GetVrAsIntVec(vb, 8); auto cmp_v16i1 = m_ir_builder->CreateICmpSGT(va_v16i8, vb_v16i8); @@ -586,12 +654,12 @@ void PPULLVMRecompiler::VCMPGTSB(u32 vd, u32 va, u32 vb) { SetVr(vd, cmp_v16i8); } -void PPULLVMRecompiler::VCMPGTSB_(u32 vd, u32 va, u32 vb) { +void Compiler::VCMPGTSB_(u32 vd, u32 va, u32 vb) { VCMPGTSB(vd, va, vb); SetCr6AfterVectorCompare(vd); } -void PPULLVMRecompiler::VCMPGTSH(u32 vd, u32 va, u32 vb) { +void Compiler::VCMPGTSH(u32 vd, u32 va, u32 vb) { auto va_v8i16 = GetVrAsIntVec(va, 16); auto vb_v8i16 = GetVrAsIntVec(vb, 16); auto cmp_v8i1 = m_ir_builder->CreateICmpSGT(va_v8i16, vb_v8i16); @@ -599,12 +667,12 @@ void PPULLVMRecompiler::VCMPGTSH(u32 vd, u32 va, u32 vb) { SetVr(vd, cmp_v8i16); } -void PPULLVMRecompiler::VCMPGTSH_(u32 vd, u32 va, u32 vb) { +void Compiler::VCMPGTSH_(u32 vd, u32 va, u32 vb) { VCMPGTSH(vd, va, vb); SetCr6AfterVectorCompare(vd); } -void PPULLVMRecompiler::VCMPGTSW(u32 vd, u32 va, u32 vb) { +void Compiler::VCMPGTSW(u32 vd, u32 va, u32 vb) { auto va_v4i32 = GetVrAsIntVec(va, 32); auto vb_v4i32 = GetVrAsIntVec(vb, 32); auto cmp_v4i1 = m_ir_builder->CreateICmpSGT(va_v4i32, vb_v4i32); @@ -612,12 +680,12 @@ void PPULLVMRecompiler::VCMPGTSW(u32 vd, u32 va, u32 vb) { SetVr(vd, cmp_v4i32); } -void PPULLVMRecompiler::VCMPGTSW_(u32 vd, u32 va, u32 vb) { +void Compiler::VCMPGTSW_(u32 vd, u32 va, u32 vb) { VCMPGTSW(vd, va, vb); SetCr6AfterVectorCompare(vd); } -void PPULLVMRecompiler::VCMPGTUB(u32 vd, u32 va, u32 vb) { +void Compiler::VCMPGTUB(u32 vd, u32 va, u32 vb) { auto va_v16i8 = GetVrAsIntVec(va, 8); auto vb_v16i8 = GetVrAsIntVec(vb, 8); auto cmp_v16i1 = m_ir_builder->CreateICmpUGT(va_v16i8, vb_v16i8); @@ -625,12 +693,12 @@ void PPULLVMRecompiler::VCMPGTUB(u32 vd, u32 va, u32 vb) { SetVr(vd, cmp_v16i8); } -void PPULLVMRecompiler::VCMPGTUB_(u32 vd, u32 va, u32 vb) { +void Compiler::VCMPGTUB_(u32 vd, u32 va, u32 vb) { VCMPGTUB(vd, va, vb); SetCr6AfterVectorCompare(vd); } -void PPULLVMRecompiler::VCMPGTUH(u32 vd, u32 va, u32 vb) { +void Compiler::VCMPGTUH(u32 vd, u32 va, u32 vb) { auto va_v8i16 = GetVrAsIntVec(va, 16); auto vb_v8i16 = GetVrAsIntVec(vb, 16); auto cmp_v8i1 = m_ir_builder->CreateICmpUGT(va_v8i16, vb_v8i16); @@ -638,12 +706,12 @@ void PPULLVMRecompiler::VCMPGTUH(u32 vd, u32 va, u32 vb) { SetVr(vd, cmp_v8i16); } -void PPULLVMRecompiler::VCMPGTUH_(u32 vd, u32 va, u32 vb) { +void Compiler::VCMPGTUH_(u32 vd, u32 va, u32 vb) { VCMPGTUH(vd, va, vb); SetCr6AfterVectorCompare(vd); } -void PPULLVMRecompiler::VCMPGTUW(u32 vd, u32 va, u32 vb) { +void Compiler::VCMPGTUW(u32 vd, u32 va, u32 vb) { auto va_v4i32 = GetVrAsIntVec(va, 32); auto vb_v4i32 = GetVrAsIntVec(vb, 32); auto cmp_v4i1 = m_ir_builder->CreateICmpUGT(va_v4i32, vb_v4i32); @@ -651,28 +719,28 @@ void PPULLVMRecompiler::VCMPGTUW(u32 vd, u32 va, u32 vb) { SetVr(vd, cmp_v4i32); } -void PPULLVMRecompiler::VCMPGTUW_(u32 vd, u32 va, u32 vb) { +void Compiler::VCMPGTUW_(u32 vd, u32 va, u32 vb) { VCMPGTUW(vd, va, vb); SetCr6AfterVectorCompare(vd); } -void PPULLVMRecompiler::VCTSXS(u32 vd, u32 uimm5, u32 vb) { +void Compiler::VCTSXS(u32 vd, u32 uimm5, u32 vb) { InterpreterCall("VCTSXS", &PPUInterpreter::VCTSXS, vd, uimm5, vb); } -void PPULLVMRecompiler::VCTUXS(u32 vd, u32 uimm5, u32 vb) { +void Compiler::VCTUXS(u32 vd, u32 uimm5, u32 vb) { InterpreterCall("VCTUXS", &PPUInterpreter::VCTUXS, vd, uimm5, vb); } -void PPULLVMRecompiler::VEXPTEFP(u32 vd, u32 vb) { +void Compiler::VEXPTEFP(u32 vd, u32 vb) { InterpreterCall("VEXPTEFP", &PPUInterpreter::VEXPTEFP, vd, vb); } -void PPULLVMRecompiler::VLOGEFP(u32 vd, u32 vb) { +void Compiler::VLOGEFP(u32 vd, u32 vb) { InterpreterCall("VLOGEFP", &PPUInterpreter::VLOGEFP, vd, vb); } -void PPULLVMRecompiler::VMADDFP(u32 vd, u32 va, u32 vc, u32 vb) { +void Compiler::VMADDFP(u32 vd, u32 va, u32 vc, u32 vb) { auto va_v4f32 = GetVrAsFloatVec(va); auto vb_v4f32 = GetVrAsFloatVec(vb); auto vc_v4f32 = GetVrAsFloatVec(vc); @@ -680,117 +748,117 @@ void PPULLVMRecompiler::VMADDFP(u32 vd, u32 va, u32 vc, u32 vb) { SetVr(vd, res_v4f32); } -void PPULLVMRecompiler::VMAXFP(u32 vd, u32 va, u32 vb) { +void Compiler::VMAXFP(u32 vd, u32 va, u32 vb) { auto va_v4f32 = GetVrAsFloatVec(va); auto vb_v4f32 = GetVrAsFloatVec(vb); auto res_v4f32 = m_ir_builder->CreateCall2(Intrinsic::getDeclaration(m_module, Intrinsic::x86_sse_max_ps), va_v4f32, vb_v4f32); SetVr(vd, res_v4f32); } -void PPULLVMRecompiler::VMAXSB(u32 vd, u32 va, u32 vb) { +void Compiler::VMAXSB(u32 vd, u32 va, u32 vb) { auto va_v16i8 = GetVrAsIntVec(va, 8); auto vb_v16i8 = GetVrAsIntVec(vb, 8); auto res_v16i8 = m_ir_builder->CreateCall2(Intrinsic::getDeclaration(m_module, Intrinsic::x86_sse41_pmaxsb), va_v16i8, vb_v16i8); SetVr(vd, res_v16i8); } -void PPULLVMRecompiler::VMAXSH(u32 vd, u32 va, u32 vb) { +void Compiler::VMAXSH(u32 vd, u32 va, u32 vb) { auto va_v8i16 = GetVrAsIntVec(va, 16); auto vb_v8i16 = GetVrAsIntVec(vb, 16); auto res_v8i16 = m_ir_builder->CreateCall2(Intrinsic::getDeclaration(m_module, Intrinsic::x86_sse2_pmaxs_w), va_v8i16, vb_v8i16); SetVr(vd, res_v8i16); } -void PPULLVMRecompiler::VMAXSW(u32 vd, u32 va, u32 vb) { +void Compiler::VMAXSW(u32 vd, u32 va, u32 vb) { auto va_v4i32 = GetVrAsIntVec(va, 32); auto vb_v4i32 = GetVrAsIntVec(vb, 32); auto res_v4i32 = m_ir_builder->CreateCall2(Intrinsic::getDeclaration(m_module, Intrinsic::x86_sse41_pmaxsd), va_v4i32, vb_v4i32); SetVr(vd, res_v4i32); } -void PPULLVMRecompiler::VMAXUB(u32 vd, u32 va, u32 vb) { +void Compiler::VMAXUB(u32 vd, u32 va, u32 vb) { auto va_v16i8 = GetVrAsIntVec(va, 8); auto vb_v16i8 = GetVrAsIntVec(vb, 8); auto res_v16i8 = m_ir_builder->CreateCall2(Intrinsic::getDeclaration(m_module, Intrinsic::x86_sse2_pmaxu_b), va_v16i8, vb_v16i8); SetVr(vd, res_v16i8); } -void PPULLVMRecompiler::VMAXUH(u32 vd, u32 va, u32 vb) { +void Compiler::VMAXUH(u32 vd, u32 va, u32 vb) { auto va_v8i16 = GetVrAsIntVec(va, 16); auto vb_v8i16 = GetVrAsIntVec(vb, 16); auto res_v8i16 = m_ir_builder->CreateCall2(Intrinsic::getDeclaration(m_module, Intrinsic::x86_sse41_pmaxuw), va_v8i16, vb_v8i16); SetVr(vd, res_v8i16); } -void PPULLVMRecompiler::VMAXUW(u32 vd, u32 va, u32 vb) { +void Compiler::VMAXUW(u32 vd, u32 va, u32 vb) { auto va_v4i32 = GetVrAsIntVec(va, 32); auto vb_v4i32 = GetVrAsIntVec(vb, 32); auto res_v4i32 = m_ir_builder->CreateCall2(Intrinsic::getDeclaration(m_module, Intrinsic::x86_sse41_pmaxud), va_v4i32, vb_v4i32); SetVr(vd, res_v4i32); } -void PPULLVMRecompiler::VMHADDSHS(u32 vd, u32 va, u32 vb, u32 vc) { +void Compiler::VMHADDSHS(u32 vd, u32 va, u32 vb, u32 vc) { InterpreterCall("VMHADDSHS", &PPUInterpreter::VMHADDSHS, vd, va, vb, vc); } -void PPULLVMRecompiler::VMHRADDSHS(u32 vd, u32 va, u32 vb, u32 vc) { +void Compiler::VMHRADDSHS(u32 vd, u32 va, u32 vb, u32 vc) { InterpreterCall("VMHRADDSHS", &PPUInterpreter::VMHRADDSHS, vd, va, vb, vc); } -void PPULLVMRecompiler::VMINFP(u32 vd, u32 va, u32 vb) { +void Compiler::VMINFP(u32 vd, u32 va, u32 vb) { auto va_v4f32 = GetVrAsFloatVec(va); auto vb_v4f32 = GetVrAsFloatVec(vb); auto res_v4f32 = m_ir_builder->CreateCall2(Intrinsic::getDeclaration(m_module, Intrinsic::x86_sse_min_ps), va_v4f32, vb_v4f32); SetVr(vd, res_v4f32); } -void PPULLVMRecompiler::VMINSB(u32 vd, u32 va, u32 vb) { +void Compiler::VMINSB(u32 vd, u32 va, u32 vb) { auto va_v16i8 = GetVrAsIntVec(va, 8); auto vb_v16i8 = GetVrAsIntVec(vb, 8); auto res_v16i8 = m_ir_builder->CreateCall2(Intrinsic::getDeclaration(m_module, Intrinsic::x86_sse41_pminsb), va_v16i8, vb_v16i8); SetVr(vd, res_v16i8); } -void PPULLVMRecompiler::VMINSH(u32 vd, u32 va, u32 vb) { +void Compiler::VMINSH(u32 vd, u32 va, u32 vb) { auto va_v8i16 = GetVrAsIntVec(va, 16); auto vb_v8i16 = GetVrAsIntVec(vb, 16); auto res_v8i16 = m_ir_builder->CreateCall2(Intrinsic::getDeclaration(m_module, Intrinsic::x86_sse2_pmins_w), va_v8i16, vb_v8i16); SetVr(vd, res_v8i16); } -void PPULLVMRecompiler::VMINSW(u32 vd, u32 va, u32 vb) { +void Compiler::VMINSW(u32 vd, u32 va, u32 vb) { auto va_v4i32 = GetVrAsIntVec(va, 32); auto vb_v4i32 = GetVrAsIntVec(vb, 32); auto res_v4i32 = m_ir_builder->CreateCall2(Intrinsic::getDeclaration(m_module, Intrinsic::x86_sse41_pminsd), va_v4i32, vb_v4i32); SetVr(vd, res_v4i32); } -void PPULLVMRecompiler::VMINUB(u32 vd, u32 va, u32 vb) { +void Compiler::VMINUB(u32 vd, u32 va, u32 vb) { auto va_v16i8 = GetVrAsIntVec(va, 8); auto vb_v16i8 = GetVrAsIntVec(vb, 8); auto res_v16i8 = m_ir_builder->CreateCall2(Intrinsic::getDeclaration(m_module, Intrinsic::x86_sse2_pminu_b), va_v16i8, vb_v16i8); SetVr(vd, res_v16i8); } -void PPULLVMRecompiler::VMINUH(u32 vd, u32 va, u32 vb) { +void Compiler::VMINUH(u32 vd, u32 va, u32 vb) { auto va_v8i16 = GetVrAsIntVec(va, 16); auto vb_v8i16 = GetVrAsIntVec(vb, 16); auto res_v8i16 = m_ir_builder->CreateCall2(Intrinsic::getDeclaration(m_module, Intrinsic::x86_sse41_pminuw), va_v8i16, vb_v8i16); SetVr(vd, res_v8i16); } -void PPULLVMRecompiler::VMINUW(u32 vd, u32 va, u32 vb) { +void Compiler::VMINUW(u32 vd, u32 va, u32 vb) { auto va_v4i32 = GetVrAsIntVec(va, 32); auto vb_v4i32 = GetVrAsIntVec(vb, 32); auto res_v4i32 = m_ir_builder->CreateCall2(Intrinsic::getDeclaration(m_module, Intrinsic::x86_sse41_pminud), va_v4i32, vb_v4i32); SetVr(vd, res_v4i32); } -void PPULLVMRecompiler::VMLADDUHM(u32 vd, u32 va, u32 vb, u32 vc) { +void Compiler::VMLADDUHM(u32 vd, u32 va, u32 vb, u32 vc) { InterpreterCall("VMLADDUHM", &PPUInterpreter::VMLADDUHM, vd, va, vb, vc); } -void PPULLVMRecompiler::VMRGHB(u32 vd, u32 va, u32 vb) { +void Compiler::VMRGHB(u32 vd, u32 va, u32 vb) { auto va_v16i8 = GetVrAsIntVec(va, 8); auto vb_v16i8 = GetVrAsIntVec(vb, 8); u32 mask_v16i32[16] = {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15}; @@ -798,7 +866,7 @@ void PPULLVMRecompiler::VMRGHB(u32 vd, u32 va, u32 vb) { SetVr(vd, vd_v16i8); } -void PPULLVMRecompiler::VMRGHH(u32 vd, u32 va, u32 vb) { +void Compiler::VMRGHH(u32 vd, u32 va, u32 vb) { auto va_v8i16 = GetVrAsIntVec(va, 16); auto vb_v8i16 = GetVrAsIntVec(vb, 16); u32 mask_v8i32[8] = {12, 4, 13, 5, 14, 6, 15, 7}; @@ -806,7 +874,7 @@ void PPULLVMRecompiler::VMRGHH(u32 vd, u32 va, u32 vb) { SetVr(vd, vd_v8i16); } -void PPULLVMRecompiler::VMRGHW(u32 vd, u32 va, u32 vb) { +void Compiler::VMRGHW(u32 vd, u32 va, u32 vb) { auto va_v4i32 = GetVrAsIntVec(va, 32); auto vb_v4i32 = GetVrAsIntVec(vb, 32); u32 mask_v4i32[4] = {6, 2, 7, 3}; @@ -814,7 +882,7 @@ void PPULLVMRecompiler::VMRGHW(u32 vd, u32 va, u32 vb) { SetVr(vd, vd_v4i32); } -void PPULLVMRecompiler::VMRGLB(u32 vd, u32 va, u32 vb) { +void Compiler::VMRGLB(u32 vd, u32 va, u32 vb) { auto va_v16i8 = GetVrAsIntVec(va, 8); auto vb_v16i8 = GetVrAsIntVec(vb, 8); u32 mask_v16i32[16] = {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7}; @@ -822,7 +890,7 @@ void PPULLVMRecompiler::VMRGLB(u32 vd, u32 va, u32 vb) { SetVr(vd, vd_v16i8); } -void PPULLVMRecompiler::VMRGLH(u32 vd, u32 va, u32 vb) { +void Compiler::VMRGLH(u32 vd, u32 va, u32 vb) { auto va_v8i16 = GetVrAsIntVec(va, 16); auto vb_v8i16 = GetVrAsIntVec(vb, 16); u32 mask_v8i32[8] = {8, 0, 9, 1, 10, 2, 11, 3}; @@ -830,7 +898,7 @@ void PPULLVMRecompiler::VMRGLH(u32 vd, u32 va, u32 vb) { SetVr(vd, vd_v8i16); } -void PPULLVMRecompiler::VMRGLW(u32 vd, u32 va, u32 vb) { +void Compiler::VMRGLW(u32 vd, u32 va, u32 vb) { auto va_v4i32 = GetVrAsIntVec(va, 32); auto vb_v4i32 = GetVrAsIntVec(vb, 32); u32 mask_v4i32[4] = {4, 0, 5, 1}; @@ -838,7 +906,7 @@ void PPULLVMRecompiler::VMRGLW(u32 vd, u32 va, u32 vb) { SetVr(vd, vd_v4i32); } -void PPULLVMRecompiler::VMSUMMBM(u32 vd, u32 va, u32 vb, u32 vc) { +void Compiler::VMSUMMBM(u32 vd, u32 va, u32 vb, u32 vc) { auto va_v16i8 = GetVrAsIntVec(va, 8); auto vb_v16i8 = GetVrAsIntVec(vb, 8); auto va_v16i16 = m_ir_builder->CreateSExt(va_v16i8, VectorType::get(m_ir_builder->getInt16Ty(), 16)); @@ -870,7 +938,7 @@ void PPULLVMRecompiler::VMSUMMBM(u32 vd, u32 va, u32 vb, u32 vc) { // TODO: Try to optimize with horizontal add } -void PPULLVMRecompiler::VMSUMSHM(u32 vd, u32 va, u32 vb, u32 vc) { +void Compiler::VMSUMSHM(u32 vd, u32 va, u32 vb, u32 vc) { auto va_v8i16 = GetVrAsIntVec(va, 16); auto vb_v8i16 = GetVrAsIntVec(vb, 16); auto vc_v4i32 = GetVrAsIntVec(vc, 32); @@ -879,11 +947,11 @@ void PPULLVMRecompiler::VMSUMSHM(u32 vd, u32 va, u32 vb, u32 vc) { SetVr(vd, res_v4i32); } -void PPULLVMRecompiler::VMSUMSHS(u32 vd, u32 va, u32 vb, u32 vc) { +void Compiler::VMSUMSHS(u32 vd, u32 va, u32 vb, u32 vc) { InterpreterCall("VMSUMSHS", &PPUInterpreter::VMSUMSHS, vd, va, vb, vc); } -void PPULLVMRecompiler::VMSUMUBM(u32 vd, u32 va, u32 vb, u32 vc) { +void Compiler::VMSUMUBM(u32 vd, u32 va, u32 vb, u32 vc) { auto va_v16i8 = GetVrAsIntVec(va, 8); auto vb_v16i8 = GetVrAsIntVec(vb, 8); auto va_v16i16 = m_ir_builder->CreateZExt(va_v16i8, VectorType::get(m_ir_builder->getInt16Ty(), 16)); @@ -915,7 +983,7 @@ void PPULLVMRecompiler::VMSUMUBM(u32 vd, u32 va, u32 vb, u32 vc) { // TODO: Try to optimize with horizontal add } -void PPULLVMRecompiler::VMSUMUHM(u32 vd, u32 va, u32 vb, u32 vc) { +void Compiler::VMSUMUHM(u32 vd, u32 va, u32 vb, u32 vc) { auto va_v8i16 = GetVrAsIntVec(va, 16); auto vb_v8i16 = GetVrAsIntVec(vb, 16); auto va_v8i32 = m_ir_builder->CreateZExt(va_v8i16, VectorType::get(m_ir_builder->getInt32Ty(), 8)); @@ -937,43 +1005,43 @@ void PPULLVMRecompiler::VMSUMUHM(u32 vd, u32 va, u32 vb, u32 vc) { // TODO: Try to optimize with horizontal add } -void PPULLVMRecompiler::VMSUMUHS(u32 vd, u32 va, u32 vb, u32 vc) { +void Compiler::VMSUMUHS(u32 vd, u32 va, u32 vb, u32 vc) { InterpreterCall("VMSUMUHS", &PPUInterpreter::VMSUMUHS, vd, va, vb, vc); } -void PPULLVMRecompiler::VMULESB(u32 vd, u32 va, u32 vb) { +void Compiler::VMULESB(u32 vd, u32 va, u32 vb) { InterpreterCall("VMULESB", &PPUInterpreter::VMULESB, vd, va, vb); } -void PPULLVMRecompiler::VMULESH(u32 vd, u32 va, u32 vb) { +void Compiler::VMULESH(u32 vd, u32 va, u32 vb) { InterpreterCall("VMULESH", &PPUInterpreter::VMULESH, vd, va, vb); } -void PPULLVMRecompiler::VMULEUB(u32 vd, u32 va, u32 vb) { +void Compiler::VMULEUB(u32 vd, u32 va, u32 vb) { InterpreterCall("VMULEUB", &PPUInterpreter::VMULEUB, vd, va, vb); } -void PPULLVMRecompiler::VMULEUH(u32 vd, u32 va, u32 vb) { +void Compiler::VMULEUH(u32 vd, u32 va, u32 vb) { InterpreterCall("VMULEUH", &PPUInterpreter::VMULEUH, vd, va, vb); } -void PPULLVMRecompiler::VMULOSB(u32 vd, u32 va, u32 vb) { +void Compiler::VMULOSB(u32 vd, u32 va, u32 vb) { InterpreterCall("VMULOSB", &PPUInterpreter::VMULOSB, vd, va, vb); } -void PPULLVMRecompiler::VMULOSH(u32 vd, u32 va, u32 vb) { +void Compiler::VMULOSH(u32 vd, u32 va, u32 vb) { InterpreterCall("VMULOSH", &PPUInterpreter::VMULOSH, vd, va, vb); } -void PPULLVMRecompiler::VMULOUB(u32 vd, u32 va, u32 vb) { +void Compiler::VMULOUB(u32 vd, u32 va, u32 vb) { InterpreterCall("VMULOUB", &PPUInterpreter::VMULOUB, vd, va, vb); } -void PPULLVMRecompiler::VMULOUH(u32 vd, u32 va, u32 vb) { +void Compiler::VMULOUH(u32 vd, u32 va, u32 vb) { InterpreterCall("VMULOUH", &PPUInterpreter::VMULOUH, vd, va, vb); } -void PPULLVMRecompiler::VNMSUBFP(u32 vd, u32 va, u32 vc, u32 vb) { +void Compiler::VNMSUBFP(u32 vd, u32 va, u32 vc, u32 vb) { auto va_v4f32 = GetVrAsFloatVec(va); auto vb_v4f32 = GetVrAsFloatVec(vb); auto vc_v4f32 = GetVrAsFloatVec(vc); @@ -982,7 +1050,7 @@ void PPULLVMRecompiler::VNMSUBFP(u32 vd, u32 va, u32 vc, u32 vb) { SetVr(vd, res_v4f32); } -void PPULLVMRecompiler::VNOR(u32 vd, u32 va, u32 vb) { +void Compiler::VNOR(u32 vd, u32 va, u32 vb) { auto va_v8i16 = GetVrAsIntVec(va, 16); auto vb_v8i16 = GetVrAsIntVec(vb, 16); auto res_v8i16 = m_ir_builder->CreateOr(va_v8i16, vb_v8i16); @@ -990,14 +1058,14 @@ void PPULLVMRecompiler::VNOR(u32 vd, u32 va, u32 vb) { SetVr(vd, res_v8i16); } -void PPULLVMRecompiler::VOR(u32 vd, u32 va, u32 vb) { +void Compiler::VOR(u32 vd, u32 va, u32 vb) { auto va_v8i16 = GetVrAsIntVec(va, 16); auto vb_v8i16 = GetVrAsIntVec(vb, 16); auto res_v8i16 = m_ir_builder->CreateOr(va_v8i16, vb_v8i16); SetVr(vd, res_v8i16); } -void PPULLVMRecompiler::VPERM(u32 vd, u32 va, u32 vb, u32 vc) { +void Compiler::VPERM(u32 vd, u32 va, u32 vb, u32 vc) { auto va_v16i8 = GetVrAsIntVec(va, 8); auto vb_v16i8 = GetVrAsIntVec(vb, 8); auto vc_v16i8 = GetVrAsIntVec(vc, 8); @@ -1019,81 +1087,81 @@ void PPULLVMRecompiler::VPERM(u32 vd, u32 va, u32 vb, u32 vc) { SetVr(vd, res_v16i8); } -void PPULLVMRecompiler::VPKPX(u32 vd, u32 va, u32 vb) { +void Compiler::VPKPX(u32 vd, u32 va, u32 vb) { InterpreterCall("VPKPX", &PPUInterpreter::VPKPX, vd, va, vb); } -void PPULLVMRecompiler::VPKSHSS(u32 vd, u32 va, u32 vb) { +void Compiler::VPKSHSS(u32 vd, u32 va, u32 vb) { InterpreterCall("VPKSHSS", &PPUInterpreter::VPKSHSS, vd, va, vb); } -void PPULLVMRecompiler::VPKSHUS(u32 vd, u32 va, u32 vb) { +void Compiler::VPKSHUS(u32 vd, u32 va, u32 vb) { InterpreterCall("VPKSHUS", &PPUInterpreter::VPKSHUS, vd, va, vb); } -void PPULLVMRecompiler::VPKSWSS(u32 vd, u32 va, u32 vb) { +void Compiler::VPKSWSS(u32 vd, u32 va, u32 vb) { InterpreterCall("VPKSWSS", &PPUInterpreter::VPKSWSS, vd, va, vb); } -void PPULLVMRecompiler::VPKSWUS(u32 vd, u32 va, u32 vb) { +void Compiler::VPKSWUS(u32 vd, u32 va, u32 vb) { InterpreterCall("VPKSWUS", &PPUInterpreter::VPKSWUS, vd, va, vb); } -void PPULLVMRecompiler::VPKUHUM(u32 vd, u32 va, u32 vb) { +void Compiler::VPKUHUM(u32 vd, u32 va, u32 vb) { InterpreterCall("VPKUHUM", &PPUInterpreter::VPKUHUM, vd, va, vb); } -void PPULLVMRecompiler::VPKUHUS(u32 vd, u32 va, u32 vb) { +void Compiler::VPKUHUS(u32 vd, u32 va, u32 vb) { InterpreterCall("VPKUHUS", &PPUInterpreter::VPKUHUS, vd, va, vb); } -void PPULLVMRecompiler::VPKUWUM(u32 vd, u32 va, u32 vb) { +void Compiler::VPKUWUM(u32 vd, u32 va, u32 vb) { InterpreterCall("VPKUWUM", &PPUInterpreter::VPKUWUM, vd, va, vb); } -void PPULLVMRecompiler::VPKUWUS(u32 vd, u32 va, u32 vb) { +void Compiler::VPKUWUS(u32 vd, u32 va, u32 vb) { InterpreterCall("VPKUWUS", &PPUInterpreter::VPKUWUS, vd, va, vb); } -void PPULLVMRecompiler::VREFP(u32 vd, u32 vb) { +void Compiler::VREFP(u32 vd, u32 vb) { auto vb_v4f32 = GetVrAsFloatVec(vb); auto res_v4f32 = m_ir_builder->CreateCall(Intrinsic::getDeclaration(m_module, Intrinsic::x86_sse_rcp_ps), vb_v4f32); SetVr(vd, res_v4f32); } -void PPULLVMRecompiler::VRFIM(u32 vd, u32 vb) { +void Compiler::VRFIM(u32 vd, u32 vb) { InterpreterCall("VRFIM", &PPUInterpreter::VRFIM, vd, vb); } -void PPULLVMRecompiler::VRFIN(u32 vd, u32 vb) { +void Compiler::VRFIN(u32 vd, u32 vb) { InterpreterCall("VRFIN", &PPUInterpreter::VRFIN, vd, vb); } -void PPULLVMRecompiler::VRFIP(u32 vd, u32 vb) { +void Compiler::VRFIP(u32 vd, u32 vb) { InterpreterCall("VRFIP", &PPUInterpreter::VRFIP, vd, vb); } -void PPULLVMRecompiler::VRFIZ(u32 vd, u32 vb) { +void Compiler::VRFIZ(u32 vd, u32 vb) { InterpreterCall("VRFIZ", &PPUInterpreter::VRFIZ, vd, vb); } -void PPULLVMRecompiler::VRLB(u32 vd, u32 va, u32 vb) { +void Compiler::VRLB(u32 vd, u32 va, u32 vb) { InterpreterCall("VRLB", &PPUInterpreter::VRLB, vd, va, vb); } -void PPULLVMRecompiler::VRLH(u32 vd, u32 va, u32 vb) { +void Compiler::VRLH(u32 vd, u32 va, u32 vb) { InterpreterCall("VRLH", &PPUInterpreter::VRLH, vd, va, vb); } -void PPULLVMRecompiler::VRLW(u32 vd, u32 va, u32 vb) { +void Compiler::VRLW(u32 vd, u32 va, u32 vb) { InterpreterCall("VRLW", &PPUInterpreter::VRLW, vd, va, vb); } -void PPULLVMRecompiler::VRSQRTEFP(u32 vd, u32 vb) { +void Compiler::VRSQRTEFP(u32 vd, u32 vb) { InterpreterCall("VRSQRTEFP", &PPUInterpreter::VRSQRTEFP, vd, vb); } -void PPULLVMRecompiler::VSEL(u32 vd, u32 va, u32 vb, u32 vc) { +void Compiler::VSEL(u32 vd, u32 va, u32 vb, u32 vc) { auto va_v4i32 = GetVrAsIntVec(va, 32); auto vb_v4i32 = GetVrAsIntVec(vb, 32); auto vc_v4i32 = GetVrAsIntVec(vc, 32); @@ -1104,7 +1172,7 @@ void PPULLVMRecompiler::VSEL(u32 vd, u32 va, u32 vb, u32 vc) { SetVr(vd, vd_v4i32); } -void PPULLVMRecompiler::VSL(u32 vd, u32 va, u32 vb) { +void Compiler::VSL(u32 vd, u32 va, u32 vb) { auto va_i128 = GetVr(va); auto vb_v16i8 = GetVrAsIntVec(vb, 8); auto sh_i8 = m_ir_builder->CreateExtractElement(vb_v16i8, m_ir_builder->getInt8(0)); @@ -1114,7 +1182,7 @@ void PPULLVMRecompiler::VSL(u32 vd, u32 va, u32 vb) { SetVr(vd, va_i128); } -void PPULLVMRecompiler::VSLB(u32 vd, u32 va, u32 vb) { +void Compiler::VSLB(u32 vd, u32 va, u32 vb) { auto va_v16i8 = GetVrAsIntVec(va, 8); auto vb_v16i8 = GetVrAsIntVec(vb, 8); vb_v16i8 = m_ir_builder->CreateAnd(vb_v16i8, m_ir_builder->CreateVectorSplat(16, m_ir_builder->getInt8(0x7))); @@ -1122,7 +1190,7 @@ void PPULLVMRecompiler::VSLB(u32 vd, u32 va, u32 vb) { SetVr(vd, res_v16i8); } -void PPULLVMRecompiler::VSLDOI(u32 vd, u32 va, u32 vb, u32 sh) { +void Compiler::VSLDOI(u32 vd, u32 va, u32 vb, u32 sh) { auto va_v16i8 = GetVrAsIntVec(va, 8); auto vb_v16i8 = GetVrAsIntVec(vb, 8); sh = 16 - sh; @@ -1131,7 +1199,7 @@ void PPULLVMRecompiler::VSLDOI(u32 vd, u32 va, u32 vb, u32 sh) { SetVr(vd, vd_v16i8); } -void PPULLVMRecompiler::VSLH(u32 vd, u32 va, u32 vb) { +void Compiler::VSLH(u32 vd, u32 va, u32 vb) { auto va_v8i16 = GetVrAsIntVec(va, 16); auto vb_v8i16 = GetVrAsIntVec(vb, 16); vb_v8i16 = m_ir_builder->CreateAnd(vb_v8i16, m_ir_builder->CreateVectorSplat(8, m_ir_builder->getInt16(0xF))); @@ -1139,7 +1207,7 @@ void PPULLVMRecompiler::VSLH(u32 vd, u32 va, u32 vb) { SetVr(vd, res_v8i16); } -void PPULLVMRecompiler::VSLO(u32 vd, u32 va, u32 vb) { +void Compiler::VSLO(u32 vd, u32 va, u32 vb) { auto va_i128 = GetVr(va); auto vb_v16i8 = GetVrAsIntVec(vb, 8); auto sh_i8 = m_ir_builder->CreateExtractElement(vb_v16i8, m_ir_builder->getInt8(0)); @@ -1149,7 +1217,7 @@ void PPULLVMRecompiler::VSLO(u32 vd, u32 va, u32 vb) { SetVr(vd, va_i128); } -void PPULLVMRecompiler::VSLW(u32 vd, u32 va, u32 vb) { +void Compiler::VSLW(u32 vd, u32 va, u32 vb) { auto va_v4i32 = GetVrAsIntVec(va, 32); auto vb_v4i32 = GetVrAsIntVec(vb, 32); vb_v4i32 = m_ir_builder->CreateAnd(vb_v4i32, m_ir_builder->CreateVectorSplat(4, m_ir_builder->getInt32(0x1F))); @@ -1157,7 +1225,7 @@ void PPULLVMRecompiler::VSLW(u32 vd, u32 va, u32 vb) { SetVr(vd, res_v4i32); } -void PPULLVMRecompiler::VSPLTB(u32 vd, u32 uimm5, u32 vb) { +void Compiler::VSPLTB(u32 vd, u32 uimm5, u32 vb) { auto vb_v16i8 = GetVrAsIntVec(vb, 8); auto undef_v16i8 = UndefValue::get(VectorType::get(m_ir_builder->getInt8Ty(), 16)); auto mask_v16i32 = m_ir_builder->CreateVectorSplat(16, m_ir_builder->getInt32(15 - uimm5)); @@ -1165,7 +1233,7 @@ void PPULLVMRecompiler::VSPLTB(u32 vd, u32 uimm5, u32 vb) { SetVr(vd, res_v16i8); } -void PPULLVMRecompiler::VSPLTH(u32 vd, u32 uimm5, u32 vb) { +void Compiler::VSPLTH(u32 vd, u32 uimm5, u32 vb) { auto vb_v8i16 = GetVrAsIntVec(vb, 16); auto undef_v8i16 = UndefValue::get(VectorType::get(m_ir_builder->getInt16Ty(), 8)); auto mask_v8i32 = m_ir_builder->CreateVectorSplat(8, m_ir_builder->getInt32(7 - uimm5)); @@ -1173,22 +1241,22 @@ void PPULLVMRecompiler::VSPLTH(u32 vd, u32 uimm5, u32 vb) { SetVr(vd, res_v8i16); } -void PPULLVMRecompiler::VSPLTISB(u32 vd, s32 simm5) { +void Compiler::VSPLTISB(u32 vd, s32 simm5) { auto vd_v16i8 = m_ir_builder->CreateVectorSplat(16, m_ir_builder->getInt8((s8)simm5)); SetVr(vd, vd_v16i8); } -void PPULLVMRecompiler::VSPLTISH(u32 vd, s32 simm5) { +void Compiler::VSPLTISH(u32 vd, s32 simm5) { auto vd_v8i16 = m_ir_builder->CreateVectorSplat(8, m_ir_builder->getInt16((s16)simm5)); SetVr(vd, vd_v8i16); } -void PPULLVMRecompiler::VSPLTISW(u32 vd, s32 simm5) { +void Compiler::VSPLTISW(u32 vd, s32 simm5) { auto vd_v4i32 = m_ir_builder->CreateVectorSplat(4, m_ir_builder->getInt32((s32)simm5)); SetVr(vd, vd_v4i32); } -void PPULLVMRecompiler::VSPLTW(u32 vd, u32 uimm5, u32 vb) { +void Compiler::VSPLTW(u32 vd, u32 uimm5, u32 vb) { auto vb_v4i32 = GetVrAsIntVec(vb, 32); auto undef_v4i32 = UndefValue::get(VectorType::get(m_ir_builder->getInt32Ty(), 4)); auto mask_v4i32 = m_ir_builder->CreateVectorSplat(4, m_ir_builder->getInt32(3 - uimm5)); @@ -1196,7 +1264,7 @@ void PPULLVMRecompiler::VSPLTW(u32 vd, u32 uimm5, u32 vb) { SetVr(vd, res_v4i32); } -void PPULLVMRecompiler::VSR(u32 vd, u32 va, u32 vb) { +void Compiler::VSR(u32 vd, u32 va, u32 vb) { auto va_i128 = GetVr(va); auto vb_v16i8 = GetVrAsIntVec(vb, 8); auto sh_i8 = m_ir_builder->CreateExtractElement(vb_v16i8, m_ir_builder->getInt8(0)); @@ -1206,7 +1274,7 @@ void PPULLVMRecompiler::VSR(u32 vd, u32 va, u32 vb) { SetVr(vd, va_i128); } -void PPULLVMRecompiler::VSRAB(u32 vd, u32 va, u32 vb) { +void Compiler::VSRAB(u32 vd, u32 va, u32 vb) { auto va_v16i8 = GetVrAsIntVec(va, 8); auto vb_v16i8 = GetVrAsIntVec(vb, 8); vb_v16i8 = m_ir_builder->CreateAnd(vb_v16i8, m_ir_builder->CreateVectorSplat(16, m_ir_builder->getInt8(0x7))); @@ -1214,7 +1282,7 @@ void PPULLVMRecompiler::VSRAB(u32 vd, u32 va, u32 vb) { SetVr(vd, res_v16i8); } -void PPULLVMRecompiler::VSRAH(u32 vd, u32 va, u32 vb) { +void Compiler::VSRAH(u32 vd, u32 va, u32 vb) { auto va_v8i16 = GetVrAsIntVec(va, 16); auto vb_v8i16 = GetVrAsIntVec(vb, 16); vb_v8i16 = m_ir_builder->CreateAnd(vb_v8i16, m_ir_builder->CreateVectorSplat(8, m_ir_builder->getInt16(0xF))); @@ -1222,7 +1290,7 @@ void PPULLVMRecompiler::VSRAH(u32 vd, u32 va, u32 vb) { SetVr(vd, res_v8i16); } -void PPULLVMRecompiler::VSRAW(u32 vd, u32 va, u32 vb) { +void Compiler::VSRAW(u32 vd, u32 va, u32 vb) { auto va_v4i32 = GetVrAsIntVec(va, 32); auto vb_v4i32 = GetVrAsIntVec(vb, 32); vb_v4i32 = m_ir_builder->CreateAnd(vb_v4i32, m_ir_builder->CreateVectorSplat(4, m_ir_builder->getInt32(0x1F))); @@ -1230,7 +1298,7 @@ void PPULLVMRecompiler::VSRAW(u32 vd, u32 va, u32 vb) { SetVr(vd, res_v4i32); } -void PPULLVMRecompiler::VSRB(u32 vd, u32 va, u32 vb) { +void Compiler::VSRB(u32 vd, u32 va, u32 vb) { auto va_v16i8 = GetVrAsIntVec(va, 8); auto vb_v16i8 = GetVrAsIntVec(vb, 8); vb_v16i8 = m_ir_builder->CreateAnd(vb_v16i8, m_ir_builder->CreateVectorSplat(16, m_ir_builder->getInt8(0x7))); @@ -1238,7 +1306,7 @@ void PPULLVMRecompiler::VSRB(u32 vd, u32 va, u32 vb) { SetVr(vd, res_v16i8); } -void PPULLVMRecompiler::VSRH(u32 vd, u32 va, u32 vb) { +void Compiler::VSRH(u32 vd, u32 va, u32 vb) { auto va_v8i16 = GetVrAsIntVec(va, 16); auto vb_v8i16 = GetVrAsIntVec(vb, 16); vb_v8i16 = m_ir_builder->CreateAnd(vb_v8i16, m_ir_builder->CreateVectorSplat(8, m_ir_builder->getInt16(0xF))); @@ -1246,7 +1314,7 @@ void PPULLVMRecompiler::VSRH(u32 vd, u32 va, u32 vb) { SetVr(vd, res_v8i16); } -void PPULLVMRecompiler::VSRO(u32 vd, u32 va, u32 vb) { +void Compiler::VSRO(u32 vd, u32 va, u32 vb) { auto va_i128 = GetVr(va); auto vb_v16i8 = GetVrAsIntVec(vb, 8); auto sh_i8 = m_ir_builder->CreateExtractElement(vb_v16i8, m_ir_builder->getInt8(0)); @@ -1256,7 +1324,7 @@ void PPULLVMRecompiler::VSRO(u32 vd, u32 va, u32 vb) { SetVr(vd, va_i128); } -void PPULLVMRecompiler::VSRW(u32 vd, u32 va, u32 vb) { +void Compiler::VSRW(u32 vd, u32 va, u32 vb) { auto va_v4i32 = GetVrAsIntVec(va, 32); auto vb_v4i32 = GetVrAsIntVec(vb, 32); vb_v4i32 = m_ir_builder->CreateAnd(vb_v4i32, m_ir_builder->CreateVectorSplat(4, m_ir_builder->getInt32(0x1F))); @@ -1264,7 +1332,7 @@ void PPULLVMRecompiler::VSRW(u32 vd, u32 va, u32 vb) { SetVr(vd, res_v4i32); } -void PPULLVMRecompiler::VSUBCUW(u32 vd, u32 va, u32 vb) { +void Compiler::VSUBCUW(u32 vd, u32 va, u32 vb) { auto va_v4i32 = GetVrAsIntVec(va, 32); auto vb_v4i32 = GetVrAsIntVec(vb, 32); @@ -1273,14 +1341,14 @@ void PPULLVMRecompiler::VSUBCUW(u32 vd, u32 va, u32 vb) { SetVr(vd, cmpv4i32); } -void PPULLVMRecompiler::VSUBFP(u32 vd, u32 va, u32 vb) { +void Compiler::VSUBFP(u32 vd, u32 va, u32 vb) { auto va_v4f32 = GetVrAsFloatVec(va); auto vb_v4f32 = GetVrAsFloatVec(vb); auto diff_v4f32 = m_ir_builder->CreateFSub(va_v4f32, vb_v4f32); SetVr(vd, diff_v4f32); } -void PPULLVMRecompiler::VSUBSBS(u32 vd, u32 va, u32 vb) { +void Compiler::VSUBSBS(u32 vd, u32 va, u32 vb) { auto va_v16i8 = GetVrAsIntVec(va, 8); auto vb_v16i8 = GetVrAsIntVec(vb, 8); auto diff_v16i8 = m_ir_builder->CreateCall2(Intrinsic::getDeclaration(m_module, Intrinsic::x86_sse2_psubs_b), va_v16i8, vb_v16i8); @@ -1289,7 +1357,7 @@ void PPULLVMRecompiler::VSUBSBS(u32 vd, u32 va, u32 vb) { // TODO: Set VSCR.SAT } -void PPULLVMRecompiler::VSUBSHS(u32 vd, u32 va, u32 vb) { +void Compiler::VSUBSHS(u32 vd, u32 va, u32 vb) { auto va_v8i16 = GetVrAsIntVec(va, 16); auto vb_v8i16 = GetVrAsIntVec(vb, 16); auto diff_v8i16 = m_ir_builder->CreateCall2(Intrinsic::getDeclaration(m_module, Intrinsic::x86_sse2_psubs_w), va_v8i16, vb_v8i16); @@ -1298,7 +1366,7 @@ void PPULLVMRecompiler::VSUBSHS(u32 vd, u32 va, u32 vb) { // TODO: Set VSCR.SAT } -void PPULLVMRecompiler::VSUBSWS(u32 vd, u32 va, u32 vb) { +void Compiler::VSUBSWS(u32 vd, u32 va, u32 vb) { auto va_v4i32 = GetVrAsIntVec(va, 32); auto vb_v4i32 = GetVrAsIntVec(vb, 32); @@ -1329,14 +1397,14 @@ void PPULLVMRecompiler::VSUBSWS(u32 vd, u32 va, u32 vb) { // TODO: Set SAT } -void PPULLVMRecompiler::VSUBUBM(u32 vd, u32 va, u32 vb) { +void Compiler::VSUBUBM(u32 vd, u32 va, u32 vb) { auto va_v16i8 = GetVrAsIntVec(va, 8); auto vb_v16i8 = GetVrAsIntVec(vb, 8); auto diff_v16i8 = m_ir_builder->CreateSub(va_v16i8, vb_v16i8); SetVr(vd, diff_v16i8); } -void PPULLVMRecompiler::VSUBUBS(u32 vd, u32 va, u32 vb) { +void Compiler::VSUBUBS(u32 vd, u32 va, u32 vb) { auto va_v16i8 = GetVrAsIntVec(va, 8); auto vb_v16i8 = GetVrAsIntVec(vb, 8); auto diff_v16i8 = m_ir_builder->CreateCall2(Intrinsic::getDeclaration(m_module, Intrinsic::x86_sse2_psubus_b), va_v16i8, vb_v16i8); @@ -1345,14 +1413,14 @@ void PPULLVMRecompiler::VSUBUBS(u32 vd, u32 va, u32 vb) { // TODO: Set SAT } -void PPULLVMRecompiler::VSUBUHM(u32 vd, u32 va, u32 vb) { +void Compiler::VSUBUHM(u32 vd, u32 va, u32 vb) { auto va_v8i16 = GetVrAsIntVec(va, 16); auto vb_v8i16 = GetVrAsIntVec(vb, 16); auto diff_v8i16 = m_ir_builder->CreateSub(va_v8i16, vb_v8i16); SetVr(vd, diff_v8i16); } -void PPULLVMRecompiler::VSUBUHS(u32 vd, u32 va, u32 vb) { +void Compiler::VSUBUHS(u32 vd, u32 va, u32 vb) { auto va_v8i16 = GetVrAsIntVec(va, 16); auto vb_v8i16 = GetVrAsIntVec(vb, 16); auto diff_v8i16 = m_ir_builder->CreateCall2(Intrinsic::getDeclaration(m_module, Intrinsic::x86_sse2_psubus_w), va_v8i16, vb_v8i16); @@ -1361,14 +1429,14 @@ void PPULLVMRecompiler::VSUBUHS(u32 vd, u32 va, u32 vb) { // TODO: Set SAT } -void PPULLVMRecompiler::VSUBUWM(u32 vd, u32 va, u32 vb) { +void Compiler::VSUBUWM(u32 vd, u32 va, u32 vb) { auto va_v4i32 = GetVrAsIntVec(va, 32); auto vb_v4i32 = GetVrAsIntVec(vb, 32); auto diff_v4i32 = m_ir_builder->CreateSub(va_v4i32, vb_v4i32); SetVr(vd, diff_v4i32); } -void PPULLVMRecompiler::VSUBUWS(u32 vd, u32 va, u32 vb) { +void Compiler::VSUBUWS(u32 vd, u32 va, u32 vb) { auto va_v4i32 = GetVrAsIntVec(va, 32); auto vb_v4i32 = GetVrAsIntVec(vb, 32); auto diff_v4i32 = m_ir_builder->CreateSub(va_v4i32, vb_v4i32); @@ -1380,65 +1448,65 @@ void PPULLVMRecompiler::VSUBUWS(u32 vd, u32 va, u32 vb) { // TODO: Set SAT } -void PPULLVMRecompiler::VSUMSWS(u32 vd, u32 va, u32 vb) { +void Compiler::VSUMSWS(u32 vd, u32 va, u32 vb) { InterpreterCall("VSUMSWS", &PPUInterpreter::VSUMSWS, vd, va, vb); } -void PPULLVMRecompiler::VSUM2SWS(u32 vd, u32 va, u32 vb) { +void Compiler::VSUM2SWS(u32 vd, u32 va, u32 vb) { InterpreterCall("VSUM2SWS", &PPUInterpreter::VSUM2SWS, vd, va, vb); } -void PPULLVMRecompiler::VSUM4SBS(u32 vd, u32 va, u32 vb) { +void Compiler::VSUM4SBS(u32 vd, u32 va, u32 vb) { InterpreterCall("VSUM4SBS", &PPUInterpreter::VSUM4SBS, vd, va, vb); } -void PPULLVMRecompiler::VSUM4SHS(u32 vd, u32 va, u32 vb) { +void Compiler::VSUM4SHS(u32 vd, u32 va, u32 vb) { InterpreterCall("VSUM4SHS", &PPUInterpreter::VSUM4SHS, vd, va, vb); } -void PPULLVMRecompiler::VSUM4UBS(u32 vd, u32 va, u32 vb) { +void Compiler::VSUM4UBS(u32 vd, u32 va, u32 vb) { InterpreterCall("VSUM4UBS", &PPUInterpreter::VSUM4UBS, vd, va, vb); } -void PPULLVMRecompiler::VUPKHPX(u32 vd, u32 vb) { +void Compiler::VUPKHPX(u32 vd, u32 vb) { InterpreterCall("VUPKHPX", &PPUInterpreter::VUPKHPX, vd, vb); } -void PPULLVMRecompiler::VUPKHSB(u32 vd, u32 vb) { +void Compiler::VUPKHSB(u32 vd, u32 vb) { InterpreterCall("VUPKHSB", &PPUInterpreter::VUPKHSB, vd, vb); } -void PPULLVMRecompiler::VUPKHSH(u32 vd, u32 vb) { +void Compiler::VUPKHSH(u32 vd, u32 vb) { InterpreterCall("VUPKHSH", &PPUInterpreter::VUPKHSH, vd, vb); } -void PPULLVMRecompiler::VUPKLPX(u32 vd, u32 vb) { +void Compiler::VUPKLPX(u32 vd, u32 vb) { InterpreterCall("VUPKLPX", &PPUInterpreter::VUPKLPX, vd, vb); } -void PPULLVMRecompiler::VUPKLSB(u32 vd, u32 vb) { +void Compiler::VUPKLSB(u32 vd, u32 vb) { InterpreterCall("VUPKLSB", &PPUInterpreter::VUPKLSB, vd, vb); } -void PPULLVMRecompiler::VUPKLSH(u32 vd, u32 vb) { +void Compiler::VUPKLSH(u32 vd, u32 vb) { InterpreterCall("VUPKLSH", &PPUInterpreter::VUPKLSH, vd, vb); } -void PPULLVMRecompiler::VXOR(u32 vd, u32 va, u32 vb) { +void Compiler::VXOR(u32 vd, u32 va, u32 vb) { auto va_v8i16 = GetVrAsIntVec(va, 16); auto vb_v8i16 = GetVrAsIntVec(vb, 16); auto res_v8i16 = m_ir_builder->CreateXor(va_v8i16, vb_v8i16); SetVr(vd, res_v8i16); } -void PPULLVMRecompiler::MULLI(u32 rd, u32 ra, s32 simm16) { +void Compiler::MULLI(u32 rd, u32 ra, s32 simm16) { auto ra_i64 = GetGpr(ra); auto res_i64 = m_ir_builder->CreateMul(ra_i64, m_ir_builder->getInt64((s64)simm16)); SetGpr(rd, res_i64); //InterpreterCall("MULLI", &PPUInterpreter::MULLI, rd, ra, simm16); } -void PPULLVMRecompiler::SUBFIC(u32 rd, u32 ra, s32 simm16) { +void Compiler::SUBFIC(u32 rd, u32 ra, s32 simm16) { auto ra_i64 = GetGpr(ra); ra_i64 = m_ir_builder->CreateNeg(ra_i64); auto res_s = m_ir_builder->CreateCall2(Intrinsic::getDeclaration(m_module, Intrinsic::uadd_with_overflow, m_ir_builder->getInt64Ty()), ra_i64, m_ir_builder->getInt64((s64)simm16)); @@ -1449,7 +1517,7 @@ void PPULLVMRecompiler::SUBFIC(u32 rd, u32 ra, s32 simm16) { //InterpreterCall("SUBFIC", &PPUInterpreter::SUBFIC, rd, ra, simm16); } -void PPULLVMRecompiler::CMPLI(u32 crfd, u32 l, u32 ra, u32 uimm16) { +void Compiler::CMPLI(u32 crfd, u32 l, u32 ra, u32 uimm16) { Value * ra_i64; if (l == 0) { ra_i64 = m_ir_builder->CreateZExt(GetGpr(ra, 32), m_ir_builder->getInt64Ty()); @@ -1461,7 +1529,7 @@ void PPULLVMRecompiler::CMPLI(u32 crfd, u32 l, u32 ra, u32 uimm16) { //InterpreterCall("CMPLI", &PPUInterpreter::CMPLI, crfd, l, ra, uimm16); } -void PPULLVMRecompiler::CMPI(u32 crfd, u32 l, u32 ra, s32 simm16) { +void Compiler::CMPI(u32 crfd, u32 l, u32 ra, s32 simm16) { Value * ra_i64; if (l == 0) { ra_i64 = m_ir_builder->CreateSExt(GetGpr(ra, 32), m_ir_builder->getInt64Ty()); @@ -1473,7 +1541,7 @@ void PPULLVMRecompiler::CMPI(u32 crfd, u32 l, u32 ra, s32 simm16) { //InterpreterCall("CMPI", &PPUInterpreter::CMPI, crfd, l, ra, simm16); } -void PPULLVMRecompiler::ADDIC(u32 rd, u32 ra, s32 simm16) { +void Compiler::ADDIC(u32 rd, u32 ra, s32 simm16) { auto ra_i64 = GetGpr(ra); auto res_s = m_ir_builder->CreateCall2(Intrinsic::getDeclaration(m_module, Intrinsic::uadd_with_overflow, m_ir_builder->getInt64Ty()), m_ir_builder->getInt64((s64)simm16), ra_i64); auto sum_i64 = m_ir_builder->CreateExtractValue(res_s, {0}); @@ -1483,13 +1551,13 @@ void PPULLVMRecompiler::ADDIC(u32 rd, u32 ra, s32 simm16) { //InterpreterCall("ADDIC", &PPUInterpreter::ADDIC, rd, ra, simm16); } -void PPULLVMRecompiler::ADDIC_(u32 rd, u32 ra, s32 simm16) { +void Compiler::ADDIC_(u32 rd, u32 ra, s32 simm16) { ADDIC(rd, ra, simm16); SetCrFieldSignedCmp(0, GetGpr(rd), m_ir_builder->getInt64(0)); //InterpreterCall("ADDIC_", &PPUInterpreter::ADDIC_, rd, ra, simm16); } -void PPULLVMRecompiler::ADDI(u32 rd, u32 ra, s32 simm16) { +void Compiler::ADDI(u32 rd, u32 ra, s32 simm16) { if (ra == 0) { SetGpr(rd, m_ir_builder->getInt64((s64)simm16)); } else { @@ -1500,7 +1568,7 @@ void PPULLVMRecompiler::ADDI(u32 rd, u32 ra, s32 simm16) { //InterpreterCall("ADDI", &PPUInterpreter::ADDI, rd, ra, simm16); } -void PPULLVMRecompiler::ADDIS(u32 rd, u32 ra, s32 simm16) { +void Compiler::ADDIS(u32 rd, u32 ra, s32 simm16) { if (ra == 0) { SetGpr(rd, m_ir_builder->getInt64((s64)simm16 << 16)); } else { @@ -1511,9 +1579,10 @@ void PPULLVMRecompiler::ADDIS(u32 rd, u32 ra, s32 simm16) { //InterpreterCall("ADDIS", &PPUInterpreter::ADDIS, rd, ra, simm16); } -void PPULLVMRecompiler::BC(u32 bo, u32 bi, s32 bd, u32 aa, u32 lk) { - auto target_i64 = m_ir_builder->getInt64(branchTarget(aa ? 0 : m_current_instruction_address, bd)); - CreateBranch(CheckBranchCondition(bo, bi), target_i64, lk ? true : false); +void Compiler::BC(u32 bo, u32 bi, s32 bd, u32 aa, u32 lk) { + auto target_i64 = m_ir_builder->getInt64(branchTarget(aa ? 0 : m_state.current_instruction_address, bd)); + auto target_i32 = m_ir_builder->CreateTrunc(target_i64, m_ir_builder->getInt32Ty()); + CreateBranch(CheckBranchCondition(bo, bi), target_i32, lk ? true : false); //m_hit_branch_instruction = true; //SetPc(m_ir_builder->getInt32(m_current_instruction_address)); //InterpreterCall("BC", &PPUInterpreter::BC, bo, bi, bd, aa, lk); @@ -1521,20 +1590,21 @@ void PPULLVMRecompiler::BC(u32 bo, u32 bi, s32 bd, u32 aa, u32 lk) { //m_ir_builder->CreateRetVoid(); } -void PPULLVMRecompiler::SC(u32 sc_code) { +void Compiler::SC(u32 sc_code) { InterpreterCall("SC", &PPUInterpreter::SC, sc_code); } -void PPULLVMRecompiler::B(s32 ll, u32 aa, u32 lk) { - auto target_i64 = m_ir_builder->getInt64(branchTarget(aa ? 0 : m_current_instruction_address, ll)); - CreateBranch(nullptr, target_i64, lk ? true : false); +void Compiler::B(s32 ll, u32 aa, u32 lk) { + auto target_i64 = m_ir_builder->getInt64(branchTarget(aa ? 0 : m_state.current_instruction_address, ll)); + auto target_i32 = m_ir_builder->CreateTrunc(target_i64, m_ir_builder->getInt32Ty()); + CreateBranch(nullptr, target_i32, lk ? true : false); //m_hit_branch_instruction = true; //SetPc(m_ir_builder->getInt32(m_current_instruction_address)); //InterpreterCall("B", &PPUInterpreter::B, ll, aa, lk); //m_ir_builder->CreateRetVoid(); } -void PPULLVMRecompiler::MCRF(u32 crfd, u32 crfs) { +void Compiler::MCRF(u32 crfd, u32 crfs) { if (crfd != crfs) { auto cr_i32 = GetCr(); auto crf_i32 = GetNibble(cr_i32, crfs); @@ -1544,10 +1614,11 @@ void PPULLVMRecompiler::MCRF(u32 crfd, u32 crfs) { //InterpreterCall("MCRF", &PPUInterpreter::MCRF, crfd, crfs); } -void PPULLVMRecompiler::BCLR(u32 bo, u32 bi, u32 bh, u32 lk) { +void Compiler::BCLR(u32 bo, u32 bi, u32 bh, u32 lk) { auto lr_i64 = GetLr(); lr_i64 = m_ir_builder->CreateAnd(lr_i64, ~0x3ULL); - CreateBranch(CheckBranchCondition(bo, bi), lr_i64, lk ? true : false); + auto lr_i32 = m_ir_builder->CreateTrunc(lr_i64, m_ir_builder->getInt32Ty()); + CreateBranch(CheckBranchCondition(bo, bi), lr_i32, lk ? true : false, true); //m_hit_branch_instruction = true; //SetPc(m_ir_builder->getInt32(m_current_instruction_address)); //InterpreterCall("BCLR", &PPUInterpreter::BCLR, bo, bi, bh, lk); @@ -1555,7 +1626,7 @@ void PPULLVMRecompiler::BCLR(u32 bo, u32 bi, u32 bh, u32 lk) { //m_ir_builder->CreateRetVoid(); } -void PPULLVMRecompiler::CRNOR(u32 crbd, u32 crba, u32 crbb) { +void Compiler::CRNOR(u32 crbd, u32 crba, u32 crbb) { auto cr_i32 = GetCr(); auto ba_i32 = GetBit(cr_i32, crba); auto bb_i32 = GetBit(cr_i32, crbb); @@ -1566,7 +1637,7 @@ void PPULLVMRecompiler::CRNOR(u32 crbd, u32 crba, u32 crbb) { //InterpreterCall("CRNOR", &PPUInterpreter::CRNOR, crbd, crba, crbb); } -void PPULLVMRecompiler::CRANDC(u32 crbd, u32 crba, u32 crbb) { +void Compiler::CRANDC(u32 crbd, u32 crba, u32 crbb) { auto cr_i32 = GetCr(); auto ba_i32 = GetBit(cr_i32, crba); auto bb_i32 = GetBit(cr_i32, crbb); @@ -1577,12 +1648,12 @@ void PPULLVMRecompiler::CRANDC(u32 crbd, u32 crba, u32 crbb) { //InterpreterCall("CRANDC", &PPUInterpreter::CRANDC, crbd, crba, crbb); } -void PPULLVMRecompiler::ISYNC() { +void Compiler::ISYNC() { m_ir_builder->CreateCall(Intrinsic::getDeclaration(m_module, Intrinsic::x86_sse2_mfence)); //InterpreterCall("ISYNC", &PPUInterpreter::ISYNC); } -void PPULLVMRecompiler::CRXOR(u32 crbd, u32 crba, u32 crbb) { +void Compiler::CRXOR(u32 crbd, u32 crba, u32 crbb) { auto cr_i32 = GetCr(); auto ba_i32 = GetBit(cr_i32, crba); auto bb_i32 = GetBit(cr_i32, crbb); @@ -1592,11 +1663,11 @@ void PPULLVMRecompiler::CRXOR(u32 crbd, u32 crba, u32 crbb) { //InterpreterCall("CRXOR", &PPUInterpreter::CRXOR, crbd, crba, crbb); } -void PPULLVMRecompiler::DCBI(u32 ra, u32 rb) { +void Compiler::DCBI(u32 ra, u32 rb) { InterpreterCall("DCBI", &PPUInterpreter::DCBI, ra, rb); } -void PPULLVMRecompiler::CRNAND(u32 crbd, u32 crba, u32 crbb) { +void Compiler::CRNAND(u32 crbd, u32 crba, u32 crbb) { auto cr_i32 = GetCr(); auto ba_i32 = GetBit(cr_i32, crba); auto bb_i32 = GetBit(cr_i32, crbb); @@ -1607,7 +1678,7 @@ void PPULLVMRecompiler::CRNAND(u32 crbd, u32 crba, u32 crbb) { //InterpreterCall("CRNAND", &PPUInterpreter::CRNAND, crbd, crba, crbb); } -void PPULLVMRecompiler::CRAND(u32 crbd, u32 crba, u32 crbb) { +void Compiler::CRAND(u32 crbd, u32 crba, u32 crbb) { auto cr_i32 = GetCr(); auto ba_i32 = GetBit(cr_i32, crba); auto bb_i32 = GetBit(cr_i32, crbb); @@ -1617,7 +1688,7 @@ void PPULLVMRecompiler::CRAND(u32 crbd, u32 crba, u32 crbb) { //InterpreterCall("CRAND", &PPUInterpreter::CRAND, crbd, crba, crbb); } -void PPULLVMRecompiler::CREQV(u32 crbd, u32 crba, u32 crbb) { +void Compiler::CREQV(u32 crbd, u32 crba, u32 crbb) { auto cr_i32 = GetCr(); auto ba_i32 = GetBit(cr_i32, crba); auto bb_i32 = GetBit(cr_i32, crbb); @@ -1628,7 +1699,7 @@ void PPULLVMRecompiler::CREQV(u32 crbd, u32 crba, u32 crbb) { //InterpreterCall("CREQV", &PPUInterpreter::CREQV, crbd, crba, crbb); } -void PPULLVMRecompiler::CRORC(u32 crbd, u32 crba, u32 crbb) { +void Compiler::CRORC(u32 crbd, u32 crba, u32 crbb) { auto cr_i32 = GetCr(); auto ba_i32 = GetBit(cr_i32, crba); auto bb_i32 = GetBit(cr_i32, crbb); @@ -1639,7 +1710,7 @@ void PPULLVMRecompiler::CRORC(u32 crbd, u32 crba, u32 crbb) { //InterpreterCall("CRORC", &PPUInterpreter::CRORC, crbd, crba, crbb); } -void PPULLVMRecompiler::CROR(u32 crbd, u32 crba, u32 crbb) { +void Compiler::CROR(u32 crbd, u32 crba, u32 crbb) { auto cr_i32 = GetCr(); auto ba_i32 = GetBit(cr_i32, crba); auto bb_i32 = GetBit(cr_i32, crbb); @@ -1649,10 +1720,11 @@ void PPULLVMRecompiler::CROR(u32 crbd, u32 crba, u32 crbb) { //InterpreterCall("CROR", &PPUInterpreter::CROR, crbd, crba, crbb); } -void PPULLVMRecompiler::BCCTR(u32 bo, u32 bi, u32 bh, u32 lk) { +void Compiler::BCCTR(u32 bo, u32 bi, u32 bh, u32 lk) { auto ctr_i64 = GetCtr(); ctr_i64 = m_ir_builder->CreateAnd(ctr_i64, ~0x3ULL); - CreateBranch(CheckBranchCondition(bo, bi), ctr_i64, lk ? true : false); + auto ctr_i32 = m_ir_builder->CreateTrunc(ctr_i64, m_ir_builder->getInt32Ty()); + CreateBranch(CheckBranchCondition(bo, bi), ctr_i32, lk ? true : false); //m_hit_branch_instruction = true; //SetPc(m_ir_builder->getInt32(m_current_instruction_address)); //InterpreterCall("BCCTR", &PPUInterpreter::BCCTR, bo, bi, bh, lk); @@ -1660,7 +1732,7 @@ void PPULLVMRecompiler::BCCTR(u32 bo, u32 bi, u32 bh, u32 lk) { //m_ir_builder->CreateRetVoid(); } -void PPULLVMRecompiler::RLWIMI(u32 ra, u32 rs, u32 sh, u32 mb, u32 me, bool rc) { +void Compiler::RLWIMI(u32 ra, u32 rs, u32 sh, u32 mb, u32 me, bool rc) { auto rs_i32 = GetGpr(rs, 32); auto rs_i64 = m_ir_builder->CreateZExt(rs_i32, m_ir_builder->getInt64Ty()); auto rsh_i64 = m_ir_builder->CreateShl(rs_i64, 32); @@ -1685,7 +1757,7 @@ void PPULLVMRecompiler::RLWIMI(u32 ra, u32 rs, u32 sh, u32 mb, u32 me, bool rc) //InterpreterCall("RLWIMI", &PPUInterpreter::RLWIMI, ra, rs, sh, mb, me, rc); } -void PPULLVMRecompiler::RLWINM(u32 ra, u32 rs, u32 sh, u32 mb, u32 me, bool rc) { +void Compiler::RLWINM(u32 ra, u32 rs, u32 sh, u32 mb, u32 me, bool rc) { auto rs_i32 = GetGpr(rs, 32); auto rs_i64 = m_ir_builder->CreateZExt(rs_i32, m_ir_builder->getInt64Ty()); auto rsh_i64 = m_ir_builder->CreateShl(rs_i64, 32); @@ -1706,7 +1778,7 @@ void PPULLVMRecompiler::RLWINM(u32 ra, u32 rs, u32 sh, u32 mb, u32 me, bool rc) //InterpreterCall("RLWINM", &PPUInterpreter::RLWINM, ra, rs, sh, mb, me, rc); } -void PPULLVMRecompiler::RLWNM(u32 ra, u32 rs, u32 rb, u32 mb, u32 me, bool rc) { +void Compiler::RLWNM(u32 ra, u32 rs, u32 rb, u32 mb, u32 me, bool rc) { auto rs_i32 = GetGpr(rs, 32); auto rs_i64 = m_ir_builder->CreateZExt(rs_i32, m_ir_builder->getInt64Ty()); auto rsh_i64 = m_ir_builder->CreateShl(rs_i64, 32); @@ -1726,35 +1798,35 @@ void PPULLVMRecompiler::RLWNM(u32 ra, u32 rs, u32 rb, u32 mb, u32 me, bool rc) { //InterpreterCall("RLWNM", &PPUInterpreter::RLWNM, ra, rs, rb, mb, me, rc); } -void PPULLVMRecompiler::ORI(u32 ra, u32 rs, u32 uimm16) { +void Compiler::ORI(u32 ra, u32 rs, u32 uimm16) { auto rs_i64 = GetGpr(rs); auto res_i64 = m_ir_builder->CreateOr(rs_i64, uimm16); SetGpr(ra, res_i64); //InterpreterCall("ORI", &PPUInterpreter::ORI, ra, rs, uimm16); } -void PPULLVMRecompiler::ORIS(u32 ra, u32 rs, u32 uimm16) { +void Compiler::ORIS(u32 ra, u32 rs, u32 uimm16) { auto rs_i64 = GetGpr(rs); auto res_i64 = m_ir_builder->CreateOr(rs_i64, (u64)uimm16 << 16); SetGpr(ra, res_i64); //InterpreterCall("ORIS", &PPUInterpreter::ORIS, ra, rs, uimm16); } -void PPULLVMRecompiler::XORI(u32 ra, u32 rs, u32 uimm16) { +void Compiler::XORI(u32 ra, u32 rs, u32 uimm16) { auto rs_i64 = GetGpr(rs); auto res_i64 = m_ir_builder->CreateXor(rs_i64, uimm16); SetGpr(ra, res_i64); //InterpreterCall("XORI", &PPUInterpreter::XORI, ra, rs, uimm16); } -void PPULLVMRecompiler::XORIS(u32 ra, u32 rs, u32 uimm16) { +void Compiler::XORIS(u32 ra, u32 rs, u32 uimm16) { auto rs_i64 = GetGpr(rs); auto res_i64 = m_ir_builder->CreateXor(rs_i64, (u64)uimm16 << 16); SetGpr(ra, res_i64); //InterpreterCall("XORIS", &PPUInterpreter::XORIS, ra, rs, uimm16); } -void PPULLVMRecompiler::ANDI_(u32 ra, u32 rs, u32 uimm16) { +void Compiler::ANDI_(u32 ra, u32 rs, u32 uimm16) { auto rs_i64 = GetGpr(rs); auto res_i64 = m_ir_builder->CreateAnd(rs_i64, uimm16); SetGpr(ra, res_i64); @@ -1762,7 +1834,7 @@ void PPULLVMRecompiler::ANDI_(u32 ra, u32 rs, u32 uimm16) { //InterpreterCall("ANDI_", &PPUInterpreter::ANDI_, ra, rs, uimm16); } -void PPULLVMRecompiler::ANDIS_(u32 ra, u32 rs, u32 uimm16) { +void Compiler::ANDIS_(u32 ra, u32 rs, u32 uimm16) { auto rs_i64 = GetGpr(rs); auto res_i64 = m_ir_builder->CreateAnd(rs_i64, (u64)uimm16 << 16); SetGpr(ra, res_i64); @@ -1770,7 +1842,7 @@ void PPULLVMRecompiler::ANDIS_(u32 ra, u32 rs, u32 uimm16) { //InterpreterCall("ANDIS_", &PPUInterpreter::ANDIS_, ra, rs, uimm16); } -void PPULLVMRecompiler::RLDICL(u32 ra, u32 rs, u32 sh, u32 mb, bool rc) { +void Compiler::RLDICL(u32 ra, u32 rs, u32 sh, u32 mb, bool rc) { auto rs_i64 = GetGpr(rs); auto res_i64 = rs_i64; if (sh) { @@ -1788,7 +1860,7 @@ void PPULLVMRecompiler::RLDICL(u32 ra, u32 rs, u32 sh, u32 mb, bool rc) { //InterpreterCall("RLDICL", &PPUInterpreter::RLDICL, ra, rs, sh, mb, rc); } -void PPULLVMRecompiler::RLDICR(u32 ra, u32 rs, u32 sh, u32 me, bool rc) { +void Compiler::RLDICR(u32 ra, u32 rs, u32 sh, u32 me, bool rc) { auto rs_i64 = GetGpr(rs); auto res_i64 = rs_i64; if (sh) { @@ -1806,7 +1878,7 @@ void PPULLVMRecompiler::RLDICR(u32 ra, u32 rs, u32 sh, u32 me, bool rc) { //InterpreterCall("RLDICR", &PPUInterpreter::RLDICR, ra, rs, sh, me, rc); } -void PPULLVMRecompiler::RLDIC(u32 ra, u32 rs, u32 sh, u32 mb, bool rc) { +void Compiler::RLDIC(u32 ra, u32 rs, u32 sh, u32 mb, bool rc) { auto rs_i64 = GetGpr(rs); auto res_i64 = rs_i64; if (sh) { @@ -1824,7 +1896,7 @@ void PPULLVMRecompiler::RLDIC(u32 ra, u32 rs, u32 sh, u32 mb, bool rc) { //InterpreterCall("RLDIC", &PPUInterpreter::RLDIC, ra, rs, sh, mb, rc); } -void PPULLVMRecompiler::RLDIMI(u32 ra, u32 rs, u32 sh, u32 mb, bool rc) { +void Compiler::RLDIMI(u32 ra, u32 rs, u32 sh, u32 mb, bool rc) { auto rs_i64 = GetGpr(rs); auto ra_i64 = GetGpr(ra); auto res_i64 = rs_i64; @@ -1846,7 +1918,7 @@ void PPULLVMRecompiler::RLDIMI(u32 ra, u32 rs, u32 sh, u32 mb, bool rc) { //InterpreterCall("RLDIMI", &PPUInterpreter::RLDIMI, ra, rs, sh, mb, rc); } -void PPULLVMRecompiler::RLDC_LR(u32 ra, u32 rs, u32 rb, u32 m_eb, bool is_r, bool rc) { +void Compiler::RLDC_LR(u32 ra, u32 rs, u32 rb, u32 m_eb, bool is_r, bool rc) { auto rs_i64 = GetGpr(rs); auto rb_i64 = GetGpr(rb); auto shl_i64 = m_ir_builder->CreateAnd(rb_i64, 0x3F); @@ -1869,7 +1941,7 @@ void PPULLVMRecompiler::RLDC_LR(u32 ra, u32 rs, u32 rb, u32 m_eb, bool is_r, boo //InterpreterCall("RLDC_LR", &PPUInterpreter::RLDC_LR, ra, rs, rb, m_eb, is_r, rc); } -void PPULLVMRecompiler::CMP(u32 crfd, u32 l, u32 ra, u32 rb) { +void Compiler::CMP(u32 crfd, u32 l, u32 ra, u32 rb) { Value * ra_i64; Value * rb_i64; if (l == 0) { @@ -1884,11 +1956,11 @@ void PPULLVMRecompiler::CMP(u32 crfd, u32 l, u32 ra, u32 rb) { //InterpreterCall("CMP", &PPUInterpreter::CMP, crfd, l, ra, rb); } -void PPULLVMRecompiler::TW(u32 to, u32 ra, u32 rb) { +void Compiler::TW(u32 to, u32 ra, u32 rb) { InterpreterCall("TW", &PPUInterpreter::TW, to, ra, rb); } -void PPULLVMRecompiler::LVSL(u32 vd, u32 ra, u32 rb) { +void Compiler::LVSL(u32 vd, u32 ra, u32 rb) { static const u128 s_lvsl_values[] = { {0x08090A0B0C0D0E0F, 0x0001020304050607}, {0x090A0B0C0D0E0F10, 0x0102030405060708}, @@ -1923,7 +1995,7 @@ void PPULLVMRecompiler::LVSL(u32 vd, u32 ra, u32 rb) { //InterpreterCall("LVSL", &PPUInterpreter::LVSL, vd, ra, rb); } -void PPULLVMRecompiler::LVEBX(u32 vd, u32 ra, u32 rb) { +void Compiler::LVEBX(u32 vd, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); @@ -1940,7 +2012,7 @@ void PPULLVMRecompiler::LVEBX(u32 vd, u32 ra, u32 rb) { //InterpreterCall("LVEBX", &PPUInterpreter::LVEBX, vd, ra, rb); } -void PPULLVMRecompiler::SUBFC(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { +void Compiler::SUBFC(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { auto ra_i64 = GetGpr(ra); ra_i64 = m_ir_builder->CreateNeg(ra_i64); auto rb_i64 = GetGpr(rb); @@ -1960,7 +2032,7 @@ void PPULLVMRecompiler::SUBFC(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { //InterpreterCall("SUBFC", &PPUInterpreter::SUBFC, rd, ra, rb, oe, rc); } -void PPULLVMRecompiler::ADDC(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { +void Compiler::ADDC(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { auto ra_i64 = GetGpr(ra); auto rb_i64 = GetGpr(rb); auto res_s = m_ir_builder->CreateCall2(Intrinsic::getDeclaration(m_module, Intrinsic::uadd_with_overflow, m_ir_builder->getInt64Ty()), ra_i64, rb_i64); @@ -1979,7 +2051,7 @@ void PPULLVMRecompiler::ADDC(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { //InterpreterCall("ADDC", &PPUInterpreter::ADDC, rd, ra, rb, oe, rc); } -void PPULLVMRecompiler::MULHDU(u32 rd, u32 ra, u32 rb, bool rc) { +void Compiler::MULHDU(u32 rd, u32 ra, u32 rb, bool rc) { auto ra_i64 = GetGpr(ra); auto rb_i64 = GetGpr(rb); auto ra_i128 = m_ir_builder->CreateZExt(ra_i64, m_ir_builder->getIntNTy(128)); @@ -1996,7 +2068,7 @@ void PPULLVMRecompiler::MULHDU(u32 rd, u32 ra, u32 rb, bool rc) { //InterpreterCall("MULHDU", &PPUInterpreter::MULHDU, rd, ra, rb, rc); } -void PPULLVMRecompiler::MULHWU(u32 rd, u32 ra, u32 rb, bool rc) { +void Compiler::MULHWU(u32 rd, u32 ra, u32 rb, bool rc) { auto ra_i32 = GetGpr(ra, 32); auto rb_i32 = GetGpr(rb, 32); auto ra_i64 = m_ir_builder->CreateZExt(ra_i32, m_ir_builder->getInt64Ty()); @@ -2011,27 +2083,27 @@ void PPULLVMRecompiler::MULHWU(u32 rd, u32 ra, u32 rb, bool rc) { //InterpreterCall("MULHWU", &PPUInterpreter::MULHWU, rd, ra, rb, rc); } -void PPULLVMRecompiler::MFOCRF(u32 a, u32 rd, u32 crm) { +void Compiler::MFOCRF(u32 a, u32 rd, u32 crm) { auto cr_i32 = GetCr(); auto cr_i64 = m_ir_builder->CreateZExt(cr_i32, m_ir_builder->getInt64Ty()); SetGpr(rd, cr_i64); //InterpreterCall("MFOCRF", &PPUInterpreter::MFOCRF, a, rd, crm); } -void PPULLVMRecompiler::LWARX(u32 rd, u32 ra, u32 rb) { +void Compiler::LWARX(u32 rd, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); addr_i64 = m_ir_builder->CreateAdd(ra_i64, addr_i64); } - auto resv_addr_i8_ptr = m_ir_builder->CreateConstGEP1_32(GetPPUState(), (unsigned int)offsetof(PPUThread, R_ADDR)); + auto resv_addr_i8_ptr = m_ir_builder->CreateConstGEP1_32(m_state.args[CompileTaskState::Args::State], (unsigned int)offsetof(PPUThread, R_ADDR)); auto resv_addr_i64_ptr = m_ir_builder->CreateBitCast(resv_addr_i8_ptr, m_ir_builder->getInt64Ty()->getPointerTo()); m_ir_builder->CreateAlignedStore(addr_i64, resv_addr_i64_ptr, 8); auto resv_val_i32 = ReadMemory(addr_i64, 32, 4, false, false); auto resv_val_i64 = m_ir_builder->CreateZExt(resv_val_i32, m_ir_builder->getInt64Ty()); - auto resv_val_i8_ptr = m_ir_builder->CreateConstGEP1_32(GetPPUState(), (unsigned int)offsetof(PPUThread, R_VALUE)); + auto resv_val_i8_ptr = m_ir_builder->CreateConstGEP1_32(m_state.args[CompileTaskState::Args::State], (unsigned int)offsetof(PPUThread, R_VALUE)); auto resv_val_i64_ptr = m_ir_builder->CreateBitCast(resv_val_i8_ptr, m_ir_builder->getInt64Ty()->getPointerTo()); m_ir_builder->CreateAlignedStore(resv_val_i64, resv_val_i64_ptr, 8); @@ -2041,7 +2113,7 @@ void PPULLVMRecompiler::LWARX(u32 rd, u32 ra, u32 rb) { //InterpreterCall("LWARX", &PPUInterpreter::LWARX, rd, ra, rb); } -void PPULLVMRecompiler::LDX(u32 rd, u32 ra, u32 rb) { +void Compiler::LDX(u32 rd, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); @@ -2053,7 +2125,7 @@ void PPULLVMRecompiler::LDX(u32 rd, u32 ra, u32 rb) { //InterpreterCall("LDX", &PPUInterpreter::LDX, rd, ra, rb); } -void PPULLVMRecompiler::LWZX(u32 rd, u32 ra, u32 rb) { +void Compiler::LWZX(u32 rd, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); @@ -2066,7 +2138,7 @@ void PPULLVMRecompiler::LWZX(u32 rd, u32 ra, u32 rb) { //InterpreterCall("LWZX", &PPUInterpreter::LWZX, rd, ra, rb); } -void PPULLVMRecompiler::SLW(u32 ra, u32 rs, u32 rb, bool rc) { +void Compiler::SLW(u32 ra, u32 rs, u32 rb, bool rc) { auto rs_i32 = GetGpr(rs, 32); auto rs_i64 = m_ir_builder->CreateZExt(rs_i32, m_ir_builder->getInt64Ty()); auto rb_i8 = GetGpr(rb, 8); @@ -2084,7 +2156,7 @@ void PPULLVMRecompiler::SLW(u32 ra, u32 rs, u32 rb, bool rc) { //InterpreterCall("SLW", &PPUInterpreter::SLW, ra, rs, rb, rc); } -void PPULLVMRecompiler::CNTLZW(u32 ra, u32 rs, bool rc) { +void Compiler::CNTLZW(u32 ra, u32 rs, bool rc) { auto rs_i32 = GetGpr(rs, 32); auto res_i32 = m_ir_builder->CreateCall2(Intrinsic::getDeclaration(m_module, Intrinsic::ctlz, m_ir_builder->getInt32Ty()), rs_i32, m_ir_builder->getInt1(false)); auto res_i64 = m_ir_builder->CreateZExt(res_i32, m_ir_builder->getInt64Ty()); @@ -2097,7 +2169,7 @@ void PPULLVMRecompiler::CNTLZW(u32 ra, u32 rs, bool rc) { //InterpreterCall("CNTLZW", &PPUInterpreter::CNTLZW, ra, rs, rc); } -void PPULLVMRecompiler::SLD(u32 ra, u32 rs, u32 rb, bool rc) { +void Compiler::SLD(u32 ra, u32 rs, u32 rb, bool rc) { auto rs_i64 = GetGpr(rs); auto rs_i128 = m_ir_builder->CreateZExt(rs_i64, m_ir_builder->getIntNTy(128)); auto rb_i8 = GetGpr(rb, 8); @@ -2114,7 +2186,7 @@ void PPULLVMRecompiler::SLD(u32 ra, u32 rs, u32 rb, bool rc) { //InterpreterCall("SLD", &PPUInterpreter::SLD, ra, rs, rb, rc); } -void PPULLVMRecompiler::AND(u32 ra, u32 rs, u32 rb, bool rc) { +void Compiler::AND(u32 ra, u32 rs, u32 rb, bool rc) { auto rs_i64 = GetGpr(rs); auto rb_i64 = GetGpr(rb); auto res_i64 = m_ir_builder->CreateAnd(rs_i64, rb_i64); @@ -2126,7 +2198,7 @@ void PPULLVMRecompiler::AND(u32 ra, u32 rs, u32 rb, bool rc) { //InterpreterCall("AND", &PPUInterpreter::AND, ra, rs, rb, rc); } -void PPULLVMRecompiler::CMPL(u32 crfd, u32 l, u32 ra, u32 rb) { +void Compiler::CMPL(u32 crfd, u32 l, u32 ra, u32 rb) { Value * ra_i64; Value * rb_i64; if (l == 0) { @@ -2141,7 +2213,7 @@ void PPULLVMRecompiler::CMPL(u32 crfd, u32 l, u32 ra, u32 rb) { //InterpreterCall("CMPL", &PPUInterpreter::CMPL, crfd, l, ra, rb); } -void PPULLVMRecompiler::LVSR(u32 vd, u32 ra, u32 rb) { +void Compiler::LVSR(u32 vd, u32 ra, u32 rb) { static const u128 s_lvsr_values[] = { {0x18191A1B1C1D1E1F, 0x1011121314151617}, {0x1718191A1B1C1D1E, 0x0F10111213141516}, @@ -2176,7 +2248,7 @@ void PPULLVMRecompiler::LVSR(u32 vd, u32 ra, u32 rb) { //InterpreterCall("LVSR", &PPUInterpreter::LVSR, vd, ra, rb); } -void PPULLVMRecompiler::LVEHX(u32 vd, u32 ra, u32 rb) { +void Compiler::LVEHX(u32 vd, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); @@ -2195,7 +2267,7 @@ void PPULLVMRecompiler::LVEHX(u32 vd, u32 ra, u32 rb) { //InterpreterCall("LVEHX", &PPUInterpreter::LVEHX, vd, ra, rb); } -void PPULLVMRecompiler::SUBF(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { +void Compiler::SUBF(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { auto ra_i64 = GetGpr(ra); auto rb_i64 = GetGpr(rb); auto diff_i64 = m_ir_builder->CreateSub(rb_i64, ra_i64); @@ -2211,7 +2283,7 @@ void PPULLVMRecompiler::SUBF(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { //InterpreterCall("SUBF", &PPUInterpreter::SUBF, rd, ra, rb, oe, rc); } -void PPULLVMRecompiler::LDUX(u32 rd, u32 ra, u32 rb) { +void Compiler::LDUX(u32 rd, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); auto ra_i64 = GetGpr(ra); addr_i64 = m_ir_builder->CreateAdd(ra_i64, addr_i64); @@ -2222,12 +2294,13 @@ void PPULLVMRecompiler::LDUX(u32 rd, u32 ra, u32 rb) { //InterpreterCall("LDUX", &PPUInterpreter::LDUX, rd, ra, rb); } -void PPULLVMRecompiler::DCBST(u32 ra, u32 rb) { +void Compiler::DCBST(u32 ra, u32 rb) { // TODO: Implement this + m_ir_builder->CreateCall(Intrinsic::getDeclaration(m_module, Intrinsic::donothing)); //InterpreterCall("DCBST", &PPUInterpreter::DCBST, ra, rb); } -void PPULLVMRecompiler::LWZUX(u32 rd, u32 ra, u32 rb) { +void Compiler::LWZUX(u32 rd, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); auto ra_i64 = GetGpr(ra); addr_i64 = m_ir_builder->CreateAdd(ra_i64, addr_i64); @@ -2239,7 +2312,7 @@ void PPULLVMRecompiler::LWZUX(u32 rd, u32 ra, u32 rb) { //InterpreterCall("LWZUX", &PPUInterpreter::LWZUX, rd, ra, rb); } -void PPULLVMRecompiler::CNTLZD(u32 ra, u32 rs, bool rc) { +void Compiler::CNTLZD(u32 ra, u32 rs, bool rc) { auto rs_i64 = GetGpr(rs); auto res_i64 = m_ir_builder->CreateCall2(Intrinsic::getDeclaration(m_module, Intrinsic::ctlz, m_ir_builder->getInt64Ty()), rs_i64, m_ir_builder->getInt1(false)); SetGpr(ra, res_i64); @@ -2251,15 +2324,15 @@ void PPULLVMRecompiler::CNTLZD(u32 ra, u32 rs, bool rc) { //InterpreterCall("CNTLZD", &PPUInterpreter::CNTLZD, ra, rs, rc); } -void PPULLVMRecompiler::ANDC(u32 ra, u32 rs, u32 rb, bool rc) { +void Compiler::ANDC(u32 ra, u32 rs, u32 rb, bool rc) { InterpreterCall("ANDC", &PPUInterpreter::ANDC, ra, rs, rb, rc); } -void PPULLVMRecompiler::TD(u32 to, u32 ra, u32 rb) { +void Compiler::TD(u32 to, u32 ra, u32 rb) { InterpreterCall("TD", &PPUInterpreter::TD, to, ra, rb); } -void PPULLVMRecompiler::LVEWX(u32 vd, u32 ra, u32 rb) { +void Compiler::LVEWX(u32 vd, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); @@ -2278,7 +2351,7 @@ void PPULLVMRecompiler::LVEWX(u32 vd, u32 ra, u32 rb) { //InterpreterCall("LVEWX", &PPUInterpreter::LVEWX, vd, ra, rb); } -void PPULLVMRecompiler::MULHD(u32 rd, u32 ra, u32 rb, bool rc) { +void Compiler::MULHD(u32 rd, u32 ra, u32 rb, bool rc) { auto ra_i64 = GetGpr(ra); auto rb_i64 = GetGpr(rb); auto ra_i128 = m_ir_builder->CreateSExt(ra_i64, m_ir_builder->getIntNTy(128)); @@ -2295,7 +2368,7 @@ void PPULLVMRecompiler::MULHD(u32 rd, u32 ra, u32 rb, bool rc) { //InterpreterCall("MULHD", &PPUInterpreter::MULHD, rd, ra, rb, rc); } -void PPULLVMRecompiler::MULHW(u32 rd, u32 ra, u32 rb, bool rc) { +void Compiler::MULHW(u32 rd, u32 ra, u32 rb, bool rc) { auto ra_i32 = GetGpr(ra, 32); auto rb_i32 = GetGpr(rb, 32); auto ra_i64 = m_ir_builder->CreateSExt(ra_i32, m_ir_builder->getInt64Ty()); @@ -2310,19 +2383,19 @@ void PPULLVMRecompiler::MULHW(u32 rd, u32 ra, u32 rb, bool rc) { //InterpreterCall("MULHW", &PPUInterpreter::MULHW, rd, ra, rb, rc); } -void PPULLVMRecompiler::LDARX(u32 rd, u32 ra, u32 rb) { +void Compiler::LDARX(u32 rd, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); addr_i64 = m_ir_builder->CreateAdd(ra_i64, addr_i64); } - auto resv_addr_i8_ptr = m_ir_builder->CreateConstGEP1_32(GetPPUState(), (unsigned int)offsetof(PPUThread, R_ADDR)); + auto resv_addr_i8_ptr = m_ir_builder->CreateConstGEP1_32(m_state.args[CompileTaskState::Args::State], (unsigned int)offsetof(PPUThread, R_ADDR)); auto resv_addr_i64_ptr = m_ir_builder->CreateBitCast(resv_addr_i8_ptr, m_ir_builder->getInt64Ty()->getPointerTo()); m_ir_builder->CreateAlignedStore(addr_i64, resv_addr_i64_ptr, 8); auto resv_val_i64 = ReadMemory(addr_i64, 64, 8, false); - auto resv_val_i8_ptr = m_ir_builder->CreateConstGEP1_32(GetPPUState(), (unsigned int)offsetof(PPUThread, R_VALUE)); + auto resv_val_i8_ptr = m_ir_builder->CreateConstGEP1_32(m_state.args[CompileTaskState::Args::State], (unsigned int)offsetof(PPUThread, R_VALUE)); auto resv_val_i64_ptr = m_ir_builder->CreateBitCast(resv_val_i8_ptr, m_ir_builder->getInt64Ty()->getPointerTo()); m_ir_builder->CreateAlignedStore(resv_val_i64, resv_val_i64_ptr, 8); @@ -2331,12 +2404,13 @@ void PPULLVMRecompiler::LDARX(u32 rd, u32 ra, u32 rb) { //InterpreterCall("LDARX", &PPUInterpreter::LDARX, rd, ra, rb); } -void PPULLVMRecompiler::DCBF(u32 ra, u32 rb) { +void Compiler::DCBF(u32 ra, u32 rb) { // TODO: Implement this + m_ir_builder->CreateCall(Intrinsic::getDeclaration(m_module, Intrinsic::donothing)); //InterpreterCall("DCBF", &PPUInterpreter::DCBF, ra, rb); } -void PPULLVMRecompiler::LBZX(u32 rd, u32 ra, u32 rb) { +void Compiler::LBZX(u32 rd, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); @@ -2349,7 +2423,7 @@ void PPULLVMRecompiler::LBZX(u32 rd, u32 ra, u32 rb) { //InterpreterCall("LBZX", &PPUInterpreter::LBZX, rd, ra, rb); } -void PPULLVMRecompiler::LVX(u32 vd, u32 ra, u32 rb) { +void Compiler::LVX(u32 vd, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); @@ -2362,7 +2436,7 @@ void PPULLVMRecompiler::LVX(u32 vd, u32 ra, u32 rb) { //InterpreterCall("LVX", &PPUInterpreter::LVX, vd, ra, rb); } -void PPULLVMRecompiler::NEG(u32 rd, u32 ra, u32 oe, bool rc) { +void Compiler::NEG(u32 rd, u32 ra, u32 oe, bool rc) { auto ra_i64 = GetGpr(ra); auto diff_i64 = m_ir_builder->CreateSub(m_ir_builder->getInt64(0), ra_i64); SetGpr(rd, diff_i64); @@ -2377,7 +2451,7 @@ void PPULLVMRecompiler::NEG(u32 rd, u32 ra, u32 oe, bool rc) { //InterpreterCall("NEG", &PPUInterpreter::NEG, rd, ra, oe, rc); } -void PPULLVMRecompiler::LBZUX(u32 rd, u32 ra, u32 rb) { +void Compiler::LBZUX(u32 rd, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); auto ra_i64 = GetGpr(ra); addr_i64 = m_ir_builder->CreateAdd(ra_i64, addr_i64); @@ -2389,7 +2463,7 @@ void PPULLVMRecompiler::LBZUX(u32 rd, u32 ra, u32 rb) { //InterpreterCall("LBZUX", &PPUInterpreter::LBZUX, rd, ra, rb); } -void PPULLVMRecompiler::NOR(u32 ra, u32 rs, u32 rb, bool rc) { +void Compiler::NOR(u32 ra, u32 rs, u32 rb, bool rc) { auto rs_i64 = GetGpr(rs); auto rb_i64 = GetGpr(rb); auto res_i64 = m_ir_builder->CreateOr(rs_i64, rb_i64); @@ -2402,7 +2476,7 @@ void PPULLVMRecompiler::NOR(u32 ra, u32 rs, u32 rb, bool rc) { //InterpreterCall("NOR", &PPUInterpreter::NOR, ra, rs, rb, rc); } -void PPULLVMRecompiler::STVEBX(u32 vs, u32 ra, u32 rb) { +void Compiler::STVEBX(u32 vs, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); @@ -2417,15 +2491,15 @@ void PPULLVMRecompiler::STVEBX(u32 vs, u32 ra, u32 rb) { //InterpreterCall("STVEBX", &PPUInterpreter::STVEBX, vs, ra, rb); } -void PPULLVMRecompiler::SUBFE(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { +void Compiler::SUBFE(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { InterpreterCall("SUBFE", &PPUInterpreter::SUBFE, rd, ra, rb, oe, rc); } -void PPULLVMRecompiler::ADDE(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { +void Compiler::ADDE(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { InterpreterCall("ADDE", &PPUInterpreter::ADDE, rd, ra, rb, oe, rc); } -void PPULLVMRecompiler::MTOCRF(u32 l, u32 crm, u32 rs) { +void Compiler::MTOCRF(u32 l, u32 crm, u32 rs) { auto rs_i32 = GetGpr(rs, 32); auto cr_i32 = GetCr(); u32 mask = 0; @@ -2446,7 +2520,7 @@ void PPULLVMRecompiler::MTOCRF(u32 l, u32 crm, u32 rs) { //InterpreterCall("MTOCRF", &PPUInterpreter::MTOCRF, l, crm, rs); } -void PPULLVMRecompiler::STDX(u32 rs, u32 ra, u32 rb) { +void Compiler::STDX(u32 rs, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); @@ -2457,11 +2531,11 @@ void PPULLVMRecompiler::STDX(u32 rs, u32 ra, u32 rb) { //InterpreterCall("STDX", &PPUInterpreter::STDX, rs, ra, rb); } -void PPULLVMRecompiler::STWCX_(u32 rs, u32 ra, u32 rb) { +void Compiler::STWCX_(u32 rs, u32 ra, u32 rb) { InterpreterCall("STWCX_", &PPUInterpreter::STWCX_, rs, ra, rb); } -void PPULLVMRecompiler::STWX(u32 rs, u32 ra, u32 rb) { +void Compiler::STWX(u32 rs, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); @@ -2472,7 +2546,7 @@ void PPULLVMRecompiler::STWX(u32 rs, u32 ra, u32 rb) { //InterpreterCall("STWX", &PPUInterpreter::STWX, rs, ra, rb); } -void PPULLVMRecompiler::STVEHX(u32 vs, u32 ra, u32 rb) { +void Compiler::STVEHX(u32 vs, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); @@ -2489,7 +2563,7 @@ void PPULLVMRecompiler::STVEHX(u32 vs, u32 ra, u32 rb) { //InterpreterCall("STVEHX", &PPUInterpreter::STVEHX, vs, ra, rb); } -void PPULLVMRecompiler::STDUX(u32 rs, u32 ra, u32 rb) { +void Compiler::STDUX(u32 rs, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); auto ra_i64 = GetGpr(ra); addr_i64 = m_ir_builder->CreateAdd(ra_i64, addr_i64); @@ -2499,7 +2573,7 @@ void PPULLVMRecompiler::STDUX(u32 rs, u32 ra, u32 rb) { //InterpreterCall("STDUX", &PPUInterpreter::STDUX, rs, ra, rb); } -void PPULLVMRecompiler::STWUX(u32 rs, u32 ra, u32 rb) { +void Compiler::STWUX(u32 rs, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); auto ra_i64 = GetGpr(ra); addr_i64 = m_ir_builder->CreateAdd(ra_i64, addr_i64); @@ -2509,7 +2583,7 @@ void PPULLVMRecompiler::STWUX(u32 rs, u32 ra, u32 rb) { //InterpreterCall("STWUX", &PPUInterpreter::STWUX, rs, ra, rb); } -void PPULLVMRecompiler::STVEWX(u32 vs, u32 ra, u32 rb) { +void Compiler::STVEWX(u32 vs, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); @@ -2526,7 +2600,7 @@ void PPULLVMRecompiler::STVEWX(u32 vs, u32 ra, u32 rb) { //InterpreterCall("STVEWX", &PPUInterpreter::STVEWX, vs, ra, rb); } -void PPULLVMRecompiler::ADDZE(u32 rd, u32 ra, u32 oe, bool rc) { +void Compiler::ADDZE(u32 rd, u32 ra, u32 oe, bool rc) { auto ra_i64 = GetGpr(ra); auto ca_i64 = GetXerCa(); auto res_s = m_ir_builder->CreateCall2(Intrinsic::getDeclaration(m_module, Intrinsic::uadd_with_overflow, m_ir_builder->getInt64Ty()), ra_i64, ca_i64); @@ -2541,15 +2615,15 @@ void PPULLVMRecompiler::ADDZE(u32 rd, u32 ra, u32 oe, bool rc) { //InterpreterCall("ADDZE", &PPUInterpreter::ADDZE, rd, ra, oe, rc); } -void PPULLVMRecompiler::SUBFZE(u32 rd, u32 ra, u32 oe, bool rc) { +void Compiler::SUBFZE(u32 rd, u32 ra, u32 oe, bool rc) { InterpreterCall("SUBFZE", &PPUInterpreter::SUBFZE, rd, ra, oe, rc); } -void PPULLVMRecompiler::STDCX_(u32 rs, u32 ra, u32 rb) { +void Compiler::STDCX_(u32 rs, u32 ra, u32 rb) { InterpreterCall("STDCX_", &PPUInterpreter::STDCX_, rs, ra, rb); } -void PPULLVMRecompiler::STBX(u32 rs, u32 ra, u32 rb) { +void Compiler::STBX(u32 rs, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); @@ -2560,7 +2634,7 @@ void PPULLVMRecompiler::STBX(u32 rs, u32 ra, u32 rb) { //InterpreterCall("STBX", &PPUInterpreter::STBX, rs, ra, rb); } -void PPULLVMRecompiler::STVX(u32 vs, u32 ra, u32 rb) { +void Compiler::STVX(u32 vs, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); @@ -2572,11 +2646,11 @@ void PPULLVMRecompiler::STVX(u32 vs, u32 ra, u32 rb) { //InterpreterCall("STVX", &PPUInterpreter::STVX, vs, ra, rb); } -void PPULLVMRecompiler::SUBFME(u32 rd, u32 ra, u32 oe, bool rc) { +void Compiler::SUBFME(u32 rd, u32 ra, u32 oe, bool rc) { InterpreterCall("SUBFME", &PPUInterpreter::SUBFME, rd, ra, oe, rc); } -void PPULLVMRecompiler::MULLD(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { +void Compiler::MULLD(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { auto ra_i64 = GetGpr(ra); auto rb_i64 = GetGpr(rb); auto prod_i64 = m_ir_builder->CreateMul(ra_i64, rb_i64); @@ -2590,11 +2664,11 @@ void PPULLVMRecompiler::MULLD(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { //InterpreterCall("MULLD", &PPUInterpreter::MULLD, rd, ra, rb, oe, rc); } -void PPULLVMRecompiler::ADDME(u32 rd, u32 ra, u32 oe, bool rc) { +void Compiler::ADDME(u32 rd, u32 ra, u32 oe, bool rc) { InterpreterCall("ADDME", &PPUInterpreter::ADDME, rd, ra, oe, rc); } -void PPULLVMRecompiler::MULLW(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { +void Compiler::MULLW(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { auto ra_i32 = GetGpr(ra, 32); auto rb_i32 = GetGpr(rb, 32); auto ra_i64 = m_ir_builder->CreateSExt(ra_i32, m_ir_builder->getInt64Ty()); @@ -2610,12 +2684,13 @@ void PPULLVMRecompiler::MULLW(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { //InterpreterCall("MULLW", &PPUInterpreter::MULLW, rd, ra, rb, oe, rc); } -void PPULLVMRecompiler::DCBTST(u32 ra, u32 rb, u32 th) { +void Compiler::DCBTST(u32 ra, u32 rb, u32 th) { // TODO: Implement this + m_ir_builder->CreateCall(Intrinsic::getDeclaration(m_module, Intrinsic::donothing)); //InterpreterCall("DCBTST", &PPUInterpreter::DCBTST, ra, rb, th); } -void PPULLVMRecompiler::STBUX(u32 rs, u32 ra, u32 rb) { +void Compiler::STBUX(u32 rs, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); auto ra_i64 = GetGpr(ra); addr_i64 = m_ir_builder->CreateAdd(ra_i64, addr_i64); @@ -2625,7 +2700,7 @@ void PPULLVMRecompiler::STBUX(u32 rs, u32 ra, u32 rb) { //InterpreterCall("STBUX", &PPUInterpreter::STBUX, rs, ra, rb); } -void PPULLVMRecompiler::ADD(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { +void Compiler::ADD(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { auto ra_i64 = GetGpr(ra); auto rb_i64 = GetGpr(rb); auto sum_i64 = m_ir_builder->CreateAdd(ra_i64, rb_i64); @@ -2641,12 +2716,13 @@ void PPULLVMRecompiler::ADD(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { //InterpreterCall("ADD", &PPUInterpreter::ADD, rd, ra, rb, oe, rc); } -void PPULLVMRecompiler::DCBT(u32 ra, u32 rb, u32 th) { +void Compiler::DCBT(u32 ra, u32 rb, u32 th) { // TODO: Implement this using prefetch + m_ir_builder->CreateCall(Intrinsic::getDeclaration(m_module, Intrinsic::donothing)); //InterpreterCall("DCBT", &PPUInterpreter::DCBT, ra, rb, th); } -void PPULLVMRecompiler::LHZX(u32 rd, u32 ra, u32 rb) { +void Compiler::LHZX(u32 rd, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); @@ -2659,15 +2735,15 @@ void PPULLVMRecompiler::LHZX(u32 rd, u32 ra, u32 rb) { //InterpreterCall("LHZX", &PPUInterpreter::LHZX, rd, ra, rb); } -void PPULLVMRecompiler::EQV(u32 ra, u32 rs, u32 rb, bool rc) { +void Compiler::EQV(u32 ra, u32 rs, u32 rb, bool rc) { InterpreterCall("EQV", &PPUInterpreter::EQV, ra, rs, rb, rc); } -void PPULLVMRecompiler::ECIWX(u32 rd, u32 ra, u32 rb) { +void Compiler::ECIWX(u32 rd, u32 ra, u32 rb) { InterpreterCall("ECIWX", &PPUInterpreter::ECIWX, rd, ra, rb); } -void PPULLVMRecompiler::LHZUX(u32 rd, u32 ra, u32 rb) { +void Compiler::LHZUX(u32 rd, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); auto ra_i64 = GetGpr(ra); addr_i64 = m_ir_builder->CreateAdd(ra_i64, addr_i64); @@ -2679,7 +2755,7 @@ void PPULLVMRecompiler::LHZUX(u32 rd, u32 ra, u32 rb) { //InterpreterCall("LHZUX", &PPUInterpreter::LHZUX, rd, ra, rb); } -void PPULLVMRecompiler::XOR(u32 ra, u32 rs, u32 rb, bool rc) { +void Compiler::XOR(u32 ra, u32 rs, u32 rb, bool rc) { auto rs_i64 = GetGpr(rs); auto rb_i64 = GetGpr(rb); auto res_i64 = m_ir_builder->CreateXor(rs_i64, rb_i64); @@ -2691,7 +2767,7 @@ void PPULLVMRecompiler::XOR(u32 ra, u32 rs, u32 rb, bool rc) { //InterpreterCall("XOR", &PPUInterpreter::XOR, ra, rs, rb, rc); } -void PPULLVMRecompiler::MFSPR(u32 rd, u32 spr) { +void Compiler::MFSPR(u32 rd, u32 spr) { Value * rd_i64; auto n = (spr >> 5) | ((spr & 0x1f) << 5); @@ -2717,7 +2793,7 @@ void PPULLVMRecompiler::MFSPR(u32 rd, u32 spr) { //InterpreterCall("MFSPR", &PPUInterpreter::MFSPR, rd, spr); } -void PPULLVMRecompiler::LWAX(u32 rd, u32 ra, u32 rb) { +void Compiler::LWAX(u32 rd, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); @@ -2730,11 +2806,11 @@ void PPULLVMRecompiler::LWAX(u32 rd, u32 ra, u32 rb) { //InterpreterCall("LWAX", &PPUInterpreter::LWAX, rd, ra, rb); } -void PPULLVMRecompiler::DST(u32 ra, u32 rb, u32 strm, u32 t) { +void Compiler::DST(u32 ra, u32 rb, u32 strm, u32 t) { InterpreterCall("DST", &PPUInterpreter::DST, ra, rb, strm, t); } -void PPULLVMRecompiler::LHAX(u32 rd, u32 ra, u32 rb) { +void Compiler::LHAX(u32 rd, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); @@ -2747,21 +2823,13 @@ void PPULLVMRecompiler::LHAX(u32 rd, u32 ra, u32 rb) { //InterpreterCall("LHAX", &PPUInterpreter::LHAX, rd, ra, rb); } -void PPULLVMRecompiler::LVXL(u32 vd, u32 ra, u32 rb) { +void Compiler::LVXL(u32 vd, u32 ra, u32 rb) { LVX(vd, ra, rb); //InterpreterCall("LVXL", &PPUInterpreter::LVXL, vd, ra, rb); } -void PPULLVMRecompiler::MFTB(u32 rd, u32 spr) { - static Function * s_get_time_fn = nullptr; - - if (s_get_time_fn == nullptr) { - s_get_time_fn = (Function *)m_module->getOrInsertFunction("get_time", m_ir_builder->getInt64Ty(), nullptr); - s_get_time_fn->setCallingConv(CallingConv::X86_64_Win64); - m_execution_engine->addGlobalMapping(s_get_time_fn, (void *)get_time); - } - - auto tb_i64 = (Value *)m_ir_builder->CreateCall(s_get_time_fn); +void Compiler::MFTB(u32 rd, u32 spr) { + auto tb_i64 = Call("get_time", get_time); u32 n = (spr >> 5) | ((spr & 0x1f) << 5); if (n == 0x10D) { @@ -2771,7 +2839,7 @@ void PPULLVMRecompiler::MFTB(u32 rd, u32 spr) { SetGpr(rd, tb_i64); } -void PPULLVMRecompiler::LWAUX(u32 rd, u32 ra, u32 rb) { +void Compiler::LWAUX(u32 rd, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); auto ra_i64 = GetGpr(ra); addr_i64 = m_ir_builder->CreateAdd(ra_i64, addr_i64); @@ -2783,11 +2851,11 @@ void PPULLVMRecompiler::LWAUX(u32 rd, u32 ra, u32 rb) { //InterpreterCall("LWAUX", &PPUInterpreter::LWAUX, rd, ra, rb); } -void PPULLVMRecompiler::DSTST(u32 ra, u32 rb, u32 strm, u32 t) { +void Compiler::DSTST(u32 ra, u32 rb, u32 strm, u32 t) { InterpreterCall("DSTST", &PPUInterpreter::DSTST, ra, rb, strm, t); } -void PPULLVMRecompiler::LHAUX(u32 rd, u32 ra, u32 rb) { +void Compiler::LHAUX(u32 rd, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); auto ra_i64 = GetGpr(ra); addr_i64 = m_ir_builder->CreateAdd(ra_i64, addr_i64); @@ -2799,7 +2867,7 @@ void PPULLVMRecompiler::LHAUX(u32 rd, u32 ra, u32 rb) { //InterpreterCall("LHAUX", &PPUInterpreter::LHAUX, rd, ra, rb); } -void PPULLVMRecompiler::STHX(u32 rs, u32 ra, u32 rb) { +void Compiler::STHX(u32 rs, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); @@ -2810,15 +2878,15 @@ void PPULLVMRecompiler::STHX(u32 rs, u32 ra, u32 rb) { //InterpreterCall("STHX", &PPUInterpreter::STHX, rs, ra, rb); } -void PPULLVMRecompiler::ORC(u32 ra, u32 rs, u32 rb, bool rc) { +void Compiler::ORC(u32 ra, u32 rs, u32 rb, bool rc) { InterpreterCall("ORC", &PPUInterpreter::ORC, ra, rs, rb, rc); } -void PPULLVMRecompiler::ECOWX(u32 rs, u32 ra, u32 rb) { +void Compiler::ECOWX(u32 rs, u32 ra, u32 rb) { InterpreterCall("ECOWX", &PPUInterpreter::ECOWX, rs, ra, rb); } -void PPULLVMRecompiler::STHUX(u32 rs, u32 ra, u32 rb) { +void Compiler::STHUX(u32 rs, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); auto ra_i64 = GetGpr(ra); addr_i64 = m_ir_builder->CreateAdd(ra_i64, addr_i64); @@ -2828,7 +2896,7 @@ void PPULLVMRecompiler::STHUX(u32 rs, u32 ra, u32 rb) { //InterpreterCall("STHUX", &PPUInterpreter::STHUX, rs, ra, rb); } -void PPULLVMRecompiler::OR(u32 ra, u32 rs, u32 rb, bool rc) { +void Compiler::OR(u32 ra, u32 rs, u32 rb, bool rc) { auto rs_i64 = GetGpr(rs); auto rb_i64 = GetGpr(rb); auto res_i64 = m_ir_builder->CreateOr(rs_i64, rb_i64); @@ -2840,7 +2908,7 @@ void PPULLVMRecompiler::OR(u32 ra, u32 rs, u32 rb, bool rc) { //InterpreterCall("OR", &PPUInterpreter::OR, ra, rs, rb, rc); } -void PPULLVMRecompiler::DIVDU(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { +void Compiler::DIVDU(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { auto ra_i64 = GetGpr(ra); auto rb_i64 = GetGpr(rb); auto res_i64 = m_ir_builder->CreateUDiv(ra_i64, rb_i64); @@ -2855,7 +2923,7 @@ void PPULLVMRecompiler::DIVDU(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { //InterpreterCall("DIVDU", &PPUInterpreter::DIVDU, rd, ra, rb, oe, rc); } -void PPULLVMRecompiler::DIVWU(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { +void Compiler::DIVWU(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { auto ra_i32 = GetGpr(ra, 32); auto rb_i32 = GetGpr(rb, 32); auto res_i32 = m_ir_builder->CreateUDiv(ra_i32, rb_i32); @@ -2871,7 +2939,7 @@ void PPULLVMRecompiler::DIVWU(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { //InterpreterCall("DIVWU", &PPUInterpreter::DIVWU, rd, ra, rb, oe, rc); } -void PPULLVMRecompiler::MTSPR(u32 spr, u32 rs) { +void Compiler::MTSPR(u32 spr, u32 rs) { auto rs_i64 = GetGpr(rs); auto n = (spr >> 5) | ((spr & 0x1f) << 5); @@ -2896,16 +2964,16 @@ void PPULLVMRecompiler::MTSPR(u32 spr, u32 rs) { //InterpreterCall("MTSPR", &PPUInterpreter::MTSPR, spr, rs); } -void PPULLVMRecompiler::NAND(u32 ra, u32 rs, u32 rb, bool rc) { +void Compiler::NAND(u32 ra, u32 rs, u32 rb, bool rc) { InterpreterCall("NAND", &PPUInterpreter::NAND, ra, rs, rb, rc); } -void PPULLVMRecompiler::STVXL(u32 vs, u32 ra, u32 rb) { +void Compiler::STVXL(u32 vs, u32 ra, u32 rb) { STVX(vs, ra, rb); //InterpreterCall("STVXL", &PPUInterpreter::STVXL, vs, ra, rb); } -void PPULLVMRecompiler::DIVD(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { +void Compiler::DIVD(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { auto ra_i64 = GetGpr(ra); auto rb_i64 = GetGpr(rb); auto res_i64 = m_ir_builder->CreateSDiv(ra_i64, rb_i64); @@ -2920,7 +2988,7 @@ void PPULLVMRecompiler::DIVD(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { //InterpreterCall("DIVD", &PPUInterpreter::DIVD, rd, ra, rb, oe, rc); } -void PPULLVMRecompiler::DIVW(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { +void Compiler::DIVW(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { auto ra_i32 = GetGpr(ra, 32); auto rb_i32 = GetGpr(rb, 32); auto res_i32 = m_ir_builder->CreateSDiv(ra_i32, rb_i32); @@ -2936,7 +3004,7 @@ void PPULLVMRecompiler::DIVW(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) { //InterpreterCall("DIVW", &PPUInterpreter::DIVW, rd, ra, rb, oe, rc); } -void PPULLVMRecompiler::LVLX(u32 vd, u32 ra, u32 rb) { +void Compiler::LVLX(u32 vd, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); @@ -2953,7 +3021,7 @@ void PPULLVMRecompiler::LVLX(u32 vd, u32 ra, u32 rb) { //InterpreterCall("LVLX", &PPUInterpreter::LVLX, vd, ra, rb); } -void PPULLVMRecompiler::LDBRX(u32 rd, u32 ra, u32 rb) { +void Compiler::LDBRX(u32 rd, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); @@ -2965,11 +3033,11 @@ void PPULLVMRecompiler::LDBRX(u32 rd, u32 ra, u32 rb) { //InterpreterCall("LDBRX", &PPUInterpreter::LDBRX, rd, ra, rb); } -void PPULLVMRecompiler::LSWX(u32 rd, u32 ra, u32 rb) { +void Compiler::LSWX(u32 rd, u32 ra, u32 rb) { InterpreterCall("LSWX", &PPUInterpreter::LSWX, rd, ra, rb); } -void PPULLVMRecompiler::LWBRX(u32 rd, u32 ra, u32 rb) { +void Compiler::LWBRX(u32 rd, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); @@ -2982,7 +3050,7 @@ void PPULLVMRecompiler::LWBRX(u32 rd, u32 ra, u32 rb) { //InterpreterCall("LWBRX", &PPUInterpreter::LWBRX, rd, ra, rb); } -void PPULLVMRecompiler::LFSX(u32 frd, u32 ra, u32 rb) { +void Compiler::LFSX(u32 frd, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); @@ -2994,7 +3062,7 @@ void PPULLVMRecompiler::LFSX(u32 frd, u32 ra, u32 rb) { //InterpreterCall("LFSX", &PPUInterpreter::LFSX, frd, ra, rb); } -void PPULLVMRecompiler::SRW(u32 ra, u32 rs, u32 rb, bool rc) { +void Compiler::SRW(u32 ra, u32 rs, u32 rb, bool rc) { auto rs_i32 = GetGpr(rs, 32); auto rs_i64 = m_ir_builder->CreateZExt(rs_i32, m_ir_builder->getInt64Ty()); auto rb_i8 = GetGpr(rb, 8); @@ -3010,7 +3078,7 @@ void PPULLVMRecompiler::SRW(u32 ra, u32 rs, u32 rb, bool rc) { //InterpreterCall("SRW", &PPUInterpreter::SRW, ra, rs, rb, rc); } -void PPULLVMRecompiler::SRD(u32 ra, u32 rs, u32 rb, bool rc) { +void Compiler::SRD(u32 ra, u32 rs, u32 rb, bool rc) { auto rs_i64 = GetGpr(rs); auto rs_i128 = m_ir_builder->CreateZExt(rs_i64, m_ir_builder->getIntNTy(128)); auto rb_i8 = GetGpr(rb, 8); @@ -3027,7 +3095,7 @@ void PPULLVMRecompiler::SRD(u32 ra, u32 rs, u32 rb, bool rc) { //InterpreterCall("SRD", &PPUInterpreter::SRD, ra, rs, rb, rc); } -void PPULLVMRecompiler::LVRX(u32 vd, u32 ra, u32 rb) { +void Compiler::LVRX(u32 vd, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); @@ -3049,7 +3117,7 @@ void PPULLVMRecompiler::LVRX(u32 vd, u32 ra, u32 rb) { //InterpreterCall("LVRX", &PPUInterpreter::LVRX, vd, ra, rb); } -void PPULLVMRecompiler::LSWI(u32 rd, u32 ra, u32 nb) { +void Compiler::LSWI(u32 rd, u32 ra, u32 nb) { auto addr_i64 = ra ? GetGpr(ra) : m_ir_builder->getInt64(0); nb = nb ? nb : 32; @@ -3071,7 +3139,7 @@ void PPULLVMRecompiler::LSWI(u32 rd, u32 ra, u32 nb) { //InterpreterCall("LSWI", &PPUInterpreter::LSWI, rd, ra, nb); } -void PPULLVMRecompiler::LFSUX(u32 frd, u32 ra, u32 rb) { +void Compiler::LFSUX(u32 frd, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); auto ra_i64 = GetGpr(ra); addr_i64 = m_ir_builder->CreateAdd(ra_i64, addr_i64); @@ -3081,12 +3149,12 @@ void PPULLVMRecompiler::LFSUX(u32 frd, u32 ra, u32 rb) { //InterpreterCall("LFSUX", &PPUInterpreter::LFSUX, frd, ra, rb); } -void PPULLVMRecompiler::SYNC(u32 l) { +void Compiler::SYNC(u32 l) { m_ir_builder->CreateCall(Intrinsic::getDeclaration(m_module, Intrinsic::x86_sse2_mfence)); //InterpreterCall("SYNC", &PPUInterpreter::SYNC, l); } -void PPULLVMRecompiler::LFDX(u32 frd, u32 ra, u32 rb) { +void Compiler::LFDX(u32 frd, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); @@ -3098,7 +3166,7 @@ void PPULLVMRecompiler::LFDX(u32 frd, u32 ra, u32 rb) { //InterpreterCall("LFDX", &PPUInterpreter::LFDX, frd, ra, rb); } -void PPULLVMRecompiler::LFDUX(u32 frd, u32 ra, u32 rb) { +void Compiler::LFDUX(u32 frd, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); auto ra_i64 = GetGpr(ra); addr_i64 = m_ir_builder->CreateAdd(ra_i64, addr_i64); @@ -3108,15 +3176,15 @@ void PPULLVMRecompiler::LFDUX(u32 frd, u32 ra, u32 rb) { //InterpreterCall("LFDUX", &PPUInterpreter::LFDUX, frd, ra, rb); } -void PPULLVMRecompiler::STVLX(u32 vs, u32 ra, u32 rb) { +void Compiler::STVLX(u32 vs, u32 ra, u32 rb) { InterpreterCall("STVLX", &PPUInterpreter::STVLX, vs, ra, rb); } -void PPULLVMRecompiler::STSWX(u32 rs, u32 ra, u32 rb) { +void Compiler::STSWX(u32 rs, u32 ra, u32 rb) { InterpreterCall("STSWX", &PPUInterpreter::STSWX, rs, ra, rb); } -void PPULLVMRecompiler::STWBRX(u32 rs, u32 ra, u32 rb) { +void Compiler::STWBRX(u32 rs, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); @@ -3127,7 +3195,7 @@ void PPULLVMRecompiler::STWBRX(u32 rs, u32 ra, u32 rb) { //InterpreterCall("STWBRX", &PPUInterpreter::STWBRX, rs, ra, rb); } -void PPULLVMRecompiler::STFSX(u32 frs, u32 ra, u32 rb) { +void Compiler::STFSX(u32 frs, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); @@ -3139,11 +3207,11 @@ void PPULLVMRecompiler::STFSX(u32 frs, u32 ra, u32 rb) { //InterpreterCall("STFSX", &PPUInterpreter::STFSX, frs, ra, rb); } -void PPULLVMRecompiler::STVRX(u32 vs, u32 ra, u32 rb) { +void Compiler::STVRX(u32 vs, u32 ra, u32 rb) { InterpreterCall("STVRX", &PPUInterpreter::STVRX, vs, ra, rb); } -void PPULLVMRecompiler::STFSUX(u32 frs, u32 ra, u32 rb) { +void Compiler::STFSUX(u32 frs, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); auto ra_i64 = GetGpr(ra); addr_i64 = m_ir_builder->CreateAdd(ra_i64, addr_i64); @@ -3154,7 +3222,7 @@ void PPULLVMRecompiler::STFSUX(u32 frs, u32 ra, u32 rb) { //InterpreterCall("STFSUX", &PPUInterpreter::STFSUX, frs, ra, rb); } -void PPULLVMRecompiler::STSWI(u32 rd, u32 ra, u32 nb) { +void Compiler::STSWI(u32 rd, u32 ra, u32 nb) { auto addr_i64 = ra ? GetGpr(ra) : m_ir_builder->getInt64(0); nb = nb ? nb : 32; @@ -3189,7 +3257,7 @@ void PPULLVMRecompiler::STSWI(u32 rd, u32 ra, u32 nb) { //InterpreterCall("STSWI", &PPUInterpreter::STSWI, rd, ra, nb); } -void PPULLVMRecompiler::STFDX(u32 frs, u32 ra, u32 rb) { +void Compiler::STFDX(u32 frs, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); @@ -3201,7 +3269,7 @@ void PPULLVMRecompiler::STFDX(u32 frs, u32 ra, u32 rb) { //InterpreterCall("STFDX", &PPUInterpreter::STFDX, frs, ra, rb); } -void PPULLVMRecompiler::STFDUX(u32 frs, u32 ra, u32 rb) { +void Compiler::STFDUX(u32 frs, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); auto ra_i64 = GetGpr(ra); addr_i64 = m_ir_builder->CreateAdd(ra_i64, addr_i64); @@ -3212,12 +3280,12 @@ void PPULLVMRecompiler::STFDUX(u32 frs, u32 ra, u32 rb) { //InterpreterCall("STFDUX", &PPUInterpreter::STFDUX, frs, ra, rb); } -void PPULLVMRecompiler::LVLXL(u32 vd, u32 ra, u32 rb) { +void Compiler::LVLXL(u32 vd, u32 ra, u32 rb) { LVLX(vd, ra, rb); //InterpreterCall("LVLXL", &PPUInterpreter::LVLXL, vd, ra, rb); } -void PPULLVMRecompiler::LHBRX(u32 rd, u32 ra, u32 rb) { +void Compiler::LHBRX(u32 rd, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); @@ -3230,7 +3298,7 @@ void PPULLVMRecompiler::LHBRX(u32 rd, u32 ra, u32 rb) { //InterpreterCall("LHBRX", &PPUInterpreter::LHBRX, rd, ra, rb); } -void PPULLVMRecompiler::SRAW(u32 ra, u32 rs, u32 rb, bool rc) { +void Compiler::SRAW(u32 ra, u32 rs, u32 rb, bool rc) { auto rs_i32 = GetGpr(rs, 32); auto rs_i64 = m_ir_builder->CreateZExt(rs_i32, m_ir_builder->getInt64Ty()); rs_i64 = m_ir_builder->CreateShl(rs_i64, 32); @@ -3254,7 +3322,7 @@ void PPULLVMRecompiler::SRAW(u32 ra, u32 rs, u32 rb, bool rc) { //InterpreterCall("SRAW", &PPUInterpreter::SRAW, ra, rs, rb, rc); } -void PPULLVMRecompiler::SRAD(u32 ra, u32 rs, u32 rb, bool rc) { +void Compiler::SRAD(u32 ra, u32 rs, u32 rb, bool rc) { auto rs_i64 = GetGpr(rs); auto rs_i128 = m_ir_builder->CreateZExt(rs_i64, m_ir_builder->getIntNTy(128)); rs_i128 = m_ir_builder->CreateShl(rs_i128, 64); @@ -3279,16 +3347,16 @@ void PPULLVMRecompiler::SRAD(u32 ra, u32 rs, u32 rb, bool rc) { //InterpreterCall("SRAD", &PPUInterpreter::SRAD, ra, rs, rb, rc); } -void PPULLVMRecompiler::LVRXL(u32 vd, u32 ra, u32 rb) { +void Compiler::LVRXL(u32 vd, u32 ra, u32 rb) { LVRX(vd, ra, rb); //InterpreterCall("LVRXL", &PPUInterpreter::LVRXL, vd, ra, rb); } -void PPULLVMRecompiler::DSS(u32 strm, u32 a) { +void Compiler::DSS(u32 strm, u32 a) { InterpreterCall("DSS", &PPUInterpreter::DSS, strm, a); } -void PPULLVMRecompiler::SRAWI(u32 ra, u32 rs, u32 sh, bool rc) { +void Compiler::SRAWI(u32 ra, u32 rs, u32 sh, bool rc) { auto rs_i32 = GetGpr(rs, 32); auto rs_i64 = m_ir_builder->CreateZExt(rs_i32, m_ir_builder->getInt64Ty()); rs_i64 = m_ir_builder->CreateShl(rs_i64, 32); @@ -3309,7 +3377,7 @@ void PPULLVMRecompiler::SRAWI(u32 ra, u32 rs, u32 sh, bool rc) { //InterpreterCall("SRAWI", &PPUInterpreter::SRAWI, ra, rs, sh, rc); } -void PPULLVMRecompiler::SRADI1(u32 ra, u32 rs, u32 sh, bool rc) { +void Compiler::SRADI1(u32 ra, u32 rs, u32 sh, bool rc) { auto rs_i64 = GetGpr(rs); auto rs_i128 = m_ir_builder->CreateZExt(rs_i64, m_ir_builder->getIntNTy(128)); rs_i128 = m_ir_builder->CreateShl(rs_i128, 64); @@ -3331,22 +3399,22 @@ void PPULLVMRecompiler::SRADI1(u32 ra, u32 rs, u32 sh, bool rc) { //InterpreterCall("SRADI1", &PPUInterpreter::SRADI1, ra, rs, sh, rc); } -void PPULLVMRecompiler::SRADI2(u32 ra, u32 rs, u32 sh, bool rc) { +void Compiler::SRADI2(u32 ra, u32 rs, u32 sh, bool rc) { SRADI1(ra, rs, sh, rc); //InterpreterCall("SRADI2", &PPUInterpreter::SRADI2, ra, rs, sh, rc); } -void PPULLVMRecompiler::EIEIO() { +void Compiler::EIEIO() { m_ir_builder->CreateCall(Intrinsic::getDeclaration(m_module, Intrinsic::x86_sse2_mfence)); //InterpreterCall("EIEIO", &PPUInterpreter::EIEIO); } -void PPULLVMRecompiler::STVLXL(u32 vs, u32 ra, u32 rb) { +void Compiler::STVLXL(u32 vs, u32 ra, u32 rb) { STVLX(vs, ra, rb); //InterpreterCall("STVLXL", &PPUInterpreter::STVLXL, vs, ra, rb); } -void PPULLVMRecompiler::STHBRX(u32 rs, u32 ra, u32 rb) { +void Compiler::STHBRX(u32 rs, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); @@ -3357,7 +3425,7 @@ void PPULLVMRecompiler::STHBRX(u32 rs, u32 ra, u32 rb) { //InterpreterCall("STHBRX", &PPUInterpreter::STHBRX, rs, ra, rb); } -void PPULLVMRecompiler::EXTSH(u32 ra, u32 rs, bool rc) { +void Compiler::EXTSH(u32 ra, u32 rs, bool rc) { auto rs_i16 = GetGpr(rs, 16); auto rs_i64 = m_ir_builder->CreateSExt(rs_i16, m_ir_builder->getInt64Ty()); SetGpr(ra, rs_i64); @@ -3368,12 +3436,12 @@ void PPULLVMRecompiler::EXTSH(u32 ra, u32 rs, bool rc) { //InterpreterCall("EXTSH", &PPUInterpreter::EXTSH, ra, rs, rc); } -void PPULLVMRecompiler::STVRXL(u32 vs, u32 ra, u32 rb) { +void Compiler::STVRXL(u32 vs, u32 ra, u32 rb) { STVRX(vs, ra, rb); //InterpreterCall("STVRXL", &PPUInterpreter::STVRXL, vs, ra, rb); } -void PPULLVMRecompiler::EXTSB(u32 ra, u32 rs, bool rc) { +void Compiler::EXTSB(u32 ra, u32 rs, bool rc) { auto rs_i8 = GetGpr(rs, 8); auto rs_i64 = m_ir_builder->CreateSExt(rs_i8, m_ir_builder->getInt64Ty()); SetGpr(ra, rs_i64); @@ -3384,7 +3452,7 @@ void PPULLVMRecompiler::EXTSB(u32 ra, u32 rs, bool rc) { //InterpreterCall("EXTSB", &PPUInterpreter::EXTSB, ra, rs, rc); } -void PPULLVMRecompiler::STFIWX(u32 frs, u32 ra, u32 rb) { +void Compiler::STFIWX(u32 frs, u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); @@ -3397,7 +3465,7 @@ void PPULLVMRecompiler::STFIWX(u32 frs, u32 ra, u32 rb) { //InterpreterCall("STFIWX", &PPUInterpreter::STFIWX, frs, ra, rb); } -void PPULLVMRecompiler::EXTSW(u32 ra, u32 rs, bool rc) { +void Compiler::EXTSW(u32 ra, u32 rs, bool rc) { auto rs_i32 = GetGpr(rs, 32); auto rs_i64 = m_ir_builder->CreateSExt(rs_i32, m_ir_builder->getInt64Ty()); SetGpr(ra, rs_i64); @@ -3408,11 +3476,11 @@ void PPULLVMRecompiler::EXTSW(u32 ra, u32 rs, bool rc) { //InterpreterCall("EXTSW", &PPUInterpreter::EXTSW, ra, rs, rc); } -void PPULLVMRecompiler::ICBI(u32 ra, u32 rs) { +void Compiler::ICBI(u32 ra, u32 rs) { InterpreterCall("ICBI", &PPUInterpreter::ICBI, ra, rs); } -void PPULLVMRecompiler::DCBZ(u32 ra, u32 rb) { +void Compiler::DCBZ(u32 ra, u32 rb) { auto addr_i64 = GetGpr(rb); if (ra) { auto ra_i64 = GetGpr(ra); @@ -3429,7 +3497,7 @@ void PPULLVMRecompiler::DCBZ(u32 ra, u32 rb) { //InterpreterCall("DCBZ", &PPUInterpreter::DCBZ, ra, rb);L } -void PPULLVMRecompiler::LWZ(u32 rd, u32 ra, s32 d) { +void Compiler::LWZ(u32 rd, u32 ra, s32 d) { auto addr_i64 = (Value *)m_ir_builder->getInt64((s64)d); if (ra) { auto ra_i64 = GetGpr(ra); @@ -3442,7 +3510,7 @@ void PPULLVMRecompiler::LWZ(u32 rd, u32 ra, s32 d) { //InterpreterCall("LWZ", &PPUInterpreter::LWZ, rd, ra, d); } -void PPULLVMRecompiler::LWZU(u32 rd, u32 ra, s32 d) { +void Compiler::LWZU(u32 rd, u32 ra, s32 d) { auto addr_i64 = (Value *)m_ir_builder->getInt64((s64)d); auto ra_i64 = GetGpr(ra); addr_i64 = m_ir_builder->CreateAdd(ra_i64, addr_i64); @@ -3454,7 +3522,7 @@ void PPULLVMRecompiler::LWZU(u32 rd, u32 ra, s32 d) { //InterpreterCall("LWZU", &PPUInterpreter::LWZU, rd, ra, d); } -void PPULLVMRecompiler::LBZ(u32 rd, u32 ra, s32 d) { +void Compiler::LBZ(u32 rd, u32 ra, s32 d) { auto addr_i64 = (Value *)m_ir_builder->getInt64((s64)d); if (ra) { auto ra_i64 = GetGpr(ra); @@ -3467,7 +3535,7 @@ void PPULLVMRecompiler::LBZ(u32 rd, u32 ra, s32 d) { //InterpreterCall("LBZ", &PPUInterpreter::LBZ, rd, ra, d); } -void PPULLVMRecompiler::LBZU(u32 rd, u32 ra, s32 d) { +void Compiler::LBZU(u32 rd, u32 ra, s32 d) { auto addr_i64 = (Value *)m_ir_builder->getInt64((s64)d); auto ra_i64 = GetGpr(ra); addr_i64 = m_ir_builder->CreateAdd(ra_i64, addr_i64); @@ -3479,7 +3547,7 @@ void PPULLVMRecompiler::LBZU(u32 rd, u32 ra, s32 d) { //InterpreterCall("LBZU", &PPUInterpreter::LBZU, rd, ra, d); } -void PPULLVMRecompiler::STW(u32 rs, u32 ra, s32 d) { +void Compiler::STW(u32 rs, u32 ra, s32 d) { auto addr_i64 = (Value *)m_ir_builder->getInt64((s64)d); if (ra) { auto ra_i64 = GetGpr(ra); @@ -3490,7 +3558,7 @@ void PPULLVMRecompiler::STW(u32 rs, u32 ra, s32 d) { //InterpreterCall("STW", &PPUInterpreter::STW, rs, ra, d); } -void PPULLVMRecompiler::STWU(u32 rs, u32 ra, s32 d) { +void Compiler::STWU(u32 rs, u32 ra, s32 d) { auto addr_i64 = (Value *)m_ir_builder->getInt64((s64)d); auto ra_i64 = GetGpr(ra); addr_i64 = m_ir_builder->CreateAdd(ra_i64, addr_i64); @@ -3500,7 +3568,7 @@ void PPULLVMRecompiler::STWU(u32 rs, u32 ra, s32 d) { //InterpreterCall("STWU", &PPUInterpreter::STWU, rs, ra, d); } -void PPULLVMRecompiler::STB(u32 rs, u32 ra, s32 d) { +void Compiler::STB(u32 rs, u32 ra, s32 d) { auto addr_i64 = (Value *)m_ir_builder->getInt64((s64)d); if (ra) { auto ra_i64 = GetGpr(ra); @@ -3511,7 +3579,7 @@ void PPULLVMRecompiler::STB(u32 rs, u32 ra, s32 d) { //InterpreterCall("STB", &PPUInterpreter::STB, rs, ra, d); } -void PPULLVMRecompiler::STBU(u32 rs, u32 ra, s32 d) { +void Compiler::STBU(u32 rs, u32 ra, s32 d) { auto addr_i64 = (Value *)m_ir_builder->getInt64((s64)d); auto ra_i64 = GetGpr(ra); addr_i64 = m_ir_builder->CreateAdd(ra_i64, addr_i64); @@ -3521,7 +3589,7 @@ void PPULLVMRecompiler::STBU(u32 rs, u32 ra, s32 d) { //InterpreterCall("STBU", &PPUInterpreter::STBU, rs, ra, d); } -void PPULLVMRecompiler::LHZ(u32 rd, u32 ra, s32 d) { +void Compiler::LHZ(u32 rd, u32 ra, s32 d) { auto addr_i64 = (Value *)m_ir_builder->getInt64((s64)d); if (ra) { auto ra_i64 = GetGpr(ra); @@ -3534,7 +3602,7 @@ void PPULLVMRecompiler::LHZ(u32 rd, u32 ra, s32 d) { //InterpreterCall("LHZ", &PPUInterpreter::LHZ, rd, ra, d); } -void PPULLVMRecompiler::LHZU(u32 rd, u32 ra, s32 d) { +void Compiler::LHZU(u32 rd, u32 ra, s32 d) { auto addr_i64 = (Value *)m_ir_builder->getInt64((s64)d); auto ra_i64 = GetGpr(ra); addr_i64 = m_ir_builder->CreateAdd(ra_i64, addr_i64); @@ -3546,7 +3614,7 @@ void PPULLVMRecompiler::LHZU(u32 rd, u32 ra, s32 d) { //InterpreterCall("LHZU", &PPUInterpreter::LHZU, rd, ra, d); } -void PPULLVMRecompiler::LHA(u32 rd, u32 ra, s32 d) { +void Compiler::LHA(u32 rd, u32 ra, s32 d) { auto addr_i64 = (Value *)m_ir_builder->getInt64((s64)d); if (ra) { auto ra_i64 = GetGpr(ra); @@ -3559,7 +3627,7 @@ void PPULLVMRecompiler::LHA(u32 rd, u32 ra, s32 d) { //InterpreterCall("LHA", &PPUInterpreter::LHA, rd, ra, d); } -void PPULLVMRecompiler::LHAU(u32 rd, u32 ra, s32 d) { +void Compiler::LHAU(u32 rd, u32 ra, s32 d) { auto addr_i64 = (Value *)m_ir_builder->getInt64((s64)d); auto ra_i64 = GetGpr(ra); addr_i64 = m_ir_builder->CreateAdd(ra_i64, addr_i64); @@ -3571,7 +3639,7 @@ void PPULLVMRecompiler::LHAU(u32 rd, u32 ra, s32 d) { //InterpreterCall("LHAU", &PPUInterpreter::LHAU, rd, ra, d); } -void PPULLVMRecompiler::STH(u32 rs, u32 ra, s32 d) { +void Compiler::STH(u32 rs, u32 ra, s32 d) { auto addr_i64 = (Value *)m_ir_builder->getInt64((s64)d); if (ra) { auto ra_i64 = GetGpr(ra); @@ -3582,7 +3650,7 @@ void PPULLVMRecompiler::STH(u32 rs, u32 ra, s32 d) { //InterpreterCall("STH", &PPUInterpreter::STH, rs, ra, d); } -void PPULLVMRecompiler::STHU(u32 rs, u32 ra, s32 d) { +void Compiler::STHU(u32 rs, u32 ra, s32 d) { auto addr_i64 = (Value *)m_ir_builder->getInt64((s64)d); auto ra_i64 = GetGpr(ra); addr_i64 = m_ir_builder->CreateAdd(ra_i64, addr_i64); @@ -3592,7 +3660,7 @@ void PPULLVMRecompiler::STHU(u32 rs, u32 ra, s32 d) { //InterpreterCall("STHU", &PPUInterpreter::STHU, rs, ra, d); } -void PPULLVMRecompiler::LMW(u32 rd, u32 ra, s32 d) { +void Compiler::LMW(u32 rd, u32 ra, s32 d) { auto addr_i64 = (Value *)m_ir_builder->getInt64((s64)d); if (ra) { addr_i64 = m_ir_builder->CreateAdd(addr_i64, GetGpr(ra)); @@ -3608,7 +3676,7 @@ void PPULLVMRecompiler::LMW(u32 rd, u32 ra, s32 d) { //InterpreterCall("LMW", &PPUInterpreter::LMW, rd, ra, d); } -void PPULLVMRecompiler::STMW(u32 rs, u32 ra, s32 d) { +void Compiler::STMW(u32 rs, u32 ra, s32 d) { auto addr_i64 = (Value *)m_ir_builder->getInt64((s64)d); if (ra) { addr_i64 = m_ir_builder->CreateAdd(addr_i64, GetGpr(ra)); @@ -3623,7 +3691,7 @@ void PPULLVMRecompiler::STMW(u32 rs, u32 ra, s32 d) { //InterpreterCall("STMW", &PPUInterpreter::STMW, rs, ra, d); } -void PPULLVMRecompiler::LFS(u32 frd, u32 ra, s32 d) { +void Compiler::LFS(u32 frd, u32 ra, s32 d) { auto addr_i64 = (Value *)m_ir_builder->getInt64((s64)d); if (ra) { auto ra_i64 = GetGpr(ra); @@ -3635,7 +3703,7 @@ void PPULLVMRecompiler::LFS(u32 frd, u32 ra, s32 d) { //InterpreterCall("LFS", &PPUInterpreter::LFS, frd, ra, d); } -void PPULLVMRecompiler::LFSU(u32 frd, u32 ra, s32 ds) { +void Compiler::LFSU(u32 frd, u32 ra, s32 ds) { auto addr_i64 = (Value *)m_ir_builder->getInt64((s64)ds); auto ra_i64 = GetGpr(ra); addr_i64 = m_ir_builder->CreateAdd(ra_i64, addr_i64); @@ -3645,7 +3713,7 @@ void PPULLVMRecompiler::LFSU(u32 frd, u32 ra, s32 ds) { //InterpreterCall("LFSU", &PPUInterpreter::LFSU, frd, ra, ds); } -void PPULLVMRecompiler::LFD(u32 frd, u32 ra, s32 d) { +void Compiler::LFD(u32 frd, u32 ra, s32 d) { auto addr_i64 = (Value *)m_ir_builder->getInt64((s64)d); if (ra) { auto ra_i64 = GetGpr(ra); @@ -3657,7 +3725,7 @@ void PPULLVMRecompiler::LFD(u32 frd, u32 ra, s32 d) { //InterpreterCall("LFD", &PPUInterpreter::LFD, frd, ra, d); } -void PPULLVMRecompiler::LFDU(u32 frd, u32 ra, s32 ds) { +void Compiler::LFDU(u32 frd, u32 ra, s32 ds) { auto addr_i64 = (Value *)m_ir_builder->getInt64((s64)ds); auto ra_i64 = GetGpr(ra); addr_i64 = m_ir_builder->CreateAdd(ra_i64, addr_i64); @@ -3668,7 +3736,7 @@ void PPULLVMRecompiler::LFDU(u32 frd, u32 ra, s32 ds) { //InterpreterCall("LFDU", &PPUInterpreter::LFDU, frd, ra, ds); } -void PPULLVMRecompiler::STFS(u32 frs, u32 ra, s32 d) { +void Compiler::STFS(u32 frs, u32 ra, s32 d) { auto addr_i64 = (Value *)m_ir_builder->getInt64((s64)d); if (ra) { auto ra_i64 = GetGpr(ra); @@ -3680,7 +3748,7 @@ void PPULLVMRecompiler::STFS(u32 frs, u32 ra, s32 d) { //InterpreterCall("STFS", &PPUInterpreter::STFS, frs, ra, d); } -void PPULLVMRecompiler::STFSU(u32 frs, u32 ra, s32 d) { +void Compiler::STFSU(u32 frs, u32 ra, s32 d) { auto addr_i64 = (Value *)m_ir_builder->getInt64((s64)d); auto ra_i64 = GetGpr(ra); addr_i64 = m_ir_builder->CreateAdd(ra_i64, addr_i64); @@ -3691,7 +3759,7 @@ void PPULLVMRecompiler::STFSU(u32 frs, u32 ra, s32 d) { //InterpreterCall("STFSU", &PPUInterpreter::STFSU, frs, ra, d); } -void PPULLVMRecompiler::STFD(u32 frs, u32 ra, s32 d) { +void Compiler::STFD(u32 frs, u32 ra, s32 d) { auto addr_i64 = (Value *)m_ir_builder->getInt64((s64)d); if (ra) { auto ra_i64 = GetGpr(ra); @@ -3703,7 +3771,7 @@ void PPULLVMRecompiler::STFD(u32 frs, u32 ra, s32 d) { //InterpreterCall("STFD", &PPUInterpreter::STFD, frs, ra, d); } -void PPULLVMRecompiler::STFDU(u32 frs, u32 ra, s32 d) { +void Compiler::STFDU(u32 frs, u32 ra, s32 d) { auto addr_i64 = (Value *)m_ir_builder->getInt64((s64)d); auto ra_i64 = GetGpr(ra); addr_i64 = m_ir_builder->CreateAdd(ra_i64, addr_i64); @@ -3714,7 +3782,7 @@ void PPULLVMRecompiler::STFDU(u32 frs, u32 ra, s32 d) { //InterpreterCall("STFDU", &PPUInterpreter::STFDU, frs, ra, d); } -void PPULLVMRecompiler::LD(u32 rd, u32 ra, s32 ds) { +void Compiler::LD(u32 rd, u32 ra, s32 ds) { auto addr_i64 = (Value *)m_ir_builder->getInt64((s64)ds); if (ra) { auto ra_i64 = GetGpr(ra); @@ -3726,7 +3794,7 @@ void PPULLVMRecompiler::LD(u32 rd, u32 ra, s32 ds) { //InterpreterCall("LD", &PPUInterpreter::LD, rd, ra, ds); } -void PPULLVMRecompiler::LDU(u32 rd, u32 ra, s32 ds) { +void Compiler::LDU(u32 rd, u32 ra, s32 ds) { auto addr_i64 = (Value *)m_ir_builder->getInt64((s64)ds); auto ra_i64 = GetGpr(ra); addr_i64 = m_ir_builder->CreateAdd(ra_i64, addr_i64); @@ -3737,7 +3805,7 @@ void PPULLVMRecompiler::LDU(u32 rd, u32 ra, s32 ds) { //InterpreterCall("LDU", &PPUInterpreter::LDU, rd, ra, ds); } -void PPULLVMRecompiler::LWA(u32 rd, u32 ra, s32 ds) { +void Compiler::LWA(u32 rd, u32 ra, s32 ds) { auto addr_i64 = (Value *)m_ir_builder->getInt64((s64)ds); if (ra) { auto ra_i64 = GetGpr(ra); @@ -3750,7 +3818,7 @@ void PPULLVMRecompiler::LWA(u32 rd, u32 ra, s32 ds) { //InterpreterCall("LWA", &PPUInterpreter::LWA, rd, ra, ds); } -void PPULLVMRecompiler::FDIVS(u32 frd, u32 fra, u32 frb, bool rc) { +void Compiler::FDIVS(u32 frd, u32 fra, u32 frb, bool rc) { auto ra_f64 = GetFpr(fra); auto rb_f64 = GetFpr(frb); auto res_f64 = m_ir_builder->CreateFDiv(ra_f64, rb_f64); @@ -3762,7 +3830,7 @@ void PPULLVMRecompiler::FDIVS(u32 frd, u32 fra, u32 frb, bool rc) { //InterpreterCall("FDIVS", &PPUInterpreter::FDIVS, frd, fra, frb, rc); } -void PPULLVMRecompiler::FSUBS(u32 frd, u32 fra, u32 frb, bool rc) { +void Compiler::FSUBS(u32 frd, u32 fra, u32 frb, bool rc) { auto ra_f64 = GetFpr(fra); auto rb_f64 = GetFpr(frb); auto res_f64 = m_ir_builder->CreateFSub(ra_f64, rb_f64); @@ -3774,7 +3842,7 @@ void PPULLVMRecompiler::FSUBS(u32 frd, u32 fra, u32 frb, bool rc) { //InterpreterCall("FSUBS", &PPUInterpreter::FSUBS, frd, fra, frb, rc); } -void PPULLVMRecompiler::FADDS(u32 frd, u32 fra, u32 frb, bool rc) { +void Compiler::FADDS(u32 frd, u32 fra, u32 frb, bool rc) { auto ra_f64 = GetFpr(fra); auto rb_f64 = GetFpr(frb); auto res_f64 = m_ir_builder->CreateFAdd(ra_f64, rb_f64); @@ -3786,7 +3854,7 @@ void PPULLVMRecompiler::FADDS(u32 frd, u32 fra, u32 frb, bool rc) { //InterpreterCall("FADDS", &PPUInterpreter::FADDS, frd, fra, frb, rc); } -void PPULLVMRecompiler::FSQRTS(u32 frd, u32 frb, bool rc) { +void Compiler::FSQRTS(u32 frd, u32 frb, bool rc) { auto rb_f64 = GetFpr(frb); auto res_f64 = (Value *)m_ir_builder->CreateCall(Intrinsic::getDeclaration(m_module, Intrinsic::sqrt, m_ir_builder->getDoubleTy()), rb_f64); auto res_f32 = m_ir_builder->CreateFPTrunc(res_f64, m_ir_builder->getFloatTy()); @@ -3797,11 +3865,11 @@ void PPULLVMRecompiler::FSQRTS(u32 frd, u32 frb, bool rc) { //InterpreterCall("FSQRTS", &PPUInterpreter::FSQRTS, frd, frb, rc); } -void PPULLVMRecompiler::FRES(u32 frd, u32 frb, bool rc) { +void Compiler::FRES(u32 frd, u32 frb, bool rc) { InterpreterCall("FRES", &PPUInterpreter::FRES, frd, frb, rc); } -void PPULLVMRecompiler::FMULS(u32 frd, u32 fra, u32 frc, bool rc) { +void Compiler::FMULS(u32 frd, u32 fra, u32 frc, bool rc) { auto ra_f64 = GetFpr(fra); auto rc_f64 = GetFpr(frc); auto res_f64 = m_ir_builder->CreateFMul(ra_f64, rc_f64); @@ -3813,7 +3881,7 @@ void PPULLVMRecompiler::FMULS(u32 frd, u32 fra, u32 frc, bool rc) { //InterpreterCall("FMULS", &PPUInterpreter::FMULS, frd, fra, frc, rc); } -void PPULLVMRecompiler::FMADDS(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) { +void Compiler::FMADDS(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) { auto ra_f64 = GetFpr(fra); auto rb_f64 = GetFpr(frb); auto rc_f64 = GetFpr(frc); @@ -3826,7 +3894,7 @@ void PPULLVMRecompiler::FMADDS(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) { //InterpreterCall("FMADDS", &PPUInterpreter::FMADDS, frd, fra, frc, frb, rc); } -void PPULLVMRecompiler::FMSUBS(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) { +void Compiler::FMSUBS(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) { auto ra_f64 = GetFpr(fra); auto rb_f64 = GetFpr(frb); auto rc_f64 = GetFpr(frc); @@ -3840,7 +3908,7 @@ void PPULLVMRecompiler::FMSUBS(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) { //InterpreterCall("FMSUBS", &PPUInterpreter::FMSUBS, frd, fra, frc, frb, rc); } -void PPULLVMRecompiler::FNMSUBS(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) { +void Compiler::FNMSUBS(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) { auto ra_f64 = GetFpr(fra); auto rb_f64 = GetFpr(frb); auto rc_f64 = GetFpr(frc); @@ -3855,7 +3923,7 @@ void PPULLVMRecompiler::FNMSUBS(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) { //InterpreterCall("FNMSUBS", &PPUInterpreter::FNMSUBS, frd, fra, frc, frb, rc); } -void PPULLVMRecompiler::FNMADDS(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) { +void Compiler::FNMADDS(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) { auto ra_f64 = GetFpr(fra); auto rb_f64 = GetFpr(frb); auto rc_f64 = GetFpr(frc); @@ -3869,7 +3937,7 @@ void PPULLVMRecompiler::FNMADDS(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) { //InterpreterCall("FNMADDS", &PPUInterpreter::FNMADDS, frd, fra, frc, frb, rc); } -void PPULLVMRecompiler::STD(u32 rs, u32 ra, s32 d) { +void Compiler::STD(u32 rs, u32 ra, s32 d) { auto addr_i64 = (Value *)m_ir_builder->getInt64((s64)d); if (ra) { auto ra_i64 = GetGpr(ra); @@ -3880,7 +3948,7 @@ void PPULLVMRecompiler::STD(u32 rs, u32 ra, s32 d) { //InterpreterCall("STD", &PPUInterpreter::STD, rs, ra, d); } -void PPULLVMRecompiler::STDU(u32 rs, u32 ra, s32 ds) { +void Compiler::STDU(u32 rs, u32 ra, s32 ds) { auto addr_i64 = (Value *)m_ir_builder->getInt64((s64)ds); auto ra_i64 = GetGpr(ra); addr_i64 = m_ir_builder->CreateAdd(ra_i64, addr_i64); @@ -3890,52 +3958,52 @@ void PPULLVMRecompiler::STDU(u32 rs, u32 ra, s32 ds) { //InterpreterCall("STDU", &PPUInterpreter::STDU, rs, ra, ds); } -void PPULLVMRecompiler::MTFSB1(u32 crbd, bool rc) { +void Compiler::MTFSB1(u32 crbd, bool rc) { InterpreterCall("MTFSB1", &PPUInterpreter::MTFSB1, crbd, rc); } -void PPULLVMRecompiler::MCRFS(u32 crbd, u32 crbs) { +void Compiler::MCRFS(u32 crbd, u32 crbs) { InterpreterCall("MCRFS", &PPUInterpreter::MCRFS, crbd, crbs); } -void PPULLVMRecompiler::MTFSB0(u32 crbd, bool rc) { +void Compiler::MTFSB0(u32 crbd, bool rc) { InterpreterCall("MTFSB0", &PPUInterpreter::MTFSB0, crbd, rc); } -void PPULLVMRecompiler::MTFSFI(u32 crfd, u32 i, bool rc) { +void Compiler::MTFSFI(u32 crfd, u32 i, bool rc) { InterpreterCall("MTFSFI", &PPUInterpreter::MTFSFI, crfd, i, rc); } -void PPULLVMRecompiler::MFFS(u32 frd, bool rc) { +void Compiler::MFFS(u32 frd, bool rc) { InterpreterCall("MFFS", &PPUInterpreter::MFFS, frd, rc); } -void PPULLVMRecompiler::MTFSF(u32 flm, u32 frb, bool rc) { +void Compiler::MTFSF(u32 flm, u32 frb, bool rc) { InterpreterCall("MTFSF", &PPUInterpreter::MTFSF, flm, frb, rc); } -void PPULLVMRecompiler::FCMPU(u32 crfd, u32 fra, u32 frb) { +void Compiler::FCMPU(u32 crfd, u32 fra, u32 frb) { InterpreterCall("FCMPU", &PPUInterpreter::FCMPU, crfd, fra, frb); } -void PPULLVMRecompiler::FRSP(u32 frd, u32 frb, bool rc) { +void Compiler::FRSP(u32 frd, u32 frb, bool rc) { InterpreterCall("FRSP", &PPUInterpreter::FRSP, frd, frb, rc); } -void PPULLVMRecompiler::FCTIW(u32 frd, u32 frb, bool rc) { +void Compiler::FCTIW(u32 frd, u32 frb, bool rc) { auto rb_f64 = GetFpr(frb); auto res_i32 = m_ir_builder->CreateFPToSI(rb_f64, m_ir_builder->getInt32Ty()); SetFpr(frd, res_i32); - + // TODO: Set flags / Handle NaN / Implement Saturation //InterpreterCall("FCTIW", &PPUInterpreter::FCTIW, frd, frb, rc); } -void PPULLVMRecompiler::FCTIWZ(u32 frd, u32 frb, bool rc) { +void Compiler::FCTIWZ(u32 frd, u32 frb, bool rc) { InterpreterCall("FCTIWZ", &PPUInterpreter::FCTIWZ, frd, frb, rc); } -void PPULLVMRecompiler::FDIV(u32 frd, u32 fra, u32 frb, bool rc) { +void Compiler::FDIV(u32 frd, u32 fra, u32 frb, bool rc) { auto ra_f64 = GetFpr(fra); auto rb_f64 = GetFpr(frb); auto res_f64 = m_ir_builder->CreateFDiv(ra_f64, rb_f64); @@ -3945,7 +4013,7 @@ void PPULLVMRecompiler::FDIV(u32 frd, u32 fra, u32 frb, bool rc) { //InterpreterCall("FDIV", &PPUInterpreter::FDIV, frd, fra, frb, rc); } -void PPULLVMRecompiler::FSUB(u32 frd, u32 fra, u32 frb, bool rc) { +void Compiler::FSUB(u32 frd, u32 fra, u32 frb, bool rc) { auto ra_f64 = GetFpr(fra); auto rb_f64 = GetFpr(frb); auto res_f64 = m_ir_builder->CreateFSub(ra_f64, rb_f64); @@ -3955,7 +4023,7 @@ void PPULLVMRecompiler::FSUB(u32 frd, u32 fra, u32 frb, bool rc) { //InterpreterCall("FSUB", &PPUInterpreter::FSUB, frd, fra, frb, rc); } -void PPULLVMRecompiler::FADD(u32 frd, u32 fra, u32 frb, bool rc) { +void Compiler::FADD(u32 frd, u32 fra, u32 frb, bool rc) { auto ra_f64 = GetFpr(fra); auto rb_f64 = GetFpr(frb); auto res_f64 = m_ir_builder->CreateFAdd(ra_f64, rb_f64); @@ -3965,7 +4033,7 @@ void PPULLVMRecompiler::FADD(u32 frd, u32 fra, u32 frb, bool rc) { //InterpreterCall("FADD", &PPUInterpreter::FADD, frd, fra, frb, rc); } -void PPULLVMRecompiler::FSQRT(u32 frd, u32 frb, bool rc) { +void Compiler::FSQRT(u32 frd, u32 frb, bool rc) { auto rb_f64 = GetFpr(frb); auto res_f64 = (Value *)m_ir_builder->CreateCall(Intrinsic::getDeclaration(m_module, Intrinsic::sqrt, m_ir_builder->getDoubleTy()), rb_f64); SetFpr(frd, res_f64); @@ -3974,11 +4042,11 @@ void PPULLVMRecompiler::FSQRT(u32 frd, u32 frb, bool rc) { //InterpreterCall("FSQRT", &PPUInterpreter::FSQRT, frd, frb, rc); } -void PPULLVMRecompiler::FSEL(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) { +void Compiler::FSEL(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) { InterpreterCall("FSEL", &PPUInterpreter::FSEL, frd, fra, frc, frb, rc); } -void PPULLVMRecompiler::FMUL(u32 frd, u32 fra, u32 frc, bool rc) { +void Compiler::FMUL(u32 frd, u32 fra, u32 frc, bool rc) { auto ra_f64 = GetFpr(fra); auto rc_f64 = GetFpr(frc); auto res_f64 = m_ir_builder->CreateFMul(ra_f64, rc_f64); @@ -3988,11 +4056,11 @@ void PPULLVMRecompiler::FMUL(u32 frd, u32 fra, u32 frc, bool rc) { //InterpreterCall("FMUL", &PPUInterpreter::FMUL, frd, fra, frc, rc); } -void PPULLVMRecompiler::FRSQRTE(u32 frd, u32 frb, bool rc) { +void Compiler::FRSQRTE(u32 frd, u32 frb, bool rc) { InterpreterCall("FRSQRTE", &PPUInterpreter::FRSQRTE, frd, frb, rc); } -void PPULLVMRecompiler::FMSUB(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) { +void Compiler::FMSUB(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) { auto ra_f64 = GetFpr(fra); auto rb_f64 = GetFpr(frb); auto rc_f64 = GetFpr(frc); @@ -4004,7 +4072,7 @@ void PPULLVMRecompiler::FMSUB(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) { //InterpreterCall("FMSUB", &PPUInterpreter::FMSUB, frd, fra, frc, frb, rc); } -void PPULLVMRecompiler::FMADD(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) { +void Compiler::FMADD(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) { auto ra_f64 = GetFpr(fra); auto rb_f64 = GetFpr(frb); auto rc_f64 = GetFpr(frc); @@ -4015,7 +4083,7 @@ void PPULLVMRecompiler::FMADD(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) { //InterpreterCall("FMADD", &PPUInterpreter::FMADD, frd, fra, frc, frb, rc); } -void PPULLVMRecompiler::FNMSUB(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) { +void Compiler::FNMSUB(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) { auto ra_f64 = GetFpr(fra); auto rb_f64 = GetFpr(frb); auto rc_f64 = GetFpr(frc); @@ -4027,7 +4095,7 @@ void PPULLVMRecompiler::FNMSUB(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) { //InterpreterCall("FNMSUB", &PPUInterpreter::FNMSUB, frd, fra, frc, frb, rc); } -void PPULLVMRecompiler::FNMADD(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) { +void Compiler::FNMADD(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) { auto ra_f64 = GetFpr(fra); auto rb_f64 = GetFpr(frb); auto rc_f64 = GetFpr(frc); @@ -4040,11 +4108,11 @@ void PPULLVMRecompiler::FNMADD(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) { //InterpreterCall("FNMADD", &PPUInterpreter::FNMADD, frd, fra, frc, frb, rc); } -void PPULLVMRecompiler::FCMPO(u32 crfd, u32 fra, u32 frb) { +void Compiler::FCMPO(u32 crfd, u32 fra, u32 frb) { InterpreterCall("FCMPO", &PPUInterpreter::FCMPO, crfd, fra, frb); } -void PPULLVMRecompiler::FNEG(u32 frd, u32 frb, bool rc) { +void Compiler::FNEG(u32 frd, u32 frb, bool rc) { auto rb_f64 = GetFpr(frb); rb_f64 = m_ir_builder->CreateFNeg(rb_f64); SetFpr(frd, rb_f64); @@ -4053,13 +4121,13 @@ void PPULLVMRecompiler::FNEG(u32 frd, u32 frb, bool rc) { //InterpreterCall("FNEG", &PPUInterpreter::FNEG, frd, frb, rc); } -void PPULLVMRecompiler::FMR(u32 frd, u32 frb, bool rc) { +void Compiler::FMR(u32 frd, u32 frb, bool rc) { SetFpr(frd, GetFpr(frb)); // TODO: Set flags //InterpreterCall("FMR", &PPUInterpreter::FMR, frd, frb, rc); } -void PPULLVMRecompiler::FNABS(u32 frd, u32 frb, bool rc) { +void Compiler::FNABS(u32 frd, u32 frb, bool rc) { auto rb_f64 = GetFpr(frb); auto res_f64 = (Value *)m_ir_builder->CreateCall(Intrinsic::getDeclaration(m_module, Intrinsic::fabs, m_ir_builder->getDoubleTy()), rb_f64); res_f64 = m_ir_builder->CreateFNeg(res_f64); @@ -4069,7 +4137,7 @@ void PPULLVMRecompiler::FNABS(u32 frd, u32 frb, bool rc) { //InterpreterCall("FNABS", &PPUInterpreter::FNABS, frd, frb, rc); } -void PPULLVMRecompiler::FABS(u32 frd, u32 frb, bool rc) { +void Compiler::FABS(u32 frd, u32 frb, bool rc) { auto rb_f64 = GetFpr(frb); auto res_f64 = (Value *)m_ir_builder->CreateCall(Intrinsic::getDeclaration(m_module, Intrinsic::fabs, m_ir_builder->getDoubleTy()), rb_f64); SetFpr(frd, res_f64); @@ -4078,20 +4146,20 @@ void PPULLVMRecompiler::FABS(u32 frd, u32 frb, bool rc) { //InterpreterCall("FABS", &PPUInterpreter::FABS, frd, frb, rc); } -void PPULLVMRecompiler::FCTID(u32 frd, u32 frb, bool rc) { +void Compiler::FCTID(u32 frd, u32 frb, bool rc) { auto rb_f64 = GetFpr(frb); auto res_i64 = m_ir_builder->CreateFPToSI(rb_f64, m_ir_builder->getInt64Ty()); SetFpr(frd, res_i64); - + // TODO: Set flags / Handle NaN / Implement Saturation //InterpreterCall("FCTID", &PPUInterpreter::FCTID, frd, frb, rc); } -void PPULLVMRecompiler::FCTIDZ(u32 frd, u32 frb, bool rc) { +void Compiler::FCTIDZ(u32 frd, u32 frb, bool rc) { InterpreterCall("FCTIDZ", &PPUInterpreter::FCTIDZ, frd, frb, rc); } -void PPULLVMRecompiler::FCFID(u32 frd, u32 frb, bool rc) { +void Compiler::FCFID(u32 frd, u32 frb, bool rc) { auto rb_i64 = GetFpr(frb, 64, true); auto res_f64 = m_ir_builder->CreateSIToFP(rb_i64, m_ir_builder->getDoubleTy()); SetFpr(frd, res_f64); @@ -4100,190 +4168,67 @@ void PPULLVMRecompiler::FCFID(u32 frd, u32 frb, bool rc) { //InterpreterCall("FCFID", &PPUInterpreter::FCFID, frd, frb, rc); } -void PPULLVMRecompiler::UNK(const u32 code, const u32 opcode, const u32 gcode) { +void Compiler::UNK(const u32 code, const u32 opcode, const u32 gcode) { //InterpreterCall("UNK", &PPUInterpreter::UNK, code, opcode, gcode); } -BasicBlock * PPULLVMRecompiler::GetBlockInFunction(u32 address, Function * function, bool create_if_not_exist) { - auto block_name = fmt::Format("instr_0x%X", address); +std::string Compiler::GetBasicBlockNameFromAddress(u32 address, const std::string & suffix) const { + std::string name; + + if (address == 0) { + name = "entry"; + } else if (address == 0xFFFFFFFF) { + name = "default_exit"; + } else { + name = fmt::Format("instr_0x%08X", address); + } + + if (suffix != "") { + name += "_" + suffix; + } + + return name; +} + +u32 Compiler::GetAddressFromBasicBlockName(const std::string & name) const { + if (name.compare(0, 6, "instr_") == 0) { + return strtoul(name.c_str() + 6, nullptr, 0); + } else if (name == GetBasicBlockNameFromAddress(0)) { + return 0; + } else if (name == GetBasicBlockNameFromAddress(0xFFFFFFFF)) { + return 0xFFFFFFFF; + } + + return 0; +} + +BasicBlock * Compiler::GetBasicBlockFromAddress(u32 address, const std::string & suffix, bool create_if_not_exist) { + auto block_name = GetBasicBlockNameFromAddress(address, suffix); BasicBlock * block = nullptr; - for (auto i = function->getBasicBlockList().begin(); i != function->getBasicBlockList().end(); i++) { + BasicBlock * next_block = nullptr; + for (auto i = m_state.function->begin(); i != m_state.function->end(); i++) { if (i->getName() == block_name) { block = &(*i); break; } + +#ifdef _DEBUG + auto block_address = GetAddressFromBasicBlockName(i->getName()); + if (block_address > address) { + next_block = &(*i); + break; + } +#endif } if (!block && create_if_not_exist) { - block = BasicBlock::Create(m_ir_builder->getContext(), block_name, function); + block = BasicBlock::Create(m_ir_builder->getContext(), block_name, m_state.function, next_block); } return block; } -void PPULLVMRecompiler::Compile(u32 address) { - auto compilation_start = std::chrono::high_resolution_clock::now(); - - // Get the revision number for this section - u32 revision = 0; - auto compiled = m_compiled.lower_bound(std::make_pair(address, 0)); - if (compiled != m_compiled.end() && compiled->first.first == address) { - revision = ~(compiled->first.second); - revision++; - } - - auto ir_build_start = std::chrono::high_resolution_clock::now(); - - // Create a function for this section - auto function_name = fmt::Format("fn_0x%X_%u", address, revision); - m_current_function = (Function *)m_module->getOrInsertFunction(function_name, m_ir_builder->getVoidTy(), - m_ir_builder->getInt8PtrTy() /*ppu_state*/, - m_ir_builder->getInt8PtrTy() /*interpreter*/, nullptr); - m_current_function->setCallingConv(CallingConv::X86_64_Win64); - auto arg_i = m_current_function->arg_begin(); - arg_i->setName("ppu_state"); - (++arg_i)->setName("interpreter"); - - // Add an entry block that branches to the first instruction - m_ir_builder->SetInsertPoint(BasicBlock::Create(m_ir_builder->getContext(), "entry", m_current_function)); - m_ir_builder->CreateBr(GetBlockInFunction(address, m_current_function, true)); - - // Convert each block in this section to LLVM IR - m_num_instructions = 0; - m_current_function_uncompiled_blocks_list.clear(); - m_current_function_unhit_blocks_list.clear(); - m_current_function_uncompiled_blocks_list.push_back(address); - while (!m_current_function_uncompiled_blocks_list.empty()) { - m_current_instruction_address = m_current_function_uncompiled_blocks_list.front(); - auto block = GetBlockInFunction(m_current_instruction_address, m_current_function, true); - m_hit_branch_instruction = false; - m_ir_builder->SetInsertPoint(block); - m_current_function_uncompiled_blocks_list.pop_front(); - - while (!m_hit_branch_instruction) { - if (!block->getInstList().empty()) { - break; - } - - u32 instr = vm::read32(m_current_instruction_address); - Decode(instr); - m_num_instructions++; - - m_current_instruction_address += 4; - if (!m_hit_branch_instruction) { - block = GetBlockInFunction(m_current_instruction_address, m_current_function, true); - m_ir_builder->CreateBr(block); - m_ir_builder->SetInsertPoint(block); - } - } - } - - auto ir_build_end = std::chrono::high_resolution_clock::now(); - m_ir_build_time += std::chrono::duration_cast(ir_build_end - ir_build_start); - - // Optimize this function - auto optimize_start = std::chrono::high_resolution_clock::now(); - m_fpm->run(*m_current_function); - auto optimize_end = std::chrono::high_resolution_clock::now(); - m_optimizing_time += std::chrono::duration_cast(optimize_end - optimize_start); - - // Translate to machine code - auto translate_start = std::chrono::high_resolution_clock::now(); - MachineCodeInfo mci; - m_execution_engine->runJITOnFunction(m_current_function, &mci); - auto translate_end = std::chrono::high_resolution_clock::now(); - m_translation_time += std::chrono::duration_cast(translate_end - translate_start); - - // Add the executable to private and shared data stores - ExecutableInfo executable_info; - executable_info.executable = (Executable)mci.address(); - executable_info.size = mci.size(); - executable_info.num_instructions = m_num_instructions; - executable_info.unhit_blocks_list = std::move(m_current_function_unhit_blocks_list); - executable_info.llvm_function = m_current_function; - m_compiled[std::make_pair(address, ~revision)] = executable_info; - - { - std::lock_guard lock(m_compiled_shared_lock); - m_compiled_shared[std::make_pair(address, ~revision)] = std::make_pair(executable_info.executable, 0); - } - - if (revision) { - m_revision.fetch_add(1, std::memory_order_relaxed); - } - - auto compilation_end = std::chrono::high_resolution_clock::now(); - m_compilation_time += std::chrono::duration_cast(compilation_end - compilation_start); -} - -void PPULLVMRecompiler::RemoveUnusedOldVersions() { - u32 num_removed = 0; - u32 prev_address = 0; - for (auto i = m_compiled.begin(); i != m_compiled.end(); i++) { - u32 current_address = i->first.first; - if (prev_address == current_address) { - bool erase_this_entry = false; - - { - std::lock_guard lock(m_compiled_shared_lock); - auto j = m_compiled_shared.find(i->first); - if (j->second.second == 0) { - m_compiled_shared.erase(j); - erase_this_entry = true; - } - } - - if (erase_this_entry) { - auto tmp = i; - i--; - m_execution_engine->freeMachineCodeForFunction(tmp->second.llvm_function); - tmp->second.llvm_function->eraseFromParent(); - m_compiled.erase(tmp); - num_removed++; - } - } - - prev_address = current_address; - } - - if (num_removed > 0) { - LOG_NOTICE(PPU, "Removed %u old versions", num_removed); - } -} - -bool PPULLVMRecompiler::NeedsCompiling(u32 address) { - auto i = m_compiled.lower_bound(std::make_pair(address, 0)); - if (i != m_compiled.end() && i->first.first == address) { - if (i->second.num_instructions >= 300) { - // This section has reached its limit. Don't allow further expansion. - return false; - } - - // If any of the unhit blocks in this function have been hit, then recompile this section - for (auto j = i->second.unhit_blocks_list.begin(); j != i->second.unhit_blocks_list.end(); j++) { - if (m_hit_blocks.find(*j) != m_hit_blocks.end()) { - return true; - } - } - - return false; - } else { - // This section has not been encountered before - return true; - } -} - -Value * PPULLVMRecompiler::GetPPUState() { - return m_current_function->arg_begin(); -} - -Value * PPULLVMRecompiler::GetInterpreter() { - auto i = m_current_function->arg_begin(); - i++; - return i; -} - -Value * PPULLVMRecompiler::GetBit(Value * val, u32 n) { +Value * Compiler::GetBit(Value * val, u32 n) { Value * bit; #ifdef PPU_LLVM_RECOMPILER_USE_BMI @@ -4305,11 +4250,11 @@ Value * PPULLVMRecompiler::GetBit(Value * val, u32 n) { return bit; } -Value * PPULLVMRecompiler::ClrBit(Value * val, u32 n) { +Value * Compiler::ClrBit(Value * val, u32 n) { return m_ir_builder->CreateAnd(val, ~((u64)1 << (val->getType()->getIntegerBitWidth() - n - 1))); } -Value * PPULLVMRecompiler::SetBit(Value * val, u32 n, Value * bit, bool doClear) { +Value * Compiler::SetBit(Value * val, u32 n, Value * bit, bool doClear) { if (doClear) { val = ClrBit(val, n); } @@ -4327,7 +4272,7 @@ Value * PPULLVMRecompiler::SetBit(Value * val, u32 n, Value * bit, bool doClear) return m_ir_builder->CreateOr(val, bit); } -Value * PPULLVMRecompiler::GetNibble(Value * val, u32 n) { +Value * Compiler::GetNibble(Value * val, u32 n) { Value * nibble; #ifdef PPU_LLVM_RECOMPILER_USE_BMI @@ -4349,11 +4294,11 @@ Value * PPULLVMRecompiler::GetNibble(Value * val, u32 n) { return nibble; } -Value * PPULLVMRecompiler::ClrNibble(Value * val, u32 n) { +Value * Compiler::ClrNibble(Value * val, u32 n) { return m_ir_builder->CreateAnd(val, ~((u64)0xF << ((((val->getType()->getIntegerBitWidth() >> 2) - 1) - n) * 4))); } -Value * PPULLVMRecompiler::SetNibble(Value * val, u32 n, Value * nibble, bool doClear) { +Value * Compiler::SetNibble(Value * val, u32 n, Value * nibble, bool doClear) { if (doClear) { val = ClrNibble(val, n); } @@ -4371,7 +4316,7 @@ Value * PPULLVMRecompiler::SetNibble(Value * val, u32 n, Value * nibble, bool do return m_ir_builder->CreateOr(val, nibble); } -Value * PPULLVMRecompiler::SetNibble(Value * val, u32 n, Value * b0, Value * b1, Value * b2, Value * b3, bool doClear) { +Value * Compiler::SetNibble(Value * val, u32 n, Value * b0, Value * b1, Value * b2, Value * b3, bool doClear) { if (doClear) { val = ClrNibble(val, n); } @@ -4395,58 +4340,58 @@ Value * PPULLVMRecompiler::SetNibble(Value * val, u32 n, Value * b0, Value * b1, return val; } -Value * PPULLVMRecompiler::GetPc() { - auto pc_i8_ptr = m_ir_builder->CreateConstGEP1_32(GetPPUState(), (unsigned int)offsetof(PPUThread, PC)); +Value * Compiler::GetPc() { + auto pc_i8_ptr = m_ir_builder->CreateConstGEP1_32(m_state.args[CompileTaskState::Args::State], (unsigned int)offsetof(PPUThread, PC)); auto pc_i32_ptr = m_ir_builder->CreateBitCast(pc_i8_ptr, m_ir_builder->getInt32Ty()->getPointerTo()); return m_ir_builder->CreateAlignedLoad(pc_i32_ptr, 4); } -void PPULLVMRecompiler::SetPc(Value * val_ix) { - auto pc_i8_ptr = m_ir_builder->CreateConstGEP1_32(GetPPUState(), (unsigned int)offsetof(PPUThread, PC)); +void Compiler::SetPc(Value * val_ix) { + auto pc_i8_ptr = m_ir_builder->CreateConstGEP1_32(m_state.args[CompileTaskState::Args::State], (unsigned int)offsetof(PPUThread, PC)); auto pc_i32_ptr = m_ir_builder->CreateBitCast(pc_i8_ptr, m_ir_builder->getInt32Ty()->getPointerTo()); auto val_i32 = m_ir_builder->CreateZExtOrTrunc(val_ix, m_ir_builder->getInt32Ty()); m_ir_builder->CreateAlignedStore(val_i32, pc_i32_ptr, 4); } -Value * PPULLVMRecompiler::GetGpr(u32 r, u32 num_bits) { - auto r_i8_ptr = m_ir_builder->CreateConstGEP1_32(GetPPUState(), (unsigned int)offsetof(PPUThread, GPR[r])); +Value * Compiler::GetGpr(u32 r, u32 num_bits) { + auto r_i8_ptr = m_ir_builder->CreateConstGEP1_32(m_state.args[CompileTaskState::Args::State], (unsigned int)offsetof(PPUThread, GPR[r])); auto r_ix_ptr = m_ir_builder->CreateBitCast(r_i8_ptr, m_ir_builder->getIntNTy(num_bits)->getPointerTo()); return m_ir_builder->CreateAlignedLoad(r_ix_ptr, 8); } -void PPULLVMRecompiler::SetGpr(u32 r, Value * val_x64) { - auto r_i8_ptr = m_ir_builder->CreateConstGEP1_32(GetPPUState(), (unsigned int)offsetof(PPUThread, GPR[r])); +void Compiler::SetGpr(u32 r, Value * val_x64) { + auto r_i8_ptr = m_ir_builder->CreateConstGEP1_32(m_state.args[CompileTaskState::Args::State], (unsigned int)offsetof(PPUThread, GPR[r])); auto r_i64_ptr = m_ir_builder->CreateBitCast(r_i8_ptr, m_ir_builder->getInt64Ty()->getPointerTo()); auto val_i64 = m_ir_builder->CreateBitCast(val_x64, m_ir_builder->getInt64Ty()); m_ir_builder->CreateAlignedStore(val_i64, r_i64_ptr, 8); } -Value * PPULLVMRecompiler::GetCr() { - auto cr_i8_ptr = m_ir_builder->CreateConstGEP1_32(GetPPUState(), (unsigned int)offsetof(PPUThread, CR)); +Value * Compiler::GetCr() { + auto cr_i8_ptr = m_ir_builder->CreateConstGEP1_32(m_state.args[CompileTaskState::Args::State], (unsigned int)offsetof(PPUThread, CR)); auto cr_i32_ptr = m_ir_builder->CreateBitCast(cr_i8_ptr, m_ir_builder->getInt32Ty()->getPointerTo()); return m_ir_builder->CreateAlignedLoad(cr_i32_ptr, 4); } -Value * PPULLVMRecompiler::GetCrField(u32 n) { +Value * Compiler::GetCrField(u32 n) { return GetNibble(GetCr(), n); } -void PPULLVMRecompiler::SetCr(Value * val_x32) { +void Compiler::SetCr(Value * val_x32) { auto val_i32 = m_ir_builder->CreateBitCast(val_x32, m_ir_builder->getInt32Ty()); - auto cr_i8_ptr = m_ir_builder->CreateConstGEP1_32(GetPPUState(), (unsigned int)offsetof(PPUThread, CR)); + auto cr_i8_ptr = m_ir_builder->CreateConstGEP1_32(m_state.args[CompileTaskState::Args::State], (unsigned int)offsetof(PPUThread, CR)); auto cr_i32_ptr = m_ir_builder->CreateBitCast(cr_i8_ptr, m_ir_builder->getInt32Ty()->getPointerTo()); m_ir_builder->CreateAlignedStore(val_i32, cr_i32_ptr, 4); } -void PPULLVMRecompiler::SetCrField(u32 n, Value * field) { +void Compiler::SetCrField(u32 n, Value * field) { SetCr(SetNibble(GetCr(), n, field)); } -void PPULLVMRecompiler::SetCrField(u32 n, Value * b0, Value * b1, Value * b2, Value * b3) { +void Compiler::SetCrField(u32 n, Value * b0, Value * b1, Value * b2, Value * b3) { SetCr(SetNibble(GetCr(), n, b0, b1, b2, b3)); } -void PPULLVMRecompiler::SetCrFieldSignedCmp(u32 n, Value * a, Value * b) { +void Compiler::SetCrFieldSignedCmp(u32 n, Value * a, Value * b) { auto lt_i1 = m_ir_builder->CreateICmpSLT(a, b); auto gt_i1 = m_ir_builder->CreateICmpSGT(a, b); auto eq_i1 = m_ir_builder->CreateICmpEQ(a, b); @@ -4455,7 +4400,7 @@ void PPULLVMRecompiler::SetCrFieldSignedCmp(u32 n, Value * a, Value * b) { SetCr(cr_i32); } -void PPULLVMRecompiler::SetCrFieldUnsignedCmp(u32 n, Value * a, Value * b) { +void Compiler::SetCrFieldUnsignedCmp(u32 n, Value * a, Value * b) { auto lt_i1 = m_ir_builder->CreateICmpULT(a, b); auto gt_i1 = m_ir_builder->CreateICmpUGT(a, b); auto eq_i1 = m_ir_builder->CreateICmpEQ(a, b); @@ -4464,7 +4409,7 @@ void PPULLVMRecompiler::SetCrFieldUnsignedCmp(u32 n, Value * a, Value * b) { SetCr(cr_i32); } -void PPULLVMRecompiler::SetCr6AfterVectorCompare(u32 vr) { +void Compiler::SetCr6AfterVectorCompare(u32 vr) { auto vr_v16i8 = GetVrAsIntVec(vr, 8); auto vr_mask_i32 = m_ir_builder->CreateCall(Intrinsic::getDeclaration(m_module, Intrinsic::x86_sse2_pmovmskb_128), vr_v16i8); auto cmp0_i1 = m_ir_builder->CreateICmpEQ(vr_mask_i32, m_ir_builder->getInt32(0)); @@ -4474,80 +4419,80 @@ void PPULLVMRecompiler::SetCr6AfterVectorCompare(u32 vr) { SetCr(cr_i32); } -Value * PPULLVMRecompiler::GetLr() { - auto lr_i8_ptr = m_ir_builder->CreateConstGEP1_32(GetPPUState(), (unsigned int)offsetof(PPUThread, LR)); +Value * Compiler::GetLr() { + auto lr_i8_ptr = m_ir_builder->CreateConstGEP1_32(m_state.args[CompileTaskState::Args::State], (unsigned int)offsetof(PPUThread, LR)); auto lr_i64_ptr = m_ir_builder->CreateBitCast(lr_i8_ptr, m_ir_builder->getInt64Ty()->getPointerTo()); return m_ir_builder->CreateAlignedLoad(lr_i64_ptr, 8); } -void PPULLVMRecompiler::SetLr(Value * val_x64) { +void Compiler::SetLr(Value * val_x64) { auto val_i64 = m_ir_builder->CreateBitCast(val_x64, m_ir_builder->getInt64Ty()); - auto lr_i8_ptr = m_ir_builder->CreateConstGEP1_32(GetPPUState(), (unsigned int)offsetof(PPUThread, LR)); + auto lr_i8_ptr = m_ir_builder->CreateConstGEP1_32(m_state.args[CompileTaskState::Args::State], (unsigned int)offsetof(PPUThread, LR)); auto lr_i64_ptr = m_ir_builder->CreateBitCast(lr_i8_ptr, m_ir_builder->getInt64Ty()->getPointerTo()); m_ir_builder->CreateAlignedStore(val_i64, lr_i64_ptr, 8); } -Value * PPULLVMRecompiler::GetCtr() { - auto ctr_i8_ptr = m_ir_builder->CreateConstGEP1_32(GetPPUState(), (unsigned int)offsetof(PPUThread, CTR)); +Value * Compiler::GetCtr() { + auto ctr_i8_ptr = m_ir_builder->CreateConstGEP1_32(m_state.args[CompileTaskState::Args::State], (unsigned int)offsetof(PPUThread, CTR)); auto ctr_i64_ptr = m_ir_builder->CreateBitCast(ctr_i8_ptr, m_ir_builder->getInt64Ty()->getPointerTo()); return m_ir_builder->CreateAlignedLoad(ctr_i64_ptr, 8); } -void PPULLVMRecompiler::SetCtr(Value * val_x64) { +void Compiler::SetCtr(Value * val_x64) { auto val_i64 = m_ir_builder->CreateBitCast(val_x64, m_ir_builder->getInt64Ty()); - auto ctr_i8_ptr = m_ir_builder->CreateConstGEP1_32(GetPPUState(), (unsigned int)offsetof(PPUThread, CTR)); + auto ctr_i8_ptr = m_ir_builder->CreateConstGEP1_32(m_state.args[CompileTaskState::Args::State], (unsigned int)offsetof(PPUThread, CTR)); auto ctr_i64_ptr = m_ir_builder->CreateBitCast(ctr_i8_ptr, m_ir_builder->getInt64Ty()->getPointerTo()); m_ir_builder->CreateAlignedStore(val_i64, ctr_i64_ptr, 8); } -Value * PPULLVMRecompiler::GetXer() { - auto xer_i8_ptr = m_ir_builder->CreateConstGEP1_32(GetPPUState(), (unsigned int)offsetof(PPUThread, XER)); +Value * Compiler::GetXer() { + auto xer_i8_ptr = m_ir_builder->CreateConstGEP1_32(m_state.args[CompileTaskState::Args::State], (unsigned int)offsetof(PPUThread, XER)); auto xer_i64_ptr = m_ir_builder->CreateBitCast(xer_i8_ptr, m_ir_builder->getInt64Ty()->getPointerTo()); return m_ir_builder->CreateAlignedLoad(xer_i64_ptr, 8); } -Value * PPULLVMRecompiler::GetXerCa() { +Value * Compiler::GetXerCa() { return GetBit(GetXer(), 34); } -Value * PPULLVMRecompiler::GetXerSo() { +Value * Compiler::GetXerSo() { return GetBit(GetXer(), 32); } -void PPULLVMRecompiler::SetXer(Value * val_x64) { +void Compiler::SetXer(Value * val_x64) { auto val_i64 = m_ir_builder->CreateBitCast(val_x64, m_ir_builder->getInt64Ty()); - auto xer_i8_ptr = m_ir_builder->CreateConstGEP1_32(GetPPUState(), (unsigned int)offsetof(PPUThread, XER)); + auto xer_i8_ptr = m_ir_builder->CreateConstGEP1_32(m_state.args[CompileTaskState::Args::State], (unsigned int)offsetof(PPUThread, XER)); auto xer_i64_ptr = m_ir_builder->CreateBitCast(xer_i8_ptr, m_ir_builder->getInt64Ty()->getPointerTo()); m_ir_builder->CreateAlignedStore(val_i64, xer_i64_ptr, 8); } -void PPULLVMRecompiler::SetXerCa(Value * ca) { +void Compiler::SetXerCa(Value * ca) { auto xer_i64 = GetXer(); xer_i64 = SetBit(xer_i64, 34, ca); SetXer(xer_i64); } -void PPULLVMRecompiler::SetXerSo(Value * so) { +void Compiler::SetXerSo(Value * so) { auto xer_i64 = GetXer(); xer_i64 = SetBit(xer_i64, 32, so); SetXer(xer_i64); } -Value * PPULLVMRecompiler::GetUsprg0() { - auto usrpg0_i8_ptr = m_ir_builder->CreateConstGEP1_32(GetPPUState(), (unsigned int)offsetof(PPUThread, USPRG0)); +Value * Compiler::GetUsprg0() { + auto usrpg0_i8_ptr = m_ir_builder->CreateConstGEP1_32(m_state.args[CompileTaskState::Args::State], (unsigned int)offsetof(PPUThread, USPRG)); auto usprg0_i64_ptr = m_ir_builder->CreateBitCast(usrpg0_i8_ptr, m_ir_builder->getInt64Ty()->getPointerTo()); return m_ir_builder->CreateAlignedLoad(usprg0_i64_ptr, 8); } -void PPULLVMRecompiler::SetUsprg0(Value * val_x64) { +void Compiler::SetUsprg0(Value * val_x64) { auto val_i64 = m_ir_builder->CreateBitCast(val_x64, m_ir_builder->getInt64Ty()); - auto usprg0_i8_ptr = m_ir_builder->CreateConstGEP1_32(GetPPUState(), (unsigned int)offsetof(PPUThread, USPRG0)); + auto usprg0_i8_ptr = m_ir_builder->CreateConstGEP1_32(m_state.args[CompileTaskState::Args::State], (unsigned int)offsetof(PPUThread, USPRG)); auto usprg0_i64_ptr = m_ir_builder->CreateBitCast(usprg0_i8_ptr, m_ir_builder->getInt64Ty()->getPointerTo()); m_ir_builder->CreateAlignedStore(val_i64, usprg0_i64_ptr, 8); } -Value * PPULLVMRecompiler::GetFpr(u32 r, u32 bits, bool as_int) { - auto r_i8_ptr = m_ir_builder->CreateConstGEP1_32(GetPPUState(), (unsigned int)offsetof(PPUThread, FPR[r])); +Value * Compiler::GetFpr(u32 r, u32 bits, bool as_int) { + auto r_i8_ptr = m_ir_builder->CreateConstGEP1_32(m_state.args[CompileTaskState::Args::State], (unsigned int)offsetof(PPUThread, FPR[r])); if (!as_int) { auto r_f64_ptr = m_ir_builder->CreateBitCast(r_i8_ptr, m_ir_builder->getDoubleTy()->getPointerTo()); auto r_f64 = m_ir_builder->CreateAlignedLoad(r_f64_ptr, 8); @@ -4567,8 +4512,8 @@ Value * PPULLVMRecompiler::GetFpr(u32 r, u32 bits, bool as_int) { } } -void PPULLVMRecompiler::SetFpr(u32 r, Value * val) { - auto r_i8_ptr = m_ir_builder->CreateConstGEP1_32(GetPPUState(), (unsigned int)offsetof(PPUThread, FPR[r])); +void Compiler::SetFpr(u32 r, Value * val) { + auto r_i8_ptr = m_ir_builder->CreateConstGEP1_32(m_state.args[CompileTaskState::Args::State], (unsigned int)offsetof(PPUThread, FPR[r])); auto r_f64_ptr = m_ir_builder->CreateBitCast(r_i8_ptr, m_ir_builder->getDoubleTy()->getPointerTo()); Value* val_f64; @@ -4584,54 +4529,54 @@ void PPULLVMRecompiler::SetFpr(u32 r, Value * val) { m_ir_builder->CreateAlignedStore(val_f64, r_f64_ptr, 8); } -Value * PPULLVMRecompiler::GetVscr() { - auto vscr_i8_ptr = m_ir_builder->CreateConstGEP1_32(GetPPUState(), (unsigned int)offsetof(PPUThread, VSCR)); +Value * Compiler::GetVscr() { + auto vscr_i8_ptr = m_ir_builder->CreateConstGEP1_32(m_state.args[CompileTaskState::Args::State], (unsigned int)offsetof(PPUThread, VSCR)); auto vscr_i32_ptr = m_ir_builder->CreateBitCast(vscr_i8_ptr, m_ir_builder->getInt32Ty()->getPointerTo()); return m_ir_builder->CreateAlignedLoad(vscr_i32_ptr, 4); } -void PPULLVMRecompiler::SetVscr(Value * val_x32) { +void Compiler::SetVscr(Value * val_x32) { auto val_i32 = m_ir_builder->CreateBitCast(val_x32, m_ir_builder->getInt32Ty()); - auto vscr_i8_ptr = m_ir_builder->CreateConstGEP1_32(GetPPUState(), (unsigned int)offsetof(PPUThread, VSCR)); + auto vscr_i8_ptr = m_ir_builder->CreateConstGEP1_32(m_state.args[CompileTaskState::Args::State], (unsigned int)offsetof(PPUThread, VSCR)); auto vscr_i32_ptr = m_ir_builder->CreateBitCast(vscr_i8_ptr, m_ir_builder->getInt32Ty()->getPointerTo()); m_ir_builder->CreateAlignedStore(val_i32, vscr_i32_ptr, 4); } -Value * PPULLVMRecompiler::GetVr(u32 vr) { - auto vr_i8_ptr = m_ir_builder->CreateConstGEP1_32(GetPPUState(), (unsigned int)offsetof(PPUThread, VPR[vr])); +Value * Compiler::GetVr(u32 vr) { + auto vr_i8_ptr = m_ir_builder->CreateConstGEP1_32(m_state.args[CompileTaskState::Args::State], (unsigned int)offsetof(PPUThread, VPR[vr])); auto vr_i128_ptr = m_ir_builder->CreateBitCast(vr_i8_ptr, m_ir_builder->getIntNTy(128)->getPointerTo()); return m_ir_builder->CreateAlignedLoad(vr_i128_ptr, 16); } -Value * PPULLVMRecompiler::GetVrAsIntVec(u32 vr, u32 vec_elt_num_bits) { - auto vr_i8_ptr = m_ir_builder->CreateConstGEP1_32(GetPPUState(), (unsigned int)offsetof(PPUThread, VPR[vr])); +Value * Compiler::GetVrAsIntVec(u32 vr, u32 vec_elt_num_bits) { + auto vr_i8_ptr = m_ir_builder->CreateConstGEP1_32(m_state.args[CompileTaskState::Args::State], (unsigned int)offsetof(PPUThread, VPR[vr])); auto vr_i128_ptr = m_ir_builder->CreateBitCast(vr_i8_ptr, m_ir_builder->getIntNTy(128)->getPointerTo()); auto vr_vec_ptr = m_ir_builder->CreateBitCast(vr_i128_ptr, VectorType::get(m_ir_builder->getIntNTy(vec_elt_num_bits), 128 / vec_elt_num_bits)->getPointerTo()); return m_ir_builder->CreateAlignedLoad(vr_vec_ptr, 16); } -Value * PPULLVMRecompiler::GetVrAsFloatVec(u32 vr) { - auto vr_i8_ptr = m_ir_builder->CreateConstGEP1_32(GetPPUState(), (unsigned int)offsetof(PPUThread, VPR[vr])); +Value * Compiler::GetVrAsFloatVec(u32 vr) { + auto vr_i8_ptr = m_ir_builder->CreateConstGEP1_32(m_state.args[CompileTaskState::Args::State], (unsigned int)offsetof(PPUThread, VPR[vr])); auto vr_i128_ptr = m_ir_builder->CreateBitCast(vr_i8_ptr, m_ir_builder->getIntNTy(128)->getPointerTo()); auto vr_v4f32_ptr = m_ir_builder->CreateBitCast(vr_i128_ptr, VectorType::get(m_ir_builder->getFloatTy(), 4)->getPointerTo()); return m_ir_builder->CreateAlignedLoad(vr_v4f32_ptr, 16); } -Value * PPULLVMRecompiler::GetVrAsDoubleVec(u32 vr) { - auto vr_i8_ptr = m_ir_builder->CreateConstGEP1_32(GetPPUState(), (unsigned int)offsetof(PPUThread, VPR[vr])); +Value * Compiler::GetVrAsDoubleVec(u32 vr) { + auto vr_i8_ptr = m_ir_builder->CreateConstGEP1_32(m_state.args[CompileTaskState::Args::State], (unsigned int)offsetof(PPUThread, VPR[vr])); auto vr_i128_ptr = m_ir_builder->CreateBitCast(vr_i8_ptr, m_ir_builder->getIntNTy(128)->getPointerTo()); auto vr_v2f64_ptr = m_ir_builder->CreateBitCast(vr_i128_ptr, VectorType::get(m_ir_builder->getDoubleTy(), 2)->getPointerTo()); return m_ir_builder->CreateAlignedLoad(vr_v2f64_ptr, 16); } -void PPULLVMRecompiler::SetVr(u32 vr, Value * val_x128) { - auto vr_i8_ptr = m_ir_builder->CreateConstGEP1_32(GetPPUState(), (unsigned int)offsetof(PPUThread, VPR[vr])); +void Compiler::SetVr(u32 vr, Value * val_x128) { + auto vr_i8_ptr = m_ir_builder->CreateConstGEP1_32(m_state.args[CompileTaskState::Args::State], (unsigned int)offsetof(PPUThread, VPR[vr])); auto vr_i128_ptr = m_ir_builder->CreateBitCast(vr_i8_ptr, m_ir_builder->getIntNTy(128)->getPointerTo()); auto val_i128 = m_ir_builder->CreateBitCast(val_x128, m_ir_builder->getIntNTy(128)); m_ir_builder->CreateAlignedStore(val_i128, vr_i128_ptr, 16); } -Value * PPULLVMRecompiler::CheckBranchCondition(u32 bo, u32 bi) { +Value * Compiler::CheckBranchCondition(u32 bo, u32 bi) { bool bo0 = bo & 0x10 ? true : false; bool bo1 = bo & 0x08 ? true : false; bool bo2 = bo & 0x04 ? true : false; @@ -4673,68 +4618,89 @@ Value * PPULLVMRecompiler::CheckBranchCondition(u32 bo, u32 bi) { return cmp_i1; } -void PPULLVMRecompiler::CreateBranch(llvm::Value * cmp_i1, llvm::Value * target_i64, bool lk) { +void Compiler::CreateBranch(llvm::Value * cmp_i1, llvm::Value * target_i32, bool lk, bool target_is_lr) { if (lk) { - SetLr(m_ir_builder->getInt64(m_current_instruction_address + 4)); + SetLr(m_ir_builder->getInt64(m_state.current_instruction_address + 4)); } - auto current_block = m_ir_builder->GetInsertBlock(); + auto current_block = m_ir_builder->GetInsertBlock(); + BasicBlock * target_block = nullptr; - if (dyn_cast(target_i64)) { + if (dyn_cast(target_i32)) { // Target address is an immediate value. - u32 target_address = (u32)(dyn_cast(target_i64)->getLimitedValue()); - target_block = GetBlockInFunction(target_address, m_current_function); - if (!target_block) { - target_block = GetBlockInFunction(target_address, m_current_function, true); - if ((m_hit_blocks.find(target_address) != m_hit_blocks.end() || !cmp_i1) && m_num_instructions < 300) { - // Target block has either been hit or this is an unconditional branch. - m_current_function_uncompiled_blocks_list.push_back(target_address); - m_hit_blocks.insert(target_address); - } else { - // Target block has not been encountered yet and this is not an unconditional branch + u32 target_address = (u32)(dyn_cast(target_i32)->getLimitedValue()); + if (lk) { + // Function call + if (cmp_i1) { // There is no need to create a new block for an unconditional jump + target_block = GetBasicBlockFromAddress(m_state.current_instruction_address, "target"); m_ir_builder->SetInsertPoint(target_block); - SetPc(target_i64); - m_ir_builder->CreateRetVoid(); - m_current_function_unhit_blocks_list.push_back(target_address); } + + SetPc(target_i32); + IndirectCall(target_address, m_ir_builder->getInt64(0), true); + m_ir_builder->CreateBr(GetBasicBlockFromAddress(m_state.current_instruction_address + 4)); + } else { + // Local branch + target_block = GetBasicBlockFromAddress(target_address); } } else { - // Target addres is in a register - target_block = BasicBlock::Create(m_ir_builder->getContext(), "", m_current_function); - m_ir_builder->SetInsertPoint(target_block); - SetPc(target_i64); - m_ir_builder->CreateRetVoid(); + // Target address is in a register + if (cmp_i1) { // There is no need to create a new block for an unconditional jump + target_block = GetBasicBlockFromAddress(m_state.current_instruction_address, "target"); + m_ir_builder->SetInsertPoint(target_block); + } + + SetPc(target_i32); + if (target_is_lr && !lk) { + // Return from this function + m_ir_builder->CreateRet(m_ir_builder->getInt32(0)); + } else if (lk) { + auto next_block = GetBasicBlockFromAddress(m_state.current_instruction_address + 4); + auto unknown_function_block = GetBasicBlockFromAddress(m_state.current_instruction_address, "unknown_function"); + + auto switch_instr = m_ir_builder->CreateSwitch(target_i32, unknown_function_block); + m_ir_builder->SetInsertPoint(unknown_function_block); + m_ir_builder->CreateCall3(m_execute_unknown_function, m_state.args[CompileTaskState::Args::State], m_state.args[CompileTaskState::Args::Interpreter], m_ir_builder->getInt64(0)); + m_ir_builder->CreateBr(next_block); + + auto call_i = m_state.cfg->calls.find(m_state.current_instruction_address); + if (call_i != m_state.cfg->calls.end()) { + for (auto function_i = call_i->second.begin(); function_i != call_i->second.end(); function_i++) { + auto block = GetBasicBlockFromAddress(m_state.current_instruction_address, fmt::Format("0x%08X", *function_i)); + m_ir_builder->SetInsertPoint(block); + IndirectCall(*function_i, m_ir_builder->getInt64(0), true); + m_ir_builder->CreateBr(next_block); + switch_instr->addCase(m_ir_builder->getInt32(*function_i), block); + } + } + } else { + auto switch_instr = m_ir_builder->CreateSwitch(target_i32, GetBasicBlockFromAddress(0xFFFFFFFF)); + auto branch_i = m_state.cfg->branches.find(m_state.current_instruction_address); + if (branch_i != m_state.cfg->branches.end()) { + for (auto next_instr_i = branch_i->second.begin(); next_instr_i != branch_i->second.end(); next_instr_i++) { + switch_instr->addCase(m_ir_builder->getInt32(*next_instr_i), GetBasicBlockFromAddress(*next_instr_i)); + } + } + } } if (cmp_i1) { // Conditional branch - auto next_block = GetBlockInFunction(m_current_instruction_address + 4, m_current_function); - if (!next_block) { - next_block = GetBlockInFunction(m_current_instruction_address + 4, m_current_function, true); - if (m_hit_blocks.find(m_current_instruction_address + 4) != m_hit_blocks.end() && m_num_instructions < 300) { - // Next block has already been hit. - m_current_function_uncompiled_blocks_list.push_back(m_current_instruction_address + 4); - } else { - // Next block has not been encountered yet - m_ir_builder->SetInsertPoint(next_block); - SetPc(m_ir_builder->getInt32(m_current_instruction_address + 4)); - m_ir_builder->CreateRetVoid(); - m_current_function_unhit_blocks_list.push_back(m_current_instruction_address + 4); - } - } - + auto next_block = GetBasicBlockFromAddress(m_state.current_instruction_address + 4); m_ir_builder->SetInsertPoint(current_block); m_ir_builder->CreateCondBr(cmp_i1, target_block, next_block); } else { // Unconditional branch - m_ir_builder->SetInsertPoint(current_block); - m_ir_builder->CreateBr(target_block); + if (target_block) { + m_ir_builder->SetInsertPoint(current_block); + m_ir_builder->CreateBr(target_block); + } } - m_hit_branch_instruction = true; + m_state.hit_branch_instruction = true; } -Value * PPULLVMRecompiler::ReadMemory(Value * addr_i64, u32 bits, u32 alignment, bool bswap, bool could_be_mmio) { +Value * Compiler::ReadMemory(Value * addr_i64, u32 bits, u32 alignment, bool bswap, bool could_be_mmio) { if (bits != 32 || could_be_mmio == false) { auto eaddr_i64 = m_ir_builder->CreateAdd(addr_i64, m_ir_builder->getInt64((u64)vm::get_ptr(0))); auto eaddr_ix_ptr = m_ir_builder->CreateIntToPtr(eaddr_i64, m_ir_builder->getIntNTy(bits)->getPointerTo()); @@ -4745,22 +4711,10 @@ Value * PPULLVMRecompiler::ReadMemory(Value * addr_i64, u32 bits, u32 alignment, return val_ix; } else { - BasicBlock * next_block = nullptr; - for (auto i = m_current_function->begin(); i != m_current_function->end(); i++) { - if (&(*i) == m_ir_builder->GetInsertBlock()) { - i++; - if (i != m_current_function->end()) { - next_block = &(*i); - } - - break; - } - } - auto cmp_i1 = m_ir_builder->CreateICmpULT(addr_i64, m_ir_builder->getInt64(RAW_SPU_BASE_ADDR)); - auto then_bb = BasicBlock::Create(m_ir_builder->getContext(), "", m_current_function, next_block); - auto else_bb = BasicBlock::Create(m_ir_builder->getContext(), "", m_current_function, next_block); - auto merge_bb = BasicBlock::Create(m_ir_builder->getContext(), "", m_current_function, next_block); + auto then_bb = GetBasicBlockFromAddress(m_state.current_instruction_address, "then"); + auto else_bb = GetBasicBlockFromAddress(m_state.current_instruction_address, "else"); + auto merge_bb = GetBasicBlockFromAddress(m_state.current_instruction_address, "merge"); m_ir_builder->CreateCondBr(cmp_i1, then_bb, else_bb); m_ir_builder->SetInsertPoint(then_bb); @@ -4774,7 +4728,7 @@ Value * PPULLVMRecompiler::ReadMemory(Value * addr_i64, u32 bits, u32 alignment, m_ir_builder->CreateBr(merge_bb); m_ir_builder->SetInsertPoint(else_bb); - auto val_else_i32 = Call("vm_read32", (u32(*)(u64))vm::read32, addr_i64); + auto val_else_i32 = Call("vm.read32", (u32(*)(u64))vm::read32, addr_i64); if (!bswap) { val_else_i32 = m_ir_builder->CreateCall(Intrinsic::getDeclaration(m_module, Intrinsic::bswap, m_ir_builder->getInt32Ty()), val_else_i32); } @@ -4788,7 +4742,7 @@ Value * PPULLVMRecompiler::ReadMemory(Value * addr_i64, u32 bits, u32 alignment, } } -void PPULLVMRecompiler::WriteMemory(Value * addr_i64, Value * val_ix, u32 alignment, bool bswap, bool could_be_mmio) { +void Compiler::WriteMemory(Value * addr_i64, Value * val_ix, u32 alignment, bool bswap, bool could_be_mmio) { addr_i64 = m_ir_builder->CreateAnd(addr_i64, 0xFFFFFFFF); if (val_ix->getType()->getIntegerBitWidth() != 32 || could_be_mmio == false) { if (val_ix->getType()->getIntegerBitWidth() > 8 && bswap) { @@ -4799,22 +4753,10 @@ void PPULLVMRecompiler::WriteMemory(Value * addr_i64, Value * val_ix, u32 alignm auto eaddr_ix_ptr = m_ir_builder->CreateIntToPtr(eaddr_i64, val_ix->getType()->getPointerTo()); m_ir_builder->CreateAlignedStore(val_ix, eaddr_ix_ptr, alignment); } else { - BasicBlock * next_block = nullptr; - for (auto i = m_current_function->begin(); i != m_current_function->end(); i++) { - if (&(*i) == m_ir_builder->GetInsertBlock()) { - i++; - if (i != m_current_function->end()) { - next_block = &(*i); - } - - break; - } - } - auto cmp_i1 = m_ir_builder->CreateICmpULT(addr_i64, m_ir_builder->getInt64(RAW_SPU_BASE_ADDR)); - auto then_bb = BasicBlock::Create(m_ir_builder->getContext(), "", m_current_function, next_block); - auto else_bb = BasicBlock::Create(m_ir_builder->getContext(), "", m_current_function, next_block); - auto merge_bb = BasicBlock::Create(m_ir_builder->getContext(), "", m_current_function, next_block); + auto then_bb = GetBasicBlockFromAddress(m_state.current_instruction_address, "then"); + auto else_bb = GetBasicBlockFromAddress(m_state.current_instruction_address, "else"); + auto merge_bb = GetBasicBlockFromAddress(m_state.current_instruction_address, "merge"); m_ir_builder->CreateCondBr(cmp_i1, then_bb, else_bb); m_ir_builder->SetInsertPoint(then_bb); @@ -4834,7 +4776,7 @@ void PPULLVMRecompiler::WriteMemory(Value * addr_i64, Value * val_ix, u32 alignm val_else_i32 = m_ir_builder->CreateCall(Intrinsic::getDeclaration(m_module, Intrinsic::bswap, m_ir_builder->getInt32Ty()), val_else_i32); } - Call("vm_write32", (void(*)(u64, u32))vm::write32, addr_i64, val_else_i32); + Call("vm.write32", (void(*)(u32, u32))vm::write32, addr_i64, val_else_i32); m_ir_builder->CreateBr(merge_bb); m_ir_builder->SetInsertPoint(merge_bb); @@ -4842,19 +4784,19 @@ void PPULLVMRecompiler::WriteMemory(Value * addr_i64, Value * val_ix, u32 alignm } template -Value * PPULLVMRecompiler::InterpreterCall(const char * name, Func function, Args... args) { - auto i = m_interpreter_fallback_stats.find(name); - if (i == m_interpreter_fallback_stats.end()) { - i = m_interpreter_fallback_stats.insert(m_interpreter_fallback_stats.end(), std::make_pair(name, 0)); +Value * Compiler::InterpreterCall(const char * name, Func function, Args... args) { + auto i = m_stats.interpreter_fallback_stats.find(name); + if (i == m_stats.interpreter_fallback_stats.end()) { + i = m_stats.interpreter_fallback_stats.insert(m_stats.interpreter_fallback_stats.end(), std::make_pair(name, 0)); } i->second++; - return Call(name, function, GetInterpreter(), m_ir_builder->getInt32(args)...); + return Call(name, function, m_state.args[CompileTaskState::Args::Interpreter], m_ir_builder->getInt32(args)...); } template -Type * PPULLVMRecompiler::CppToLlvmType() { +Type * Compiler::CppToLlvmType() { if (std::is_void::value) { return m_ir_builder->getVoidTy(); } else if (std::is_same::value || std::is_same::value) { @@ -4879,7 +4821,7 @@ Type * PPULLVMRecompiler::CppToLlvmType() { } template -Value * PPULLVMRecompiler::Call(const char * name, Func function, Args... args) { +Value * Compiler::Call(const char * name, Func function, Args... args) { auto fn = m_module->getFunction(name); if (!fn) { std::vector fn_args_type = {args->getType()...}; @@ -4893,7 +4835,16 @@ Value * PPULLVMRecompiler::Call(const char * name, Func function, Args... args) return m_ir_builder->CreateCall(fn, fn_args); } -void PPULLVMRecompiler::InitRotateMask() { +llvm::Value * Compiler::IndirectCall(u32 address, Value * context_i64, bool is_function) { + auto ordinal = m_recompilation_engine.AllocateOrdinal(address, is_function); + auto location_i64 = m_ir_builder->getInt64(m_recompilation_engine.GetAddressOfExecutableLookup() + (ordinal * sizeof(u64))); + auto location_i64_ptr = m_ir_builder->CreateIntToPtr(location_i64, m_ir_builder->getInt64Ty()->getPointerTo()); + auto executable_i64 = m_ir_builder->CreateLoad(location_i64_ptr); + auto executable_ptr = m_ir_builder->CreateIntToPtr(executable_i64, m_compiled_function_type->getPointerTo()); + return m_ir_builder->CreateCall3(executable_ptr, m_state.args[CompileTaskState::Args::State], m_state.args[CompileTaskState::Args::Interpreter], context_i64); +} + +void Compiler::InitRotateMask() { for (u32 mb = 0; mb < 64; mb++) { for (u32 me = 0; me < 64; me++) { u64 mask = ((u64)-1 >> mb) ^ ((me >= 63) ? 0 : (u64)-1 >> (me + 1)); @@ -4902,101 +4853,515 @@ void PPULLVMRecompiler::InitRotateMask() { } } -u32 PPULLVMEmulator::s_num_instances = 0; -std::mutex PPULLVMEmulator::s_recompiler_mutex; -PPULLVMRecompiler * PPULLVMEmulator::s_recompiler = nullptr; +std::mutex RecompilationEngine::s_mutex; +std::shared_ptr RecompilationEngine::s_the_instance = nullptr; -PPULLVMEmulator::PPULLVMEmulator(PPUThread & ppu) +RecompilationEngine::RecompilationEngine() + : ThreadBase("PPU Recompilation Engine") + , m_next_ordinal(0) + , m_compiler(*this, ExecutionEngine::ExecuteFunction, ExecutionEngine::ExecuteTillReturn) { + std::string error; + m_log = new raw_fd_ostream("PPULLVMRecompiler.log", error, sys::fs::F_Text); + m_log->SetUnbuffered(); +} + +RecompilationEngine::~RecompilationEngine() { + Stop(); +} + +u32 RecompilationEngine::AllocateOrdinal(u32 address, bool is_function) { + std::lock_guard lock(m_address_to_ordinal_lock); + + auto i = m_address_to_ordinal.find(address); + if (i == m_address_to_ordinal.end()) { + assert(m_next_ordinal < (sizeof(m_executable_lookup) / sizeof(m_executable_lookup[0]))); + + m_executable_lookup[m_next_ordinal] = is_function ? ExecutionEngine::ExecuteFunction : ExecutionEngine::ExecuteTillReturn; + std::atomic_thread_fence(std::memory_order_release); + i = m_address_to_ordinal.insert(m_address_to_ordinal.end(), std::make_pair(address, m_next_ordinal++)); + } + + return i->second; +} + +u32 RecompilationEngine::GetOrdinal(u32 address) const { + std::lock_guard lock(m_address_to_ordinal_lock); + + auto i = m_address_to_ordinal.find(address); + if (i != m_address_to_ordinal.end()) { + return i->second; + } else { + return 0xFFFFFFFF; + } +} + +const Executable RecompilationEngine::GetExecutable(u32 ordinal) const { + std::atomic_thread_fence(std::memory_order_acquire); + return m_executable_lookup[ordinal]; +} + +u64 RecompilationEngine::GetAddressOfExecutableLookup() const { + return (u64)m_executable_lookup; +} + +void RecompilationEngine::NotifyTrace(ExecutionTrace * execution_trace) { + { + std::lock_guard lock(m_pending_execution_traces_lock); + m_pending_execution_traces.push_back(execution_trace); + } + + if (!IsAlive()) { + Start(); + } + + Notify(); + // TODO: Increase the priority of the recompilation engine thread +} + +raw_fd_ostream & RecompilationEngine::Log() { + return *m_log; +} + +void RecompilationEngine::Task() { + bool work_done_this_iteration = false; + bool work_done_last_iteration = false; + std::chrono::nanoseconds idling_time(0); + std::chrono::nanoseconds recompiling_time(0); + + auto start = std::chrono::high_resolution_clock::now(); + while (!TestDestroy() && !Emu.IsStopped()) { + work_done_last_iteration = work_done_this_iteration; + work_done_this_iteration = false; + ExecutionTrace * execution_trace = nullptr; + + { + std::lock_guard lock(m_pending_execution_traces_lock); + + auto i = m_pending_execution_traces.begin(); + if (i != m_pending_execution_traces.end()) { + execution_trace = *i; + m_pending_execution_traces.erase(i); + } + } + + if (execution_trace) { + ProcessExecutionTrace(*execution_trace); + delete execution_trace; + work_done_this_iteration = true; + } + + if (!work_done_this_iteration) { + // TODO: Reduce the priority of the recompilation engine thread if its set to high priority + } + + if (!work_done_this_iteration && !work_done_last_iteration) { + auto recompiling_start = std::chrono::high_resolution_clock::now(); + + // Recompile the function with the most number of compiled fragments + auto candidate = m_function_table.end(); + for (auto function_i = m_function_table.begin(); function_i != m_function_table.end(); function_i++) { + if ((*function_i)->num_compiled_fragments && (*function_i)->blocks.front()->IsFunction() && (*function_i)->blocks.front()->is_compiled) { + if (candidate != m_function_table.end()) { + if ((*function_i)->num_compiled_fragments > (*candidate)->num_compiled_fragments) { + candidate = function_i; + } + } else { + candidate = function_i; + } + } + } + + if (candidate != m_function_table.end()) { + Log() << "Recompiling: " << (*candidate)->ToString() << "\n"; + CompileBlock(*(*candidate), *((*candidate)->blocks.front())); + work_done_this_iteration = true; + } + + auto recompiling_end = std::chrono::high_resolution_clock::now(); + recompiling_time += std::chrono::duration_cast(recompiling_end - recompiling_start); + } + + if (!work_done_this_iteration) { + // Wait a few ms for something to happen + auto idling_start = std::chrono::high_resolution_clock::now(); + WaitForAnySignal(250); + auto idling_end = std::chrono::high_resolution_clock::now(); + idling_time += std::chrono::duration_cast(idling_end - idling_start); + } + } + + std::chrono::high_resolution_clock::time_point end = std::chrono::high_resolution_clock::now(); + auto total_time = std::chrono::duration_cast(end - start); + auto compiler_stats = m_compiler.GetStats(); + + Log() << "Total time = " << total_time.count() / 1000000 << "ms\n"; + Log() << " Time spent compiling = " << compiler_stats.total_time.count() / 1000000 << "ms\n"; + Log() << " Time spent building IR = " << compiler_stats.ir_build_time.count() / 1000000 << "ms\n"; + Log() << " Time spent optimizing = " << compiler_stats.optimization_time.count() / 1000000 << "ms\n"; + Log() << " Time spent translating = " << compiler_stats.translation_time.count() / 1000000 << "ms\n"; + Log() << " Time spent recompiling = " << recompiling_time.count() / 1000000 << "ms\n"; + Log() << " Time spent idling = " << idling_time.count() / 1000000 << "ms\n"; + Log() << " Time spent doing misc tasks = " << (total_time.count() - idling_time.count() - compiler_stats.total_time.count()) / 1000000 << "ms\n"; + Log() << "Ordinals allocated = " << m_next_ordinal << "\n"; + Log() << "\nInterpreter fallback stats:\n"; + for (auto i = compiler_stats.interpreter_fallback_stats.begin(); i != compiler_stats.interpreter_fallback_stats.end(); i++) { + Log() << i->first << " = " << i->second << "\n"; + } + + LOG_NOTICE(PPU, "PPU LLVM Recompilation thread exiting."); + s_the_instance = nullptr; // Can cause deadlock if this is the last instance. Need to fix this. +} + +void RecompilationEngine::ProcessExecutionTrace(const ExecutionTrace & execution_trace) { + auto function_i = m_function_table.end(); + + auto execution_trace_id = execution_trace.GetId(); + auto processed_execution_trace_i = m_processed_execution_traces.find(execution_trace_id); + if (processed_execution_trace_i == m_processed_execution_traces.end()) { +#ifdef _DEBUG + Log() << "Trace: " << execution_trace.ToString() << "\n"; +#endif + + std::vector tmp_block_list; + + auto split_trace = false; + auto block_i = m_block_table.end(); + for (auto trace_i = execution_trace.entries.begin(); trace_i != execution_trace.entries.end(); trace_i++) { + if (trace_i->type == ExecutionTraceEntry::Type::CompiledBlock) { + block_i = m_block_table.end(); + split_trace = true; + } + + if (block_i == m_block_table.end()) { + BlockEntry key(trace_i->GetPrimaryAddress(), execution_trace.function_address); + + block_i = m_block_table.find(&key); + if (block_i == m_block_table.end()) { + block_i = m_block_table.insert(m_block_table.end(), new BlockEntry(key.cfg.start_address, key.cfg.function_address)); + + if (function_i == m_function_table.end()) { + FunctionEntry key(execution_trace.function_address); + function_i = m_function_table.find(&key); + if (function_i == m_function_table.end()) { + function_i = m_function_table.insert(m_function_table.end(), new FunctionEntry(key.address)); + } + } + + // Update the function table + (*function_i)->AddBlock(*block_i); + } + + tmp_block_list.push_back(*block_i); + } + + const ExecutionTraceEntry * next_trace = nullptr; + if (trace_i + 1 != execution_trace.entries.end()) { + next_trace = &(*(trace_i + 1)); + } else if (!split_trace && execution_trace.type == ExecutionTrace::Type::Loop) { + next_trace = &(*(execution_trace.entries.begin())); + } + + UpdateControlFlowGraph((*block_i)->cfg, *trace_i, next_trace); + } + + processed_execution_trace_i = m_processed_execution_traces.insert(m_processed_execution_traces.end(), std::make_pair(execution_trace_id, std::move(tmp_block_list))); + } + + for (auto i = processed_execution_trace_i->second.begin(); i != processed_execution_trace_i->second.end(); i++) { + if (!(*i)->is_compiled) { + (*i)->num_hits++; + if ((*i)->num_hits >= 1000) { // TODO: Make this configurable + if (function_i == m_function_table.end()) { + FunctionEntry key(execution_trace.function_address); + function_i = m_function_table.find(&key); + } + + CompileBlock(*(*function_i), *(*i)); + (*i)->is_compiled = true; + } + } + } + + std::remove_if(processed_execution_trace_i->second.begin(), processed_execution_trace_i->second.end(), [](const BlockEntry * b)->bool { return b->is_compiled; }); +} + +void RecompilationEngine::UpdateControlFlowGraph(ControlFlowGraph & cfg, const ExecutionTraceEntry & this_entry, const ExecutionTraceEntry * next_entry) { + if (this_entry.type == ExecutionTraceEntry::Type::Instruction) { + cfg.instruction_addresses.insert(this_entry.GetPrimaryAddress()); + + if (next_entry) { + if (next_entry->type == ExecutionTraceEntry::Type::Instruction || next_entry->type == ExecutionTraceEntry::Type::CompiledBlock) { + if (next_entry->GetPrimaryAddress() != (this_entry.GetPrimaryAddress() + 4)) { + cfg.branches[this_entry.GetPrimaryAddress()].insert(next_entry->GetPrimaryAddress()); + } + } else if (next_entry->type == ExecutionTraceEntry::Type::FunctionCall) { + cfg.calls[this_entry.data.instruction.address].insert(next_entry->GetPrimaryAddress()); + } + } + } else if (this_entry.type == ExecutionTraceEntry::Type::CompiledBlock) { + if (next_entry) { + if (next_entry->type == ExecutionTraceEntry::Type::Instruction || next_entry->type == ExecutionTraceEntry::Type::CompiledBlock) { + cfg.branches[this_entry.data.compiled_block.exit_address].insert(next_entry->GetPrimaryAddress()); + } else if (next_entry->type == ExecutionTraceEntry::Type::FunctionCall) { + cfg.calls[this_entry.data.compiled_block.exit_address].insert(next_entry->GetPrimaryAddress()); + } + } + } +} + +void RecompilationEngine::CompileBlock(FunctionEntry & function_entry, BlockEntry & block_entry) { +#ifdef _DEBUG + Log() << "Compile: " << block_entry.ToString() << "\n"; +#endif + + ControlFlowGraph temp_cfg(block_entry.cfg.start_address, block_entry.cfg.function_address); + ControlFlowGraph * cfg; + if (block_entry.IsFunction()) { + // Form a CFG by merging all the blocks in this function + for (auto block_i = function_entry.blocks.begin(); block_i != function_entry.blocks.end(); block_i++) { + temp_cfg += (*block_i)->cfg; + } + + cfg = &temp_cfg; + } else { + cfg = &block_entry.cfg; + } + +#ifdef _DEBUG + Log() << "CFG: " << cfg->ToString() << "\n"; +#endif + + auto ordinal = AllocateOrdinal(block_entry.cfg.start_address, block_entry.IsFunction()); + auto executable = m_compiler.Compile(fmt::Format("fn_0x%08X_%u", block_entry.cfg.start_address, block_entry.revision++), *cfg, true, + block_entry.IsFunction() ? true : false /*generate_linkable_exits*/); + m_executable_lookup[ordinal] = executable; + + if (block_entry.IsFunction()) { + function_entry.num_compiled_fragments = 0; + } else { + function_entry.num_compiled_fragments++; + } +} + +std::shared_ptr RecompilationEngine::GetInstance() { + std::lock_guard lock(s_mutex); + + if (s_the_instance == nullptr) { + s_the_instance = std::shared_ptr(new RecompilationEngine()); + } + + return s_the_instance; +} + +Tracer::Tracer() + : m_recompilation_engine(RecompilationEngine::GetInstance()) { + m_stack.reserve(100); +} + +Tracer::~Tracer() { + Terminate(); +} + +void Tracer::Trace(TraceType trace_type, u32 arg1, u32 arg2) { + ExecutionTrace * execution_trace = nullptr; + + switch (trace_type) { + case TraceType::CallFunction: + // arg1 is address of the function + m_stack.back()->entries.push_back(ExecutionTraceEntry(ExecutionTraceEntry::Type::FunctionCall, arg1)); + break; + case TraceType::EnterFunction: + // arg1 is address of the function + m_stack.push_back(new ExecutionTrace(arg1)); + break; + case TraceType::ExitFromCompiledFunction: + // arg1 is address of function. + // arg2 is the address of the exit instruction. + if (arg2) { + m_stack.push_back(new ExecutionTrace(arg1)); + m_stack.back()->entries.push_back(ExecutionTraceEntry(ExecutionTraceEntry::Type::CompiledBlock, arg1, arg2)); + } + break; + case TraceType::Return: + // No args used + execution_trace = m_stack.back(); + execution_trace->type = ExecutionTrace::Type::Linear; + m_stack.pop_back(); + break; + case TraceType::Instruction: + // arg1 is the address of the instruction + for (int i = (int)m_stack.back()->entries.size() - 1; i >= 0; i--) { + if ((m_stack.back()->entries[i].type == ExecutionTraceEntry::Type::Instruction && m_stack.back()->entries[i].data.instruction.address == arg1) || + (m_stack.back()->entries[i].type == ExecutionTraceEntry::Type::CompiledBlock && m_stack.back()->entries[i].data.compiled_block.entry_address == arg1)) { + // Found a loop + execution_trace = new ExecutionTrace(m_stack.back()->function_address); + execution_trace->type = ExecutionTrace::Type::Loop; + std::copy(m_stack.back()->entries.begin() + i, m_stack.back()->entries.end(), std::back_inserter(execution_trace->entries)); + m_stack.back()->entries.erase(m_stack.back()->entries.begin() + i + 1, m_stack.back()->entries.end()); + break; + } + } + + if (!execution_trace) { + // A loop was not found + m_stack.back()->entries.push_back(ExecutionTraceEntry(ExecutionTraceEntry::Type::Instruction, arg1)); + } + break; + case TraceType::ExitFromCompiledBlock: + // arg1 is address of the compiled block. + // arg2 is the address of the exit instruction. + m_stack.back()->entries.push_back(ExecutionTraceEntry(ExecutionTraceEntry::Type::CompiledBlock, arg1, arg2)); + + if (arg2 == 0) { + // Return from function + execution_trace = m_stack.back(); + execution_trace->type = ExecutionTrace::Type::Linear; + m_stack.pop_back(); + } + break; + default: + assert(0); + break; + } + + if (execution_trace) { + m_recompilation_engine->NotifyTrace(execution_trace); + } +} + +void Tracer::Terminate() { + // TODO: Notify recompilation engine +} + +ppu_recompiler_llvm::ExecutionEngine::ExecutionEngine(PPUThread & ppu) : m_ppu(ppu) , m_interpreter(new PPUInterpreter(ppu)) , m_decoder(m_interpreter) - , m_last_instr_was_branch(true) , m_last_cache_clear_time(std::chrono::high_resolution_clock::now()) - , m_recompiler_revision(0) { - std::lock_guard lock(s_recompiler_mutex); - - s_num_instances++; - if (!s_recompiler) { - s_recompiler = new PPULLVMRecompiler(); - s_recompiler->RunAllTests(&m_ppu, m_interpreter); - } + , m_recompilation_engine(RecompilationEngine::GetInstance()) { } -PPULLVMEmulator::~PPULLVMEmulator() { - for (auto iter = m_address_to_executable.begin(); iter != m_address_to_executable.end(); iter++) { - s_recompiler->ReleaseExecutable(iter->first, iter->second.revision); - } +ppu_recompiler_llvm::ExecutionEngine::~ExecutionEngine() { - std::lock_guard lock(s_recompiler_mutex); - - s_num_instances--; - if (s_recompiler && s_num_instances == 0) { - delete s_recompiler; - s_recompiler = nullptr; - } } -u8 PPULLVMEmulator::DecodeMemory(const u32 address) { +u8 ppu_recompiler_llvm::ExecutionEngine::DecodeMemory(const u32 address) { + ExecuteFunction(&m_ppu, m_interpreter, 0); + return 0; +} + +void ppu_recompiler_llvm::ExecutionEngine::RemoveUnusedEntriesFromCache() const { auto now = std::chrono::high_resolution_clock::now(); - - if (std::chrono::duration_cast(now - m_last_cache_clear_time).count() > 1000) { - bool clear_all = false; - - u32 revision = s_recompiler->GetCurrentRevision(); - if (m_recompiler_revision != revision) { - m_recompiler_revision = revision; - clear_all = true; - } - - for (auto iter = m_address_to_executable.begin(); iter != m_address_to_executable.end();) { - auto tmp = iter; - iter++; - if (tmp->second.num_hits == 0 || clear_all) { - m_address_to_executable.erase(tmp); - s_recompiler->ReleaseExecutable(tmp->first, tmp->second.revision); + if (std::chrono::duration_cast(now - m_last_cache_clear_time).count() > 10000) { + for (auto i = m_address_to_ordinal.begin(); i != m_address_to_ordinal.end();) { + auto tmp = i; + i++; + if (tmp->second.second == 0) { + m_address_to_ordinal.erase(tmp); } else { - tmp->second.num_hits = 0; + tmp->second.second = 0; } } m_last_cache_clear_time = now; } +} - auto address_to_executable_iter = m_address_to_executable.find(address); - if (address_to_executable_iter == m_address_to_executable.end()) { - auto executable_and_revision = s_recompiler->GetExecutable(address); - if (executable_and_revision.first) { - ExecutableInfo executable_info; - executable_info.executable = executable_and_revision.first; - executable_info.revision = executable_and_revision.second; - executable_info.num_hits = 0; +Executable ppu_recompiler_llvm::ExecutionEngine::GetExecutable(u32 address, Executable default_executable) const { + // Find the ordinal for the specified address and insert it to the cache + auto i = m_address_to_ordinal.find(address); + if (i == m_address_to_ordinal.end()) { + auto ordinal = m_recompilation_engine->GetOrdinal(address); + if (ordinal != 0xFFFFFFFF) { + i = m_address_to_ordinal.insert(m_address_to_ordinal.end(), std::make_pair(address, std::make_pair(ordinal, 0))); + } + } - address_to_executable_iter = m_address_to_executable.insert(m_address_to_executable.end(), std::make_pair(address, executable_info)); - m_uncompiled.erase(address); + Executable executable = default_executable; + if (i != m_address_to_ordinal.end()) { + i->second.second++; + executable = m_recompilation_engine->GetExecutable(i->second.first); + } + + RemoveUnusedEntriesFromCache(); + return executable; +} + +u32 ppu_recompiler_llvm::ExecutionEngine::ExecuteFunction(PPUThread * ppu_state, PPUInterpreter * interpreter, u64 context) { + auto execution_engine = (ExecutionEngine *)ppu_state->GetDecoder(); + execution_engine->m_tracer.Trace(Tracer::TraceType::EnterFunction, ppu_state->PC, 0); + return ExecuteTillReturn(ppu_state, interpreter, 0); +} + +u32 ppu_recompiler_llvm::ExecutionEngine::ExecuteTillReturn(PPUThread * ppu_state, PPUInterpreter * interpreter, u64 context) { + auto execution_engine = (ExecutionEngine *)ppu_state->GetDecoder(); + auto terminate = false; + auto branch_type = BranchType::NonBranch; + + if (context) { + execution_engine->m_tracer.Trace(Tracer::TraceType::ExitFromCompiledFunction, context >> 32, context & 0xFFFFFFFF); + } + + while (!terminate && !Emu.IsStopped()) { + if (Emu.IsPaused()) { + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + continue; + } + + auto executable = execution_engine->GetExecutable(ppu_state->PC, ExecuteTillReturn); + if (executable != ExecuteTillReturn && executable != ExecuteFunction) { + auto entry = ppu_state->PC; + auto exit = (u32)executable(ppu_state, interpreter, 0); + execution_engine->m_tracer.Trace(Tracer::TraceType::ExitFromCompiledBlock, entry, exit); + if (exit == 0) { + terminate = true; + } } else { - if (m_last_instr_was_branch) { - auto uncompiled_iter = m_uncompiled.find(address); - if (uncompiled_iter != m_uncompiled.end()) { - uncompiled_iter->second++; - if ((uncompiled_iter->second % 1000) == 0) { - s_recompiler->RequestCompilation(address); - } - } else { - m_uncompiled[address] = 0; - } + execution_engine->m_tracer.Trace(Tracer::TraceType::Instruction, ppu_state->PC, 0); + auto instruction = re32(vm::get_ref(ppu_state->PC)); + execution_engine->m_decoder.Decode(instruction); + branch_type = ppu_state->m_is_branch ? GetBranchTypeFromInstruction(instruction) : BranchType::NonBranch; + ppu_state->NextPc(4); + + switch (branch_type) { + case BranchType::Return: + execution_engine->m_tracer.Trace(Tracer::TraceType::Return, 0, 0); + terminate = true; + break; + case BranchType::FunctionCall: + execution_engine->m_tracer.Trace(Tracer::TraceType::CallFunction, ppu_state->PC, 0); + executable = execution_engine->GetExecutable(ppu_state->PC, ExecuteFunction); + executable(ppu_state, interpreter, 0); + break; + case BranchType::LocalBranch: + break; + case BranchType::NonBranch: + break; + default: + assert(0); + break; } } } - u8 ret = 0; - if (address_to_executable_iter != m_address_to_executable.end()) { - address_to_executable_iter->second.executable(&m_ppu, m_interpreter); - address_to_executable_iter->second.num_hits++; - m_last_instr_was_branch = true; - } else { - ret = m_decoder.DecodeMemory(address); - m_last_instr_was_branch = m_ppu.m_is_branch; + return 0; +} + +BranchType ppu_recompiler_llvm::GetBranchTypeFromInstruction(u32 instruction) { + auto type = BranchType::NonBranch; + auto field1 = instruction >> 26; + auto lk = instruction & 1; + + if (field1 == 16 || field1 == 18) { + type = lk ? BranchType::FunctionCall : BranchType::LocalBranch; + } else if (field1 == 19) { + u32 field2 = (instruction >> 1) & 0x3FF; + if (field2 == 16) { + type = lk ? BranchType::FunctionCall : BranchType::Return; + } else if (field2 == 528) { + type = lk ? BranchType::FunctionCall : BranchType::LocalBranch; + } } - return ret; + return type; } diff --git a/rpcs3/Emu/Cell/PPULLVMRecompiler.h b/rpcs3/Emu/Cell/PPULLVMRecompiler.h index b3e13ee50e..0da0c1835e 100644 --- a/rpcs3/Emu/Cell/PPULLVMRecompiler.h +++ b/rpcs3/Emu/Cell/PPULLVMRecompiler.h @@ -7,6 +7,7 @@ #include "Emu/Cell/PPUDecoder.h" #include "Emu/Cell/PPUThread.h" #include "Emu/Cell/PPUInterpreter.h" +#include "llvm/Support/raw_ostream.h" #include "llvm/IR/LLVMContext.h" #include "llvm/IR/IRBuilder.h" #include "llvm/IR/Module.h" @@ -14,780 +15,1199 @@ #include "llvm/ExecutionEngine/JIT.h" #include "llvm/PassManager.h" -struct PPUState; +namespace ppu_recompiler_llvm { + class Compiler; + class RecompilationEngine; + class Tracer; + class ExecutionEngine; + struct PPUState; -/// PPU recompiler that uses LLVM for code generation and optimization -class PPULLVMRecompiler : public ThreadBase, protected PPUOpcodes, protected PPCDecoder { -public: - typedef void(*Executable)(PPUThread * ppu_state, PPUInterpreter * interpreter); + /// An entry in an execution trace + struct ExecutionTraceEntry { + /// Data associated with the entry. This is discriminated by type. + union { + struct Instruction { + u32 address; + } instruction; - PPULLVMRecompiler(); + struct FunctionCall { + u32 address; + } function_call; - PPULLVMRecompiler(const PPULLVMRecompiler & other) = delete; - PPULLVMRecompiler(PPULLVMRecompiler && other) = delete; + struct CompiledBlock { + u32 entry_address; + u32 exit_address; + } compiled_block; + } data; - virtual ~PPULLVMRecompiler(); + /// The type of the entry + enum class Type { + FunctionCall, + Instruction, + CompiledBlock, + } type; - PPULLVMRecompiler & operator = (const PPULLVMRecompiler & other) = delete; - PPULLVMRecompiler & operator = (PPULLVMRecompiler && other) = delete; + ExecutionTraceEntry(Type type, u32 arg1, u32 arg2 = 0) + : type(type) { + switch (type) { + case Type::Instruction: + data.instruction.address = arg1; + break; + case Type::FunctionCall: + data.function_call.address = arg1; + break; + case Type::CompiledBlock: + data.compiled_block.entry_address = arg1; + data.compiled_block.exit_address = arg2; + break; + default: + assert(0); + break; + } + } - /// Get the executable for the code starting at address - std::pair GetExecutable(u32 address); + u32 GetPrimaryAddress() const { + switch (type) { + case Type::Instruction: + return data.instruction.address; + case Type::FunctionCall: + return data.function_call.address; + case Type::CompiledBlock: + return data.compiled_block.entry_address; + default: + assert(0); + return 0; + } + } - /// Release an executable earlier obtained through GetExecutable - void ReleaseExecutable(u32 address, u32 revision); + std::string ToString() const { + switch (type) { + case Type::Instruction: + return fmt::Format("I:0x%08X", data.instruction.address); + case Type::FunctionCall: + return fmt::Format("F:0x%08X", data.function_call.address); + case Type::CompiledBlock: + return fmt::Format("C:0x%08X-0x%08X", data.compiled_block.entry_address, data.compiled_block.exit_address); + default: + assert(0); + return ""; + } + } - /// Request the code at the sepcified address to be compiled - void RequestCompilation(u32 address); + u64 hash() const { + u64 hash = ((u64)type << 32); + switch (type) { + case Type::Instruction: + hash |= data.instruction.address; + break; + case Type::FunctionCall: + hash |= data.function_call.address; + break; + case Type::CompiledBlock: + hash = data.compiled_block.exit_address; + hash <<= 32; + hash |= data.compiled_block.entry_address; + break; + default: + assert(0); + break; + } - /// Get the current revision - u32 GetCurrentRevision(); - - /// Execute all tests - void RunAllTests(PPUThread * ppu_state, PPUInterpreter * interpreter); - - void Task() override; - -protected: - void Decode(const u32 code) override; - - void NULL_OP() override; - void NOP() override; - - void TDI(u32 to, u32 ra, s32 simm16) override; - void TWI(u32 to, u32 ra, s32 simm16) override; - - void MFVSCR(u32 vd) override; - void MTVSCR(u32 vb) override; - void VADDCUW(u32 vd, u32 va, u32 vb) override; - void VADDFP(u32 vd, u32 va, u32 vb) override; - void VADDSBS(u32 vd, u32 va, u32 vb) override; - void VADDSHS(u32 vd, u32 va, u32 vb) override; - void VADDSWS(u32 vd, u32 va, u32 vb) override; - void VADDUBM(u32 vd, u32 va, u32 vb) override; - void VADDUBS(u32 vd, u32 va, u32 vb) override; - void VADDUHM(u32 vd, u32 va, u32 vb) override; - void VADDUHS(u32 vd, u32 va, u32 vb) override; - void VADDUWM(u32 vd, u32 va, u32 vb) override; - void VADDUWS(u32 vd, u32 va, u32 vb) override; - void VAND(u32 vd, u32 va, u32 vb) override; - void VANDC(u32 vd, u32 va, u32 vb) override; - void VAVGSB(u32 vd, u32 va, u32 vb) override; - void VAVGSH(u32 vd, u32 va, u32 vb) override; - void VAVGSW(u32 vd, u32 va, u32 vb) override; - void VAVGUB(u32 vd, u32 va, u32 vb) override; - void VAVGUH(u32 vd, u32 va, u32 vb) override; - void VAVGUW(u32 vd, u32 va, u32 vb) override; - void VCFSX(u32 vd, u32 uimm5, u32 vb) override; - void VCFUX(u32 vd, u32 uimm5, u32 vb) override; - void VCMPBFP(u32 vd, u32 va, u32 vb) override; - void VCMPBFP_(u32 vd, u32 va, u32 vb) override; - void VCMPEQFP(u32 vd, u32 va, u32 vb) override; - void VCMPEQFP_(u32 vd, u32 va, u32 vb) override; - void VCMPEQUB(u32 vd, u32 va, u32 vb) override; - void VCMPEQUB_(u32 vd, u32 va, u32 vb) override; - void VCMPEQUH(u32 vd, u32 va, u32 vb) override; - void VCMPEQUH_(u32 vd, u32 va, u32 vb) override; - void VCMPEQUW(u32 vd, u32 va, u32 vb) override; - void VCMPEQUW_(u32 vd, u32 va, u32 vb) override; - void VCMPGEFP(u32 vd, u32 va, u32 vb) override; - void VCMPGEFP_(u32 vd, u32 va, u32 vb) override; - void VCMPGTFP(u32 vd, u32 va, u32 vb) override; - void VCMPGTFP_(u32 vd, u32 va, u32 vb) override; - void VCMPGTSB(u32 vd, u32 va, u32 vb) override; - void VCMPGTSB_(u32 vd, u32 va, u32 vb) override; - void VCMPGTSH(u32 vd, u32 va, u32 vb) override; - void VCMPGTSH_(u32 vd, u32 va, u32 vb) override; - void VCMPGTSW(u32 vd, u32 va, u32 vb) override; - void VCMPGTSW_(u32 vd, u32 va, u32 vb) override; - void VCMPGTUB(u32 vd, u32 va, u32 vb) override; - void VCMPGTUB_(u32 vd, u32 va, u32 vb) override; - void VCMPGTUH(u32 vd, u32 va, u32 vb) override; - void VCMPGTUH_(u32 vd, u32 va, u32 vb) override; - void VCMPGTUW(u32 vd, u32 va, u32 vb) override; - void VCMPGTUW_(u32 vd, u32 va, u32 vb) override; - void VCTSXS(u32 vd, u32 uimm5, u32 vb) override; - void VCTUXS(u32 vd, u32 uimm5, u32 vb) override; - void VEXPTEFP(u32 vd, u32 vb) override; - void VLOGEFP(u32 vd, u32 vb) override; - void VMADDFP(u32 vd, u32 va, u32 vc, u32 vb) override; - void VMAXFP(u32 vd, u32 va, u32 vb) override; - void VMAXSB(u32 vd, u32 va, u32 vb) override; - void VMAXSH(u32 vd, u32 va, u32 vb) override; - void VMAXSW(u32 vd, u32 va, u32 vb) override; - void VMAXUB(u32 vd, u32 va, u32 vb) override; - void VMAXUH(u32 vd, u32 va, u32 vb) override; - void VMAXUW(u32 vd, u32 va, u32 vb) override; - void VMHADDSHS(u32 vd, u32 va, u32 vb, u32 vc) override; - void VMHRADDSHS(u32 vd, u32 va, u32 vb, u32 vc) override; - void VMINFP(u32 vd, u32 va, u32 vb) override; - void VMINSB(u32 vd, u32 va, u32 vb) override; - void VMINSH(u32 vd, u32 va, u32 vb) override; - void VMINSW(u32 vd, u32 va, u32 vb) override; - void VMINUB(u32 vd, u32 va, u32 vb) override; - void VMINUH(u32 vd, u32 va, u32 vb) override; - void VMINUW(u32 vd, u32 va, u32 vb) override; - void VMLADDUHM(u32 vd, u32 va, u32 vb, u32 vc) override; - void VMRGHB(u32 vd, u32 va, u32 vb) override; - void VMRGHH(u32 vd, u32 va, u32 vb) override; - void VMRGHW(u32 vd, u32 va, u32 vb) override; - void VMRGLB(u32 vd, u32 va, u32 vb) override; - void VMRGLH(u32 vd, u32 va, u32 vb) override; - void VMRGLW(u32 vd, u32 va, u32 vb) override; - void VMSUMMBM(u32 vd, u32 va, u32 vb, u32 vc) override; - void VMSUMSHM(u32 vd, u32 va, u32 vb, u32 vc) override; - void VMSUMSHS(u32 vd, u32 va, u32 vb, u32 vc) override; - void VMSUMUBM(u32 vd, u32 va, u32 vb, u32 vc) override; - void VMSUMUHM(u32 vd, u32 va, u32 vb, u32 vc) override; - void VMSUMUHS(u32 vd, u32 va, u32 vb, u32 vc) override; - void VMULESB(u32 vd, u32 va, u32 vb) override; - void VMULESH(u32 vd, u32 va, u32 vb) override; - void VMULEUB(u32 vd, u32 va, u32 vb) override; - void VMULEUH(u32 vd, u32 va, u32 vb) override; - void VMULOSB(u32 vd, u32 va, u32 vb) override; - void VMULOSH(u32 vd, u32 va, u32 vb) override; - void VMULOUB(u32 vd, u32 va, u32 vb) override; - void VMULOUH(u32 vd, u32 va, u32 vb) override; - void VNMSUBFP(u32 vd, u32 va, u32 vc, u32 vb) override; - void VNOR(u32 vd, u32 va, u32 vb) override; - void VOR(u32 vd, u32 va, u32 vb) override; - void VPERM(u32 vd, u32 va, u32 vb, u32 vc) override; - void VPKPX(u32 vd, u32 va, u32 vb) override; - void VPKSHSS(u32 vd, u32 va, u32 vb) override; - void VPKSHUS(u32 vd, u32 va, u32 vb) override; - void VPKSWSS(u32 vd, u32 va, u32 vb) override; - void VPKSWUS(u32 vd, u32 va, u32 vb) override; - void VPKUHUM(u32 vd, u32 va, u32 vb) override; - void VPKUHUS(u32 vd, u32 va, u32 vb) override; - void VPKUWUM(u32 vd, u32 va, u32 vb) override; - void VPKUWUS(u32 vd, u32 va, u32 vb) override; - void VREFP(u32 vd, u32 vb) override; - void VRFIM(u32 vd, u32 vb) override; - void VRFIN(u32 vd, u32 vb) override; - void VRFIP(u32 vd, u32 vb) override; - void VRFIZ(u32 vd, u32 vb) override; - void VRLB(u32 vd, u32 va, u32 vb) override; - void VRLH(u32 vd, u32 va, u32 vb) override; - void VRLW(u32 vd, u32 va, u32 vb) override; - void VRSQRTEFP(u32 vd, u32 vb) override; - void VSEL(u32 vd, u32 va, u32 vb, u32 vc) override; - void VSL(u32 vd, u32 va, u32 vb) override; - void VSLB(u32 vd, u32 va, u32 vb) override; - void VSLDOI(u32 vd, u32 va, u32 vb, u32 sh) override; - void VSLH(u32 vd, u32 va, u32 vb) override; - void VSLO(u32 vd, u32 va, u32 vb) override; - void VSLW(u32 vd, u32 va, u32 vb) override; - void VSPLTB(u32 vd, u32 uimm5, u32 vb) override; - void VSPLTH(u32 vd, u32 uimm5, u32 vb) override; - void VSPLTISB(u32 vd, s32 simm5) override; - void VSPLTISH(u32 vd, s32 simm5) override; - void VSPLTISW(u32 vd, s32 simm5) override; - void VSPLTW(u32 vd, u32 uimm5, u32 vb) override; - void VSR(u32 vd, u32 va, u32 vb) override; - void VSRAB(u32 vd, u32 va, u32 vb) override; - void VSRAH(u32 vd, u32 va, u32 vb) override; - void VSRAW(u32 vd, u32 va, u32 vb) override; - void VSRB(u32 vd, u32 va, u32 vb) override; - void VSRH(u32 vd, u32 va, u32 vb) override; - void VSRO(u32 vd, u32 va, u32 vb) override; - void VSRW(u32 vd, u32 va, u32 vb) override; - void VSUBCUW(u32 vd, u32 va, u32 vb) override; - void VSUBFP(u32 vd, u32 va, u32 vb) override; - void VSUBSBS(u32 vd, u32 va, u32 vb) override; - void VSUBSHS(u32 vd, u32 va, u32 vb) override; - void VSUBSWS(u32 vd, u32 va, u32 vb) override; - void VSUBUBM(u32 vd, u32 va, u32 vb) override; - void VSUBUBS(u32 vd, u32 va, u32 vb) override; - void VSUBUHM(u32 vd, u32 va, u32 vb) override; - void VSUBUHS(u32 vd, u32 va, u32 vb) override; - void VSUBUWM(u32 vd, u32 va, u32 vb) override; - void VSUBUWS(u32 vd, u32 va, u32 vb) override; - void VSUMSWS(u32 vd, u32 va, u32 vb) override; - void VSUM2SWS(u32 vd, u32 va, u32 vb) override; - void VSUM4SBS(u32 vd, u32 va, u32 vb) override; - void VSUM4SHS(u32 vd, u32 va, u32 vb) override; - void VSUM4UBS(u32 vd, u32 va, u32 vb) override; - void VUPKHPX(u32 vd, u32 vb) override; - void VUPKHSB(u32 vd, u32 vb) override; - void VUPKHSH(u32 vd, u32 vb) override; - void VUPKLPX(u32 vd, u32 vb) override; - void VUPKLSB(u32 vd, u32 vb) override; - void VUPKLSH(u32 vd, u32 vb) override; - void VXOR(u32 vd, u32 va, u32 vb) override; - void MULLI(u32 rd, u32 ra, s32 simm16) override; - void SUBFIC(u32 rd, u32 ra, s32 simm16) override; - void CMPLI(u32 bf, u32 l, u32 ra, u32 uimm16) override; - void CMPI(u32 bf, u32 l, u32 ra, s32 simm16) override; - void ADDIC(u32 rd, u32 ra, s32 simm16) override; - void ADDIC_(u32 rd, u32 ra, s32 simm16) override; - void ADDI(u32 rd, u32 ra, s32 simm16) override; - void ADDIS(u32 rd, u32 ra, s32 simm16) override; - void BC(u32 bo, u32 bi, s32 bd, u32 aa, u32 lk) override; - void SC(u32 sc_code) override; - void B(s32 ll, u32 aa, u32 lk) override; - void MCRF(u32 crfd, u32 crfs) override; - void BCLR(u32 bo, u32 bi, u32 bh, u32 lk) override; - void CRNOR(u32 bt, u32 ba, u32 bb) override; - void CRANDC(u32 bt, u32 ba, u32 bb) override; - void ISYNC() override; - void CRXOR(u32 bt, u32 ba, u32 bb) override; - void CRNAND(u32 bt, u32 ba, u32 bb) override; - void CRAND(u32 bt, u32 ba, u32 bb) override; - void CREQV(u32 bt, u32 ba, u32 bb) override; - void CRORC(u32 bt, u32 ba, u32 bb) override; - void CROR(u32 bt, u32 ba, u32 bb) override; - void BCCTR(u32 bo, u32 bi, u32 bh, u32 lk) override; - void RLWIMI(u32 ra, u32 rs, u32 sh, u32 mb, u32 me, bool rc) override; - void RLWINM(u32 ra, u32 rs, u32 sh, u32 mb, u32 me, bool rc) override; - void RLWNM(u32 ra, u32 rs, u32 rb, u32 MB, u32 ME, bool rc) override; - void ORI(u32 rs, u32 ra, u32 uimm16) override; - void ORIS(u32 rs, u32 ra, u32 uimm16) override; - void XORI(u32 ra, u32 rs, u32 uimm16) override; - void XORIS(u32 ra, u32 rs, u32 uimm16) override; - void ANDI_(u32 ra, u32 rs, u32 uimm16) override; - void ANDIS_(u32 ra, u32 rs, u32 uimm16) override; - void RLDICL(u32 ra, u32 rs, u32 sh, u32 mb, bool rc) override; - void RLDICR(u32 ra, u32 rs, u32 sh, u32 me, bool rc) override; - void RLDIC(u32 ra, u32 rs, u32 sh, u32 mb, bool rc) override; - void RLDIMI(u32 ra, u32 rs, u32 sh, u32 mb, bool rc) override; - void RLDC_LR(u32 ra, u32 rs, u32 rb, u32 m_eb, bool is_r, bool rc) override; - void CMP(u32 crfd, u32 l, u32 ra, u32 rb) override; - void TW(u32 to, u32 ra, u32 rb) override; - void LVSL(u32 vd, u32 ra, u32 rb) override; - void LVEBX(u32 vd, u32 ra, u32 rb) override; - void SUBFC(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) override; - void MULHDU(u32 rd, u32 ra, u32 rb, bool rc) override; - void ADDC(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) override; - void MULHWU(u32 rd, u32 ra, u32 rb, bool rc) override; - void MFOCRF(u32 a, u32 rd, u32 crm) override; - void LWARX(u32 rd, u32 ra, u32 rb) override; - void LDX(u32 ra, u32 rs, u32 rb) override; - void LWZX(u32 rd, u32 ra, u32 rb) override; - void SLW(u32 ra, u32 rs, u32 rb, bool rc) override; - void CNTLZW(u32 ra, u32 rs, bool rc) override; - void SLD(u32 ra, u32 rs, u32 rb, bool rc) override; - void AND(u32 ra, u32 rs, u32 rb, bool rc) override; - void CMPL(u32 bf, u32 l, u32 ra, u32 rb) override; - void LVSR(u32 vd, u32 ra, u32 rb) override; - void LVEHX(u32 vd, u32 ra, u32 rb) override; - void SUBF(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) override; - void LDUX(u32 rd, u32 ra, u32 rb) override; - void DCBST(u32 ra, u32 rb) override; - void LWZUX(u32 rd, u32 ra, u32 rb) override; - void CNTLZD(u32 ra, u32 rs, bool rc) override; - void ANDC(u32 ra, u32 rs, u32 rb, bool rc) override; - void TD(u32 to, u32 ra, u32 rb) override; - void LVEWX(u32 vd, u32 ra, u32 rb) override; - void MULHD(u32 rd, u32 ra, u32 rb, bool rc) override; - void MULHW(u32 rd, u32 ra, u32 rb, bool rc) override; - void LDARX(u32 rd, u32 ra, u32 rb) override; - void DCBF(u32 ra, u32 rb) override; - void LBZX(u32 rd, u32 ra, u32 rb) override; - void LVX(u32 vd, u32 ra, u32 rb) override; - void NEG(u32 rd, u32 ra, u32 oe, bool rc) override; - void LBZUX(u32 rd, u32 ra, u32 rb) override; - void NOR(u32 ra, u32 rs, u32 rb, bool rc) override; - void STVEBX(u32 vs, u32 ra, u32 rb) override; - void SUBFE(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) override; - void ADDE(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) override; - void MTOCRF(u32 l, u32 crm, u32 rs) override; - void STDX(u32 rs, u32 ra, u32 rb) override; - void STWCX_(u32 rs, u32 ra, u32 rb) override; - void STWX(u32 rs, u32 ra, u32 rb) override; - void STVEHX(u32 vs, u32 ra, u32 rb) override; - void STDUX(u32 rs, u32 ra, u32 rb) override; - void STWUX(u32 rs, u32 ra, u32 rb) override; - void STVEWX(u32 vs, u32 ra, u32 rb) override; - void SUBFZE(u32 rd, u32 ra, u32 oe, bool rc) override; - void ADDZE(u32 rd, u32 ra, u32 oe, bool rc) override; - void STDCX_(u32 rs, u32 ra, u32 rb) override; - void STBX(u32 rs, u32 ra, u32 rb) override; - void STVX(u32 vs, u32 ra, u32 rb) override; - void MULLD(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) override; - void SUBFME(u32 rd, u32 ra, u32 oe, bool rc) override; - void ADDME(u32 rd, u32 ra, u32 oe, bool rc) override; - void MULLW(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) override; - void DCBTST(u32 ra, u32 rb, u32 th) override; - void STBUX(u32 rs, u32 ra, u32 rb) override; - void ADD(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) override; - void DCBT(u32 ra, u32 rb, u32 th) override; - void LHZX(u32 rd, u32 ra, u32 rb) override; - void EQV(u32 ra, u32 rs, u32 rb, bool rc) override; - void ECIWX(u32 rd, u32 ra, u32 rb) override; - void LHZUX(u32 rd, u32 ra, u32 rb) override; - void XOR(u32 rs, u32 ra, u32 rb, bool rc) override; - void MFSPR(u32 rd, u32 spr) override; - void LWAX(u32 rd, u32 ra, u32 rb) override; - void DST(u32 ra, u32 rb, u32 strm, u32 t) override; - void LHAX(u32 rd, u32 ra, u32 rb) override; - void LVXL(u32 vd, u32 ra, u32 rb) override; - void MFTB(u32 rd, u32 spr) override; - void LWAUX(u32 rd, u32 ra, u32 rb) override; - void DSTST(u32 ra, u32 rb, u32 strm, u32 t) override; - void LHAUX(u32 rd, u32 ra, u32 rb) override; - void STHX(u32 rs, u32 ra, u32 rb) override; - void ORC(u32 rs, u32 ra, u32 rb, bool rc) override; - void ECOWX(u32 rs, u32 ra, u32 rb) override; - void STHUX(u32 rs, u32 ra, u32 rb) override; - void OR(u32 ra, u32 rs, u32 rb, bool rc) override; - void DIVDU(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) override; - void DIVWU(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) override; - void MTSPR(u32 spr, u32 rs) override; - void DCBI(u32 ra, u32 rb) override; - void NAND(u32 ra, u32 rs, u32 rb, bool rc) override; - void STVXL(u32 vs, u32 ra, u32 rb) override; - void DIVD(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) override; - void DIVW(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) override; - void LVLX(u32 vd, u32 ra, u32 rb) override; - void LDBRX(u32 rd, u32 ra, u32 rb) override; - void LSWX(u32 rd, u32 ra, u32 rb) override; - void LWBRX(u32 rd, u32 ra, u32 rb) override; - void LFSX(u32 frd, u32 ra, u32 rb) override; - void SRW(u32 ra, u32 rs, u32 rb, bool rc) override; - void SRD(u32 ra, u32 rs, u32 rb, bool rc) override; - void LVRX(u32 vd, u32 ra, u32 rb) override; - void LSWI(u32 rd, u32 ra, u32 nb) override; - void LFSUX(u32 frd, u32 ra, u32 rb) override; - void SYNC(u32 l) override; - void LFDX(u32 frd, u32 ra, u32 rb) override; - void LFDUX(u32 frd, u32 ra, u32 rb) override; - void STVLX(u32 vs, u32 ra, u32 rb) override; - void STSWX(u32 rs, u32 ra, u32 rb) override; - void STWBRX(u32 rs, u32 ra, u32 rb) override; - void STFSX(u32 frs, u32 ra, u32 rb) override; - void STVRX(u32 vs, u32 ra, u32 rb) override; - void STFSUX(u32 frs, u32 ra, u32 rb) override; - void STSWI(u32 rd, u32 ra, u32 nb) override; - void STFDX(u32 frs, u32 ra, u32 rb) override; - void STFDUX(u32 frs, u32 ra, u32 rb) override; - void LVLXL(u32 vd, u32 ra, u32 rb) override; - void LHBRX(u32 rd, u32 ra, u32 rb) override; - void SRAW(u32 ra, u32 rs, u32 rb, bool rc) override; - void SRAD(u32 ra, u32 rs, u32 rb, bool rc) override; - void LVRXL(u32 vd, u32 ra, u32 rb) override; - void DSS(u32 strm, u32 a) override; - void SRAWI(u32 ra, u32 rs, u32 sh, bool rc) override; - void SRADI1(u32 ra, u32 rs, u32 sh, bool rc) override; - void SRADI2(u32 ra, u32 rs, u32 sh, bool rc) override; - void EIEIO() override; - void STVLXL(u32 vs, u32 ra, u32 rb) override; - void STHBRX(u32 rs, u32 ra, u32 rb) override; - void EXTSH(u32 ra, u32 rs, bool rc) override; - void STVRXL(u32 sd, u32 ra, u32 rb) override; - void EXTSB(u32 ra, u32 rs, bool rc) override; - void STFIWX(u32 frs, u32 ra, u32 rb) override; - void EXTSW(u32 ra, u32 rs, bool rc) override; - void ICBI(u32 ra, u32 rb) override; - void DCBZ(u32 ra, u32 rb) override; - void LWZ(u32 rd, u32 ra, s32 d) override; - void LWZU(u32 rd, u32 ra, s32 d) override; - void LBZ(u32 rd, u32 ra, s32 d) override; - void LBZU(u32 rd, u32 ra, s32 d) override; - void STW(u32 rs, u32 ra, s32 d) override; - void STWU(u32 rs, u32 ra, s32 d) override; - void STB(u32 rs, u32 ra, s32 d) override; - void STBU(u32 rs, u32 ra, s32 d) override; - void LHZ(u32 rd, u32 ra, s32 d) override; - void LHZU(u32 rd, u32 ra, s32 d) override; - void LHA(u32 rs, u32 ra, s32 d) override; - void LHAU(u32 rs, u32 ra, s32 d) override; - void STH(u32 rs, u32 ra, s32 d) override; - void STHU(u32 rs, u32 ra, s32 d) override; - void LMW(u32 rd, u32 ra, s32 d) override; - void STMW(u32 rs, u32 ra, s32 d) override; - void LFS(u32 frd, u32 ra, s32 d) override; - void LFSU(u32 frd, u32 ra, s32 d) override; - void LFD(u32 frd, u32 ra, s32 d) override; - void LFDU(u32 frd, u32 ra, s32 d) override; - void STFS(u32 frs, u32 ra, s32 d) override; - void STFSU(u32 frs, u32 ra, s32 d) override; - void STFD(u32 frs, u32 ra, s32 d) override; - void STFDU(u32 frs, u32 ra, s32 d) override; - void LD(u32 rd, u32 ra, s32 ds) override; - void LDU(u32 rd, u32 ra, s32 ds) override; - void LWA(u32 rd, u32 ra, s32 ds) override; - void FDIVS(u32 frd, u32 fra, u32 frb, bool rc) override; - void FSUBS(u32 frd, u32 fra, u32 frb, bool rc) override; - void FADDS(u32 frd, u32 fra, u32 frb, bool rc) override; - void FSQRTS(u32 frd, u32 frb, bool rc) override; - void FRES(u32 frd, u32 frb, bool rc) override; - void FMULS(u32 frd, u32 fra, u32 frc, bool rc) override; - void FMADDS(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) override; - void FMSUBS(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) override; - void FNMSUBS(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) override; - void FNMADDS(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) override; - void STD(u32 rs, u32 ra, s32 ds) override; - void STDU(u32 rs, u32 ra, s32 ds) override; - void MTFSB1(u32 bt, bool rc) override; - void MCRFS(u32 bf, u32 bfa) override; - void MTFSB0(u32 bt, bool rc) override; - void MTFSFI(u32 crfd, u32 i, bool rc) override; - void MFFS(u32 frd, bool rc) override; - void MTFSF(u32 flm, u32 frb, bool rc) override; - - void FCMPU(u32 bf, u32 fra, u32 frb) override; - void FRSP(u32 frd, u32 frb, bool rc) override; - void FCTIW(u32 frd, u32 frb, bool rc) override; - void FCTIWZ(u32 frd, u32 frb, bool rc) override; - void FDIV(u32 frd, u32 fra, u32 frb, bool rc) override; - void FSUB(u32 frd, u32 fra, u32 frb, bool rc) override; - void FADD(u32 frd, u32 fra, u32 frb, bool rc) override; - void FSQRT(u32 frd, u32 frb, bool rc) override; - void FSEL(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) override; - void FMUL(u32 frd, u32 fra, u32 frc, bool rc) override; - void FRSQRTE(u32 frd, u32 frb, bool rc) override; - void FMSUB(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) override; - void FMADD(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) override; - void FNMSUB(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) override; - void FNMADD(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) override; - void FCMPO(u32 crfd, u32 fra, u32 frb) override; - void FNEG(u32 frd, u32 frb, bool rc) override; - void FMR(u32 frd, u32 frb, bool rc) override; - void FNABS(u32 frd, u32 frb, bool rc) override; - void FABS(u32 frd, u32 frb, bool rc) override; - void FCTID(u32 frd, u32 frb, bool rc) override; - void FCTIDZ(u32 frd, u32 frb, bool rc) override; - void FCFID(u32 frd, u32 frb, bool rc) override; - - void UNK(const u32 code, const u32 opcode, const u32 gcode) override; - -private: - struct ExecutableInfo { - /// Pointer to the executable - Executable executable; - - /// Size of the executable - size_t size; - - /// Number of PPU instructions compiled into this executable - u32 num_instructions; - - /// List of blocks that this executable refers to that have not been hit yet - std::list unhit_blocks_list; - - /// LLVM function corresponding to the executable - llvm::Function * llvm_function; + return hash; + } }; - /// Lock for accessing m_compiled_shared - // TODO: Use a RW lock - std::mutex m_compiled_shared_lock; - - /// Sections that have been compiled. This data store is shared with the execution threads. - /// Keys are starting address of the section and ~revision. Data is pointer to the executable and its reference count. - std::map, std::pair> m_compiled_shared; - - /// Lock for accessing m_uncompiled_shared - std::mutex m_uncompiled_shared_lock; - - /// Current revision. This is incremented everytime a section is compiled. - std::atomic m_revision; - - /// Sections that have not been compiled yet. This data store is shared with the execution threads. - std::list m_uncompiled_shared; - - /// Set of all blocks that have been hit - std::set m_hit_blocks; - - /// Sections that have been compiled. Keys are starting address of the section and ~revision. - std::map, ExecutableInfo> m_compiled; - - /// LLVM context - llvm::LLVMContext * m_llvm_context; - - /// LLVM IR builder - llvm::IRBuilder<> * m_ir_builder; - - /// Module to which all generated code is output to - llvm::Module * m_module; - - /// JIT execution engine - llvm::ExecutionEngine * m_execution_engine; - - /// Function pass manager - llvm::FunctionPassManager * m_fpm; - - /// A flag used to detect branch instructions. - /// This is set to false at the start of compilation of a block. - /// When a branch instruction is encountered, this is set to true by the decode function. - bool m_hit_branch_instruction; - - /// The function being compiled - llvm::Function * m_current_function; - - /// List of blocks to be compiled in the current function being compiled - std::list m_current_function_uncompiled_blocks_list; - - /// List of blocks that the current function refers to but have not been hit yet - std::list m_current_function_unhit_blocks_list; - - /// Address of the current instruction - u32 m_current_instruction_address; - - /// Number of instructions in this section - u32 m_num_instructions; - - /// Time spent building the LLVM IR - std::chrono::nanoseconds m_ir_build_time; - - /// Time spent optimizing - std::chrono::nanoseconds m_optimizing_time; - - /// Time spent translating LLVM IR to machine code - std::chrono::nanoseconds m_translation_time; - - /// Time spent compiling - std::chrono::nanoseconds m_compilation_time; - - /// Time spent idling - std::chrono::nanoseconds m_idling_time; - - /// Total time - std::chrono::nanoseconds m_total_time; - - /// Contains the number of times the interpreter fallback was used - std::map m_interpreter_fallback_stats; - - /// Get the block in function for the instruction at the specified address. - llvm::BasicBlock * GetBlockInFunction(u32 address, llvm::Function * function, bool create_if_not_exist = false); - - /// Compile the section startin at address - void Compile(u32 address); - - /// Remove old versions of executables that are no longer used by any execution thread - void RemoveUnusedOldVersions(); - - /// Test whether the blocks needs to be compiled - bool NeedsCompiling(u32 address); - - /// Get PPU state pointer - llvm::Value * GetPPUState(); - - /// Get interpreter pointer - llvm::Value * GetInterpreter(); - - /// Get a bit - llvm::Value * GetBit(llvm::Value * val, u32 n); - - /// Clear a bit - llvm::Value * ClrBit(llvm::Value * val, u32 n); - - /// Set a bit - llvm::Value * SetBit(llvm::Value * val, u32 n, llvm::Value * bit, bool doClear = true); - - /// Get a nibble - llvm::Value * GetNibble(llvm::Value * val, u32 n); - - /// Clear a nibble - llvm::Value * ClrNibble(llvm::Value * val, u32 n); - - /// Set a nibble - llvm::Value * SetNibble(llvm::Value * val, u32 n, llvm::Value * nibble, bool doClear = true); - - /// Set a nibble - llvm::Value * SetNibble(llvm::Value * val, u32 n, llvm::Value * b0, llvm::Value * b1, llvm::Value * b2, llvm::Value * b3, bool doClear = true); - - /// Load PC - llvm::Value * GetPc(); - - /// Set PC - void SetPc(llvm::Value * val_ix); - - /// Load GPR - llvm::Value * GetGpr(u32 r, u32 num_bits = 64); - - /// Set GPR - void SetGpr(u32 r, llvm::Value * val_x64); - - /// Load CR - llvm::Value * GetCr(); - - /// Load CR and get field CRn - llvm::Value * GetCrField(u32 n); - - /// Set CR - void SetCr(llvm::Value * val_x32); - - /// Set CR field - void SetCrField(u32 n, llvm::Value * field); - - /// Set CR field - void SetCrField(u32 n, llvm::Value * b0, llvm::Value * b1, llvm::Value * b2, llvm::Value * b3); - - /// Set CR field based on signed comparison - void SetCrFieldSignedCmp(u32 n, llvm::Value * a, llvm::Value * b); - - /// Set CR field based on unsigned comparison - void SetCrFieldUnsignedCmp(u32 n, llvm::Value * a, llvm::Value * b); - - /// Set CR6 based on the result of the vector compare instruction - void SetCr6AfterVectorCompare(u32 vr); - - /// Get LR - llvm::Value * GetLr(); - - /// Set LR - void SetLr(llvm::Value * val_x64); - - /// Get CTR - llvm::Value * GetCtr(); - - /// Set CTR - void SetCtr(llvm::Value * val_x64); - - /// Load XER and convert it to an i64 - llvm::Value * GetXer(); - - /// Load XER and return the CA bit - llvm::Value * GetXerCa(); - - /// Load XER and return the SO bit - llvm::Value * GetXerSo(); - - /// Set XER - void SetXer(llvm::Value * val_x64); - - /// Set the CA bit of XER - void SetXerCa(llvm::Value * ca); - - /// Set the SO bit of XER - void SetXerSo(llvm::Value * so); - - /// Get USPRG0 - llvm::Value * GetUsprg0(); - - /// Set USPRG0 - void SetUsprg0(llvm::Value * val_x64); - - /// Get FPR - llvm::Value * GetFpr(u32 r, u32 bits = 64, bool as_int = false); - - /// Set FPR - void SetFpr(u32 r, llvm::Value * val); - - /// Load VSCR - llvm::Value * GetVscr(); - - /// Set VSCR - void SetVscr(llvm::Value * val_x32); - - /// Load VR - llvm::Value * GetVr(u32 vr); - - /// Load VR and convert it to an integer vector - llvm::Value * GetVrAsIntVec(u32 vr, u32 vec_elt_num_bits); - - /// Load VR and convert it to a float vector with 4 elements - llvm::Value * GetVrAsFloatVec(u32 vr); - - /// Load VR and convert it to a double vector with 2 elements - llvm::Value * GetVrAsDoubleVec(u32 vr); - - /// Set VR to the specified value - void SetVr(u32 vr, llvm::Value * val_x128); - - /// Check condition for branch instructions - llvm::Value * CheckBranchCondition(u32 bo, u32 bi); - - /// Create IR for a branch instruction - void CreateBranch(llvm::Value * cmp_i1, llvm::Value * target_i64, bool lk); - - /// Read from memory - llvm::Value * ReadMemory(llvm::Value * addr_i64, u32 bits, u32 alignment = 0, bool bswap = true, bool could_be_mmio = true); - - /// Write to memory - void WriteMemory(llvm::Value * addr_i64, llvm::Value * val_ix, u32 alignment = 0, bool bswap = true, bool could_be_mmio = true); - - /// Call an interpreter function - template - llvm::Value * InterpreterCall(const char * name, Func function, Args... args); - - /// Convert a C++ type to an LLVM type - template - llvm::Type * CppToLlvmType(); - - /// Call a function - template - llvm::Value * Call(const char * name, Func function, Args... args); - - /// Test an instruction against the interpreter - template - void VerifyInstructionAgainstInterpreter(const char * name, PPULLVMRecompilerFn recomp_fn, PPUInterpreterFn interp_fn, PPUState & input_state, Args... args); - - /// Excute a test - void RunTest(const char * name, std::function test_case, std::function input, std::function check_result); - - /// A mask used in rotate instructions - static u64 s_rotate_mask[64][64]; - - /// A flag indicating whether s_rotate_mask has been initialised or not - static bool s_rotate_mask_inited; - - /// Initialse s_rotate_mask - static void InitRotateMask(); -}; - -/// PPU emulator that uses LLVM to convert PPU instructions to host CPU instructions -class PPULLVMEmulator : public CPUDecoder { -public: - PPULLVMEmulator(PPUThread & ppu); - PPULLVMEmulator() = delete; - - PPULLVMEmulator(const PPULLVMEmulator & other) = delete; - PPULLVMEmulator(PPULLVMEmulator && other) = delete; - - virtual ~PPULLVMEmulator(); - - PPULLVMEmulator & operator = (const PPULLVMEmulator & other) = delete; - PPULLVMEmulator & operator = (PPULLVMEmulator && other) = delete; - - u8 DecodeMemory(const u32 address) override; - -private: - struct ExecutableInfo { - /// Pointer to the executable - PPULLVMRecompiler::Executable executable; - - /// The revision of the executable - u32 revision; - - /// Number of times the executable was hit - u32 num_hits; + /// An execution trace. + struct ExecutionTrace { + /// Unique id of an execution trace; + typedef u64 Id; + + /// The function to which this trace belongs + u32 function_address; + + /// Execution trace type + enum class Type { + Linear, + Loop, + } type; + + /// entries in the trace + std::vector entries; + + ExecutionTrace(u32 address) + : function_address(address) { + } + + std::string ToString() const { + auto s = fmt::Format("0x%08X %s ->", function_address, type == ExecutionTrace::Type::Loop ? "Loop" : "Linear"); + for (auto i = 0; i < entries.size(); i++) { + s += " " + entries[i].ToString(); + } + + return s; + } + + Id GetId() const { + Id id = 0; + + for (auto i = entries.begin(); i != entries.end(); i++) { + id ^= i->hash(); + id <<= 1; + } + + return id; + } }; - /// PPU processor context - PPUThread & m_ppu; + /// A control flow graph + struct ControlFlowGraph { + /// Address of the first instruction + u32 start_address; - /// PPU Interpreter - PPUInterpreter * m_interpreter; + /// Address of the function to which this CFG belongs to + u32 function_address; - /// PPU instruction Decoder - PPUDecoder m_decoder; + /// Set of addresses of the instructions in the CFG + std::set instruction_addresses; - /// Set to true if the last executed instruction was a branch - bool m_last_instr_was_branch; + /// Branches in the CFG. + /// Key is the address of an instruction + /// Data is the set of all instructions to which this instruction branches to. + std::map> branches; - /// The time at which the m_address_to_executable cache was last cleared - std::chrono::high_resolution_clock::time_point m_last_cache_clear_time; + /// Function calls in the CFG + /// Key is the address of an instruction + /// Data is the set of all functions which this instruction invokes. + std::map> calls; - /// The revision of the recompiler to which this thread is synced - u32 m_recompiler_revision; + ControlFlowGraph(u32 start_address, u32 function_address) + : start_address(start_address) + , function_address(function_address) { + } - /// Address to executable map. Key is address. - std::unordered_map m_address_to_executable; + void operator += (const ControlFlowGraph & other) { + for (auto i = other.instruction_addresses.begin(); i != other.instruction_addresses.end(); i++) { + instruction_addresses.insert(*i); + } - /// Sections that have not been compiled yet. Key is starting address of the section. - std::unordered_map m_uncompiled; + for (auto i = other.branches.begin(); i != other.branches.end(); i++) { + auto j = branches.find(i->first); + if (j == branches.end()) { + j = branches.insert(branches.begin(), std::make_pair(i->first, std::set())); + } - /// Number of instances of this class - static u32 s_num_instances; + for (auto k = i->second.begin(); k != i->second.end(); k++) { + j->second.insert(*k); + } + } - /// Mutex used prevent multiple instances of the recompiler from being created - static std::mutex s_recompiler_mutex; + for (auto i = other.calls.begin(); i != other.calls.end(); i++) { + auto j = calls.find(i->first); + if (j == calls.end()) { + j = calls.insert(calls.begin(), std::make_pair(i->first, std::set())); + } - /// PPU to LLVM recompiler - static PPULLVMRecompiler * s_recompiler; -}; + for (auto k = i->second.begin(); k != i->second.end(); k++) { + j->second.insert(*k); + } + } + } + + std::string ToString() const { + auto s = fmt::Format("0x%08X (0x%08X):", start_address, function_address); + for (auto i = instruction_addresses.begin(); i != instruction_addresses.end(); i++) { + s += fmt::Format(" 0x%08X", *i); + } + + s += "\nBranches:"; + for (auto i = branches.begin(); i != branches.end(); i++) { + s += fmt::Format("\n0x%08X ->", i->first); + for (auto j = i->second.begin(); j != i->second.end(); j++) { + s += fmt::Format(" 0x%08X", *j); + } + } + + s += "\nCalls:"; + for (auto i = calls.begin(); i != calls.end(); i++) { + s += fmt::Format("\n0x%08X ->", i->first); + for (auto j = i->second.begin(); j != i->second.end(); j++) { + s += fmt::Format(" 0x%08X", *j); + } + } + + return s; + } + }; + + enum class BranchType { + NonBranch, + LocalBranch, + FunctionCall, + Return, + }; + + /// Pointer to an executable + typedef u32(*Executable)(PPUThread * ppu_state, PPUInterpreter * interpreter, u64 context); + + /// PPU compiler that uses LLVM for code generation and optimization + class Compiler : protected PPUOpcodes, protected PPCDecoder { + public: + struct Stats { + /// Time spent building the LLVM IR + std::chrono::nanoseconds ir_build_time; + + /// Time spent optimizing + std::chrono::nanoseconds optimization_time; + + /// Time spent translating LLVM IR to machine code + std::chrono::nanoseconds translation_time; + + /// Total time + std::chrono::nanoseconds total_time; + + /// Contains the number of times interpreter fallback was used + std::map interpreter_fallback_stats; + }; + + Compiler(RecompilationEngine & recompilation_engine, const Executable execute_unknown_function, const Executable execute_unknown_block); + + Compiler(const Compiler & other) = delete; + Compiler(Compiler && other) = delete; + + virtual ~Compiler(); + + Compiler & operator = (const Compiler & other) = delete; + Compiler & operator = (Compiler && other) = delete; + + /// Compile a code fragment described by a cfg and return an executable + Executable Compile(const std::string & name, const ControlFlowGraph & cfg, bool inline_all_blocks, bool generate_linkable_exits); + + /// Free an executable earilier obtained via a call to Compile + void FreeExecutable(const std::string & name); + + /// Retrieve compiler stats + Stats GetStats(); + + /// Execute all tests + void RunAllTests(PPUThread * ppu_state, PPUInterpreter * interpreter); + + protected: + void Decode(const u32 code) override; + + void NULL_OP() override; + void NOP() override; + + void TDI(u32 to, u32 ra, s32 simm16) override; + void TWI(u32 to, u32 ra, s32 simm16) override; + + void MFVSCR(u32 vd) override; + void MTVSCR(u32 vb) override; + void VADDCUW(u32 vd, u32 va, u32 vb) override; + void VADDFP(u32 vd, u32 va, u32 vb) override; + void VADDSBS(u32 vd, u32 va, u32 vb) override; + void VADDSHS(u32 vd, u32 va, u32 vb) override; + void VADDSWS(u32 vd, u32 va, u32 vb) override; + void VADDUBM(u32 vd, u32 va, u32 vb) override; + void VADDUBS(u32 vd, u32 va, u32 vb) override; + void VADDUHM(u32 vd, u32 va, u32 vb) override; + void VADDUHS(u32 vd, u32 va, u32 vb) override; + void VADDUWM(u32 vd, u32 va, u32 vb) override; + void VADDUWS(u32 vd, u32 va, u32 vb) override; + void VAND(u32 vd, u32 va, u32 vb) override; + void VANDC(u32 vd, u32 va, u32 vb) override; + void VAVGSB(u32 vd, u32 va, u32 vb) override; + void VAVGSH(u32 vd, u32 va, u32 vb) override; + void VAVGSW(u32 vd, u32 va, u32 vb) override; + void VAVGUB(u32 vd, u32 va, u32 vb) override; + void VAVGUH(u32 vd, u32 va, u32 vb) override; + void VAVGUW(u32 vd, u32 va, u32 vb) override; + void VCFSX(u32 vd, u32 uimm5, u32 vb) override; + void VCFUX(u32 vd, u32 uimm5, u32 vb) override; + void VCMPBFP(u32 vd, u32 va, u32 vb) override; + void VCMPBFP_(u32 vd, u32 va, u32 vb) override; + void VCMPEQFP(u32 vd, u32 va, u32 vb) override; + void VCMPEQFP_(u32 vd, u32 va, u32 vb) override; + void VCMPEQUB(u32 vd, u32 va, u32 vb) override; + void VCMPEQUB_(u32 vd, u32 va, u32 vb) override; + void VCMPEQUH(u32 vd, u32 va, u32 vb) override; + void VCMPEQUH_(u32 vd, u32 va, u32 vb) override; + void VCMPEQUW(u32 vd, u32 va, u32 vb) override; + void VCMPEQUW_(u32 vd, u32 va, u32 vb) override; + void VCMPGEFP(u32 vd, u32 va, u32 vb) override; + void VCMPGEFP_(u32 vd, u32 va, u32 vb) override; + void VCMPGTFP(u32 vd, u32 va, u32 vb) override; + void VCMPGTFP_(u32 vd, u32 va, u32 vb) override; + void VCMPGTSB(u32 vd, u32 va, u32 vb) override; + void VCMPGTSB_(u32 vd, u32 va, u32 vb) override; + void VCMPGTSH(u32 vd, u32 va, u32 vb) override; + void VCMPGTSH_(u32 vd, u32 va, u32 vb) override; + void VCMPGTSW(u32 vd, u32 va, u32 vb) override; + void VCMPGTSW_(u32 vd, u32 va, u32 vb) override; + void VCMPGTUB(u32 vd, u32 va, u32 vb) override; + void VCMPGTUB_(u32 vd, u32 va, u32 vb) override; + void VCMPGTUH(u32 vd, u32 va, u32 vb) override; + void VCMPGTUH_(u32 vd, u32 va, u32 vb) override; + void VCMPGTUW(u32 vd, u32 va, u32 vb) override; + void VCMPGTUW_(u32 vd, u32 va, u32 vb) override; + void VCTSXS(u32 vd, u32 uimm5, u32 vb) override; + void VCTUXS(u32 vd, u32 uimm5, u32 vb) override; + void VEXPTEFP(u32 vd, u32 vb) override; + void VLOGEFP(u32 vd, u32 vb) override; + void VMADDFP(u32 vd, u32 va, u32 vc, u32 vb) override; + void VMAXFP(u32 vd, u32 va, u32 vb) override; + void VMAXSB(u32 vd, u32 va, u32 vb) override; + void VMAXSH(u32 vd, u32 va, u32 vb) override; + void VMAXSW(u32 vd, u32 va, u32 vb) override; + void VMAXUB(u32 vd, u32 va, u32 vb) override; + void VMAXUH(u32 vd, u32 va, u32 vb) override; + void VMAXUW(u32 vd, u32 va, u32 vb) override; + void VMHADDSHS(u32 vd, u32 va, u32 vb, u32 vc) override; + void VMHRADDSHS(u32 vd, u32 va, u32 vb, u32 vc) override; + void VMINFP(u32 vd, u32 va, u32 vb) override; + void VMINSB(u32 vd, u32 va, u32 vb) override; + void VMINSH(u32 vd, u32 va, u32 vb) override; + void VMINSW(u32 vd, u32 va, u32 vb) override; + void VMINUB(u32 vd, u32 va, u32 vb) override; + void VMINUH(u32 vd, u32 va, u32 vb) override; + void VMINUW(u32 vd, u32 va, u32 vb) override; + void VMLADDUHM(u32 vd, u32 va, u32 vb, u32 vc) override; + void VMRGHB(u32 vd, u32 va, u32 vb) override; + void VMRGHH(u32 vd, u32 va, u32 vb) override; + void VMRGHW(u32 vd, u32 va, u32 vb) override; + void VMRGLB(u32 vd, u32 va, u32 vb) override; + void VMRGLH(u32 vd, u32 va, u32 vb) override; + void VMRGLW(u32 vd, u32 va, u32 vb) override; + void VMSUMMBM(u32 vd, u32 va, u32 vb, u32 vc) override; + void VMSUMSHM(u32 vd, u32 va, u32 vb, u32 vc) override; + void VMSUMSHS(u32 vd, u32 va, u32 vb, u32 vc) override; + void VMSUMUBM(u32 vd, u32 va, u32 vb, u32 vc) override; + void VMSUMUHM(u32 vd, u32 va, u32 vb, u32 vc) override; + void VMSUMUHS(u32 vd, u32 va, u32 vb, u32 vc) override; + void VMULESB(u32 vd, u32 va, u32 vb) override; + void VMULESH(u32 vd, u32 va, u32 vb) override; + void VMULEUB(u32 vd, u32 va, u32 vb) override; + void VMULEUH(u32 vd, u32 va, u32 vb) override; + void VMULOSB(u32 vd, u32 va, u32 vb) override; + void VMULOSH(u32 vd, u32 va, u32 vb) override; + void VMULOUB(u32 vd, u32 va, u32 vb) override; + void VMULOUH(u32 vd, u32 va, u32 vb) override; + void VNMSUBFP(u32 vd, u32 va, u32 vc, u32 vb) override; + void VNOR(u32 vd, u32 va, u32 vb) override; + void VOR(u32 vd, u32 va, u32 vb) override; + void VPERM(u32 vd, u32 va, u32 vb, u32 vc) override; + void VPKPX(u32 vd, u32 va, u32 vb) override; + void VPKSHSS(u32 vd, u32 va, u32 vb) override; + void VPKSHUS(u32 vd, u32 va, u32 vb) override; + void VPKSWSS(u32 vd, u32 va, u32 vb) override; + void VPKSWUS(u32 vd, u32 va, u32 vb) override; + void VPKUHUM(u32 vd, u32 va, u32 vb) override; + void VPKUHUS(u32 vd, u32 va, u32 vb) override; + void VPKUWUM(u32 vd, u32 va, u32 vb) override; + void VPKUWUS(u32 vd, u32 va, u32 vb) override; + void VREFP(u32 vd, u32 vb) override; + void VRFIM(u32 vd, u32 vb) override; + void VRFIN(u32 vd, u32 vb) override; + void VRFIP(u32 vd, u32 vb) override; + void VRFIZ(u32 vd, u32 vb) override; + void VRLB(u32 vd, u32 va, u32 vb) override; + void VRLH(u32 vd, u32 va, u32 vb) override; + void VRLW(u32 vd, u32 va, u32 vb) override; + void VRSQRTEFP(u32 vd, u32 vb) override; + void VSEL(u32 vd, u32 va, u32 vb, u32 vc) override; + void VSL(u32 vd, u32 va, u32 vb) override; + void VSLB(u32 vd, u32 va, u32 vb) override; + void VSLDOI(u32 vd, u32 va, u32 vb, u32 sh) override; + void VSLH(u32 vd, u32 va, u32 vb) override; + void VSLO(u32 vd, u32 va, u32 vb) override; + void VSLW(u32 vd, u32 va, u32 vb) override; + void VSPLTB(u32 vd, u32 uimm5, u32 vb) override; + void VSPLTH(u32 vd, u32 uimm5, u32 vb) override; + void VSPLTISB(u32 vd, s32 simm5) override; + void VSPLTISH(u32 vd, s32 simm5) override; + void VSPLTISW(u32 vd, s32 simm5) override; + void VSPLTW(u32 vd, u32 uimm5, u32 vb) override; + void VSR(u32 vd, u32 va, u32 vb) override; + void VSRAB(u32 vd, u32 va, u32 vb) override; + void VSRAH(u32 vd, u32 va, u32 vb) override; + void VSRAW(u32 vd, u32 va, u32 vb) override; + void VSRB(u32 vd, u32 va, u32 vb) override; + void VSRH(u32 vd, u32 va, u32 vb) override; + void VSRO(u32 vd, u32 va, u32 vb) override; + void VSRW(u32 vd, u32 va, u32 vb) override; + void VSUBCUW(u32 vd, u32 va, u32 vb) override; + void VSUBFP(u32 vd, u32 va, u32 vb) override; + void VSUBSBS(u32 vd, u32 va, u32 vb) override; + void VSUBSHS(u32 vd, u32 va, u32 vb) override; + void VSUBSWS(u32 vd, u32 va, u32 vb) override; + void VSUBUBM(u32 vd, u32 va, u32 vb) override; + void VSUBUBS(u32 vd, u32 va, u32 vb) override; + void VSUBUHM(u32 vd, u32 va, u32 vb) override; + void VSUBUHS(u32 vd, u32 va, u32 vb) override; + void VSUBUWM(u32 vd, u32 va, u32 vb) override; + void VSUBUWS(u32 vd, u32 va, u32 vb) override; + void VSUMSWS(u32 vd, u32 va, u32 vb) override; + void VSUM2SWS(u32 vd, u32 va, u32 vb) override; + void VSUM4SBS(u32 vd, u32 va, u32 vb) override; + void VSUM4SHS(u32 vd, u32 va, u32 vb) override; + void VSUM4UBS(u32 vd, u32 va, u32 vb) override; + void VUPKHPX(u32 vd, u32 vb) override; + void VUPKHSB(u32 vd, u32 vb) override; + void VUPKHSH(u32 vd, u32 vb) override; + void VUPKLPX(u32 vd, u32 vb) override; + void VUPKLSB(u32 vd, u32 vb) override; + void VUPKLSH(u32 vd, u32 vb) override; + void VXOR(u32 vd, u32 va, u32 vb) override; + void MULLI(u32 rd, u32 ra, s32 simm16) override; + void SUBFIC(u32 rd, u32 ra, s32 simm16) override; + void CMPLI(u32 bf, u32 l, u32 ra, u32 uimm16) override; + void CMPI(u32 bf, u32 l, u32 ra, s32 simm16) override; + void ADDIC(u32 rd, u32 ra, s32 simm16) override; + void ADDIC_(u32 rd, u32 ra, s32 simm16) override; + void ADDI(u32 rd, u32 ra, s32 simm16) override; + void ADDIS(u32 rd, u32 ra, s32 simm16) override; + void BC(u32 bo, u32 bi, s32 bd, u32 aa, u32 lk) override; + void SC(u32 sc_code) override; + void B(s32 ll, u32 aa, u32 lk) override; + void MCRF(u32 crfd, u32 crfs) override; + void BCLR(u32 bo, u32 bi, u32 bh, u32 lk) override; + void CRNOR(u32 bt, u32 ba, u32 bb) override; + void CRANDC(u32 bt, u32 ba, u32 bb) override; + void ISYNC() override; + void CRXOR(u32 bt, u32 ba, u32 bb) override; + void CRNAND(u32 bt, u32 ba, u32 bb) override; + void CRAND(u32 bt, u32 ba, u32 bb) override; + void CREQV(u32 bt, u32 ba, u32 bb) override; + void CRORC(u32 bt, u32 ba, u32 bb) override; + void CROR(u32 bt, u32 ba, u32 bb) override; + void BCCTR(u32 bo, u32 bi, u32 bh, u32 lk) override; + void RLWIMI(u32 ra, u32 rs, u32 sh, u32 mb, u32 me, bool rc) override; + void RLWINM(u32 ra, u32 rs, u32 sh, u32 mb, u32 me, bool rc) override; + void RLWNM(u32 ra, u32 rs, u32 rb, u32 MB, u32 ME, bool rc) override; + void ORI(u32 rs, u32 ra, u32 uimm16) override; + void ORIS(u32 rs, u32 ra, u32 uimm16) override; + void XORI(u32 ra, u32 rs, u32 uimm16) override; + void XORIS(u32 ra, u32 rs, u32 uimm16) override; + void ANDI_(u32 ra, u32 rs, u32 uimm16) override; + void ANDIS_(u32 ra, u32 rs, u32 uimm16) override; + void RLDICL(u32 ra, u32 rs, u32 sh, u32 mb, bool rc) override; + void RLDICR(u32 ra, u32 rs, u32 sh, u32 me, bool rc) override; + void RLDIC(u32 ra, u32 rs, u32 sh, u32 mb, bool rc) override; + void RLDIMI(u32 ra, u32 rs, u32 sh, u32 mb, bool rc) override; + void RLDC_LR(u32 ra, u32 rs, u32 rb, u32 m_eb, bool is_r, bool rc) override; + void CMP(u32 crfd, u32 l, u32 ra, u32 rb) override; + void TW(u32 to, u32 ra, u32 rb) override; + void LVSL(u32 vd, u32 ra, u32 rb) override; + void LVEBX(u32 vd, u32 ra, u32 rb) override; + void SUBFC(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) override; + void MULHDU(u32 rd, u32 ra, u32 rb, bool rc) override; + void ADDC(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) override; + void MULHWU(u32 rd, u32 ra, u32 rb, bool rc) override; + void MFOCRF(u32 a, u32 rd, u32 crm) override; + void LWARX(u32 rd, u32 ra, u32 rb) override; + void LDX(u32 ra, u32 rs, u32 rb) override; + void LWZX(u32 rd, u32 ra, u32 rb) override; + void SLW(u32 ra, u32 rs, u32 rb, bool rc) override; + void CNTLZW(u32 ra, u32 rs, bool rc) override; + void SLD(u32 ra, u32 rs, u32 rb, bool rc) override; + void AND(u32 ra, u32 rs, u32 rb, bool rc) override; + void CMPL(u32 bf, u32 l, u32 ra, u32 rb) override; + void LVSR(u32 vd, u32 ra, u32 rb) override; + void LVEHX(u32 vd, u32 ra, u32 rb) override; + void SUBF(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) override; + void LDUX(u32 rd, u32 ra, u32 rb) override; + void DCBST(u32 ra, u32 rb) override; + void LWZUX(u32 rd, u32 ra, u32 rb) override; + void CNTLZD(u32 ra, u32 rs, bool rc) override; + void ANDC(u32 ra, u32 rs, u32 rb, bool rc) override; + void TD(u32 to, u32 ra, u32 rb) override; + void LVEWX(u32 vd, u32 ra, u32 rb) override; + void MULHD(u32 rd, u32 ra, u32 rb, bool rc) override; + void MULHW(u32 rd, u32 ra, u32 rb, bool rc) override; + void LDARX(u32 rd, u32 ra, u32 rb) override; + void DCBF(u32 ra, u32 rb) override; + void LBZX(u32 rd, u32 ra, u32 rb) override; + void LVX(u32 vd, u32 ra, u32 rb) override; + void NEG(u32 rd, u32 ra, u32 oe, bool rc) override; + void LBZUX(u32 rd, u32 ra, u32 rb) override; + void NOR(u32 ra, u32 rs, u32 rb, bool rc) override; + void STVEBX(u32 vs, u32 ra, u32 rb) override; + void SUBFE(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) override; + void ADDE(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) override; + void MTOCRF(u32 l, u32 crm, u32 rs) override; + void STDX(u32 rs, u32 ra, u32 rb) override; + void STWCX_(u32 rs, u32 ra, u32 rb) override; + void STWX(u32 rs, u32 ra, u32 rb) override; + void STVEHX(u32 vs, u32 ra, u32 rb) override; + void STDUX(u32 rs, u32 ra, u32 rb) override; + void STWUX(u32 rs, u32 ra, u32 rb) override; + void STVEWX(u32 vs, u32 ra, u32 rb) override; + void SUBFZE(u32 rd, u32 ra, u32 oe, bool rc) override; + void ADDZE(u32 rd, u32 ra, u32 oe, bool rc) override; + void STDCX_(u32 rs, u32 ra, u32 rb) override; + void STBX(u32 rs, u32 ra, u32 rb) override; + void STVX(u32 vs, u32 ra, u32 rb) override; + void MULLD(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) override; + void SUBFME(u32 rd, u32 ra, u32 oe, bool rc) override; + void ADDME(u32 rd, u32 ra, u32 oe, bool rc) override; + void MULLW(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) override; + void DCBTST(u32 ra, u32 rb, u32 th) override; + void STBUX(u32 rs, u32 ra, u32 rb) override; + void ADD(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) override; + void DCBT(u32 ra, u32 rb, u32 th) override; + void LHZX(u32 rd, u32 ra, u32 rb) override; + void EQV(u32 ra, u32 rs, u32 rb, bool rc) override; + void ECIWX(u32 rd, u32 ra, u32 rb) override; + void LHZUX(u32 rd, u32 ra, u32 rb) override; + void XOR(u32 rs, u32 ra, u32 rb, bool rc) override; + void MFSPR(u32 rd, u32 spr) override; + void LWAX(u32 rd, u32 ra, u32 rb) override; + void DST(u32 ra, u32 rb, u32 strm, u32 t) override; + void LHAX(u32 rd, u32 ra, u32 rb) override; + void LVXL(u32 vd, u32 ra, u32 rb) override; + void MFTB(u32 rd, u32 spr) override; + void LWAUX(u32 rd, u32 ra, u32 rb) override; + void DSTST(u32 ra, u32 rb, u32 strm, u32 t) override; + void LHAUX(u32 rd, u32 ra, u32 rb) override; + void STHX(u32 rs, u32 ra, u32 rb) override; + void ORC(u32 rs, u32 ra, u32 rb, bool rc) override; + void ECOWX(u32 rs, u32 ra, u32 rb) override; + void STHUX(u32 rs, u32 ra, u32 rb) override; + void OR(u32 ra, u32 rs, u32 rb, bool rc) override; + void DIVDU(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) override; + void DIVWU(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) override; + void MTSPR(u32 spr, u32 rs) override; + void DCBI(u32 ra, u32 rb) override; + void NAND(u32 ra, u32 rs, u32 rb, bool rc) override; + void STVXL(u32 vs, u32 ra, u32 rb) override; + void DIVD(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) override; + void DIVW(u32 rd, u32 ra, u32 rb, u32 oe, bool rc) override; + void LVLX(u32 vd, u32 ra, u32 rb) override; + void LDBRX(u32 rd, u32 ra, u32 rb) override; + void LSWX(u32 rd, u32 ra, u32 rb) override; + void LWBRX(u32 rd, u32 ra, u32 rb) override; + void LFSX(u32 frd, u32 ra, u32 rb) override; + void SRW(u32 ra, u32 rs, u32 rb, bool rc) override; + void SRD(u32 ra, u32 rs, u32 rb, bool rc) override; + void LVRX(u32 vd, u32 ra, u32 rb) override; + void LSWI(u32 rd, u32 ra, u32 nb) override; + void LFSUX(u32 frd, u32 ra, u32 rb) override; + void SYNC(u32 l) override; + void LFDX(u32 frd, u32 ra, u32 rb) override; + void LFDUX(u32 frd, u32 ra, u32 rb) override; + void STVLX(u32 vs, u32 ra, u32 rb) override; + void STSWX(u32 rs, u32 ra, u32 rb) override; + void STWBRX(u32 rs, u32 ra, u32 rb) override; + void STFSX(u32 frs, u32 ra, u32 rb) override; + void STVRX(u32 vs, u32 ra, u32 rb) override; + void STFSUX(u32 frs, u32 ra, u32 rb) override; + void STSWI(u32 rd, u32 ra, u32 nb) override; + void STFDX(u32 frs, u32 ra, u32 rb) override; + void STFDUX(u32 frs, u32 ra, u32 rb) override; + void LVLXL(u32 vd, u32 ra, u32 rb) override; + void LHBRX(u32 rd, u32 ra, u32 rb) override; + void SRAW(u32 ra, u32 rs, u32 rb, bool rc) override; + void SRAD(u32 ra, u32 rs, u32 rb, bool rc) override; + void LVRXL(u32 vd, u32 ra, u32 rb) override; + void DSS(u32 strm, u32 a) override; + void SRAWI(u32 ra, u32 rs, u32 sh, bool rc) override; + void SRADI1(u32 ra, u32 rs, u32 sh, bool rc) override; + void SRADI2(u32 ra, u32 rs, u32 sh, bool rc) override; + void EIEIO() override; + void STVLXL(u32 vs, u32 ra, u32 rb) override; + void STHBRX(u32 rs, u32 ra, u32 rb) override; + void EXTSH(u32 ra, u32 rs, bool rc) override; + void STVRXL(u32 sd, u32 ra, u32 rb) override; + void EXTSB(u32 ra, u32 rs, bool rc) override; + void STFIWX(u32 frs, u32 ra, u32 rb) override; + void EXTSW(u32 ra, u32 rs, bool rc) override; + void ICBI(u32 ra, u32 rb) override; + void DCBZ(u32 ra, u32 rb) override; + void LWZ(u32 rd, u32 ra, s32 d) override; + void LWZU(u32 rd, u32 ra, s32 d) override; + void LBZ(u32 rd, u32 ra, s32 d) override; + void LBZU(u32 rd, u32 ra, s32 d) override; + void STW(u32 rs, u32 ra, s32 d) override; + void STWU(u32 rs, u32 ra, s32 d) override; + void STB(u32 rs, u32 ra, s32 d) override; + void STBU(u32 rs, u32 ra, s32 d) override; + void LHZ(u32 rd, u32 ra, s32 d) override; + void LHZU(u32 rd, u32 ra, s32 d) override; + void LHA(u32 rs, u32 ra, s32 d) override; + void LHAU(u32 rs, u32 ra, s32 d) override; + void STH(u32 rs, u32 ra, s32 d) override; + void STHU(u32 rs, u32 ra, s32 d) override; + void LMW(u32 rd, u32 ra, s32 d) override; + void STMW(u32 rs, u32 ra, s32 d) override; + void LFS(u32 frd, u32 ra, s32 d) override; + void LFSU(u32 frd, u32 ra, s32 d) override; + void LFD(u32 frd, u32 ra, s32 d) override; + void LFDU(u32 frd, u32 ra, s32 d) override; + void STFS(u32 frs, u32 ra, s32 d) override; + void STFSU(u32 frs, u32 ra, s32 d) override; + void STFD(u32 frs, u32 ra, s32 d) override; + void STFDU(u32 frs, u32 ra, s32 d) override; + void LD(u32 rd, u32 ra, s32 ds) override; + void LDU(u32 rd, u32 ra, s32 ds) override; + void LWA(u32 rd, u32 ra, s32 ds) override; + void FDIVS(u32 frd, u32 fra, u32 frb, bool rc) override; + void FSUBS(u32 frd, u32 fra, u32 frb, bool rc) override; + void FADDS(u32 frd, u32 fra, u32 frb, bool rc) override; + void FSQRTS(u32 frd, u32 frb, bool rc) override; + void FRES(u32 frd, u32 frb, bool rc) override; + void FMULS(u32 frd, u32 fra, u32 frc, bool rc) override; + void FMADDS(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) override; + void FMSUBS(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) override; + void FNMSUBS(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) override; + void FNMADDS(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) override; + void STD(u32 rs, u32 ra, s32 ds) override; + void STDU(u32 rs, u32 ra, s32 ds) override; + void MTFSB1(u32 bt, bool rc) override; + void MCRFS(u32 bf, u32 bfa) override; + void MTFSB0(u32 bt, bool rc) override; + void MTFSFI(u32 crfd, u32 i, bool rc) override; + void MFFS(u32 frd, bool rc) override; + void MTFSF(u32 flm, u32 frb, bool rc) override; + + void FCMPU(u32 bf, u32 fra, u32 frb) override; + void FRSP(u32 frd, u32 frb, bool rc) override; + void FCTIW(u32 frd, u32 frb, bool rc) override; + void FCTIWZ(u32 frd, u32 frb, bool rc) override; + void FDIV(u32 frd, u32 fra, u32 frb, bool rc) override; + void FSUB(u32 frd, u32 fra, u32 frb, bool rc) override; + void FADD(u32 frd, u32 fra, u32 frb, bool rc) override; + void FSQRT(u32 frd, u32 frb, bool rc) override; + void FSEL(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) override; + void FMUL(u32 frd, u32 fra, u32 frc, bool rc) override; + void FRSQRTE(u32 frd, u32 frb, bool rc) override; + void FMSUB(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) override; + void FMADD(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) override; + void FNMSUB(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) override; + void FNMADD(u32 frd, u32 fra, u32 frc, u32 frb, bool rc) override; + void FCMPO(u32 crfd, u32 fra, u32 frb) override; + void FNEG(u32 frd, u32 frb, bool rc) override; + void FMR(u32 frd, u32 frb, bool rc) override; + void FNABS(u32 frd, u32 frb, bool rc) override; + void FABS(u32 frd, u32 frb, bool rc) override; + void FCTID(u32 frd, u32 frb, bool rc) override; + void FCTIDZ(u32 frd, u32 frb, bool rc) override; + void FCFID(u32 frd, u32 frb, bool rc) override; + + void UNK(const u32 code, const u32 opcode, const u32 gcode) override; + + private: + /// State of a compilation task + struct CompileTaskState { + enum Args { + State, + Interpreter, + Context, + MaxArgs, + }; + + /// The LLVM function for the compilation task + llvm::Function * function; + + /// Args of the LLVM function + llvm::Value * args[MaxArgs]; + + /// The CFG being compiled + const ControlFlowGraph * cfg; + + /// Address of the current instruction being compiled + u32 current_instruction_address; + + /// A flag used to detect branch instructions. + /// This is set to false at the start of compilation of an instruction. + /// If a branch instruction is encountered, this is set to true by the decode function. + bool hit_branch_instruction; + + /// Indicates whether a block should be inlined even if an already compiled version of the block exists + bool inline_all; + + /// Create code such that exit points can be linked to other blocks + bool generate_linkable_exits; + }; + + /// Recompilation engine + RecompilationEngine & m_recompilation_engine; + + /// The function that will be called to execute unknown functions + llvm::Function * m_execute_unknown_function; + + /// The executable that will be called to execute unknown blocks + llvm::Function * m_execute_unknown_block; + + /// LLVM context + llvm::LLVMContext * m_llvm_context; + + /// LLVM IR builder + llvm::IRBuilder<> * m_ir_builder; + + /// Module to which all generated code is output to + llvm::Module * m_module; + + /// JIT execution engine + llvm::ExecutionEngine * m_execution_engine; + + /// Function pass manager + llvm::FunctionPassManager * m_fpm; + + /// LLVM type of the functions genreated by the compiler + llvm::FunctionType * m_compiled_function_type; + + /// State of the current compilation task + CompileTaskState m_state; + + /// Compiler stats + Stats m_stats; + + /// Get the name of the basic block for the specified address + std::string GetBasicBlockNameFromAddress(u32 address, const std::string & suffix = "") const; + + /// Get the address of a basic block from its name + u32 GetAddressFromBasicBlockName(const std::string & name) const; + + /// Get the basic block in for the specified address. + llvm::BasicBlock * GetBasicBlockFromAddress(u32 address, const std::string & suffix = "", bool create_if_not_exist = true); + + /// Get a bit + llvm::Value * GetBit(llvm::Value * val, u32 n); + + /// Clear a bit + llvm::Value * ClrBit(llvm::Value * val, u32 n); + + /// Set a bit + llvm::Value * SetBit(llvm::Value * val, u32 n, llvm::Value * bit, bool doClear = true); + + /// Get a nibble + llvm::Value * GetNibble(llvm::Value * val, u32 n); + + /// Clear a nibble + llvm::Value * ClrNibble(llvm::Value * val, u32 n); + + /// Set a nibble + llvm::Value * SetNibble(llvm::Value * val, u32 n, llvm::Value * nibble, bool doClear = true); + + /// Set a nibble + llvm::Value * SetNibble(llvm::Value * val, u32 n, llvm::Value * b0, llvm::Value * b1, llvm::Value * b2, llvm::Value * b3, bool doClear = true); + + /// Load PC + llvm::Value * GetPc(); + + /// Set PC + void SetPc(llvm::Value * val_ix); + + /// Load GPR + llvm::Value * GetGpr(u32 r, u32 num_bits = 64); + + /// Set GPR + void SetGpr(u32 r, llvm::Value * val_x64); + + /// Load CR + llvm::Value * GetCr(); + + /// Load CR and get field CRn + llvm::Value * GetCrField(u32 n); + + /// Set CR + void SetCr(llvm::Value * val_x32); + + /// Set CR field + void SetCrField(u32 n, llvm::Value * field); + + /// Set CR field + void SetCrField(u32 n, llvm::Value * b0, llvm::Value * b1, llvm::Value * b2, llvm::Value * b3); + + /// Set CR field based on signed comparison + void SetCrFieldSignedCmp(u32 n, llvm::Value * a, llvm::Value * b); + + /// Set CR field based on unsigned comparison + void SetCrFieldUnsignedCmp(u32 n, llvm::Value * a, llvm::Value * b); + + /// Set CR6 based on the result of the vector compare instruction + void SetCr6AfterVectorCompare(u32 vr); + + /// Get LR + llvm::Value * GetLr(); + + /// Set LR + void SetLr(llvm::Value * val_x64); + + /// Get CTR + llvm::Value * GetCtr(); + + /// Set CTR + void SetCtr(llvm::Value * val_x64); + + /// Load XER and convert it to an i64 + llvm::Value * GetXer(); + + /// Load XER and return the CA bit + llvm::Value * GetXerCa(); + + /// Load XER and return the SO bit + llvm::Value * GetXerSo(); + + /// Set XER + void SetXer(llvm::Value * val_x64); + + /// Set the CA bit of XER + void SetXerCa(llvm::Value * ca); + + /// Set the SO bit of XER + void SetXerSo(llvm::Value * so); + + /// Get USPRG0 + llvm::Value * GetUsprg0(); + + /// Set USPRG0 + void SetUsprg0(llvm::Value * val_x64); + + /// Get FPR + llvm::Value * GetFpr(u32 r, u32 bits = 64, bool as_int = false); + + /// Set FPR + void SetFpr(u32 r, llvm::Value * val); + + /// Load VSCR + llvm::Value * GetVscr(); + + /// Set VSCR + void SetVscr(llvm::Value * val_x32); + + /// Load VR + llvm::Value * GetVr(u32 vr); + + /// Load VR and convert it to an integer vector + llvm::Value * GetVrAsIntVec(u32 vr, u32 vec_elt_num_bits); + + /// Load VR and convert it to a float vector with 4 elements + llvm::Value * GetVrAsFloatVec(u32 vr); + + /// Load VR and convert it to a double vector with 2 elements + llvm::Value * GetVrAsDoubleVec(u32 vr); + + /// Set VR to the specified value + void SetVr(u32 vr, llvm::Value * val_x128); + + /// Check condition for branch instructions + llvm::Value * CheckBranchCondition(u32 bo, u32 bi); + + /// Create IR for a branch instruction + void CreateBranch(llvm::Value * cmp_i1, llvm::Value * target_i32, bool lk, bool target_is_lr = false); + + /// Read from memory + llvm::Value * ReadMemory(llvm::Value * addr_i64, u32 bits, u32 alignment = 0, bool bswap = true, bool could_be_mmio = true); + + /// Write to memory + void WriteMemory(llvm::Value * addr_i64, llvm::Value * val_ix, u32 alignment = 0, bool bswap = true, bool could_be_mmio = true); + + /// Call an interpreter function + template + llvm::Value * InterpreterCall(const char * name, Func function, Args... args); + + /// Convert a C++ type to an LLVM type + template + llvm::Type * CppToLlvmType(); + + /// Call a function + template + llvm::Value * Call(const char * name, Func function, Args... args); + + /// Indirect call + llvm::Value * IndirectCall(u32 address, llvm::Value * context_i64, bool is_function); + + /// Test an instruction against the interpreter + template + void VerifyInstructionAgainstInterpreter(const char * name, PPULLVMRecompilerFn recomp_fn, PPUInterpreterFn interp_fn, PPUState & input_state, Args... args); + + /// Excute a test + void RunTest(const char * name, std::function test_case, std::function input, std::function check_result); + + /// A mask used in rotate instructions + static u64 s_rotate_mask[64][64]; + + /// A flag indicating whether s_rotate_mask has been initialised or not + static bool s_rotate_mask_inited; + + /// Initialse s_rotate_mask + static void InitRotateMask(); + }; + + class RecompilationEngine : public ThreadBase { + public: + virtual ~RecompilationEngine(); + + /// Allocate an ordinal + u32 AllocateOrdinal(u32 address, bool is_function); + + /// Get the ordinal for the specified address + u32 GetOrdinal(u32 address) const; + + /// Get the executable specified by the ordinal + const Executable GetExecutable(u32 ordinal) const; + + /// Get the address of the executable lookup + u64 GetAddressOfExecutableLookup() const; + + /// Notify the recompilation engine about a newly detected trace. It takes ownership of the trace. + void NotifyTrace(ExecutionTrace * execution_trace); + + /// Log + llvm::raw_fd_ostream & Log(); + + void Task() override; + + /// Get a pointer to the instance of this class + static std::shared_ptr GetInstance(); + + private: + /// An entry in the block table + struct BlockEntry { + /// Number of times this block was hit + u32 num_hits; + + /// The current revision number of this function + u32 revision; + + /// The CFG for this block + ControlFlowGraph cfg; + + /// Indicates whether the block has been compiled or not + bool is_compiled; + + BlockEntry(u32 start_address, u32 function_address) + : num_hits(0) + , revision(0) + , is_compiled(false) + , cfg(start_address, function_address) { + } + + std::string ToString() const { + return fmt::Format("0x%08X (0x%08X): NumHits=%u, Revision=%u, IsCompiled=%c", + cfg.start_address, cfg.function_address, num_hits, revision, is_compiled ? 'Y' : 'N'); + } + + bool operator == (const BlockEntry & other) const { + return cfg.start_address == other.cfg.start_address; + } + + bool IsFunction() const { + return cfg.function_address == cfg.start_address; + } + + struct hash { + size_t operator()(const BlockEntry * e) const { + return e->cfg.start_address; + } + }; + + struct equal_to { + bool operator()(const BlockEntry * lhs, const BlockEntry * rhs) const { + return *lhs == *rhs; + } + }; + }; + + /// An entry in the function table + struct FunctionEntry { + /// Address of the function + u32 address; + + /// Number of compiled fragments + u32 num_compiled_fragments; + + /// Blocks in the function + std::list blocks; + + FunctionEntry(u32 address) + : address(address) + , num_compiled_fragments(0) { + } + + void AddBlock(BlockEntry * block_entry) { + auto i = std::find(blocks.begin(), blocks.end(), block_entry); + if (i == blocks.end()) { + if (block_entry->IsFunction()) { + // The first block must be the starting block of the function + blocks.push_front(block_entry); + } else { + blocks.push_back(block_entry); + } + } + } + + std::string ToString() const { + return fmt::Format("0x%08X: NumCompiledFragments=%u, NumBlocks=%u", address, num_compiled_fragments, blocks.size()); + } + + bool operator == (const FunctionEntry & other) const { + return address == other.address; + } + + struct hash { + size_t operator()(const FunctionEntry * f) const { + return f->address; + } + }; + + struct equal_to { + bool operator()(const FunctionEntry * lhs, const FunctionEntry * rhs) const { + return *lhs == *rhs; + } + }; + }; + + /// Lock for accessing m_pending_execution_traces. TODO: Eliminate this and use a lock-free queue. + std::mutex m_pending_execution_traces_lock; + + /// Queue of execution traces pending processing + std::list m_pending_execution_traces; + + /// Block table + std::unordered_set m_block_table; + + /// Function table + std::unordered_set m_function_table; + + /// Execution traces that have been already encountered. Data is the list of all blocks that this trace includes. + std::unordered_map> m_processed_execution_traces; + + /// Lock for accessing m_address_to_ordinal. + // TODO: Make this a RW lock + mutable std::mutex m_address_to_ordinal_lock; + + /// Mapping from address to ordinal + std::unordered_map m_address_to_ordinal; + + /// Next ordinal to allocate + u32 m_next_ordinal; + + /// PPU Compiler + Compiler m_compiler; + + /// Log + llvm::raw_fd_ostream * m_log; + + /// Executable lookup table + Executable m_executable_lookup[10000]; // TODO: Adjust size + + RecompilationEngine(); + + RecompilationEngine(const RecompilationEngine & other) = delete; + RecompilationEngine(RecompilationEngine && other) = delete; + + RecompilationEngine & operator = (const RecompilationEngine & other) = delete; + RecompilationEngine & operator = (RecompilationEngine && other) = delete; + + /// Process an execution trace. + void ProcessExecutionTrace(const ExecutionTrace & execution_trace); + + /// Update a CFG + void UpdateControlFlowGraph(ControlFlowGraph & cfg, const ExecutionTraceEntry & this_entry, const ExecutionTraceEntry * next_entry); + + /// Compile a block + void CompileBlock(FunctionEntry & function_entry, BlockEntry & block_entry); + + /// Mutex used to prevent multiple creation + static std::mutex s_mutex; + + /// The instance + static std::shared_ptr s_the_instance; + }; + + /// Finds interesting execution sequences + class Tracer { + public: + /// Trace type + enum class TraceType : u32 { + CallFunction, + EnterFunction, + ExitFromCompiledFunction, + Return, + Instruction, + ExitFromCompiledBlock, + }; + + Tracer(); + + Tracer(const Tracer & other) = delete; + Tracer(Tracer && other) = delete; + + virtual ~Tracer(); + + Tracer & operator = (const Tracer & other) = delete; + Tracer & operator = (Tracer && other) = delete; + + /// Notify the tracer + void Trace(TraceType trace_type, u32 arg1, u32 arg2); + + /// Notify the tracer that the execution sequence is being terminated. + void Terminate(); + + private: + /// Call stack + std::vector m_stack; + + /// Recompilation engine + std::shared_ptr m_recompilation_engine; + }; + + /// PPU execution engine + class ExecutionEngine : public CPUDecoder { + friend class RecompilationEngine; + public: + ExecutionEngine(PPUThread & ppu); + ExecutionEngine() = delete; + + ExecutionEngine(const ExecutionEngine & other) = delete; + ExecutionEngine(ExecutionEngine && other) = delete; + + virtual ~ExecutionEngine(); + + ExecutionEngine & operator = (const ExecutionEngine & other) = delete; + ExecutionEngine & operator = (ExecutionEngine && other) = delete; + + u8 DecodeMemory(const u32 address) override; + + private: + /// PPU processor context + PPUThread & m_ppu; + + /// PPU Interpreter + PPUInterpreter * m_interpreter; + + /// PPU instruction Decoder + PPUDecoder m_decoder; + + /// Execution tracer + Tracer m_tracer; + + /// The time at which the m_address_to_ordinal cache was last cleared + mutable std::chrono::high_resolution_clock::time_point m_last_cache_clear_time; + + /// Address to ordinal cahce. Key is address. Data is the pair (ordinal, times hit). + mutable std::unordered_map> m_address_to_ordinal; + + /// Recompilation engine + std::shared_ptr m_recompilation_engine; + + /// Remove unused entries from the m_address_to_ordinal cache + void RemoveUnusedEntriesFromCache() const; + + /// Get the executable for the specified address + Executable GetExecutable(u32 address, Executable default_executable) const; + + /// Execute a function + static u32 ExecuteFunction(PPUThread * ppu_state, PPUInterpreter * interpreter, u64 context); + + /// Execute till the current function returns + static u32 ExecuteTillReturn(PPUThread * ppu_state, PPUInterpreter * interpreter, u64 context); + }; + + /// Get the branch type from a branch instruction + BranchType GetBranchTypeFromInstruction(u32 instruction); +} #endif // LLVM_AVAILABLE #endif // PPU_LLVM_RECOMPILER_H diff --git a/rpcs3/Emu/Cell/PPULLVMRecompilerTests.cpp b/rpcs3/Emu/Cell/PPULLVMRecompilerTests.cpp index c03f8e92d3..1a1ee9c68a 100644 --- a/rpcs3/Emu/Cell/PPULLVMRecompilerTests.cpp +++ b/rpcs3/Emu/Cell/PPULLVMRecompilerTests.cpp @@ -11,9 +11,10 @@ //#define PPU_LLVM_RECOMPILER_UNIT_TESTS 1 using namespace llvm; +using namespace ppu_recompiler_llvm; #define VERIFY_INSTRUCTION_AGAINST_INTERPRETER(fn, tc, input, ...) \ -VerifyInstructionAgainstInterpreter(fmt::Format("%s.%d", #fn, tc).c_str(), &PPULLVMRecompiler::fn, &PPUInterpreter::fn, input, __VA_ARGS__) +VerifyInstructionAgainstInterpreter(fmt::Format("%s.%d", #fn, tc).c_str(), &Compiler::fn, &PPUInterpreter::fn, input, __VA_ARGS__) #define VERIFY_INSTRUCTION_AGAINST_INTERPRETER_USING_RANDOM_INPUT(fn, s, n, ...) { \ PPUState input; \ @@ -24,7 +25,7 @@ VerifyInstructionAgainstInterpreter(fmt::Format("%s.%d", #fn, tc).c_str(), &PPUL } /// Register state of a PPU -struct PPUState { + struct ppu_recompiler_llvm::PPUState { /// Floating point registers PPCdouble FPR[32]; @@ -201,8 +202,8 @@ static PPUThread * s_ppu_state = nullptr; static PPUInterpreter * s_interpreter = nullptr; #endif // PPU_LLVM_RECOMPILER_UNIT_TESTS -template -void PPULLVMRecompiler::VerifyInstructionAgainstInterpreter(const char * name, PPULLVMRecompilerFn recomp_fn, PPUInterpreterFn interp_fn, PPUState & input_state, Args... args) { +template +void Compiler::VerifyInstructionAgainstInterpreter(const char * name, CompilerFn recomp_fn, PPUInterpreterFn interp_fn, PPUState & input_state, Args... args) { #ifdef PPU_LLVM_RECOMPILER_UNIT_TESTS auto test_case = [&]() { (this->*recomp_fn)(args...); @@ -232,7 +233,7 @@ void PPULLVMRecompiler::VerifyInstructionAgainstInterpreter(const char * name, P #endif // PPU_LLVM_RECOMPILER_UNIT_TESTS } -void PPULLVMRecompiler::RunTest(const char * name, std::function test_case, std::function input, std::function check_result) { +void Compiler::RunTest(const char * name, std::function test_case, std::function input, std::function check_result) { #ifdef PPU_LLVM_RECOMPILER_UNIT_TESTS // Create the unit test function m_current_function = (Function *)m_module->getOrInsertFunction(name, m_ir_builder->getVoidTy(), @@ -311,7 +312,7 @@ void PPULLVMRecompiler::RunTest(const char * name, std::function test_ca #endif // PPU_LLVM_RECOMPILER_UNIT_TESTS } -void PPULLVMRecompiler::RunAllTests(PPUThread * ppu_state, PPUInterpreter * interpreter) { +void Compiler::RunAllTests(PPUThread * ppu_state, PPUInterpreter * interpreter) { #ifdef PPU_LLVM_RECOMPILER_UNIT_TESTS s_ppu_state = ppu_state; s_interpreter = interpreter; diff --git a/rpcs3/Emu/Cell/PPUProgramCompiler.cpp b/rpcs3/Emu/Cell/PPUProgramCompiler.cpp index 9c3b760ea7..532b26d36a 100644 --- a/rpcs3/Emu/Cell/PPUProgramCompiler.cpp +++ b/rpcs3/Emu/Cell/PPUProgramCompiler.cpp @@ -1,7 +1,7 @@ #include "stdafx_gui.h" #include "PPUProgramCompiler.h" #include "Utilities/rFile.h" - +/* using namespace PPU_instr; template @@ -78,10 +78,10 @@ SectionInfo::SectionInfo(const std::string& _name) section_name_offs += name.length() + 1; } -void SectionInfo::SetDataSize(u32 size, u32 align) +void SectionInfo::SetDataSize(u32 size, u32 addralign) { - if(align) shdr.sh_addralign = align; - if(shdr.sh_addralign) size = AlignAddr(size, shdr.sh_addralign); + if (addralign) shdr.sh_addralign = addralign; + if (shdr.sh_addralign) size = align(size, shdr.sh_addralign); if(!code.empty()) { @@ -985,7 +985,7 @@ void CompilePPUProgram::Compile() elf_info.e_shnum = 15; elf_info.e_shstrndx = elf_info.e_shnum - 1; elf_info.e_phoff = elf_info.e_ehsize; - u32 section_offset = AlignAddr(elf_info.e_phoff + elf_info.e_phnum * elf_info.e_phentsize, 0x100); + u32 section_offset = align(elf_info.e_phoff + elf_info.e_phnum * elf_info.e_phentsize, 0x100); static const u32 sceStub_text_block = 8 * 4; @@ -1143,7 +1143,7 @@ void CompilePPUProgram::Compile() Elf64_Shdr s_sceStub_text; memset(&s_sceStub_text, 0, sizeof(Elf64_Shdr)); s_sceStub_text.sh_addralign = 4; - section_offset = AlignAddr(section_offset, s_sceStub_text.sh_addralign); + section_offset = align(section_offset, s_sceStub_text.sh_addralign); s_sceStub_text.sh_type = 1; s_sceStub_text.sh_offset = section_offset; s_sceStub_text.sh_addr = section_offset + 0x10000; @@ -1167,7 +1167,7 @@ void CompilePPUProgram::Compile() Elf64_Shdr s_lib_stub_top; memset(&s_lib_stub_top, 0, sizeof(Elf64_Shdr)); s_lib_stub_top.sh_addralign = 4; - section_offset = AlignAddr(section_offset, s_lib_stub_top.sh_addralign); + section_offset = align(section_offset, s_lib_stub_top.sh_addralign); s_lib_stub_top.sh_type = 1; s_lib_stub_top.sh_name = section_name_offset; s_lib_stub_top.sh_offset = section_offset; @@ -1186,7 +1186,7 @@ void CompilePPUProgram::Compile() s_lib_stub.sh_offset = section_offset; s_lib_stub.sh_addr = section_offset + 0x10000; s_lib_stub.sh_flags = 2; - s_lib_stub.sh_size = sizeof(Elf64_StubHeader) * modules.size(); + s_lib_stub.sh_size = sizeof(sys_stub) * modules.size(); sections_names.push_back(".lib.stub"); section_name_offset += std::string(".lib.stub").length() + 1; section_offset += s_lib_stub.sh_size; @@ -1207,7 +1207,7 @@ void CompilePPUProgram::Compile() Elf64_Shdr s_rodata_sceFNID; memset(&s_rodata_sceFNID, 0, sizeof(Elf64_Shdr)); s_rodata_sceFNID.sh_addralign = 4; - section_offset = AlignAddr(section_offset, s_rodata_sceFNID.sh_addralign); + section_offset = align(section_offset, s_rodata_sceFNID.sh_addralign); s_rodata_sceFNID.sh_type = 1; s_rodata_sceFNID.sh_name = section_name_offset; s_rodata_sceFNID.sh_offset = section_offset; @@ -1221,7 +1221,7 @@ void CompilePPUProgram::Compile() Elf64_Shdr s_rodata_sceResident; memset(&s_rodata_sceResident, 0, sizeof(Elf64_Shdr)); s_rodata_sceResident.sh_addralign = 4; - section_offset = AlignAddr(section_offset, s_rodata_sceResident.sh_addralign); + section_offset = align(section_offset, s_rodata_sceResident.sh_addralign); s_rodata_sceResident.sh_type = 1; s_rodata_sceResident.sh_name = section_name_offset; s_rodata_sceResident.sh_offset = section_offset; @@ -1232,7 +1232,7 @@ void CompilePPUProgram::Compile() { s_rodata_sceResident.sh_size += module.m_name.length() + 1; } - s_rodata_sceResident.sh_size = AlignAddr(s_rodata_sceResident.sh_size, s_rodata_sceResident.sh_addralign); + s_rodata_sceResident.sh_size = align(s_rodata_sceResident.sh_size, s_rodata_sceResident.sh_addralign); sections_names.push_back(".rodata.sceResident"); section_name_offset += std::string(".rodata.sceResident").length() + 1; section_offset += s_rodata_sceResident.sh_size; @@ -1240,7 +1240,7 @@ void CompilePPUProgram::Compile() Elf64_Shdr s_lib_ent_top; memset(&s_lib_ent_top, 0, sizeof(Elf64_Shdr)); s_lib_ent_top.sh_addralign = 4; - section_offset = AlignAddr(section_offset, s_lib_ent_top.sh_addralign); + section_offset = align(section_offset, s_lib_ent_top.sh_addralign); s_lib_ent_top.sh_size = 4; s_lib_ent_top.sh_flags = 2; s_lib_ent_top.sh_type = 1; @@ -1267,7 +1267,7 @@ void CompilePPUProgram::Compile() Elf64_Shdr s_sys_proc_prx_param; memset(&s_sys_proc_prx_param, 0, sizeof(Elf64_Shdr)); s_sys_proc_prx_param.sh_addralign = 4; - section_offset = AlignAddr(section_offset, s_sys_proc_prx_param.sh_addralign); + section_offset = align(section_offset, s_sys_proc_prx_param.sh_addralign); s_sys_proc_prx_param.sh_type = 1; s_sys_proc_prx_param.sh_size = sizeof(sys_proc_prx_param); s_sys_proc_prx_param.sh_name = section_name_offset; @@ -1280,14 +1280,14 @@ void CompilePPUProgram::Compile() const u32 prog_load_0_end = section_offset; - section_offset = AlignAddr(section_offset + 0x10000, 0x10000); + section_offset = align(section_offset + 0x10000, 0x10000); const u32 prog_load_1_start = section_offset; Elf64_Shdr s_data_sceFStub; memset(&s_data_sceFStub, 0, sizeof(Elf64_Shdr)); s_data_sceFStub.sh_name = section_name_offset; s_data_sceFStub.sh_addralign = 4; - section_offset = AlignAddr(section_offset, s_data_sceFStub.sh_addralign); + section_offset = align(section_offset, s_data_sceFStub.sh_addralign); s_data_sceFStub.sh_flags = 3; s_data_sceFStub.sh_type = 1; s_data_sceFStub.sh_offset = section_offset; @@ -1300,7 +1300,7 @@ void CompilePPUProgram::Compile() Elf64_Shdr s_tbss; memset(&s_tbss, 0, sizeof(Elf64_Shdr)); s_tbss.sh_addralign = 4; - section_offset = AlignAddr(section_offset, s_tbss.sh_addralign); + section_offset = align(section_offset, s_tbss.sh_addralign); s_tbss.sh_size = 4; s_tbss.sh_flags = 0x403; s_tbss.sh_type = 8; @@ -1314,7 +1314,7 @@ void CompilePPUProgram::Compile() Elf64_Shdr s_opd; memset(&s_opd, 0, sizeof(Elf64_Shdr)); s_opd.sh_addralign = 8; - section_offset = AlignAddr(section_offset, s_opd.sh_addralign); + section_offset = align(section_offset, s_opd.sh_addralign); s_opd.sh_size = 2*4; s_opd.sh_type = 1; s_opd.sh_offset = section_offset; @@ -1475,7 +1475,7 @@ void CompilePPUProgram::Compile() if(!m_file_path.empty() && !m_analyze && !m_error) { - s_opd.sh_size = AlignAddr(s_opd.sh_size, s_opd.sh_addralign); + s_opd.sh_size = align(s_opd.sh_size, s_opd.sh_addralign); section_offset += s_opd.sh_size; const u32 prog_load_1_end = section_offset; @@ -1483,7 +1483,7 @@ void CompilePPUProgram::Compile() Elf64_Shdr s_shstrtab; memset(&s_shstrtab, 0, sizeof(Elf64_Shdr)); s_shstrtab.sh_addralign = 1; - section_offset = AlignAddr(section_offset, s_shstrtab.sh_addralign); + section_offset = align(section_offset, s_shstrtab.sh_addralign); s_shstrtab.sh_name = section_name_offset; s_shstrtab.sh_type = 3; s_shstrtab.sh_offset = section_offset; @@ -1505,7 +1505,7 @@ void CompilePPUProgram::Compile() elf_info.e_machine = MACHINE_PPC64; //PowerPC64 elf_info.e_version = 1; //ver 1 elf_info.e_flags = 0x0; - elf_info.e_shoff = AlignAddr(section_offset, 4); + elf_info.e_shoff = align(section_offset, 4); u8* opd_data = new u8[s_opd.sh_size]; u32 entry_point = s_text.sh_addr; @@ -1523,14 +1523,14 @@ void CompilePPUProgram::Compile() sys_proc_prx_param prx_param; memset(&prx_param, 0, sizeof(sys_proc_prx_param)); - prx_param.size = re32(0x40); - prx_param.magic = re32(0x1b434cec); - prx_param.version = re32(0x4); - prx_param.libentstart = re32(s_lib_ent_top.sh_addr + s_lib_ent_top.sh_size); - prx_param.libentend = re32(s_lib_ent_btm.sh_addr); - prx_param.libstubstart = re32(s_lib_stub_top.sh_addr + s_lib_stub_top.sh_size); - prx_param.libstubend = re32(s_lib_stub_btm.sh_addr); - prx_param.ver = re16(0x101); + prx_param.size = 0x40; + prx_param.magic = 0x1b434cec; + prx_param.version = 0x4; + prx_param.libentstart = s_lib_ent_top.sh_addr + s_lib_ent_top.sh_size; + prx_param.libentend = s_lib_ent_btm.sh_addr; + prx_param.libstubstart = vm::bptr::make(s_lib_stub_top.sh_addr + s_lib_stub_top.sh_size); + prx_param.libstubend = vm::bptr::make(s_lib_stub_btm.sh_addr); + prx_param.ver = 0x101; elf_info.e_entry = s_opd.sh_addr; @@ -1588,20 +1588,20 @@ void CompilePPUProgram::Compile() f.Seek(s_lib_stub.sh_offset); for(u32 i=0, nameoffs=4, dataoffs=0; i::make(s_rodata_sceResident.sh_addr + nameoffs); + stub.s_nid = vm::bptr::make(s_rodata_sceFNID.sh_addr + dataoffs); + stub.s_text = vm::bptr::make(s_data_sceFStub.sh_addr + dataoffs); + stub.s_imports = modules[i].m_imports.size(); dataoffs += modules[i].m_imports.size() * 4; - f.Write(&stub, sizeof(Elf64_StubHeader)); + f.Write(&stub, sizeof(sys_stub)); nameoffs += modules[i].m_name.length() + 1; } @@ -1732,3 +1732,4 @@ void CompilePPUProgram::Compile() system("make_fself.cmd"); } } +*/ \ No newline at end of file diff --git a/rpcs3/Emu/Cell/PPUProgramCompiler.h b/rpcs3/Emu/Cell/PPUProgramCompiler.h index 608fbc4c1e..5070c34516 100644 --- a/rpcs3/Emu/Cell/PPUProgramCompiler.h +++ b/rpcs3/Emu/Cell/PPUProgramCompiler.h @@ -1,7 +1,7 @@ #pragma once #include "PPUInstrTable.h" #include "Loader/ELF64.h" - +/* enum ArgType { ARG_ERR = 0, @@ -189,3 +189,4 @@ protected: public: void Compile(); }; +*/ \ No newline at end of file diff --git a/rpcs3/Emu/Cell/PPUThread.cpp b/rpcs3/Emu/Cell/PPUThread.cpp index d7694483ee..06b2c8b926 100644 --- a/rpcs3/Emu/Cell/PPUThread.cpp +++ b/rpcs3/Emu/Cell/PPUThread.cpp @@ -10,6 +10,8 @@ #include "Emu/Cell/PPUDecoder.h" #include "Emu/Cell/PPUInterpreter.h" #include "Emu/Cell/PPULLVMRecompiler.h" +//#include "Emu/Cell/PPURecompiler.h" +#include "Emu/CPU/CPUThreadManager.h" PPUThread& GetCurrentPPUThread() { @@ -39,11 +41,11 @@ void PPUThread::DoReset() memset(FPR, 0, sizeof(FPR)); memset(GPR, 0, sizeof(GPR)); memset(SPRG, 0, sizeof(SPRG)); + memset(USPRG, 0, sizeof(USPRG)); CR.CR = 0; LR = 0; CTR = 0; - USPRG0 = 0; TB = 0; XER.XER = 0; FPSCR.FPSCR = 0; @@ -84,8 +86,10 @@ void PPUThread::InitRegs() } */ - GPR[1] = AlignAddr(m_stack_addr + m_stack_size, 0x200) - 0x200; + GPR[1] = align(m_stack_addr + m_stack_size, 0x200) - 0x200; GPR[2] = rtoc; + //GPR[11] = entry; + //GPR[12] = Emu.GetMallocPageSize(); GPR[13] = Memory.PRXMem.GetStartAddr() + 0x7060; LR = Emu.GetPPUThreadExit(); @@ -112,8 +116,9 @@ void PPUThread::DoRun() case 2: #ifdef PPU_LLVM_RECOMPILER + SetCallStackTracing(false); if (!m_dec) { - m_dec = new PPULLVMEmulator(*this); + m_dec = new ppu_recompiler_llvm::ExecutionEngine(*this); } #else LOG_ERROR(PPU, "This image does not include PPU JIT (LLVM)"); @@ -121,6 +126,8 @@ void PPUThread::DoRun() #endif break; + //case 3: m_dec = new PPURecompiler(*this); break; + default: LOG_ERROR(PPU, "Invalid CPU decoder mode: %d", Ini.CPUDecoderMode.GetValue()); Emu.Pause(); @@ -217,12 +224,68 @@ void PPUThread::FastStop() void PPUThread::Task() { - if (m_custom_task) + if (custom_task) { - m_custom_task(*this); + custom_task(*this); } else { CPUThread::Task(); } } + +ppu_thread::ppu_thread(u32 entry, const std::string& name, u32 stack_size, u32 prio) +{ + thread = &Emu.GetCPU().AddThread(CPU_THREAD_PPU); + + thread->SetName(name); + thread->SetEntry(entry); + thread->SetStackSize(stack_size ? stack_size : Emu.GetInfo().GetProcParam().primary_stacksize); + thread->SetPrio(prio ? prio : Emu.GetInfo().GetProcParam().primary_prio); + + argc = 0; +} + +cpu_thread& ppu_thread::args(std::initializer_list values) +{ + if (!values.size()) + return *this; + + assert(argc == 0); + + envp.set(vm::alloc(align((u32)sizeof(*envp), stack_align), vm::main)); + *envp = 0; + argv.set(vm::alloc(sizeof(*argv) * values.size(), vm::main)); + + for (auto &arg : values) + { + u32 arg_size = align(u32(arg.size() + 1), stack_align); + u32 arg_addr = vm::alloc(arg_size, vm::main); + + std::strcpy(vm::get_ptr(arg_addr), arg.c_str()); + + argv[argc++] = arg_addr; + } + + return *this; +} + +cpu_thread& ppu_thread::run() +{ + thread->Run(); + + gpr(3, argc); + gpr(4, argv.addr()); + gpr(5, envp.addr()); + + return *this; +} + +ppu_thread& ppu_thread::gpr(uint index, u64 value) +{ + assert(index < 32); + + static_cast(thread)->GPR[index] = value; + + return *this; +} \ No newline at end of file diff --git a/rpcs3/Emu/Cell/PPUThread.h b/rpcs3/Emu/Cell/PPUThread.h index 1f408210b9..717dd151f1 100644 --- a/rpcs3/Emu/Cell/PPUThread.h +++ b/rpcs3/Emu/Cell/PPUThread.h @@ -1,5 +1,6 @@ #pragma once #include "Emu/Cell/PPCThread.h" +#include "Emu/Memory/vm.h" enum { @@ -530,11 +531,8 @@ public: u64 LR; //SPR 0x008 : Link Register u64 CTR; //SPR 0x009 : Count Register - union - { - u64 USPRG0; //SPR 0x100 : User-SPR General-Purpose Register 0 - u64 SPRG[8]; //SPR 0x100 - 0x107 : SPR General-Purpose Registers - }; + u64 USPRG[8]; //SPR 0x100 - 0x107: User-SPR General-Purpose Registers + u64 SPRG[8]; //SPR 0x110 - 0x117 : SPR General-Purpose Registers //TBR : Time-Base Registers union @@ -554,7 +552,7 @@ public: u64 R_VALUE; // reservation value (BE) u32 owned_mutexes; - std::function m_custom_task; + std::function custom_task; public: PPUThread(); @@ -799,3 +797,18 @@ protected: }; PPUThread& GetCurrentPPUThread(); + +class ppu_thread : cpu_thread +{ + static const u32 stack_align = 0x10; + vm::ptr argv; + u32 argc; + vm::ptr envp; + +public: + ppu_thread(u32 entry, const std::string& name = "", u32 stack_size = 0, u32 prio = 0); + + cpu_thread& args(std::initializer_list values) override; + cpu_thread& run() override; + ppu_thread& gpr(uint index, u64 value); +}; \ No newline at end of file diff --git a/rpcs3/Emu/Cell/SPUThread.cpp b/rpcs3/Emu/Cell/SPUThread.cpp index bf8d55b984..719cdc8cab 100644 --- a/rpcs3/Emu/Cell/SPUThread.cpp +++ b/rpcs3/Emu/Cell/SPUThread.cpp @@ -1163,7 +1163,6 @@ void SPUThread::StopAndSignal(u32 code) } default: - { if (!SPU.Out_MBox.GetCount()) { LOG_ERROR(Log::SPU, "Unknown STOP code: 0x%x (no message)", code); @@ -1175,5 +1174,16 @@ void SPUThread::StopAndSignal(u32 code) Emu.Pause(); break; } - } } + +spu_thread::spu_thread(u32 entry, const std::string& name, u32 stack_size, u32 prio) +{ + thread = &Emu.GetCPU().AddThread(CPU_THREAD_SPU); + + thread->SetName(name); + thread->SetEntry(entry); + thread->SetStackSize(stack_size ? stack_size : Emu.GetInfo().GetProcParam().primary_stacksize); + thread->SetPrio(prio ? prio : Emu.GetInfo().GetProcParam().primary_prio); + + argc = 0; +} \ No newline at end of file diff --git a/rpcs3/Emu/Cell/SPUThread.h b/rpcs3/Emu/Cell/SPUThread.h index 5553d2fc28..aaffd7d00d 100644 --- a/rpcs3/Emu/Cell/SPUThread.h +++ b/rpcs3/Emu/Cell/SPUThread.h @@ -583,3 +583,49 @@ protected: }; SPUThread& GetCurrentSPUThread(); + +class spu_thread : cpu_thread +{ + static const u32 stack_align = 0x10; + vm::ptr argv; + u32 argc; + vm::ptr envp; + +public: + spu_thread(u32 entry, const std::string& name = "", u32 stack_size = 0, u32 prio = 0); + + cpu_thread& args(std::initializer_list values) override + { + if (!values.size()) + return *this; + + assert(argc == 0); + + envp.set(Memory.MainMem.AllocAlign((u32)sizeof(envp), stack_align)); + *envp = 0; + argv.set(Memory.MainMem.AllocAlign(u32(sizeof(argv)* values.size()), stack_align)); + + for (auto &arg : values) + { + u32 arg_size = align(u32(arg.size() + 1), stack_align); + u32 arg_addr = Memory.MainMem.AllocAlign(arg_size, stack_align); + + std::strcpy(vm::get_ptr(arg_addr), arg.c_str()); + + argv[argc++] = arg_addr; + } + + return *this; + } + + cpu_thread& run() override + { + thread->Run(); + + static_cast(thread)->GPR[3].from64(argc); + static_cast(thread)->GPR[4].from64(argv.addr()); + static_cast(thread)->GPR[5].from64(envp.addr()); + + return *this; + } +}; \ No newline at end of file diff --git a/rpcs3/Emu/Memory/Memory.cpp b/rpcs3/Emu/Memory/Memory.cpp index 59c6c5feb3..ddb837d725 100644 --- a/rpcs3/Emu/Memory/Memory.cpp +++ b/rpcs3/Emu/Memory/Memory.cpp @@ -108,9 +108,9 @@ void MemoryBase::Init(MemoryType type) memset(RawSPUMem, 0, sizeof(RawSPUMem)); #ifdef _WIN32 - if (!g_base_addr) + if (!vm::g_base_addr) #else - if ((s64)g_base_addr == (s64)-1) + if ((s64)vm::g_base_addr == (s64)-1) #endif { LOG_ERROR(MEMORY, "Initializing memory failed"); @@ -119,7 +119,7 @@ void MemoryBase::Init(MemoryType type) } else { - LOG_NOTICE(MEMORY, "Initializing memory: m_base_addr = 0x%llx", (u64)g_base_addr); + LOG_NOTICE(MEMORY, "Initializing memory: base_addr = 0x%llx", (u64)vm::g_base_addr); } switch (type) @@ -128,6 +128,8 @@ void MemoryBase::Init(MemoryType type) MemoryBlocks.push_back(MainMem.SetRange(0x00010000, 0x2FFF0000)); MemoryBlocks.push_back(UserMemory = PRXMem.SetRange(0x30000000, 0x10000000)); MemoryBlocks.push_back(RSXCMDMem.SetRange(0x40000000, 0x10000000)); + MemoryBlocks.push_back(SPRXMem.SetRange(0x50000000, 0x10000000)); + MemoryBlocks.push_back(MmaperMem.SetRange(0xB0000000, 0x10000000)); MemoryBlocks.push_back(RSXFBMem.SetRange(0xC0000000, 0x10000000)); MemoryBlocks.push_back(StackMem.SetRange(0xD0000000, 0x10000000)); break; @@ -217,6 +219,7 @@ bool MemoryBase::Map(const u64 addr, const u32 size) } MemoryBlocks.push_back((new MemoryBlock())->SetRange(addr, size)); + LOG_WARNING(MEMORY, "Memory mapped at 0x%llx: size=0x%x", addr, size); return true; } @@ -412,12 +415,6 @@ void DynamicMemoryBlockBase::Delete() bool DynamicMemoryBlockBase::AllocFixed(u64 addr, u32 size) { - if (!MemoryBlock::GetStartAddr()) - { - LOG_ERROR(MEMORY, "DynamicMemoryBlockBase::AllocFixed(addr=0x%llx, size=0x%x): memory block not initialized", addr, size); - return false; - } - size = PAGE_4K(size + (addr & 4095)); // align size addr &= ~4095; // align start address @@ -452,7 +449,7 @@ u64 DynamicMemoryBlockBase::AllocAlign(u32 size, u32 align) LOG_ERROR(MEMORY, "DynamicMemoryBlockBase::AllocAlign(size=0x%x, align=0x%x): memory block not initialized", size, align); return 0; } - + size = PAGE_4K(size); u32 exsize; @@ -579,9 +576,9 @@ bool VirtualMemoryBlock::IsInMyRange(const u64 addr, const u32 size) bool VirtualMemoryBlock::IsMyAddress(const u64 addr) { - for(u32 i=0; i= m_mapped_memory[i].addr && addr < m_mapped_memory[i].addr + m_mapped_memory[i].size) + if (addr >= m_mapped_memory[i].addr && addr < m_mapped_memory[i].addr + m_mapped_memory[i].size) { return true; } @@ -620,7 +617,7 @@ u64 VirtualMemoryBlock::Map(u64 realaddr, u32 size) bool VirtualMemoryBlock::Map(u64 realaddr, u32 size, u64 addr) { - if(!IsInMyRange(addr, size) && (IsMyAddress(addr) || IsMyAddress(addr + size - 1))) + if (!IsInMyRange(addr, size) && (IsMyAddress(addr) || IsMyAddress(addr + size - 1))) return false; m_mapped_memory.emplace_back(addr, realaddr, size); @@ -629,9 +626,9 @@ bool VirtualMemoryBlock::Map(u64 realaddr, u32 size, u64 addr) bool VirtualMemoryBlock::UnmapRealAddress(u64 realaddr, u32& size) { - for(u32 i=0; i= m_mapped_memory[i].addr && addr < m_mapped_memory[i].addr + m_mapped_memory[i].size) + if (addr >= m_mapped_memory[i].addr && addr < m_mapped_memory[i].addr + m_mapped_memory[i].size) { result = m_mapped_memory[i].realAddress + (addr - m_mapped_memory[i].addr); return true; @@ -691,9 +688,9 @@ bool VirtualMemoryBlock::getRealAddr(u64 addr, u64& result) u64 VirtualMemoryBlock::getMappedAddress(u64 realAddress) { - for(u32 i=0; i= m_mapped_memory[i].realAddress && realAddress < m_mapped_memory[i].realAddress + m_mapped_memory[i].size) + if (realAddress >= m_mapped_memory[i].realAddress && realAddress < m_mapped_memory[i].realAddress + m_mapped_memory[i].size) { return m_mapped_memory[i].addr + (realAddress - m_mapped_memory[i].realAddress); } @@ -711,7 +708,7 @@ void VirtualMemoryBlock::Delete() bool VirtualMemoryBlock::Reserve(u32 size) { - if(size + GetReservedAmount() > GetEndAddr() - GetStartAddr()) + if (size + GetReservedAmount() > GetEndAddr() - GetStartAddr()) return false; m_reserve_size += size; @@ -720,7 +717,7 @@ bool VirtualMemoryBlock::Reserve(u32 size) bool VirtualMemoryBlock::Unreserve(u32 size) { - if(size > GetReservedAmount()) + if (size > GetReservedAmount()) return false; m_reserve_size -= size; @@ -730,4 +727,4 @@ bool VirtualMemoryBlock::Unreserve(u32 size) u32 VirtualMemoryBlock::GetReservedAmount() { return m_reserve_size; -} +} \ No newline at end of file diff --git a/rpcs3/Emu/Memory/Memory.h b/rpcs3/Emu/Memory/Memory.h index 1ec1201b3c..1fccab32b8 100644 --- a/rpcs3/Emu/Memory/Memory.h +++ b/rpcs3/Emu/Memory/Memory.h @@ -7,8 +7,6 @@ using std::nullptr_t; #define safe_delete(x) do {delete (x);(x)=nullptr;} while(0) #define safe_free(x) do {free(x);(x)=nullptr;} while(0) -extern void* const g_base_addr; - enum MemoryType { Memory_PS3, @@ -24,6 +22,11 @@ enum : u32 RAW_SPU_PROB_OFFSET = 0x00040000, }; +namespace vm +{ + extern void* const g_base_addr; +} + class MemoryBase { std::vector MemoryBlocks; @@ -33,8 +36,10 @@ public: MemoryBlock* UserMemory; DynamicMemoryBlock MainMem; + DynamicMemoryBlock SPRXMem; DynamicMemoryBlock PRXMem; DynamicMemoryBlock RSXCMDMem; + DynamicMemoryBlock MmaperMem; DynamicMemoryBlock RSXFBMem; DynamicMemoryBlock StackMem; MemoryBlock* RawSPUMem[(0x100000000 - RAW_SPU_BASE_ADDR) / RAW_SPU_OFFSET]; @@ -69,7 +74,7 @@ public: static void* const GetBaseAddr() { - return g_base_addr; + return vm::g_base_addr; } __noinline void InvalidAddress(const char* func, const u64 addr); diff --git a/rpcs3/Emu/Memory/vm.cpp b/rpcs3/Emu/Memory/vm.cpp index 91708cf50c..5e274ea22f 100644 --- a/rpcs3/Emu/Memory/vm.cpp +++ b/rpcs3/Emu/Memory/vm.cpp @@ -1,23 +1,22 @@ #include "stdafx.h" #include "Memory.h" -#ifdef _WIN32 -#include - -void* const g_base_addr = VirtualAlloc(nullptr, 0x100000000, MEM_RESERVE, PAGE_NOACCESS); -#else -#include - -/* OS X uses MAP_ANON instead of MAP_ANONYMOUS */ -#ifndef MAP_ANONYMOUS -#define MAP_ANONYMOUS MAP_ANON -#endif - -void* const g_base_addr = ::mmap(nullptr, 0x100000000, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS, 0, 0); -#endif - namespace vm { + #ifdef _WIN32 + #include + void* const g_base_addr = VirtualAlloc(nullptr, 0x100000000, MEM_RESERVE, PAGE_NOACCESS); + #else + #include + + /* OS X uses MAP_ANON instead of MAP_ANONYMOUS */ + #ifndef MAP_ANONYMOUS + #define MAP_ANONYMOUS MAP_ANON + #endif + + void* const g_base_addr = mmap(nullptr, 0x100000000, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS, 0, 0); + #endif + bool check_addr(u32 addr) { // Checking address before using it is unsafe. @@ -28,20 +27,117 @@ namespace vm //TODO bool map(u32 addr, u32 size, u32 flags) { - return false; + return Memory.Map(addr, size); } bool unmap(u32 addr, u32 size, u32 flags) { - return false; + return Memory.Unmap(addr); } - u32 alloc(u32 size) + u32 alloc(u32 addr, u32 size, memory_location location) { - return 0; + return g_locations[location].fixed_allocator(addr, size); } - void unalloc(u32 addr) + u32 alloc(u32 size, memory_location location) { + return g_locations[location].allocator(size); + } + + void dealloc(u32 addr, memory_location location) + { + return g_locations[location].deallocator(addr); + } + + namespace ps3 + { + u32 main_alloc(u32 size) + { + return Memory.MainMem.AllocAlign(size, 1); + } + u32 main_fixed_alloc(u32 addr, u32 size) + { + return Memory.MainMem.AllocFixed(addr, size) ? addr : 0; + } + void main_dealloc(u32 addr) + { + Memory.MainMem.Free(addr); + } + + u32 g_stack_offset = 0; + + u32 stack_alloc(u32 size) + { + return Memory.StackMem.AllocAlign(size, 0x10); + } + u32 stack_fixed_alloc(u32 addr, u32 size) + { + return Memory.StackMem.AllocFixed(addr, size) ? addr : 0; + } + void stack_dealloc(u32 addr) + { + Memory.StackMem.Free(addr); + } + + u32 sprx_alloc(u32 size) + { + return Memory.SPRXMem.AllocAlign(size, 1); + } + u32 sprx_fixed_alloc(u32 addr, u32 size) + { + return Memory.SPRXMem.AllocFixed(Memory.SPRXMem.GetStartAddr() + addr, size) ? Memory.SPRXMem.GetStartAddr() + addr : 0; + } + void sprx_dealloc(u32 addr) + { + Memory.SPRXMem.Free(addr); + } + + u32 user_space_alloc(u32 size) + { + return Memory.PRXMem.AllocAlign(size, 1); + } + u32 user_space_fixed_alloc(u32 addr, u32 size) + { + return Memory.PRXMem.AllocFixed(addr, size) ? addr : 0; + } + void user_space_dealloc(u32 addr) + { + Memory.PRXMem.Free(addr); + } + + void init() + { + Memory.Init(Memory_PS3); + } + } + + namespace psv + { + void init() + { + Memory.Init(Memory_PSV); + } + } + + namespace psp + { + void init() + { + Memory.Init(Memory_PSP); + } + } + + location_info g_locations[memory_location_count] = + { + { 0x00010000, 0x2FFF0000, ps3::main_alloc, ps3::main_fixed_alloc, ps3::main_dealloc }, + { 0x00010000, 0x2FFF0000, ps3::stack_alloc, ps3::stack_fixed_alloc, ps3::stack_dealloc }, + { 0x00010000, 0x2FFF0000, ps3::sprx_alloc, ps3::sprx_fixed_alloc, ps3::sprx_dealloc }, + { 0x00010000, 0x2FFF0000, ps3::user_space_alloc, ps3::user_space_fixed_alloc, ps3::user_space_dealloc }, + }; + + void close() + { + Memory.Close(); } } \ No newline at end of file diff --git a/rpcs3/Emu/Memory/vm.h b/rpcs3/Emu/Memory/vm.h index 44378084be..ac8c1dd12e 100644 --- a/rpcs3/Emu/Memory/vm.h +++ b/rpcs3/Emu/Memory/vm.h @@ -1,18 +1,48 @@ #pragma once +#include "Memory.h" namespace vm { + enum memory_location + { + main, + stack, + sprx, + user_space, + + memory_location_count + }; + + struct location_info + { + u32 addr_offset; + u32 size; + + u32(*allocator)(u32 size); + u32(*fixed_allocator)(u32 addr, u32 size); + void(*deallocator)(u32 addr); + + u32 alloc_offset; + }; + + extern location_info g_locations[memory_location_count]; + + static void set_stack_size(u32 size) {} + static void initialize_stack() {} + + extern void* const g_base_addr; bool map(u32 addr, u32 size, u32 flags); bool unmap(u32 addr, u32 size = 0, u32 flags = 0); - u32 alloc(u32 size); - void unalloc(u32 addr); + u32 alloc(u32 size, memory_location location = user_space); + u32 alloc(u32 addr, u32 size, memory_location location = user_space); + void dealloc(u32 addr, memory_location location = user_space); - template + template T* const get_ptr(u32 addr) { return (T*)((u8*)g_base_addr + addr); } - + template T& get_ref(u32 addr) { @@ -21,6 +51,8 @@ namespace vm namespace ps3 { + void init(); + static u8 read8(u32 addr) { return *((u8*)g_base_addr + addr); @@ -36,9 +68,9 @@ namespace vm return re16(*(u16*)((u8*)g_base_addr + addr)); } - static void write16(u32 addr, u16 value) + static void write16(u32 addr, be_t value) { - *(u16*)((u8*)g_base_addr + addr) = re16(value); + *(be_t*)((u8*)g_base_addr + addr) = value; } static u32 read32(u32 addr) @@ -53,11 +85,11 @@ namespace vm } } - static void write32(u32 addr, u32 value) + static void write32(u32 addr, be_t value) { if (addr < RAW_SPU_BASE_ADDR || (addr % RAW_SPU_OFFSET) < RAW_SPU_PROB_OFFSET) { - *(u32*)((u8*)g_base_addr + addr) = re32(value); + *(be_t*)((u8*)g_base_addr + addr) = value; } else { @@ -70,9 +102,24 @@ namespace vm return re64(*(u64*)((u8*)g_base_addr + addr)); } + static void write64(u32 addr, be_t value) + { + *(be_t*)((u8*)g_base_addr + addr) = value; + } + + static void write16(u32 addr, u16 value) + { + write16(addr, be_t::make(value)); + } + + static void write32(u32 addr, u32 value) + { + write32(addr, be_t::make(value)); + } + static void write64(u32 addr, u64 value) { - *(u64*)((u8*)g_base_addr + addr) = re64(value); + write64(addr, be_t::make(value)); } static u128 read128(u32 addr) @@ -88,6 +135,8 @@ namespace vm namespace psv { + void init(); + static u8 read8(u32 addr) { return *((u8*)g_base_addr + addr); @@ -138,8 +187,17 @@ namespace vm *(u128*)((u8*)g_base_addr + addr) = value; } } + + namespace psp + { + using namespace psv; + + void init(); + } + + void close(); } #include "vm_ref.h" #include "vm_ptr.h" -#include "vm_var.h" +#include "vm_var.h" \ No newline at end of file diff --git a/rpcs3/Emu/Memory/vm_ptr.h b/rpcs3/Emu/Memory/vm_ptr.h index 38988ce35a..9a18cec915 100644 --- a/rpcs3/Emu/Memory/vm_ptr.h +++ b/rpcs3/Emu/Memory/vm_ptr.h @@ -10,7 +10,7 @@ namespace vm AT m_addr; public: - typedef T type; + typedef typename std::remove_cv::type type; _ptr_base operator++ (int) { @@ -38,49 +38,49 @@ namespace vm return *this; } - _ptr_base& operator += (int count) + _ptr_base& operator += (AT count) { m_addr += count * sizeof(AT); return *this; } - _ptr_base& operator -= (int count) + _ptr_base& operator -= (AT count) { m_addr -= count * sizeof(AT); return *this; } - _ptr_base operator + (int count) const - { - return make(m_addr + count * sizeof(AT)); - } + _ptr_base operator + (typename remove_be_t::type count) const { return make(m_addr + count * sizeof(AT)); } + _ptr_base operator + (typename to_be_t::type count) const { return make(m_addr + count * sizeof(AT)); } + _ptr_base operator - (typename remove_be_t::type count) const { return make(m_addr - count * sizeof(AT)); } + _ptr_base operator - (typename to_be_t::type count) const { return make(m_addr - count * sizeof(AT)); } - _ptr_base operator - (int count) const - { - return make(m_addr - count * sizeof(AT)); - } + __forceinline bool operator <(const _ptr_base& right) const { return m_addr < right.m_addr; } + __forceinline bool operator <=(const _ptr_base& right) const { return m_addr <= right.m_addr; } + __forceinline bool operator >(const _ptr_base& right) const { return m_addr > right.m_addr; } + __forceinline bool operator >=(const _ptr_base& right) const { return m_addr >= right.m_addr; } + __forceinline bool operator ==(const _ptr_base& right) const { return m_addr == right.m_addr; } + __forceinline bool operator !=(const _ptr_base& right) const { return m_addr != right.m_addr; } + __forceinline bool operator ==(const nullptr_t& right) const { return m_addr == 0; } + __forceinline bool operator !=(const nullptr_t& right) const { return m_addr != 0; } + explicit operator bool() const { return m_addr != 0; } __forceinline _ptr_base::value, typename to_be_t::type, AT>>& operator *() const { return vm::get_ref<_ptr_base::value, typename to_be_t::type, AT>>>(m_addr); } - __forceinline _ptr_base::value, typename to_be_t::type, AT>>& operator [](int index) const + __forceinline _ptr_base::value, typename to_be_t::type, AT>>& operator [](AT index) const { return vm::get_ref<_ptr_base::value, typename to_be_t::type, AT>>>(m_addr + sizeof(AT)* index); } - operator bool() const - { - return m_addr != 0; - } - //typedef typename invert_be_t::type AT2; template operator const _ptr_base() const { - typename std::remove_const::type addr; addr = m_addr; + typename std::remove_const::type addr = convert_le_be(m_addr); return (_ptr_base&)addr; } @@ -108,6 +108,8 @@ namespace vm AT m_addr; public: + typedef typename std::remove_cv::type type; + __forceinline T* const operator -> () const { return vm::get_ptr(m_addr); @@ -139,38 +141,49 @@ namespace vm return *this; } - _ptr_base& operator += (int count) + _ptr_base& operator += (AT count) { m_addr += count * sizeof(T); return *this; } - _ptr_base& operator -= (int count) + _ptr_base& operator -= (AT count) { m_addr -= count * sizeof(T); return *this; } - _ptr_base operator + (int count) const - { - return make(m_addr + count * sizeof(T)); - } - - _ptr_base operator - (int count) const - { - return make(m_addr - count * sizeof(T)); - } + _ptr_base operator + (typename remove_be_t::type count) const { return make(m_addr + count * sizeof(T)); } + _ptr_base operator + (typename to_be_t::type count) const { return make(m_addr + count * sizeof(T)); } + _ptr_base operator - (typename remove_be_t::type count) const { return make(m_addr - count * sizeof(T)); } + _ptr_base operator - (typename to_be_t::type count) const { return make(m_addr - count * sizeof(T)); } __forceinline T& operator *() const { - return get_ref(m_addr); + return vm::get_ref(m_addr); } - __forceinline T& operator [](int index) const + __forceinline T& operator [](typename remove_be_t::type index) const { - return get_ref(m_addr + sizeof(T) * index); + return vm::get_ref(m_addr + sizeof(AT)* index); } - + + __forceinline T& operator [](typename to_be_t::forced_type index) const + { + return vm::get_ref(m_addr + sizeof(AT)* index); + } + + __forceinline bool operator <(const _ptr_base& right) const { return m_addr < right.m_addr; } + __forceinline bool operator <=(const _ptr_base& right) const { return m_addr <= right.m_addr; } + __forceinline bool operator >(const _ptr_base& right) const { return m_addr > right.m_addr; } + __forceinline bool operator >=(const _ptr_base& right) const { return m_addr >= right.m_addr; } + __forceinline bool operator ==(const _ptr_base& right) const { return m_addr == right.m_addr; } + __forceinline bool operator !=(const _ptr_base& right) const { return m_addr != right.m_addr; } + __forceinline bool operator ==(const nullptr_t& right) const { return m_addr == 0; } + __forceinline bool operator !=(const nullptr_t& right) const { return m_addr != 0; } + explicit operator bool() const { return m_addr != 0; } + explicit operator T*() const { return get_ptr(); } + /* operator _ref_base() { @@ -188,26 +201,28 @@ namespace vm return m_addr; } - void set(const AT value) + template + void set(U&& value) { - m_addr = value; + m_addr = convert_le_be(value); } - operator bool() const + /* + operator T*() const { - return m_addr != 0; + return get_ptr(); } - + */ //typedef typename invert_be_t::type AT2; template operator const _ptr_base() const { - typename std::remove_const::type addr; addr = m_addr; + typename std::remove_const::type addr = convert_le_be(m_addr); return (_ptr_base&)addr; } - T* const get_ptr() const + T* get_ptr() const { return vm::get_ptr(m_addr); } @@ -236,29 +251,39 @@ namespace vm m_addr = value; } - void* const get_ptr() const + void* get_ptr() const { return vm::get_ptr(m_addr); } - operator bool() const + explicit operator void*() const { - return m_addr != 0; + return get_ptr(); } + __forceinline bool operator <(const _ptr_base& right) const { return m_addr < right.m_addr; } + __forceinline bool operator <=(const _ptr_base& right) const { return m_addr <= right.m_addr; } + __forceinline bool operator >(const _ptr_base& right) const { return m_addr > right.m_addr; } + __forceinline bool operator >=(const _ptr_base& right) const { return m_addr >= right.m_addr; } + __forceinline bool operator ==(const _ptr_base& right) const { return m_addr == right.m_addr; } + __forceinline bool operator !=(const _ptr_base& right) const { return m_addr != right.m_addr; } + __forceinline bool operator ==(const nullptr_t& right) const { return m_addr == 0; } + __forceinline bool operator !=(const nullptr_t& right) const { return m_addr != 0; } + explicit operator bool() const { return m_addr != 0; } + //typedef typename invert_be_t::type AT2; template operator const _ptr_base() const { - typename std::remove_const::type addr; addr = m_addr; + typename std::remove_const::type addr = convert_le_be(m_addr); return (_ptr_base&)addr; } template operator const _ptr_base() const { - typename std::remove_const::type addr; addr = m_addr; + typename std::remove_const::type addr = convert_le_be(m_addr); return (_ptr_base&)addr; } @@ -286,22 +311,32 @@ namespace vm m_addr = value; } - const void* const get_ptr() const + const void* get_ptr() const { return vm::get_ptr(m_addr); } - operator bool() const + explicit operator const void*() const { - return m_addr != 0; + return get_ptr(); } + __forceinline bool operator <(const _ptr_base& right) const { return m_addr < right.m_addr; } + __forceinline bool operator <=(const _ptr_base& right) const { return m_addr <= right.m_addr; } + __forceinline bool operator >(const _ptr_base& right) const { return m_addr > right.m_addr; } + __forceinline bool operator >=(const _ptr_base& right) const { return m_addr >= right.m_addr; } + __forceinline bool operator ==(const _ptr_base& right) const { return m_addr == right.m_addr; } + __forceinline bool operator !=(const _ptr_base& right) const { return m_addr != right.m_addr; } + __forceinline bool operator ==(const nullptr_t& right) const { return m_addr == 0; } + __forceinline bool operator !=(const nullptr_t& right) const { return m_addr != 0; } + explicit operator bool() const { return m_addr != 0; } + //typedef typename invert_be_t::type AT2; template operator const _ptr_base() const { - typename std::remove_const::type addr; addr = m_addr; + typename std::remove_const::type addr = convert_le_be(m_addr); return (_ptr_base&)addr; } @@ -335,17 +370,22 @@ namespace vm m_addr = value; } - operator bool() const - { - return m_addr != 0; - } + __forceinline bool operator <(const _ptr_base& right) const { return m_addr < right.m_addr; } + __forceinline bool operator <=(const _ptr_base& right) const { return m_addr <= right.m_addr; } + __forceinline bool operator >(const _ptr_base& right) const { return m_addr > right.m_addr; } + __forceinline bool operator >=(const _ptr_base& right) const { return m_addr >= right.m_addr; } + __forceinline bool operator ==(const _ptr_base& right) const { return m_addr == right.m_addr; } + __forceinline bool operator !=(const _ptr_base& right) const { return m_addr != right.m_addr; } + __forceinline bool operator ==(const nullptr_t& right) const { return m_addr == 0; } + __forceinline bool operator !=(const nullptr_t& right) const { return m_addr != 0; } + explicit operator bool() const { return m_addr != 0; } //typedef typename invert_be_t::type AT2; template operator const _ptr_base() const { - typename std::remove_const::type addr; addr = m_addr; + typename std::remove_const::type addr = convert_le_be(m_addr); return (_ptr_base&)addr; } @@ -356,7 +396,7 @@ namespace vm operator const std::function() const { - typename std::remove_const::type addr; addr = m_addr; + typename std::remove_const::type addr = convert_le_be(m_addr); return [addr](T... args) -> RT { return make(addr)(args...); }; } @@ -366,7 +406,7 @@ namespace vm //BE pointer to LE data template struct bptrl : public _ptr_base::type> { - static bptrl make(typename to_be_t::type addr) + static bptrl make(AT addr) { return (bptrl&)addr; } @@ -378,7 +418,7 @@ namespace vm //BE pointer to BE data template struct bptrb : public _ptr_base::type, lvl, typename to_be_t::type> { - static bptrb make(typename to_be_t::type addr) + static bptrb make(AT addr) { return (bptrb&)addr; } @@ -413,7 +453,7 @@ namespace vm namespace ps3 { - //default pointer for HLE functions (LE ptrerence to BE data) + //default pointer for HLE functions (LE pointer to BE data) template struct ptr : public lptrb { static ptr make(AT addr) @@ -425,10 +465,10 @@ namespace vm //using lptrb::operator const _ptr_base::type, lvl, AT>; }; - //default pointer for HLE structures (BE ptrerence to BE data) + //default pointer for HLE structures (BE pointer to BE data) template struct bptr : public bptrb { - static bptr make(typename to_be_t::type addr) + static bptr make(AT addr) { return (bptr&)addr; } @@ -440,7 +480,7 @@ namespace vm namespace psv { - //default pointer for HLE functions & structures (LE ptrerence to LE data) + //default pointer for HLE functions & structures (LE pointer to LE data) template struct ptr : public lptrl { static ptr make(AT addr) diff --git a/rpcs3/Emu/RSX/GL/GLGSRender.cpp b/rpcs3/Emu/RSX/GL/GLGSRender.cpp index 3310425c34..2af22b20ec 100644 --- a/rpcs3/Emu/RSX/GL/GLGSRender.cpp +++ b/rpcs3/Emu/RSX/GL/GLGSRender.cpp @@ -2037,8 +2037,12 @@ void GLGSRender::Flip() glReadPixels(0, 0, RSXThread::m_width, RSXThread::m_height, GL_RGBA, GL_UNSIGNED_INT_8_8_8_8, 0); checkForGlError("Flip(): glReadPixels(GL_BGRA, GL_UNSIGNED_INT_8_8_8_8)"); GLubyte *packed = (GLubyte *)glMapBuffer(GL_PIXEL_PACK_BUFFER, GL_READ_ONLY); - memcpy(pixels.data(), packed, RSXThread::m_width * RSXThread::m_height * 4); - glUnmapBuffer(GL_PIXEL_PACK_BUFFER); + if (packed) + { + memcpy(pixels.data(), packed, RSXThread::m_width * RSXThread::m_height * 4); + glUnmapBuffer(GL_PIXEL_PACK_BUFFER); + checkForGlError("Flip(): glUnmapBuffer"); + } glBindBuffer(GL_PIXEL_PACK_BUFFER, 0); src_buffer = pixels.data(); diff --git a/rpcs3/Emu/SysCalls/ModuleManager.h b/rpcs3/Emu/SysCalls/ModuleManager.h index 33034a9739..5d40cd35ad 100644 --- a/rpcs3/Emu/SysCalls/ModuleManager.h +++ b/rpcs3/Emu/SysCalls/ModuleManager.h @@ -10,6 +10,8 @@ class ModuleManager std::vector m_modules_funcs_list; std::vector m_mod_init; //owner of Module bool initialized; + std::unordered_map m_registered_functions; + public: ModuleManager(); ~ModuleManager(); @@ -24,4 +26,20 @@ public: u32 GetFuncNumById(u32 id); Module* GetModuleByName(const std::string& name); Module* GetModuleById(u16 id); + + void register_function(u32 fnid, u32 fstub) + { + m_registered_functions[fnid] = fstub; + } + + bool get_function_stub(u32 fnid, be_t& res) + { + auto f = m_registered_functions.find(fnid); + + if (f == m_registered_functions.end()) + return false; + + res = f->second; + return true; + } }; \ No newline at end of file diff --git a/rpcs3/Emu/SysCalls/Modules.cpp b/rpcs3/Emu/SysCalls/Modules.cpp index 7951808e2a..e74349e7ae 100644 --- a/rpcs3/Emu/SysCalls/Modules.cpp +++ b/rpcs3/Emu/SysCalls/Modules.cpp @@ -179,7 +179,7 @@ void fix_import(Module* module, u32 func, u32 addr) vm::ptr& ptr = (vm::ptr&)addr; - *ptr++ = LIS(11, func >> 16); + *ptr++ = ADDIS(11, 0, func >> 16); *ptr++ = ORI(11, 11, func & 0xffff); *ptr++ = NOP(); ++ptr; diff --git a/rpcs3/Emu/SysCalls/Modules/cellAvconfExt.cpp b/rpcs3/Emu/SysCalls/Modules/cellAvconfExt.cpp index cbb9506377..260c8eb9bb 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellAvconfExt.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellAvconfExt.cpp @@ -16,15 +16,16 @@ int cellVideoOutGetScreenSize(u32 videoOut, vm::ptr screenSize) { cellAvconfExt->Warning("cellVideoOutGetScreenSize(videoOut=%d, screenSize_addr=0x%x)", videoOut, screenSize.addr()); - if (videoOut != CELL_VIDEO_OUT_PRIMARY) + if (!videoOut == CELL_VIDEO_OUT_PRIMARY) return CELL_VIDEO_OUT_ERROR_UNSUPPORTED_VIDEO_OUT; + //TODO: Use virtual screen size #ifdef _WIN32 HDC screen = GetDC(NULL); - float diagonal = roundf(sqrtf((powf(GetDeviceCaps(screen, HORZSIZE), 2) + powf(GetDeviceCaps(screen, VERTSIZE), 2))) * 0.0393); + float diagonal = round(sqrt((pow(GetDeviceCaps(screen, HORZSIZE), 2) + pow(GetDeviceCaps(screen, VERTSIZE), 2))) * 0.0393); #else // TODO: Linux implementation, without using wx - // float diagonal = roundf(sqrtf((powf(wxGetDisplaySizeMM().GetWidth(), 2) + powf(wxGetDisplaySizeMM().GetHeight(), 2))) * 0.0393); + // float diagonal = round(sqrt((pow(wxGetDisplaySizeMM().GetWidth(), 2) + pow(wxGetDisplaySizeMM().GetHeight(), 2))) * 0.0393); #endif if (Ini.GS3DTV.GetValue()) diff --git a/rpcs3/Emu/SysCalls/Modules/cellDmux.cpp b/rpcs3/Emu/SysCalls/Modules/cellDmux.cpp index 3aa36b77c4..8e311358ff 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellDmux.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellDmux.cpp @@ -900,7 +900,7 @@ int cellDmuxEnableEs(u32 demuxerHandle, vm::ptr esFil *esHandle = id; cellDmux->Warning("*** New ES(dmux=%d, addr=0x%x, size=0x%x, filter(0x%x, 0x%x, 0x%x, 0x%x), cb=0x%x(arg=0x%x), spec=0x%x): id = %d", - demuxerHandle, es->memAddr, es->memSize, es->fidMajor, es->fidMinor, es->sup1, es->sup2, (u32)esCb->cbEsMsgFunc, es->cbArg, es->spec, id); + demuxerHandle, es->memAddr, es->memSize, es->fidMajor, es->fidMinor, es->sup1, es->sup2, esCb->cbEsMsgFunc.addr(), es->cbArg, es->spec, id); DemuxerTask task(dmuxEnableEs); task.es.es = id; diff --git a/rpcs3/Emu/SysCalls/Modules/cellGame.cpp b/rpcs3/Emu/SysCalls/Modules/cellGame.cpp index 07264be69a..e480edc50f 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellGame.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellGame.cpp @@ -180,6 +180,12 @@ int cellGameContentPermit(vm::ptr contentInfoPath, vm: { cellGame->Warning("cellGameContentPermit(contentInfoPath_addr=0x%x, usrdirPath_addr=0x%x)", contentInfoPath.addr(), usrdirPath.addr()); + + if (!contentInfoPath && !usrdirPath) + { + cellGame->Warning("cellGameContentPermit(): CELL_GAME_ERROR_PARAM"); + return CELL_GAME_ERROR_PARAM; + } if (contentInfo == "" && usrdir == "") { diff --git a/rpcs3/Emu/SysCalls/Modules/cellGcmSys.cpp b/rpcs3/Emu/SysCalls/Modules/cellGcmSys.cpp index 1c47579895..bb4146f8b4 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellGcmSys.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellGcmSys.cpp @@ -44,18 +44,18 @@ u32 map_offset_pos = 0; u32 gcmGetLocalMemorySize(u32 sdk_version) { if (sdk_version >= 0x00220000) { - return 0x0F900000; // 249MB + return 0x0F900000; // 249MB } if (sdk_version >= 0x00200000) { - return 0x0F200000; // 242MB + return 0x0F200000; // 242MB } if (sdk_version >= 0x00190000) { - return 0x0EA00000; // 234MB + return 0x0EA00000; // 234MB } if (sdk_version >= 0x00180000) { - return 0x0E800000; // 232MB + return 0x0E800000; // 232MB } - return 0x0E000000; // 224MB + return 0x0E000000; // 224MB } CellGcmOffsetTable offsetTable; @@ -802,7 +802,8 @@ s32 cellGcmAddressToOffset(u64 address, vm::ptr> offset) cellGcmSys->Log("cellGcmAddressToOffset(address=0x%x,offset_addr=0x%x)", address, offset.addr()); // Address not on main memory or local memory - if (address >= 0xD0000000) { + if (!address || address >= 0xD0000000) { + cellGcmSys->Error("cellGcmAddressToOffset(address=0x%x,offset_addr=0x%x)", address, offset.addr()); return CELL_GCM_ERROR_FAILURE; } diff --git a/rpcs3/Emu/SysCalls/Modules/cellPamf.cpp b/rpcs3/Emu/SysCalls/Modules/cellPamf.cpp index 93438d8029..16a5064293 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellPamf.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellPamf.cpp @@ -77,16 +77,14 @@ int pamfStreamTypeToEsFilterId(u8 type, u8 ch, vm::ptr pEsF u8 pamfGetStreamType(vm::ptr pSelf, u8 stream) { //TODO: get stream type correctly - vm::ptr pAddr(pSelf->pAddr); - - switch (pAddr->stream_headers[stream].type) + switch (pSelf->pAddr->stream_headers[stream].type) { case 0x1b: return CELL_PAMF_STREAM_TYPE_AVC; case 0xdc: return CELL_PAMF_STREAM_TYPE_ATRAC3PLUS; case 0x80: return CELL_PAMF_STREAM_TYPE_PAMF_LPCM; case 0xdd: return CELL_PAMF_STREAM_TYPE_USER_DATA; default: - cellPamf->Todo("pamfGetStreamType: unsupported stream type found(0x%x)", pAddr->stream_headers[stream].type); + cellPamf->Todo("pamfGetStreamType: unsupported stream type found(0x%x)", pSelf->pAddr->stream_headers[stream].type); return 0; } } @@ -94,18 +92,18 @@ u8 pamfGetStreamType(vm::ptr pSelf, u8 stream) u8 pamfGetStreamChannel(vm::ptr pSelf, u8 stream) { //TODO: get stream channel correctly - vm::ptr pAddr(pSelf->pAddr); - switch (pAddr->stream_headers[stream].type) + switch (pSelf->pAddr->stream_headers[stream].type) { case 0x1b: - if ((pAddr->stream_headers[stream].stream_id >= 0xe0) && (pAddr->stream_headers[stream].stream_id <= 0xef)) + if ((pSelf->pAddr->stream_headers[stream].stream_id >= 0xe0) && (pSelf->pAddr->stream_headers[stream].stream_id <= 0xef)) { - return pAddr->stream_headers[stream].stream_id - 0xe0; + return pSelf->pAddr->stream_headers[stream].stream_id - 0xe0; } else { - cellPamf->Error("pamfGetStreamChannel: stream type 0x%x got invalid stream id=0x%x", pAddr->stream_headers[stream].type, pAddr->stream_headers[stream].stream_id); + cellPamf->Error("pamfGetStreamChannel: stream type 0x%x got invalid stream id=0x%x", + pSelf->pAddr->stream_headers[stream].type, pSelf->pAddr->stream_headers[stream].stream_id); return 0; } case 0xdc: @@ -118,7 +116,7 @@ u8 pamfGetStreamChannel(vm::ptr pSelf, u8 stream) cellPamf->Todo("pamfGetStreamChannel: CELL_PAMF_STREAM_TYPE_USER_DATA"); return 0; default: - cellPamf->Todo("pamfGetStreamType: unsupported stream type found(0x%x)", pAddr->stream_headers[stream].type); + cellPamf->Todo("pamfGetStreamType: unsupported stream type found(0x%x)", pSelf->pAddr->stream_headers[stream].type); return 0; } @@ -196,10 +194,12 @@ int cellPamfReaderGetPresentationStartTime(vm::ptr pSelf, vm::pt { cellPamf->Warning("cellPamfReaderGetPresentationStartTime(pSelf=0x%x, pTimeStamp_addr=0x%x)", pSelf.addr(), pTimeStamp.addr()); - vm::ptr pAddr(pSelf->pAddr); - const u32 upper = (u16)pAddr->start_pts_high; - pTimeStamp->upper = upper; - pTimeStamp->lower = pAddr->start_pts_low; + if (!pSelf->pAddr) { + return CELL_PAMF_ERROR_INVALID_PAMF; + } + + pTimeStamp->upper = (u32)(u16)pSelf->pAddr->start_pts_high; + pTimeStamp->lower = pSelf->pAddr->start_pts_low; return CELL_OK; } @@ -207,10 +207,12 @@ int cellPamfReaderGetPresentationEndTime(vm::ptr pSelf, vm::ptr< { cellPamf->Warning("cellPamfReaderGetPresentationEndTime(pSelf=0x%x, pTimeStamp_addr=0x%x)", pSelf.addr(), pTimeStamp.addr()); - vm::ptr pAddr(pSelf->pAddr); - const u32 upper = (u16)pAddr->end_pts_high; - pTimeStamp->upper = upper; - pTimeStamp->lower = pAddr->end_pts_low; + if (!pSelf->pAddr) { + return CELL_PAMF_ERROR_INVALID_PAMF; + } + + pTimeStamp->upper = (u32)(u16)pSelf->pAddr->end_pts_high; + pTimeStamp->lower = pSelf->pAddr->end_pts_low; return CELL_OK; } @@ -218,27 +220,35 @@ int cellPamfReaderGetMuxRateBound(vm::ptr pSelf) { cellPamf->Warning("cellPamfReaderGetMuxRateBound(pSelf=0x%x)", pSelf.addr()); - vm::ptr pAddr(pSelf->pAddr); - return pAddr->mux_rate_max; + if (!pSelf->pAddr) { + return CELL_PAMF_ERROR_INVALID_PAMF; + } + + return pSelf->pAddr->mux_rate_max; } int cellPamfReaderGetNumberOfStreams(vm::ptr pSelf) { cellPamf->Warning("cellPamfReaderGetNumberOfStreams(pSelf=0x%x)", pSelf.addr()); - vm::ptr pAddr(pSelf->pAddr); - return pAddr->stream_count; + if (!pSelf->pAddr) { + return CELL_PAMF_ERROR_INVALID_PAMF; + } + + return pSelf->pAddr->stream_count; } int cellPamfReaderGetNumberOfSpecificStreams(vm::ptr pSelf, u8 streamType) { cellPamf->Warning("cellPamfReaderGetNumberOfSpecificStreams(pSelf=0x%x, streamType=%d)", pSelf.addr(), streamType); - - vm::ptr pAddr(pSelf->pAddr); + + if (!pSelf->pAddr) { + return CELL_PAMF_ERROR_INVALID_PAMF; + } int counts[6] = {0, 0, 0, 0, 0, 0}; - for (u8 i = 0; i < pAddr->stream_count; i++) + for (u8 i = 0; i < pSelf->pAddr->stream_count; i++) { counts[pamfGetStreamType(pSelf, i)]++; } @@ -265,25 +275,27 @@ int cellPamfReaderSetStreamWithIndex(vm::ptr pSelf, u8 streamInd { cellPamf->Warning("cellPamfReaderSetStreamWithIndex(pSelf=0x%x, streamIndex=%d)", pSelf.addr(), streamIndex); - vm::ptr pAddr(pSelf->pAddr); + if (!pSelf->pAddr) { + return CELL_PAMF_ERROR_INVALID_PAMF; + } - if (streamIndex < pAddr->stream_count) + if (streamIndex < pSelf->pAddr->stream_count) { pSelf->stream = streamIndex; return CELL_OK; } - else - { - cellPamf->Error("cellPamfReaderSetStreamWithIndex: CELL_PAMF_ERROR_INVALID_ARG"); - return CELL_PAMF_ERROR_INVALID_ARG; - } + + cellPamf->Error("cellPamfReaderSetStreamWithIndex: CELL_PAMF_ERROR_INVALID_ARG"); + return CELL_PAMF_ERROR_INVALID_ARG; } int cellPamfReaderSetStreamWithTypeAndChannel(vm::ptr pSelf, u8 streamType, u8 ch) { cellPamf->Warning("cellPamfReaderSetStreamWithTypeAndChannel(pSelf=0x%x, streamType=%d, ch=%d)", pSelf.addr(), streamType, ch); - vm::ptr pAddr(pSelf->pAddr); + if (!pSelf->pAddr) { + return CELL_PAMF_ERROR_INVALID_PAMF; + } if (streamType > 5) { @@ -292,7 +304,7 @@ int cellPamfReaderSetStreamWithTypeAndChannel(vm::ptr pSelf, u8 return CELL_PAMF_ERROR_INVALID_ARG; } - for (u8 i = 0; i < pAddr->stream_count; i++) + for (u8 i = 0; i < pSelf->pAddr->stream_count; i++) { if (pamfGetStreamType(pSelf, i) == streamType) { @@ -311,11 +323,13 @@ int cellPamfReaderSetStreamWithTypeAndIndex(vm::ptr pSelf, u8 st { cellPamf->Warning("cellPamfReaderSetStreamWithTypeAndIndex(pSelf=0x%x, streamType=%d, streamIndex=%d)", pSelf.addr(), streamType, streamIndex); - vm::ptr pAddr(pSelf->pAddr); + if (!pSelf->pAddr) { + return CELL_PAMF_ERROR_INVALID_PAMF; + } u32 found = 0; - for (u8 i = 0; i < pAddr->stream_count; i++) + for (u8 i = 0; i < pSelf->pAddr->stream_count; i++) { const u8 type = pamfGetStreamType(pSelf, i); @@ -390,7 +404,9 @@ int cellPamfReaderGetStreamInfo(vm::ptr pSelf, u32 pInfo_addr, u { cellPamf->Warning("cellPamfReaderGetStreamInfo(pSelf=0x%x, stream=%d, pInfo_addr=0x%x, size=%d)", pSelf.addr(), pSelf->stream, pInfo_addr, size); - vm::ptr pAddr(pSelf->pAddr); + if (!pSelf->pAddr) { + return CELL_PAMF_ERROR_INVALID_PAMF; + } memset(vm::get_ptr(pInfo_addr), 0, size); @@ -450,7 +466,7 @@ int cellPamfReaderGetStreamInfo(vm::ptr pSelf, u32 pInfo_addr, u case CELL_PAMF_STREAM_TYPE_AC3: { auto pInfo = vm::ptr::make(pInfo_addr); - auto pAudio = vm::ptr::make(pSelf->pAddr + 0x98 + pSelf->stream * 0x30); + auto pAudio = vm::ptr::make(pSelf->pAddr.addr() + 0x98 + pSelf->stream * 0x30); if (size != sizeof(CellPamfAc3Info)) { @@ -465,7 +481,7 @@ int cellPamfReaderGetStreamInfo(vm::ptr pSelf, u32 pInfo_addr, u case CELL_PAMF_STREAM_TYPE_PAMF_LPCM: { auto pInfo = vm::ptr::make(pInfo_addr); - auto pAudio = vm::ptr::make(pSelf->pAddr + 0x98 + pSelf->stream * 0x30); + auto pAudio = vm::ptr::make(pSelf->pAddr.addr() + 0x98 + pSelf->stream * 0x30); if (size != sizeof(CellPamfLpcmInfo)) { @@ -497,15 +513,21 @@ int cellPamfReaderGetNumberOfEp(vm::ptr pSelf) { cellPamf->Warning("cellPamfReaderGetNumberOfEp(pSelf=0x%x, stream=%d)", pSelf.addr(), pSelf->stream); - vm::ptr pAddr(pSelf->pAddr); - return pAddr->stream_headers[pSelf->stream].ep_num; + if (!pSelf->pAddr) { + return CELL_PAMF_ERROR_INVALID_PAMF; + } + + return pSelf->pAddr->stream_headers[pSelf->stream].ep_num; } int cellPamfReaderGetEpIteratorWithIndex(vm::ptr pSelf, u32 epIndex, vm::ptr pIt) { cellPamf->Todo("cellPamfReaderGetEpIteratorWithIndex(pSelf=0x%x, stream=%d, epIndex=%d, pIt_addr=0x%x)", pSelf.addr(), pSelf->stream, epIndex, pIt.addr()); - vm::ptr pAddr(pSelf->pAddr); + if (!pSelf->pAddr) { + return CELL_PAMF_ERROR_INVALID_PAMF; + } + //TODO: return CELL_OK; } @@ -514,7 +536,9 @@ int cellPamfReaderGetEpIteratorWithTimeStamp(vm::ptr pSelf, vm:: { cellPamf->Todo("cellPamfReaderGetEpIteratorWithTimeStamp(pSelf=0x%x, pTimeStamp_addr=0x%x, pIt_addr=0x%x)", pSelf.addr(), pTimeStamp.addr(), pIt.addr()); - vm::ptr pAddr(pSelf->pAddr); + if (!pSelf->pAddr) { + return CELL_PAMF_ERROR_INVALID_PAMF; + } //TODO: diff --git a/rpcs3/Emu/SysCalls/Modules/cellSail.cpp b/rpcs3/Emu/SysCalls/Modules/cellSail.cpp index 323e33a172..3e22257a26 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellSail.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellSail.cpp @@ -71,17 +71,24 @@ int cellSailDescriptorGetMediaInfo() int cellSailDescriptorSetAutoSelection(vm::ptr pSelf, bool autoSelection) { - cellSail->Todo("cellSailDescriptorSetAutoSelection(pSelf_addr=0x%x, autoSelection=%b)", pSelf.addr(), autoSelection); + cellSail->Todo("cellSailDescriptorSetAutoSelection(pSelf_addr=0x%x, autoSelection=%s)", pSelf.addr(), autoSelection ? "true" : "false"); - pSelf->autoSelection = autoSelection; + if (pSelf) { + pSelf->autoSelection = autoSelection; + return autoSelection; + } - return autoSelection; + return CELL_OK; } int cellSailDescriptorIsAutoSelection(vm::ptr pSelf) { cellSail->Warning("cellSailDescriptorIsAutoSelection(pSelf_addr=0x%x)", pSelf.addr()); - return pSelf->autoSelection; + + if (pSelf) + return pSelf->autoSelection; + + return CELL_OK; } int cellSailDescriptorCreateDatabase() @@ -595,7 +602,7 @@ int cellSailPlayerAddDescriptor(vm::ptr pSelf, vm::ptrWarning("cellSailPlayerAddDescriptor(pSelf_addr=0x%x, pDesc_addr=0x%x)", pSelf.addr(), pDesc.addr()); - if (pSelf->descriptors < 3 && pDesc) + if (pSelf && pSelf->descriptors < 3 && pDesc) { pSelf->descriptors++; pSelf->registeredDescriptors[pSelf->descriptors] = pDesc; diff --git a/rpcs3/Emu/SysCalls/Modules/cellSpurs.cpp b/rpcs3/Emu/SysCalls/Modules/cellSpurs.cpp index a74cebba53..0d447dea1d 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellSpurs.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellSpurs.cpp @@ -1691,7 +1691,7 @@ s64 cellSpursGetWorkloadFlag(vm::ptr spurs, vm::ptrset(be_t::make(Memory.RealToVirtualAddr(&spurs->m.wklFlag))); + flag->set(Memory.RealToVirtualAddr(&spurs->m.wklFlag)); return CELL_OK; } diff --git a/rpcs3/Emu/SysCalls/Modules/cellSync.cpp b/rpcs3/Emu/SysCalls/Modules/cellSync.cpp index 6bc6afcca6..cf754b28a0 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellSync.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellSync.cpp @@ -290,7 +290,7 @@ s32 syncRwmInitialize(vm::ptr rwm, vm::ptr buffer, u32 buffer } // prx: zeroize first u16 and second u16, write buffer_size in second u32, write buffer_addr in second u64 and sync - rwm->m_size = buffer_size; + rwm->m_size = be_t::make(buffer_size); rwm->m_buffer = buffer; rwm->data.exchange({}); return CELL_OK; @@ -479,9 +479,9 @@ s32 syncQueueInitialize(vm::ptr queue, vm::ptr buffer, u32 si } // prx: zeroize first u64, write size in third u32, write depth in fourth u32, write address in third u64 and sync - queue->m_size = size; - queue->m_depth = depth; - queue->m_buffer = buffer; + queue->m_size = be_t::make(size); + queue->m_depth = be_t::make(depth); + queue->m_buffer.set(buffer.addr()); queue->data.exchange({}); return CELL_OK; } @@ -855,7 +855,7 @@ void syncLFQueueInit(vm::ptr queue, vm::ptr buffer, u32 siz { queue->pop1.write_relaxed({}); queue->push1.write_relaxed({}); - queue->m_buffer.set(queue->m_buffer.addr() | be_t::make(1)); + queue->m_buffer.set(queue->m_buffer.addr() | 1); queue->m_bs[0] = -1; queue->m_bs[1] = -1; //m_bs[2] diff --git a/rpcs3/Emu/SysCalls/Modules/sysPrxForUser.cpp b/rpcs3/Emu/SysCalls/Modules/sysPrxForUser.cpp index 3c3caf9b7f..697a11799e 100644 --- a/rpcs3/Emu/SysCalls/Modules/sysPrxForUser.cpp +++ b/rpcs3/Emu/SysCalls/Modules/sysPrxForUser.cpp @@ -14,7 +14,7 @@ #include "Emu/SysCalls/lv2/sys_time.h" #include "Emu/SysCalls/lv2/sys_mmapper.h" #include "Emu/SysCalls/lv2/sys_lwcond.h" -#include "Loader/ELF.h" +#include "Loader/ELF32.h" #include "Crypto/unself.h" #include "Emu/Cell/RawSPUThread.h" #include "sysPrxForUser.h" @@ -130,11 +130,10 @@ int sys_raw_spu_load(s32 id, vm::ptr path, vm::ptr entry) f.Seek(0); - ELFLoader l(f); - l.LoadInfo(); - l.LoadData(RAW_SPU_BASE_ADDR + RAW_SPU_OFFSET * id); + u32 _entry; + LoadSpuImage(f, _entry, RAW_SPU_BASE_ADDR + RAW_SPU_OFFSET * id); - *entry = l.GetEntry(); + *entry = _entry; return CELL_OK; } diff --git a/rpcs3/Emu/SysCalls/Modules/sys_net.cpp b/rpcs3/Emu/SysCalls/Modules/sys_net.cpp index 90e781ead1..9f550557c1 100644 --- a/rpcs3/Emu/SysCalls/Modules/sys_net.cpp +++ b/rpcs3/Emu/SysCalls/Modules/sys_net.cpp @@ -96,7 +96,7 @@ int sys_net_accept(s32 s, vm::ptr addr, vm::ptr pad { sys_net->Warning("accept(s=%d, family_addr=0x%x, paddrlen=0x%x)", s, addr.addr(), paddrlen.addr()); if (!addr) { - int ret = accept(s, NULL, NULL); + int ret = accept(s, nullptr, nullptr); *g_lastError = getLastError(); return ret; } diff --git a/rpcs3/Emu/SysCalls/lv2/sys_event_flag.cpp b/rpcs3/Emu/SysCalls/lv2/sys_event_flag.cpp index 244d19cec4..336c88c4bb 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_event_flag.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_event_flag.cpp @@ -42,6 +42,18 @@ s32 sys_event_flag_create(vm::ptr eflag_id, vm::ptr at sys_event_flag.Warning("sys_event_flag_create(eflag_id_addr=0x%x, attr_addr=0x%x, init=0x%llx)", eflag_id.addr(), attr.addr(), init); + if (eflag_id.addr() == NULL) + { + sys_event_flag.Error("sys_event_flag_create(): invalid memory access (eflag_id_addr=0x%x)", eflag_id.addr()); + return CELL_EFAULT; + } + + if (attr.addr() == NULL) + { + sys_event_flag.Error("sys_event_flag_create(): invalid memory access (attr_addr=0x%x)", attr.addr()); + return CELL_EFAULT; + } + switch (attr->protocol.ToBE()) { case se32(SYS_SYNC_PRIORITY): break; @@ -358,6 +370,12 @@ s32 sys_event_flag_get(u32 eflag_id, vm::ptr flags) { sys_event_flag.Log("sys_event_flag_get(eflag_id=%d, flags_addr=0x%x)", eflag_id, flags.addr()); + if (flags.addr() == NULL) + { + sys_event_flag.Error("sys_event_flag_create(): invalid memory access (flags_addr=0x%x)", flags.addr()); + return CELL_EFAULT; + } + EventFlag* ef; if (!sys_event_flag.CheckId(eflag_id, ef)) return CELL_ESRCH; diff --git a/rpcs3/Emu/SysCalls/lv2/sys_lwcond.cpp b/rpcs3/Emu/SysCalls/lv2/sys_lwcond.cpp index 9c709ba37f..a7d277977b 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_lwcond.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_lwcond.cpp @@ -15,7 +15,7 @@ s32 lwcond_create(sys_lwcond_t& lwcond, sys_lwmutex_t& lwmutex, u64 name_u64) u32 id = sys_lwcond.GetNewId(new Lwcond(name_u64), TYPE_LWCOND); u32 addr = Memory.RealToVirtualAddr(&lwmutex); - lwcond.lwmutex.set(be_t::make(addr)); + lwcond.lwmutex.set(addr); lwcond.lwcond_queue = id; std::string name((const char*)&name_u64, 8); diff --git a/rpcs3/Emu/SysCalls/lv2/sys_mmapper.cpp b/rpcs3/Emu/SysCalls/lv2/sys_mmapper.cpp index 53891b7565..ba0242383d 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_mmapper.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_mmapper.cpp @@ -24,13 +24,13 @@ s32 sys_mmapper_allocate_address(u32 size, u64 flags, u32 alignment, u32 alloc_a { default: case SYS_MEMORY_PAGE_SIZE_1M: - if(AlignAddr(size, alignment) & 0xfffff) + if(align(size, alignment) & 0xfffff) return CELL_EALIGN; addr = (u32)Memory.Alloc(size, 0x100000); break; case SYS_MEMORY_PAGE_SIZE_64K: - if(AlignAddr(size, alignment) & 0xffff) + if (align(size, alignment) & 0xffff) return CELL_EALIGN; addr = (u32)Memory.Alloc(size, 0x10000); break; diff --git a/rpcs3/Emu/SysCalls/lv2/sys_ppu_thread.cpp b/rpcs3/Emu/SysCalls/lv2/sys_ppu_thread.cpp index 0b08bb7055..e60882bc21 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_ppu_thread.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_ppu_thread.cpp @@ -160,11 +160,11 @@ PPUThread* ppu_thread_create(u32 entry, u64 arg, s32 prio, u32 stacksize, bool i new_thread.m_has_interrupt = false; new_thread.m_is_interrupt = is_interrupt; new_thread.SetName(name); - new_thread.m_custom_task = task; + new_thread.custom_task = task; sys_ppu_thread.Notice("*** New PPU Thread [%s] (%s, entry=0x%x): id = %d", name.c_str(), is_interrupt ? "interrupt" : - (is_joinable ? "joinable" : "non-joinable"), entry, id); + (is_joinable ? "joinable" : "detached"), entry, id); if (!is_interrupt) { @@ -194,15 +194,13 @@ s32 sys_ppu_thread_create(vm::ptr thread_id, u32 entry, u64 arg, s32 prio, { case 0: break; case SYS_PPU_THREAD_CREATE_JOINABLE: - { is_joinable = true; break; - } + case SYS_PPU_THREAD_CREATE_INTERRUPT: - { is_interrupt = true; break; - } + default: sys_ppu_thread.Error("sys_ppu_thread_create(): unknown flags value (0x%llx)", flags); return CELL_EPERM; } diff --git a/rpcs3/Emu/SysCalls/lv2/sys_prx.cpp b/rpcs3/Emu/SysCalls/lv2/sys_prx.cpp index 3f1ff87e22..efdb47f96c 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_prx.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_prx.cpp @@ -34,10 +34,10 @@ s32 sys_prx_load_module(vm::ptr path, u64 flags, vm::ptrsize = (u32)f.GetSize(); prx->address = (u32)Memory.Alloc(prx->size, 4); - prx->path = path; + prx->path = (const char*)path; // Load the PRX into memory - f.Read(vm::get_ptr(prx->address), prx->size); + f.Read(vm::get_ptr(prx->address), prx->size); u32 id = sys_prx.GetNewId(prx, TYPE_PRX); return id; diff --git a/rpcs3/Emu/SysCalls/lv2/sys_prx.h b/rpcs3/Emu/SysCalls/lv2/sys_prx.h index e83daad0be..2e024c1bde 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_prx.h +++ b/rpcs3/Emu/SysCalls/lv2/sys_prx.h @@ -28,11 +28,74 @@ enum CELL_PRX_ERROR_ELF_IS_REGISTERED = 0x80011910, // Fixed ELF is already registered }; +// Information about imported or exported libraries in PRX modules +struct sys_prx_library_info_t +{ + u8 size; + u8 unk0; + be_t version; + be_t attributes; + be_t num_func; + be_t num_var; + be_t num_tlsvar; + u8 info_hash; + u8 info_tlshash; + u8 unk1[2]; + be_t name_addr; + be_t fnid_addr; + be_t fstub_addr; + be_t unk4; + be_t unk5; + be_t unk6; + be_t unk7; +}; + +// ELF file headers +struct sys_prx_param_t +{ + be_t size; + be_t magic; + be_t version; + be_t unk0; + be_t libentstart; + be_t libentend; + vm::bptr libstubstart; + vm::bptr libstubend; + be_t ver; + be_t unk1; + be_t unk2; +}; + +// PRX file headers +struct sys_prx_module_info_t +{ + be_t attributes; + be_t version; + s8 name[28]; + be_t toc; + vm::bptr exports_start; + vm::bptr exports_end; + be_t imports_start; + be_t imports_end; +}; + +// Relocation information of the SCE_PPURELA segment +struct sys_prx_relocation_info_t +{ + be_t offset; + be_t unk0; + u8 index_value; + u8 index_addr; + be_t type; + vm::bptr ptr; +}; + + // Data types struct sys_prx_load_module_option_t { be_t size; - be_t base_addr; // void* + vm::bptr base_addr; }; struct sys_prx_start_module_option_t diff --git a/rpcs3/Emu/SysCalls/lv2/sys_semaphore.cpp b/rpcs3/Emu/SysCalls/lv2/sys_semaphore.cpp index c7dc32e5c3..d194a0b563 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_semaphore.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_semaphore.cpp @@ -26,6 +26,16 @@ s32 sys_semaphore_create(vm::ptr sem, vm::ptr attr sys_semaphore.Warning("sys_semaphore_create(sem_addr=0x%x, attr_addr=0x%x, initial_count=%d, max_count=%d)", sem.addr(), attr.addr(), initial_count, max_count); + if (sem.addr() == NULL) { + sys_semaphore.Error("sys_semaphore_create(): invalid memory access (sem_addr=0x%x)", sem.addr()); + return CELL_EFAULT; + } + + if (attr.addr() == NULL) { + sys_semaphore.Error("sys_semaphore_create(): An invalid argument value is specified (attr_addr=0x%x)", attr.addr()); + return CELL_EFAULT; + } + if (max_count <= 0 || initial_count > max_count || initial_count < 0) { sys_semaphore.Error("sys_semaphore_create(): invalid parameters (initial_count=%d, max_count=%d)", initial_count, max_count); @@ -204,6 +214,11 @@ s32 sys_semaphore_get_value(u32 sem_id, vm::ptr count) { sys_semaphore.Log("sys_semaphore_get_value(sem_id=%d, count_addr=0x%x)", sem_id, count.addr()); + if (count.addr() == NULL) { + sys_semaphore.Error("sys_semaphore_get_value(): invalid memory access (count=0x%x)", count.addr()); + return CELL_EFAULT; + } + Semaphore* sem; if (!Emu.GetIdManager().GetIDData(sem_id, sem)) { diff --git a/rpcs3/Emu/SysCalls/lv2/sys_spu.cpp b/rpcs3/Emu/SysCalls/lv2/sys_spu.cpp index 4c7163f3d2..4a4a1a5523 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_spu.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_spu.cpp @@ -7,20 +7,26 @@ #include "Emu/Cell/RawSPUThread.h" #include "Emu/FS/vfsStreamMemory.h" #include "Emu/FS/vfsFile.h" -#include "Loader/ELF.h" +#include "Loader/ELF32.h" #include "Crypto/unself.h" #include "sys_spu.h" static SysCallBase sys_spu("sys_spu"); +void LoadSpuImage(vfsStream& stream, u32& spu_ep, u32 addr) +{ + loader::handlers::elf32 h; + h.init(stream); + h.load_data(addr); + spu_ep = h.m_ehdr.data_be.e_entry; +} + u32 LoadSpuImage(vfsStream& stream, u32& spu_ep) { - ELFLoader l(stream); - l.LoadInfo(); const u32 alloc_size = 256 * 1024; - u32 spu_offset = (u32)Memory.MainMem.AllocAlign(alloc_size); - l.LoadData(spu_offset); - spu_ep = l.GetEntry(); + u32 spu_offset = (u32)vm::alloc(alloc_size, vm::main); + + LoadSpuImage(stream, spu_ep, spu_offset); return spu_offset; } diff --git a/rpcs3/Emu/SysCalls/lv2/sys_spu.h b/rpcs3/Emu/SysCalls/lv2/sys_spu.h index e9886b0e0d..6cf66a7bcb 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_spu.h +++ b/rpcs3/Emu/SysCalls/lv2/sys_spu.h @@ -90,7 +90,7 @@ struct sys_spu_segment union { - be_t addr; // address or fill value + be_t addr; // address or fill value u64 pad; }; }; @@ -154,6 +154,10 @@ struct SpuGroupInfo }; class SPUThread; +struct vfsStream; + +void LoadSpuImage(vfsStream& stream, u32& spu_ep, u32 addr); +u32 LoadSpuImage(vfsStream& stream, u32& spu_ep); // Aux s32 spu_image_import(sys_spu_image& img, u32 src, u32 type); diff --git a/rpcs3/Emu/System.cpp b/rpcs3/Emu/System.cpp index 4d9e63baf0..2f280c97b5 100644 --- a/rpcs3/Emu/System.cpp +++ b/rpcs3/Emu/System.cpp @@ -58,6 +58,8 @@ Emulator::Emulator() , m_sync_prim_manager(new SyncPrimManager()) , m_vfs(new VFS()) { + m_loader.register_handler(new loader::handlers::elf32); + m_loader.register_handler(new loader::handlers::elf64); } Emulator::~Emulator() @@ -236,78 +238,13 @@ void Emulator::Load() return; } - bool is_error; - Loader l(f); - - try + if (!m_loader.load(f)) { - if(!(is_error = !l.Analyze())) - { - switch(l.GetMachine()) - { - case MACHINE_SPU: - Memory.Init(Memory_PS3); - Memory.MainMem.AllocFixed(Memory.MainMem.GetStartAddr(), 0x40000); - break; - - case MACHINE_PPC64: - Memory.Init(Memory_PS3); - break; - - case MACHINE_MIPS: - Memory.Init(Memory_PSP); - break; - - case MACHINE_ARM: - Memory.Init(Memory_PSV); - break; - - default: - throw std::string("Unknown machine!"); - } - - is_error = !l.Load(); - } - - } - catch(const std::string& e) - { - LOG_ERROR(LOADER, "%s", e.c_str()); - is_error = true; - } - catch(...) - { - LOG_ERROR(LOADER, "Unhandled loader error."); - is_error = true; - } - - CPUThreadType thread_type; - - if(!is_error) - { - switch(l.GetMachine()) - { - case MACHINE_PPC64: thread_type = CPU_THREAD_PPU; break; - case MACHINE_SPU: thread_type = CPU_THREAD_SPU; break; - case MACHINE_ARM: thread_type = CPU_THREAD_ARMv7; break; - - default: - LOG_ERROR(LOADER, "Unimplemented thread type for machine."); - is_error = true; - break; - } - } - - if(is_error) - { - Memory.Close(); - Stop(); + LOG_ERROR(LOADER, "Loading '%s' failed", m_elf_path.c_str()); + vm::close(); return; } - // setting default values - Emu.m_sdk_version = -1; // possibly "unknown" value - // trying to load some info from PARAM.SFO vfsFile f2("/app_home/PARAM.SFO"); if (f2.IsOpened()) @@ -327,83 +264,6 @@ void Emulator::Load() LoadPoints(BreakPointsDBName); - CPUThread& thread = GetCPU().AddThread(thread_type); - - switch(l.GetMachine()) - { - case MACHINE_SPU: - LOG_NOTICE(LOADER, "offset = 0x%llx", Memory.MainMem.GetStartAddr()); - LOG_NOTICE(LOADER, "max addr = 0x%x", l.GetMaxAddr()); - thread.SetOffset(Memory.MainMem.GetStartAddr()); - thread.SetEntry(l.GetEntry() - Memory.MainMem.GetStartAddr()); - thread.Run(); - break; - - case MACHINE_PPC64: - { - m_rsx_callback = (u32)Memory.MainMem.AllocAlign(4 * 4) + 4; - vm::write32(m_rsx_callback - 4, m_rsx_callback); - - auto callback_data = vm::ptr::make(m_rsx_callback); - callback_data[0] = ADDI(11, 0, 0x3ff); - callback_data[1] = SC(2); - callback_data[2] = BCLR(0x10 | 0x04, 0, 0, 0); - - m_ppu_thr_exit = (u32)Memory.MainMem.AllocAlign(4 * 4); - - auto ppu_thr_exit_data = vm::ptr::make(m_ppu_thr_exit); - //ppu_thr_exit_data += ADDI(3, 0, 0); // why it kills return value (GPR[3]) ? - ppu_thr_exit_data[0] = ADDI(11, 0, 41); - ppu_thr_exit_data[1] = SC(2); - ppu_thr_exit_data[2] = BCLR(0x10 | 0x04, 0, 0, 0); - - m_ppu_thr_stop = (u32)Memory.MainMem.AllocAlign(2 * 4); - - auto ppu_thr_stop_data = vm::ptr::make(m_ppu_thr_stop); - ppu_thr_stop_data[0] = SC(4); - ppu_thr_stop_data[1] = BCLR(0x10 | 0x04, 0, 0, 0); - - vm::write64(Memory.PRXMem.AllocAlign(0x10000), 0xDEADBEEFABADCAFE); - - thread.SetEntry(l.GetEntry()); - thread.SetStackSize(0x10000); - thread.SetPrio(0x50); - thread.Run(); - - u32 arg1 = Memory.MainMem.AllocAlign(m_elf_path.size() + 1 + 0x20, 0x10) + 0x20; - memcpy(vm::get_ptr(arg1), m_elf_path.c_str(), m_elf_path.size() + 1); - u32 argv = arg1 - 0x20; - vm::write64(argv, arg1); - - static_cast(thread).GPR[3] = 1; // arg count - static_cast(thread).GPR[4] = argv; // probably, args** - static_cast(thread).GPR[5] = argv + 0x10; // unknown - static_cast(thread).GPR[6] = 0; // unknown - static_cast(thread).GPR[12] = Emu.GetMallocPageSize(); // ??? - //thread.AddArgv("-emu"); - } - break; - - case MACHINE_ARM: - { - u32 entry = l.GetEntry(); - - auto code = vm::psv::ptr::make(entry & ~3); - - // evil way to find entry point in .sceModuleInfo.rodata - while (code[0] != 0xffffffffu) - { - entry = code[0] + 0x81000000; - code++; - } - - thread.SetEntry(entry & ~1); - thread.Run(); - - break; - } - } - m_status = Ready; GetGSManager().Init(); @@ -416,7 +276,6 @@ void Emulator::Load() void Emulator::Run() { - if(!IsReady()) { Load(); diff --git a/rpcs3/Emu/System.h b/rpcs3/Emu/System.h index 05c8927eee..63469f3467 100644 --- a/rpcs3/Emu/System.h +++ b/rpcs3/Emu/System.h @@ -45,9 +45,10 @@ public: SetTLSData(0, 0, 0); memset(&proc_param, 0, sizeof(sys_process_param_info)); - proc_param.malloc_pagesize = 0x100000; - proc_param.sdk_version = 0x360001; - //TODO + proc_param.malloc_pagesize = be_t::make(0x100000); + proc_param.sdk_version = be_t::make(0x360001); + proc_param.primary_stacksize = be_t::make(0x100000); + proc_param.primary_prio = be_t::make(0x50); } void SetTLSData(const u64 addr, const u64 filesz, const u64 memsz) @@ -106,6 +107,7 @@ class Emulator VFS* m_vfs; EmuInfo m_info; + loader::loader m_loader; public: std::string m_path; @@ -121,6 +123,11 @@ public: void SetPath(const std::string& path, const std::string& elf_path = ""); void SetTitleID(const std::string& id); + std::string GetPath() const + { + return m_elf_path; + } + std::recursive_mutex& GetCoreMutex() { return m_core_mutex; } CPUThreadManager& GetCPU() { return *m_thread_manager; } @@ -149,6 +156,21 @@ public: m_info.SetTLSData(addr, filesz, memsz); } + void SetRSXCallback(u32 addr) + { + m_rsx_callback = addr; + } + + void SetPPUThreadExit(u32 addr) + { + m_ppu_thr_exit = addr; + } + + void SetPPUThreadStop(u32 addr) + { + m_ppu_thr_stop = addr; + } + EmuInfo& GetInfo() { return m_info; } u64 GetTLSAddr() const { return m_info.GetTLSAddr(); } diff --git a/rpcs3/Gui/CompilerELF.cpp b/rpcs3/Gui/CompilerELF.cpp index c4254163e2..0dcd836eca 100644 --- a/rpcs3/Gui/CompilerELF.cpp +++ b/rpcs3/Gui/CompilerELF.cpp @@ -421,5 +421,5 @@ void CompilerELF::SetOpStyle(const std::string& text, const wxColour& color, boo void CompilerELF::DoAnalyzeCode(bool compile) { - CompilePPUProgram(fmt::ToUTF8(asm_list->GetValue()), "compiled.elf", asm_list, hex_list, err_list, !compile).Compile(); +// CompilePPUProgram(fmt::ToUTF8(asm_list->GetValue()), "compiled.elf", asm_list, hex_list, err_list, !compile).Compile(); } diff --git a/rpcs3/Gui/DisAsmFrame.cpp b/rpcs3/Gui/DisAsmFrame.cpp index e4c4fe2c17..c7c52acff9 100644 --- a/rpcs3/Gui/DisAsmFrame.cpp +++ b/rpcs3/Gui/DisAsmFrame.cpp @@ -1,4 +1,5 @@ #include "stdafx_gui.h" +#if 0 #include "Utilities/Log.h" #include "Emu/Memory/Memory.h" #include "Emu/System.h" @@ -512,3 +513,4 @@ void DisAsmFrame::MouseWheel(wxMouseEvent& event) event.Skip(); } +#endif \ No newline at end of file diff --git a/rpcs3/Gui/DisAsmFrame.h b/rpcs3/Gui/DisAsmFrame.h index 0f9f30b271..4e2bf0b3b9 100644 --- a/rpcs3/Gui/DisAsmFrame.h +++ b/rpcs3/Gui/DisAsmFrame.h @@ -1,5 +1,5 @@ #pragma once - +#if 0 class PPCThread; class DisAsmFrame : public wxFrame @@ -31,4 +31,6 @@ public: } virtual void AddLine(const wxString line); -}; \ No newline at end of file +}; + +#endif \ No newline at end of file diff --git a/rpcs3/Gui/LLEModulesManager.cpp b/rpcs3/Gui/LLEModulesManager.cpp new file mode 100644 index 0000000000..387e0e6433 --- /dev/null +++ b/rpcs3/Gui/LLEModulesManager.cpp @@ -0,0 +1,65 @@ +#include "stdafx_gui.h" +#include "Utilities/Log.h" +#include "Loader/ELF64.h" +#include "Emu/FS/vfsDir.h" +#include "Emu/FS/vfsFile.h" +#include "LLEModulesManager.h" +#include "Emu/System.h" +#include "Emu/FS/VFS.h" + +LLEModulesManagerFrame::LLEModulesManagerFrame(wxWindow* parent) : FrameBase(parent, wxID_ANY, "", "LLEModulesManagerFrame", wxSize(800, 600)) +{ + wxBoxSizer *s_panel = new wxBoxSizer(wxVERTICAL); + wxBoxSizer *s_p_panel = new wxBoxSizer(wxVERTICAL); + wxPanel *p_main = new wxPanel(this); + m_check_list = new wxCheckListBox(p_main, wxID_ANY); + s_p_panel->Add(m_check_list, 0, wxEXPAND | wxALL, 5); + p_main->SetSizerAndFit(s_p_panel); + s_panel->Add(p_main, 0, wxEXPAND | wxALL, 5); + SetSizerAndFit(s_panel); + + Refresh(); + //Bind(wxEVT_CHECKLISTBOX, [this](wxCommandEvent& event) { UpdateSelection(); }); + Bind(wxEVT_SIZE, [p_main, this](wxSizeEvent& event) { p_main->SetSize(GetClientSize()); m_check_list->SetSize(p_main->GetClientSize() - wxSize(10, 10)); }); +} + +void LLEModulesManagerFrame::Refresh() +{ + m_check_list->Clear(); + + std::string path = "/dev_flash/sys/external/"; + + Emu.GetVFS().Init(path); + + vfsDir dir(path); + + loader::handlers::elf64 sprx_loader; + for (const DirEntryInfo* info = dir.Read(); info; info = dir.Read()) + { + if (info->flags & DirEntry_TypeFile) + { + vfsFile f(path + info->name); + if (sprx_loader.init(f) != loader::handler::ok) + { + continue; + } + + if (!sprx_loader.is_sprx()) + { + continue; + } + + sprx_loader.load(); + + m_check_list->Check(m_check_list->Append(sprx_loader.sprx_get_module_name() + + " v" + std::to_string((int)sprx_loader.m_sprx_module_info.version[0]) + "." + std::to_string((int)sprx_loader.m_sprx_module_info.version[1]))); + } + } + + Emu.GetVFS().UnMountAll(); +} + +void LLEModulesManagerFrame::UpdateSelection() +{ + +} \ No newline at end of file diff --git a/rpcs3/Gui/LLEModulesManager.h b/rpcs3/Gui/LLEModulesManager.h new file mode 100644 index 0000000000..f6344bba3b --- /dev/null +++ b/rpcs3/Gui/LLEModulesManager.h @@ -0,0 +1,13 @@ +#pragma once +#include "Gui/FrameBase.h" +#include + +class LLEModulesManagerFrame : public FrameBase +{ + wxCheckListBox *m_check_list; + +public: + LLEModulesManagerFrame(wxWindow *parent); + void Refresh(); + void UpdateSelection(); +}; \ No newline at end of file diff --git a/rpcs3/Gui/MainFrame.cpp b/rpcs3/Gui/MainFrame.cpp index b3e5da35ad..a21acdb18d 100644 --- a/rpcs3/Gui/MainFrame.cpp +++ b/rpcs3/Gui/MainFrame.cpp @@ -20,6 +20,7 @@ #include "Gui/KernelExplorer.h" #include "Gui/MemoryViewer.h" #include "Gui/RSXDebugger.h" +#include "Gui/LLEModulesManager.h" #include @@ -44,6 +45,7 @@ enum IDs id_config_vhdd_manager, id_config_autopause_manager, id_config_savedata_manager, + id_config_lle_modules_manager, id_tools_compiler, id_tools_kernel_explorer, id_tools_memory_viewer, @@ -98,6 +100,8 @@ MainFrame::MainFrame() menu_conf->Append(id_config_vfs_manager, "Virtual File System Manager"); menu_conf->Append(id_config_vhdd_manager, "Virtual HDD Manager"); menu_conf->Append(id_config_savedata_manager, "Save Data Utility"); + menu_conf->Append(id_config_lle_modules_manager, "LLE Modules Manager"); + wxMenu* menu_tools = new wxMenu(); menubar->Append(menu_tools, "Tools"); @@ -137,6 +141,7 @@ MainFrame::MainFrame() Bind(wxEVT_MENU, &MainFrame::ConfigVHDD, this, id_config_vhdd_manager); Bind(wxEVT_MENU, &MainFrame::ConfigAutoPause, this, id_config_autopause_manager); Bind(wxEVT_MENU, &MainFrame::ConfigSaveData, this, id_config_savedata_manager); + Bind(wxEVT_MENU, &MainFrame::ConfigLLEModules, this, id_config_lle_modules_manager); Bind(wxEVT_MENU, &MainFrame::OpenELFCompiler, this, id_tools_compiler); Bind(wxEVT_MENU, &MainFrame::OpenKernelExplorer, this, id_tools_kernel_explorer); @@ -673,6 +678,11 @@ void MainFrame::ConfigSaveData(wxCommandEvent& event) SaveDataListDialog(this, true).ShowModal(); } +void MainFrame::ConfigLLEModules(wxCommandEvent& event) +{ + (new LLEModulesManagerFrame(this))->Show(); +} + void MainFrame::OpenELFCompiler(wxCommandEvent& WXUNUSED(event)) { (new CompilerELF(this)) -> Show(); diff --git a/rpcs3/Gui/MainFrame.h b/rpcs3/Gui/MainFrame.h index 3e1b625048..359e932c6a 100644 --- a/rpcs3/Gui/MainFrame.h +++ b/rpcs3/Gui/MainFrame.h @@ -40,6 +40,7 @@ private: void ConfigVHDD(wxCommandEvent& event); void ConfigAutoPause(wxCommandEvent& event); void ConfigSaveData(wxCommandEvent& event); + void ConfigLLEModules(wxCommandEvent& event); void OpenELFCompiler(wxCommandEvent& evt); void OpenKernelExplorer(wxCommandEvent& evt); void OpenMemoryViewer(wxCommandEvent& evt); diff --git a/rpcs3/Loader/ELF.cpp b/rpcs3/Loader/ELF.cpp deleted file mode 100644 index b3708bf910..0000000000 --- a/rpcs3/Loader/ELF.cpp +++ /dev/null @@ -1,63 +0,0 @@ -#include "stdafx.h" -#include "Emu/FS/vfsStream.h" -#include "ELF.h" -#include "ELF64.h" -#include "ELF32.h" - -void Elf_Ehdr::Show() -{ -} - -void Elf_Ehdr::Load(vfsStream& f) -{ - e_magic = Read32(f); - e_class = Read8(f); -} - -ELFLoader::ELFLoader(vfsStream& f) - : m_elf_file(f) - , LoaderBase() - , m_loader(nullptr) -{ -} - -bool ELFLoader::LoadInfo() -{ - if(!m_elf_file.IsOpened()) - return false; - - m_elf_file.Seek(0); - ehdr.Load(m_elf_file); - if(!ehdr.CheckMagic()) - return false; - - switch(ehdr.GetClass()) - { - case CLASS_ELF32: - m_loader = new ELF32Loader(m_elf_file); - break; - case CLASS_ELF64: - m_loader = new ELF64Loader(m_elf_file); - break; - } - - if(!(m_loader && m_loader->LoadInfo())) - return false; - - entry = m_loader->GetEntry(); - machine = m_loader->GetMachine(); - - return true; -} - -bool ELFLoader::LoadData(u64 offset) -{ - return m_loader && m_loader->LoadData(offset); -} - -bool ELFLoader::Close() -{ - delete m_loader; - m_loader = nullptr; - return m_elf_file.Close(); -} diff --git a/rpcs3/Loader/ELF.h b/rpcs3/Loader/ELF.h deleted file mode 100644 index 44b888b9ff..0000000000 --- a/rpcs3/Loader/ELF.h +++ /dev/null @@ -1,53 +0,0 @@ -#pragma once -#include "Loader.h" - -struct vfsStream; - -enum ElfClass -{ - CLASS_Unknown, - CLASS_ELF32, - CLASS_ELF64, -}; - -struct Elf_Ehdr -{ - u32 e_magic; - u8 e_class; - - virtual void Show(); - - virtual void Load(vfsStream& f); - - bool CheckMagic() const { return e_magic == 0x7F454C46; } - - ElfClass GetClass() const - { - switch(e_class) - { - case 1: return CLASS_ELF32; - case 2: return CLASS_ELF64; - } - - return CLASS_Unknown; - } -}; - -class ELFLoader : public LoaderBase -{ - vfsStream& m_elf_file; - LoaderBase* m_loader; - -public: - Elf_Ehdr ehdr; - - ELFLoader(vfsStream& f); - virtual ~ELFLoader() - { - Close(); - } - - virtual bool LoadInfo(); - virtual bool LoadData(u64 offset = 0); - virtual bool Close(); -}; \ No newline at end of file diff --git a/rpcs3/Loader/ELF32.cpp b/rpcs3/Loader/ELF32.cpp index 1d35143e01..377ab7f5ae 100644 --- a/rpcs3/Loader/ELF32.cpp +++ b/rpcs3/Loader/ELF32.cpp @@ -3,623 +3,127 @@ #include "Utilities/rFile.h" #include "Emu/FS/vfsStream.h" #include "Emu/Memory/Memory.h" -#include "Emu/ARMv7/PSVFuncList.h" #include "ELF32.h" +#include "Emu/Cell/SPUThread.h" +#include "Emu/ARMv7/ARMv7Thread.h" +#include "Emu/System.h" -//#define LOADER_DEBUG - -void Elf32_Ehdr::Show() +namespace loader { -#ifdef LOADER_DEBUG - LOG_NOTICE(LOADER, "Magic: %08x", e_magic); - LOG_NOTICE(LOADER, "Class: %s", "ELF32"); - LOG_NOTICE(LOADER, "Data: %s", Ehdr_DataToString(e_data).c_str()); - LOG_NOTICE(LOADER, "Current Version: %d", e_curver); - LOG_NOTICE(LOADER, "OS/ABI: %s", Ehdr_OS_ABIToString(e_os_abi).c_str()); - LOG_NOTICE(LOADER, "ABI version: %lld", e_abi_ver); - LOG_NOTICE(LOADER, "Type: %s", Ehdr_TypeToString(e_type).c_str()); - LOG_NOTICE(LOADER, "Machine: %s", Ehdr_MachineToString(e_machine).c_str()); - LOG_NOTICE(LOADER, "Version: %d", e_version); - LOG_NOTICE(LOADER, "Entry point address: 0x%x", e_entry); - LOG_NOTICE(LOADER, "Program headers offset: 0x%08x", e_phoff); - LOG_NOTICE(LOADER, "Section headers offset: 0x%08x", e_shoff); - LOG_NOTICE(LOADER, "Flags: 0x%x", e_flags); - LOG_NOTICE(LOADER, "Size of this header: %d", e_ehsize); - LOG_NOTICE(LOADER, "Size of program headers: %d", e_phentsize); - LOG_NOTICE(LOADER, "Number of program headers: %d", e_phnum); - LOG_NOTICE(LOADER, "Size of section headers: %d", e_shentsize); - LOG_NOTICE(LOADER, "Number of section headers: %d", e_shnum); - LOG_NOTICE(LOADER, "Section header string table index: %d", e_shstrndx); -#endif -} - -void Elf32_Ehdr::Load(vfsStream& f) -{ - e_magic = Read32(f); - e_class = Read8(f); - e_data = Read8(f); - e_curver = Read8(f); - e_os_abi = Read8(f); - - if(IsLittleEndian()) + namespace handlers { - e_abi_ver = Read64LE(f); - e_type = Read16LE(f); - e_machine = Read16LE(f); - e_version = Read32LE(f); - e_entry = Read32LE(f); - e_phoff = Read32LE(f); - e_shoff = Read32LE(f); - e_flags = Read32LE(f); - e_ehsize = Read16LE(f); - e_phentsize = Read16LE(f); - e_phnum = Read16LE(f); - e_shentsize = Read16LE(f); - e_shnum = Read16LE(f); - e_shstrndx = Read16LE(f); - } - else - { - e_abi_ver = Read64(f); - e_type = Read16(f); - e_machine = Read16(f); - e_version = Read32(f); - e_entry = Read32(f); - e_phoff = Read32(f); - e_shoff = Read32(f); - e_flags = Read32(f); - e_ehsize = Read16(f); - e_phentsize = Read16(f); - e_phnum = Read16(f); - e_shentsize = Read16(f); - e_shnum = Read16(f); - e_shstrndx = Read16(f); - } -} - -void Elf32_Desc::Load(vfsStream& f) -{ - revision = Read32(f); - ls_size = Read32(f); - stack_size = Read32(f); - flags = Read32(f); -} - -void Elf32_Desc::LoadLE(vfsStream& f) -{ - revision = Read32LE(f); - ls_size = Read32LE(f); - stack_size = Read32LE(f); - flags = Read32LE(f); -} - -void Elf32_Note::Load(vfsStream& f) -{ - namesz = Read32(f); - descsz = Read32(f); - type = Read32(f); - f.Read(name, 8); - - if (descsz == 32) - { - f.Read(desc_text, descsz); - } - else - { - desc.Load(f); - } -} - -void Elf32_Note::LoadLE(vfsStream& f) -{ - namesz = Read32LE(f); - descsz = Read32LE(f); - type = Read32LE(f); - f.Read(name, 8); - - if (descsz == 32) - { - f.Read(desc_text, descsz); - } - else - { - desc.Load(f); - } -} - -void Elf32_Shdr::Load(vfsStream& f) -{ - sh_name = Read32(f); - sh_type = Read32(f); - sh_flags = Read32(f); - sh_addr = Read32(f); - sh_offset = Read32(f); - sh_size = Read32(f); - sh_link = Read32(f); - sh_info = Read32(f); - sh_addralign = Read32(f); - sh_entsize = Read32(f); -} - -void Elf32_Shdr::LoadLE(vfsStream& f) -{ - sh_name = Read32LE(f); - sh_type = Read32LE(f); - sh_flags = Read32LE(f); - sh_addr = Read32LE(f); - sh_offset = Read32LE(f); - sh_size = Read32LE(f); - sh_link = Read32LE(f); - sh_info = Read32LE(f); - sh_addralign = Read32LE(f); - sh_entsize = Read32LE(f); -} - -void Elf32_Shdr::Show() -{ -#ifdef LOADER_DEBUG - LOG_NOTICE(LOADER, "Name offset: 0x%x", sh_name); - LOG_NOTICE(LOADER, "Type: 0x%d", sh_type); - LOG_NOTICE(LOADER, "Addr: 0x%x", sh_addr); - LOG_NOTICE(LOADER, "Offset: 0x%x", sh_offset); - LOG_NOTICE(LOADER, "Size: 0x%x", sh_size); - LOG_NOTICE(LOADER, "EntSize: %d", sh_entsize); - LOG_NOTICE(LOADER, "Flags: 0x%x", sh_flags); - LOG_NOTICE(LOADER, "Link: 0x%x", sh_link); - LOG_NOTICE(LOADER, "Info: %d", sh_info); - LOG_NOTICE(LOADER, "Address align: 0x%x", sh_addralign); -#endif -} - -void Elf32_Phdr::Load(vfsStream& f) -{ - p_type = Read32(f); - p_offset = Read32(f); - p_vaddr = Read32(f); - p_paddr = Read32(f); - p_filesz = Read32(f); - p_memsz = Read32(f); - p_flags = Read32(f); - p_align = Read32(f); -} - -void Elf32_Phdr::LoadLE(vfsStream& f) -{ - p_type = Read32LE(f); - p_offset = Read32LE(f); - p_vaddr = Read32LE(f); - p_paddr = Read32LE(f); - p_filesz = Read32LE(f); - p_memsz = Read32LE(f); - p_flags = Read32LE(f); - p_align = Read32LE(f); -} - -void Elf32_Phdr::Show() -{ -#ifdef LOADER_DEBUG - LOG_NOTICE(LOADER, "Type: %s", Phdr_TypeToString(p_type).c_str()); - LOG_NOTICE(LOADER, "Offset: 0x%08x", p_offset); - LOG_NOTICE(LOADER, "Virtual address: 0x%08x", p_vaddr); - LOG_NOTICE(LOADER, "Physical address: 0x%08x", p_paddr); - LOG_NOTICE(LOADER, "File size: 0x%08x", p_filesz); - LOG_NOTICE(LOADER, "Memory size: 0x%08x", p_memsz); - LOG_NOTICE(LOADER, "Flags: %s", Phdr_FlagsToString(p_flags).c_str()); - LOG_NOTICE(LOADER, "Align: 0x%x", p_align); -#endif -} - -void WriteEhdr(rFile& f, Elf32_Ehdr& ehdr) -{ - Write32(f, ehdr.e_magic); - Write8(f, ehdr.e_class); - Write8(f, ehdr.e_data); - Write8(f, ehdr.e_curver); - Write8(f, ehdr.e_os_abi); - Write64(f, ehdr.e_abi_ver); - Write16(f, ehdr.e_type); - Write16(f, ehdr.e_machine); - Write32(f, ehdr.e_version); - Write32(f, ehdr.e_entry); - Write32(f, ehdr.e_phoff); - Write32(f, ehdr.e_shoff); - Write32(f, ehdr.e_flags); - Write16(f, ehdr.e_ehsize); - Write16(f, ehdr.e_phentsize); - Write16(f, ehdr.e_phnum); - Write16(f, ehdr.e_shentsize); - Write16(f, ehdr.e_shnum); - Write16(f, ehdr.e_shstrndx); -} - -void WritePhdr(rFile& f, Elf32_Phdr& phdr) -{ - Write32(f, phdr.p_type); - Write32(f, phdr.p_offset); - Write32(f, phdr.p_vaddr); - Write32(f, phdr.p_paddr); - Write32(f, phdr.p_filesz); - Write32(f, phdr.p_memsz); - Write32(f, phdr.p_flags); - Write32(f, phdr.p_align); -} - -void WriteShdr(rFile& f, Elf32_Shdr& shdr) -{ - Write32(f, shdr.sh_name); - Write32(f, shdr.sh_type); - Write32(f, shdr.sh_flags); - Write32(f, shdr.sh_addr); - Write32(f, shdr.sh_offset); - Write32(f, shdr.sh_size); - Write32(f, shdr.sh_link); - Write32(f, shdr.sh_info); - Write32(f, shdr.sh_addralign); - Write32(f, shdr.sh_entsize); -} - -ELF32Loader::ELF32Loader(vfsStream& f) - : elf32_f(f) - , LoaderBase() -{ -} - -bool ELF32Loader::LoadInfo() -{ - if(!elf32_f.IsOpened()) return false; - - if(!LoadEhdrInfo()) return false; - if(!LoadPhdrInfo()) return false; - if(!LoadShdrInfo()) return false; - - return true; -} - -bool ELF32Loader::LoadData(u64 offset) -{ - if(!elf32_f.IsOpened()) return false; - - if(!LoadEhdrData(offset)) return false; - if(!LoadPhdrData(offset)) return false; - if(!LoadShdrData(offset)) return false; - - return true; -} - -bool ELF32Loader::Close() -{ - return elf32_f.Close(); -} - -bool ELF32Loader::LoadEhdrInfo() -{ - elf32_f.Seek(0); - ehdr.Load(elf32_f); - - if(!ehdr.CheckMagic()) return false; - - if(ehdr.IsLittleEndian()) - LOG_WARNING(LOADER, "ELF32 LE"); - - switch(ehdr.e_machine) - { - case MACHINE_MIPS: - case MACHINE_PPC64: - case MACHINE_SPU: - case MACHINE_ARM: - machine = (Elf_Machine)ehdr.e_machine; - break; - - default: - machine = MACHINE_Unknown; - LOG_ERROR(LOADER, "Unknown elf32 machine: 0x%x", ehdr.e_machine); - return false; - } - - entry = ehdr.GetEntry(); - if(entry == 0) - { - LOG_ERROR(LOADER, "elf32 error: entry is null!"); - return false; - } - - return true; -} - -bool ELF32Loader::LoadPhdrInfo() -{ - if(ehdr.e_phoff == 0 && ehdr.e_phnum) - { - LOG_ERROR(LOADER, "LoadPhdr32 error: Program header offset is null!"); - return false; - } - - elf32_f.Seek(ehdr.e_phoff); - for(uint i=0; i= entry && entry < phdr_arr[i].p_paddr + phdr_arr[i].p_memsz) + error_code res = handler::init(stream); + + if (res != ok) + return res; + + m_stream->Read(&m_ehdr, sizeof(ehdr)); + + if (!m_ehdr.check()) { - entry += phdr_arr[i].p_vaddr; - LOG_WARNING(LOADER, "virtual entry = 0x%x", entry); - break; - } - } - } - - return true; -} - -bool ELF32Loader::LoadShdrInfo() -{ - elf32_f.Seek(ehdr.e_shoff); - for(u32 i=0; i= shdr_arr.size()) - { - LOG_WARNING(LOADER, "LoadShdr32 error: shstrndx too big!"); - return true; - } - - for(u32 i=0; i max_addr) + if (m_ehdr.data_le.e_phnum && (m_ehdr.is_le() ? m_ehdr.data_le.e_phentsize : m_ehdr.data_be.e_phentsize) != sizeof(phdr)) { - max_addr = phdr_arr[i].p_vaddr + phdr_arr[i].p_memsz; + return broken_file; } - if(phdr_arr[i].p_vaddr != phdr_arr[i].p_paddr) + if (m_ehdr.data_le.e_shnum && (m_ehdr.is_le() ? m_ehdr.data_le.e_shentsize : m_ehdr.data_be.e_shentsize) != sizeof(shdr)) { - LOG_WARNING - ( - LOADER, - "LoadPhdr32 different load addrs: paddr=0x%8.8x, vaddr=0x%8.8x", - phdr_arr[i].p_paddr, phdr_arr[i].p_vaddr - ); + return broken_file; } - switch(machine) + LOG_WARNING(LOADER, "m_ehdr.e_type = 0x%x", (u16)(m_ehdr.is_le() ? m_ehdr.data_le.e_type : m_ehdr.data_be.e_type)); + + if (m_ehdr.data_le.e_phnum) { - case MACHINE_SPU: break; - case MACHINE_MIPS: Memory.PSP.RAM.AllocFixed(phdr_arr[i].p_vaddr + offset, phdr_arr[i].p_memsz); break; - case MACHINE_ARM: Memory.PSV.RAM.AllocFixed(phdr_arr[i].p_vaddr + offset, phdr_arr[i].p_memsz); break; - - default: - continue; - } - - elf32_f.Seek(phdr_arr[i].p_offset); - elf32_f.Read(vm::get_ptr(phdr_arr[i].p_vaddr + offset), phdr_arr[i].p_filesz); - } - else if(phdr_arr[i].p_type == 0x00000004) - { - elf32_f.Seek(phdr_arr[i].p_offset); - Elf32_Note note; - if(ehdr.IsLittleEndian()) note.LoadLE(elf32_f); - else note.Load(elf32_f); - - if(note.type != 1) - { - LOG_ERROR(LOADER, "ELF32: Bad NOTE type (%d)", note.type); - break; - } - - if(note.namesz != sizeof(note.name)) - { - LOG_ERROR(LOADER, "ELF32: Bad NOTE namesz (%d)", note.namesz); - break; - } - - if(note.descsz != sizeof(note.desc) && note.descsz != 32) - { - LOG_ERROR(LOADER, "ELF32: Bad NOTE descsz (%d)", note.descsz); - break; - } - - //if(note.desc.flags) - //{ - // LOG_ERROR(LOADER, "ELF32: Bad NOTE flags (0x%x)", note.desc.flags); - // break; - //} - - if(note.descsz == sizeof(note.desc)) - { - LOG_WARNING(LOADER, "name = %s", std::string((const char *)note.name, 8).c_str()); - LOG_WARNING(LOADER, "ls_size = %d", note.desc.ls_size); - LOG_WARNING(LOADER, "stack_size = %d", note.desc.stack_size); + m_phdrs.resize(m_ehdr.is_le() ? m_ehdr.data_le.e_phnum : m_ehdr.data_be.e_phnum); + m_stream->Seek(handler::get_stream_offset() + (m_ehdr.is_le() ? m_ehdr.data_le.e_phoff : m_ehdr.data_be.e_phoff)); + size_t size = (m_ehdr.is_le() ? m_ehdr.data_le.e_phnum : m_ehdr.data_be.e_phnum) * sizeof(phdr); + if (m_stream->Read(m_phdrs.data(), size) != size) + return broken_file; } else + m_phdrs.clear(); + + if (m_ehdr.data_le.e_shnum) { - LOG_WARNING(LOADER, "desc = '%s'", std::string(note.desc_text, 32).c_str()); + m_phdrs.resize(m_ehdr.is_le() ? m_ehdr.data_le.e_shnum : m_ehdr.data_be.e_shnum); + m_stream->Seek(handler::get_stream_offset() + (m_ehdr.is_le() ? m_ehdr.data_le.e_shoff : m_ehdr.data_be.e_shoff)); + size_t size = (m_ehdr.is_le() ? m_ehdr.data_le.e_phnum : m_ehdr.data_be.e_phnum) * sizeof(phdr); + + if (m_stream->Read(m_shdrs.data(), size) != size) + return broken_file; } - } -#ifdef LOADER_DEBUG - LOG_NOTICE(LOADER, ""); -#endif - } + else + m_shdrs.clear(); - return true; -} - -bool ELF32Loader::LoadShdrData(u64 offset) -{ - u32 fnid_addr = 0; - - for(u32 i=0; i max_addr) + handler::error_code elf32::load() { - max_addr = shdr.sh_addr + shdr.sh_size; - } - - // probably should be in LoadPhdrData() - if (machine == MACHINE_ARM && !strcmp(shdr_name_arr[i].c_str(), ".sceFNID.rodata")) - { - fnid_addr = shdr.sh_addr; - } - else if (machine == MACHINE_ARM && !strcmp(shdr_name_arr[i].c_str(), ".sceFStub.rodata")) - { - list_known_psv_modules(); - - auto fnid = vm::psv::ptr::make(fnid_addr); - auto fstub = vm::psv::ptr::make(shdr.sh_addr); - - for (u32 j = 0; j < shdr.sh_size / 4; j++) + Elf_Machine machine; + switch (machine = (Elf_Machine)(u16)(m_ehdr.is_le() ? m_ehdr.data_le.e_machine : m_ehdr.data_be.e_machine)) { - u32 nid = fnid[j]; - u32 addr = fstub[j]; + case MACHINE_MIPS: vm::psp::init(); break; + case MACHINE_ARM: vm::psv::init(); break; + case MACHINE_SPU: vm::ps3::init(); break; - if (auto func = get_psv_func_by_nid(nid)) + default: + return bad_version; + } + + error_code res = load_data(0); + + if (res != ok) + return res; + + switch (machine) + { + case MACHINE_MIPS: break; + case MACHINE_ARM: arm7_thread(m_ehdr.is_le() ? m_ehdr.data_le.e_entry : m_ehdr.data_be.e_entry, "main_thread").args({ Emu.GetPath()/*, "-emu"*/ }).run(); break; + case MACHINE_SPU: spu_thread(m_ehdr.is_le() ? m_ehdr.data_le.e_entry : m_ehdr.data_be.e_entry, "main_thread").args({ Emu.GetPath()/*, "-emu"*/ }).run(); break; + } + + return ok; + } + + handler::error_code elf32::load_data(u32 offset) + { + for (auto &phdr : m_phdrs) + { + u32 memsz = m_ehdr.is_le() ? phdr.data_le.p_memsz : phdr.data_be.p_memsz; + u32 filesz = m_ehdr.is_le() ? phdr.data_le.p_filesz : phdr.data_be.p_filesz; + u32 vaddr = offset + (m_ehdr.is_le() ? phdr.data_le.p_vaddr : phdr.data_be.p_vaddr); + u32 offset = m_ehdr.is_le() ? phdr.data_le.p_offset : phdr.data_be.p_offset; + + switch (m_ehdr.is_le() ? phdr.data_le.p_type : phdr.data_be.p_type) { - if (func->module) - func->module->Notice("Imported function %s (nid=0x%08x, addr=0x%x)", func->name, nid, addr); - else - LOG_NOTICE(LOADER, "Imported function %s (nid=0x%08x, addr=0x%x)", func->name, nid, addr); + case 0x00000001: //LOAD + if (phdr.data_le.p_memsz) + { + if (!vm::alloc(vaddr, memsz, vm::main)) + { + LOG_ERROR(LOADER, "%s(): AllocFixed(0x%llx, 0x%x) failed", __FUNCTION__, vaddr, memsz); - // writing Thumb code (temporarily, because it should be ARM) - vm::psv::write16(addr + 0, 0xf870); // HACK (special instruction that calls HLE function) - vm::psv::write16(addr + 2, (u16)get_psv_func_index(func)); - vm::psv::write16(addr + 4, 0x4770); // BX LR - vm::psv::write16(addr + 6, 0); // null - } - else - { - LOG_ERROR(LOADER, "Unimplemented function 0x%08x (addr=0x%x)", nid, addr); + return loading_error; + } - vm::psv::write16(addr + 0, 0xf870); // HACK (special instruction that calls HLE function) - vm::psv::write16(addr + 2, 0x0000); // (zero index) - vm::psv::write16(addr + 4, 0x4770); // BX LR - vm::psv::write16(addr + 6, 0); // null + if (filesz) + { + m_stream->Seek(handler::get_stream_offset() + offset); + m_stream->Read(vm::get_ptr(vaddr), filesz); + } + } + break; } } - } - else if (machine == MACHINE_ARM && !strcmp(shdr_name_arr[i].c_str(), ".sceRefs.rodata")) - { - auto code = vm::psv::ptr::make(shdr.sh_addr); - u32 data = 0; - for (; code.addr() < shdr.sh_addr + shdr.sh_size; code++) - { - switch (*code) - { - case 0x000000ff: - { - // save address for future use - data = *++code; - break; - } - case 0x0000002f: - { - // movw r12,# instruction will be replaced - const u32 addr = *++code; - vm::psv::write16(addr + 0, 0xf240 | (data & 0x800) >> 1 | (data & 0xf000) >> 12); // MOVW - vm::psv::write16(addr + 2, 0x0c00 | (data & 0x700) << 4 | (data & 0xff)); - break; - } - case 0x00000030: - { - // movt r12,# instruction will be replaced - const u32 addr = *++code; - vm::psv::write16(addr + 0, 0xf2c0 | (data & 0x8000000) >> 17 | (data & 0xf0000000) >> 28); // MOVT - vm::psv::write16(addr + 2, 0x0c00 | (data & 0x7000000) >> 12 | (data & 0xff0000) >> 16); - break; - } - case 0x00000000: - { - // probably, no operation - break; - } - default: LOG_NOTICE(LOADER, "sceRefs: unknown code found (0x%08x)", *code); - } - } + return ok; } } - - //TODO - return true; -} +} \ No newline at end of file diff --git a/rpcs3/Loader/ELF32.h b/rpcs3/Loader/ELF32.h index 1d573824d3..dc37dd5f0b 100644 --- a/rpcs3/Loader/ELF32.h +++ b/rpcs3/Loader/ELF32.h @@ -4,135 +4,137 @@ struct vfsStream; class rFile; -struct Elf32_Ehdr +namespace loader { - u32 e_magic; - u8 e_class; - u8 e_data; - u8 e_curver; - u8 e_os_abi; - u64 e_abi_ver; - u16 e_type; - u16 e_machine; - u32 e_version; - u32 e_entry; - u32 e_phoff; - u32 e_shoff; - u32 e_flags; - u16 e_ehsize; - u16 e_phentsize; - u16 e_phnum; - u16 e_shentsize; - u16 e_shnum; - u16 e_shstrndx; - - void Show(); - - bool IsLittleEndian() const + namespace handlers { - return e_data == 1; + class elf32 : public handler + { + public: + struct ehdr + { + u32 e_magic; + u8 e_class; + u8 e_data; + u8 e_curver; + u8 e_os_abi; + + union + { + struct + { + u64 e_abi_ver; + u16 e_type; + u16 e_machine; + u32 e_version; + u16 e_entry; + u32 e_phoff; + u32 e_shoff; + u32 e_flags; + u16 e_ehsize; + u16 e_phentsize; + u16 e_phnum; + u16 e_shentsize; + u16 e_shnum; + u16 e_shstrndx; + } data_le; + + struct + { + be_t e_abi_ver; + be_t e_type; + be_t e_machine; + be_t e_version; + be_t e_entry; + be_t e_phoff; + be_t e_shoff; + be_t e_flags; + be_t e_ehsize; + be_t e_phentsize; + be_t e_phnum; + be_t e_shentsize; + be_t e_shnum; + be_t e_shstrndx; + } data_be; + }; + + bool is_le() const { return e_data == 1; } + bool check() const { return e_magic == 0x7F454C46; } + }; + + struct shdr + { + union + { + struct + { + u32 sh_name; + u32 sh_type; + u32 sh_flags; + u32 sh_addr; + u32 sh_offset; + u32 sh_size; + u32 sh_link; + u32 sh_info; + u32 sh_addralign; + u32 sh_entsize; + } data_le; + + struct + { + be_t sh_name; + be_t sh_type; + be_t sh_flags; + be_t sh_addr; + be_t sh_offset; + be_t sh_size; + be_t sh_link; + be_t sh_info; + be_t sh_addralign; + be_t sh_entsize; + } data_be; + }; + }; + + struct phdr + { + union + { + struct + { + u32 p_type; + u32 p_offset; + u32 p_vaddr; + u32 p_paddr; + u32 p_filesz; + u32 p_memsz; + u32 p_flags; + u32 p_align; + } data_le; + + struct + { + be_t p_type; + be_t p_offset; + be_t p_vaddr; + be_t p_paddr; + be_t p_filesz; + be_t p_memsz; + be_t p_flags; + be_t p_align; + } data_be; + }; + }; + + ehdr m_ehdr; + std::vector m_phdrs; + std::vector m_shdrs; + + error_code init(vfsStream& stream) override; + error_code load() override; + error_code load_data(u32 offset); + + virtual ~elf32() = default; + }; } - - void Load(vfsStream& f); - - bool CheckMagic() const { return e_magic == 0x7F454C46; } - u32 GetEntry() const { return e_entry; } -}; - -struct Elf32_Desc -{ - u32 revision; - u32 ls_size; - u32 stack_size; - u32 flags; - - void Load(vfsStream& f); - - void LoadLE(vfsStream& f); -}; - -struct Elf32_Note -{ - u32 namesz; - u32 descsz; - u32 type; - u8 name[8]; - union - { - Elf32_Desc desc; - char desc_text[32]; - }; - - void Load(vfsStream& f); - - void LoadLE(vfsStream& f); -}; - -struct Elf32_Shdr -{ - u32 sh_name; - u32 sh_type; - u32 sh_flags; - u32 sh_addr; - u32 sh_offset; - u32 sh_size; - u32 sh_link; - u32 sh_info; - u32 sh_addralign; - u32 sh_entsize; - - void Load(vfsStream& f); - - void LoadLE(vfsStream& f); - - void Show(); -}; - -struct Elf32_Phdr -{ - u32 p_type; - u32 p_offset; - u32 p_vaddr; - u32 p_paddr; - u32 p_filesz; - u32 p_memsz; - u32 p_flags; - u32 p_align; - - void Load(vfsStream& f); - - void LoadLE(vfsStream& f); - - void Show(); -}; - -class ELF32Loader : public LoaderBase -{ - vfsStream& elf32_f; - -public: - Elf32_Ehdr ehdr; - std::vector shdr_name_arr; - std::vector shdr_arr; - std::vector phdr_arr; - - ELF32Loader(vfsStream& f); - ~ELF32Loader() {Close();} - - virtual bool LoadInfo(); - virtual bool LoadData(u64 offset); - virtual bool Close(); - -private: - bool LoadEhdrInfo(); - bool LoadPhdrInfo(); - bool LoadShdrInfo(); - - bool LoadEhdrData(u64 offset); - bool LoadPhdrData(u64 offset); - bool LoadShdrData(u64 offset); -}; - -void WriteEhdr(rFile& f, Elf32_Ehdr& ehdr); -void WritePhdr(rFile& f, Elf32_Phdr& phdr); -void WriteShdr(rFile& f, Elf32_Shdr& shdr); +} diff --git a/rpcs3/Loader/ELF64.cpp b/rpcs3/Loader/ELF64.cpp index 119a4913b9..3eb33b8bc2 100644 --- a/rpcs3/Loader/ELF64.cpp +++ b/rpcs3/Loader/ELF64.cpp @@ -2,555 +2,492 @@ #include "Utilities/Log.h" #include "Utilities/rFile.h" #include "Emu/FS/vfsStream.h" +#include "Emu/FS/vfsFile.h" #include "Emu/Memory/Memory.h" #include "Emu/System.h" #include "Emu/SysCalls/SysCalls.h" #include "Emu/SysCalls/Static.h" -#include "Emu/Cell/PPUInstrTable.h" #include "Emu/SysCalls/ModuleManager.h" +#include "Emu/SysCalls/lv2/sys_prx.h" +#include "Emu/Cell/PPUInstrTable.h" +#include "Emu/CPU/CPUThreadManager.h" #include "ELF64.h" using namespace PPU_instr; -void Elf64_Ehdr::Load(vfsStream& f) +namespace loader { - e_magic = Read32(f); - e_class = Read8(f); - e_data = Read8(f); - e_curver = Read8(f); - e_os_abi = Read8(f); - e_abi_ver = Read64(f); - e_type = Read16(f); - e_machine = Read16(f); - e_version = Read32(f); - e_entry = Read64(f); - e_phoff = Read64(f); - e_shoff = Read64(f); - e_flags = Read32(f); - e_ehsize = Read16(f); - e_phentsize = Read16(f); - e_phnum = Read16(f); - e_shentsize = Read16(f); - e_shnum = Read16(f); - e_shstrndx = Read16(f); -} - -void Elf64_Ehdr::Show() -{ -#ifdef LOADER_DEBUG - LOG_NOTICE(LOADER, "Magic: %08x", e_magic); - LOG_NOTICE(LOADER, "Class: %s", "ELF64"); - LOG_NOTICE(LOADER, "Data: %s", Ehdr_DataToString(e_data).c_str()); - LOG_NOTICE(LOADER, "Current Version: %d", e_curver); - LOG_NOTICE(LOADER, "OS/ABI: %s", Ehdr_OS_ABIToString(e_os_abi).c_str()); - LOG_NOTICE(LOADER, "ABI version: %lld", e_abi_ver); - LOG_NOTICE(LOADER, "Type: %s", Ehdr_TypeToString(e_type).c_str()); - LOG_NOTICE(LOADER, "Machine: %s", Ehdr_MachineToString(e_machine).c_str()); - LOG_NOTICE(LOADER, "Version: %d", e_version); - LOG_NOTICE(LOADER, "Entry point address: 0x%08llx", e_entry); - LOG_NOTICE(LOADER, "Program headers offset: 0x%08llx", e_phoff); - LOG_NOTICE(LOADER, "Section headers offset: 0x%08llx", e_shoff); - LOG_NOTICE(LOADER, "Flags: 0x%x", e_flags); - LOG_NOTICE(LOADER, "Size of this header: %d", e_ehsize); - LOG_NOTICE(LOADER, "Size of program headers: %d", e_phentsize); - LOG_NOTICE(LOADER, "Number of program headers: %d", e_phnum); - LOG_NOTICE(LOADER, "Size of section headers: %d", e_shentsize); - LOG_NOTICE(LOADER, "Number of section headers: %d", e_shnum); - LOG_NOTICE(LOADER, "Section header string table index: %d", e_shstrndx); -#endif -} - -void Elf64_Shdr::Load(vfsStream& f) -{ - sh_name = Read32(f); - sh_type = Read32(f); - sh_flags = Read64(f); - sh_addr = Read64(f); - sh_offset = Read64(f); - sh_size = Read64(f); - sh_link = Read32(f); - sh_info = Read32(f); - sh_addralign = Read64(f); - sh_entsize = Read64(f); -} - -void Elf64_Shdr::Show() -{ -#ifdef LOADER_DEBUG - LOG_NOTICE(LOADER, "Name offset: 0x%x", sh_name); - LOG_NOTICE(LOADER, "Type: %d", sh_type); - LOG_NOTICE(LOADER, "Addr: 0x%llx", sh_addr); - LOG_NOTICE(LOADER, "Offset: 0x%llx", sh_offset); - LOG_NOTICE(LOADER, "Size: 0x%llx", sh_size); - LOG_NOTICE(LOADER, "EntSize: %lld", sh_entsize); - LOG_NOTICE(LOADER, "Flags: 0x%llx", sh_flags); - LOG_NOTICE(LOADER, "Link: 0x%x", sh_link); - LOG_NOTICE(LOADER, "Info: 0x%x", sh_info); - LOG_NOTICE(LOADER, "Address align: 0x%llx", sh_addralign); -#endif -} - -void Elf64_Phdr::Load(vfsStream& f) -{ - p_type = Read32(f); - p_flags = Read32(f); - p_offset = Read64(f); - p_vaddr = Read64(f); - p_paddr = Read64(f); - p_filesz = Read64(f); - p_memsz = Read64(f); - p_align = Read64(f); -} - -void Elf64_Phdr::Show() -{ -#ifdef LOADER_DEBUG - LOG_NOTICE(LOADER, "Type: %s", Phdr_TypeToString(p_type).c_str()); - LOG_NOTICE(LOADER, "Offset: 0x%08llx", p_offset); - LOG_NOTICE(LOADER, "Virtual address: 0x%08llx", p_vaddr); - LOG_NOTICE(LOADER, "Physical address: 0x%08llx", p_paddr); - LOG_NOTICE(LOADER, "File size: 0x%08llx", p_filesz); - LOG_NOTICE(LOADER, "Memory size: 0x%08llx", p_memsz); - LOG_NOTICE(LOADER, "Flags: %s", Phdr_FlagsToString(p_flags).c_str()); - LOG_NOTICE(LOADER, "Align: 0x%llx", p_align); -#endif -} - -void WriteEhdr(rFile& f, Elf64_Ehdr& ehdr) -{ - Write32(f, ehdr.e_magic); - Write8(f, ehdr.e_class); - Write8(f, ehdr.e_data); - Write8(f, ehdr.e_curver); - Write8(f, ehdr.e_os_abi); - Write64(f, ehdr.e_abi_ver); - Write16(f, ehdr.e_type); - Write16(f, ehdr.e_machine); - Write32(f, ehdr.e_version); - Write64(f, ehdr.e_entry); - Write64(f, ehdr.e_phoff); - Write64(f, ehdr.e_shoff); - Write32(f, ehdr.e_flags); - Write16(f, ehdr.e_ehsize); - Write16(f, ehdr.e_phentsize); - Write16(f, ehdr.e_phnum); - Write16(f, ehdr.e_shentsize); - Write16(f, ehdr.e_shnum); - Write16(f, ehdr.e_shstrndx); -} - -void WritePhdr(rFile& f, Elf64_Phdr& phdr) -{ - Write32(f, phdr.p_type); - Write32(f, phdr.p_flags); - Write64(f, phdr.p_offset); - Write64(f, phdr.p_vaddr); - Write64(f, phdr.p_paddr); - Write64(f, phdr.p_filesz); - Write64(f, phdr.p_memsz); - Write64(f, phdr.p_align); -} - -void WriteShdr(rFile& f, Elf64_Shdr& shdr) -{ - Write32(f, shdr.sh_name); - Write32(f, shdr.sh_type); - Write64(f, shdr.sh_flags); - Write64(f, shdr.sh_addr); - Write64(f, shdr.sh_offset); - Write64(f, shdr.sh_size); - Write32(f, shdr.sh_link); - Write32(f, shdr.sh_info); - Write64(f, shdr.sh_addralign); - Write64(f, shdr.sh_entsize); -} - -ELF64Loader::ELF64Loader(vfsStream& f) - : elf64_f(f) - , LoaderBase() -{ - int a = 0; -} - -bool ELF64Loader::LoadInfo() -{ - if(!elf64_f.IsOpened()) return false; - - if(!LoadEhdrInfo()) return false; - if(!LoadPhdrInfo()) return false; - if(!LoadShdrInfo()) return false; - - return true; -} - -bool ELF64Loader::LoadData(u64 offset) -{ - if(!elf64_f.IsOpened()) return false; - - if(!LoadEhdrData(offset)) return false; - if(!LoadPhdrData(offset)) return false; - if(!LoadShdrData(offset)) return false; - - return true; -} - -bool ELF64Loader::Close() -{ - return elf64_f.Close(); -} - -bool ELF64Loader::LoadEhdrInfo(s64 offset) -{ - elf64_f.Seek(offset < 0 ? 0 : offset); - ehdr.Load(elf64_f); - - if(!ehdr.CheckMagic()) return false; - - if(ehdr.e_phentsize != sizeof(Elf64_Phdr)) + namespace handlers { - LOG_ERROR(LOADER, "elf64 error: e_phentsize[0x%x] != sizeof(Elf64_Phdr)[0x%x]", ehdr.e_phentsize, sizeof(Elf64_Phdr)); - return false; - } - - if(ehdr.e_shentsize != sizeof(Elf64_Shdr)) - { - LOG_ERROR(LOADER, "elf64 error: e_shentsize[0x%x] != sizeof(Elf64_Shdr)[0x%x]", ehdr.e_shentsize, sizeof(Elf64_Shdr)); - return false; - } - - switch(ehdr.e_machine) - { - case MACHINE_PPC64: - case MACHINE_SPU: - machine = (Elf_Machine)ehdr.e_machine; - break; - - default: - machine = MACHINE_Unknown; - LOG_ERROR(LOADER, "Unknown elf64 type: 0x%x", ehdr.e_machine); - return false; - } - - entry = (u32)ehdr.GetEntry(); - if(entry == 0) - { - LOG_ERROR(LOADER, "elf64 error: entry is null!"); - return false; - } - - return true; -} - -bool ELF64Loader::LoadPhdrInfo(s64 offset) -{ - phdr_arr.clear(); - - if(ehdr.e_phoff == 0 && ehdr.e_phnum) - { - LOG_ERROR(LOADER, "LoadPhdr64 error: Program header offset is null!"); - return false; - } - - elf64_f.Seek(offset < 0 ? ehdr.e_phoff : offset); - - for(u32 i=0; i= shdr_arr.size()) - { - LOG_WARNING(LOADER, "LoadShdr64 error: shstrndx too big!"); - return true; - } - - for(u32 i=0; iRead(&m_ehdr, sizeof(ehdr)); -bool ELF64Loader::LoadPhdrData(u64 offset) -{ - for(auto& phdr: phdr_arr) - { - phdr.Show(); - - if (phdr.p_vaddr < min_addr) - { - min_addr = (u32)phdr.p_vaddr; - } - - if (phdr.p_vaddr + phdr.p_memsz > max_addr) - { - max_addr = (u32)(phdr.p_vaddr + phdr.p_memsz); - } - - if (phdr.p_vaddr != phdr.p_paddr) - { - LOG_WARNING(LOADER, "ElfProgram different load addrs: paddr=0x%8.8x, vaddr=0x%8.8x", - phdr.p_paddr, phdr.p_vaddr); - } - - if(!Memory.MainMem.IsInMyRange(offset + phdr.p_vaddr, (u32)phdr.p_memsz)) - { -#ifdef LOADER_DEBUG - LOG_WARNING(LOADER, "Skipping..."); - LOG_WARNING(LOADER, ""); -#endif - continue; - } - - switch(phdr.p_type) - { - case 0x00000001: //LOAD - if(phdr.p_memsz) - { - if (!Memory.MainMem.AllocFixed(offset + phdr.p_vaddr, (u32)phdr.p_memsz)) - { - LOG_ERROR(LOADER, "%s(): AllocFixed(0x%llx, 0x%x) failed", __FUNCTION__, offset + phdr.p_vaddr, (u32)phdr.p_memsz); - } - else if (phdr.p_filesz) - { - elf64_f.Seek(phdr.p_offset); - elf64_f.Read(vm::get_ptr(offset + phdr.p_vaddr), phdr.p_filesz); - Emu.GetSFuncManager().StaticAnalyse(vm::get_ptr(offset + phdr.p_vaddr), (u32)phdr.p_filesz, (u32)phdr.p_vaddr); - } - } - break; - - case 0x00000007: //TLS - Emu.SetTLSData(offset + phdr.p_vaddr, phdr.p_filesz, phdr.p_memsz); - break; - - case 0x60000001: //LOOS+1 + if (!m_ehdr.check()) { - if(!phdr.p_filesz) + return bad_file; + } + + if (m_ehdr.e_phnum && m_ehdr.e_phentsize != sizeof(phdr)) + { + return broken_file; + } + + if (m_ehdr.e_shnum && m_ehdr.e_shentsize != sizeof(shdr)) + { + return broken_file; + } + + LOG_WARNING(LOADER, "m_ehdr.e_type = 0x%x", m_ehdr.e_type.ToLE()); + + if (m_ehdr.e_machine != MACHINE_PPC64 && m_ehdr.e_machine != MACHINE_SPU) + { + LOG_ERROR(LOADER, "Unknown elf64 machine type: 0x%x", m_ehdr.e_machine.ToLE()); + return bad_version; + } + + if (m_ehdr.e_phnum) + { + m_phdrs.resize(m_ehdr.e_phnum); + m_stream->Seek(handler::get_stream_offset() + m_ehdr.e_phoff); + if (m_stream->Read(m_phdrs.data(), m_ehdr.e_phnum * sizeof(phdr)) != m_ehdr.e_phnum * sizeof(phdr)) + return broken_file; + } + else + m_phdrs.clear(); + + if (m_ehdr.e_shnum) + { + m_shdrs.resize(m_ehdr.e_shnum); + m_stream->Seek(handler::get_stream_offset() + m_ehdr.e_shoff); + if (m_stream->Read(m_shdrs.data(), m_ehdr.e_shnum * sizeof(shdr)) != m_ehdr.e_shnum * sizeof(shdr)) + return broken_file; + } + else + m_shdrs.clear(); + + if (is_sprx()) + { + LOG_NOTICE(LOADER, "SPRX loading..."); + + m_stream->Seek(handler::get_stream_offset() + m_phdrs[0].p_paddr.addr()); + m_stream->Read(&m_sprx_module_info, sizeof(sprx_module_info)); + + //m_stream->Seek(handler::get_stream_offset() + m_phdrs[1].p_vaddr.addr()); + //m_stream->Read(&m_sprx_function_info, sizeof(sprx_function_info)); + } + else + { + m_sprx_import_info.clear(); + m_sprx_export_info.clear(); + } + + return ok; + } + + handler::error_code elf64::load_sprx(sprx_info& info) + { + for (auto &phdr : m_phdrs) + { + switch (phdr.p_type.ToLE()) + { + case 0x1: //load + if (phdr.p_memsz) + { + sprx_segment_info segment; + segment.size = phdr.p_memsz; + segment.size_file = phdr.p_filesz; + + segment.begin.set(vm::alloc(segment.size, vm::sprx)); + + if (!segment.begin) + { + LOG_ERROR(LOADER, "%s() sprx: AllocFixed(0x%llx, 0x%x) failed", __FUNCTION__, phdr.p_vaddr.addr(), (u32)phdr.p_memsz); + + return loading_error; + } + + segment.initial_addr.set(phdr.p_vaddr.addr()); + LOG_ERROR(LOADER, "segment addr=0x%x, initial addr = 0x%x", segment.begin.addr(), segment.initial_addr.addr()); + + if (phdr.p_filesz) + { + m_stream->Seek(handler::get_stream_offset() + phdr.p_offset); + m_stream->Read(segment.begin.get_ptr(), phdr.p_filesz); + } + + if (phdr.p_paddr) + { + sys_prx_module_info_t module_info; + m_stream->Seek(handler::get_stream_offset() + phdr.p_paddr.addr()); + m_stream->Read(&module_info, sizeof(module_info)); + LOG_ERROR(LOADER, "%s (%x):", module_info.name, (u32)module_info.toc); + + int import_count = (module_info.imports_end - module_info.imports_start) / sizeof(sys_prx_library_info_t); + + if (import_count) + { + LOG_ERROR(LOADER, "**** Lib '%s'has %d imports!", module_info.name, import_count); + break; + } + + sys_prx_library_info_t lib; + for (u32 e = module_info.exports_start.addr(); + e < module_info.exports_end.addr(); + e += lib.size ? lib.size : sizeof(sys_prx_library_info_t)) + { + m_stream->Seek(handler::get_stream_offset() + phdr.p_offset + e); + m_stream->Read(&lib, sizeof(lib)); + + std::string modulename; + if (lib.name_addr) + { + char name[27]; + m_stream->Seek(handler::get_stream_offset() + phdr.p_offset + lib.name_addr); + modulename = std::string(name, m_stream->Read(name, sizeof(name))); + LOG_ERROR(LOADER, "**** %s", name); + } + + //ModuleManager& manager = Emu.GetModuleManager(); + //Module* module = manager.GetModuleByName(modulename); + + LOG_ERROR(LOADER, "**** 0x%x - 0x%x - 0x%x", (u32)lib.unk4, (u32)lib.unk5, (u32)lib.unk6); + + for (u16 i = 0, end = lib.num_func; i < end; ++i) + { + be_t fnid, fstub; + m_stream->Seek(handler::get_stream_offset() + phdr.p_offset + lib.fnid_addr + i * sizeof(fnid)); + m_stream->Read(&fnid, sizeof(fnid)); + + m_stream->Seek(handler::get_stream_offset() + phdr.p_offset + lib.fstub_addr + i * sizeof(fstub)); + m_stream->Read(&fstub, sizeof(fstub)); + + info.exports[fnid] = fstub; + + //LOG_NOTICE(LOADER, "Exported function '%s' in '%s' module (LLE)", SysCalls::GetHLEFuncName(fnid).c_str(), module_name.c_str()); + LOG_ERROR(LOADER, "**** %s: [%s] -> 0x%x", modulename.c_str(), SysCalls::GetHLEFuncName(fnid).c_str(), (u32)fstub); + } + } + + for (u32 i = module_info.imports_start; + i < module_info.imports_end; + i += lib.size ? lib.size : sizeof(sys_prx_library_info_t)) + { + m_stream->Seek(handler::get_stream_offset() + phdr.p_offset + i); + m_stream->Read(&lib, sizeof(lib)); + } + } + + info.segments.push_back(segment); + } + break; - const sys_process_param& proc_param = vm::get_ref(offset + phdr.p_vaddr); + case 0x700000a4: //relocation + m_stream->Seek(handler::get_stream_offset() + phdr.p_offset); - if (proc_param.size < sizeof(sys_process_param)) - { - LOG_WARNING(LOADER, "Bad proc param size! [0x%x : 0x%x]", proc_param.size, sizeof(sys_process_param)); - } - if (proc_param.magic != 0x13bcc5f6) - { - LOG_ERROR(LOADER, "Bad magic! [0x%x]", proc_param.magic); - } - else - { -#ifdef LOADER_DEBUG - sys_process_param_info& info = Emu.GetInfo().GetProcParam(); - LOG_NOTICE(LOADER, "*** sdk version: 0x%x", info.sdk_version.ToLE()); - LOG_NOTICE(LOADER, "*** primary prio: %d", info.primary_prio.ToLE()); - LOG_NOTICE(LOADER, "*** primary stacksize: 0x%x", info.primary_stacksize.ToLE()); - LOG_NOTICE(LOADER, "*** malloc pagesize: 0x%x", info.malloc_pagesize.ToLE()); - LOG_NOTICE(LOADER, "*** ppc seg: 0x%x", info.ppc_seg.ToLE()); - //LOG_NOTICE(LOADER, "*** crash dump param addr: 0x%x", info.crash_dump_param_addr.ToLE()); -#endif + for (uint i = 0; i < phdr.p_filesz; i += sizeof(sys_prx_relocation_info_t)) + { + sys_prx_relocation_info_t rel; + m_stream->Read(&rel, sizeof(rel)); + + u32 ADDR = info.segments[rel.index_addr].begin.addr() + rel.offset; + + switch ((u32)rel.type) + { + case 1: + LOG_ERROR(LOADER, "**** RELOCATION(1): 0x%x <- 0x%x", ADDR, (u32)(info.segments[rel.index_value].begin.addr() + rel.ptr.addr())); + *vm::ptr::make(ADDR) = info.segments[rel.index_value].begin.addr() + rel.ptr.addr(); + break; + + case 4: + LOG_ERROR(LOADER, "**** RELOCATION(4): 0x%x <- 0x%x", ADDR, (u16)(rel.ptr.addr())); + *vm::ptr::make(ADDR) = (u16)(u64)rel.ptr.addr(); + break; + + case 5: + LOG_ERROR(LOADER, "**** RELOCATION(5): 0x%x <- 0x%x", ADDR, (u16)(info.segments[rel.index_value].begin.addr() >> 16)); + *vm::ptr::make(ADDR) = info.segments[rel.index_value].begin.addr() >> 16; + break; + + case 6: + LOG_ERROR(LOADER, "**** RELOCATION(6): 0x%x <- 0x%x", ADDR, (u16)(info.segments[1].begin.addr() >> 16)); + *vm::ptr::make(ADDR) = info.segments[1].begin.addr() >> 16; + break; + + default: + LOG_ERROR(LOADER, "unknown prx relocation type (0x%x)", (u32)rel.type); + return bad_relocation_type; + } + } + + break; } } - break; - case 0x60000002: //LOOS+2 + for (auto &e : info.exports) { - if(!phdr.p_filesz) - break; + u32 stub = e.second; - const sys_proc_prx_param& proc_prx_param = vm::get_ref(offset + phdr.p_vaddr); - - -#ifdef LOADER_DEBUG - LOG_NOTICE(LOADER, "*** size: 0x%x", proc_prx_param.size.ToLE()); - LOG_NOTICE(LOADER, "*** magic: 0x%x", proc_prx_param.magic.ToLE()); - LOG_NOTICE(LOADER, "*** version: 0x%x", proc_prx_param.version.ToLE()); - LOG_NOTICE(LOADER, "*** libentstart: 0x%x", proc_prx_param.libentstart.ToLE()); - LOG_NOTICE(LOADER, "*** libentend: 0x%x", proc_prx_param.libentend.ToLE()); - LOG_NOTICE(LOADER, "*** libstubstart: 0x%x", proc_prx_param.libstubstart.ToLE()); - LOG_NOTICE(LOADER, "*** libstubend: 0x%x", proc_prx_param.libstubend.ToLE()); - LOG_NOTICE(LOADER, "*** ver: 0x%x", proc_prx_param.ver.ToLE()); -#endif - - if (proc_prx_param.magic != 0x1b434cec) + for (auto &s : info.segments) { - LOG_ERROR(LOADER, "Bad magic! (0x%x)", proc_prx_param.magic.ToLE()); - break; + if (stub >= s.initial_addr.addr() && stub < s.initial_addr.addr() + s.size_file) + { + stub += s.begin.addr() - s.initial_addr.addr(); + break; + } } - for (u32 s = proc_prx_param.libstubstart; s < proc_prx_param.libstubend; s += sizeof(Elf64_StubHeader)) - { - const Elf64_StubHeader& stub = vm::get_ref(offset + s); - - const std::string module_name = vm::get_ptr(stub.s_modulename); - Module* module = Emu.GetModuleManager().GetModuleByName(module_name); - if (module) - { - //module->SetLoaded(); - } - else - { - LOG_WARNING(LOADER, "Unknown module '%s'", module_name.c_str()); - } - -#ifdef LOADER_DEBUG - LOG_NOTICE(LOADER, ""); - LOG_NOTICE(LOADER, "*** size: 0x%x", stub.s_size); - LOG_NOTICE(LOADER, "*** version: 0x%x", stub.s_version.ToLE()); - LOG_NOTICE(LOADER, "*** unk0: 0x%x", stub.s_unk0); - LOG_NOTICE(LOADER, "*** unk1: 0x%x", stub.s_unk1.ToLE()); - LOG_NOTICE(LOADER, "*** imports: %d", stub.s_imports.ToLE()); - LOG_NOTICE(LOADER, "*** module name: %s [0x%x]", module_name.c_str(), stub.s_modulename.ToLE()); - LOG_NOTICE(LOADER, "*** nid: 0x%016llx [0x%x]", vm::read64(stub.s_nid), stub.s_nid.ToLE()); - LOG_NOTICE(LOADER, "*** text: 0x%x", stub.s_text.ToLE()); -#endif - static const u32 section = 4 * 3; - u64 tbl = Memory.MainMem.AllocAlign(stub.s_imports * 4 * 2); - u64 dst = Memory.MainMem.AllocAlign(stub.s_imports * section); - - for (u32 i = 0; i < stub.s_imports; ++i) - { - const u32 nid = vm::read32(stub.s_nid + i * 4); - const u32 text = vm::read32(stub.s_text + i * 4); - - if (!module || !module->Load(nid)) - { - LOG_WARNING(LOADER, "Unimplemented function '%s' in '%s' module", SysCalls::GetHLEFuncName(nid).c_str(), module_name.c_str()); - } - else //if (Ini.HLELogging.GetValue()) - { - LOG_NOTICE(LOADER, "Imported function '%s' in '%s' module", SysCalls::GetHLEFuncName(nid).c_str(), module_name.c_str()); - } -#ifdef LOADER_DEBUG - LOG_NOTICE(LOADER, "import %d:", i+1); - LOG_NOTICE(LOADER, "*** nid: 0x%x (0x%x)", nid, stub.s_nid + i*4); - LOG_NOTICE(LOADER, "*** text: 0x%x (0x%x)", text, stub.s_text + i*4); -#endif - vm::write32(stub.s_text + i*4, (u32)tbl + i*8); - - auto out_tbl = vm::ptr::make((u32)tbl + i * 8); - out_tbl[0] = (u32)dst + i*section; - out_tbl[1] = Emu.GetModuleManager().GetFuncNumById(nid); - - auto out_dst = vm::ptr::make((u32)dst + i * section); - out_dst[0] = OR(11, 2, 2, 0); - out_dst[1] = SC(2); - out_dst[2] = BLR(); - } - } -#ifdef LOADER_DEBUG - LOG_NOTICE(LOADER, ""); -#endif + e.second = stub; } - break; - } -#ifdef LOADER_DEBUG - LOG_NOTICE(LOADER, ""); -#endif - } - return true; -} - -bool ELF64Loader::LoadShdrData(u64 offset) -{ - u64 max_addr = 0; - - for(uint i=0; i max_addr) max_addr = shdr.sh_addr + shdr.sh_size; - - if((shdr.sh_flags & SHF_ALLOC) != SHF_ALLOC) continue; - - const u64 addr = shdr.sh_addr; - const u64 size = shdr.sh_size; - - if(size == 0 || !Memory.IsGoodAddr(offset + addr, (u32)size)) continue; - - if(shdr.sh_addr && shdr.sh_addr < min_addr) + handler::error_code elf64::load() { - min_addr = (u32)shdr.sh_addr; + if (is_sprx()) + { + sprx_info info; + return load_sprx(info); + } + + Emu.m_sdk_version = -1; + + //store elf to memory + vm::ps3::init(); + + std::vector start_funcs; + std::vector stop_funcs; + + //load modules + static const char* lle_modules[] = { "lv2", "sre", "l10n", "gcm_sys", "fs" }; + //TODO: for (auto &module : lle_modules) + char* module; if (0) + { + elf64 sprx_handler; + vfsFile fsprx(std::string("/dev_flash/sys/external/lib") + module + ".sprx"); + + if (fsprx.IsOpened()) + { + sprx_handler.init(fsprx); + + if (sprx_handler.is_sprx()) + { + sprx_info info; + sprx_handler.load_sprx(info); + + std::unordered_map::iterator f; + + if ((f = info.exports.find(0xbc9a0086)) != info.exports.end()) + start_funcs.push_back(f->second); + + if ((f = info.exports.find(0xab779874)) != info.exports.end()) + stop_funcs.push_back(f->second); + + for (auto &e : info.exports) + { + if (e.first != 0xbc9a0086 && e.first != 0xab779874) + Emu.GetModuleManager().register_function(e.first, e.second); + } + } + } + } + + error_code res = load_data(0); + if (res != ok) + return res; + + //initialize process + auto rsx_callback_data = vm::ptr::make(Memory.MainMem.AllocAlign(4 * 4)); + *rsx_callback_data++ = (rsx_callback_data + 1).addr(); + Emu.SetRSXCallback(rsx_callback_data.addr()); + + rsx_callback_data[0] = ADDI(r11, 0, 0x3ff); + rsx_callback_data[1] = SC(2); + rsx_callback_data[2] = BLR(); + + auto ppu_thr_exit_data = vm::ptr::make(Memory.MainMem.AllocAlign(3 * 4)); + ppu_thr_exit_data[0] = ADDI(r11, 0, 41); + ppu_thr_exit_data[1] = SC(2); + ppu_thr_exit_data[2] = BLR(); + Emu.SetPPUThreadExit(ppu_thr_exit_data.addr()); + + auto ppu_thr_stop_data = vm::ptr::make(Memory.MainMem.AllocAlign(2 * 4)); + ppu_thr_stop_data[0] = SC(4); + ppu_thr_stop_data[1] = BLR(); + Emu.SetPPUThreadStop(ppu_thr_stop_data.addr()); + + vm::write64(Memory.PRXMem.AllocAlign(0x10000), 0xDEADBEEFABADCAFE); + /* + //TODO + static const int branch_size = 6 * 4; + auto make_branch = [](vm::ptr& ptr, u32 addr) + { + u32 stub = vm::read32(addr); + u32 rtoc = vm::read32(addr + 4); + + *ptr++ = implicts::LI(r0, stub >> 16); + *ptr++ = ORIS(r0, r0, stub & 0xffff); + *ptr++ = implicts::LI(r2, rtoc >> 16); + *ptr++ = ORIS(r2, r2, rtoc & 0xffff); + *ptr++ = MTCTR(r0); + *ptr++ = BCTRL(); + }; + + auto entry = vm::ptr::make(vm::alloc(branch_size * (start_funcs.size() + 1), vm::main)); + + auto OPD = vm::ptr::make(vm::alloc(2 * 4)); + OPD[0] = entry.addr(); + OPD[1] = 0; + + for (auto &f : start_funcs) + { + make_branch(entry, f); + } + + make_branch(entry, m_ehdr.e_entry); + */ + + ppu_thread main_thread(m_ehdr.e_entry, "main_thread"); + + main_thread.args({ Emu.GetPath()/*, "-emu"*/ }).run(); + main_thread.gpr(11, m_ehdr.e_entry).gpr(12, Emu.GetMallocPageSize()); + + return ok; } - if(shdr.sh_addr + shdr.sh_size > max_addr) + handler::error_code elf64::load_data(u64 offset) { - max_addr = (u32)(shdr.sh_addr + shdr.sh_size); - } + for (auto &phdr : m_phdrs) + { + switch (phdr.p_type.ToLE()) + { + case 0x00000001: //LOAD + if (phdr.p_memsz) + { + if (!vm::alloc(phdr.p_vaddr.addr(), (u32)phdr.p_memsz, vm::main)) + { + LOG_ERROR(LOADER, "%s(): AllocFixed(0x%llx, 0x%x) failed", __FUNCTION__, phdr.p_vaddr, (u32)phdr.p_memsz); - if((shdr.sh_type == SHT_RELA) || (shdr.sh_type == SHT_REL)) - { - LOG_ERROR(LOADER, "ELF64 ERROR: Relocation"); - continue; - } + return loading_error; + } - switch(shdr.sh_type) - { - case SHT_NOBITS: - //LOG_WARNING(LOADER, "SHT_NOBITS: addr=0x%llx, size=0x%llx", offset + addr, size); - //memset(&Memory[offset + addr], 0, size); - break; + if (phdr.p_filesz) + { + m_stream->Seek(handler::get_stream_offset() + phdr.p_offset); + m_stream->Read(phdr.p_vaddr.get_ptr(), phdr.p_filesz); + Emu.GetSFuncManager().StaticAnalyse(phdr.p_vaddr.get_ptr(), (u32)phdr.p_filesz, phdr.p_vaddr.addr()); + } + } + break; - case SHT_PROGBITS: - //elf64_f.Seek(shdr.sh_offset); - //elf64_f.Read(&Memory[offset + addr], shdr.sh_size); - break; + case 0x00000007: //TLS + Emu.SetTLSData(phdr.p_vaddr.addr(), phdr.p_filesz.value(), phdr.p_memsz.value()); + break; + + case 0x60000001: //LOOS+1 + if (phdr.p_filesz) + { + const sys_process_param& proc_param = *(sys_process_param*)phdr.p_vaddr.get_ptr(); + + if (proc_param.size < sizeof(sys_process_param)) + { + LOG_WARNING(LOADER, "Bad process_param size! [0x%x : 0x%x]", proc_param.size, sizeof(sys_process_param)); + } + if (proc_param.magic != 0x13bcc5f6) + { + LOG_ERROR(LOADER, "Bad process_param magic! [0x%x]", proc_param.magic); + } + else + { + sys_process_param_info& info = Emu.GetInfo().GetProcParam(); + /* + LOG_NOTICE(LOADER, "*** sdk version: 0x%x", info.sdk_version.ToLE()); + LOG_NOTICE(LOADER, "*** primary prio: %d", info.primary_prio.ToLE()); + LOG_NOTICE(LOADER, "*** primary stacksize: 0x%x", info.primary_stacksize.ToLE()); + LOG_NOTICE(LOADER, "*** malloc pagesize: 0x%x", info.malloc_pagesize.ToLE()); + LOG_NOTICE(LOADER, "*** ppc seg: 0x%x", info.ppc_seg.ToLE()); + //LOG_NOTICE(LOADER, "*** crash dump param addr: 0x%x", info.crash_dump_param_addr.ToLE()); + */ + + info = proc_param.info; + Emu.m_sdk_version = info.sdk_version; + } + } + break; + + case 0x60000002: //LOOS+2 + if (phdr.p_filesz) + { + const sys_proc_prx_param& proc_prx_param = *(sys_proc_prx_param*)phdr.p_vaddr.get_ptr(); + + if (proc_prx_param.magic != 0x1b434cec) + { + LOG_ERROR(LOADER, "Bad magic! (0x%x)", proc_prx_param.magic.ToLE()); + break; + } + + for (auto stub = proc_prx_param.libstubstart; stub < proc_prx_param.libstubend; ++stub) + { + const std::string module_name = stub->s_modulename.get_ptr(); + Module* module = Emu.GetModuleManager().GetModuleByName(module_name); + if (module) + { + //module->SetLoaded(); + } + else + { + LOG_WARNING(LOADER, "Unknown module '%s'", module_name.c_str()); + } + + static const u32 tbl_section_size = 2 * 4; + static const u32 dst_section_size = 3 * 4; + auto tbl = ptr::make(alloc(stub->s_imports * tbl_section_size)); + auto dst = ptr::make(alloc(stub->s_imports * dst_section_size)); + + for (u32 i = 0; i < stub->s_imports; ++i) + { + const u32 nid = *stub->s_nid++; + + if (!Emu.GetModuleManager().get_function_stub(nid, stub->s_text[i])) + { + stub->s_text[i] = tbl.addr(); + + *tbl++ = dst.addr(); + *tbl++ = Emu.GetModuleManager().GetFuncNumById(nid); + + *dst++ = MR(11, 2); + *dst++ = SC(2); + *dst++ = BLR(); + + if (module && !module->Load(nid)) + { + LOG_WARNING(LOADER, "Unimplemented function '%s' in '%s' module (HLE)", SysCalls::GetHLEFuncName(nid).c_str(), module_name.c_str()); + } + else //if (Ini.HLELogging.GetValue()) + { + LOG_NOTICE(LOADER, "Imported function '%s' in '%s' module (HLE)", SysCalls::GetHLEFuncName(nid).c_str(), module_name.c_str()); + } + } + else + { + //Is function auto exported, than we can use it + LOG_NOTICE(LOADER, "Imported function '%s' in '%s' module (LLE: 0x%x)", SysCalls::GetHLEFuncName(nid).c_str(), module_name.c_str(), (u32)stub->s_text[i]); + } + } + } + } + break; + } + } + + return ok; } } - - return true; } diff --git a/rpcs3/Loader/ELF64.h b/rpcs3/Loader/ELF64.h index 7843b9f569..a5b2cde70b 100644 --- a/rpcs3/Loader/ELF64.h +++ b/rpcs3/Loader/ELF64.h @@ -1,102 +1,157 @@ #pragma once #include "Loader.h" +#include struct vfsStream; class rFile; -struct Elf64_Ehdr +namespace loader { - u32 e_magic; - u8 e_class; - u8 e_data; - u8 e_curver; - u8 e_os_abi; - u64 e_abi_ver; - u16 e_type; - u16 e_machine; - u32 e_version; - u64 e_entry; - u64 e_phoff; - u64 e_shoff; - u32 e_flags; - u16 e_ehsize; - u16 e_phentsize; - u16 e_phnum; - u16 e_shentsize; - u16 e_shnum; - u16 e_shstrndx; + namespace handlers + { + class elf64 : public handler + { + public: + struct ehdr + { + be_t e_magic; + u8 e_class; + u8 e_data; + u8 e_curver; + u8 e_os_abi; + be_t e_abi_ver; + be_t e_type; + be_t e_machine; + be_t e_version; + be_t e_entry; + be_t e_phoff; + be_t e_shoff; + be_t e_flags; + be_t e_ehsize; + be_t e_phentsize; + be_t e_phnum; + be_t e_shentsize; + be_t e_shnum; + be_t e_shstrndx; - void Load(vfsStream& f); + bool check() const { return e_magic.ToBE() == se32(0x7F454C46); } + } m_ehdr; - void Show(); + struct phdr + { + be_t p_type; + be_t p_flags; + be_t p_offset; + bptr p_vaddr; + bptr p_paddr; + be_t p_filesz; + be_t p_memsz; + be_t p_align; + }; - bool CheckMagic() const { return e_magic == 0x7F454C46; } - u64 GetEntry() const { return e_entry; } -}; + struct shdr + { + be_t sh_name; + be_t sh_type; + be_t sh_flags; + bptr sh_addr; + be_t sh_offset; + be_t sh_size; + be_t sh_link; + be_t sh_info; + be_t sh_addralign; + be_t sh_entsize; + }; -struct Elf64_Shdr -{ - u32 sh_name; - u32 sh_type; - u64 sh_flags; - u64 sh_addr; - u64 sh_offset; - u64 sh_size; - u32 sh_link; - u32 sh_info; - u64 sh_addralign; - u64 sh_entsize; + struct sprx_module_info + { + be_t attr; + u8 version[2]; + char name[28]; + be_t toc_addr; + be_t export_start; + be_t export_end; + be_t import_start; + be_t import_end; + } m_sprx_module_info; - void Load(vfsStream& f); + struct sprx_export_info + { + u8 size; + u8 padding; + be_t version; + be_t attr; + be_t func_count; + be_t vars_count; + be_t tls_vars_count; + be_t hash_info; + be_t tls_hash_info; + u8 reserved[2]; + be_t lib_name_offset; + be_t nid_offset; + be_t stub_offset; + }; - void Show(); -}; + struct sprx_import_info + { + u8 size; + u8 unused; + be_t version; + be_t attr; + be_t func_count; + be_t vars_count; + be_t tls_vars_count; + u8 reserved[4]; + be_t lib_name_offset; + be_t nid_offset; + be_t stub_offset; + //... + }; -struct Elf64_Phdr -{ - u32 p_type; - u32 p_flags; - u64 p_offset; - u64 p_vaddr; - u64 p_paddr; - u64 p_filesz; - u64 p_memsz; - u64 p_align; + struct sprx_function_info + { + be_t name_table_offset; + be_t entry_table_offset; + be_t padding; + } m_sprx_function_info; - void Load(vfsStream& f); + struct sprx_lib_info + { + std::string name; + }; - void Show(); -}; + struct sprx_segment_info + { + vm::ptr begin; + u32 size; + u32 size_file; + vm::ptr initial_addr; + std::vector modules; + }; -class ELF64Loader : public LoaderBase -{ - vfsStream& elf64_f; + struct sprx_info + { + std::unordered_map exports; + std::unordered_map imports; + std::vector segments; + }; -public: - Elf64_Ehdr ehdr; - std::vector shdr_name_arr; - std::vector shdr_arr; - std::vector phdr_arr; + std::vector m_phdrs; + std::vector m_shdrs; - ELF64Loader(vfsStream& f); - ~ELF64Loader() {Close();} + std::vector m_sprx_segments_info; + std::vector m_sprx_import_info; + std::vector m_sprx_export_info; - virtual bool LoadInfo(); - virtual bool LoadData(u64 offset = 0); - virtual bool Close(); + public: + virtual ~elf64() = default; - bool LoadEhdrInfo(s64 offset=-1); - bool LoadPhdrInfo(s64 offset=-1); - bool LoadShdrInfo(s64 offset=-1); - -private: - bool LoadEhdrData(u64 offset); - bool LoadPhdrData(u64 offset); - bool LoadShdrData(u64 offset); - - //bool LoadImports(); -}; - -void WriteEhdr(rFile& f, Elf64_Ehdr& ehdr); -void WritePhdr(rFile& f, Elf64_Phdr& phdr); -void WriteShdr(rFile& f, Elf64_Shdr& shdr); + error_code init(vfsStream& stream) override; + error_code load() override; + error_code load_data(u64 offset); + error_code load_sprx(sprx_info& info); + bool is_sprx() const { return m_ehdr.e_type == 0xffa4; } + std::string sprx_get_module_name() const { return m_sprx_module_info.name; } + }; + } +} \ No newline at end of file diff --git a/rpcs3/Loader/Loader.cpp b/rpcs3/Loader/Loader.cpp index ed804f1f40..e2567a60f0 100644 --- a/rpcs3/Loader/Loader.cpp +++ b/rpcs3/Loader/Loader.cpp @@ -1,11 +1,38 @@ #include "stdafx.h" #include "Utilities/Log.h" #include "Loader.h" -#include "ELF.h" -#include "SELF.h" #include "PSF.h" #include "Emu/FS/vfsLocalFile.h" +namespace loader +{ + bool loader::load(vfsStream& stream) + { + for (auto i : m_handlers) + { + if (i->init(stream) == handler::ok) + { + if (i->load() == handler::ok) + { + return true; + } + } + + stream.Seek(i->get_stream_offset()); + } + + return false; + } + + handler::error_code handler::init(vfsStream& stream) + { + m_stream_offset = stream.Tell(); + m_stream = &stream; + + return ok; + } +}; + static const u64 g_spu_offset = 0x10000; const std::string Ehdr_DataToString(const u8 data) @@ -13,7 +40,7 @@ const std::string Ehdr_DataToString(const u8 data) if(data > 1) return fmt::Format("%d's complement, big endian", data); if(data < 1) return "Data is not found"; - return fmt::Format("%d's complement, small endian", data); + return fmt::Format("%d's complement, little endian", data); } const std::string Ehdr_TypeToString(const u16 type) @@ -35,7 +62,7 @@ const std::string Ehdr_OS_ABIToString(const u8 os_abi) case 0x66: return "Cell OS LV-2"; }; - return fmt::Format("Unknown (0x%x)", os_abi); + return fmt::Format("Unknown (%x)", os_abi); } const std::string Ehdr_MachineToString(const u16 machine) @@ -48,7 +75,7 @@ const std::string Ehdr_MachineToString(const u16 machine) case MACHINE_ARM: return "ARM"; }; - return fmt::Format("Unknown (0x%x)", machine); + return fmt::Format("Unknown (%x)", machine); } const std::string Phdr_FlagsToString(u32 flags) @@ -73,7 +100,7 @@ const std::string Phdr_FlagsToString(u32 flags) flags &= ~spu << 0x14; flags &= ~rsx << 0x18; - if(flags != 0) return fmt::Format("Unknown %s PPU[0x%x] SPU[0x%x] RSX[0x%x]", ret.c_str(), ppu, spu, rsx); + if(flags != 0) return fmt::Format("Unknown %s PPU[%x] SPU[%x] RSX[%x]", ret.c_str(), ppu, spu, rsx); ret += "PPU[" + FLAGS_TO_STRING(ppu) + "] "; ret += "SPU[" + FLAGS_TO_STRING(spu) + "] "; @@ -93,94 +120,5 @@ const std::string Phdr_TypeToString(const u32 type) case 0x60000002: return "LOOS+2"; }; - return fmt::Format("Unknown (0x%x)", type); -} - -Loader::Loader() - : m_stream(nullptr) - , m_loader(nullptr) -{ -} - -Loader::Loader(vfsFileBase& stream) - : m_stream(&stream) - , m_loader(nullptr) -{ -} - -Loader::~Loader() -{ - delete m_loader; - m_loader = nullptr; -} - -void Loader::Open(vfsFileBase& stream) -{ - m_stream = &stream; -} - -LoaderBase* Loader::SearchLoader() -{ - if(!m_stream) - return nullptr; - - LoaderBase* l = new ELFLoader(*m_stream); - if(l->LoadInfo()) - return l; - delete l; - - l = new SELFLoader(*m_stream); - if(l->LoadInfo()) - return l; - delete l; - - return nullptr; -} - -bool Loader::Analyze() -{ - delete m_loader; - - m_loader = SearchLoader(); - - if(!m_loader) - { - LOG_ERROR(LOADER, "Unknown file type"); - return false; - } - - machine = m_loader->GetMachine(); - entry = m_loader->GetMachine() == MACHINE_SPU ? m_loader->GetEntry() + g_spu_offset : m_loader->GetEntry(); - - return true; -} - -bool Loader::Load() -{ - if(!m_loader) - return false; - - if(!m_loader->LoadData(m_loader->GetMachine() == MACHINE_SPU ? g_spu_offset : 0)) - { - LOG_ERROR(LOADER, "Broken file"); - return false; - } - - /* - const std::string& root = fmt::ToUTF8(wxFileName(wxFileName(m_stream->GetPath()).GetPath()).GetPath()); - std::string ps3_path; - const std::string& psf_path = root + "/" + "PARAM.SFO"; - vfsFile f(psf_path); - if(f.IsOpened()) - { - PSFLoader psf_l(f); - if(psf_l.Load()) - { - CurGameInfo = psf_l.m_info; - CurGameInfo.root = root; - psf_l.Close(); - } - } - */ - return true; + return fmt::Format("Unknown (%x)", type); } diff --git a/rpcs3/Loader/Loader.h b/rpcs3/Loader/Loader.h index 0f14d38ab9..3e6fbf925a 100644 --- a/rpcs3/Loader/Loader.h +++ b/rpcs3/Loader/Loader.h @@ -1,6 +1,8 @@ #pragma once +#include "Emu/Memory/vm.h" struct vfsFileBase; +struct vfsStream; class rFile; #ifdef _DEBUG @@ -65,22 +67,7 @@ struct sys_process_param sys_process_param_info info; }; -struct sys_proc_prx_param -{ - be_t size; - be_t magic; - be_t version; - be_t pad0; - be_t libentstart; - be_t libentend; - be_t libstubstart; - be_t libstubend; - be_t ver; - be_t pad1; - be_t pad2; -}; - -struct Elf64_StubHeader +struct sys_stub { u8 s_size; // = 0x2c u8 s_unk0; @@ -89,59 +76,80 @@ struct Elf64_StubHeader be_t s_imports; be_t s_unk2; // = 0x0 be_t s_unk3; // = 0x0 - be_t s_modulename; - be_t s_nid; - be_t s_text; + vm::bptr s_modulename; + vm::bptr s_nid; + vm::bptr s_text; be_t s_unk4; // = 0x0 be_t s_unk5; // = 0x0 be_t s_unk6; // = 0x0 be_t s_unk7; // = 0x0 }; -class LoaderBase +struct sys_proc_prx_param { -protected: - u32 entry; - u32 min_addr; - u32 max_addr; - Elf_Machine machine; - - LoaderBase() - : machine(MACHINE_Unknown) - , entry(0) - , min_addr(0) - , max_addr(0) - { - } - -public: - virtual ~LoaderBase() = default; - - virtual bool LoadInfo() { return false; } - virtual bool LoadData(u64 offset = 0) { return false; } - Elf_Machine GetMachine() const { return machine; } - - u32 GetEntry() const { return entry; } - u32 GetMinAddr() const { return min_addr; } - u32 GetMaxAddr() const { return max_addr; } + be_t size; + be_t magic; + be_t version; + be_t pad0; + be_t libentstart; + be_t libentend; + vm::bptr libstubstart; + vm::bptr libstubend; + be_t ver; + be_t pad1; + be_t pad2; }; -class Loader : public LoaderBase +namespace loader { - vfsFileBase* m_stream; - LoaderBase* m_loader; + class handler + { + u64 m_stream_offset; -public: - Loader(); - Loader(vfsFileBase& stream); - virtual ~Loader(); + protected: + vfsStream* m_stream; - void Open(const std::string& path); - void Open(vfsFileBase& stream); - bool Analyze(); + public: + enum error_code + { + bad_version = -1, + bad_file = -2, + broken_file = -3, + loading_error = -4, + bad_relocation_type = -5, + ok = 0, + }; - bool Load(); + virtual ~handler() = default; -private: - LoaderBase* SearchLoader(); -}; \ No newline at end of file + virtual error_code init(vfsStream& stream); + virtual error_code load() = 0; + u64 get_stream_offset() const + { + return m_stream_offset; + } + }; + + class loader + { + std::vector m_handlers; + + public: + ~loader() + { + for (auto &h : m_handlers) + { + delete h; + } + } + + void register_handler(handler* handler) + { + m_handlers.push_back(handler); + } + + bool load(vfsStream& stream); + }; + + using namespace vm; +} diff --git a/rpcs3/Loader/SELF.cpp b/rpcs3/Loader/SELF.cpp deleted file mode 100644 index 0d3755cce9..0000000000 --- a/rpcs3/Loader/SELF.cpp +++ /dev/null @@ -1,99 +0,0 @@ -#include "stdafx.h" -#include "Utilities/Log.h" -#include "Emu/FS/vfsStream.h" -#include "SELF.h" -#include "ELF64.h" - -void SceHeader::Load(vfsStream& f) -{ - se_magic = Read32(f); - se_hver = Read32(f); - se_flags = Read16(f); - se_type = Read16(f); - se_meta = Read32(f); - se_hsize = Read64(f); - se_esize = Read64(f); -} - -void SceHeader::Show() -{ - LOG_NOTICE(LOADER, "Magic: %08x", se_magic); - LOG_NOTICE(LOADER, "Class: %s", "SELF"); - LOG_NOTICE(LOADER, "hver: 0x%08x", se_hver); - LOG_NOTICE(LOADER, "flags: 0x%04x", se_flags); - LOG_NOTICE(LOADER, "type: 0x%04x", se_type); - LOG_NOTICE(LOADER, "meta: 0x%08x", se_meta); - LOG_NOTICE(LOADER, "hsize: 0x%llx", se_hsize); - LOG_NOTICE(LOADER, "esize: 0x%llx", se_esize); -} - -void SelfHeader::Load(vfsStream& f) -{ - se_htype = Read64(f); - se_appinfooff = Read64(f); - se_elfoff = Read64(f); - se_phdroff = Read64(f); - se_shdroff = Read64(f); - se_secinfoff = Read64(f); - se_sceveroff = Read64(f); - se_controloff = Read64(f); - se_controlsize = Read64(f); - pad = Read64(f); -} - -void SelfHeader::Show() -{ - LOG_NOTICE(LOADER, "header type: 0x%llx", se_htype); - LOG_NOTICE(LOADER, "app info offset: 0x%llx", se_appinfooff); - LOG_NOTICE(LOADER, "elf offset: 0x%llx", se_elfoff); - LOG_NOTICE(LOADER, "program header offset: 0x%llx", se_phdroff); - LOG_NOTICE(LOADER, "section header offset: 0x%llx", se_shdroff); - LOG_NOTICE(LOADER, "section info offset: 0x%llx", se_secinfoff); - LOG_NOTICE(LOADER, "sce version offset: 0x%llx", se_sceveroff); - LOG_NOTICE(LOADER, "control info offset: 0x%llx", se_controloff); - LOG_NOTICE(LOADER, "control info size: 0x%llx", se_controlsize); -} - -SELFLoader::SELFLoader(vfsStream& f) - : self_f(f) - , LoaderBase() -{ -} - -bool SELFLoader::LoadInfo() -{ - if(!self_f.IsOpened()) return false; - self_f.Seek(0); - sce_hdr.Load(self_f); - self_hdr.Load(self_f); - if(!sce_hdr.CheckMagic()) return false; - - return true; -} - -bool SELFLoader::LoadData(u64 offset) -{ - if(!self_f.IsOpened()) return false; - - sce_hdr.Show(); - self_hdr.Show(); - - ELF64Loader l(self_f); - if( !l.LoadEhdrInfo(self_hdr.se_elfoff) || - !l.LoadPhdrInfo(self_hdr.se_phdroff) || - !l.LoadShdrInfo(self_hdr.se_shdroff) || - !l.LoadData(self_hdr.se_appinfooff) ) - { - LOG_ERROR(LOADER, "Broken SELF file."); - - return false; - } - - machine = l.GetMachine(); - entry = l.GetEntry(); - - return true; - - LOG_ERROR(LOADER, "Boot SELF not supported yet!"); - return false; -} \ No newline at end of file diff --git a/rpcs3/Loader/SELF.h b/rpcs3/Loader/SELF.h deleted file mode 100644 index 3c4e7b9fbe..0000000000 --- a/rpcs3/Loader/SELF.h +++ /dev/null @@ -1,53 +0,0 @@ -#pragma once -#include "Loader.h" - -struct vfsStream; - -struct SceHeader -{ - u32 se_magic; - u32 se_hver; - u16 se_flags; - u16 se_type; - u32 se_meta; - u64 se_hsize; - u64 se_esize; - - void Load(vfsStream& f); - - void Show(); - - bool CheckMagic() const { return se_magic == 0x53434500; } -}; - -struct SelfHeader -{ - u64 se_htype; - u64 se_appinfooff; - u64 se_elfoff; - u64 se_phdroff; - u64 se_shdroff; - u64 se_secinfoff; - u64 se_sceveroff; - u64 se_controloff; - u64 se_controlsize; - u64 pad; - - void Load(vfsStream& f); - - void Show(); -}; - -class SELFLoader : public LoaderBase -{ - vfsStream& self_f; - - SceHeader sce_hdr; - SelfHeader self_hdr; - -public: - SELFLoader(vfsStream& f); - - virtual bool LoadInfo(); - virtual bool LoadData(u64 offset = 0); -}; \ No newline at end of file diff --git a/rpcs3/Loader/TROPUSR.cpp b/rpcs3/Loader/TROPUSR.cpp index 6569ae3fd3..7d6b7fb655 100644 --- a/rpcs3/Loader/TROPUSR.cpp +++ b/rpcs3/Loader/TROPUSR.cpp @@ -133,7 +133,7 @@ bool TROPUSRLoader::Generate(const std::string& filepath, const std::string& con { if (n->GetName() == "trophy") { - u32 trophy_id = atoi(n->GetAttribute("id").c_str()); + u32 trophy_id = std::atoi(n->GetAttribute("id").c_str()); u32 trophy_grade; switch (((const char *)n->GetAttribute("ttype").c_str())[0]) { diff --git a/rpcs3/emucore.vcxproj b/rpcs3/emucore.vcxproj index 4a1018dc5b..969839a54d 100644 --- a/rpcs3/emucore.vcxproj +++ b/rpcs3/emucore.vcxproj @@ -239,13 +239,11 @@ - - @@ -459,13 +457,11 @@ - - @@ -686,7 +682,7 @@ ..\llvm_build\Debug\lib - LLVMJIT.lib;LLVMVectorize.lib;LLVMX86CodeGen.lib;LLVMX86Disassembler.lib;LLVMExecutionEngine.lib;LLVMAsmPrinter.lib;LLVMSelectionDAG.lib;LLVMCodeGen.lib;LLVMScalarOpts.lib;LLVMInstCombine.lib;LLVMTransformUtils.lib;LLVMipa.lib;LLVMAnalysis.lib;LLVMTarget.lib;LLVMX86Desc.lib;LLVMX86AsmPrinter.lib;LLVMObject.lib;LLVMMCParser.lib;LLVMBitReader.lib;LLVMCore.lib;LLVMX86Utils.lib;LLVMMC.lib;LLVMX86Info.lib;LLVMSupport.lib + LLVMJIT.lib;LLVMVectorize.lib;LLVMX86CodeGen.lib;LLVMX86Disassembler.lib;LLVMExecutionEngine.lib;LLVMAsmPrinter.lib;LLVMSelectionDAG.lib;LLVMCodeGen.lib;LLVMScalarOpts.lib;LLVMInstCombine.lib;LLVMTransformUtils.lib;LLVMipa.lib;LLVMAnalysis.lib;LLVMTarget.lib;LLVMX86Desc.lib;LLVMX86AsmPrinter.lib;LLVMObject.lib;LLVMMCParser.lib;LLVMBitReader.lib;LLVMCore.lib;LLVMX86Utils.lib;LLVMMC.lib;LLVMX86Info.lib;LLVMSupport.lib;LLVMMCDisassembler.lib diff --git a/rpcs3/emucore.vcxproj.filters b/rpcs3/emucore.vcxproj.filters index b2ee29df86..d4cec623e0 100644 --- a/rpcs3/emucore.vcxproj.filters +++ b/rpcs3/emucore.vcxproj.filters @@ -33,15 +33,9 @@ {28902cf4-4fa6-428b-ab94-6b410fd5077f} - - {13d20086-2188-425a-9856-0440fe6f79f2} - {037247b4-0370-4193-a25d-bc9d075bf0a7} - - {93b1cff1-0158-4327-a437-e9abcac8d724} - {5a18e5b1-2632-4849-ba94-e7a2ea0b78fa} @@ -60,24 +54,33 @@ {84c34dd1-4c49-4ecf-8ee2-4165c14f24be} - - {fadb4b36-57af-4583-891d-d22ff369e266} - - - {4adca4fa-b90f-4662-9eb0-1d29cf3cd2eb} - - - {6f1da5b2-52c5-416b-9b5c-b9897bc1b300} - {fcac6852-b45f-4cf2-afee-cf56bcea14e5} {ead7494f-a872-4b4d-a864-1a61c3b6012f} - + + {13d20086-2188-425a-9856-0440fe6f79f2} + + + {93b1cff1-0158-4327-a437-e9abcac8d724} + + {1d9e6fc4-9a79-4329-a8b5-081e24822aaa} + + {6674e2ab-90cd-47de-a852-d21643ab18c2} + + + {fadb4b36-57af-4583-891d-d22ff369e266} + + + {4adca4fa-b90f-4662-9eb0-1d29cf3cd2eb} + + + {6f1da5b2-52c5-416b-9b5c-b9897bc1b300} + @@ -309,28 +312,28 @@ Emu\HDD - Emu\Cell + Emu\CPU\Cell - Emu\Cell + Emu\CPU\Cell - Emu\Cell + Emu\CPU\Cell - Emu\Cell + Emu\CPU\Cell - Emu\Cell + Emu\CPU\Cell - Emu\Cell + Emu\CPU\Cell - Emu\Cell + Emu\CPU\Cell - Emu\Cell + Emu\CPU\Cell Emu\CPU @@ -339,7 +342,7 @@ Emu\CPU - Emu\ARMv7 + Emu\CPU\ARMv7 Emu\Audio @@ -356,9 +359,6 @@ Emu\Memory - - Loader - Loader @@ -374,9 +374,6 @@ Loader - - Loader - Loader @@ -561,37 +558,37 @@ Emu\SysCalls\Modules - Emu\RSX\GL + Emu\GPU\RSX\GL - Emu\RSX\GL + Emu\GPU\RSX\GL - Emu\RSX\GL + Emu\GPU\RSX\GL - Emu\RSX\GL + Emu\GPU\RSX\GL - Emu\RSX\GL + Emu\GPU\RSX\GL - Emu\RSX\GL + Emu\GPU\RSX\GL - Emu\RSX\GL + Emu\GPU\RSX\GL - Emu\RSX + Emu\GPU\RSX - Emu\RSX + Emu\GPU\RSX - Emu\RSX + Emu\GPU\RSX - Emu\RSX + Emu\GPU\RSX Emu\SysCalls\lv2 @@ -630,31 +627,31 @@ Emu\SysCalls\Modules - Emu\Cell + Emu\CPU\Cell - Emu\Cell + Emu\CPU\Cell - Emu\ARMv7 + Emu\CPU\ARMv7 - Emu\ARMv7 + Emu\CPU\ARMv7 - Emu\ARMv7 + Emu\CPU\ARMv7 - Emu\ARMv7\Modules + Emu\CPU\ARMv7\Modules - Emu\ARMv7\Modules + Emu\CPU\ARMv7\Modules - Emu\ARMv7\Modules + Emu\CPU\ARMv7\Modules - Emu\ARMv7\Modules + Emu\CPU\ARMv7\Modules @@ -884,64 +881,64 @@ Emu\HDD - Emu\Cell + Emu\CPU\Cell - Emu\Cell + Emu\CPU\Cell - Emu\Cell + Emu\CPU\Cell - Emu\Cell + Emu\CPU\Cell - Emu\Cell + Emu\CPU\Cell - Emu\Cell + Emu\CPU\Cell - Emu\Cell + Emu\CPU\Cell - Emu\Cell + Emu\CPU\Cell - Emu\Cell + Emu\CPU\Cell - Emu\Cell + Emu\CPU\Cell - Emu\Cell + Emu\CPU\Cell - Emu\Cell + Emu\CPU\Cell - Emu\Cell + Emu\CPU\Cell - Emu\Cell + Emu\CPU\Cell - Emu\Cell + Emu\CPU\Cell - Emu\Cell + Emu\CPU\Cell - Emu\Cell + Emu\CPU\Cell - Emu\Cell + Emu\CPU\Cell - Emu\Cell + Emu\CPU\Cell - Emu\Cell + Emu\CPU\Cell Emu\CPU @@ -959,19 +956,19 @@ Emu\CPU - Emu\ARMv7 + Emu\CPU\ARMv7 - Emu\ARMv7 + Emu\CPU\ARMv7 - Emu\ARMv7 + Emu\CPU\ARMv7 - Emu\ARMv7 + Emu\CPU\ARMv7 - Emu\ARMv7 + Emu\CPU\ARMv7 Emu\Audio @@ -988,9 +985,6 @@ Emu\Memory - - Loader - Loader @@ -1006,9 +1000,6 @@ Loader - - Loader - Loader @@ -1133,58 +1124,58 @@ Emu\SysCalls - Emu\RSX\Null + Emu\GPU\RSX\Null - Emu\RSX\GL + Emu\GPU\RSX\GL - Emu\RSX\GL + Emu\GPU\RSX\GL - Emu\RSX\GL + Emu\GPU\RSX\GL - Emu\RSX\GL + Emu\GPU\RSX\GL - Emu\RSX\GL + Emu\GPU\RSX\GL - Emu\RSX\GL + Emu\GPU\RSX\GL - Emu\RSX\GL + Emu\GPU\RSX\GL - Emu\RSX\GL + Emu\GPU\RSX\GL - Emu\RSX\GL + Emu\GPU\RSX\GL - Emu\RSX + Emu\GPU\RSX - Emu\RSX + Emu\GPU\RSX - Emu\RSX + Emu\GPU\RSX - Emu\RSX + Emu\GPU\RSX - Emu\RSX + Emu\GPU\RSX - Emu\RSX + Emu\GPU\RSX - Emu\RSX + Emu\GPU\RSX - Emu\RSX + Emu\GPU\RSX Emu\SysCalls\lv2 @@ -1265,10 +1256,10 @@ Emu\SysCalls\Modules - Emu\Cell + Emu\CPU\Cell - Emu\ARMv7 + Emu\CPU\ARMv7 \ No newline at end of file diff --git a/rpcs3/rpcs3.vcxproj b/rpcs3/rpcs3.vcxproj index e692156a04..946b6cb66e 100644 --- a/rpcs3/rpcs3.vcxproj +++ b/rpcs3/rpcs3.vcxproj @@ -173,6 +173,7 @@ + @@ -212,6 +213,7 @@ + diff --git a/rpcs3/rpcs3.vcxproj.filters b/rpcs3/rpcs3.vcxproj.filters index 18a836398f..5fce1aa362 100644 --- a/rpcs3/rpcs3.vcxproj.filters +++ b/rpcs3/rpcs3.vcxproj.filters @@ -90,6 +90,9 @@ Gui + + Gui + @@ -185,5 +188,8 @@ Gui + + Gui + \ No newline at end of file diff --git a/rpcs3/stdafx.h b/rpcs3/stdafx.h index 7e67a2723a..2ca972bc49 100644 --- a/rpcs3/stdafx.h +++ b/rpcs3/stdafx.h @@ -33,6 +33,7 @@ #include #include #include +#include #include #include "Utilities/GNU.h" @@ -49,7 +50,10 @@ typedef int16_t s16; typedef int32_t s32; typedef int64_t s64; -#define AlignAddr(addr, align) (((addr) + ((align) - 1)) & ~((align) - 1)) +template __forceinline T align(const T addr, int align) +{ + return (addr + (align - 1)) & ~(align - 1); +} #include "Utilities/StrFmt.h" #include "Utilities/BEType.h"