mirror of
https://github.com/zeldaret/ss.git
synced 2024-12-04 11:54:36 +00:00
222 lines
3.9 KiB
ArmAsm
222 lines
3.9 KiB
ArmAsm
/*
|
|
Sections:
|
|
.init 0x00000100 0x80004000 0x80006720 0x00002720
|
|
extab_ 0x004D7240 0x80006720 0x80006920 0x00000200
|
|
extabindex_ 0x004D7440 0x80006920 0x80006C20 0x00000300
|
|
.text 0x00002820 0x80006C20 0x804DB640 0x004D4A20
|
|
.ctors 0x004D7740 0x804DB640 0x804DB9E0 0x000003A0
|
|
.dtors 0x004D7AE0 0x804DB9E0 0x804DBA00 0x00000020
|
|
.rodata 0x004D7B00 0x804DBA00 0x804FD060 0x00021660
|
|
.data 0x004F9160 0x804FD060 0x80571440 0x000743E0
|
|
.sdata 0x0056D540 0x80571440 0x80574FA0 0x00003B60
|
|
.sbss 0x00000000 0x80574FA0 0x805769C0 0x00001A20
|
|
.sdata2 0x005710A0 0x805769C0 0x8057FFA0 0x000095E0
|
|
.sbss2 0x00000000 0x8057FFA0 0x80580000 0x00000060
|
|
.bss 0x00000000 0x80580000 0x806782C0 0x000F82C0
|
|
Entry Point: 0x80004050
|
|
*/
|
|
|
|
# General Purpose Registers (GPRs)
|
|
.set r0, 0
|
|
.set r1, 1
|
|
.set r2, 2
|
|
.set r3, 3
|
|
.set r4, 4
|
|
.set r5, 5
|
|
.set r6, 6
|
|
.set r7, 7
|
|
.set r8, 8
|
|
.set r9, 9
|
|
.set r10, 10
|
|
.set r11, 11
|
|
.set r12, 12
|
|
.set r13, 13
|
|
.set r14, 14
|
|
.set r15, 15
|
|
.set r16, 16
|
|
.set r17, 17
|
|
.set r18, 18
|
|
.set r19, 19
|
|
.set r20, 20
|
|
.set r21, 21
|
|
.set r22, 22
|
|
.set r23, 23
|
|
.set r24, 24
|
|
.set r25, 25
|
|
.set r26, 26
|
|
.set r27, 27
|
|
.set r28, 28
|
|
.set r29, 29
|
|
.set r30, 30
|
|
.set r31, 31
|
|
|
|
# Floating Point Registers (FPRs)
|
|
.set f0, 0
|
|
.set f1, 1
|
|
.set f2, 2
|
|
.set f3, 3
|
|
.set f4, 4
|
|
.set f5, 5
|
|
.set f6, 6
|
|
.set f7, 7
|
|
.set f8, 8
|
|
.set f9, 9
|
|
.set f10, 10
|
|
.set f11, 11
|
|
.set f12, 12
|
|
.set f13, 13
|
|
.set f14, 14
|
|
.set f15, 15
|
|
.set f16, 16
|
|
.set f17, 17
|
|
.set f18, 18
|
|
.set f19, 19
|
|
.set f20, 20
|
|
.set f21, 21
|
|
.set f22, 22
|
|
.set f23, 23
|
|
.set f24, 24
|
|
.set f25, 25
|
|
.set f26, 26
|
|
.set f27, 27
|
|
.set f28, 28
|
|
.set f29, 29
|
|
.set f30, 30
|
|
.set f31, 31
|
|
|
|
# Graphics Quantization Registers (GQRs)
|
|
.set qr0, 0
|
|
.set qr1, 1
|
|
.set qr2, 2
|
|
.set qr3, 3
|
|
.set qr4, 4
|
|
.set qr5, 5
|
|
.set qr6, 6
|
|
.set qr7, 7
|
|
|
|
# Special Purpose Registers (SPRs)
|
|
.set XER, 1
|
|
.set LR, 8
|
|
.set CTR, 9
|
|
.set DSISR, 18
|
|
.set DAR, 19
|
|
.set DEC, 22
|
|
.set SDR1, 25
|
|
.set SRR0, 26
|
|
.set SRR1, 27
|
|
.set SPRG0, 272
|
|
.set SPRG1, 273
|
|
.set SPRG2, 274
|
|
.set SPRG3, 275
|
|
.set EAR, 282
|
|
.set PVR, 287
|
|
.set IBAT0U, 528
|
|
.set IBAT0L, 529
|
|
.set IBAT1U, 530
|
|
.set IBAT1L, 531
|
|
.set IBAT2U, 532
|
|
.set IBAT2L, 533
|
|
.set IBAT3U, 534
|
|
.set IBAT3L, 535
|
|
.set DBAT0U, 536
|
|
.set DBAT0L, 537
|
|
.set DBAT1U, 538
|
|
.set DBAT1L, 539
|
|
.set DBAT2U, 540
|
|
.set DBAT2L, 541
|
|
.set DBAT3U, 542
|
|
.set DBAT3L, 543
|
|
.set GQR0, 912
|
|
.set GQR1, 913
|
|
.set GQR2, 914
|
|
.set GQR3, 915
|
|
.set GQR4, 916
|
|
.set GQR5, 917
|
|
.set GQR6, 918
|
|
.set GQR7, 919
|
|
.set HID2, 920
|
|
.set WPAR, 921
|
|
.set DMA_U, 922
|
|
.set DMA_L, 923
|
|
.set UMMCR0, 936
|
|
.set UPMC1, 937
|
|
.set UPMC2, 938
|
|
.set USIA, 939
|
|
.set UMMCR1, 940
|
|
.set UPMC3, 941
|
|
.set UPMC4, 942
|
|
.set USDA, 943
|
|
.set MMCR0, 952
|
|
.set PMC1, 953
|
|
.set PMC2, 954
|
|
.set SIA, 955
|
|
.set MMCR1, 956
|
|
.set PMC3, 957
|
|
.set PMC4, 958
|
|
.set SDA, 959
|
|
.set HID0, 1008
|
|
.set HID1, 1009
|
|
.set IABR, 1010
|
|
.set DABR, 1013
|
|
.set L2CR, 1017
|
|
.set ICTC, 1019
|
|
.set THRM1, 1020
|
|
.set THRM2, 1021
|
|
.set THRM3, 1022
|
|
|
|
# Small Data Area (read/write) Base
|
|
.set _SDA_BASE_, 0x80579440
|
|
|
|
# Small Data Area (read only) Base
|
|
.set _SDA2_BASE_, 0x8057E9C0
|
|
|
|
# Defines a sized symbol with function type.
|
|
# Usage:
|
|
# .fn my_function, local
|
|
# /* asm here */
|
|
# .endfn my_function
|
|
.macro .fn name, visibility=global
|
|
.\visibility "\name"
|
|
.type "\name", @function
|
|
"\name":
|
|
.endm
|
|
|
|
.macro .endfn name
|
|
.size "\name", . - "\name"
|
|
.endm
|
|
|
|
# Defines a sized symbol with object type.
|
|
# Usage:
|
|
# .obj my_object, local
|
|
# /* data here */
|
|
# .endobj my_object
|
|
.macro .obj name, visibility=global
|
|
.\visibility "\name"
|
|
.type "\name", @object
|
|
"\name":
|
|
.endm
|
|
|
|
.macro .endobj name
|
|
.size "\name", . - "\name"
|
|
.endm
|
|
|
|
# Defines a sized symbol without a type.
|
|
# Usage:
|
|
# .sym my_sym, local
|
|
# /* anything here */
|
|
# .endsym my_sym
|
|
.macro .sym name, visibility=global
|
|
.\visibility "\name"
|
|
"\name":
|
|
.endm
|
|
|
|
.macro .endsym name
|
|
.size "\name", . - "\name"
|
|
.endm
|
|
|
|
# Generates a relative relocation against a symbol.
|
|
# Usage:
|
|
# .rel my_function, .L_label
|
|
.macro .rel name, label
|
|
.4byte "\name" + ("\label" - "\name")
|
|
.endm |