Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Comment: | {6324} another fix for IsValidUtf8Avx2() on Win64 - wrong conditional was used ;) |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
962c8e03ccf0d54944a471e372b7dbae |
User & Date: | ab 2021-09-15 06:36:14 |
2021-09-23
| ||
19:22 | {6325} let TSQLDBPostgresConnection handle 'host:port' as ServerName - backport of https://github.com/synopse/mORMot2/commit/0972493b35efe169e9372d245f793074b23999b5 check-in: 6b8d504b46 user: ab tags: trunk | |
2021-09-15
| ||
06:36 | {6324} another fix for IsValidUtf8Avx2() on Win64 - wrong conditional was used ;) check-in: 962c8e03cc user: ab tags: trunk | |
2021-09-14
| ||
15:52 | {6323} fixed IsValidUtf8Avx2() on Win64 check-in: 7db5063372 user: ab tags: trunk | |
Changes to SynTable.pas.
9139
9140
9141
9142
9143
9144
9145
9146
9147
9148
9149
9150
9151
9152
9153
9154
9155
9156
....
9215
9216
9217
9218
9219
9220
9221
9222
9223
9224
9225
9226
9227
9228
9229
9230
9231
9232
|
// adapted from https://github.com/simdjson/simdjson - Apache License 2.0 function IsValidUtf8LenAvx2(source: PUtf8Char; sourcelen: PtrInt): boolean; {$ifdef FPC}nostackframe; assembler; asm {$else} asm .noframe {$endif FPC} test source, source jz @ok test sourcelen, sourcelen jle @ok {$ifdef WIN64ABI} // Win64 ABI doesn't consider rsi/rdi as volatile push rsi push rdi {$endif WIN64ABI} push rbp mov r8, source mov rdx, sourcelen mov rsi, r8 mov ecx, 64 mov rax, rsi mov rdi, rdx ................................................................................ test eax, eax jne @last @ended: vpor ymm5, ymm5, ymm4 @final: vptest ymm5, ymm5 sete al vzeroupper leave // mov rsp,rbp + pop rbp {$ifdef WIN64ABI} pop rdi pop rsi {$endif WIN64ABI} ret @ok: mov al, 1 ret @small: vpxor xmm4, xmm4, xmm4 xor esi, esi vmovdqa ymm3, ymm4 vmovdqa ymm5, ymm4 |
|
|
|
|
|
9139
9140
9141
9142
9143
9144
9145
9146
9147
9148
9149
9150
9151
9152
9153
9154
9155
9156
....
9215
9216
9217
9218
9219
9220
9221
9222
9223
9224
9225
9226
9227
9228
9229
9230
9231
9232
|
// adapted from https://github.com/simdjson/simdjson - Apache License 2.0 function IsValidUtf8LenAvx2(source: PUtf8Char; sourcelen: PtrInt): boolean; {$ifdef FPC}nostackframe; assembler; asm {$else} asm .noframe {$endif FPC} test source, source jz @ok test sourcelen, sourcelen jle @ok {$ifdef win64} // this ABI doesn't consider rsi/rdi as volatile push rsi push rdi {$endif} push rbp mov r8, source mov rdx, sourcelen mov rsi, r8 mov ecx, 64 mov rax, rsi mov rdi, rdx ................................................................................ test eax, eax jne @last @ended: vpor ymm5, ymm5, ymm4 @final: vptest ymm5, ymm5 sete al vzeroupper leave // mov rsp,rbp + pop rbp {$ifdef win64} pop rdi pop rsi {$endif} ret @ok: mov al, 1 ret @small: vpxor xmm4, xmm4, xmm4 xor esi, esi vmovdqa ymm3, ymm4 vmovdqa ymm5, ymm4 |
Changes to SynopseCommit.inc.
1 |
'1.18.6323'
|
| |
1 |
'1.18.6324'
|