This commit is contained in:
Igor Pavlov
2022-06-23 11:43:16 +01:00
committed by Kornel
parent c3529a41f5
commit ec44a8a070
1248 changed files with 15242 additions and 2443 deletions

0
Asm/arm/7zCrcOpt.asm Normal file → Executable file
View File

0
Asm/arm64/7zAsm.S Normal file → Executable file
View File

0
Asm/arm64/LzmaDecOpt.S Normal file → Executable file
View File

7
Asm/x86/7zAsm.asm Normal file → Executable file
View File

@@ -1,7 +1,12 @@
; 7zAsm.asm -- ASM macros ; 7zAsm.asm -- ASM macros
; 2021-12-25 : Igor Pavlov : Public domain ; 2022-05-16 : Igor Pavlov : Public domain
; UASM can require these changes
; OPTION FRAMEPRESERVEFLAGS:ON
; OPTION PROLOGUE:NONE
; OPTION EPILOGUE:NONE
ifdef @wordsize ifdef @wordsize
; @wordsize is defined only in JWASM and ASMC and is not defined in MASM ; @wordsize is defined only in JWASM and ASMC and is not defined in MASM
; @wordsize eq 8 for 64-bit x64 ; @wordsize eq 8 for 64-bit x64

0
Asm/x86/7zCrcOpt.asm Normal file → Executable file
View File

0
Asm/x86/AesOpt.asm Normal file → Executable file
View File

0
Asm/x86/LzFindOpt.asm Normal file → Executable file
View File

0
Asm/x86/LzmaDecOpt.asm Normal file → Executable file
View File

0
Asm/x86/Sha1Opt.asm Normal file → Executable file
View File

32
Asm/x86/Sha256Opt.asm Normal file → Executable file
View File

@@ -1,5 +1,5 @@
; Sha256Opt.asm -- SHA-256 optimized code for SHA-256 x86 hardware instructions ; Sha256Opt.asm -- SHA-256 optimized code for SHA-256 x86 hardware instructions
; 2021-03-10 : Igor Pavlov : Public domain ; 2022-04-17 : Igor Pavlov : Public domain
include 7zAsm.asm include 7zAsm.asm
@@ -55,13 +55,19 @@ ifndef x64
.xmm .xmm
endif endif
; jwasm-based assemblers for linux and linker from new versions of binutils
; can generate incorrect code for load [ARRAY + offset] instructions.
; 22.00: we load K_CONST offset to (rTable) register to avoid jwasm+binutils problem
rTable equ r0
; rTable equ K_CONST
ifdef x64 ifdef x64
rNum equ REG_ABI_PARAM_2 rNum equ REG_ABI_PARAM_2
if (IS_LINUX eq 0) if (IS_LINUX eq 0)
LOCAL_SIZE equ (16 * 2) LOCAL_SIZE equ (16 * 2)
endif endif
else else
rNum equ r0 rNum equ r3
LOCAL_SIZE equ (16 * 1) LOCAL_SIZE equ (16 * 1)
endif endif
@@ -103,15 +109,18 @@ MY_PROLOG macro
movdqa [r4 + 16], xmm9 movdqa [r4 + 16], xmm9
endif endif
else ; x86 else ; x86
if (IS_CDECL gt 0) push r3
mov rState, [r4 + REG_SIZE * 1]
mov rData, [r4 + REG_SIZE * 2]
mov rNum, [r4 + REG_SIZE * 3]
else ; fastcall
mov rNum, [r4 + REG_SIZE * 1]
endif
push r5 push r5
mov r5, r4 mov r5, r4
NUM_PUSH_REGS equ 2
PARAM_OFFSET equ (REG_SIZE * (1 + NUM_PUSH_REGS))
if (IS_CDECL gt 0)
mov rState, [r4 + PARAM_OFFSET]
mov rData, [r4 + PARAM_OFFSET + REG_SIZE * 1]
mov rNum, [r4 + PARAM_OFFSET + REG_SIZE * 2]
else ; fastcall
mov rNum, [r4 + PARAM_OFFSET]
endif
and r4, -16 and r4, -16
sub r4, LOCAL_SIZE sub r4, LOCAL_SIZE
endif endif
@@ -129,6 +138,7 @@ MY_EPILOG macro
else ; x86 else ; x86
mov r4, r5 mov r4, r5
pop r5 pop r5
pop r3
endif endif
MY_ENDP MY_ENDP
endm endm
@@ -171,7 +181,7 @@ pre2 equ 2
RND4 macro k RND4 macro k
movdqa msg, xmmword ptr [K_CONST + (k) * 16] movdqa msg, xmmword ptr [rTable + (k) * 16]
paddd msg, @CatStr(xmm, %(w_regs + ((k + 0) mod 4))) paddd msg, @CatStr(xmm, %(w_regs + ((k + 0) mod 4)))
MY_sha256rnds2 state0_N, state1_N MY_sha256rnds2 state0_N, state1_N
pshufd msg, msg, 0eH pshufd msg, msg, 0eH
@@ -210,6 +220,8 @@ endm
MY_PROC Sha256_UpdateBlocks_HW, 3 MY_PROC Sha256_UpdateBlocks_HW, 3
MY_PROLOG MY_PROLOG
lea rTable, [K_CONST]
cmp rNum, 0 cmp rNum, 0
je end_c je end_c

