62
62
#define lq(base, off, reg) \
63
__asm__ __volatile__ ("lq " #reg ", %0("#base ")" : : "i" (off) )
63
asm volatile ("lq " #reg ", %0("#base ")" : : "i" (off) )
65
65
#define lq2(mem, reg) \
66
__asm__ __volatile__ ("lq " #reg ", %0" : : "r" (mem))
66
asm volatile ("lq " #reg ", %0" : : "r" (mem))
68
68
#define sq(reg, off, base) \
69
__asm__ __volatile__ ("sq " #reg ", %0("#base ")" : : "i" (off) )
69
asm volatile ("sq " #reg ", %0("#base ")" : : "i" (off) )
72
72
#define ld(base, off, reg) \
73
__asm__ __volatile__ ("ld " #reg ", " #off "("#base ")")
73
asm volatile ("ld " #reg ", " #off "("#base ")")
76
76
#define ld3(base, off, reg) \
77
__asm__ __volatile__ (".word %0" : : "i" ( 0xdc000000 | (base<<21) | (reg<<16) | (off)))
77
asm volatile (".word %0" : : "i" ( 0xdc000000 | (base<<21) | (reg<<16) | (off)))
79
79
#define ldr3(base, off, reg) \
80
__asm__ __volatile__ (".word %0" : : "i" ( 0x6c000000 | (base<<21) | (reg<<16) | (off)))
80
asm volatile (".word %0" : : "i" ( 0x6c000000 | (base<<21) | (reg<<16) | (off)))
82
82
#define ldl3(base, off, reg) \
83
__asm__ __volatile__ (".word %0" : : "i" ( 0x68000000 | (base<<21) | (reg<<16) | (off)))
83
asm volatile (".word %0" : : "i" ( 0x68000000 | (base<<21) | (reg<<16) | (off)))
86
86
#define sd(reg, off, base) \
87
__asm__ __volatile__ ("sd " #reg ", " #off "("#base ")")
87
asm volatile ("sd " #reg ", " #off "("#base ")")
89
89
//seems assembler has bug encoding mnemonic 'sd', so DIY
90
90
#define sd3(reg, off, base) \
91
__asm__ __volatile__ (".word %0" : : "i" ( 0xfc000000 | (base<<21) | (reg<<16) | (off)))
91
asm volatile (".word %0" : : "i" ( 0xfc000000 | (base<<21) | (reg<<16) | (off)))
93
93
#define sw(reg, off, base) \
94
__asm__ __volatile__ ("sw " #reg ", " #off "("#base ")")
94
asm volatile ("sw " #reg ", " #off "("#base ")")
96
96
#define sq2(reg, mem) \
97
__asm__ __volatile__ ("sq " #reg ", %0" : : "m" (*(mem)))
97
asm volatile ("sq " #reg ", %0" : : "m" (*(mem)))
99
99
#define pinth(rs, rt, rd) \
100
__asm__ __volatile__ ("pinth " #rd ", " #rs ", " #rt )
100
asm volatile ("pinth " #rd ", " #rs ", " #rt )
102
102
#define phmadh(rs, rt, rd) \
103
__asm__ __volatile__ ("phmadh " #rd ", " #rs ", " #rt )
103
asm volatile ("phmadh " #rd ", " #rs ", " #rt )
105
105
#define pcpyud(rs, rt, rd) \
106
__asm__ __volatile__ ("pcpyud " #rd ", " #rs ", " #rt )
106
asm volatile ("pcpyud " #rd ", " #rs ", " #rt )
108
108
#define pcpyld(rs, rt, rd) \
109
__asm__ __volatile__ ("pcpyld " #rd ", " #rs ", " #rt )
109
asm volatile ("pcpyld " #rd ", " #rs ", " #rt )
111
111
#define pcpyh(rt, rd) \
112
__asm__ __volatile__ ("pcpyh " #rd ", " #rt )
112
asm volatile ("pcpyh " #rd ", " #rt )
114
114
#define paddw(rs, rt, rd) \
115
__asm__ __volatile__ ("paddw " #rd ", " #rs ", " #rt )
115
asm volatile ("paddw " #rd ", " #rs ", " #rt )
117
117
#define pextlw(rs, rt, rd) \
118
__asm__ __volatile__ ("pextlw " #rd ", " #rs ", " #rt )
118
asm volatile ("pextlw " #rd ", " #rs ", " #rt )
120
120
#define pextuw(rs, rt, rd) \
121
__asm__ __volatile__ ("pextuw " #rd ", " #rs ", " #rt )
121
asm volatile ("pextuw " #rd ", " #rs ", " #rt )
123
123
#define pextlh(rs, rt, rd) \
124
__asm__ __volatile__ ("pextlh " #rd ", " #rs ", " #rt )
124
asm volatile ("pextlh " #rd ", " #rs ", " #rt )
126
126
#define pextuh(rs, rt, rd) \
127
__asm__ __volatile__ ("pextuh " #rd ", " #rs ", " #rt )
127
asm volatile ("pextuh " #rd ", " #rs ", " #rt )
129
129
#define psubw(rs, rt, rd) \
130
__asm__ __volatile__ ("psubw " #rd ", " #rs ", " #rt )
130
asm volatile ("psubw " #rd ", " #rs ", " #rt )
132
132
#define psraw(rt, sa, rd) \
133
__asm__ __volatile__ ("psraw " #rd ", " #rt ", %0" : : "i"(sa) )
133
asm volatile ("psraw " #rd ", " #rt ", %0" : : "i"(sa) )
135
135
#define ppach(rs, rt, rd) \
136
__asm__ __volatile__ ("ppach " #rd ", " #rs ", " #rt )
136
asm volatile ("ppach " #rd ", " #rs ", " #rt )
138
138
#define ppacb(rs, rt, rd) \
139
__asm__ __volatile__ ("ppacb " #rd ", " #rs ", " #rt )
139
asm volatile ("ppacb " #rd ", " #rs ", " #rt )
141
141
#define prevh(rt, rd) \
142
__asm__ __volatile__ ("prevh " #rd ", " #rt )
142
asm volatile ("prevh " #rd ", " #rt )
144
144
#define pmulth(rs, rt, rd) \
145
__asm__ __volatile__ ("pmulth " #rd ", " #rs ", " #rt )
145
asm volatile ("pmulth " #rd ", " #rs ", " #rt )
147
147
#define pmaxh(rs, rt, rd) \
148
__asm__ __volatile__ ("pmaxh " #rd ", " #rs ", " #rt )
148
asm volatile ("pmaxh " #rd ", " #rs ", " #rt )
150
150
#define pminh(rs, rt, rd) \
151
__asm__ __volatile__ ("pminh " #rd ", " #rs ", " #rt )
151
asm volatile ("pminh " #rd ", " #rs ", " #rt )
153
153
#define pinteh(rs, rt, rd) \
154
__asm__ __volatile__ ("pinteh " #rd ", " #rs ", " #rt )
154
asm volatile ("pinteh " #rd ", " #rs ", " #rt )
156
156
#define paddh(rs, rt, rd) \
157
__asm__ __volatile__ ("paddh " #rd ", " #rs ", " #rt )
157
asm volatile ("paddh " #rd ", " #rs ", " #rt )
159
159
#define psubh(rs, rt, rd) \
160
__asm__ __volatile__ ("psubh " #rd ", " #rs ", " #rt )
160
asm volatile ("psubh " #rd ", " #rs ", " #rt )
162
162
#define psrah(rt, sa, rd) \
163
__asm__ __volatile__ ("psrah " #rd ", " #rt ", %0" : : "i"(sa) )
163
asm volatile ("psrah " #rd ", " #rt ", %0" : : "i"(sa) )
165
165
#define pmfhl_uw(rd) \
166
__asm__ __volatile__ ("pmfhl.uw " #rd)
166
asm volatile ("pmfhl.uw " #rd)
168
168
#define pextlb(rs, rt, rd) \
169
__asm__ __volatile__ ("pextlb " #rd ", " #rs ", " #rt )
169
asm volatile ("pextlb " #rd ", " #rs ", " #rt )
171
#endif /* FFMPEG_MMI_H */