[RISCV] Add assembler and disassembler support for Xqccmt extension (#197673)
Xqccmt is Qualcomm's vendor extension providing compressed (16-bit) jump
table instructions, equivalent to (and mutually exclusive with) the
standard Zcmt extension.
Two instructions are added:
- qc.cm.jt (index 0-31): jump via table, no link register written
- qc.cm.jalt (index 32-255): jump via table with link; bit 0 of the jump
table entry selects the link register at runtime: 0 = ra (x1), 1 = t0
(x5)
The encoding is identical to cm.jt/cm.jalt from Zcmt. Xqccmt and Zcmt
are mutually exclusive and cannot be combined. Xqccmt is also
incompatible with Zcd (overlapping encoding space).
Spec: https://github.com/riscv/riscv-unified-db/pull/1788
relayd: add support for the MKCALENDAR HTTP method
relayd is missing this method from the WebDAV/CalDAV extensions. This causes
issues when using relayd as a reverse proxy in front of CalDAV servers like
Nextcloud.
OK kirill@
lang/micropython: upgrade to 1.28.0
- Add mbedtls and micropython-lib submodules via GH_TUPLE
- Use POSIX semaphores for mp_thread_mutex_t to fix cross-thread unlock
on FreeBSD (PTHREAD_MUTEX_ERRORCHECK rejects non-owner unlock with EPERM)
- Remove -Werror from mpy-cross and unix port Makefiles
- Fix select_poll_fd test: FreeBSD poll(2) checks kern.maxfilesperproc
(not RLIMIT_NOFILE), so print SKIP instead of assert False when 6000
fds do not trigger EINVAL
- Update ffi test patches for FreeBSD libc.so.7
- Compile ffi_lib.so in pre-test for ffi_int_* tests
[lldb][bytecode] Add GetParent and Clone selectors (#197312)
`GetParent` and `Clone` are needed to implement a `std::optional<T>`
data formatter for libc++.
Add sambat(4), a battery monitor for the SAM060B EC, like found on the
Samsung Galaxy Book4 Edge.
Thanks to Maxim Storetvedt for pointing us to the reversed engineering
specs.
Initial feedback and input from kettenis@.
ok deraadt@
[X86] Remove extra MOV after widening atomic store
This change adds patterns to optimize out an extra MOV present after
widening the atomic store. Covers <2 x i8> (SSE4.1+), <2 x i16>,
<4 x i8>, <2 x i32>, <2 x float>, <4 x i16>, <2 x ptr addrspace(270)>.
[SelectionDAG] Widen <2 x T> vector types for atomic store
Vector types of 2 elements must be widened. This change does this
for vector types of atomic store in SelectionDAG so that it can
translate aligned vectors of >1 size.
[lldb] Increase availability of ValueObject::GetParent (#197311)
While working formatter bytecode, one of the C++ formatters needs
`GetParent`. While adding `GetParent` support in the bytecode, I noticed
the SB API also does not expose `GetParent`. This remedies that.
During review of this PR, it was pointed out that `GetParent` does work
with synthetic value objects. This PR also addresses that shortcoming.
Assisted-by: claude
[clang][bytecode] Improve constexpr-unknown handling (#196334)
1) Global variables as well as dummies can not be marked
constexpr-unknown. There is a subtlety here with global variables: we
can't register it as constexpr-unknown and later figure out that it
actually _isn't_.
2) Add a `GetRefGlobal` op similar to the existing `GetRefLocal`.
3) Reject constexpr-unknown values in `CmpHelperEQ<Pointer>`
4) Diagnose constexpr-unknown values in `GetTypeidPtr`
linuxkpi: work with numpages > 1 in the set_pages_*() KPIs
These calls are used for buddy pages at least in drm's ttm_pool, which
leads to a panic when we invoke lowmem handlers and drm tries to shrink
the pool.
Cope with numpages > 1 by traversing the contiguous pages and executing
the adjustment there, as well, as suggested by markj@. Previous
versions have tried to use the corresponding `set_memory_*()` functions,
but it is believed that not updating `md.pat_mode` breaks subsequent
userspace mappings in ways that may result in things like screen tearing
or other artifacts when running i915kms.
This stabilized my amdgpu laptop running two VMs, chromium and a
concurrent buildworld.
Reviewed by: bz, markj
Differential Revision: https://reviews.freebsd.org/D57004