Hazard3/test/sim/sw_testcases/zcmp_push.c

1927 lines
22 KiB
C

#ifdef SPIKE
#include <stdio.h>
#include <stdint.h>
#define tb_puts(s) printf(s)
#define tb_put_u32(x) printf("%08x\n", x)
#else
#include "tb_cxxrtl_io.h"
#endif
// To get the full list of opcodes I assembled then disassembled this file:
//
// .set i, 0
// .rept 64
// .if (i & 0x3c) >= 16
// .hword 0xb802 | (i << 2)
// .endif
// .set i, i + 1
// .endr
#define FRAME_SIZE_WORDS 32
uint32_t test_frame[FRAME_SIZE_WORDS];
uint32_t sp_save;
#define test_zcmp_push(instr_bits, instr_name, test_frame) \
test_sp = &test_frame[FRAME_SIZE_WORDS];\
tb_puts("Test: " instr_name "\n"); \
for (int i = 0; i < 32; ++i) test_frame[i] = 0xdead0000 + i; \
asm volatile ( \
/* Save all clobbered registers on the real stack */ \
"_test_%=:\n" \
"addi sp, sp, -64\n" \
"sw x1, 0(sp)\n" \
"sw x8, 4(sp)\n" \
"sw x9, 8(sp)\n" \
"sw x18, 12(sp)\n" \
"sw x19, 16(sp)\n" \
"sw x20, 20(sp)\n" \
"sw x21, 24(sp)\n" \
"sw x22, 28(sp)\n" \
"sw x23, 32(sp)\n" \
"sw x24, 36(sp)\n" \
"sw x25, 40(sp)\n" \
"sw x26, 44(sp)\n" \
"sw x27, 48(sp)\n" \
/* Save stack pointer and install test sp */ \
"la x1, sp_save\n" \
"sw sp, 0(x1)\n" \
"mv sp, %0\n" \
/* Give unique values to all registers that can be pushed */ \
"li x1, 0xa5000000 + 1\n" \
"li x8, 0xa5000000 + 8\n" \
"li x9, 0xa5000000 + 9\n" \
"li x18, 0xa5000000 + 18\n" \
"li x19, 0xa5000000 + 19\n" \
"li x20, 0xa5000000 + 20\n" \
"li x21, 0xa5000000 + 21\n" \
"li x22, 0xa5000000 + 22\n" \
"li x23, 0xa5000000 + 23\n" \
"li x24, 0xa5000000 + 24\n" \
"li x25, 0xa5000000 + 25\n" \
"li x26, 0xa5000000 + 26\n" \
"li x27, 0xa5000000 + 27\n" \
/* Let's go */ \
".hword " #instr_bits "\n" \
/* Updated test sp is returned */ \
"mv a0, sp\n" \
/* Restore original sp, and clobbered registers */ \
"la x1, sp_save\n" \
"lw sp, 0(x1)\n" \
"lw x1, 0(sp)\n" \
"lw x8, 4(sp)\n" \
"lw x9, 8(sp)\n" \
"lw x18, 12(sp)\n" \
"lw x19, 16(sp)\n" \
"lw x20, 20(sp)\n" \
"lw x21, 24(sp)\n" \
"lw x22, 28(sp)\n" \
"lw x23, 32(sp)\n" \
"lw x24, 36(sp)\n" \
"lw x25, 40(sp)\n" \
"lw x26, 44(sp)\n" \
"lw x27, 48(sp)\n" \
"addi sp, sp, 64\n" \
"mv %0, a0\n" \
: "+r"(test_sp) : : "a0"\
); \
tb_puts("SP diff:\n"); \
tb_put_u32((uint32_t)test_sp - (uint32_t)&test_frame[FRAME_SIZE_WORDS]); \
tb_puts("Frame data\n"); \
for (int i = 0; i < FRAME_SIZE_WORDS; ++i) tb_put_u32(test_frame[i]); \
tb_puts("\n");
int main() {
volatile uint32_t *test_sp;
test_zcmp_push(0xb842, "cm.push {ra},-16" , test_frame);
test_zcmp_push(0xb846, "cm.push {ra},-32" , test_frame);
test_zcmp_push(0xb84a, "cm.push {ra},-48" , test_frame);
test_zcmp_push(0xb84e, "cm.push {ra},-64" , test_frame);
test_zcmp_push(0xb852, "cm.push {ra,s0},-16" , test_frame);
test_zcmp_push(0xb856, "cm.push {ra,s0},-32" , test_frame);
test_zcmp_push(0xb85a, "cm.push {ra,s0},-48" , test_frame);
test_zcmp_push(0xb85e, "cm.push {ra,s0},-64" , test_frame);
test_zcmp_push(0xb862, "cm.push {ra,s0-s1},-16" , test_frame);
test_zcmp_push(0xb866, "cm.push {ra,s0-s1},-32" , test_frame);
test_zcmp_push(0xb86a, "cm.push {ra,s0-s1},-48" , test_frame);
test_zcmp_push(0xb86e, "cm.push {ra,s0-s1},-64" , test_frame);
test_zcmp_push(0xb872, "cm.push {ra,s0-s2},-16" , test_frame);
test_zcmp_push(0xb876, "cm.push {ra,s0-s2},-32" , test_frame);
test_zcmp_push(0xb87a, "cm.push {ra,s0-s2},-48" , test_frame);
test_zcmp_push(0xb87e, "cm.push {ra,s0-s2},-64" , test_frame);
test_zcmp_push(0xb882, "cm.push {ra,s0-s3},-32" , test_frame);
test_zcmp_push(0xb886, "cm.push {ra,s0-s3},-48" , test_frame);
test_zcmp_push(0xb88a, "cm.push {ra,s0-s3},-64" , test_frame);
test_zcmp_push(0xb88e, "cm.push {ra,s0-s3},-80" , test_frame);
test_zcmp_push(0xb892, "cm.push {ra,s0-s4},-32" , test_frame);
test_zcmp_push(0xb896, "cm.push {ra,s0-s4},-48" , test_frame);
test_zcmp_push(0xb89a, "cm.push {ra,s0-s4},-64" , test_frame);
test_zcmp_push(0xb89e, "cm.push {ra,s0-s4},-80" , test_frame);
test_zcmp_push(0xb8a2, "cm.push {ra,s0-s5},-32" , test_frame);
test_zcmp_push(0xb8a6, "cm.push {ra,s0-s5},-48" , test_frame);
test_zcmp_push(0xb8aa, "cm.push {ra,s0-s5},-64" , test_frame);
test_zcmp_push(0xb8ae, "cm.push {ra,s0-s5},-80" , test_frame);
test_zcmp_push(0xb8b2, "cm.push {ra,s0-s6},-32" , test_frame);
test_zcmp_push(0xb8b6, "cm.push {ra,s0-s6},-48" , test_frame);
test_zcmp_push(0xb8ba, "cm.push {ra,s0-s6},-64" , test_frame);
test_zcmp_push(0xb8be, "cm.push {ra,s0-s6},-80" , test_frame);
test_zcmp_push(0xb8c2, "cm.push {ra,s0-s7},-48" , test_frame);
test_zcmp_push(0xb8c6, "cm.push {ra,s0-s7},-64" , test_frame);
test_zcmp_push(0xb8ca, "cm.push {ra,s0-s7},-80" , test_frame);
test_zcmp_push(0xb8ce, "cm.push {ra,s0-s7},-96" , test_frame);
test_zcmp_push(0xb8d2, "cm.push {ra,s0-s8},-48" , test_frame);
test_zcmp_push(0xb8d6, "cm.push {ra,s0-s8},-64" , test_frame);
test_zcmp_push(0xb8da, "cm.push {ra,s0-s8},-80" , test_frame);
test_zcmp_push(0xb8de, "cm.push {ra,s0-s8},-96" , test_frame);
test_zcmp_push(0xb8e2, "cm.push {ra,s0-s9},-48" , test_frame);
test_zcmp_push(0xb8e6, "cm.push {ra,s0-s9},-64" , test_frame);
test_zcmp_push(0xb8ea, "cm.push {ra,s0-s9},-80" , test_frame);
test_zcmp_push(0xb8ee, "cm.push {ra,s0-s9},-96" , test_frame);
test_zcmp_push(0xb8f2, "cm.push {ra,s0-s11},-64" , test_frame);
test_zcmp_push(0xb8f6, "cm.push {ra,s0-s11},-80" , test_frame);
test_zcmp_push(0xb8fa, "cm.push {ra,s0-s11},-96" , test_frame);
test_zcmp_push(0xb8fe, "cm.push {ra,s0-s11},-112" , test_frame);
return 0;
}
// Test output extracted from spike:
/*EXPECTED-OUTPUT***************************************************************
Test: cm.push {ra},-16
SP diff:
fffffff0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
dead0018
dead0019
dead001a
dead001b
dead001c
dead001d
dead001e
a5000001
Test: cm.push {ra},-32
SP diff:
ffffffe0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
dead0018
dead0019
dead001a
dead001b
dead001c
dead001d
dead001e
a5000001
Test: cm.push {ra},-48
SP diff:
ffffffd0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
dead0018
dead0019
dead001a
dead001b
dead001c
dead001d
dead001e
a5000001
Test: cm.push {ra},-64
SP diff:
ffffffc0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
dead0018
dead0019
dead001a
dead001b
dead001c
dead001d
dead001e
a5000001
Test: cm.push {ra,s0},-16
SP diff:
fffffff0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
dead0018
dead0019
dead001a
dead001b
dead001c
dead001d
a5000001
a5000008
Test: cm.push {ra,s0},-32
SP diff:
ffffffe0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
dead0018
dead0019
dead001a
dead001b
dead001c
dead001d
a5000001
a5000008
Test: cm.push {ra,s0},-48
SP diff:
ffffffd0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
dead0018
dead0019
dead001a
dead001b
dead001c
dead001d
a5000001
a5000008
Test: cm.push {ra,s0},-64
SP diff:
ffffffc0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
dead0018
dead0019
dead001a
dead001b
dead001c
dead001d
a5000001
a5000008
Test: cm.push {ra,s0-s1},-16
SP diff:
fffffff0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
dead0018
dead0019
dead001a
dead001b
dead001c
a5000001
a5000008
a5000009
Test: cm.push {ra,s0-s1},-32
SP diff:
ffffffe0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
dead0018
dead0019
dead001a
dead001b
dead001c
a5000001
a5000008
a5000009
Test: cm.push {ra,s0-s1},-48
SP diff:
ffffffd0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
dead0018
dead0019
dead001a
dead001b
dead001c
a5000001
a5000008
a5000009
Test: cm.push {ra,s0-s1},-64
SP diff:
ffffffc0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
dead0018
dead0019
dead001a
dead001b
dead001c
a5000001
a5000008
a5000009
Test: cm.push {ra,s0-s2},-16
SP diff:
fffffff0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
dead0018
dead0019
dead001a
dead001b
a5000001
a5000008
a5000009
a5000012
Test: cm.push {ra,s0-s2},-32
SP diff:
ffffffe0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
dead0018
dead0019
dead001a
dead001b
a5000001
a5000008
a5000009
a5000012
Test: cm.push {ra,s0-s2},-48
SP diff:
ffffffd0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
dead0018
dead0019
dead001a
dead001b
a5000001
a5000008
a5000009
a5000012
Test: cm.push {ra,s0-s2},-64
SP diff:
ffffffc0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
dead0018
dead0019
dead001a
dead001b
a5000001
a5000008
a5000009
a5000012
Test: cm.push {ra,s0-s3},-32
SP diff:
ffffffe0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
dead0018
dead0019
dead001a
a5000001
a5000008
a5000009
a5000012
a5000013
Test: cm.push {ra,s0-s3},-48
SP diff:
ffffffd0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
dead0018
dead0019
dead001a
a5000001
a5000008
a5000009
a5000012
a5000013
Test: cm.push {ra,s0-s3},-64
SP diff:
ffffffc0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
dead0018
dead0019
dead001a
a5000001
a5000008
a5000009
a5000012
a5000013
Test: cm.push {ra,s0-s3},-80
SP diff:
ffffffb0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
dead0018
dead0019
dead001a
a5000001
a5000008
a5000009
a5000012
a5000013
Test: cm.push {ra,s0-s4},-32
SP diff:
ffffffe0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
dead0018
dead0019
a5000001
a5000008
a5000009
a5000012
a5000013
a5000014
Test: cm.push {ra,s0-s4},-48
SP diff:
ffffffd0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
dead0018
dead0019
a5000001
a5000008
a5000009
a5000012
a5000013
a5000014
Test: cm.push {ra,s0-s4},-64
SP diff:
ffffffc0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
dead0018
dead0019
a5000001
a5000008
a5000009
a5000012
a5000013
a5000014
Test: cm.push {ra,s0-s4},-80
SP diff:
ffffffb0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
dead0018
dead0019
a5000001
a5000008
a5000009
a5000012
a5000013
a5000014
Test: cm.push {ra,s0-s5},-32
SP diff:
ffffffe0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
dead0018
a5000001
a5000008
a5000009
a5000012
a5000013
a5000014
a5000015
Test: cm.push {ra,s0-s5},-48
SP diff:
ffffffd0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
dead0018
a5000001
a5000008
a5000009
a5000012
a5000013
a5000014
a5000015
Test: cm.push {ra,s0-s5},-64
SP diff:
ffffffc0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
dead0018
a5000001
a5000008
a5000009
a5000012
a5000013
a5000014
a5000015
Test: cm.push {ra,s0-s5},-80
SP diff:
ffffffb0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
dead0018
a5000001
a5000008
a5000009
a5000012
a5000013
a5000014
a5000015
Test: cm.push {ra,s0-s6},-32
SP diff:
ffffffe0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
a5000001
a5000008
a5000009
a5000012
a5000013
a5000014
a5000015
a5000016
Test: cm.push {ra,s0-s6},-48
SP diff:
ffffffd0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
a5000001
a5000008
a5000009
a5000012
a5000013
a5000014
a5000015
a5000016
Test: cm.push {ra,s0-s6},-64
SP diff:
ffffffc0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
a5000001
a5000008
a5000009
a5000012
a5000013
a5000014
a5000015
a5000016
Test: cm.push {ra,s0-s6},-80
SP diff:
ffffffb0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
dead0017
a5000001
a5000008
a5000009
a5000012
a5000013
a5000014
a5000015
a5000016
Test: cm.push {ra,s0-s7},-48
SP diff:
ffffffd0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
a5000001
a5000008
a5000009
a5000012
a5000013
a5000014
a5000015
a5000016
a5000017
Test: cm.push {ra,s0-s7},-64
SP diff:
ffffffc0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
a5000001
a5000008
a5000009
a5000012
a5000013
a5000014
a5000015
a5000016
a5000017
Test: cm.push {ra,s0-s7},-80
SP diff:
ffffffb0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
a5000001
a5000008
a5000009
a5000012
a5000013
a5000014
a5000015
a5000016
a5000017
Test: cm.push {ra,s0-s7},-96
SP diff:
ffffffa0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
dead0016
a5000001
a5000008
a5000009
a5000012
a5000013
a5000014
a5000015
a5000016
a5000017
Test: cm.push {ra,s0-s8},-48
SP diff:
ffffffd0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
a5000001
a5000008
a5000009
a5000012
a5000013
a5000014
a5000015
a5000016
a5000017
a5000018
Test: cm.push {ra,s0-s8},-64
SP diff:
ffffffc0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
a5000001
a5000008
a5000009
a5000012
a5000013
a5000014
a5000015
a5000016
a5000017
a5000018
Test: cm.push {ra,s0-s8},-80
SP diff:
ffffffb0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
a5000001
a5000008
a5000009
a5000012
a5000013
a5000014
a5000015
a5000016
a5000017
a5000018
Test: cm.push {ra,s0-s8},-96
SP diff:
ffffffa0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
dead0015
a5000001
a5000008
a5000009
a5000012
a5000013
a5000014
a5000015
a5000016
a5000017
a5000018
Test: cm.push {ra,s0-s9},-48
SP diff:
ffffffd0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
a5000001
a5000008
a5000009
a5000012
a5000013
a5000014
a5000015
a5000016
a5000017
a5000018
a5000019
Test: cm.push {ra,s0-s9},-64
SP diff:
ffffffc0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
a5000001
a5000008
a5000009
a5000012
a5000013
a5000014
a5000015
a5000016
a5000017
a5000018
a5000019
Test: cm.push {ra,s0-s9},-80
SP diff:
ffffffb0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
a5000001
a5000008
a5000009
a5000012
a5000013
a5000014
a5000015
a5000016
a5000017
a5000018
a5000019
Test: cm.push {ra,s0-s9},-96
SP diff:
ffffffa0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
dead0013
dead0014
a5000001
a5000008
a5000009
a5000012
a5000013
a5000014
a5000015
a5000016
a5000017
a5000018
a5000019
Test: cm.push {ra,s0-s11},-64
SP diff:
ffffffc0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
a5000001
a5000008
a5000009
a5000012
a5000013
a5000014
a5000015
a5000016
a5000017
a5000018
a5000019
a500001a
a500001b
Test: cm.push {ra,s0-s11},-80
SP diff:
ffffffb0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
a5000001
a5000008
a5000009
a5000012
a5000013
a5000014
a5000015
a5000016
a5000017
a5000018
a5000019
a500001a
a500001b
Test: cm.push {ra,s0-s11},-96
SP diff:
ffffffa0
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
a5000001
a5000008
a5000009
a5000012
a5000013
a5000014
a5000015
a5000016
a5000017
a5000018
a5000019
a500001a
a500001b
Test: cm.push {ra,s0-s11},-112
SP diff:
ffffff90
Frame data
dead0000
dead0001
dead0002
dead0003
dead0004
dead0005
dead0006
dead0007
dead0008
dead0009
dead000a
dead000b
dead000c
dead000d
dead000e
dead000f
dead0010
dead0011
dead0012
a5000001
a5000008
a5000009
a5000012
a5000013
a5000014
a5000015
a5000016
a5000017
a5000018
a5000019
a500001a
a500001b
*******************************************************************************/