Refresh 16

This commit is contained in:
n64
2023-08-17 08:56:02 -04:00
parent 66018e9f3c
commit ae770e0df5
1326 changed files with 73566 additions and 26397 deletions

View File

@@ -1,18 +1,40 @@
.set noreorder // don't insert nops after branches
.set gp=64
#include "macros.inc"
#include <PR/R4300.h>
.section .text, "ax"
glabel __osDisableInt
mfc0 $t0, $12
and $t1, $t0, -2
mtc0 $t1, $12
andi $v0, $t0, 1
nop
jr $ra
nop
#ifdef VERSION_CN
la $t2, __OSGlobalIntMask
lw $t3, ($t2)
andi $t3, $t3, SR_IMASK
#endif
mfc0 $t0, C0_SR
and $t1, $t0, ~SR_IE
mtc0 $t1, C0_SR
andi $v0, $t0, SR_IE
#ifdef VERSION_CN
lw $t0, ($t2)
andi $t0, $t0, SR_IMASK
beq $t0, $t3, .Lret
lui $t2, %hi(__osRunningThread)
addiu $t2, %lo(__osRunningThread)
lw $t1, 0x118($t2)
andi $t2, $t1, SR_IMASK
and $t2, $t2, $t0
and $t1, $t1, ~SR_IMASK
or $t1, $t1, $t2
and $t1, $t1, ~SR_IE
mtc0 $t1, $12
nop
#endif
nop
.Lret:
jr $ra
nop

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,4 @@
.set noreorder // don't insert nops after branches
.set gp=64
#include "macros.inc"

View File

@@ -1,5 +1,4 @@
.set noreorder // don't insert nops after branches
.set gp=64
#include "macros.inc"

View File

@@ -1,6 +1,5 @@
.set noat // allow manual use of $at
.set noreorder // don't insert nops after branches
.set gp=64
#include "macros.inc"
@@ -10,7 +9,7 @@
glabel __osProbeTLB
mfc0 $t0, $10
andi $t1, $t0, 0xff
li $at, -8192
li $at, 0xFFFFE000
and $t2, $a0, $at
or $t1, $t1, $t2
mtc0 $t1, $10
@@ -58,7 +57,3 @@ glabel __osProbeTLB
mtc0 $t0, $10
jr $ra
nop
nop
nop

View File

@@ -1,19 +1,16 @@
.set noreorder // don't insert nops after branches
.set gp=64
#include "macros.inc"
#include <PR/R4300.h>
.section .text, "ax"
glabel __osRestoreInt
mfc0 $t0, $12
mfc0 $t0, C0_SR
or $t0, $t0, $a0
mtc0 $t0, $12
mtc0 $t0, C0_SR
nop
nop
jr $ra
nop
nop

View File

@@ -1,15 +1,65 @@
.set noat
.set noreorder // don't insert nops after branches
.set gp=64
#include "macros.inc"
#include <PR/R4300.h>
.section .text, "ax"
#ifdef VERSION_CN
glabel __osSetCompare
mtc0 $a0, $11
addiu $sp, $sp, -0x38
sd $ra, 0x30($sp)
sd $fp, 0x28($sp)
move $fp, $sp
sw $a0, 0x3c($fp)
lw $v0, 0x3c($fp)
beqz $v0, .L8030A25C
nop
jal __osDisableInt
nop
sw $v0, 0x20($fp)
lw $v0, 0x3c($fp)
lui $v1, %hi(sLastHighestCount2) # $v1, 0x8032
lw $v1, %lo(sLastHighestCount2)($v1)
sltu $v0, $v0, $v1
lui $v1, %hi(sNumCountOverflows2) # $v1, 0x8032
lw $v1, %lo(sNumCountOverflows2)($v1)
addu $v0, $v0, $v1
sw $v0, 0x24($fp)
lwu $v0, 0x24($fp)
dsll32 $v1, $v0, 0
lwu $a0, 0x3c($fp)
or $v0, $v1, $a0
move $a0, $v0
dsll $v1, $a0, 1
daddu $v1, $v1, $v0
dsll $a0, $v1, 6
li $at, 125
ddivu $zero, $a0, $at
mflo $v0
dsll32 $v0, $v0, 0
dsra32 $v0, $v0, 0
sw $v0, 0x3c($fp)
jal __osRestoreInt
lw $a0, 0x20($fp)
.L8030A25C:
lw $a1, 0x3c($fp)
mtc0 $a1, C0_COMPARE
move $sp, $fp
ld $ra, 0x30($sp)
ld $fp, 0x28($sp)
jr $ra
addiu $sp, $sp, 0x38
#else
glabel __osSetCompare
mtc0 $a0, C0_COMPARE
jr $ra
nop
nop
#endif

