mirror of
https://github.com/libretro/libretro-common.git
synced 2026-11-07 11:06:12 -10:00
9863d6937afa21fb40bdcf373bf72a32d430230d
* libco mips * Add VFP saving and restore * libco/mips: Optimize storage for 32-bit CPUs * Clarify license status * Increase sp alignment to 16 bytes for safety * libco/mips: preserve registers according to the target ISA and ABI Distinguish MIPS32 from 64-bit GPR ISAs, and sign-extend 32-bit ABI pointers when initializing 64-bit context slots. Save full double-precision FP state, including the n64 odd callee-saved registers, and omit FP instructions for soft-float builds. Reserve aligned, non-overlapping FP and VFPU areas. * libco/mips: initialize t9 when entering a coroutine PIC entry functions use t9 to establish their global pointer. Set it to the restored entry address before jumping, and keep the handwritten context-switch assembly in its own text section with explicit delay-slot scheduling. * libco/mips: reject overflowing stack allocations Reject sizes that overflow when context overhead and alignment are added. Also check the documented nonzero error return from posix_memalign. * libco/mips: add coroutine and floating-point regression coverage --------- Co-authored-by: Codex <[email protected]>
Description
Reusable coding blocks useful for libretro core and frontend development, written primarily in C. Permissively licensed.
20 MiB
0 Stars
1 Watchers
0 Forks
Languages
C
95.2%
C++
3.8%
Python
0.4%
SourcePawn
0.3%
Objective-C
0.1%
Other
0.1%