mirror of
https://github.com/elliotnunn/powermac-rom.git
synced 2024-12-01 09:50:31 +00:00
4c0e5221f1
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. |
||
---|---|---|
.. | ||
InnerMakeFile | ||
MakeFile | ||
NanoKernel.s | ||
NKAdditions.s | ||
NKAddressSpaceMPCalls.s | ||
NKBuiltinInit.s | ||
NKCache.s | ||
NKConsoleLog.s | ||
NKEquates.s | ||
NKIndex.s | ||
NKInit.s | ||
NKInterrupts.s | ||
NKMacros.s | ||
NKMPCalls.s | ||
NKPaging.s | ||
NKPoolAllocator.s | ||
NKPowerCalls.s | ||
NKPrimaryIntHandlers.s | ||
NKProcFlagsTbl.s | ||
NKProcInfoTbl.s | ||
NKReplacementInit.s | ||
NKRTASCalls.s | ||
NKScheduler.s | ||
NKScreenConsole.s | ||
NKSleep.s | ||
NKSync.s | ||
NKTasks.s | ||
NKThud.s | ||
NKTimers.s | ||
NKTranslation.s | ||
NKVMCalls.s |