View File

@@ -1,5 +1,4 @@
.set noreorder // don't insert nops after branches
.set gp=64
#include "macros.inc"

View File

@@ -1,5 +1,4 @@
.set noreorder // don't insert nops after branches
.set gp=64
#include "macros.inc"

13
lib/asm/__osSetWatchLo.s Normal file
View File

@@ -0,0 +1,13 @@
.set noreorder // don't insert nops after branches
#include "macros.inc"
.section .text, "ax"
glabel __osSetWatchLo
mtc0 $a0, $18
nop
jr $ra
nop

View File

@@ -1,6 +1,5 @@
.set noreorder // don't insert nops after branches
.set gp=64
.set noat
.set noreorder // don't insert nops after branches
#include "macros.inc"

View File

@@ -1,27 +1,45 @@
.set noat // allow manual use of $at
.set noreorder // don't insert nops after branches
.set gp=64
#include "macros.inc"
.section .text, "ax"
//TODO There seem to be patterns in these iQue diffs. Can we figure out what's causing them? Could this have been written in C?
//also ifdef hell lol
glabel bcopy
beqz $a2, .L80323A4C
move $a3, $a1
#ifdef VERSION_CN
beq $a0, $a1, .L80323A4C
nop
slt $at, $a1, $a0
bnez $at, .L80323A14
nop
add $v0, $a0, $a2
slt $at, $a1, $v0
beqz $at, .L80323A14
nop
b .L80323B78
nop
.L80323A14:
slti $at, $a2, 0x10
#else
beq $a0, $a1, .L80323A4C
slt $at, $a1, $a0
bnezl $at, .L80323A14
slti $at, $a2, 0x10
add $v0, $a0, $a2
slt $at, $a1, $v0
beql $at, $zero, .L80323A14
beqzl $at, .L80323A14
slti $at, $a2, 0x10
b .L80323B78
slti $at, $a2, 0x10
slti $at, $a2, 0x10
.L80323A14:
#endif
bnez $at, .L80323A2C
nop
andi $v0, $a0, 3
@@ -35,14 +53,38 @@ glabel bcopy
.L80323A38:
lb $v0, ($a0)
addiu $a0, $a0, 1
#ifdef VERSION_CN
sb $v0, ($a1)
bne $a0, $v1, .L80323A38
addiu $a1, $a1, 1
#else
addiu $a1, $a1, 1
bne $a0, $v1, .L80323A38
sb $v0, -1($a1)
#endif
.L80323A4C:
jr $ra
move $v0, $a3
.L80323A54:
#ifdef VERSION_CN
beqz $v0, .L80323AB8
nop
li $at, 1
beq $v0, $at, .L80323A9C
nop
li $at, 2
beq $v0, $at, .L80323A88
nop
lb $v0, ($a0)
addiu $a0, $a0, 1
sb $v0, ($a1)
addiu $a1, $a1, 1
b .L80323AB8
addiu $a2, $a2, -1
.L80323A88:
lh $v0, ($a0)
#else
beqz $v0, .L80323AB8
li $at, 1
beq $v0, $at, .L80323A9C
@@ -57,23 +99,42 @@ glabel bcopy
sb $v0, -1($a1)
lh $v0, ($a0)
.L80323A88:
#endif
addiu $a0, $a0, 2
#ifdef VERSION_CN
sh $v0, ($a1)
addiu $a1, $a1, 2
b .L80323AB8
addiu $a2, $a2, -2
#else
addiu $a1, $a1, 2
addiu $a2, $a2, -2
b .L80323AB8
sh $v0, -2($a1)
#endif
.L80323A9C:
lb $v0, ($a0)
lh $v1, 1($a0)
addiu $a0, $a0, 3
#ifdef VERSION_CN
sb $v0, ($a1)
sh $v1, 1($a1)
#endif
addiu $a1, $a1, 3
addiu $a2, $a2, -3
#ifndef VERSION_CN
sb $v0, -3($a1)
sh $v1, -2($a1)
#endif
.L80323AB8:
slti $at, $a2, 0x20
#ifdef VERSION_CN
bnez $at, .L80323B14
nop
#else
bnezl $at, .L80323B18
slti $at, $a2, 0x10
#endif
lw $v0, ($a0)
lw $v1, 4($a0)
lw $t0, 8($a0)
@@ -83,7 +144,18 @@ glabel bcopy
lw $t4, 0x18($a0)
lw $t5, 0x1c($a0)
addiu $a0, $a0, 0x20
#ifdef VERSION_CN
sw $v0, ($a1)
sw $v1, 4($a1)
sw $t0, 8($a1)
sw $t1, 0xc($a1)
sw $t2, 0x10($a1)
sw $t3, 0x14($a1)
sw $t4, 0x18($a1)
sw $t5, 0x1c($a1)
#endif
addiu $a1, $a1, 0x20
#ifndef VERSION_CN
addiu $a2, $a2, -0x20
sw $v0, -0x20($a1)
sw $v1, -0x1c($a1)
@@ -92,25 +164,47 @@ glabel bcopy
sw $t2, -0x10($a1)
sw $t3, -0xc($a1)
sw $t4, -8($a1)
#endif
b .L80323AB8
#ifdef VERSION_CN
addiu $a2, $a2, -0x20
#else
sw $t5, -4($a1)
#endif
.L80323B14:
slti $at, $a2, 0x10
.L80323B18:
#ifdef VERSION_CN
bnez $at, .L80323B50
nop
#else
bnezl $at, .L80323B54
slti $at, $a2, 4
#endif
lw $v0, ($a0)
lw $v1, 4($a0)
lw $t0, 8($a0)
lw $t1, 0xc($a0)
addiu $a0, $a0, 0x10
#ifdef VERSION_CN
sw $v0, ($a1)
sw $v1, 4($a1)
sw $t0, 8($a1)
sw $t1, 0xc($a1)
#endif
addiu $a1, $a1, 0x10
#ifndef VERSION_CN
addiu $a2, $a2, -0x10
sw $v0, -0x10($a1)
sw $v1, -0xc($a1)
sw $t0, -8($a1)
#endif
b .L80323B14
#ifdef VERSION_CN
addiu $a2, $a2, -0x10
#else
sw $t1, -4($a1)
#endif
.L80323B50:
slti $at, $a2, 4
.L80323B54:
@@ -118,15 +212,32 @@ glabel bcopy
nop
lw $v0, ($a0)
addiu $a0, $a0, 4
#ifdef VERSION_CN
sw $v0, ($a1)
#endif
addiu $a1, $a1, 4
#ifndef VERSION_CN
addiu $a2, $a2, -4
#endif
b .L80323B50
#ifdef VERSION_CN
addiu $a2, $a2, -4
#else
sw $v0, -4($a1)
slti $at, $a2, 0x10
#endif
.L80323B78:
add $a0, $a0, $a2
#ifdef VERSION_CN
add $a1, $a1, $a2
slti $at, $a2, 0x10
#endif
bnez $at, .L80323B94
#ifdef VERSION_CN
nop
#else
add $a1, $a1, $a2
#endif
andi $v0, $a0, 3
andi $v1, $a1, 3
beq $v0, $v1, .L80323BC4
@@ -140,44 +251,94 @@ glabel bcopy
.L80323BA8:
lb $v0, ($a0)
addiu $a0, $a0, -1
#ifdef VERSION_CN
sb $v0, 0($a1)
#else
addiu $a1, $a1, -1
#endif
bne $a0, $v1, .L80323BA8
#ifdef VERSION_CN
addiu $a1, $a1, -1
#else
sb $v0, 1($a1)
#endif
jr $ra
move $v0, $a3
.L80323BC4:
beqz $v0, .L80323C28
#ifdef VERSION_CN
nop
#endif
li $at, 3
beq $v0, $at, .L80323C0C
#ifdef VERSION_CN
nop
#endif
li $at, 2
#ifdef VERSION_CN
beq $v0, $at, .L80323BF4
nop
#else
beql $v0, $at, .L80323BF8
lh $v0, -2($a0)
#endif
lb $v0, -1($a0)
addiu $a0, $a0, -1
#ifdef VERSION_CN
sb $v0, -1($a1)
#endif
addiu $a1, $a1, -1
#ifndef VERSION_CN
addiu $a2, $a2, -1
#endif
b .L80323C28
#ifdef VERSION_CN
addiu $a2, $a2, -1
#else
sb $v0, ($a1)
#endif
.L80323BF4:
lh $v0, -2($a0)
.L80323BF8:
addiu $a0, $a0, -2
#ifdef VERSION_CN
sh $v0, -2($a1)
#endif
addiu $a1, $a1, -2
#ifndef VERSION_CN
addiu $a2, $a2, -2
#endif
b .L80323C28
#ifdef VERSION_CN
addiu $a2, $a2, -2
#else
sh $v0, ($a1)
#endif
.L80323C0C:
lb $v0, -1($a0)
lh $v1, -3($a0)
addiu $a0, $a0, -3
#ifdef VERSION_CN
sb $v0, -1($a1)
sh $v1, -3($a1)
addiu $a1, $a1, -3
addiu $a2, $a2, -3
#else
addiu $a1, $a1, -3
addiu $a2, $a2, -3
sb $v0, 2($a1)
sh $v1, ($a1)
#endif
.L80323C28:
slti $at, $a2, 0x20
#ifdef VERSION_CN
bnez $at, .L80323C84
nop
#else
bnezl $at, .L80323C88
slti $at, $a2, 0x10
#endif
lw $v0, -4($a0)
lw $v1, -8($a0)
lw $t0, -0xc($a0)
@@ -187,6 +348,17 @@ glabel bcopy
lw $t4, -0x1c($a0)
lw $t5, -0x20($a0)
addiu $a0, $a0, -0x20
#ifdef VERSION_CN
sw $v0, -4($a1)
sw $v1, -8($a1)
sw $t0, -0xc($a1)
sw $t1, -0x10($a1)
sw $t2, -0x14($a1)
sw $t3, -0x18($a1)
sw $t4, -0x1c($a1)
sw $t5, -0x20($a1)
addiu $a1, $a1, -0x20
#else
addiu $a1, $a1, -0x20
addiu $a2, $a2, -0x20
sw $v0, 0x1c($a1)
@@ -196,25 +368,47 @@ glabel bcopy
sw $t2, 0xc($a1)
sw $t3, 8($a1)
sw $t4, 4($a1)
#endif
b .L80323C28
#ifdef VERSION_CN
addiu $a2, $a2, -0x20
#else
sw $t5, ($a1)
#endif
.L80323C84:
slti $at, $a2, 0x10
.L80323C88:
#ifdef VERSION_CN
bnez $at, .L80323CC0
nop
#else
bnezl $at, .L80323CC4
slti $at, $a2, 4
#endif
lw $v0, -4($a0)
lw $v1, -8($a0)
lw $t0, -0xc($a0)
lw $t1, -0x10($a0)
addiu $a0, $a0, -0x10
#ifdef VERSION_CN
sw $v0, -4($a1)
sw $v1, -8($a1)
sw $t0, -0xc($a1)
sw $t1, -0x10($a1)
addiu $a1, $a1, -0x10
#else
addiu $a1, $a1, -0x10
addiu $a2, $a2, -0x10
sw $v0, 0xc($a1)
sw $v1, 8($a1)
sw $t0, 4($a1)
#endif
b .L80323C84
#ifdef VERSION_CN
addiu $a2, $a2, -0x10
#else
sw $t1, ($a1)
#endif
.L80323CC0:
slti $at, $a2, 4
.L80323CC4:
@@ -222,11 +416,19 @@ glabel bcopy
nop
lw $v0, -4($a0)
addiu $a0, $a0, -4
#ifdef VERSION_CN
sw $v0, -4($a1)
#endif
addiu $a1, $a1, -4
#ifndef VERSION_CN
addiu $a2, $a2, -4
#endif
b .L80323CC0
#ifdef VERSION_CN
addiu $a2, $a2, -4
#else
sw $v0, ($a1)
nop
nop
nop
#endif

