| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
i#5383 mac a64, part 1: Build on M1 (#5610) This patch adds enough support to run simple hello world on M1 MacOS. It separates x86 and aarch64 Mac code in many places, adjusts the TLS from tpidr_el0 to tpidrro_el0, tweaks the assembly syntax, adds support for decoding and handling some of the pointer authentication opcodes in ARMv8.3 (mainly just strips off any PAC bits before jumping anywhere), adds pthread_jit_write_protect_np() calls for written executable code, and updates the system call number register. There are a number of unresolved and missing pieces, which are marked with comments in the code: + DR_TLS_BASE_OFFSET needs further investigation + dynamorio_{sigreturn,exit} are NYI + The pointer authentication opcodes need tests, and the full set of opcodes needs to be added + The gettimeofday library call inserted here should be replaced with a system call. + The PTHREAD_JIT_WRITE calls are likely missing from some places and not at the right level to be most efficient. Original version contributed by: Anthony Romano <anthony@forallsecure.com> Co-authored-by: Anthony Romano <anthony@forallsecure.com> Issue: #5383 | 3 年前 | |
| 5 年前 | ||
Aarch64: Remove unused function get_fcache_return_tls_offs (#6296) The internal API get_fcache_return_tls_offs() was never used in Aarch64 and this patch removes it. Also changed the function signature in ARM to be static. | 2 年前 | |
i#3315,i#3348: Move mem{cpy,set,move} into memfuncs on AArchXX (#4309) Provides isolation of mem{cpy,set,move} in the DR static library on AArchXX. Moves the assembly mem{cpy,set} into a separate memfuncs.asm for arm and aarch64, and links in memmove.c. Marks the __mem{cpy,set}_chk aliases as weak. This brings AArchXX into parity with x86 on library symbol isolation. Removes the exceptions for AArchXX in the CMake_symbol_check test. Confirms the build-time test fails without the code changes here: CMake Error at xxx/core/CMake_symbol_check.cmake:98 (message): *** Error: xxx/build_a64_dbg_tests/lib64/debug/libdynamorio_static_nohide.a contains a likely-to-conflict symbol: 4279: 00000000002cea3c 0 FUNC GLOBAL HIDDEN 248 memcpy Issue: #3315, #3348 | 5 年前 | |
i#2876 clang-format: massive reformat of every file (#3093) Massive clang-format of every C or C++ source file (*.h, *.c, *.cpp), except for: + third_party/ + ext/drsysm/libelftc/include/ + ext/drsyms/demangle.cc This is a single, large commit by design to present a single history disruption point and bring the code base into a consistent format. clang-format version 6.0 was used. Tweaks the clang-format rules to indent 4 after pre-processor hashes, to allow single-line case labels, and align trailing comments. Disables the pp_indent vera style check as we changed the indent rule and clang-format now covers it. Leaves the other checks, even though some are redundant (they found clang-format errors). Moves C++ token defines from globals_shared.h and globals.h to a new header, core/lib/c_defines.h, to avoid a clang-format parsing error where it fails to identify the include guard. Adds genapi.pl removal of extra indentation inside API_EXPORT_ONLY and CLIENT_INTERFACE regions. Adds exclusions around large regions we don't want to format, in these files: + core/win32/syscallx.h + core/arch/x86/decode_table.c + core/arch/arm/table_a32_pred.c + core/arch/arm/table_a32_unpred.c + core/arch/arm/table_t32_16.c + core/arch/arm/table_t32_16_it.c + core/arch/arm/table_t32_base.c + core/arch/arm/table_t32_coproc.c + core/arch/arm/table_encode.c Adds smaller exclusions to work around clang-format bugs: + Several missing break-after-return-type + Several >90-char lines + Misc scattered issues, all listed in #2876 Issue: #2876 | 7 年前 | |
i#1312 AVX-512 support: Support copying signal frame extended state. (#3766) Adds 64-bit mode support for copying the AVX-512 state components to and from signal frames. In order to know the offsets, like the kernel, we query cpuid for the state component's offset in the extended xsave area region. No measures have been taken in terms of lazy context copying since no AVX-512 instructions are introduced. Instead, we stick to the process's xsave configuration. It is unclear what the kernel does in 32-bit mode. The cpuid offsets seem to be invalid for the AVX-512 state components in 32-bit. DynamoRIO does not copy the state in 32-bit mode yet. The test linux.sigcontext has been extended to testing AVX-512 state in 64-bit mode. Fixes incorrect XCR0 bit position definitions introduced in 6ff52d9. Fixes a latent bug, setting the right user state components when executing xsave/xsave64. It also adds a comment explaining how the current kernel behavior of filling in state as part of the extended xsave area in signal frames in 32-bit mode is unclear and needs more work or at least an explicit explanation that those components are not populated. Removes multiple stale XXX i#1312 comments. Starting with this patch, DynamoRIO has experimental support for running full 64-bit unix AVX-512 applications and we encourage users to file issues, should any be discovered. 32-bit mode AVX-512 state components in signal frames and some context managing parts in Windows and MacOS in general are not yet supported. Certain client API like instr_compute_address_ex() is not yet fully supported for AVX-512 on any system. AVX-512 opcode values are expected to be stable but clients should refrain from relying on binary compatibility in this regard until issue i#1312 has been closed. Issue: #1312 | 6 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 3 年前 | ||
| 5 年前 | ||
| 2 年前 | ||
| 5 年前 | ||
| 7 年前 | ||
| 6 年前 |