Files
TeslaRel410/sda4/DPL3/VRENDER/MEMTEST.S
T
CydandClaude Fable 5 db7745fcd0 sda4: commit the Glaze developer hard-drive dump
Un-ignored: the dev drive is the ground truth the restoration and
emulator work constantly reference (DPL3/LIBDPL + VRENDER i860 renderer
source, BT/RP live+dev game trees, VGL_LABS pod boot, scene/audio
content). Kept in-repo for the pod-owner community.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 19:41:15 -05:00

777 lines
15 KiB
ArmAsm

.file "memtest.c"
// PGC Rel 2.0a -opt 2
.text
.globl _main
.align 8
_main:
.a1 = 80
.f1 = 112
addu -(.a1+.f1), sp, sp
st.l fp,(.f1-16)(sp)
addu (.f1-16), sp, fp
st.l r1, 4(fp)
fst.d f2, -80(fp)
st.l r4, -72(fp)
st.l r5, -68(fp)
st.l r6, -64(fp)
st.l r7, -60(fp)
st.l r8, -56(fp)
st.l r9, -52(fp)
st.l r10, -48(fp)
st.l r11, -44(fp)
st.l r12, -40(fp)
st.l r13, -36(fp)
st.l r14, -32(fp)
st.l r15, -28(fp)
// lineno: 0
orh h%_addemup, r0, r31
or l%_addemup, r31, r12
orh 0x0004, r0, r9
// lineno: 18
orh 0x0100, r0, r28
st.l r28, -4(fp)
mov r0, r13
btne 0x0000, r0, .B161
orh 0x0400, r0, r4
mov r28, r5
mov r0, r6
// lineno: 25
.B339: //.M0000
adds -508, r4, r4
.DB.B339339:
mov r4, r16
call _malloc
adds -127, r5, r5
mov r16, r6
xor 0x0000, r16, r0
bc.t .DB.B339339
adds -508, r4, r4
// lineno: 0
mov r6, r13
st.l r5, -4(fp)
// lineno: 27
.B161: //.B0001
orh h%.S00168, r0, r31
.DB.B161161:
or l%.S00168, r31, r16
orh 0x0008, r0, r17
ld.l -4(fp), r28
mov r9, r18
adds -64, r28, r29
andnot 0x003f, r29, r30
call _printf
st.l r30, -4(fp)
orh h%2097144, r0, r31
or l%2097144, r31, r28
adds r28, r13, r29
st.l r29, -8(fp)
orh h%1048576, r0, r31
or l%1048576, r31, r30
adds r30, r13, r15
addu -4, r13, r14
// lineno: 39
.B389: //.M0029
call _second_
nop
fiadd.ss f8, f0, f2
ld.l -8(fp), r28
st.l r0, -12(fp)
st.l r28, -16(fp)
// lineno: 49
.B384: //.M0028
ld.l -24(fp), r5
.DB.B384384:
st.l r0, -20(fp)
mov r0, r4
// lineno: 50
.B371: //.M0020
or (262143&0xffff), r0, r18
.DB.B371371:
orh ((262143>>16)&0xffff), r18, r18
mov r0, r7
adds -1, r0, r17
mov r0, r19
mov r14, r20
bla r17, r18,.B348
pfmul.dd f0, f0, f0
// lineno: 51
.B348: //.M0001
mov r20, r28
.DB.B348348:
addu 4, r20, r20
st.l r19, 4(r28)
bla r17, r18, .B348
adds 1, r19, r19
// lineno: 0
mov r0, r7
mov r0, r7
mov r13, r10
// lineno: 54
.B349: //.M0002
ld.l r0(r10), r8
.DB.B349349:
bte r7, r8, .B192
orh h%.S00193, r0, r31
or l%.S00193, r31, r16
mov r7, r17
mov r10, r18
call _printf
mov r8, r19
// lineno: 57
.B192: //.B0012
adds 1, r7, r7
.DB.B192192:
addu 4, r10, r10
subs r7, r9, r0
bc.t .DB.B349349
ld.l r0(r10), r8
// lineno: 0
adds 1, r4, r4
adds -6, r4, r0
bc.t .DB.B371371
or (262143&0xffff), r0, r18
// lineno: 0
st.l r0, -20(fp)
st.l r5, -24(fp)
mov r5, r28
mov r0, r5
mov r28, r6
// lineno: 64
.B373: //.M0021
or (262143&0xffff), r0, r18
.DB.B373373:
orh ((262143>>16)&0xffff), r18, r18
mov r0, r7
mov r0, r7
adds -1, r0, r17
mov r14, r10
bla r17, r18,.B350
pfmul.dd f0, f0, f0
// lineno: 65
.B350: //.M0003
mov r10, r28
.DB.B350350:
addu 4, r10, r10
st.l r7, 4(r28)
bla r17, r18, .B350
adds 1, r7, r7
// lineno: 0
mov r15, r16
mov r13, r17
call _blitz_memcpy
mov r9, r18
mov r0, r7
mov r0, r7
mov r9, r4
mov r15, r10
// lineno: 69
.B353: //.M0004
ld.l r0(r10), r8
.DB.B353353:
bte r7, r8, .B205
orh h%.S00206, r0, r31
or l%.S00206, r31, r16
mov r4, r17
mov r10, r18
call _printf
mov r8, r19
// lineno: 73
.B205: //.B0019
adds 1, r7, r7
.DB.B205205:
adds 1, r4, r4
addu 4, r10, r10
subs r7, r9, r0
bc.t .DB.B353353
ld.l r0(r10), r8
// lineno: 0
adds 1, r5, r5
adds -6, r5, r0
bc.t .DB.B373373
or (262143&0xffff), r0, r18
// lineno: 0
st.l r0, -20(fp)
st.l r6, -24(fp)
mov r0, r5
// lineno: 80
.B374: //.M0022
or (262143&0xffff), r0, r18
.DB.B374374:
orh ((262143>>16)&0xffff), r18, r18
mov r0, r7
mov r0, r7
adds -1, r0, r17
mov r14, r10
bla r17, r18,.B354
pfmul.dd f0, f0, f0
// lineno: 81
.B354: //.M0005
subs -1, r7, r28
.DB.B354354:
st.l r28, 4(r10)
addu 4, r10, r10
bla r17, r18, .B354
adds 1, r7, r7
// lineno: 0
mov r15, r16
mov r13, r17
call _blitz_memcpy
mov r9, r18
mov r0, r7
mov r0, r7
mov r9, r4
mov r15, r10
// lineno: 85
.B355: //.M0006
ld.l r0(r10), r8
.DB.B355355:
subs -1, r7, r28
bte r28, r8, .B218
orh h%.S00219, r0, r31
or l%.S00219, r31, r16
mov r4, r17
mov r10, r18
call _printf
mov r8, r19
// lineno: 89
.B218: //.B0026
adds 1, r7, r7
.DB.B218218:
adds 1, r4, r4
addu 4, r10, r10
subs r7, r9, r0
bc.t .DB.B355355
ld.l r0(r10), r8
// lineno: 0
adds 1, r5, r5
adds -6, r5, r0
bc.t .DB.B374374
or (262143&0xffff), r0, r18
// lineno: 0
st.l r0, -20(fp)
st.l r6, -24(fp)
mov r0, r5
// lineno: 96
.B375: //.M0023
or (262143&0xffff), r0, r18
.DB.B375375:
orh ((262143>>16)&0xffff), r18, r18
adds -1, r0, r17
mov r14, r10
bla r17, r18,.B356
pfmul.dd f0, f0, f0
// lineno: 97
.B356: //.M0007
mov r10, r28
.DB.B356356:
addu 4, r10, r10
bla r17, r18, .B356
st.l r0, 4(r28)
// lineno: 98
.B226: //.B0030
mov r15, r16
.DB.B226226:
mov r13, r17
call _blitz_memcpy
mov r9, r18
mov r0, r7
mov r0, r7
mov r9, r4
mov r15, r10
// lineno: 101
.B357: //.M0008
ld.l r0(r10), r8
.DB.B357357:
bte 0x0000, r8, .B231
orh h%.S00232, r0, r31
or l%.S00232, r31, r16
mov r4, r17
mov r10, r18
call _printf
mov r8, r19
// lineno: 105
.B231: //.B0033
adds 1, r7, r7
.DB.B231231:
adds 1, r4, r4
addu 4, r10, r10
subs r7, r9, r0
bc.t .DB.B357357
ld.l r0(r10), r8
// lineno: 0
adds 1, r5, r5
adds -6, r5, r0
bc.t .DB.B375375
or (262143&0xffff), r0, r18
// lineno: 0
st.l r0, -20(fp)
st.l r6, -24(fp)
mov r0, r5
// lineno: 112
.B376: //.M0024
or (262143&0xffff), r0, r18
.DB.B376376:
orh ((262143>>16)&0xffff), r18, r18
adds -1, r0, r17
mov r14, r10
bla r17, r18,.B358
pfmul.dd f0, f0, f0
// lineno: 113
.B358: //.M0009
mov r10, r28
.DB.B358358:
addu 4, r10, r10
bla r17, r18, .B358
st.l r17, 4(r28)
// lineno: 114
.B239: //.B0037
mov r15, r16
.DB.B239239:
mov r13, r17
call _blitz_memcpy
mov r9, r18
mov r0, r7
mov r0, r7
mov r9, r4
mov r15, r10
// lineno: 117
.B359: //.M0010
ld.l r0(r10), r8
.DB.B359359:
adds -1, r0, r28
bte r8, r28, .B245
orh h%.S00246, r0, r31
or l%.S00246, r31, r16
mov r4, r17
mov r10, r18
call _printf
mov r8, r19
// lineno: 121
.B245: //.B0040
adds 1, r7, r7
.DB.B245245:
adds 1, r4, r4
addu 4, r10, r10
subs r7, r9, r0
bc.t .DB.B359359
ld.l r0(r10), r8
// lineno: 0
adds 1, r5, r5
adds -6, r5, r0
bc.t .DB.B376376
or (262143&0xffff), r0, r18
// lineno: 0
st.l r0, -20(fp)
or (-1431655766&0xffff), r0, r11
orh ((-1431655766>>16)&0xffff), r11, r11
st.l r6, -24(fp)
mov r0, r5
// lineno: 128
.B377: //.M0025
or (262143&0xffff), r0, r18
.DB.B377377:
orh ((262143>>16)&0xffff), r18, r18
adds -1, r0, r17
mov r11, r21
mov r14, r10
bla r17, r18,.B360
pfmul.dd f0, f0, f0
// lineno: 129
.B360: //.M0011
mov r10, r28
.DB.B360360:
addu 4, r10, r10
bla r17, r18, .B360
st.l r21, 4(r28)
// lineno: 130
.B253: //.B0044
mov r15, r16
.DB.B253253:
mov r13, r17
call _blitz_memcpy
mov r9, r18
mov r0, r7
mov r0, r7
mov r9, r4
mov r15, r10
// lineno: 133
.B361: //.M0012
ld.l r0(r10), r8
.DB.B361361:
bte r11, r8, .B259
orh h%.S00260, r0, r31
or l%.S00260, r31, r16
mov r4, r17
mov r10, r18
call _printf
mov r8, r19
// lineno: 137
.B259: //.B0047
adds 1, r7, r7
.DB.B259259:
adds 1, r4, r4
addu 4, r10, r10
subs r7, r9, r0
bc.t .DB.B361361
ld.l r0(r10), r8
// lineno: 0
adds 1, r5, r5
adds -6, r5, r0
bc.t .DB.B377377
or (262143&0xffff), r0, r18
// lineno: 0
st.l r0, -20(fp)
or (1431655765&0xffff), r0, r5
orh ((1431655765>>16)&0xffff), r5, r5
st.l r6, -24(fp)
mov r6, r28
mov r0, r6
mov r28, r11
// lineno: 144
.B378: //.M0026
or (262143&0xffff), r0, r18
.DB.B378378:
orh ((262143>>16)&0xffff), r18, r18
adds -1, r0, r17
mov r5, r19
mov r14, r10
bla r17, r18,.B362
pfmul.dd f0, f0, f0
// lineno: 145
.B362: //.M0013
mov r10, r28
.DB.B362362:
addu 4, r10, r10
bla r17, r18, .B362
st.l r19, 4(r28)
// lineno: 146
.B267: //.B0051
mov r15, r16
.DB.B267267:
mov r13, r17
call _blitz_memcpy
mov r9, r18
mov r0, r7
mov r0, r7
mov r9, r4
mov r15, r10
// lineno: 149
.B363: //.M0014
ld.l r0(r10), r8
.DB.B363363:
bte r5, r8, .B273
orh h%.S00274, r0, r31
or l%.S00274, r31, r16
mov r4, r17
mov r10, r18
call _printf
mov r8, r19
// lineno: 153
.B273: //.B0054
adds 1, r7, r7
.DB.B273273:
adds 1, r4, r4
addu 4, r10, r10
subs r7, r9, r0
bc.t .DB.B363363
ld.l r0(r10), r8
// lineno: 0
adds 1, r6, r6
adds -6, r6, r0
bc.t .DB.B378378
or (262143&0xffff), r0, r18
// lineno: 0
st.l r0, -20(fp)
or (-1777336319&0xffff), r0, r5
orh ((-1777336319>>16)&0xffff), r5, r5
st.l r11, -24(fp)
mov r0, r6
// lineno: 160
.B379: //.M0027
or (262143&0xffff), r0, r18
.DB.B379379:
orh ((262143>>16)&0xffff), r18, r18
adds -1, r0, r17
mov r5, r19
mov r14, r10
bla r17, r18,.B364
pfmul.dd f0, f0, f0
// lineno: 161
.B364: //.M0015
mov r10, r28
.DB.B364364:
addu 4, r10, r10
bla r17, r18, .B364
st.l r19, 4(r28)
// lineno: 162
.B281: //.B0058
mov r15, r16
.DB.B281281:
mov r13, r17
call _blitz_memcpy
mov r9, r18
mov r0, r7
mov r0, r7
mov r9, r4
mov r15, r10
// lineno: 165
.B365: //.M0016
ld.l r0(r10), r8
.DB.B365365:
bte r5, r8, .B287
orh h%.S00288, r0, r31
or l%.S00288, r31, r16
mov r4, r17
mov r10, r18
call _printf
mov r8, r19
// lineno: 169
.B287: //.B0061
adds 1, r7, r7
.DB.B287287:
adds 1, r4, r4
addu 4, r10, r10
subs r7, r9, r0
bc.t .DB.B365365
ld.l r0(r10), r8
// lineno: 0
adds 1, r6, r6
adds -6, r6, r0
bc.t .DB.B379379
or (262143&0xffff), r0, r18
// lineno: 0
or (524287&0xffff), r0, r18
orh ((524287>>16)&0xffff), r18, r18
or (-1777336319&0xffff), r0, r19
orh ((-1777336319>>16)&0xffff), r19, r19
st.l r6, -20(fp)
adds -1, r0, r17
mov r14, r10
bla r17, r18,.B367
pfmul.dd f0, f0, f0
// lineno: 176
.B367: //.M0017
mov r10, r28
.DB.B367367:
addu 4, r10, r10
bla r17, r18, .B367
st.l r19, 4(r28)
// lineno: 177
.B292: //.B0063
mov r0, r7
.DB.B292292:
mov r0, r7
or (-1777336319&0xffff), r0, r5
orh ((-1777336319>>16)&0xffff), r5, r5
or (157351937&0xffff), r0, r6
orh ((157351937>>16)&0xffff), r6, r6
mov r13, r10
orh 0x0008, r0, r4
// lineno: 179
.B368: //.M0018
ld.l r0(r10), r8
.DB.B368368:
bte r5, r8, .B297
orh h%.S00298, r0, r31
or l%.S00298, r31, r16
mov r7, r17
mov r6, r18
call _printf
mov r8, r19
// lineno: 183
.B297: //.B0066
adds 1, r7, r7
.DB.B297297:
addu 4, r10, r10
subs r7, r4, r0
bc.t .DB.B368368
ld.l r0(r10), r8
// lineno: 0
ld.l -16(fp), r28
or (1073743872&0xffff), r0, r29
orh ((1073743872>>16)&0xffff), r29, r29
st.l r29, 0(r28)
call _flush
st.l r13, 0(r12)
st.l r0, -20(fp)
mov r0, r4
// lineno: 196
.B369: //.M0019
ld.l r0(r12), r28
.DB.B369369:
mov r0, r16
calli r28
nop
mov r16, r8
adds 1, r4, r4
adds -6, r4, r0
bc.t .DB.B369369
ld.l r0(r12), r28
// lineno: 0
ld.l -12(fp), r28
st.l r4, -20(fp)
adds 1, r28, r29
adds -1, r29, r0
st.l r29, -12(fp)
bc.t .DB.B384384
ld.l -24(fp), r5
// lineno: 0
call _second_
nop
fsub.ss f8, f2, f16
orh h%.S00307, r0, r31
or l%.S00307, r31, r16
fmov.sd f16, f8
orh h%.B389, r0, r1
br _printf
or l%.B389, r1, r1
// lineno: 0
// lineno: 0
// lineno: 205
fld.d -80(fp), f2
ld.l -72(fp), r4
ld.l -68(fp), r5
ld.l -64(fp), r6
ld.l -60(fp), r7
ld.l -56(fp), r8
ld.l -52(fp), r9
ld.l -48(fp), r10
ld.l -44(fp), r11
ld.l -40(fp), r12
ld.l -36(fp), r13
ld.l -32(fp), r14
ld.l -28(fp), r15
adds .a1+16, fp, r31
ld.l 4(fp), r1
ld.l 0(fp), fp
bri r1
mov r31, sp
.data
.align 1
.S00168: //
// "Memwords = %d, halfwords=%d\n"
.byte 0x4d,0x65,0x6d,0x77,0x6f,0x72,0x64,0x73,0x20,0x3d,0x20
.byte 0x25,0x64,0x2c,0x20,0x68,0x61,0x6c,0x66,0x77,0x6f,0x72
.byte 0x64,0x73,0x3d,0x25,0x64,0x0a,0x00
.S00193: //
// "Mismatch at 0x%x (0x%x), got 0x%x\n"
.byte 0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x20,0x61,0x74
.byte 0x20,0x30,0x78,0x25,0x78,0x20,0x28,0x30,0x78,0x25,0x78
.byte 0x29,0x2c,0x20,0x67,0x6f,0x74,0x20,0x30,0x78,0x25,0x78
.byte 0x0a,0x00
.S00206: //
// "Mismatch at 0x%x (0x%x), got 0x%x\n"
.byte 0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x20,0x61,0x74
.byte 0x20,0x30,0x78,0x25,0x78,0x20,0x28,0x30,0x78,0x25,0x78
.byte 0x29,0x2c,0x20,0x67,0x6f,0x74,0x20,0x30,0x78,0x25,0x78
.byte 0x0a,0x00
.S00219: //
// "Mismatch at 0x%x (0x%x), got 0x%x\n"
.byte 0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x20,0x61,0x74
.byte 0x20,0x30,0x78,0x25,0x78,0x20,0x28,0x30,0x78,0x25,0x78
.byte 0x29,0x2c,0x20,0x67,0x6f,0x74,0x20,0x30,0x78,0x25,0x78
.byte 0x0a,0x00
.S00232: //
// "Mismatch at 0x%x (0x%x), got 0x%x\n"
.byte 0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x20,0x61,0x74
.byte 0x20,0x30,0x78,0x25,0x78,0x20,0x28,0x30,0x78,0x25,0x78
.byte 0x29,0x2c,0x20,0x67,0x6f,0x74,0x20,0x30,0x78,0x25,0x78
.byte 0x0a,0x00
.S00246: //
// "Mismatch at 0x%x (0x%x), got 0x%x\n"
.byte 0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x20,0x61,0x74
.byte 0x20,0x30,0x78,0x25,0x78,0x20,0x28,0x30,0x78,0x25,0x78
.byte 0x29,0x2c,0x20,0x67,0x6f,0x74,0x20,0x30,0x78,0x25,0x78
.byte 0x0a,0x00
.S00260: //
// "Mismatch at 0x%x (0x%x), got 0x%x\n"
.byte 0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x20,0x61,0x74
.byte 0x20,0x30,0x78,0x25,0x78,0x20,0x28,0x30,0x78,0x25,0x78
.byte 0x29,0x2c,0x20,0x67,0x6f,0x74,0x20,0x30,0x78,0x25,0x78
.byte 0x0a,0x00
.S00274: //
// "Mismatch at 0x%x (0x%x), got 0x%x\n"
.byte 0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x20,0x61,0x74
.byte 0x20,0x30,0x78,0x25,0x78,0x20,0x28,0x30,0x78,0x25,0x78
.byte 0x29,0x2c,0x20,0x67,0x6f,0x74,0x20,0x30,0x78,0x25,0x78
.byte 0x0a,0x00
.S00288: //
// "Mismatch at 0x%x (0x%x), got 0x%x\n"
.byte 0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x20,0x61,0x74
.byte 0x20,0x30,0x78,0x25,0x78,0x20,0x28,0x30,0x78,0x25,0x78
.byte 0x29,0x2c,0x20,0x67,0x6f,0x74,0x20,0x30,0x78,0x25,0x78
.byte 0x0a,0x00
.S00298: //
// "Mismatch at 0x%x (0x%x), got 0x%x\n"
.byte 0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x20,0x61,0x74
.byte 0x20,0x30,0x78,0x25,0x78,0x20,0x28,0x30,0x78,0x25,0x78
.byte 0x29,0x2c,0x20,0x67,0x6f,0x74,0x20,0x30,0x78,0x25,0x78
.byte 0x0a,0x00
.S00307: //
// "Done an iteration, %f seconds\n"
.byte 0x44,0x6f,0x6e,0x65,0x20,0x61,0x6e,0x20,0x69,0x74,0x65
.byte 0x72,0x61,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x25,0x66,0x20
.byte 0x73,0x65,0x63,0x6f,0x6e,0x64,0x73,0x0a,0x00
.data
.comm _addemup,4
.extern _flush
.extern _blitz_memcpy
.extern _second_
.extern _printf
.extern _malloc