You've already forked ultrasm64-2
mirror of
https://github.com/HackerN64/ultrasm64-2.git
synced 2026-01-21 10:38:08 -08:00
Remove libultra
This commit is contained in:
115
lib/ultra/D.inc
115
lib/ultra/D.inc
@@ -1,115 +0,0 @@
|
||||
BUILD_DIR/libultra.a:parameters.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:settime.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:maptlb.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:unmaptlball.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sprintf.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:createmesgqueue.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:seteventmesg.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:visetevent.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:createthread.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:recvmesg.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sptask.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sptaskyield.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sendmesg.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sptaskyielded.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:startthread.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:writebackdcacheall.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:vitbl.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:vimgr.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:visetmode.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:viblack.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:visetspecial.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:pimgr.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:setthreadpri.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:initialize.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:viswapbuf.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sqrtf.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:contreaddata.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:controller.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:conteepprobe.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:ll.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:invaldcache.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:pidma.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:bzero.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:invalicache.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:conteeplongread.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:conteeplongwrite.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:bcopy.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:ortho.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:perspective.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:gettime.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:llcvt.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:cosf.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sinf.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:translate.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:rotate.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:scale.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:aisetfreq.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:bnkf.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:writebackdcache.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:aigetlen.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:aisetnextbuf.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:timerintr.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:xprintf.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:string.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:thread.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:interrupt.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:vi.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:exceptasm.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:virtualtophysical.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:spsetstat.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:spsetpc.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sprawdma.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sp.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:spgetstat.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:getthreadpri.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:vigetcurrcontext.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:viswapcontext.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:getcount.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:piacs.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:pirawdma.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:devmgr.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:setsr.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:getsr.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:setfpccsr.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sirawread.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sirawwrite.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:maptlbrdb.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:pirawread.o(.SECTION);
|
||||
#if defined(JP_PADDING_TEXT) && !defined(NON_MATCHING)
|
||||
. += 0x40; /* Not a 2.0D diff, probably a compiler thing */
|
||||
#endif
|
||||
BUILD_DIR/libultra.a:siacs.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sirawdma.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:settimer.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:conteepwrite.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:jammesg.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:pigetcmdq.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:conteepread.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:mtxutil.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:normalize.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:ai.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:setcompare.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:libm_vals.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:xlitob.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:xldtob.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:vimodentsclan1.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:vimodepallan1.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:kdebugserver.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:syncputchars.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:setintmask.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:destroythread.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:probetlb.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:si.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:ldiv.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:getcause.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:atomic.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:lookatref.o(.SECTION); /* Fast3DEX2 only */
|
||||
#if ENABLE_RUMBLE
|
||||
BUILD_DIR/libultra.a:pfsgetstatus.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:motor.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:pfsisplug.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:crc.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:contramwrite.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:contramread.o(.SECTION);
|
||||
#endif
|
||||
@@ -1,155 +0,0 @@
|
||||
BUILD_DIR/libultra.a:string.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:xprintf.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:ll.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:initialize.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:settime.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:gettime.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:writebackdcacheall.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:viblack.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:viswapbuf.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:getcurrfaultthread.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:seteventmesg.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:recvmesg.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:parameters.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:createmesgqueue.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:createthread.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:startthread.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:maptlb.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:unmaptlball.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sprintf.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:syncprintf.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:visetevent.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sptask.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sptaskyield.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sendmesg.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sptaskyielded.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:vimgr.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:visetmode.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:visetspecial.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:vitbl.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:pimgr.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:setthreadpri.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sqrtf.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:contreaddata.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:controller.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:conteepprobe.o(.SECTION);
|
||||
#if ENABLE_RUMBLE
|
||||
BUILD_DIR/libultra.a:motor.o(.SECTION);
|
||||
#endif
|
||||
BUILD_DIR/libultra.a:invaldcache.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:pidma.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:bzero.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:invalicache.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:conteeplongread.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:conteeplongwrite.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:bcopy.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:ortho.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:perspective.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:llcvt.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:cosf.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sinf.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:translate.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:rotate.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:scale.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:aisetfreq.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:cartrominit.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:epidma.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:bnkf.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:aigetlen.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:aisetnextbuf.o(.SECTION);
|
||||
#if LIBULTRA_VERSION >= OS_VER_H
|
||||
BUILD_DIR/libultra.a:getcount.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:interrupt.o(.SECTION);
|
||||
#endif
|
||||
BUILD_DIR/libultra.a:xlitob.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:xldtob.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:setsr.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:getsr.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:setfpccsr.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sirawread.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sirawwrite.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:exceptasm.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:writebackdcache.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:maptlbrdb.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:pirawread.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sethwinterrupt.o(.SECTION);
|
||||
#if LIBULTRA_VERSION <= OS_VER_F
|
||||
BUILD_DIR/libultra.a:leointerrupt.o(.SECTION);
|
||||
#endif
|
||||
BUILD_DIR/libultra.a:timerintr.o(.SECTION);
|
||||
#if LIBULTRA_VERSION <= OS_VER_F
|
||||
BUILD_DIR/libultra.a:interrupt.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:getcount.o(.SECTION);
|
||||
#endif
|
||||
BUILD_DIR/libultra.a:vi.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:thread.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:virtualtophysical.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:spsetstat.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:spsetpc.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sprawdma.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sp.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:spgetstat.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:getthreadpri.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:vigetcurrcontext.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:viswapcontext.o(.SECTION);
|
||||
#if LIBULTRA_VERSION >= OS_VER_H
|
||||
BUILD_DIR/libultra.a:leodiskinit.o(.SECTION);
|
||||
#endif
|
||||
BUILD_DIR/libultra.a:piacs.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:pirawdma.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:epirawdma.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:devmgr.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:siacs.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sirawdma.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:settimer.o(.SECTION);
|
||||
#if ENABLE_RUMBLE && defined(SH_PFS_BSS)
|
||||
BUILD_DIR/libultra.a:pfsisplug.o(.SECTION);
|
||||
#endif
|
||||
BUILD_DIR/libultra.a:conteepwrite.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:kdebugserver.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:vimodepallan1.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:vimodempallan1.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:vimodentsclan1.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:libm_vals.o(.SECTION);
|
||||
#if ENABLE_RUMBLE
|
||||
#ifndef SH_PFS_BSS
|
||||
BUILD_DIR/libultra.a:pfsisplug.o(.SECTION);
|
||||
#endif
|
||||
BUILD_DIR/libultra.a:crc.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:contramwrite.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:contramread.o(.SECTION);
|
||||
#endif
|
||||
BUILD_DIR/libultra.a:jammesg.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:pigetcmdq.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:conteepread.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:mtxutil.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:normalize.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:ai.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:ldiv.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:si.o(.SECTION);
|
||||
#if LIBULTRA_VERSION >= OS_VER_H
|
||||
BUILD_DIR/libultra.a:leointerrupt.o(.SECTION);
|
||||
#endif
|
||||
BUILD_DIR/libultra.a:setintmask.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:destroythread.o(.SECTION);
|
||||
#if LIBULTRA_VERSION <= OS_VER_F
|
||||
BUILD_DIR/libultra.a:leodiskinit.o(.SECTION);
|
||||
#endif
|
||||
BUILD_DIR/libultra.a:setcompare.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:thread.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:probetlb.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:resetglobalintmask.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:epirawwrite.o(.SECTION);
|
||||
#if LIBULTRA_VERSION >= OS_VER_H
|
||||
BUILD_DIR/libultra.a:epirawread.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:setglobalintmask.o(.SECTION);
|
||||
#endif
|
||||
BUILD_DIR/libultra.a:yieldthread.o(.SECTION);
|
||||
#if ENABLE_RUMBLE
|
||||
BUILD_DIR/libultra.a:pfsgetstatus.o(.SECTION);
|
||||
#endif
|
||||
BUILD_DIR/libultra.a:lookatref.o(.SECTION); /* Fast3DEX2 only */
|
||||
BUILD_DIR/libultra.a:pfsselectbank.o(.SECTION);
|
||||
#ifdef LIBULTRA_EXCLUSIVE
|
||||
BUILD_DIR/libultra.a:driverominit.o(.SECTION);
|
||||
#endif
|
||||
@@ -1,146 +0,0 @@
|
||||
BUILD_DIR/libultra.a:wrapper.o(.SECTION); // BBPLAYER
|
||||
BUILD_DIR/libultra.a:aigetlen.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:aisetfreq.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:aisetnextbuf.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:bnkf.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:invaldcache.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:invalicache.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:writebackdcacheall.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:contreaddata.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:controller.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:virtualtophysical.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sqrtf.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:cosf.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:ortho.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:perspective.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sinf.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:bcopy.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:bzero.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:ll.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:llcvt.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:string.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:xprintf.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sprintf.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:syncprintf.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:createmesgqueue.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:recvmesg.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sendmesg.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:seteventmesg.o(.SECTION);
|
||||
#ifdef BBPLAYER
|
||||
BUILD_DIR/libultra.a:_getcount.o(.SECTION);
|
||||
#else
|
||||
BUILD_DIR/libultra.a:getcount.o(.SECTION);
|
||||
#endif
|
||||
BUILD_DIR/libultra.a:sptask.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sptaskyield.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sptaskyielded.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sirawdma.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:siacs.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:createthread.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:setthreadpri.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:startthread.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:thread.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:getcurrfaultthread.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:gettime.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:settime.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:settimer.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:timerintr.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:maptlb.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:probetlb.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:unmaptlball.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:vimgr.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:vitbl.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:visetevent.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:visetmode.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:visetspecial.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:viswapbuf.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:viswapcontext.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:viblack.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:mtxidentf.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:mtxf2l.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:scale.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:translate.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:rotate.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:conteepprobe.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:conteeplongwrite.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:conteeplongread.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:exceptasm.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:interrupt.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:setintmask.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:pimgr.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:epirawdma.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:epidma.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:cartrominit.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:devmgr.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:piacs.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:pidma.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:skapi.o(.SECTION); // BBPLAYER
|
||||
BUILD_DIR/libultra.a:motor.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:parameters.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:initialize.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:ai.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:writebackdcache.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:libm_vals.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:xlitob.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:xldtob.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:jammesg.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:getcause.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:getsr.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:setfpccsr.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:setsr.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:setwatchlo.o(.SECTION);
|
||||
#ifdef BBPLAYER
|
||||
BUILD_DIR/libultra.a:_setcompare.o(.SECTION);
|
||||
#else
|
||||
BUILD_DIR/libultra.a:setcompare.o(.SECTION);
|
||||
#endif
|
||||
BUILD_DIR/libultra.a:sp.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:spgetstat.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:spsetstat.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:spsetpc.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sprawdma.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sirawread.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sirawwrite.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:destroythread.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:getthreadpri.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:yieldthread.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:maptlbrdb.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:vi.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:vigetcurrcontext.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:normalize.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:conteepread.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:conteepwrite.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:setglobalintmask.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:resetglobalintmask.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:pirawdma.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:pigetcmdq.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:epirawread.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:epirawwrite.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:ldiv.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:si.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:pirawread.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sethwinterrupt.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:piacs.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:epirawdma.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:devmgr.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:siacs.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:sirawdma.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:settimer.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:kdebugserver.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:vimodentsclan1.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:vimodepallan1.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:vimodempallan1.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:setintmask.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:lookatref.o(.SECTION); /* Fast3DEX2 only */
|
||||
BUILD_DIR/libultra.a:pfsselectbank.o(.SECTION);
|
||||
#ifndef BBPLAYER
|
||||
BUILD_DIR/libultra.a:leodiskinit.o(.SECTION);
|
||||
#endif
|
||||
BUILD_DIR/libultra.a:pfsgetstatus.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:pfsisplug.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:crc.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:contramwrite.o(.SECTION);
|
||||
BUILD_DIR/libultra.a:contramread.o(.SECTION);
|
||||
#ifdef LIBULTRA_EXCLUSIVE
|
||||
BUILD_DIR/libultra.a:driverominit.o(.SECTION);
|
||||
#endif
|
||||
@@ -1,114 +0,0 @@
|
||||
#include "PR/os_internal.h"
|
||||
#include "PR/libaudio.h"
|
||||
|
||||
static void _bnkfPatchBank(ALBank *bank, ALBankFile *file, s32 table);
|
||||
static void _bnkfPatchInst(ALInstrument *inst, ALBankFile *file, s32 table);
|
||||
static void _bnkfPatchSound(ALSound *sound, ALBankFile *file, s32 table);
|
||||
static void _bnkfPatchWaveTable(ALWaveTable *wvtbl, ALBankFile *file, s32 table);
|
||||
|
||||
void alSeqFileNew(ALSeqFile *file, u8 *base)
|
||||
{
|
||||
uintptr_t b = (uintptr_t) base;
|
||||
int i;
|
||||
|
||||
/*
|
||||
* patch the file so that offsets are pointers
|
||||
*/
|
||||
for (i = 0; i < file->seqCount; i++) {
|
||||
file->seqArray[i].offset = ALBnkfPatch(file->seqArray[i].offset, b, u8 *);
|
||||
}
|
||||
}
|
||||
|
||||
void alBnkfNew(ALBankFile *file, u8 *table)
|
||||
{
|
||||
uintptr_t t = (uintptr_t) table;
|
||||
int i;
|
||||
|
||||
/*
|
||||
* check the file format revision in debug libraries
|
||||
*/
|
||||
ALFailIf(file->revision != AL_BANK_VERSION, ERR_ALBNKFNEW);
|
||||
|
||||
/*
|
||||
* patch the file so that offsets are pointers
|
||||
*/
|
||||
for (i = 0; i < file->bankCount; i++) {
|
||||
file->bankArray[i] = ALBnkfPatch(file->bankArray[i], file, ALBank *);
|
||||
if(file->bankArray[i])
|
||||
_bnkfPatchBank(file->bankArray[i], file, t);
|
||||
}
|
||||
}
|
||||
|
||||
void _bnkfPatchBank(ALBank *bank, ALBankFile *file, s32 table)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (bank->flags)
|
||||
return;
|
||||
|
||||
bank->flags = 1;
|
||||
|
||||
if (bank->percussion) {
|
||||
bank->percussion = ALBnkfPatch(bank->percussion, file, ALInstrument *);
|
||||
_bnkfPatchInst(bank->percussion, file, table);
|
||||
}
|
||||
|
||||
for (i = 0; i < bank->instCount; i++) {
|
||||
bank->instArray[i] = ALBnkfPatch(bank->instArray[i], file, ALInstrument *);
|
||||
if(bank->instArray[i])
|
||||
_bnkfPatchInst(bank->instArray[i], file, table);
|
||||
}
|
||||
}
|
||||
|
||||
void _bnkfPatchInst(ALInstrument *inst, ALBankFile *file, s32 table)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (inst->flags)
|
||||
return;
|
||||
|
||||
inst->flags = 1;
|
||||
|
||||
for (i = 0; i < inst->soundCount; i++) {
|
||||
inst->soundArray[i] = ALBnkfPatch(inst->soundArray[i], file, ALSound *);
|
||||
_bnkfPatchSound(inst->soundArray[i], file, table);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void _bnkfPatchSound(ALSound *sound, ALBankFile *file, s32 table)
|
||||
{
|
||||
if (sound->flags)
|
||||
return;
|
||||
|
||||
sound->flags = 1;
|
||||
|
||||
sound->envelope = ALBnkfPatch(sound->envelope, file, ALEnvelope *);
|
||||
sound->keyMap = ALBnkfPatch(sound->keyMap, file, ALKeyMap *);
|
||||
|
||||
sound->wavetable = ALBnkfPatch(sound->wavetable, file, ALWaveTable *);
|
||||
_bnkfPatchWaveTable(sound->wavetable, file, table);
|
||||
}
|
||||
|
||||
void _bnkfPatchWaveTable(ALWaveTable *wvtbl, ALBankFile *file, s32 table)
|
||||
{
|
||||
if (wvtbl->flags)
|
||||
return;
|
||||
|
||||
wvtbl->flags = 1;
|
||||
|
||||
wvtbl->base += table;
|
||||
|
||||
/* sct 2/14/96 - patch wavetable loop info based on type. */
|
||||
if (wvtbl->type == AL_ADPCM_WAVE)
|
||||
{
|
||||
wvtbl->waveInfo.adpcmWave.book = ALBnkfPatch(wvtbl->waveInfo.adpcmWave.book, file, ALADPCMBook *);
|
||||
if (wvtbl->waveInfo.adpcmWave.loop)
|
||||
wvtbl->waveInfo.adpcmWave.loop = ALBnkfPatch(wvtbl->waveInfo.adpcmWave.loop, file, ALADPCMloop *);
|
||||
}
|
||||
else if (wvtbl->type == AL_RAW16_WAVE)
|
||||
{
|
||||
if (wvtbl->waveInfo.rawWave.loop)
|
||||
wvtbl->waveInfo.rawWave.loop = ALBnkfPatch(wvtbl->waveInfo.rawWave.loop, file, ALRawLoop *);
|
||||
}
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
#include "PR/os_internal.h"
|
||||
|
||||
#ifdef BBPLAYER
|
||||
|
||||
u32 __osBbLastRCount;
|
||||
u32 __osBbRCountWraps;
|
||||
u32 __osBbLastVCount;
|
||||
u32 __osBbVCountWraps;
|
||||
|
||||
u32 osGetCount(void) {
|
||||
u32 count;
|
||||
u32 mask;
|
||||
|
||||
mask = __osDisableInt();
|
||||
|
||||
__asm__("mfc0 %0, $9" : "=r"(count)); // $9 = C0_COUNT
|
||||
|
||||
if (count < __osBbLastRCount) {
|
||||
__osBbRCountWraps++;
|
||||
}
|
||||
__osBbLastRCount = count;
|
||||
|
||||
count = (((u64)__osBbRCountWraps << 32) | count) * 125ull / 192ull;
|
||||
|
||||
if (count < __osBbLastVCount) {
|
||||
__osBbVCountWraps++;
|
||||
}
|
||||
__osBbLastVCount = count;
|
||||
|
||||
__osRestoreInt(mask);
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -1,22 +0,0 @@
|
||||
#include "PR/os_internal.h"
|
||||
|
||||
#ifdef BBPLAYER
|
||||
|
||||
extern u32 __osBbLastRCount;
|
||||
extern u32 __osBbRCountWraps;
|
||||
extern u32 __osBbLastVCount;
|
||||
extern u32 __osBbVCountWraps;
|
||||
|
||||
void __osSetCompare(u32 v) {
|
||||
if (v != 0) {
|
||||
u32 mask = __osDisableInt();
|
||||
u32 wraps = (v < __osBbLastVCount) ? __osBbVCountWraps + 1 : __osBbVCountWraps;
|
||||
|
||||
v = (((u64)wraps << 32) | v) * 192ull / 125ull;
|
||||
|
||||
__osRestoreInt(mask);
|
||||
}
|
||||
__asm__ ("mtc0 %0, $11" :: "r"(v)); // $11 = C0_COMPARE
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -1,44 +0,0 @@
|
||||
#include "sys/asm.h"
|
||||
#include "sys/regdef.h"
|
||||
#include "PR/R4300.h"
|
||||
#include "PR/ultratypes.h"
|
||||
#include "PR/bcp.h"
|
||||
#include "PR/rcp.h"
|
||||
|
||||
#ifdef BBPLAYER
|
||||
|
||||
#define SK_FUNC(name, num) \
|
||||
LEAF(name) ;\
|
||||
.set noreorder ;\
|
||||
li v0, num ;\
|
||||
li t0, PHYS_TO_K1(0x04300014) ;\
|
||||
lw t1, (t0) ;\
|
||||
nop ;\
|
||||
jr ra ;\
|
||||
nop ;\
|
||||
.set reorder ;\
|
||||
END(name)
|
||||
|
||||
SK_FUNC(skGetId, 0)
|
||||
SK_FUNC(skLaunchSetup, 1)
|
||||
SK_FUNC(skLaunch, 2)
|
||||
SK_FUNC(skRecryptListValid, 3)
|
||||
SK_FUNC(skRecryptBegin, 4)
|
||||
SK_FUNC(skRecryptData, 5)
|
||||
SK_FUNC(skRecryptComputeState, 6)
|
||||
SK_FUNC(skRecryptEnd, 7)
|
||||
SK_FUNC(skSignHash, 8)
|
||||
SK_FUNC(skVerifyHash, 9)
|
||||
SK_FUNC(skGetConsumption, 10)
|
||||
SK_FUNC(skAdvanceTicketWindow, 11)
|
||||
SK_FUNC(skSetLimit, 12)
|
||||
SK_FUNC(skExit, 13)
|
||||
SK_FUNC(skKeepAlive, 14)
|
||||
SK_FUNC(skGetRandomKeyData, 15)
|
||||
SK_FUNC(skDumpVirage, 16)
|
||||
SK_FUNC(skTest2, 17)
|
||||
SK_FUNC(skTest3, 18)
|
||||
SK_FUNC(skResetWindow, 19)
|
||||
SK_FUNC(skValidateRls, 20)
|
||||
|
||||
#endif
|
||||
@@ -1,20 +0,0 @@
|
||||
#include "ultra64.h"
|
||||
|
||||
#ifdef BBPLAYER
|
||||
s32 osMotorStart(OSPfs *pfs) {
|
||||
return __osMotorAccess(pfs, MOTOR_START);
|
||||
}
|
||||
|
||||
s32 osMotorStop(OSPfs *pfs) {
|
||||
return __osMotorAccess(pfs, MOTOR_STOP);
|
||||
}
|
||||
|
||||
static void osInitializeWrapper(void) {
|
||||
__osInitialize_common();
|
||||
__osInitialize_autodetect();
|
||||
}
|
||||
|
||||
void osInitialize(void) {
|
||||
osInitializeWrapper();
|
||||
}
|
||||
#endif
|
||||
@@ -1,142 +0,0 @@
|
||||
#include "PR/os_internal.h"
|
||||
#include "PR/rcp.h"
|
||||
#include "PR/rdb.h"
|
||||
|
||||
#if LIBULTRA_VERSION <= OS_VER_D || !defined(_FINALROM)
|
||||
static s32 debugState = 0;
|
||||
static s32 numChars = 0;
|
||||
static s32 numCharsToReceive = 0;
|
||||
|
||||
static u8 debugBuffer[0x100];
|
||||
#endif
|
||||
|
||||
OSThread __osThreadSave;
|
||||
|
||||
#if LIBULTRA_VERSION <= OS_VER_D || !defined(_FINALROM)
|
||||
static void u32_to_string(u32 k, u8 *s) {
|
||||
s[0] = (k >> 0x18) & 0xff;
|
||||
s[1] = (k >> 0x10) & 0xff;
|
||||
s[2] = (k >> 0x8) & 0xff;
|
||||
s[3] = k & 0xff;
|
||||
}
|
||||
|
||||
static u32 string_to_u32(u8 *s) {
|
||||
u32 k;
|
||||
|
||||
k = (s[0] & 0xff) << 0x18;
|
||||
k |= (s[1] & 0xff) << 0x10;
|
||||
k |= (s[2] & 0xff) << 0x8;
|
||||
k |= (s[3] & 0xff);
|
||||
|
||||
return k;
|
||||
}
|
||||
|
||||
static void send_packet(u8 *s, s32 n) {
|
||||
rdbPacket pkt;
|
||||
s32 i;
|
||||
|
||||
pkt.type = 2;
|
||||
|
||||
for (pkt.length = n, i = 0; i < n; i++) {
|
||||
pkt.buf[i] = s[i];
|
||||
}
|
||||
*(volatile u32 *) RDB_BASE_REG = *(u32 *) &pkt;
|
||||
|
||||
while (!(__osGetCause() & CAUSE_IP6)) {
|
||||
;
|
||||
}
|
||||
*(volatile u32 *) RDB_READ_INTR_REG = 0;
|
||||
}
|
||||
|
||||
static void send(u8 *buff, s32 len) {
|
||||
s32 i;
|
||||
s32 end;
|
||||
s32 rem;
|
||||
|
||||
if (!__osRdbWriteOK) {
|
||||
while (!(__osGetCause() & CAUSE_IP6)) {
|
||||
;
|
||||
}
|
||||
*(volatile u32 *) RDB_READ_INTR_REG = 0;
|
||||
__osRdbWriteOK = 1;
|
||||
}
|
||||
|
||||
i = 0;
|
||||
rem = len % 3;
|
||||
end = len - rem;
|
||||
|
||||
for (; i < end; i += 3) {
|
||||
send_packet(&buff[i], 3);
|
||||
}
|
||||
|
||||
if (rem > 0) {
|
||||
send_packet(&buff[end], rem);
|
||||
}
|
||||
}
|
||||
|
||||
static void process_command_memory(void) {
|
||||
u32 buff = string_to_u32(&debugBuffer[1]);
|
||||
u32 size = string_to_u32(&debugBuffer[5]);
|
||||
|
||||
send((u8 *) (uintptr_t) buff, size);
|
||||
}
|
||||
|
||||
static void process_command_register(void) {
|
||||
send((u8 *) &__osThreadSave.context, sizeof(__OSThreadContext));
|
||||
}
|
||||
|
||||
void kdebugserver(u32 packet) {
|
||||
u32 i;
|
||||
rdbPacket pkt;
|
||||
|
||||
*(u32 *) &pkt = packet;
|
||||
|
||||
for (i = 0; i < pkt.length; i++) {
|
||||
debugBuffer[numChars] = pkt.buf[i];
|
||||
numChars++;
|
||||
}
|
||||
|
||||
numCharsToReceive -= pkt.length;
|
||||
|
||||
switch (debugState) {
|
||||
case 0:
|
||||
switch (pkt.buf[0]) {
|
||||
case 1:
|
||||
debugState = 1;
|
||||
numCharsToReceive = 9 - pkt.length;
|
||||
break;
|
||||
case 2:
|
||||
process_command_register();
|
||||
debugState = 0;
|
||||
numChars = 0;
|
||||
numCharsToReceive = 0;
|
||||
break;
|
||||
default:
|
||||
debugState = 0;
|
||||
numChars = 0;
|
||||
numCharsToReceive = 0;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (numCharsToReceive <= 0) {
|
||||
if (debugBuffer[0] == 1) {
|
||||
process_command_memory();
|
||||
debugState = 0;
|
||||
numChars = 0;
|
||||
numCharsToReceive = 0;
|
||||
} else {
|
||||
debugState = 0;
|
||||
numChars = 0;
|
||||
numCharsToReceive = 0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
debugState = 0;
|
||||
numChars = 0;
|
||||
numCharsToReceive = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -1,125 +0,0 @@
|
||||
|
||||
/**************************************************************************
|
||||
* *
|
||||
* Copyright (C) 1994, Silicon Graphics, Inc. *
|
||||
* *
|
||||
* These coded instructions, statements, and computer programs contain *
|
||||
* unpublished proprietary information of Silicon Graphics, Inc., and *
|
||||
* are protected by Federal copyright law. They may not be disclosed *
|
||||
* to third parties or copied or duplicated in any form, in whole or *
|
||||
* in part, without the prior written consent of Silicon Graphics, Inc. *
|
||||
* *
|
||||
**************************************************************************/
|
||||
|
||||
#include "guint.h"
|
||||
|
||||
/* ====================================================================
|
||||
* ====================================================================
|
||||
*
|
||||
* Module: fcos.c
|
||||
* $Revision: 1.3 $
|
||||
* $Date: 1998/10/09 06:10:53 $
|
||||
* $Author: has $
|
||||
* $Source: /exdisk2/cvs/N64OS/Master/cvsmdev2/PR/libultra/monegi/gu/cosf.c,v $
|
||||
*
|
||||
* Revision history:
|
||||
* 09-Jun-93 - Original Version
|
||||
*
|
||||
* Description: source code for fcos function
|
||||
*
|
||||
* ====================================================================
|
||||
* ====================================================================
|
||||
*/
|
||||
|
||||
/* coefficients for polynomial approximation of cos on +/- pi/2 */
|
||||
|
||||
static const du P[] = {
|
||||
{{0x3ff00000, 0x00000000}},
|
||||
{{0xbfc55554, 0xbc83656d}},
|
||||
{{0x3f8110ed, 0x3804c2a0}},
|
||||
{{0xbf29f6ff, 0xeea56814}},
|
||||
{{0x3ec5dbdf, 0x0e314bfe}},
|
||||
};
|
||||
|
||||
static const du rpi = {
|
||||
{0x3fd45f30, 0x6dc9c883}
|
||||
};
|
||||
|
||||
static const du pihi = {
|
||||
{0x400921fb, 0x50000000}
|
||||
};
|
||||
|
||||
static const du pilo = {
|
||||
{0x3e6110b4, 0x611a6263}
|
||||
};
|
||||
|
||||
static const fu zero = {0x00000000};
|
||||
|
||||
float cosf(float x)
|
||||
{
|
||||
float absx;
|
||||
double dx, xsq, poly;
|
||||
double dn;
|
||||
int n;
|
||||
double result;
|
||||
int ix, xpt;
|
||||
|
||||
|
||||
ix = *(int *)&x;
|
||||
xpt = (ix >> 22);
|
||||
xpt &= 0x1ff;
|
||||
|
||||
/* xpt is exponent(x) + 1 bit of mantissa */
|
||||
|
||||
|
||||
if ( xpt < 0x136 )
|
||||
{
|
||||
/* |x| < 2^28 */
|
||||
|
||||
/* use the standard algorithm from Cody and Waite, doing
|
||||
the computations in double precision
|
||||
*/
|
||||
|
||||
absx = ABS(x);
|
||||
|
||||
dx = absx;
|
||||
|
||||
dn = dx*rpi.d + 0.5;
|
||||
n = ROUND(dn);
|
||||
dn = n;
|
||||
|
||||
dn -= 0.5;
|
||||
|
||||
dx = dx - dn*pihi.d;
|
||||
dx = dx - dn*pilo.d; /* dx = x - (n - 0.5)*pi */
|
||||
|
||||
xsq = dx*dx;
|
||||
|
||||
poly = ((P[4].d*xsq + P[3].d)*xsq + P[2].d)*xsq + P[1].d;
|
||||
|
||||
result = dx + (dx*xsq)*poly;
|
||||
|
||||
/* negate result if n is odd */
|
||||
|
||||
if ( (n & 1) == 0 )
|
||||
return ( (float)result );
|
||||
|
||||
return ( -(float)result );
|
||||
}
|
||||
|
||||
if ( x != x )
|
||||
{
|
||||
/* x is a NaN; return a quiet NaN */
|
||||
|
||||
#ifdef _IP_NAN_SETS_ERRNO
|
||||
|
||||
*__errnoaddr = EDOM;
|
||||
#endif
|
||||
|
||||
return ( __libm_qnan.f );
|
||||
}
|
||||
|
||||
/* just give up and return 0.0 */
|
||||
|
||||
return ( zero.f );
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
/**************************************************************************
|
||||
* *
|
||||
* Copyright (C) 1994, Silicon Graphics, Inc. *
|
||||
* *
|
||||
* These coded instructions, statements, and computer programs contain *
|
||||
* unpublished proprietary information of Silicon Graphics, Inc., and *
|
||||
* are protected by Federal copyright law. They may not be disclosed *
|
||||
* to third parties or copied or duplicated in any form, in whole or *
|
||||
* in part, without the prior written consent of Silicon Graphics, Inc. *
|
||||
* *
|
||||
**************************************************************************/
|
||||
|
||||
#include "PR/mbi.h"
|
||||
#include "PR/gu.h"
|
||||
#include "PR/os_version.h"
|
||||
|
||||
typedef union
|
||||
{
|
||||
struct
|
||||
{
|
||||
unsigned int hi;
|
||||
unsigned int lo;
|
||||
} word;
|
||||
|
||||
double d;
|
||||
} du;
|
||||
|
||||
typedef union
|
||||
{
|
||||
unsigned int i;
|
||||
float f;
|
||||
} fu;
|
||||
|
||||
#ifndef __GL_GL_H__
|
||||
|
||||
typedef float Matrix[4][4];
|
||||
|
||||
#endif
|
||||
|
||||
#define ROUND(d) (int)(((d) >= 0.0) ? ((d) + 0.5) : ((d) - 0.5))
|
||||
#ifndef ABS
|
||||
#define ABS(d) ((d) > 0) ? (d) : -(d)
|
||||
#endif
|
||||
|
||||
extern const fu __libm_qnan;
|
||||
@@ -1,15 +0,0 @@
|
||||
/**************************************************************************
|
||||
* *
|
||||
* Copyright (C) 1994, Silicon Graphics, Inc. *
|
||||
* *
|
||||
* These coded instructions, statements, and computer programs contain *
|
||||
* unpublished proprietary information of Silicon Graphics, Inc., and *
|
||||
* are protected by Federal copyright law. They may not be disclosed *
|
||||
* to third parties or copied or duplicated in any form, in whole or *
|
||||
* in part, without the prior written consent of Silicon Graphics, Inc. *
|
||||
* *
|
||||
**************************************************************************/
|
||||
|
||||
#include "guint.h"
|
||||
|
||||
const fu __libm_qnan = { 0x7f810000 };
|
||||
@@ -1,119 +0,0 @@
|
||||
/*
|
||||
* This file originates from the standard Nintendo 64 SDK libultra src
|
||||
* directory, and it used exclusively when building with the Fast3DEX2
|
||||
* microcode. Not using it breaks environment mapping.
|
||||
*
|
||||
* Apart from the modifications listed below, this file is unmodified.
|
||||
*/
|
||||
|
||||
/**************************************************************************
|
||||
* *
|
||||
* Copyright (C) 1994, Silicon Graphics, Inc. *
|
||||
* *
|
||||
* These coded instructions, statements, and computer programs contain *
|
||||
* unpublished proprietary information of Silicon Graphics, Inc., and *
|
||||
* are protected by Federal copyright law. They may not be disclosed *
|
||||
* to third parties or copied or duplicated in any form, in whole or *
|
||||
* in part, without the prior written consent of Silicon Graphics, Inc. *
|
||||
* *
|
||||
**************************************************************************/
|
||||
|
||||
#include "guint.h"
|
||||
|
||||
|
||||
void guLookAtReflectF(float mf[4][4], LookAt *l,
|
||||
float xEye, float yEye, float zEye,
|
||||
float xAt, float yAt, float zAt,
|
||||
float xUp, float yUp, float zUp)
|
||||
{
|
||||
float len, xLook, yLook, zLook, xRight, yRight, zRight;
|
||||
|
||||
guMtxIdentF(mf);
|
||||
|
||||
xLook = xAt - xEye;
|
||||
yLook = yAt - yEye;
|
||||
zLook = zAt - zEye;
|
||||
|
||||
/* Negate because positive Z is behind us: */
|
||||
len = -1.0 / sqrtf (xLook*xLook + yLook*yLook + zLook*zLook);
|
||||
xLook *= len;
|
||||
yLook *= len;
|
||||
zLook *= len;
|
||||
|
||||
/* Right = Up x Look */
|
||||
|
||||
xRight = yUp * zLook - zUp * yLook;
|
||||
yRight = zUp * xLook - xUp * zLook;
|
||||
zRight = xUp * yLook - yUp * xLook;
|
||||
len = 1.0 / sqrtf (xRight*xRight + yRight*yRight + zRight*zRight);
|
||||
xRight *= len;
|
||||
yRight *= len;
|
||||
zRight *= len;
|
||||
|
||||
/* Up = Look x Right */
|
||||
|
||||
xUp = yLook * zRight - zLook * yRight;
|
||||
yUp = zLook * xRight - xLook * zRight;
|
||||
zUp = xLook * yRight - yLook * xRight;
|
||||
len = 1.0 / sqrtf (xUp*xUp + yUp*yUp + zUp*zUp);
|
||||
xUp *= len;
|
||||
yUp *= len;
|
||||
zUp *= len;
|
||||
|
||||
/* reflectance vectors = Up and Right */
|
||||
|
||||
l->l[0].l.dir[0] = FTOFRAC8(xRight);
|
||||
l->l[0].l.dir[1] = FTOFRAC8(yRight);
|
||||
l->l[0].l.dir[2] = FTOFRAC8(zRight);
|
||||
l->l[1].l.dir[0] = FTOFRAC8(xUp);
|
||||
l->l[1].l.dir[1] = FTOFRAC8(yUp);
|
||||
l->l[1].l.dir[2] = FTOFRAC8(zUp);
|
||||
l->l[0].l.col[0] = 0x00;
|
||||
l->l[0].l.col[1] = 0x00;
|
||||
l->l[0].l.col[2] = 0x00;
|
||||
l->l[0].l.pad1 = 0x00;
|
||||
l->l[0].l.colc[0] = 0x00;
|
||||
l->l[0].l.colc[1] = 0x00;
|
||||
l->l[0].l.colc[2] = 0x00;
|
||||
l->l[0].l.pad2 = 0x00;
|
||||
l->l[1].l.col[0] = 0x00;
|
||||
l->l[1].l.col[1] = 0x80;
|
||||
l->l[1].l.col[2] = 0x00;
|
||||
l->l[1].l.pad1 = 0x00;
|
||||
l->l[1].l.colc[0] = 0x00;
|
||||
l->l[1].l.colc[1] = 0x80;
|
||||
l->l[1].l.colc[2] = 0x00;
|
||||
l->l[1].l.pad2 = 0x00;
|
||||
|
||||
mf[0][0] = xRight;
|
||||
mf[1][0] = yRight;
|
||||
mf[2][0] = zRight;
|
||||
mf[3][0] = -(xEye * xRight + yEye * yRight + zEye * zRight);
|
||||
|
||||
mf[0][1] = xUp;
|
||||
mf[1][1] = yUp;
|
||||
mf[2][1] = zUp;
|
||||
mf[3][1] = -(xEye * xUp + yEye * yUp + zEye * zUp);
|
||||
|
||||
mf[0][2] = xLook;
|
||||
mf[1][2] = yLook;
|
||||
mf[2][2] = zLook;
|
||||
mf[3][2] = -(xEye * xLook + yEye * yLook + zEye * zLook);
|
||||
|
||||
mf[0][3] = 0;
|
||||
mf[1][3] = 0;
|
||||
mf[2][3] = 0;
|
||||
mf[3][3] = 1;
|
||||
}
|
||||
|
||||
void guLookAtReflect (Mtx *m, LookAt *l, float xEye, float yEye, float zEye,
|
||||
float xAt, float yAt, float zAt,
|
||||
float xUp, float yUp, float zUp)
|
||||
{
|
||||
float mf[4][4];
|
||||
|
||||
guLookAtReflectF(mf, l, xEye, yEye, zEye, xAt, yAt, zAt,
|
||||
xUp, yUp, zUp);
|
||||
|
||||
guMtxF2L(mf, m);
|
||||
}
|
||||
@@ -1,90 +0,0 @@
|
||||
|
||||
/**************************************************************************
|
||||
* *
|
||||
* Copyright (C) 1994, Silicon Graphics, Inc. *
|
||||
* *
|
||||
* These coded instructions, statements, and computer programs contain *
|
||||
* unpublished proprietary information of Silicon Graphics, Inc., and *
|
||||
* are protected by Federal copyright law. They may not be disclosed *
|
||||
* to third parties or copied or duplicated in any form, in whole or *
|
||||
* in part, without the prior written consent of Silicon Graphics, Inc. *
|
||||
* *
|
||||
**************************************************************************/
|
||||
|
||||
#include "guint.h"
|
||||
#ifdef GBI_FLOATS
|
||||
#include <string.h>
|
||||
#endif
|
||||
|
||||
#if LIBULTRA_VERSION < OS_VER_K || !defined(TARGET_N64)
|
||||
#ifndef GBI_FLOATS
|
||||
void guMtxF2L(float mf[4][4], Mtx *m)
|
||||
{
|
||||
int i, j;
|
||||
int e1,e2;
|
||||
int *ai,*af;
|
||||
|
||||
|
||||
ai=(int *) &m->m[0][0];
|
||||
af=(int *) &m->m[2][0];
|
||||
|
||||
for (i=0; i<4; i++)
|
||||
for (j=0; j<2; j++) {
|
||||
e1=FTOFIX32(mf[i][j*2]);
|
||||
e2=FTOFIX32(mf[i][j*2+1]);
|
||||
*(ai++) = ( e1 & 0xffff0000 ) | ((e2 >> 16)&0xffff);
|
||||
*(af++) = ((e1 << 16) & 0xffff0000) | (e2 & 0xffff);
|
||||
}
|
||||
}
|
||||
|
||||
void guMtxL2F(float mf[4][4], Mtx *m)
|
||||
{
|
||||
int i, j;
|
||||
unsigned int e1,e2;
|
||||
unsigned int *ai,*af;
|
||||
int q1,q2;
|
||||
|
||||
ai=(unsigned int *) &m->m[0][0];
|
||||
af=(unsigned int *) &m->m[2][0];
|
||||
|
||||
for (i=0; i<4; i++)
|
||||
for (j=0; j<2; j++) {
|
||||
e1 = (*ai & 0xffff0000) | ((*af >> 16) & 0xffff);
|
||||
e2 = ((*(ai++) << 16) & 0xffff0000) | (*(af++) & 0xffff);
|
||||
q1 = *((int *)&e1);
|
||||
q2 = *((int *)&e2);
|
||||
|
||||
mf[i][j*2] = FIX32TOF(q1);
|
||||
mf[i][j*2+1] = FIX32TOF(q2);
|
||||
}
|
||||
}
|
||||
#else
|
||||
void guMtxF2L(float mf[4][4], Mtx *m) {
|
||||
memcpy(m, mf, sizeof(Mtx));
|
||||
}
|
||||
#endif
|
||||
|
||||
void guMtxIdentF(float mf[4][4])
|
||||
{
|
||||
int i, j;
|
||||
|
||||
for (i=0; i<4; i++)
|
||||
for (j=0; j<4; j++)
|
||||
if (i == j) mf[i][j] = 1.0;
|
||||
else mf[i][j] = 0.0;
|
||||
}
|
||||
|
||||
void guMtxIdent(Mtx *m)
|
||||
{
|
||||
#ifndef GBI_FLOATS
|
||||
float mf[4][4];
|
||||
|
||||
guMtxIdentF(mf);
|
||||
|
||||
guMtxF2L(mf, m);
|
||||
#else
|
||||
guMtxIdentF(m->m);
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -1,28 +0,0 @@
|
||||
|
||||
/**************************************************************************
|
||||
* *
|
||||
* Copyright (C) 1994, Silicon Graphics, Inc. *
|
||||
* *
|
||||
* These coded instructions, statements, and computer programs contain *
|
||||
* unpublished proprietary information of Silicon Graphics, Inc., and *
|
||||
* are protected by Federal copyright law. They may not be disclosed *
|
||||
* to third parties or copied or duplicated in any form, in whole or *
|
||||
* in part, without the prior written consent of Silicon Graphics, Inc. *
|
||||
* *
|
||||
**************************************************************************/
|
||||
|
||||
#include "guint.h"
|
||||
|
||||
#if LIBULTRA_VERSION < OS_VER_K || !defined(TARGET_N64)
|
||||
|
||||
void guNormalize(float *x, float *y, float *z)
|
||||
{
|
||||
float m;
|
||||
|
||||
m = 1/sqrtf((*x)*(*x) + (*y)*(*y) + (*z)*(*z));
|
||||
*x *= m;
|
||||
*y *= m;
|
||||
*z *= m;
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -1,42 +0,0 @@
|
||||
|
||||
/**************************************************************************
|
||||
* *
|
||||
* Copyright (C) 1994, Silicon Graphics, Inc. *
|
||||
* *
|
||||
* These coded instructions, statements, and computer programs contain *
|
||||
* unpublished proprietary information of Silicon Graphics, Inc., and *
|
||||
* are protected by Federal copyright law. They may not be disclosed *
|
||||
* to third parties or copied or duplicated in any form, in whole or *
|
||||
* in part, without the prior written consent of Silicon Graphics, Inc. *
|
||||
* *
|
||||
**************************************************************************/
|
||||
|
||||
#include "guint.h"
|
||||
|
||||
void guOrthoF(float mf[4][4], float l, float r, float b, float t, float n, float f, float scale)
|
||||
{
|
||||
int i, j;
|
||||
|
||||
guMtxIdentF(mf);
|
||||
|
||||
mf[0][0] = 2/(r-l);
|
||||
mf[1][1] = 2/(t-b);
|
||||
mf[2][2] = -2/(f-n);
|
||||
mf[3][0] = -(r+l)/(r-l);
|
||||
mf[3][1] = -(t+b)/(t-b);
|
||||
mf[3][2] = -(f+n)/(f-n);
|
||||
mf[3][3] = 1;
|
||||
|
||||
for (i=0; i<4; i++)
|
||||
for (j=0; j<4; j++)
|
||||
mf[i][j] *= scale;
|
||||
}
|
||||
|
||||
void guOrtho(Mtx *m, float l, float r, float b, float t, float n, float f, float scale)
|
||||
{
|
||||
Matrix mf;
|
||||
|
||||
guOrthoF(mf, l, r, b, t, n, f, scale);
|
||||
|
||||
guMtxF2L(mf, m);
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
|
||||
/**************************************************************************
|
||||
* *
|
||||
* Copyright (C) 1994, Silicon Graphics, Inc. *
|
||||
* *
|
||||
* These coded instructions, statements, and computer programs contain *
|
||||
* unpublished proprietary information of Silicon Graphics, Inc., and *
|
||||
* are protected by Federal copyright law. They may not be disclosed *
|
||||
* to third parties or copied or duplicated in any form, in whole or *
|
||||
* in part, without the prior written consent of Silicon Graphics, Inc. *
|
||||
* *
|
||||
**************************************************************************/
|
||||
|
||||
#include "guint.h"
|
||||
|
||||
void guPerspectiveF(float mf[4][4], u16 *perspNorm, float fovy, float aspect, float near, float far, float scale)
|
||||
{
|
||||
float cot;
|
||||
int i, j;
|
||||
|
||||
guMtxIdentF(mf);
|
||||
|
||||
fovy *= GU_PI / 180.0;
|
||||
cot = cosf (fovy/2) / sinf (fovy/2);
|
||||
|
||||
mf[0][0] = cot / aspect;
|
||||
mf[1][1] = cot;
|
||||
mf[2][2] = (near + far) / (near - far);
|
||||
mf[2][3] = -1;
|
||||
mf[3][2] = (2 * near * far) / (near - far);
|
||||
mf[3][3] = 0;
|
||||
|
||||
for (i=0; i<4; i++)
|
||||
for (j=0; j<4; j++)
|
||||
mf[i][j] *= scale;
|
||||
|
||||
if (perspNorm != (u16 *) NULL) {
|
||||
if (near+far<=2.0) {
|
||||
*perspNorm = (u16) 0xFFFF;
|
||||
} else {
|
||||
*perspNorm = (u16) ((2.0*65536.0)/(near+far));
|
||||
if (*perspNorm<=0)
|
||||
*perspNorm = (u16) 0x0001;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void guPerspective(Mtx *m, u16 *perspNorm, float fovy, float aspect, float near, float far, float scale)
|
||||
{
|
||||
Matrix mf;
|
||||
|
||||
guPerspectiveF(mf, perspNorm, fovy, aspect, near, far, scale);
|
||||
|
||||
guMtxF2L(mf, m);
|
||||
}
|
||||
@@ -1,71 +0,0 @@
|
||||
/**************************************************************************
|
||||
* *
|
||||
* Copyright (C) 1994, Silicon Graphics, Inc. *
|
||||
* *
|
||||
* These coded instructions, statements, and computer programs contain *
|
||||
* unpublished proprietary information of Silicon Graphics, Inc., and *
|
||||
* are protected by Federal copyright law. They may not be disclosed *
|
||||
* to third parties or copied or duplicated in any form, in whole or *
|
||||
* in part, without the prior written consent of Silicon Graphics, Inc. *
|
||||
* *
|
||||
**************************************************************************/
|
||||
|
||||
#include "guint.h"
|
||||
|
||||
void guRotateF(float mf[4][4], float a, float x, float y, float z)
|
||||
{
|
||||
static float dtor = GU_PI / 180.0;
|
||||
float sine;
|
||||
float cosine;
|
||||
float ab, bc, ca, t;
|
||||
#if LIBULTRA_VERSION >= OS_VER_K
|
||||
float xxsine;
|
||||
float yxsine;
|
||||
float zxsine;
|
||||
#endif
|
||||
|
||||
guNormalize(&x, &y, &z);
|
||||
a *= dtor;
|
||||
sine = sinf(a);
|
||||
cosine = cosf(a);
|
||||
t = (1-cosine);
|
||||
ab = x*y*t;
|
||||
bc = y*z*t;
|
||||
ca = z*x*t;
|
||||
|
||||
guMtxIdentF(mf);
|
||||
|
||||
#if LIBULTRA_VERSION >= OS_VER_K
|
||||
xxsine = x * sine;
|
||||
yxsine = y * sine;
|
||||
zxsine = z * sine;
|
||||
#else
|
||||
#define xxsine (x * sine)
|
||||
#define yxsine (y * sine)
|
||||
#define zxsine (z * sine)
|
||||
#endif
|
||||
|
||||
t = x*x;
|
||||
mf[0][0] = t+cosine*(1-t);
|
||||
mf[2][1] = bc-xxsine;
|
||||
mf[1][2] = bc+xxsine;
|
||||
|
||||
t = y*y;
|
||||
mf[1][1] = t+cosine*(1-t);
|
||||
mf[2][0] = ca+yxsine;
|
||||
mf[0][2] = ca-yxsine;
|
||||
|
||||
t = z*z;
|
||||
mf[2][2] = t+cosine*(1-t);
|
||||
mf[1][0] = ab-zxsine;
|
||||
mf[0][1] = ab+zxsine;
|
||||
}
|
||||
|
||||
void guRotate(Mtx *m, float a, float x, float y, float z)
|
||||
{
|
||||
Matrix mf;
|
||||
|
||||
guRotateF(mf, a, x, y, z);
|
||||
|
||||
guMtxF2L(mf, m);
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
|
||||
/**************************************************************************
|
||||
* *
|
||||
* Copyright (C) 1994, Silicon Graphics, Inc. *
|
||||
* *
|
||||
* These coded instructions, statements, and computer programs contain *
|
||||
* unpublished proprietary information of Silicon Graphics, Inc., and *
|
||||
* are protected by Federal copyright law. They may not be disclosed *
|
||||
* to third parties or copied or duplicated in any form, in whole or *
|
||||
* in part, without the prior written consent of Silicon Graphics, Inc. *
|
||||
* *
|
||||
**************************************************************************/
|
||||
|
||||
#include "guint.h"
|
||||
|
||||
#if LIBULTRA_VERSION < OS_VER_K || !defined(TARGET_N64)
|
||||
|
||||
void guScaleF(float mf[4][4], float x, float y, float z)
|
||||
{
|
||||
guMtxIdentF(mf);
|
||||
|
||||
mf[0][0] = x;
|
||||
mf[1][1] = y;
|
||||
mf[2][2] = z;
|
||||
mf[3][3] = 1;
|
||||
}
|
||||
|
||||
void guScale(Mtx *m, float x, float y, float z)
|
||||
{
|
||||
Matrix mf;
|
||||
|
||||
guScaleF(mf, x, y, z);
|
||||
|
||||
guMtxF2L(mf, m);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -1,144 +0,0 @@
|
||||
|
||||
/**************************************************************************
|
||||
* *
|
||||
* Copyright (C) 1994, Silicon Graphics, Inc. *
|
||||
* *
|
||||
* These coded instructions, statements, and computer programs contain *
|
||||
* unpublished proprietary information of Silicon Graphics, Inc., and *
|
||||
* are protected by Federal copyright law. They may not be disclosed *
|
||||
* to third parties or copied or duplicated in any form, in whole or *
|
||||
* in part, without the prior written consent of Silicon Graphics, Inc. *
|
||||
* *
|
||||
**************************************************************************/
|
||||
|
||||
#include "guint.h"
|
||||
|
||||
/* ====================================================================
|
||||
* ====================================================================
|
||||
*
|
||||
* Module: fsin.c
|
||||
* $Revision: 1.3 $
|
||||
* $Date: 1998/10/09 06:14:51 $
|
||||
* $Author: has $
|
||||
* $Source: /exdisk2/cvs/N64OS/Master/cvsmdev2/PR/libultra/monegi/gu/sinf.c,v $
|
||||
*
|
||||
* Revision history:
|
||||
* 09-Jun-93 - Original Version
|
||||
*
|
||||
* Description: source code for fsin function
|
||||
*
|
||||
* ====================================================================
|
||||
* ====================================================================
|
||||
*/
|
||||
|
||||
/* coefficients for polynomial approximation of sin on +/- pi/2 */
|
||||
|
||||
static const du P[] = {
|
||||
{{0x3ff00000, 0x00000000}},
|
||||
{{0xbfc55554, 0xbc83656d}},
|
||||
{{0x3f8110ed, 0x3804c2a0}},
|
||||
{{0xbf29f6ff, 0xeea56814}},
|
||||
{{0x3ec5dbdf, 0x0e314bfe}},
|
||||
};
|
||||
|
||||
static const du rpi = {
|
||||
{0x3fd45f30, 0x6dc9c883}
|
||||
};
|
||||
|
||||
static const du pihi = {
|
||||
{0x400921fb, 0x50000000}
|
||||
};
|
||||
|
||||
static const du pilo = {
|
||||
{0x3e6110b4, 0x611a6263}
|
||||
};
|
||||
|
||||
static const fu zero = {0x00000000};
|
||||
|
||||
float sinf(float x)
|
||||
{
|
||||
double dx, xsq, poly;
|
||||
double dn;
|
||||
int n;
|
||||
double result;
|
||||
int ix, xpt;
|
||||
|
||||
|
||||
ix = *(int *)&x;
|
||||
xpt = (ix >> 22);
|
||||
xpt &= 0x1ff;
|
||||
|
||||
/* xpt is exponent(x) + 1 bit of mantissa */
|
||||
|
||||
if ( xpt < 0xff )
|
||||
{
|
||||
/* |x| < 1.5 */
|
||||
|
||||
dx = x;
|
||||
|
||||
if ( xpt >= 0xe6 )
|
||||
{
|
||||
/* |x| >= 2^(-12) */
|
||||
|
||||
/* compute sin(x) with a standard polynomial approximation */
|
||||
|
||||
xsq = dx*dx;
|
||||
|
||||
poly = ((P[4].d*xsq + P[3].d)*xsq + P[2].d)*xsq + P[1].d;
|
||||
|
||||
result = dx + (dx*xsq)*poly;
|
||||
|
||||
return ( (float)result );
|
||||
}
|
||||
|
||||
return ( x );
|
||||
}
|
||||
|
||||
if ( xpt < 0x136 )
|
||||
{
|
||||
/* |x| < 2^28 */
|
||||
|
||||
dx = x;
|
||||
|
||||
/* reduce argument to +/- pi/2 */
|
||||
|
||||
dn = dx*rpi.d;
|
||||
|
||||
n = ROUND(dn);
|
||||
dn = n;
|
||||
|
||||
dx = dx - dn*pihi.d;
|
||||
dx = dx - dn*pilo.d; /* dx = x - n*pi */
|
||||
|
||||
/* compute sin(dx) as before, negating result if n is odd
|
||||
*/
|
||||
|
||||
xsq = dx*dx;
|
||||
|
||||
poly = ((P[4].d*xsq + P[3].d)*xsq + P[2].d)*xsq + P[1].d;
|
||||
|
||||
result = dx + (dx*xsq)*poly;
|
||||
|
||||
|
||||
if ( (n & 1) == 0 )
|
||||
return ( (float)result );
|
||||
|
||||
return ( -(float)result );
|
||||
}
|
||||
|
||||
if ( x != x )
|
||||
{
|
||||
/* x is a NaN; return a quiet NaN */
|
||||
|
||||
#ifdef _IP_NAN_SETS_ERRNO
|
||||
|
||||
*__errnoaddr = EDOM;
|
||||
#endif
|
||||
|
||||
return ( __libm_qnan.f );
|
||||
}
|
||||
|
||||
/* just give up and return 0.0 */
|
||||
|
||||
return ( zero.f );
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user