Statistics
| Branch: | Revision:

root / opreg_template.h @ 7bfdb6d1

History | View | Annotate | Download (1.9 kB)

1
/* templates for various register related operations */
2

    
3
void OPPROTO glue(op_movl_A0,REGNAME)(void)
4
{
5
    A0 = REG;
6
}
7

    
8
void OPPROTO glue(op_addl_A0,REGNAME)(void)
9
{
10
    A0 += REG;
11
}
12

    
13
void OPPROTO glue(glue(op_addl_A0,REGNAME),_s1)(void)
14
{
15
    A0 += REG << 1;
16
}
17

    
18
void OPPROTO glue(glue(op_addl_A0,REGNAME),_s2)(void)
19
{
20
    A0 += REG << 2;
21
}
22

    
23
void OPPROTO glue(glue(op_addl_A0,REGNAME),_s3)(void)
24
{
25
    A0 += REG << 3;
26
}
27

    
28
void OPPROTO glue(op_movl_T0,REGNAME)(void)
29
{
30
    T0 = REG;
31
}
32

    
33
void OPPROTO glue(op_movl_T1,REGNAME)(void)
34
{
35
    T1 = REG;
36
}
37

    
38
void OPPROTO glue(op_movh_T0,REGNAME)(void)
39
{
40
    T0 = REG >> 8;
41
}
42

    
43
void OPPROTO glue(op_movh_T1,REGNAME)(void)
44
{
45
    T1 = REG >> 8;
46
}
47

    
48
void OPPROTO glue(glue(op_movl,REGNAME),_T0)(void)
49
{
50
    REG = T0;
51
}
52

    
53
void OPPROTO glue(glue(op_movl,REGNAME),_T1)(void)
54
{
55
    REG = T1;
56
}
57

    
58
void OPPROTO glue(glue(op_movl,REGNAME),_A0)(void)
59
{
60
    REG = A0;
61
}
62

    
63
/* NOTE: T0 high order bits are ignored */
64
void 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 */
70
void 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 */
76
void 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 */
82
void 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 */
88
void 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 */
94
void 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 */
100
void OPPROTO glue(glue(op_movh,REGNAME),_T1)(void)
101
{
102
    REG = (REG & 0xffff00ff) | ((T1 & 0xff) << 8);
103
}