| 409 | /*----------------------------------------------------------------------------*/ |
| 410 | |
| 411 | void sgiSwitchData(ILubyte *Data, ILuint SizeOfData) |
| 412 | { |
| 413 | ILubyte Temp; |
| 414 | ILuint i; |
| 415 | #ifdef ALTIVEC_GCC |
| 416 | i = 0; |
| 417 | union { |
| 418 | vector unsigned char vec; |
| 419 | vector unsigned int load; |
| 420 | }inversion_vector; |
| 421 | |
| 422 | inversion_vector.load = (vector unsigned int)\ |
| 423 | {0x01000302,0x05040706,0x09080B0A,0x0D0C0F0E}; |
| 424 | while( i <= SizeOfData-16 ) { |
| 425 | vector unsigned char data = vec_ld(i,Data); |
| 426 | vec_perm(data,data,inversion_vector.vec); |
| 427 | vec_st(data,i,Data); |
| 428 | i+=16; |
| 429 | } |
| 430 | SizeOfData -= i; |
| 431 | #endif |
| 432 | for (i = 0; i < SizeOfData; i += 2) { |
| 433 | Temp = Data[i]; |
| 434 | Data[i] = Data[i+1]; |
| 435 | Data[i+1] = Temp; |
| 436 | } |
| 437 | return; |
| 438 | } |
| 439 | |
| 440 | /*----------------------------------------------------------------------------*/ |
| 441 | |