]> git.proxmox.com Git - qemu.git/blame - opreg_template.h
new i386 emulator core
[qemu.git] / opreg_template.h
CommitLineData
7bfdb6d1
FB
1/* templates for various register related operations */
2
3void OPPROTO glue(op_movl_A0,REGNAME)(void)
4{
5 A0 = REG;
6}
7
8void OPPROTO glue(op_addl_A0,REGNAME)(void)
9{
10 A0 += REG;
11}
12
13void OPPROTO glue(glue(op_addl_A0,REGNAME),_s1)(void)
14{
15 A0 += REG << 1;
16}
17
18void OPPROTO glue(glue(op_addl_A0,REGNAME),_s2)(void)
19{
20 A0 += REG << 2;
21}
22
23void OPPROTO glue(glue(op_addl_A0,REGNAME),_s3)(void)
24{
25 A0 += REG << 3;
26}
27
28void OPPROTO glue(op_movl_T0,REGNAME)(void)
29{
30 T0 = REG;
31}
32
33void OPPROTO glue(op_movl_T1,REGNAME)(void)
34{
35 T1 = REG;
36}
37
38void OPPROTO glue(op_movh_T0,REGNAME)(void)
39{
40 T0 = REG >> 8;
41}
42
43void OPPROTO glue(op_movh_T1,REGNAME)(void)
44{
45 T1 = REG >> 8;
46}
47
48void OPPROTO glue(glue(op_movl,REGNAME),_T0)(void)
49{
50 REG = T0;
51}
52
53void OPPROTO glue(glue(op_movl,REGNAME),_T1)(void)
54{
55 REG = T1;
56}
57
58void OPPROTO glue(glue(op_movl,REGNAME),_A0)(void)
59{
60 REG = A0;
61}
62
63/* NOTE: T0 high order bits are ignored */
64void OPPROTO glue(glue(op_movw,REGNAME),_T0)(void)
65{
66 REG = (REG & 0xffff0000) | (T0 & 0xffff);
67}
68
69/* NOTE: T0 high order bits are ignored */
70void OPPROTO glue(glue(op_movw,REGNAME),_T1)(void)
71{
72 REG = (REG & 0xffff0000) | (T1 & 0xffff);
73}
74
75/* NOTE: A0 high order bits are ignored */
76void OPPROTO glue(glue(op_movw,REGNAME),_A0)(void)
77{
78 REG = (REG & 0xffff0000) | (A0 & 0xffff);
79}
80
81/* NOTE: T0 high order bits are ignored */
82void OPPROTO glue(glue(op_movb,REGNAME),_T0)(void)
83{
84 REG = (REG & 0xffffff00) | (T0 & 0xff);
85}
86
87/* NOTE: T0 high order bits are ignored */
88void OPPROTO glue(glue(op_movh,REGNAME),_T0)(void)
89{
90 REG = (REG & 0xffff00ff) | ((T0 & 0xff) << 8);
91}
92
93/* NOTE: T1 high order bits are ignored */
94void OPPROTO glue(glue(op_movb,REGNAME),_T1)(void)
95{
96 REG = (REG & 0xffffff00) | (T1 & 0xff);
97}
98
99/* NOTE: T1 high order bits are ignored */
100void OPPROTO glue(glue(op_movh,REGNAME),_T1)(void)
101{
102 REG = (REG & 0xffff00ff) | ((T1 & 0xff) << 8);
103}