0
Asm/x86/XzCrc64Opt.asm Normal file → Executable file
View File

0
C/7z.h Normal file → Executable file
View File

0
C/7zAlloc.c Normal file → Executable file
View File

0
C/7zAlloc.h Normal file → Executable file
View File

0
C/7zArcIn.c Normal file → Executable file
View File

0
C/7zBuf.c Normal file → Executable file
View File

0
C/7zBuf.h Normal file → Executable file
View File

0
C/7zBuf2.c Normal file → Executable file
View File

0
C/7zCrc.c Normal file → Executable file
View File

0
C/7zCrc.h Normal file → Executable file
View File

0
C/7zCrcOpt.c Normal file → Executable file
View File

0
C/7zDec.c Normal file → Executable file
View File

0
C/7zFile.c Normal file → Executable file
View File

0
C/7zFile.h Normal file → Executable file
View File

0
C/7zStream.c Normal file → Executable file
View File

14
C/7zTypes.h Normal file → Executable file
View File

@@ -1,5 +1,5 @@
/* 7zTypes.h -- Basic types /* 7zTypes.h -- Basic types
2021-12-25 : Igor Pavlov : Public domain */ 2022-04-01 : Igor Pavlov : Public domain */
#ifndef __7Z_TYPES_H #ifndef __7Z_TYPES_H
#define __7Z_TYPES_H #define __7Z_TYPES_H
@@ -133,10 +133,6 @@ typedef int WRes;
#define MY__E_ERROR_NEGATIVE_SEEK MY_HRESULT_FROM_errno_CONST_ERROR(EINVAL) #define MY__E_ERROR_NEGATIVE_SEEK MY_HRESULT_FROM_errno_CONST_ERROR(EINVAL)
*/ */
// gcc / clang : (sizeof(long) == sizeof(void*)) in 32/64 bits
typedef long INT_PTR;
typedef unsigned long UINT_PTR;
#define TEXT(quote) quote #define TEXT(quote) quote
#define FILE_ATTRIBUTE_READONLY 0x0001 #define FILE_ATTRIBUTE_READONLY 0x0001
@@ -520,6 +516,14 @@ struct ISzAlloc
#endif #endif
#define k_PropVar_TimePrec_0 0
#define k_PropVar_TimePrec_Unix 1
#define k_PropVar_TimePrec_DOS 2
#define k_PropVar_TimePrec_HighPrec 3
#define k_PropVar_TimePrec_Base 16
#define k_PropVar_TimePrec_100ns (k_PropVar_TimePrec_Base + 7)
#define k_PropVar_TimePrec_1ns (k_PropVar_TimePrec_Base + 9)
EXTERN_C_END EXTERN_C_END
#endif #endif

10
C/7zVersion.h Normal file → Executable file
View File

@@ -1,7 +1,7 @@
#define MY_VER_MAJOR 21 #define MY_VER_MAJOR 22
#define MY_VER_MINOR 07 #define MY_VER_MINOR 00
#define MY_VER_BUILD 0 #define MY_VER_BUILD 0
#define MY_VERSION_NUMBERS "21.07" #define MY_VERSION_NUMBERS "22.00"
#define MY_VERSION MY_VERSION_NUMBERS #define MY_VERSION MY_VERSION_NUMBERS
#ifdef MY_CPU_NAME #ifdef MY_CPU_NAME
@@ -10,12 +10,12 @@
#define MY_VERSION_CPU MY_VERSION #define MY_VERSION_CPU MY_VERSION
#endif #endif
#define MY_DATE "2021-12-26" #define MY_DATE "2022-06-15"
#undef MY_COPYRIGHT #undef MY_COPYRIGHT
#undef MY_VERSION_COPYRIGHT_DATE #undef MY_VERSION_COPYRIGHT_DATE
#define MY_AUTHOR_NAME "Igor Pavlov" #define MY_AUTHOR_NAME "Igor Pavlov"
#define MY_COPYRIGHT_PD "Igor Pavlov : Public domain" #define MY_COPYRIGHT_PD "Igor Pavlov : Public domain"
#define MY_COPYRIGHT_CR "Copyright (c) 1999-2021 Igor Pavlov" #define MY_COPYRIGHT_CR "Copyright (c) 1999-2022 Igor Pavlov"
#ifdef USE_COPYRIGHT_CR #ifdef USE_COPYRIGHT_CR
#define MY_COPYRIGHT MY_COPYRIGHT_CR #define MY_COPYRIGHT MY_COPYRIGHT_CR

