Michael Scire
737720086b
kern: codegen tweaks, now that we're no longer -Os
2022-03-23 09:16:07 -07:00
Michael Scire
5217e6b9f3
kern: devirtualize KAutoObjectWithList::GetId()
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
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
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
d3b358bbb9
kern/util: use custom atomics wrapper to substantially improve codegen
2021-10-26 01:11:12 -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
002422d5dc
ams: the copyright^H^H^H^H^H^H^Hmplex plane is the algebraic closure of the reals
2021-10-07 23:06:25 -07:00
Michael Scire
94fa7524ff
kern: KAutoObject doesn't need (virtual) destructor
2021-09-19 10:35:35 -07:00
Michael Scire
c8ca3ecccd
kern: tweak KAutoObject::Open/Close codegen
2021-04-29 03:04:52 -07:00
Michael Scire
7c35303c62
kern: KAutoObject destruction is now scheduled for next dpc-time
2021-04-11 03:59:16 -07:00
Michael Scire
ca5e69f16d
kern: greatly improve codegen for atomics, scheduler
2021-01-13 10:41:26 -08:00
Michael Scire
4ddacf3384
kern: refactor to use m_ for member variables
2020-12-19 10:21:52 -08:00
Michael Scire
45c1b044d3
kern: tweak KScopedAutoObject
2020-12-02 06:53:23 -08:00
Michael Scire
a911d2da7e
kern: build as -Os instead of -O2
2020-12-02 06:53:18 -08:00
Michael Scire
0cfd30b9c1
kern: panic on failure-to-open auto object in debug config
2020-08-01 15:31:40 -07:00
Michael Scire
0013041509
kern: KConditionVariable::SignalImpl
2020-08-01 15:31:26 -07:00
Michael Scire
900a90a843
kern: fix bug in up/downcasting of scoped auto objects
2020-08-01 15:31:19 -07:00
Michael Scire
72d4c01501
kern: SvcConnectToNamedPort
2020-08-01 15:31:00 -07:00
SciresM
7d041e853d
Switch atmosphere's build target to C++20. ( #952 )
...
* ams: update to build with gcc10/c++20
* remove mno-outline-atomics
* ams: take care of most TODO C++20s
* fusee/sept: update for gcc10
* whoosh, your code now uses pre-compiled headers
* make: dependency fixes
2020-05-12 15:44:19 -07:00
Michael Scire
bc9c0c255c
kern: Implement SvcManageNamedPort
2020-03-18 00:15:04 -07:00
Michael Scire
feae39aa2e
kern: implement KUserPointer (and test with QueryMemory) in advance of svc dev
2020-03-02 19:51:01 -08:00
Michael Scire
cba973f859
kern: implement KProcess::Run
2020-03-02 19:51:00 -08:00
Michael Scire
a58b57ef24
kern: obj stubs to get past slab init
2020-03-02 19:50:51 -08:00
Michael Scire
458572283b
kern: implement KHandleTable, other cleanup
2020-03-02 19:50:46 -08:00
Michael Scire
ed41030c42
kern: Skeleton KSynchronizationObject
2020-03-02 19:50:45 -08:00
Michael Scire
7b58a368a9
kern: Implement KAutoObject, KSlabHeap, KLightLock
2020-03-02 19:50:45 -08:00