View File

@@ -1,13 +1,61 @@
.set noreorder // don't insert nops after branches
.set gp=64
#include "macros.inc"
// this file is probably handwritten
//TODO There seem to be patterns in these iQue diffs. Can we figure out what's causing them? Could this have been written in C? See also bcopy.s.
.section .text, "ax"
glabel bzero
#ifdef VERSION_CN
negu $v1, $a0
blt $a1, 0xc, .L80303790
nop
andi $v1, $v1, 3
beqz $v1, .L80303734
subu $a1, $a1, $v1
swl $zero, ($a0)
addu $a0, $a0, $v1
.L80303734:
and $a3, $a1, -32
beqz $a3, .L80303770
subu $a1, $a1, $a3
addu $a3, $a3, $a0
.L80303748:
sw $zero, ($a0)
sw $zero, 4($a0)
sw $zero, 8($a0)
sw $zero, 0xc($a0)
addiu $a0, $a0, 0x20
sw $zero, -0x10($a0)
sw $zero, -0xc($a0)
sw $zero, -8($a0)
bne $a0, $a3, .L80303748
sw $zero, -4($a0)
.L80303770:
and $a3, $a1, -4
beqz $a3, .L80303790
subu $a1, $a1, $a3
addu $a3, $a3, $a0
.L80303784:
addiu $a0, $a0, 4
bne $a0, $a3, .L80303784
sw $zero, -4($a0)
.L80303790:
blez $a1, .L803037A8
nop
addu $a1, $a1, $a0
.L8030379C:
addiu $a0, $a0, 1
bne $a0, $a1, .L8030379C
sb $zero, -1($a0)
.L803037A8:
jr $ra
nop
#else
blt $a1, 0xc, .L803236BC
negu $v1, $a0
andi $v1, $v1, 3
@@ -50,4 +98,5 @@ glabel bzero
sb $zero, -1($a0)
.L803236D4:
jr $ra
#endif

46
lib/asm/guMtxF2L.s Normal file
View File

@@ -0,0 +1,46 @@
.set noat
.set noreorder // don't insert nops after branches
#include "macros.inc"
.section .text, "ax"
#ifdef VERSION_CN
.balign 32
glabel guMtxF2L
li $at, 0x47800000 // 65536.000000
mtc1 $at, $f0
lui $t9, 0xffff
addiu $t8, $a1, 0x20
.L80306C70:
lwc1 $f4, ($a0)
mul.s $f6, $f4, $f0
trunc.w.s $f8, $f6
lwc1 $f10, 4($a0)
mul.s $f16, $f10, $f0
trunc.w.s $f18, $f16
mfc1 $t0, $f8
mfc1 $t1, $f18
and $t2, $t0, $t9
srl $t3, $t1, 0x10
or $t4, $t2, $t3
sw $t4, ($a1)
sll $t5, $t0, 0x10
andi $t6, $t1, 0xffff
or $t7, $t5, $t6
sw $t7, 0x20($a1)
addiu $a1, $a1, 4
bne $a1, $t8, .L80306C70
addiu $a0, $a0, 8
jr $ra
nop
nop
nop
nop
nop
#endif

32
lib/asm/guMtxIdentF.s Normal file
View File

@@ -0,0 +1,32 @@
.set noreorder // don't insert nops after branches
#include "macros.inc"
.section .text, "ax"
#ifdef VERSION_CN
.balign 32
glabel guMtxIdentF
lui $t0, 0x3f80
sw $t0, ($a0)
sw $zero, 4($a0)
sw $zero, 8($a0)
sw $zero, 0xc($a0)
sw $zero, 0x10($a0)
sw $t0, 0x14($a0)
sw $zero, 0x18($a0)
sw $zero, 0x1c($a0)
sw $zero, 0x20($a0)
sw $zero, 0x24($a0)
sw $t0, 0x28($a0)
sw $zero, 0x2c($a0)
sw $zero, 0x30($a0)
sw $zero, 0x34($a0)
sw $zero, 0x38($a0)
jr $ra
sw $t0, 0x3c($a0)
#endif

33
lib/asm/guNormalize.s Normal file
View File

@@ -0,0 +1,33 @@
.set noreorder // don't insert nops after branches
#include "macros.inc"
.section .text, "ax"
#ifdef VERSION_CN
glabel guNormalize
lwc1 $f4, ($a0)
lwc1 $f6, ($a1)
lwc1 $f8, ($a2)
mul.s $f10, $f4, $f4
li $t0, 0x3F800000 # 1.000000
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)
#endif

55
lib/asm/guScale.s Normal file
View File

@@ -0,0 +1,55 @@
.set noat
.set noreorder // don't insert nops after branches
#include "macros.inc"
.section .text, "ax"
#ifdef VERSION_CN
.balign 32
glabel guScale
li $at, 0x47800000 // 65536.000000
mtc1 $at, $f4
mtc1 $a1, $f6
mul.s $f8, $f6, $f4
trunc.w.s $f10, $f8
mfc1 $t1, $f10
srl $t2, $t1, 0x10
sll $t0, $t2, 0x10
sw $t0, ($a0)
sll $t2, $t1, 0x10
sw $t2, 0x20($a0)
mtc1 $a2, $f6
mul.s $f8, $f6, $f4
trunc.w.s $f10, $f8
mfc1 $t1, $f10
srl $t0, $t1, 0x10
sw $t0, 8($a0)
andi $t2, $t1, 0xffff
sw $t2, 0x28($a0)
mtc1 $a3, $f6
mul.s $f8, $f6, $f4
trunc.w.s $f10, $f8
mfc1 $t1, $f10
srl $t2, $t1, 0x10
sll $t0, $t2, 0x10
sw $t0, 0x14($a0)
sll $t2, $t1, 0x10
sw $t2, 0x34($a0)
li $t0, 1
sw $t0, 0x1c($a0)
sw $zero, 4($a0)
sw $zero, 0xc($a0)
sw $zero, 0x10($a0)
sw $zero, 0x18($a0)
sw $zero, 0x24($a0)
sw $zero, 0x2c($a0)
sw $zero, 0x30($a0)
sw $zero, 0x38($a0)
jr $ra
sw $zero, 0x3c($a0)
#endif

65
lib/asm/guTranslate.s Normal file
View File

@@ -0,0 +1,65 @@
.set noat
.set noreorder // don't insert nops after branches
#include "macros.inc"
.section .text, "ax"
#ifdef VERSION_CN
.balign 16
glabel guTranslate
li $at, 0x47800000 // 65536.000000
mtc1 $at, $f4
mtc1 $a1, $f6
mul.s $f8, $f6, $f4
trunc.w.s $f10, $f8
mfc1 $t1, $f10
mtc1 $a2, $f6
mul.s $f8, $f6, $f4
trunc.w.s $f10, $f8
mfc1 $t3, $f10
srl $t2, $t1, 0x10
sll $t0, $t2, 0x10
srl $t2, $t3, 0x10
or $t0, $t0, $t2
sw $t0, 0x18($a0)
sll $t0, $t1, 0x10
sll $t2, $t3, 0x10
srl $t2, $t2, 0x10
or $t0, $t0, $t2
sw $t0, 0x38($a0)
mtc1 $a3, $f6
mul.s $f8, $f6, $f4
trunc.w.s $f10, $f8
mfc1 $t1, $f10
srl $t2, $t1, 0x10
sll $t0, $t2, 0x10
addiu $t0, $t0, 1
sw $t0, 0x1c($a0)
sll $t2, $t1, 0x10
sw $t2, 0x3c($a0)
sw $zero, ($a0)
sw $zero, 4($a0)
sw $zero, 8($a0)
sw $zero, 0xc($a0)
sw $zero, 0x10($a0)
sw $zero, 0x14($a0)
sw $zero, 0x20($a0)
sw $zero, 0x24($a0)
sw $zero, 0x28($a0)
sw $zero, 0x2c($a0)
sw $zero, 0x30($a0)
sw $zero, 0x34($a0)
lui $t0, 1
ori $t0, $t0, 0
sw $t0, ($a0)
sw $t0, 0x14($a0)
lui $t0, (0x00000001 >> 16) # lui $t0, 0
ori $t0, (0x00000001 & 0xFFFF) # ori $t0, $t0, 1
jr $ra
sw $t0, 8($a0)
#endif

42
lib/asm/iQueKernelCalls.s Normal file
View File

@@ -0,0 +1,42 @@
.set noat
.set noreorder // don't insert nops after branches
#include "macros.inc"
.macro def label, num
glabel \label
li $v0, \num
lui $t0, (0xA4300014 >> 16)
ori $t0, (0xA4300014 & 0xFFFF)
lw $t1, ($t0) // traps the iQue OS and performs the function
nop
jr $ra
nop
.endm
.section .text, "ax"
def skGetId, 0x0
def skLaunchSetup, 0x1
def skLaunch, 0x2
def skRecryptListValid, 0x3
def skRecryptBegin, 0x4
def skRecryptData, 0x5
def skRecryptComputeState, 0x6
def skRecryptEnd, 0x7
def skSignHash, 0x8
def skVerifyHash, 0x9
def skGetConsumption, 0xa
def skAdvanceTicketWindow, 0xb
def skSetLimit, 0xc
def skExit, 0xd
def skKeepAlive, 0xe
// developer calls
def sk0f, 0x0f
def sk10, 0x10
def sk11, 0x11
def sk12, 0x12
def sk13, 0x13
def sk14, 0x14

View File

@@ -1,10 +1,11 @@
// assembler directives
.set noat // allow manual use of $at
.set noreorder // don't insert nops after branches
.set gp=64
#include "macros.inc"
#ifndef VERSION_CN
.section .text, "ax"
@@ -98,3 +99,5 @@ glabel __divdi3
dsra32 $v1, $v1, 0
jr $ra
dsra32 $v0, $v0, 0
#endif

Some files were not shown because too many files have changed in this diff Show More