Michael Scire
436613401a
kern: devirtualize several KAutoObject functions
2021-10-23 21:13:26 -07:00
Michael Scire
2490bbf4f9
kern: KCacheHelper: better reflect nintendo coremask clearing logic
2021-10-23 17:44:30 -07:00
Michael Scire
71e4313d0c
kern: devirtualize remaining vcall for class token/dyncast
2021-10-23 16:04:04 -07:00
SciresM
36e4914be8
kern: avoid constexpr init for many objects (avoids unnecessary memory clear) ( #1668 )
2021-10-23 15:25:20 -07:00
Michael Scire
20716cb3de
kern: use new AtomicRef, use Atomic<bool>
2021-10-20 13:29:38 -07:00
Michael Scire
aed9d3f535
util: better match true std::atomic semantics
2021-10-20 11:02:17 -07:00
Michael Scire
d74f364107
kern/util: use custom atomics wrapper to substantially improve codegen
2021-10-19 15:24:15 -07:00
Michael Scire
52332e8d75
kern: use 13.0.0 revised KLightLock logic
2021-10-19 02:45:29 -07:00
Michael Scire
3fc695aff8
kern: fix capability check for thread priorities
2021-10-19 01:41:23 -07:00
Michael Scire
f3b532070b
kern: update scheduler for 13.0.0 change, fix some ctz/clz bugs
2021-10-19 01:20:28 -07:00
Michael Scire
42b6c2dd95
kern: fix use of plr vs plr_heap, fix close/unlock order in ArbitrateLock
2021-10-19 01:19:31 -07:00
Michael Scire
889d843718
ams: improve offsetof style consistency
2021-10-18 00:17:13 -07:00
Michael Scire
bfffe6b119
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-16 16:24:06 -07:00
Michael Scire
26c02e2019
kern/util: update structure layouts to match Nintendo (saves 0x10 per KThread/KSession)
2021-10-16 16:13:10 -07:00
Michael Scire
179d91a563
kern: fix some lingering non-m_ member variables
2021-10-09 15:46:04 -07:00
Michael Scire
1ab0bd1765
ams: replace most remaining operator & with std::addressof
2021-10-09 14:49:53 -07:00
Michael Scire
ec65c39d17
strat: refactor address taking of form &var[...]
2021-10-09 12:45:31 -07:00
Michael Scire
4866e80769
svc: refactor/rename MemoryInfo fields
2021-10-05 15:16:54 -07:00
Michael Scire
719ead824e
strat: remove map namespace, svc: add address space defs
2021-10-05 12:22:34 -07:00
Michael Scire
77fe5cf6f5
ams: the copyright^H^H^H^H^H^H^Hmplex plane is the algebraic closure of the reals
2021-10-04 12:59:10 -07:00
Michael Scire
3fe072a1d0
kern: devirtualize page table operations
2021-09-21 10:09:27 -07:00
Michael Scire
90732ff311
kern: unify all waiting semantics to use single api
2021-09-19 10:34:31 -07:00
Michael Scire
f6fb5f2c8d
kern/svc: implement IoPool/Region svc support
2021-09-19 10:34:31 -07:00
Michael Scire
ce7dd55257
svc/kern/dd: remove MapDeviceAddressSpace()
2021-09-19 10:34:31 -07:00
Michael Scire
481ce12b7b
kern: update Initialize0 for new arguments/randomization semantics
2021-09-19 10:34:31 -07:00
Michael Scire
2f2c36b22b
kern: KMemoryManager/KPageGroup use physical addresses instead of virtual, now
2021-09-19 10:34:31 -07:00
Michael Scire
2c4bd44d7e
kern: support dynamic resource expansion for system heaps/events/sessions.
2021-09-19 10:34:31 -07:00
Michael Scire
2b91956051
kern: improve kdebug attach semantics
2021-09-19 10:34:31 -07:00
Michael Scire
4c73c461f1
kern: update KPageTable::Unmap block closing logic
2021-09-19 10:34:31 -07:00
Michael Scire
8b49cea4a9
kern: optimize logging for release kernel strings (saves printf space in .text)
2021-09-19 10:34:31 -07:00
Michael Scire
fdf008108c
kern: add new KMemoryState
2021-09-19 10:34:31 -07:00
Michael Scire
252486913b
kern: KWorkerTaskManager no longer tracks id
2021-09-19 10:34:31 -07:00
Michael Scire
44d10da7b8
kern: KSchedulerInterruptTask -> KSchedulerInterruptHandler
2021-09-19 10:34:31 -07:00
Michael Scire
cb28150912
kern: kill the interrupt task manager thread
2021-09-19 10:34:31 -07:00
Michael Scire
29cc3d1c09
kern: remove per-KInterruptEventTask locks
2021-09-19 10:34:31 -07:00
Michael Scire
e6a6fe6f38
kern: delete KWritableEvent, devirtualize KReadableEvent Signal/Clear
2021-09-19 10:34:31 -07:00
Michael Scire
d80ad222cc
kern: KConditionVariable arbiter functions now static
2021-09-19 10:34:31 -07:00
Michael Scire
183243bf16
kern: optimize handle table layout
2021-09-19 10:34:31 -07:00
Michael Scire
6407786059
kern: update GetInfo logic for tick count InfoTypes
2021-09-19 10:34:31 -07:00
Michael Scire
6cbfaaf835
kern: port limit is now 0x180
2021-09-19 10:34:31 -07:00
Michael Scire
ebb0bd2b41
kern: improve single-step around user-exception entry
2021-09-11 19:41:47 -07:00
Michael Scire
c10265676f
kern: fix spsr register in RestoreContext
2021-09-11 19:41:47 -07:00
Michael Scire
9e7b56b33c
kern: optimize hw-single-step management
2021-09-11 19:41:47 -07:00
Michael Scire
4075d24e0c
kern: add hardware single step extension
2021-09-11 19:41:47 -07:00
Michael Scire
f175802136
kern: improve some debug output
2021-08-20 00:06:43 -07:00
Michael Scire
fe79bc253a
kern: fix same is_current check in GetThreadContext
2021-08-19 07:38:25 -07:00
Michael Scire
81bf8c577a
kern: fix check for thread-is-current in KDebugBase::SetThreadContext
2021-08-19 07:34:08 -07:00
Michael Scire
f5704d25f8
kern: remove firmare-specific SignalAndModify impl
...
Nintendo made this breaking change because there was zero official software relying on it,
so it's safe for us to make the same change.
2021-07-22 15:56:45 -07:00
Michael Scire
2da31b122f
kern: fix hardware watchpoint detection
2021-07-22 00:35:40 -07:00
Michael Scire
43bbfd29bb
kern: fix inverted condition in context breakpoint validation
2021-07-21 23:56:28 -07:00