powermac-rom/NanoKernel
Elliot Nunn 4c0e5221f1 Remove unnecessary static branch hints
These + and - characters in a branch mnemonic can cause the assembler to
produce conditional branch instructions with that hint the branch
predictor. The default for forward branches is -, and for backward
branches is +. If a mnemonic is issued with the opposite sign, then bit
10 of the instruction (the LSB of the BO field) is set.

My long-retired "ppcdisasm" script inserted these hints unconditionally,
despite 98% of them not being required. The code is much cleaner now.

I read in some old MPW release notes that PPCAsm and PPCLink together
exhibit a quirk when linking conditional branches to imported symbols.
PPCAsm always assembles these conditional branches as if they were
forward branches (that is, a + hint will always set the hint bit, and a
- hint will never). I hoped to use this property to divine whether the
NanoKernel was linked from one or many assembly files, but I was
frustrated by the lack of conditional branches between files.
2018-04-15 16:52:14 +08:00
..
InnerMakeFile Reverse power management functions 2018-03-17 20:24:02 +08:00
MakeFile Initial commit 2018-02-18 01:24:10 +08:00
NanoKernel.s Reverse power management functions 2018-03-17 20:24:02 +08:00
NKAdditions.s Remove unnecessary static branch hints 2018-04-15 16:52:14 +08:00
NKAddressSpaceMPCalls.s Remove unnecessary static branch hints 2018-04-15 16:52:14 +08:00
NKBuiltinInit.s Remove unnecessary static branch hints 2018-04-15 16:52:14 +08:00
NKCache.s Remove unnecessary static branch hints 2018-04-15 16:52:14 +08:00
NKConsoleLog.s Remove unnecessary static branch hints 2018-04-15 16:52:14 +08:00
NKEquates.s Reverse the NanoKernel pool allocator 2018-03-30 09:56:08 +08:00
NKIndex.s Remove unnecessary static branch hints 2018-04-15 16:52:14 +08:00
NKInit.s Remove unnecessary static branch hints 2018-04-15 16:52:14 +08:00
NKInterrupts.s Remove unnecessary static branch hints 2018-04-15 16:52:14 +08:00
NKMacros.s Work on the scheduler and interrupt handling code 2018-03-30 10:27:12 +08:00
NKMPCalls.s Remove unnecessary static branch hints 2018-04-15 16:52:14 +08:00
NKPaging.s Remove unnecessary static branch hints 2018-04-15 16:52:14 +08:00
NKPoolAllocator.s Remove unnecessary static branch hints 2018-04-15 16:52:14 +08:00
NKPowerCalls.s Remove unnecessary static branch hints 2018-04-15 16:52:14 +08:00
NKPrimaryIntHandlers.s Remove unnecessary static branch hints 2018-04-15 16:52:14 +08:00
NKProcFlagsTbl.s Reverse power management functions 2018-03-17 20:24:02 +08:00
NKProcInfoTbl.s Remove unnecessary static branch hints 2018-04-15 16:52:14 +08:00
NKReplacementInit.s Remove unnecessary static branch hints 2018-04-15 16:52:14 +08:00
NKRTASCalls.s Remove unnecessary static branch hints 2018-04-15 16:52:14 +08:00
NKScheduler.s Remove unnecessary static branch hints 2018-04-15 16:52:14 +08:00
NKScreenConsole.s Remove unnecessary static branch hints 2018-04-15 16:52:14 +08:00
NKSleep.s Remove unnecessary static branch hints 2018-04-15 16:52:14 +08:00
NKSync.s Remove unnecessary static branch hints 2018-04-15 16:52:14 +08:00
NKTasks.s Remove unnecessary static branch hints 2018-04-15 16:52:14 +08:00
NKThud.s Remove unnecessary static branch hints 2018-04-15 16:52:14 +08:00
NKTimers.s Remove unnecessary static branch hints 2018-04-15 16:52:14 +08:00
NKTranslation.s Remove unnecessary static branch hints 2018-04-15 16:52:14 +08:00
NKVMCalls.s Remove unnecessary static branch hints 2018-04-15 16:52:14 +08:00