mirror of
https://github.com/zeldaret/oot.git
synced 2025-08-10 17:00:19 +00:00
Improve the state of handwritten assembly files (#865)
* Format all handwritten asm and document some * Use c preprocessor for constants * Fix * Fix PI_STATUS_ERROR, some label improvements * Avoid hi/lo for constants * Some more comments * Properly mark functions as functions and their sizes * Fix merge * Improvements * Review suggestions, rework procedure start/end macros to be more like libreultra * Move IPL3 symbol definitions into ipl3.s * Fix undefined_syms, add include and language guards to asm.h and fix the comment in gbi.h * Consistent hex capitalization, add some MIPS builtin defines to CC_CHECK to behave properly * Add -no-pad-sections assembler option and clean up alignment in gu files and bzero * Further suggestions and improvements * Matrix conversion function clarifications * Fix passing AVOID_UB to gcc * Suggestions * Suggestions, global interrupt mask improvements * Further suggestions, interrupt mask comments * Comments fixes, rdb.h * Switch from # comments to // comments, remove unnecesary .set gp=64 directives * Further review suggestions * Missed one
This commit is contained in:
parent
b9fded7b4e
commit
7334ffa373
62 changed files with 2758 additions and 2083 deletions
|
@ -1,37 +1,32 @@
|
|||
.include "macro.inc"
|
||||
#include "ultra64/asm.h"
|
||||
|
||||
# assembler directives
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
.set gp=64 # allow use of 64-bit general purpose registers
|
||||
.set noat
|
||||
.set noreorder
|
||||
|
||||
.section .text
|
||||
|
||||
.balign 16
|
||||
.balign 32
|
||||
|
||||
/* B7B2F0 80104150 00000000 */ nop
|
||||
/* B7B2F4 80104154 00000000 */ nop
|
||||
/* B7B2F8 80104158 00000000 */ nop
|
||||
/* B7B2FC 8010415C 00000000 */ nop
|
||||
glabel guNormalize
|
||||
/* B7B300 80104160 C4840000 */ lwc1 $f4, ($a0)
|
||||
/* B7B304 80104164 C4A60000 */ lwc1 $f6, ($a1)
|
||||
/* B7B308 80104168 C4C80000 */ lwc1 $f8, ($a2)
|
||||
/* B7B30C 8010416C 46042282 */ mul.s $f10, $f4, $f4
|
||||
/* B7B310 80104170 3C083F80 */ li $t0, 0x3F800000 # 0.000000
|
||||
/* B7B314 80104174 46063402 */ mul.s $f16, $f6, $f6
|
||||
/* B7B318 80104178 46105480 */ add.s $f18, $f10, $f16
|
||||
/* B7B31C 8010417C 46084402 */ mul.s $f16, $f8, $f8
|
||||
/* B7B320 80104180 46128280 */ add.s $f10, $f16, $f18
|
||||
/* B7B324 80104184 44889000 */ mtc1 $t0, $f18
|
||||
/* B7B328 80104188 46005404 */ sqrt.s $f16, $f10
|
||||
/* B7B32C 8010418C 46109283 */ div.s $f10, $f18, $f16
|
||||
/* B7B330 80104190 460A2402 */ mul.s $f16, $f4, $f10
|
||||
/* B7B334 80104194 00000000 */ nop
|
||||
/* B7B338 80104198 460A3482 */ mul.s $f18, $f6, $f10
|
||||
/* B7B33C 8010419C 00000000 */ nop
|
||||
/* B7B340 801041A0 460A4102 */ mul.s $f4, $f8, $f10
|
||||
/* B7B344 801041A4 E4900000 */ swc1 $f16, ($a0)
|
||||
/* B7B348 801041A8 E4B20000 */ swc1 $f18, ($a1)
|
||||
/* B7B34C 801041AC 03E00008 */ jr $ra
|
||||
/* B7B350 801041B0 E4C40000 */ swc1 $f4, ($a2)
|
||||
LEAF(guNormalize)
|
||||
lwc1 $f4, ($a0)
|
||||
lwc1 $f6, ($a1)
|
||||
lwc1 $f8, ($a2)
|
||||
mul.s $f10, $f4, $f4
|
||||
li $t0, 0x3F800000 // 1.0f
|
||||
mul.s $f16, $f6, $f6
|
||||
add.s $f18, $f10, $f16
|
||||
mul.s $f16, $f8, $f8
|
||||
add.s $f10, $f16, $f18
|
||||
mtc1 $t0, $f18
|
||||
sqrt.s $f16, $f10
|
||||
div.s $f10, $f18, $f16
|
||||
mul.s $f16, $f4, $f10
|
||||
nop
|
||||
mul.s $f18, $f6, $f10
|
||||
nop
|
||||
mul.s $f4, $f8, $f10
|
||||
swc1 $f16, ($a0)
|
||||
swc1 $f18, ($a1)
|
||||
jr $ra
|
||||
swc1 $f4, ($a2)
|
||||
END(guNormalize)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue