Dapeng Gao
Dapeng Gao
# Summary The Morello ABI [specifies](https://github.com/ARM-software/abi-aa/blob/main/aapcs64-morello/aapcs64-morello.rst#parameter-passing) that at most 8 arguments of a C function can be passed explicitly in registers. Any additional arguments must be ‘spilled’ onto the stack...
This patch * removes code that unnecessarily saves certain non-callee-saved registers (e.g. `r8`-`r18`) into the PCB, and * reorganises the some arm64 assembly code to make them easier to modify...
This PR tracks the library-based compartmentalisation implementation. For more information, see the related [Cheripedia article](https://github.com/CTSRD-CHERI/cheripedia/wiki/Library-based-Compartmentalisation).
This reorganises the assembly code in `swtch.S` without affecting functionality.
The default RTLD is modified to allow you to turn compartmentalisation on by setting the environment variable `LD_COMPARTMENT_ENABLE`. Without setting the environment variable, RTLD behaves exactly as before.
When a trampoline is interrupted in the middle of constructing a new trusted frame, a half-constructed invalid frame would be left on the trusted stack, which may confuse unwinders. There...
A load from a capability with an invalid tag happens in _rtld_bind_start which seems to suggest data corruption.
The brings the major bug fixes to RTLD in the demo branch to dev.
# Background The library-based compartmentalisation model enables a pair of mutually distrusting function caller and callee to pass data between each other through function arguments and return values while at...
First, thank you for documenting your work online! I've been going through SICM lately, too, and I'm sure these material will be very helpful. I do think, however, that this...