Commit Graph

1486 Commits

Author SHA1 Message Date
Michael Scire
358cd4d95f hos: allow turning off ams extension hard-reqs for unit testing 2021-10-26 01:11:17 -07:00
Michael Scire
de5b6169d6 kern: add toggleable support for 40-bit physaddr caps 2021-10-26 01:11:17 -07:00
Michael Scire
2eab77fe5a util: add trait/macro for is_constexpr_constructible 2021-10-26 01:11:17 -07:00
Michael Scire
194e58a3e3 kern/test: add wip qemu-virt board support to mesosphere 2021-10-26 01:11:16 -07:00
Michael Scire
5f0eb19a41 kernel_ldr: bring initial cache flush in line with Nintendo 2021-10-26 01:11:16 -07:00
Michael Scire
38a4dadd9e kern: reflect nintendo cache management behavior for initial processes 2021-10-26 01:11:16 -07:00
Michael Scire
1713d12946 kern: devirtualize KReadableEvent::Reset, KWorkerTask::DoWorkerTask 2021-10-26 01:11:15 -07:00
Michael Scire
3852d02696 kern: enable lto for global instants (saves about a page in deduplicated code) 2021-10-26 01:11:15 -07:00
Michael Scire
5217e6b9f3 kern: devirtualize KAutoObjectWithList::GetId() 2021-10-26 01:11:15 -07:00
Michael Scire
4aefb1163c kern: fix reorder-init in KHandleTable 2021-10-26 01:11:15 -07:00
Michael Scire
62bdae5b3f kern: devirtualize most things that are free to devirtualize (see #1672) 2021-10-26 01:11:15 -07:00
Michael Scire
8f761e928c kern: optimize timespan -> tick codegen, improve .text layout 2021-10-26 01:11:14 -07:00
Michael Scire
6dbdfa0384 kern: use optimized red black tree finds for remaining holdouts 2021-10-26 01:11:14 -07:00
Michael Scire
7749ecabc4 kern: devirtualize several KAutoObject functions 2021-10-26 01:11:14 -07:00
Michael Scire
89f01cb068 kern: KCacheHelper: better reflect nintendo coremask clearing logic 2021-10-26 01:11:14 -07:00
Michael Scire
d3ad53a525 kern: devirtualize remaining vcall for class token/dyncast 2021-10-26 01:11:13 -07:00
SciresM
823c0df6b9 kern: avoid constexpr init for many objects (avoids unnecessary memory clear) (#1668) 2021-10-26 01:11:13 -07:00
Michael Scire
00353a05e9 kern: use new AtomicRef, use Atomic<bool> 2021-10-26 01:11:13 -07:00
Michael Scire
0d1ec0739f util: better match true std::atomic semantics 2021-10-26 01:11:13 -07:00
Michael Scire
d3b358bbb9 kern/util: use custom atomics wrapper to substantially improve codegen 2021-10-26 01:11:12 -07:00
Michael Scire
6f9d5ecd0d kern: use 13.0.0 revised KLightLock logic 2021-10-26 01:11:12 -07:00
Michael Scire
c77900d598 kern: fix capability check for thread priorities 2021-10-26 01:11:12 -07:00
Michael Scire
d9d6d52575 kern: remove spurious assertion 2021-10-26 01:11:12 -07:00
Michael Scire
573769303b kern: update scheduler for 13.0.0 change, fix some ctz/clz bugs 2021-10-26 01:11:11 -07:00
Michael Scire
2827f6300e kern: fix use of plr vs plr_heap, fix close/unlock order in ArbitrateLock 2021-10-26 01:11:11 -07:00
Michael Scire
87e4f1b896 ams-libs: move -Wno-invalid-offsetof to cxxflags, not cflags 2021-10-26 01:11:11 -07:00
Michael Scire
99521b37ab ams-libs: use nintendo_nx identifier for source file compat bpmp<->ccplex 2021-10-26 01:11:11 -07:00
Michael Scire
ea0de678ac lr: fix EraseRedirection hang introduced by refactoring 2021-10-26 01:11:11 -07:00
Michael Scire
960c5c19f9 ams: improve offsetof style consistency 2021-10-26 01:11:10 -07:00
Michael Scire
191d2941b5 util: improve (and use) offsetof that's """standard compliant""" 2021-10-26 01:11:10 -07:00
Michael Scire
21cb300537 constexpr: resign ourselves to gcc dropping void -> T support 2021-10-26 01:11:10 -07:00
Michael Scire
e9c82af25f kern: remove need for explicit reserved member in KAutoObject 2021-10-26 01:11:10 -07:00
Michael Scire
f8d59254cf kern: devirtualize KAutoObject::DynamicCast<>()
This is an optimization that saves the most common type of virtual call in the kernel (DynamicCast)
by storing class token as a member, rather than getting it via virtual call every time.

This does not currently cost any memory space on 64-bit targets, due to pre-existing padding space.

This optimization can be turned off via a compile-time flag for accuracy.
2021-10-26 01:11:09 -07:00
Michael Scire
05c7ba6439 kern/util: update structure layouts to match Nintendo (saves 0x10 per KThread/KSession) 2021-10-26 01:11:09 -07:00
Michael Scire
d5ea59d8f8 powctl: remove unused arm_neon header after last commit 2021-10-26 01:11:09 -07:00
Michael Scire
6da57eff75 powctl: don't require arm64 arch for floating -> fixed conversion 2021-10-26 01:11:09 -07:00
Michael Scire
cf765c0946 tipc: implement special-case templating used by 13.0.0 pgl 2021-10-15 23:54:40 -07:00
Michael Scire
0238bdf65b tipc: enable named-thread dispatch 2021-10-15 23:54:40 -07:00
Michael Scire
dbd0b13002 boot: update for 13.0.0/aula parameter changes (closes #1477) 2021-10-15 23:54:40 -07:00
Michael Scire
17bf5ee002 powctl: integrate 13.0.0 changes (aula params not done yet) 2021-10-15 23:54:40 -07:00
Michael Scire
68e9f7c853 strat: fix some mitm server management logic 2021-10-15 23:54:39 -07:00
Michael Scire
56222786c6 tipc/sm: update more fully for 13.0.0 changes 2021-10-15 23:54:39 -07:00
Michael Scire
15f27d59df tipc: add additional logic from 13.0.0 2021-10-15 23:54:39 -07:00
Michael Scire
15b3f9545f sm/tipc: minor cleanup 2021-10-15 23:54:39 -07:00
Michael Scire
02c1d19605 strat: don't force fs globals to link into every process 2021-10-15 23:54:38 -07:00
Michael Scire
a9322a7245 sf: prevent emitting mitm/defer code unless server in process supports it 2021-10-15 23:54:38 -07:00
Michael Scire
96190af3dc util: fix consteval CountTrailingZeroes impl 2021-10-15 23:54:38 -07:00
Michael Scire
3744ee6fff ams: bump api verrsion pre-emptively to 1.2.0 2021-10-15 23:54:37 -07:00
Michael Scire
3bef5b7d5a ams: allow bootloader to merely approximate correct target firmware 2021-10-15 23:54:37 -07:00
Michael Scire
774622d93f loader: refactor to remove fake namespaces 2021-10-15 23:54:36 -07:00