mirror of
https://github.com/ioacademy-jikim/debugging
synced 2025-06-11 09:56:29 +00:00
86 lines
1.9 KiB
C
86 lines
1.9 KiB
C
#include <stdio.h>
|
|
#include "and.h"
|
|
#include "opcodes.h"
|
|
|
|
#define nihh(r1,i2) ".long 0xa5" #r1 "4" #i2 "\n\t"
|
|
#define nihl(r1,i2) ".long 0xa5" #r1 "5" #i2 "\n\t"
|
|
#define nilh(r1,i2) ".long 0xa5" #r1 "6" #i2 "\n\t"
|
|
#define nill(r1,i2) ".long 0xa5" #r1 "7" #i2 "\n\t"
|
|
|
|
static void do_imm_insns(void)
|
|
{
|
|
memimmsweep(ni, 0);
|
|
memimmsweep(ni, 255);
|
|
memimmsweep(ni, 128);
|
|
memimmsweep(ni, 0xaa);
|
|
memimmsweep(ni, 0x55);
|
|
niysweep(00);
|
|
niysweep(ff);
|
|
niysweep(80);
|
|
niysweep(aa);
|
|
niysweep(55);
|
|
immsweep(nihh, 0055);
|
|
immsweep(nihl, 0055);
|
|
immsweep(nilh, 0055);
|
|
immsweep(nill, 0055);
|
|
immsweep(nihh, 00aa);
|
|
immsweep(nihl, 00aa);
|
|
immsweep(nilh, 00aa);
|
|
immsweep(nill, 00aa);
|
|
immsweep(nihh, 00ff);
|
|
immsweep(nihl, 00ff);
|
|
immsweep(nilh, 00ff);
|
|
immsweep(nill, 00ff);
|
|
immsweep(nihh, 0000);
|
|
immsweep(nihl, 0000);
|
|
immsweep(nilh, 0000);
|
|
immsweep(nill, 0000);
|
|
immsweep(nihh, ffff);
|
|
immsweep(nihl, ffff);
|
|
immsweep(nilh, ffff);
|
|
immsweep(nill, ffff);
|
|
immsweep(nihh, aaaa);
|
|
immsweep(nihl, aaaa);
|
|
immsweep(nilh, aaaa);
|
|
immsweep(nill, aaaa);
|
|
immsweep(nihh, 5555);
|
|
immsweep(nihl, 5555);
|
|
immsweep(nilh, 5555);
|
|
immsweep(nill, 5555);
|
|
}
|
|
|
|
|
|
static void do_regmem_insns(unsigned long s2)
|
|
{
|
|
memsweep(n, s2);
|
|
memsweep(ng, s2);
|
|
regsweep(nr, s2);
|
|
regsweep(ngr, s2);
|
|
nysweep(s2);
|
|
}
|
|
|
|
int main()
|
|
{
|
|
do_regmem_insns(0x0ul);
|
|
do_regmem_insns(0x5555555555555555ul);
|
|
do_regmem_insns(0xaaaaaaaaaaaaaaaaul);
|
|
do_regmem_insns(0x8000000000000000ul);
|
|
do_regmem_insns(0xfffffffffffffffful);
|
|
do_regmem_insns(0x7fffffff00000000ul);
|
|
do_regmem_insns(0x8000000000000000ul);
|
|
do_regmem_insns(0xaaaaaaaa00000000ul);
|
|
do_regmem_insns(0xffffffff00000000ul);
|
|
do_regmem_insns(0x000000007ffffffful);
|
|
do_regmem_insns(0x0000000080000000ul);
|
|
do_regmem_insns(0x0000000055555555ul);
|
|
do_regmem_insns(0x00000000fffffffful);
|
|
do_regmem_insns(0x000000000000fffful);
|
|
do_regmem_insns(0x0000000000007ffful);
|
|
do_regmem_insns(0x0000000000008000ul);
|
|
do_regmem_insns(0x000000000000fffful);
|
|
|
|
do_imm_insns();
|
|
|
|
return 0;
|
|
}
|