Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Common PPC instructions #187

Open
zbanks opened this issue Dec 9, 2021 · 2 comments
Open

Common PPC instructions #187

zbanks opened this issue Dec 9, 2021 · 2 comments

Comments

@zbanks
Copy link
Collaborator

zbanks commented Dec 9, 2021

This issue is just used to track progress on implementing common PPC instructions using github's checklist feature.
This is a list of instructions used in SMS sorted by popularity (with their associated count).

  • lwz (118317)
  • addi (113645)
  • stw (83449)
  • li (65901)
  • bl (58090)
  • lfs (46314)
  • stfs (28358)
  • beq (24540)
  • lis (22538)
  • b (22268)
  • mr (20079)
  • bne (19009)
  • stb (15124)
  • mtlr (15073)
  • cmplwi (13605)
  • blr (13176)
  • lbz (12208)
  • cmpwi (11851)
  • fmuls (10326)
  • stwu (9580)
  • mflr (9289)
  • lfd (9093)
  • fsubs (7925)
  • add (7697)
  • slwi (6244)
  • bge (6223)
  • blrl (5793)
  • sth (5679)
  • clrlwi. (5630)
  • stfd (5143)
  • fadds (5022)
  • fcmpo (4692)
  • ble (4658)
  • extsb. (4604)
  • lhz (4294)
  • fmr (3818)
  • or. (3803)
  • rlwinm (3503)
  • cmpw (3272)
  • clrlwi (3189)
  • blt (3178)
  • xoris (3171)
  • fmadds (2823)
  • rlwinm. (2768)
  • cmplw (2690)
  • lha (2316)
  • lwzx (2144)
  • subf (2110)
  • mulli (1770)
  • ori (1736)
  • fctiwz (1710)
  • extsh. (1531)
  • cror (1512)
  • or (1251)
  • addis (1238)
  • stmw (1226)
  • lmw (1223)
  • stwx (1198)
  • srwi (1094)
  • lfsx (996)
  • fdivs (939)
  • bgt (932)
  • crclr (880)
  • psq_l (870)
  • fneg (836)
  • extsh (765)
  • ps_add (710)
  • ps_sub (710)
  • mtctr (680)
  • fmul (669)
  • fmsubs (661)
  • srawi (605)
  • fnmsubs (604)
  • bdnz (593)
  • fcmpu (586)
  • psq_st (586)
  • mullw (570)
  • sraw (567)
  • rlwimi (450)
  • oris (416)
  • extsb (412)
  • lbzx (403)
  • subfic (368)
  • addic. (350)
  • fabs (321)
  • neg (307)
  • lhzx (286)
  • and (278)
  • frsp (271)
  • slw (264)
  • cntlzw (262)
  • frsqrte (254)
  • ps_mul (249)
  • subfe (249)
  • mtspr (245)
  • psq_stu (240)
  • mulhw (227)
  • xor (227)
  • ps_msub (213)
  • lwzu (205)
  • stbx (197)
  • stfsx (196)
  • sthx (188)
  • addze (186)
  • fnmsub (177)
  • ps_madd (173)
  • mfspr (172)
  • addic (156)
  • srw (143)
  • ps_merge00 (138)
  • bctr (134)
  • andi. (133)
  • ps_nmsub (133)
  • beqlr (132)
  • subf. (127)
  • ps_merge10 (119)
  • ps_merge11 (119)
  • mulhwu (112)
  • and. (109)
  • nor (105)
  • subfc (103)
  • lfsu (101)
  • divw (99)
  • lbzu (98)
  • stfsu (82)
  • eqv (81)
  • adde (72)
  • bgelr (70)
  • xori (67)
  • nop (64)
  • divwu (62)
  • stbu (61)
  • ps_muls0 (60)
  • addc (59)
  • lhax (57)
  • bnelr (55)
  • mfmsr (54)
  • andc (53)
  • ps_sum0 (40)
  • ps_merge01 (39)
  • neg. (38)
  • ps_madds0 (38)
  • ps_madds1 (38)
  • rfi (35)
  • sync (35)
  • mfcr (31)
  • rlwnm (30)
  • lhzu (28)
  • mtmsr (27)
  • blelr (23)
  • bltlr (22)
  • isync (22)
  • fsub (19)
  • add. (17)
  • mfsr (16)
  • mtsr (16)
  • subfc. (16)
  • fmadd (14)
  • fres (14)
  • dcbz (13)
  • mtdbatu (13)
  • bgtlr (12)
  • mtibatu (12)
  • fnmadds (11)
  • subfze (11)
  • sthu (10)
  • crset (9)
  • mtcrf (9)
  • mtdbatl (9)
  • fadd (8)
  • mtibatl (8)
  • fdiv (7)
  • lhau (7)
  • addze. (6)
  • mtxer (6)
  • ps_sum1 (6)
  • andis. (5)
  • mftb (5)
  • psq_lu (5)
  • dcbst (4)
  • icbi (4)
  • mfctr (4)
  • mfdar (4)
  • mfdbatl (4)
  • mfdbatu (4)
  • mfibatl (4)
  • mfibatu (4)
  • mfxer (4)
  • subfe. (4)
  • dcbf (3)
  • dcbi (3)
  • fsel (3)
  • mfdsisr (3)
  • mffs (3)
  • mftbu (3)
  • mtdar (3)
  • mtdsisr (3)
  • ps_muls1 (3)
  • ps_neg (3)
  • sc (3)
  • srawi. (3)
  • beq+ (2)
  • fmsub (2)
  • ps_cmpo0 (2)
  • ps_nmadd (2)
  • psq_lx (2)
  • andc. (1)
  • bdz (1)
  • bla (1)
  • ble+ (1)
  • dcbt (1)
  • dcbz_l (1)
  • lfdx (1)
  • mfpvr (1)
  • mtfsb1 (1)
  • mtfsf (1)
  • mtictc (1)
  • mttbl (1)
  • mttbu (1)
  • mullw. (1)
  • rotlwi (1)
  • xor. (1)

Generated with:

$ git clone https://github.com/doldecomp/sms
$ rg '^/[*].*[*]/\t\w' sms/asm | cut -f2 | cut -d ' ' -f1 | sort | uniq -c | sort -k1,1nr | sed -e 's/ *\([0-9]\+\) \(.*\)/- [ ] `\2` (\1)/'

Edit: This issue was used for tracking progress on the ppc2cpp branch, but that branch has now been merged.

Repository owner deleted a comment from ethteck Dec 11, 2021
@zbanks
Copy link
Collaborator Author

zbanks commented Dec 12, 2021

PPC Resources & Info:

[...] the doldisasm script will name the sections numerically based on the "section headers" in the dol, the proper section names correspond to those numerical names like so:

.init      = .text0
.text      = .text1
extab      = .data0
extabindex = .data1
.ctors     = .data2
.dtors     = .data3
.rodata    = .data4
.data      = .data5
.bss       = .bss
.sdata     = .data6
.sbss      = .bss
.sdata2    = .data7
.sbss2     = .bss

(bss is all the same, because the dol only states where the first bss region starts, and there is no section header entries for the bss sections, so projects using doldisasm usually have to split that out manually, so the bss sections are likely to always be named correctly else the project disassembly probably doesn't build matching yet)

@simonlindholm
Copy link
Collaborator

re psq_st and psq_l, in the decompme discord: https://discord.com/channels/897066363951128586/897077740476448768/931259634185027605

@zbanks zbanks mentioned this issue Jan 30, 2022
@zbanks zbanks changed the title Track PPC instructions implemented in ppc2cpp branch Common PPC instructions Feb 3, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants