summaryrefslogtreecommitdiff
path: root/lib/ultralib/src/error/errorasm.s
blob: c41cf6d4e82f478adae0579c2472cedeb3b2526f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include "PR/os_version.h"

#if !defined(_FINALROM) || BUILD_VERSION < VERSION_J
#include "sys/asm.h"
#include "sys/regdef.h"
#include "PR/os_version.h"

LEAF(__osError)
#if BUILD_VERSION < VERSION_J
    lw      t0, __osErrorHandler
    beqz    t0, 1f
    jr      t0
#elif BUILD_VERSION < VERSION_K
    lw      t0, __kmc_pt_mode
    bnez    t0, _kmc_mode

    lw      t0, __osErrorHandler
    beqz    t0, 1f
    jr      t0
_kmc_mode:
    lw      t0, __kmcErrorHandler
    beqz    t0, 1f
    jr      t0
#else
    lw      t0, __osCommonHandler
    beqz    t0, 1f
    jr      t0
#endif
1:
    j       ra
END(__osError)

#endif