arm64 --nrv2d instruction confusion

https://github.com/upx/upx/issues/806

ARM Architecture Reference Manual
    ARMv8, for ARMv8-A architecture profile
Section C6.2.47, page C6-595 (note the 'invert'!)
    CINC <Wd>, <Wn>, <cond>
    is equivalent to
    CSINC <Wd>, <Wn>, <Wn>, invert(<cond>)

	modified:   src/stub/src/arch/arm64/v8/nrv2d_d32.S
	modified:   misc/testsuite/upx_testsuite_1-expected_sha256sums.sh

	modified:   src/stub/arm64-darwin.macho-entry.h
	modified:   src/stub/arm64-linux.elf-entry.h
	modified:   src/stub/arm64-linux.elf-so_fold.h
	modified:   src/stub/arm64-linux.shlib-init.h
	modified:   src/stub/arm64-win64.pe.h
This commit is contained in:
John Reiser
2024-04-07 14:01:19 -07:00
parent d48a7d303d
commit 91f5fe1c0e
7 changed files with 17 additions and 17 deletions
+3 -3
View File
@@ -33,8 +33,8 @@
/* clang-format off */
#define STUB_ARM64_LINUX_ELF_SO_FOLD_SIZE 16470
#define STUB_ARM64_LINUX_ELF_SO_FOLD_ADLER32 0xa5255ed2
#define STUB_ARM64_LINUX_ELF_SO_FOLD_CRC32 0x6f40b8e7
#define STUB_ARM64_LINUX_ELF_SO_FOLD_ADLER32 0x7b285ec2
#define STUB_ARM64_LINUX_ELF_SO_FOLD_CRC32 0x0dde2064
unsigned char stub_arm64_linux_elf_so_fold[16470] = {
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -256,7 +256,7 @@ unsigned char stub_arm64_linux_elf_so_fold[16470] = {
/* 0x0d80 */ 2, 0, 0, 20,226,255,255,151, 33, 0, 1, 58,224,255,255,151,
/* 0x0d90 */ 33, 0, 1, 58,225, 0, 0, 84, 33, 0,128, 82,220,255,255,151,
/* 0x0da0 */ 33, 0, 1, 58,218,255,255,151,163,255,255, 84, 33, 8, 0, 17,
/* 0x0db0 */ 33, 4, 0, 17,191, 0, 20, 49, 33, 52,129, 26, 67, 0, 64, 57,
/* 0x0db0 */ 33, 4, 0, 17,191, 0, 20, 49, 33, 36,129, 26, 67, 0, 64, 57,
/* 0x0dc0 */ 67,200,101, 56, 67, 20, 0, 56, 33, 4, 0,113,161,255,255, 84,
/* 0x0dd0 */ 215,255,255, 23, 1, 64, 33,139,225, 11,190,169,227,123, 1,169,
/* 0x0de0 */ 5, 0,128, 18, 4, 0,176, 82, 52, 0, 0, 20,228,123, 65,169,