main
test_x86.c
1/*
2 Copyright 2013 Michael Pavone
3 This file is part of BlastEm.
4 BlastEm is free software distributed under the terms of the GNU General Public License version 3 or greater. See COPYING for full license text.
5*/
6#include "gen_x86.h"
7#include "m68k_core.h"
8#include <stdio.h>
9#include <stddef.h>
10
11int main(int argc, char ** argv)
12{
13 uint8_t foo[512];
14 uint8_t *cur = foo, *end;
15 cur = mov_rr(cur, RAX, RBX, SZ_B);
16 cur = mov_rr(cur, RCX, RDX, SZ_B);
17 cur = mov_rr(cur, R8, R9, SZ_B);
18 cur = mov_rr(cur, R8, RAX, SZ_B);
19 cur = mov_rr(cur, RAX, RBX, SZ_W);
20 cur = mov_rr(cur, R11, R12, SZ_W);
21 cur = mov_rr(cur, RAX, RBX, SZ_D);
22 cur = mov_rr(cur, RAX, RBX, SZ_Q);
23 cur = mov_ir(cur, 5, RAX, SZ_D);
24 cur = mov_ir(cur, 3, R8, SZ_D);
25 cur = mov_ir(cur, 4, RSP, SZ_B);
26 cur = add_rr(cur, RAX, RBX, SZ_D);
27 cur = add_ir(cur, 5, RAX, SZ_B);
28 cur = add_ir(cur, 5, RBX, SZ_B);
29 cur = add_ir(cur, 5, RBP, SZ_B);
30 cur = pushf(cur);
31 cur = popf(cur);
32 cur = setcc_r(cur, CC_S, RBX);
33 cur = setcc_r(cur, CC_Z, RDX);
34 cur = setcc_r(cur, CC_O, BH);
35 cur = setcc_r(cur, CC_C, DH);
36 cur = setcc_rind(cur, CC_C, RSI);
37 cur = mov_rrdisp8(cur, RCX, RSI, offsetof(m68k_context, dregs) + 4 * sizeof(uint32_t), SZ_D);
38 cur = mov_rdisp8r(cur, RSI, offsetof(m68k_context, dregs) + 5 * sizeof(uint32_t), RCX, SZ_D);
39 cur = mov_rrind(cur, DH, RSI, SZ_B);
40 cur = jcc(cur, CC_NZ, -2);
41 cur = jcc(cur, CC_Z, 0);
42 cur = jcc(cur, CC_LE, 0x7CA);
43 for (end = cur, cur = foo; cur != end; cur++) {
44 printf(" %X", *cur);
45 }
46 puts("");
47 return 0;
48}