Skip to content

Commit d5a77b2

Browse files
committed
Fix attribution for Windows ARM64 support (origin: PR #99 by Demonese)
1 parent 9f4e1b4 commit d5a77b2

File tree

3 files changed

+8
-6
lines changed

3 files changed

+8
-6
lines changed

CREDITS.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,13 @@ This modernized fork of `pcg-cpp` by **Total-Random** integrates several critica
2424
- **Author:** [Timo Alho](https://github.com/tialho)
2525
- **Description:** Resolves various GCC warnings (clz/ctz truncation) when building with `-Wall`.
2626

27-
## Total-Random Improvements
28-
2927
### 5. Native Windows ARM64 Support
30-
- **Author:** [Total-Random](https://github.com/Total-Random)
28+
- **Origin:** [imneme/pcg-cpp PR #99](https://github.com/imneme/pcg-cpp/pull/99)
29+
- **Author:** [Demonese](https://github.com/Demonese)
3130
- **Description:** Added native support for ARM64 on MSVC using `__umulh` for efficient 128-bit multiplication.
3231

32+
## Total-Random Improvements
33+
3334
### 6. Modern CMake Build System
3435
- **Author:** [Total-Random](https://github.com/Total-Random)
3536
- **Description:** Comprehensive CMake integration with `find_package` support and automated testing via `ctest`.

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ This is the **maintained** version of the PCG C++ library, hosted by the **Total
1313

1414
The original repository by Melissa O'Neill (`imneme/pcg-cpp`) has been a cornerstone of the C++ ecosystem but hasn't seen updates in several years. **Total-Random** exists to keep such vital legacy libraries alive by integrating community fixes, supporting new architectures, and fixing build breakages on modern IDEs.
1515

16-
### Key Improvements in this Fork:
17-
- **Windows ARM64 Support**: Native support for MSVC on ARM64 architectures (Surface Pro, Apple Silicon via VM, etc.) using `__umulh` intrinsics.
16+
### Key Improvements and Integrated Fixes:
17+
- **Windows ARM64 Support**: Integrated native support for MSVC on ARM64 architectures (Surface Pro, Apple Silicon via VM, etc.) using `__umulh` intrinsics.
1818
- **Improved MSVC Compatibility**: Fixed ambiguous operator errors (`C2678`) in `set_stream` and `operator>>`.
19-
- **Optimized `unxorshift`**: Implemented an optimized version of the inverse xorshift operation, improving performance for large integer types.
19+
- **Optimized `unxorshift`**: Integrated an optimized version of the inverse xorshift operation for better performance.
2020
- **Consistent Typing**: Unified integer type handling across different platforms to avoid compiler warnings and errors.
2121

2222
Detailed information about integrated community fixes and contributors can be found in [CREDITS.md](CREDITS.md).

include/pcg_uint128.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -737,6 +737,7 @@ uint_x4<UInt,UIntX2> operator*(const uint_x4<UInt,UIntX2>& a,
737737
#if defined(_M_AMD64) || defined(_M_IX86)
738738
#pragma intrinsic(_umul128)
739739
#elif defined(_M_ARM64)
740+
// This fix is from imneme/pcg-cpp PR #99 by Demonese
740741
#pragma intrinsic(__umulh)
741742
#else
742743
#error Unsupported architecture

0 commit comments

Comments
 (0)