0
C/7zVersion.rc Normal file → Executable file
View File

0
C/7zip_gcc_c.mak Normal file → Executable file
View File

0
C/Aes.c Normal file → Executable file
View File

0
C/Aes.h Normal file → Executable file
View File

0
C/AesOpt.c Normal file → Executable file
View File

0
C/Alloc.c Normal file → Executable file
View File

0
C/Alloc.h Normal file → Executable file
View File

0
C/Bcj2.c Normal file → Executable file
View File

0
C/Bcj2.h Normal file → Executable file
View File

0
C/Bcj2Enc.c Normal file → Executable file
View File

0
C/Blake2.h Normal file → Executable file
View File

0
C/Blake2s.c Normal file → Executable file
View File

0
C/Bra.c Normal file → Executable file
View File

0
C/Bra.h Normal file → Executable file
View File

0
C/Bra86.c Normal file → Executable file
View File

0
C/BraIA64.c Normal file → Executable file
View File

0
C/BwtSort.c Normal file → Executable file
View File

0
C/BwtSort.h Normal file → Executable file
View File

0
C/Compiler.h Normal file → Executable file
View File

0
C/CpuArch.c Normal file → Executable file
View File

0
C/CpuArch.h Normal file → Executable file
View File

0
C/Delta.c Normal file → Executable file
View File

0
C/Delta.h Normal file → Executable file
View File

0
C/DllSecur.c Normal file → Executable file
View File

0
C/DllSecur.h Normal file → Executable file
View File

0
C/HuffEnc.c Normal file → Executable file
View File

0
C/HuffEnc.h Normal file → Executable file
View File

0
C/LzFind.c Normal file → Executable file
View File

0
C/LzFind.h Normal file → Executable file
View File

0
C/LzFindMt.c Normal file → Executable file
View File

0
C/LzFindMt.h Normal file → Executable file
View File

0
C/LzFindOpt.c Normal file → Executable file
View File

0
C/LzHash.h Normal file → Executable file
View File

0
C/Lzma2Dec.c Normal file → Executable file
View File

0
C/Lzma2Dec.h Normal file → Executable file
View File

0
C/Lzma2DecMt.c Normal file → Executable file
View File

0
C/Lzma2DecMt.h Normal file → Executable file
View File

0
C/Lzma2Enc.c Normal file → Executable file
View File

0
C/Lzma2Enc.h Normal file → Executable file
View File

0
C/Lzma86.h Normal file → Executable file
View File

0
C/Lzma86Dec.c Normal file → Executable file
View File

0
C/Lzma86Enc.c Normal file → Executable file
View File

0
C/LzmaDec.c Normal file → Executable file
View File

0
C/LzmaDec.h Normal file → Executable file
View File

0
C/LzmaEnc.c Normal file → Executable file
View File

0
C/LzmaEnc.h Normal file → Executable file
View File

0
C/LzmaLib.c Normal file → Executable file
View File

0
C/LzmaLib.h Normal file → Executable file
View File

0
C/MtCoder.c Normal file → Executable file
View File

0
C/MtCoder.h Normal file → Executable file
View File

0
C/MtDec.c Normal file → Executable file
View File

0
C/MtDec.h Normal file → Executable file
View File

0
C/Ppmd.h Normal file → Executable file
View File

0
C/Ppmd7.c Normal file → Executable file
View File

0
C/Ppmd7.h Normal file → Executable file
View File

0
C/Ppmd7Dec.c Normal file → Executable file
View File

0
C/Ppmd7Enc.c Normal file → Executable file
View File

0
C/Ppmd7aDec.c Normal file → Executable file
View File

0
C/Ppmd8.c Normal file → Executable file
View File

0
C/Ppmd8.h Normal file → Executable file
View File

0
C/Ppmd8Dec.c Normal file → Executable file
View File

0
C/Ppmd8Enc.c Normal file → Executable file
View File

0
C/Precomp.h Normal file → Executable file
View File

0
C/RotateDefs.h Normal file → Executable file
View File

0
C/Sha1.c Normal file → Executable file
View File

0
C/Sha1.h Normal file → Executable file
View File

0
C/Sha1Opt.c Normal file → Executable file
View File

0
C/Sha256.c Normal file → Executable file
View File

0
C/Sha256.h Normal file → Executable file
View File

0
C/Sha256Opt.c Normal file → Executable file
View File

0
C/Sort.c Normal file → Executable file
View File

0
C/Sort.h Normal file → Executable file
View File

0
C/Threads.c Normal file → Executable file
View File

Some files were not shown because too many files have changed in this diff Show More