mirror of
				https://github.com/N64Recomp/N64ModernRuntime.git
				synced 2025-10-30 08:02:29 +00:00 
			
		
		
		
	Compare commits
	
		
			2 commits
		
	
	
		
			f07e0807f4
			...
			c18ab59e77
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | c18ab59e77 | ||
|   | 073a8fbf66 | 
					 3 changed files with 23 additions and 12 deletions
				
			
		|  | @ -4,6 +4,7 @@ project(librecomp) | |||
| set(CMAKE_CXX_STANDARD 20) | ||||
| set(CMAKE_CXX_STANDARD_REQUIRED True) | ||||
| set(CMAKE_CXX_EXTENSIONS OFF) | ||||
| set(CMAKE_C_STANDARD 11) | ||||
| 
 | ||||
| # Define the library | ||||
| add_library(librecomp STATIC | ||||
|  | @ -46,11 +47,13 @@ target_include_directories(librecomp PRIVATE | |||
|     "${CMAKE_CURRENT_SOURCE_DIR}/include/librecomp" | ||||
| ) | ||||
| 
 | ||||
| target_compile_options(librecomp PRIVATE | ||||
| #    -Wall | ||||
| #    -Wextra | ||||
|     -Wno-unused-parameter | ||||
| ) | ||||
| if (NOT CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") | ||||
|     target_compile_options(librecomp PRIVATE | ||||
|         # -Wall | ||||
|         # -Wextra | ||||
|         -Wno-unused-parameter | ||||
|     ) | ||||
| endif() | ||||
| 
 | ||||
| if (WIN32) | ||||
|     add_compile_definitions(NOMINMAX) | ||||
|  |  | |||
|  | @ -36,6 +36,12 @@ using u32 = uint32_t; | |||
| #define DIVOUT vpu.divout | ||||
| #define DIVDP  vpu.divdp | ||||
| 
 | ||||
| #ifdef _MSC_VER | ||||
| #define COUNT_LEADING_ZEROES __lzcnt | ||||
| #else | ||||
| #define COUNT_LEADING_ZEROES __builtin_clz | ||||
| #endif | ||||
| 
 | ||||
| auto RSP::r128::operator()(u32 index) const -> r128 { | ||||
|     if constexpr (Accuracy::RSP::SISD) { | ||||
|         r128 v{ *this }; | ||||
|  | @ -1348,7 +1354,7 @@ auto RSP::VRCP(r128& vd, u8 de, cr128& vt) -> void { | |||
|     } else if (input == -32768) { | ||||
|         result = 0xffff'0000; | ||||
|     } else { | ||||
|         u32 shift = __builtin_clz(data); | ||||
|         u32 shift = COUNT_LEADING_ZEROES(data); | ||||
|         u32 index = (u64(data) << shift & 0x7fc0'0000) >> 22; | ||||
|         result = rspReciprocals[index]; | ||||
|         result = (0x10000 | result) << 14; | ||||
|  | @ -1400,7 +1406,7 @@ auto RSP::VRSQ(r128& vd, u8 de, cr128& vt) -> void { | |||
|     } else if (input == -32768) { | ||||
|         result = 0xffff'0000; | ||||
|     } else { | ||||
|         u32 shift = __builtin_clz(data); | ||||
|         u32 shift = COUNT_LEADING_ZEROES(data); | ||||
|         u32 index = (u64(data) << shift & 0x7fc0'0000) >> 22; | ||||
|         result = rspInverseSquareRoots[index & 0x1fe | shift & 1]; | ||||
|         result = (0x10000 | result) << 14; | ||||
|  |  | |||
|  | @ -29,11 +29,13 @@ target_include_directories(ultramodern PUBLIC | |||
|     "${PROJECT_SOURCE_DIR}/../thirdparty/sse2neon" | ||||
| ) | ||||
| 
 | ||||
| target_compile_options(ultramodern PRIVATE | ||||
| #    -Wall | ||||
| #    -Wextra | ||||
|     -Wno-unused-parameter | ||||
| ) | ||||
| if (NOT CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") | ||||
|     target_compile_options(ultramodern PRIVATE | ||||
|         # -Wall | ||||
|         # -Wextra | ||||
|         -Wno-unused-parameter | ||||
|     ) | ||||
| endif() | ||||
| 
 | ||||
| if (WIN32) | ||||
|     add_compile_definitions(NOMINMAX) | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue