Mercurial > libavcodec.hg
comparison armv4l/dsputil_iwmmxt_rnd.h @ 8031:eebc7209c47f libavcodec
Convert asm keyword into __asm__.
Neither the asm() nor the __asm__() keyword is part of the C99
standard, but while GCC accepts the former in C89 syntax, it is not
accepted in C99 unless GNU extensions are turned on (with -fasm). The
latter form is accepted in any syntax as an extension (without
requiring further command-line options).
Sun Studio C99 compiler also does not accept asm() while accepting
__asm__(), albeit reporting warnings that it's not valid C99 syntax.
author | flameeyes |
---|---|
date | Thu, 16 Oct 2008 13:34:09 +0000 |
parents | 43c97362dfa8 |
children |
comparison
equal
deleted
inserted
replaced
8030:a512ac8fa540 | 8031:eebc7209c47f |
---|---|
24 * value of certain #defines. */ | 24 * value of certain #defines. */ |
25 | 25 |
26 void DEF(put, pixels8)(uint8_t *block, const uint8_t *pixels, const int line_size, int h) | 26 void DEF(put, pixels8)(uint8_t *block, const uint8_t *pixels, const int line_size, int h) |
27 { | 27 { |
28 int stride = line_size; | 28 int stride = line_size; |
29 asm volatile ( | 29 __asm__ volatile ( |
30 "and r12, %[pixels], #7 \n\t" | 30 "and r12, %[pixels], #7 \n\t" |
31 "bic %[pixels], %[pixels], #7 \n\t" | 31 "bic %[pixels], %[pixels], #7 \n\t" |
32 "tmcr wcgr1, r12 \n\t" | 32 "tmcr wcgr1, r12 \n\t" |
33 "add r4, %[pixels], %[line_size] \n\t" | 33 "add r4, %[pixels], %[line_size] \n\t" |
34 "add r5, %[block], %[line_size] \n\t" | 34 "add r5, %[block], %[line_size] \n\t" |
58 } | 58 } |
59 | 59 |
60 void DEF(avg, pixels8)(uint8_t *block, const uint8_t *pixels, const int line_size, int h) | 60 void DEF(avg, pixels8)(uint8_t *block, const uint8_t *pixels, const int line_size, int h) |
61 { | 61 { |
62 int stride = line_size; | 62 int stride = line_size; |
63 asm volatile ( | 63 __asm__ volatile ( |
64 "and r12, %[pixels], #7 \n\t" | 64 "and r12, %[pixels], #7 \n\t" |
65 "bic %[pixels], %[pixels], #7 \n\t" | 65 "bic %[pixels], %[pixels], #7 \n\t" |
66 "tmcr wcgr1, r12 \n\t" | 66 "tmcr wcgr1, r12 \n\t" |
67 "add r4, %[pixels], %[line_size] \n\t" | 67 "add r4, %[pixels], %[line_size] \n\t" |
68 "add r5, %[block], %[line_size] \n\t" | 68 "add r5, %[block], %[line_size] \n\t" |
100 } | 100 } |
101 | 101 |
102 void DEF(put, pixels16)(uint8_t *block, const uint8_t *pixels, const int line_size, int h) | 102 void DEF(put, pixels16)(uint8_t *block, const uint8_t *pixels, const int line_size, int h) |
103 { | 103 { |
104 int stride = line_size; | 104 int stride = line_size; |
105 asm volatile ( | 105 __asm__ volatile ( |
106 "and r12, %[pixels], #7 \n\t" | 106 "and r12, %[pixels], #7 \n\t" |
107 "bic %[pixels], %[pixels], #7 \n\t" | 107 "bic %[pixels], %[pixels], #7 \n\t" |
108 "tmcr wcgr1, r12 \n\t" | 108 "tmcr wcgr1, r12 \n\t" |
109 "add r4, %[pixels], %[line_size] \n\t" | 109 "add r4, %[pixels], %[line_size] \n\t" |
110 "add r5, %[block], %[line_size] \n\t" | 110 "add r5, %[block], %[line_size] \n\t" |
140 } | 140 } |
141 | 141 |
142 void DEF(avg, pixels16)(uint8_t *block, const uint8_t *pixels, const int line_size, int h) | 142 void DEF(avg, pixels16)(uint8_t *block, const uint8_t *pixels, const int line_size, int h) |
143 { | 143 { |
144 int stride = line_size; | 144 int stride = line_size; |
145 asm volatile ( | 145 __asm__ volatile ( |
146 "pld [%[pixels]] \n\t" | 146 "pld [%[pixels]] \n\t" |
147 "pld [%[pixels], #32] \n\t" | 147 "pld [%[pixels], #32] \n\t" |
148 "pld [%[block]] \n\t" | 148 "pld [%[block]] \n\t" |
149 "pld [%[block], #32] \n\t" | 149 "pld [%[block], #32] \n\t" |
150 "and r12, %[pixels], #7 \n\t" | 150 "and r12, %[pixels], #7 \n\t" |
199 { | 199 { |
200 int stride = line_size; | 200 int stride = line_size; |
201 // [wr0 wr1 wr2 wr3] for previous line | 201 // [wr0 wr1 wr2 wr3] for previous line |
202 // [wr4 wr5 wr6 wr7] for current line | 202 // [wr4 wr5 wr6 wr7] for current line |
203 SET_RND(wr15); // =2 for rnd and =1 for no_rnd version | 203 SET_RND(wr15); // =2 for rnd and =1 for no_rnd version |
204 asm volatile( | 204 __asm__ volatile( |
205 "pld [%[pixels]] \n\t" | 205 "pld [%[pixels]] \n\t" |
206 "pld [%[pixels], #32] \n\t" | 206 "pld [%[pixels], #32] \n\t" |
207 "and r12, %[pixels], #7 \n\t" | 207 "and r12, %[pixels], #7 \n\t" |
208 "bic %[pixels], %[pixels], #7 \n\t" | 208 "bic %[pixels], %[pixels], #7 \n\t" |
209 "tmcr wcgr1, r12 \n\t" | 209 "tmcr wcgr1, r12 \n\t" |
248 { | 248 { |
249 int stride = line_size; | 249 int stride = line_size; |
250 // [wr0 wr1 wr2 wr3] for previous line | 250 // [wr0 wr1 wr2 wr3] for previous line |
251 // [wr4 wr5 wr6 wr7] for current line | 251 // [wr4 wr5 wr6 wr7] for current line |
252 SET_RND(wr15); // =2 for rnd and =1 for no_rnd version | 252 SET_RND(wr15); // =2 for rnd and =1 for no_rnd version |
253 asm volatile( | 253 __asm__ volatile( |
254 "pld [%[pixels]] \n\t" | 254 "pld [%[pixels]] \n\t" |
255 "pld [%[pixels], #32] \n\t" | 255 "pld [%[pixels], #32] \n\t" |
256 "and r12, %[pixels], #7 \n\t" | 256 "and r12, %[pixels], #7 \n\t" |
257 "bic %[pixels], %[pixels], #7 \n\t" | 257 "bic %[pixels], %[pixels], #7 \n\t" |
258 "tmcr wcgr1, r12 \n\t" | 258 "tmcr wcgr1, r12 \n\t" |
309 { | 309 { |
310 int stride = line_size; | 310 int stride = line_size; |
311 // [wr0 wr1 wr2 wr3] for previous line | 311 // [wr0 wr1 wr2 wr3] for previous line |
312 // [wr4 wr5 wr6 wr7] for current line | 312 // [wr4 wr5 wr6 wr7] for current line |
313 SET_RND(wr15); // =2 for rnd and =1 for no_rnd version | 313 SET_RND(wr15); // =2 for rnd and =1 for no_rnd version |
314 asm volatile( | 314 __asm__ volatile( |
315 "pld [%[pixels]] \n\t" | 315 "pld [%[pixels]] \n\t" |
316 "pld [%[pixels], #32] \n\t" | 316 "pld [%[pixels], #32] \n\t" |
317 "pld [%[block]] \n\t" | 317 "pld [%[block]] \n\t" |
318 "pld [%[block], #32] \n\t" | 318 "pld [%[block], #32] \n\t" |
319 "and r12, %[pixels], #7 \n\t" | 319 "and r12, %[pixels], #7 \n\t" |
370 { | 370 { |
371 int stride = line_size; | 371 int stride = line_size; |
372 // [wr0 wr1 wr2 wr3] for previous line | 372 // [wr0 wr1 wr2 wr3] for previous line |
373 // [wr4 wr5 wr6 wr7] for current line | 373 // [wr4 wr5 wr6 wr7] for current line |
374 SET_RND(wr15); // =2 for rnd and =1 for no_rnd version | 374 SET_RND(wr15); // =2 for rnd and =1 for no_rnd version |
375 asm volatile( | 375 __asm__ volatile( |
376 "pld [%[pixels]] \n\t" | 376 "pld [%[pixels]] \n\t" |
377 "pld [%[pixels], #32] \n\t" | 377 "pld [%[pixels], #32] \n\t" |
378 "pld [%[block]] \n\t" | 378 "pld [%[block]] \n\t" |
379 "pld [%[block], #32] \n\t" | 379 "pld [%[block], #32] \n\t" |
380 "and r12, %[pixels], #7 \n\t" | 380 "and r12, %[pixels], #7 \n\t" |
446 void DEF(avg, pixels8_y2)(uint8_t *block, const uint8_t *pixels, const int line_size, int h) | 446 void DEF(avg, pixels8_y2)(uint8_t *block, const uint8_t *pixels, const int line_size, int h) |
447 { | 447 { |
448 int stride = line_size; | 448 int stride = line_size; |
449 // [wr0 wr1 wr2 wr3] for previous line | 449 // [wr0 wr1 wr2 wr3] for previous line |
450 // [wr4 wr5 wr6 wr7] for current line | 450 // [wr4 wr5 wr6 wr7] for current line |
451 asm volatile( | 451 __asm__ volatile( |
452 "pld [%[pixels]] \n\t" | 452 "pld [%[pixels]] \n\t" |
453 "pld [%[pixels], #32] \n\t" | 453 "pld [%[pixels], #32] \n\t" |
454 "and r12, %[pixels], #7 \n\t" | 454 "and r12, %[pixels], #7 \n\t" |
455 "tmcr wcgr1, r12 \n\t" | 455 "tmcr wcgr1, r12 \n\t" |
456 "bic %[pixels], %[pixels], #7 \n\t" | 456 "bic %[pixels], %[pixels], #7 \n\t" |
500 void DEF(put, pixels16_y2)(uint8_t *block, const uint8_t *pixels, const int line_size, int h) | 500 void DEF(put, pixels16_y2)(uint8_t *block, const uint8_t *pixels, const int line_size, int h) |
501 { | 501 { |
502 int stride = line_size; | 502 int stride = line_size; |
503 // [wr0 wr1 wr2 wr3] for previous line | 503 // [wr0 wr1 wr2 wr3] for previous line |
504 // [wr4 wr5 wr6 wr7] for current line | 504 // [wr4 wr5 wr6 wr7] for current line |
505 asm volatile( | 505 __asm__ volatile( |
506 "pld [%[pixels]] \n\t" | 506 "pld [%[pixels]] \n\t" |
507 "pld [%[pixels], #32] \n\t" | 507 "pld [%[pixels], #32] \n\t" |
508 "and r12, %[pixels], #7 \n\t" | 508 "and r12, %[pixels], #7 \n\t" |
509 "tmcr wcgr1, r12 \n\t" | 509 "tmcr wcgr1, r12 \n\t" |
510 "bic %[pixels], %[pixels], #7 \n\t" | 510 "bic %[pixels], %[pixels], #7 \n\t" |
557 void DEF(avg, pixels16_y2)(uint8_t *block, const uint8_t *pixels, const int line_size, int h) | 557 void DEF(avg, pixels16_y2)(uint8_t *block, const uint8_t *pixels, const int line_size, int h) |
558 { | 558 { |
559 int stride = line_size; | 559 int stride = line_size; |
560 // [wr0 wr1 wr2 wr3] for previous line | 560 // [wr0 wr1 wr2 wr3] for previous line |
561 // [wr4 wr5 wr6 wr7] for current line | 561 // [wr4 wr5 wr6 wr7] for current line |
562 asm volatile( | 562 __asm__ volatile( |
563 "pld [%[pixels]] \n\t" | 563 "pld [%[pixels]] \n\t" |
564 "pld [%[pixels], #32] \n\t" | 564 "pld [%[pixels], #32] \n\t" |
565 "and r12, %[pixels], #7 \n\t" | 565 "and r12, %[pixels], #7 \n\t" |
566 "tmcr wcgr1, r12 \n\t" | 566 "tmcr wcgr1, r12 \n\t" |
567 "bic %[pixels], %[pixels], #7 \n\t" | 567 "bic %[pixels], %[pixels], #7 \n\t" |
625 void DEF(put, pixels8_xy2)(uint8_t *block, const uint8_t *pixels, const int line_size, int h) | 625 void DEF(put, pixels8_xy2)(uint8_t *block, const uint8_t *pixels, const int line_size, int h) |
626 { | 626 { |
627 // [wr0 wr1 wr2 wr3] for previous line | 627 // [wr0 wr1 wr2 wr3] for previous line |
628 // [wr4 wr5 wr6 wr7] for current line | 628 // [wr4 wr5 wr6 wr7] for current line |
629 SET_RND(wr15); // =2 for rnd and =1 for no_rnd version | 629 SET_RND(wr15); // =2 for rnd and =1 for no_rnd version |
630 asm volatile( | 630 __asm__ volatile( |
631 "pld [%[pixels]] \n\t" | 631 "pld [%[pixels]] \n\t" |
632 "mov r12, #2 \n\t" | 632 "mov r12, #2 \n\t" |
633 "pld [%[pixels], #32] \n\t" | 633 "pld [%[pixels], #32] \n\t" |
634 "tmcr wcgr0, r12 \n\t" /* for shift value */ | 634 "tmcr wcgr0, r12 \n\t" /* for shift value */ |
635 "and r12, %[pixels], #7 \n\t" | 635 "and r12, %[pixels], #7 \n\t" |
719 void DEF(put, pixels16_xy2)(uint8_t *block, const uint8_t *pixels, const int line_size, int h) | 719 void DEF(put, pixels16_xy2)(uint8_t *block, const uint8_t *pixels, const int line_size, int h) |
720 { | 720 { |
721 // [wr0 wr1 wr2 wr3] for previous line | 721 // [wr0 wr1 wr2 wr3] for previous line |
722 // [wr4 wr5 wr6 wr7] for current line | 722 // [wr4 wr5 wr6 wr7] for current line |
723 SET_RND(wr15); // =2 for rnd and =1 for no_rnd version | 723 SET_RND(wr15); // =2 for rnd and =1 for no_rnd version |
724 asm volatile( | 724 __asm__ volatile( |
725 "pld [%[pixels]] \n\t" | 725 "pld [%[pixels]] \n\t" |
726 "mov r12, #2 \n\t" | 726 "mov r12, #2 \n\t" |
727 "pld [%[pixels], #32] \n\t" | 727 "pld [%[pixels], #32] \n\t" |
728 "tmcr wcgr0, r12 \n\t" /* for shift value */ | 728 "tmcr wcgr0, r12 \n\t" /* for shift value */ |
729 /* alignment */ | 729 /* alignment */ |
861 void DEF(avg, pixels8_xy2)(uint8_t *block, const uint8_t *pixels, const int line_size, int h) | 861 void DEF(avg, pixels8_xy2)(uint8_t *block, const uint8_t *pixels, const int line_size, int h) |
862 { | 862 { |
863 // [wr0 wr1 wr2 wr3] for previous line | 863 // [wr0 wr1 wr2 wr3] for previous line |
864 // [wr4 wr5 wr6 wr7] for current line | 864 // [wr4 wr5 wr6 wr7] for current line |
865 SET_RND(wr15); // =2 for rnd and =1 for no_rnd version | 865 SET_RND(wr15); // =2 for rnd and =1 for no_rnd version |
866 asm volatile( | 866 __asm__ volatile( |
867 "pld [%[block]] \n\t" | 867 "pld [%[block]] \n\t" |
868 "pld [%[block], #32] \n\t" | 868 "pld [%[block], #32] \n\t" |
869 "pld [%[pixels]] \n\t" | 869 "pld [%[pixels]] \n\t" |
870 "mov r12, #2 \n\t" | 870 "mov r12, #2 \n\t" |
871 "pld [%[pixels], #32] \n\t" | 871 "pld [%[pixels], #32] \n\t" |
965 void DEF(avg, pixels16_xy2)(uint8_t *block, const uint8_t *pixels, const int line_size, int h) | 965 void DEF(avg, pixels16_xy2)(uint8_t *block, const uint8_t *pixels, const int line_size, int h) |
966 { | 966 { |
967 // [wr0 wr1 wr2 wr3] for previous line | 967 // [wr0 wr1 wr2 wr3] for previous line |
968 // [wr4 wr5 wr6 wr7] for current line | 968 // [wr4 wr5 wr6 wr7] for current line |
969 SET_RND(wr15); // =2 for rnd and =1 for no_rnd version | 969 SET_RND(wr15); // =2 for rnd and =1 for no_rnd version |
970 asm volatile( | 970 __asm__ volatile( |
971 "pld [%[block]] \n\t" | 971 "pld [%[block]] \n\t" |
972 "pld [%[block], #32] \n\t" | 972 "pld [%[block], #32] \n\t" |
973 "pld [%[pixels]] \n\t" | 973 "pld [%[pixels]] \n\t" |
974 "mov r12, #2 \n\t" | 974 "mov r12, #2 \n\t" |
975 "pld [%[pixels], #32] \n\t" | 975 "pld [%[pixels], #32] \n\t" |