PowerPC For Dummies: A simplified guide to understanding the PowerPC Instruction Set
#12
Went over your Guide again looking for any more errors:

- Bit is not a single digit within a word (its not half of a byte). A bit is a binary number (0 or 1) and a group of 4 of these binary values comprise a digit's value. It's why in the thread about rlwinm, i was putting the binary values in groups of 4. 4 bits in a digit, 8 digits in a word, so 32 bits in a word.

- Regarding your quick description of an fpr, you should add in a note that the floating value is in its 64-bit form

- Broadway does not have an 'xnor' instruction. Is it a simplified mnemonic? Is xnor instruction present in other PPC chips?

- Regarding your lis description, you should add a note that whenever lis is executed, the lower 16 bits are always set to null

An Fyi. Li is a simplified mnemonic for addi

i.e. li r1, 1 = addi r1, r0, 1 #Broadway treats r0 as literal 0 when it's used as a source register in this instruction

Lis is simplified mnemonic of addis

i.e. lis r1, 1 = addis r1, r0, 1 #r0 treated as literal 0

There are a lot more instructions (too many to list) that if r0 is the source register, its literal 0

In the Broadway manual i see nothing about bun, bnu, bdznt, bdnzf, and bdz branches. Are these present in other PPC chips? An fyi, the disassembler used in Dolphin is a generic PPC disassembler, so it will show instructions that simply don't exist in Broadway. Maybe these are simplified mnemonics not referenced in the manual?

- Your definition for NOT is incorrect. NOT is not the negative of a value. Its a simplified mnemonic for NOR'ing a register with itself

i.e. not r5, r3 = nor r5, r3, r3

Use the neg instruction instead (i.e. neg r5, r3)

Neg = Negate btw. Positive number becomes negative,negative becomes positive

- Stwu is a store word instruction but the address in the source register gets updated with the value of the previous source register's value + VALUE.

example:
r3 = 0x80000000; VALUE = 0x1500

stwu r0, 0x1500 (r3)

Before instruction was executed; r3 was 0x80000000
After instruction has executed; r3 is now 0x80001500

If you repeat the instruction again for a 2nd time, r3 is now 0x80003000, keep repeating the instruction to keep increasing r3 by 0x1500. This is why some coders use stwu/lwu in certain loops. lwzu is just the opposite of stwu ofc.

Btw, your guide is a good learning bridge as sometimes tutorials (such as mine) can be too technical at times.
Reply


Messages In This Thread
RE: PowerPC For Dummies: A simplified guide to understanding the PowerPC Instruction Set - by Vega - 06-27-2021, 02:07 AM

Forum Jump:


Users browsing this thread: 2 Guest(s)