Mercurial > libavcodec.hg
comparison ps2/mmi.h @ 2979:bfabfdf9ce55 libavcodec
COSMETICS: tabs --> spaces, some prettyprinting
author | diego |
---|---|
date | Thu, 22 Dec 2005 01:10:11 +0000 |
parents | 71f669e9f633 |
children | c537a97eec66 |
comparison
equal
deleted
inserted
replaced
2978:403183bbb505 | 2979:bfabfdf9ce55 |
---|---|
3 | 3 |
4 #define align16 __attribute__ ((aligned (16))) | 4 #define align16 __attribute__ ((aligned (16))) |
5 | 5 |
6 /* | 6 /* |
7 #define r0 $zero | 7 #define r0 $zero |
8 #define r1 $at //assembler! | 8 #define r1 $at //assembler! |
9 #define r2 $v0 //return | 9 #define r2 $v0 //return |
10 #define r3 $v1 //return | 10 #define r3 $v1 //return |
11 #define r4 $a0 //arg | 11 #define r4 $a0 //arg |
12 #define r5 $a1 //arg | 12 #define r5 $a1 //arg |
13 #define r6 $a2 //arg | 13 #define r6 $a2 //arg |
14 #define r7 $a3 //arg | 14 #define r7 $a3 //arg |
15 #define r8 $t0 //temp | 15 #define r8 $t0 //temp |
16 #define r9 $t1 //temp | 16 #define r9 $t1 //temp |
17 #define r10 $t2 //temp | 17 #define r10 $t2 //temp |
18 #define r11 $t3 //temp | 18 #define r11 $t3 //temp |
19 #define r12 $t4 //temp | 19 #define r12 $t4 //temp |
20 #define r13 $t5 //temp | 20 #define r13 $t5 //temp |
21 #define r14 $t6 //temp | 21 #define r14 $t6 //temp |
22 #define r15 $t7 //temp | 22 #define r15 $t7 //temp |
23 #define r16 $s0 //saved temp | 23 #define r16 $s0 //saved temp |
24 #define r17 $s1 //saved temp | 24 #define r17 $s1 //saved temp |
25 #define r18 $s2 //saved temp | 25 #define r18 $s2 //saved temp |
26 #define r19 $s3 //saved temp | 26 #define r19 $s3 //saved temp |
27 #define r20 $s4 //saved temp | 27 #define r20 $s4 //saved temp |
28 #define r21 $s5 //saved temp | 28 #define r21 $s5 //saved temp |
29 #define r22 $s6 //saved temp | 29 #define r22 $s6 //saved temp |
30 #define r23 $s7 //saved temp | 30 #define r23 $s7 //saved temp |
31 #define r24 $t8 //temp | 31 #define r24 $t8 //temp |
32 #define r25 $t9 //temp | 32 #define r25 $t9 //temp |
33 #define r26 $k0 //kernel | 33 #define r26 $k0 //kernel |
34 #define r27 $k1 //kernel | 34 #define r27 $k1 //kernel |
35 #define r28 $gp //global ptr | 35 #define r28 $gp //global ptr |
36 #define r29 $sp //stack ptr | 36 #define r29 $sp //stack ptr |
37 #define r30 $fp //frame ptr | 37 #define r30 $fp //frame ptr |
38 #define r31 $ra //return addr | 38 #define r31 $ra //return addr |
39 */ | 39 */ |
40 | 40 |
41 | 41 |
42 #define lq(base, off, reg) \ | 42 #define lq(base, off, reg) \ |
43 __asm__ __volatile__ ("lq " #reg ", %0("#base ")" : : "i" (off) ) | 43 __asm__ __volatile__ ("lq " #reg ", %0("#base ")" : : "i" (off) ) |
44 | 44 |
45 #define lq2(mem, reg) \ | 45 #define lq2(mem, reg) \ |
46 __asm__ __volatile__ ("lq " #reg ", %0" : : "r" (mem)) | 46 __asm__ __volatile__ ("lq " #reg ", %0" : : "r" (mem)) |
47 | 47 |
48 #define sq(reg, off, base) \ | 48 #define sq(reg, off, base) \ |
49 __asm__ __volatile__ ("sq " #reg ", %0("#base ")" : : "i" (off) ) | 49 __asm__ __volatile__ ("sq " #reg ", %0("#base ")" : : "i" (off) ) |
50 | 50 |
51 /* | 51 /* |
52 #define ld(base, off, reg) \ | 52 #define ld(base, off, reg) \ |
53 __asm__ __volatile__ ("ld " #reg ", " #off "("#base ")") | 53 __asm__ __volatile__ ("ld " #reg ", " #off "("#base ")") |
54 */ | 54 */ |
55 | 55 |
56 #define ld3(base, off, reg) \ | 56 #define ld3(base, off, reg) \ |
57 __asm__ __volatile__ (".word %0" : : "i" ( 0xdc000000 | (base<<21) | (reg<<16) | (off))) | 57 __asm__ __volatile__ (".word %0" : : "i" ( 0xdc000000 | (base<<21) | (reg<<16) | (off))) |
58 | 58 |
59 #define ldr3(base, off, reg) \ | 59 #define ldr3(base, off, reg) \ |
60 __asm__ __volatile__ (".word %0" : : "i" ( 0x6c000000 | (base<<21) | (reg<<16) | (off))) | 60 __asm__ __volatile__ (".word %0" : : "i" ( 0x6c000000 | (base<<21) | (reg<<16) | (off))) |
61 | 61 |
62 #define ldl3(base, off, reg) \ | 62 #define ldl3(base, off, reg) \ |
63 __asm__ __volatile__ (".word %0" : : "i" ( 0x68000000 | (base<<21) | (reg<<16) | (off))) | 63 __asm__ __volatile__ (".word %0" : : "i" ( 0x68000000 | (base<<21) | (reg<<16) | (off))) |
64 | 64 |
65 /* | 65 /* |
66 #define sd(reg, off, base) \ | 66 #define sd(reg, off, base) \ |
67 __asm__ __volatile__ ("sd " #reg ", " #off "("#base ")") | 67 __asm__ __volatile__ ("sd " #reg ", " #off "("#base ")") |
68 */ | 68 */ |
69 //seems assembler has bug encoding mnemonic 'sd', so DIY | 69 //seems assembler has bug encoding mnemonic 'sd', so DIY |
70 #define sd3(reg, off, base) \ | 70 #define sd3(reg, off, base) \ |
71 __asm__ __volatile__ (".word %0" : : "i" ( 0xfc000000 | (base<<21) | (reg<<16) | (off))) | 71 __asm__ __volatile__ (".word %0" : : "i" ( 0xfc000000 | (base<<21) | (reg<<16) | (off))) |
72 | 72 |
73 #define sw(reg, off, base) \ | 73 #define sw(reg, off, base) \ |
74 __asm__ __volatile__ ("sw " #reg ", " #off "("#base ")") | 74 __asm__ __volatile__ ("sw " #reg ", " #off "("#base ")") |
75 | 75 |
76 #define sq2(reg, mem) \ | 76 #define sq2(reg, mem) \ |
77 __asm__ __volatile__ ("sq " #reg ", %0" : : "m" (*(mem))) | 77 __asm__ __volatile__ ("sq " #reg ", %0" : : "m" (*(mem))) |
78 | 78 |
79 #define pinth(rs, rt, rd) \ | 79 #define pinth(rs, rt, rd) \ |
80 __asm__ __volatile__ ("pinth " #rd ", " #rs ", " #rt ) | 80 __asm__ __volatile__ ("pinth " #rd ", " #rs ", " #rt ) |
81 | 81 |
82 #define phmadh(rs, rt, rd) \ | 82 #define phmadh(rs, rt, rd) \ |
83 __asm__ __volatile__ ("phmadh " #rd ", " #rs ", " #rt ) | 83 __asm__ __volatile__ ("phmadh " #rd ", " #rs ", " #rt ) |
84 | 84 |
85 #define pcpyud(rs, rt, rd) \ | 85 #define pcpyud(rs, rt, rd) \ |
86 __asm__ __volatile__ ("pcpyud " #rd ", " #rs ", " #rt ) | 86 __asm__ __volatile__ ("pcpyud " #rd ", " #rs ", " #rt ) |
87 | 87 |
88 #define pcpyld(rs, rt, rd) \ | 88 #define pcpyld(rs, rt, rd) \ |
89 __asm__ __volatile__ ("pcpyld " #rd ", " #rs ", " #rt ) | 89 __asm__ __volatile__ ("pcpyld " #rd ", " #rs ", " #rt ) |
90 | 90 |
91 #define pcpyh(rt, rd) \ | 91 #define pcpyh(rt, rd) \ |
92 __asm__ __volatile__ ("pcpyh " #rd ", " #rt ) | 92 __asm__ __volatile__ ("pcpyh " #rd ", " #rt ) |
93 | 93 |
94 #define paddw(rs, rt, rd) \ | 94 #define paddw(rs, rt, rd) \ |
95 __asm__ __volatile__ ("paddw " #rd ", " #rs ", " #rt ) | 95 __asm__ __volatile__ ("paddw " #rd ", " #rs ", " #rt ) |
96 | 96 |
97 #define pextlw(rs, rt, rd) \ | 97 #define pextlw(rs, rt, rd) \ |
98 __asm__ __volatile__ ("pextlw " #rd ", " #rs ", " #rt ) | 98 __asm__ __volatile__ ("pextlw " #rd ", " #rs ", " #rt ) |
99 | 99 |
100 #define pextuw(rs, rt, rd) \ | 100 #define pextuw(rs, rt, rd) \ |
101 __asm__ __volatile__ ("pextuw " #rd ", " #rs ", " #rt ) | 101 __asm__ __volatile__ ("pextuw " #rd ", " #rs ", " #rt ) |
102 | 102 |
103 #define pextlh(rs, rt, rd) \ | 103 #define pextlh(rs, rt, rd) \ |
104 __asm__ __volatile__ ("pextlh " #rd ", " #rs ", " #rt ) | 104 __asm__ __volatile__ ("pextlh " #rd ", " #rs ", " #rt ) |
105 | 105 |
106 #define pextuh(rs, rt, rd) \ | 106 #define pextuh(rs, rt, rd) \ |
107 __asm__ __volatile__ ("pextuh " #rd ", " #rs ", " #rt ) | 107 __asm__ __volatile__ ("pextuh " #rd ", " #rs ", " #rt ) |
108 | 108 |
109 #define psubw(rs, rt, rd) \ | 109 #define psubw(rs, rt, rd) \ |
110 __asm__ __volatile__ ("psubw " #rd ", " #rs ", " #rt ) | 110 __asm__ __volatile__ ("psubw " #rd ", " #rs ", " #rt ) |
111 | 111 |
112 #define psraw(rt, sa, rd) \ | 112 #define psraw(rt, sa, rd) \ |
113 __asm__ __volatile__ ("psraw " #rd ", " #rt ", %0" : : "i"(sa) ) | 113 __asm__ __volatile__ ("psraw " #rd ", " #rt ", %0" : : "i"(sa) ) |
114 | 114 |
115 #define ppach(rs, rt, rd) \ | 115 #define ppach(rs, rt, rd) \ |
116 __asm__ __volatile__ ("ppach " #rd ", " #rs ", " #rt ) | 116 __asm__ __volatile__ ("ppach " #rd ", " #rs ", " #rt ) |
117 | 117 |
118 #define ppacb(rs, rt, rd) \ | 118 #define ppacb(rs, rt, rd) \ |
119 __asm__ __volatile__ ("ppacb " #rd ", " #rs ", " #rt ) | 119 __asm__ __volatile__ ("ppacb " #rd ", " #rs ", " #rt ) |
120 | 120 |
121 #define prevh(rt, rd) \ | 121 #define prevh(rt, rd) \ |
122 __asm__ __volatile__ ("prevh " #rd ", " #rt ) | 122 __asm__ __volatile__ ("prevh " #rd ", " #rt ) |
123 | 123 |
124 #define pmulth(rs, rt, rd) \ | 124 #define pmulth(rs, rt, rd) \ |
125 __asm__ __volatile__ ("pmulth " #rd ", " #rs ", " #rt ) | 125 __asm__ __volatile__ ("pmulth " #rd ", " #rs ", " #rt ) |
126 | 126 |
127 #define pmaxh(rs, rt, rd) \ | 127 #define pmaxh(rs, rt, rd) \ |
128 __asm__ __volatile__ ("pmaxh " #rd ", " #rs ", " #rt ) | 128 __asm__ __volatile__ ("pmaxh " #rd ", " #rs ", " #rt ) |
129 | 129 |
130 #define pminh(rs, rt, rd) \ | 130 #define pminh(rs, rt, rd) \ |
131 __asm__ __volatile__ ("pminh " #rd ", " #rs ", " #rt ) | 131 __asm__ __volatile__ ("pminh " #rd ", " #rs ", " #rt ) |
132 | 132 |
133 #define pinteh(rs, rt, rd) \ | 133 #define pinteh(rs, rt, rd) \ |
134 __asm__ __volatile__ ("pinteh " #rd ", " #rs ", " #rt ) | 134 __asm__ __volatile__ ("pinteh " #rd ", " #rs ", " #rt ) |
135 | 135 |
136 #define paddh(rs, rt, rd) \ | 136 #define paddh(rs, rt, rd) \ |
137 __asm__ __volatile__ ("paddh " #rd ", " #rs ", " #rt ) | 137 __asm__ __volatile__ ("paddh " #rd ", " #rs ", " #rt ) |
138 | 138 |
139 #define psubh(rs, rt, rd) \ | 139 #define psubh(rs, rt, rd) \ |
140 __asm__ __volatile__ ("psubh " #rd ", " #rs ", " #rt ) | 140 __asm__ __volatile__ ("psubh " #rd ", " #rs ", " #rt ) |
141 | 141 |
142 #define psrah(rt, sa, rd) \ | 142 #define psrah(rt, sa, rd) \ |
143 __asm__ __volatile__ ("psrah " #rd ", " #rt ", %0" : : "i"(sa) ) | 143 __asm__ __volatile__ ("psrah " #rd ", " #rt ", %0" : : "i"(sa) ) |
144 | 144 |
145 #define pmfhl_uw(rd) \ | 145 #define pmfhl_uw(rd) \ |
146 __asm__ __volatile__ ("pmfhl.uw " #rd) | 146 __asm__ __volatile__ ("pmfhl.uw " #rd) |
147 | 147 |
148 #define pextlb(rs, rt, rd) \ | 148 #define pextlb(rs, rt, rd) \ |
149 __asm__ __volatile__ ("pextlb " #rd ", " #rs ", " #rt ) | 149 __asm__ __volatile__ ("pextlb " #rd ", " #rs ", " #rt ) |
150 | 150 |
151 #endif | 151 #endif |
152 | 152 |