mirror of https://github.com/zeldaret/mm.git
				
				
				
			Handwritten asm: fp (#1818)
This commit is contained in:
		
							parent
							
								
									9612575930
								
							
						
					
					
						commit
						1ca6ca804d
					
				|  | @ -42,8 +42,7 @@ beginseg | ||||||
|     include "$(BUILD_DIR)/src/boot/libu64/system_heap.o" |     include "$(BUILD_DIR)/src/boot/libu64/system_heap.o" | ||||||
|     include "$(BUILD_DIR)/src/boot/libu64/padsetup.o" |     include "$(BUILD_DIR)/src/boot/libu64/padsetup.o" | ||||||
|     include "$(BUILD_DIR)/src/boot/libc64/math64.o" |     include "$(BUILD_DIR)/src/boot/libc64/math64.o" | ||||||
|     include "$(BUILD_DIR)/asm/boot/fp.text.o" // Part of libc64 |     include "$(BUILD_DIR)/src/boot/libc64/fp.o" | ||||||
|     include "$(BUILD_DIR)/data/boot/fp.data.o" |  | ||||||
|     include "$(BUILD_DIR)/src/boot/libc64/malloc.o" |     include "$(BUILD_DIR)/src/boot/libc64/malloc.o" | ||||||
|     include "$(BUILD_DIR)/src/boot/libc64/qrand.o" |     include "$(BUILD_DIR)/src/boot/libc64/qrand.o" | ||||||
|     include "$(BUILD_DIR)/src/boot/libc64/__osMalloc.o" |     include "$(BUILD_DIR)/src/boot/libc64/__osMalloc.o" | ||||||
|  |  | ||||||
|  | @ -0,0 +1,162 @@ | ||||||
|  | #include "PR/asm.h" | ||||||
|  | #include "PR/regdef.h" | ||||||
|  | 
 | ||||||
|  | .data | ||||||
|  | 
 | ||||||
|  | DATA(gPositiveInfinity) | ||||||
|  |     .word 0x7F800000
 | ||||||
|  | ENDDATA(gPositiveInfinity) | ||||||
|  | 
 | ||||||
|  | DATA(gNegativeInfinity) | ||||||
|  |     .word 0xFF800000
 | ||||||
|  | ENDDATA(gNegativeInfinity) | ||||||
|  | 
 | ||||||
|  | DATA(gPositiveZero) | ||||||
|  |     .word 0x00000000
 | ||||||
|  | ENDDATA(gPositiveZero) | ||||||
|  | 
 | ||||||
|  | DATA(gNegativeZero) | ||||||
|  |     .word 0x80000000
 | ||||||
|  | ENDDATA(gNegativeZero) | ||||||
|  | 
 | ||||||
|  | DATA(qNaN0x3FFFFF) | ||||||
|  |     .word 0x7FBFFFFF
 | ||||||
|  | ENDDATA(qNaN0x3FFFFF) | ||||||
|  | 
 | ||||||
|  | DATA(qNaN0x10000) | ||||||
|  |     .word 0x7F810000
 | ||||||
|  | ENDDATA(qNaN0x10000) | ||||||
|  | 
 | ||||||
|  | DATA(sNaN0x3FFFFF) | ||||||
|  |     .word 0x7FFFFFFF
 | ||||||
|  | ENDDATA(sNaN0x3FFFFF) | ||||||
|  | 
 | ||||||
|  | .text | ||||||
|  | 
 | ||||||
|  | LEAF(floorf) | ||||||
|  |     floor.w.s   fa0, fa0 | ||||||
|  |     cvt.s.w     fv0, fa0 | ||||||
|  |     jr          ra | ||||||
|  | END(floorf) | ||||||
|  | 
 | ||||||
|  | LEAF(floor) | ||||||
|  |     floor.w.d   fa0, fa0 | ||||||
|  |     cvt.d.w     fv0, fa0 | ||||||
|  |     jr          ra | ||||||
|  | END(floor) | ||||||
|  | 
 | ||||||
|  | LEAF(lfloorf) | ||||||
|  |     floor.w.s   ft0, fa0 | ||||||
|  |     mfc1        v0, ft0 | ||||||
|  |     jr          ra | ||||||
|  | END(lfloorf) | ||||||
|  | 
 | ||||||
|  | LEAF(lfloor) | ||||||
|  |     floor.w.d   ft0, fa0 | ||||||
|  |     mfc1        v0, ft0 | ||||||
|  |     jr          ra | ||||||
|  | END(lfloor) | ||||||
|  | 
 | ||||||
|  | LEAF(ceilf) | ||||||
|  |     ceil.w.s    fa0, fa0 | ||||||
|  |     cvt.s.w     fv0, fa0 | ||||||
|  |     jr          ra | ||||||
|  | END(ceilf) | ||||||
|  | 
 | ||||||
|  | LEAF(ceil) | ||||||
|  |     ceil.w.d    fa0, fa0 | ||||||
|  |     cvt.d.w     fv0, fa0 | ||||||
|  |     jr          ra | ||||||
|  | END(ceil) | ||||||
|  | 
 | ||||||
|  | LEAF(lceilf) | ||||||
|  |     ceil.w.s    ft0, fa0 | ||||||
|  |     mfc1        v0, ft0 | ||||||
|  |     jr          ra | ||||||
|  | END(lceilf) | ||||||
|  | 
 | ||||||
|  | LEAF(lceil) | ||||||
|  |     ceil.w.d    ft0, fa0 | ||||||
|  |     mfc1        v0, ft0 | ||||||
|  |     jr          ra | ||||||
|  | END(lceil) | ||||||
|  | 
 | ||||||
|  | LEAF(truncf) | ||||||
|  |     trunc.w.s   fa0, fa0 | ||||||
|  |     cvt.s.w     fv0, fa0 | ||||||
|  |     jr          ra | ||||||
|  | END(truncf) | ||||||
|  | 
 | ||||||
|  | LEAF(trunc) | ||||||
|  |     trunc.w.d   fa0, fa0 | ||||||
|  |     cvt.d.w     fv0, fa0 | ||||||
|  |     jr          ra | ||||||
|  | END(trunc) | ||||||
|  | 
 | ||||||
|  | LEAF(ltruncf) | ||||||
|  |     trunc.w.s   ft0, fa0 | ||||||
|  |     mfc1        v0, ft0 | ||||||
|  |     jr          ra | ||||||
|  | END(ltruncf) | ||||||
|  | 
 | ||||||
|  | LEAF(ltrunc) | ||||||
|  |     trunc.w.d   ft0, fa0 | ||||||
|  |     mfc1        v0, ft0 | ||||||
|  |     jr          ra | ||||||
|  | END(ltrunc) | ||||||
|  | 
 | ||||||
|  | LEAF(nearbyintf) | ||||||
|  |     round.w.s   fa0, fa0 | ||||||
|  |     cvt.s.w     fv0, fa0 | ||||||
|  |     jr          ra | ||||||
|  | END(nearbyintf) | ||||||
|  | 
 | ||||||
|  | LEAF(nearbyint) | ||||||
|  |     round.w.d   fa0, fa0 | ||||||
|  |     cvt.d.w     fv0, fa0 | ||||||
|  |     jr          ra | ||||||
|  | END(nearbyint) | ||||||
|  | 
 | ||||||
|  | LEAF(lnearbyintf) | ||||||
|  |     round.w.s   ft0, fa0 | ||||||
|  |     mfc1        v0, ft0 | ||||||
|  |     jr          ra | ||||||
|  | END(lnearbyintf) | ||||||
|  | 
 | ||||||
|  | LEAF(lnearbyint) | ||||||
|  |     round.w.d   ft0, fa0 | ||||||
|  |     mfc1        v0, ft0 | ||||||
|  |     jr          ra | ||||||
|  | END(lnearbyint) | ||||||
|  | 
 | ||||||
|  | LEAF(roundf) | ||||||
|  |     li.s        ft0, 0.5 | ||||||
|  |     add.s       fv0, fa0, ft0 | ||||||
|  |     floor.w.s   fv0, fv0 | ||||||
|  |     cvt.s.w     fv0, fv0 | ||||||
|  |     jr          ra | ||||||
|  | END(roundf) | ||||||
|  | 
 | ||||||
|  | LEAF(round) | ||||||
|  |     li.d        ft0, 0.5 | ||||||
|  |     add.d       fv0, fa0, ft0 | ||||||
|  |     floor.w.d   fv0, fv0 | ||||||
|  |     cvt.d.w     fv0, fv0 | ||||||
|  |     jr          ra | ||||||
|  | END(round) | ||||||
|  | 
 | ||||||
|  | LEAF(lroundf) | ||||||
|  |     li.s        ft0, 0.5 | ||||||
|  |     add.s       fv0, fa0, ft0 | ||||||
|  |     floor.w.s   fv0, fv0 | ||||||
|  |     mfc1        v0, fv0 | ||||||
|  |     jr          ra | ||||||
|  | END(lroundf) | ||||||
|  | 
 | ||||||
|  | LEAF(lround) | ||||||
|  |     li.d        ft0, 0.5 | ||||||
|  |     add.d       fv0, fa0, ft0 | ||||||
|  |     floor.w.d   fv0, fv0 | ||||||
|  |     mfc1        v0, fv0 | ||||||
|  |     jr          ra | ||||||
|  | END(lround) | ||||||
		Loading…
	
		Reference in New Issue
	
	 Tharo
						Tharo