%PDF- %PDF-
Direktori : /lib64/perl5/bits/ |
Current File : //lib64/perl5/bits/byteswap.ph |
require '_h2ph_pre.ph'; no warnings qw(redefine misc); if(!defined (&_BYTESWAP_H) && !defined (&_NETINET_IN_H) && !defined (&_ENDIAN_H)) { die("Never use <bits/byteswap.h> directly; include <byteswap.h> instead."); } unless(defined(&_BITS_BYTESWAP_H)) { eval 'sub _BITS_BYTESWAP_H () {1;}' unless defined(&_BITS_BYTESWAP_H); require 'features.ph'; require 'bits/types.ph'; require 'bits/wordsize.ph'; eval 'sub __bswap_constant_16 { my($x) = @_; eval q(( (((($x) >> 8) & 0xff) | ((($x) & 0xff) << 8)))); }' unless defined(&__bswap_constant_16); require 'bits/byteswap-16.ph'; eval 'sub __bswap_constant_32 { my($x) = @_; eval q((((($x) & 0xff000000) >> 24) | ((($x) & 0xff0000) >> 8) | ((($x) & 0xff00) << 8) | ((($x) & 0xff) << 24))); }' unless defined(&__bswap_constant_32); if(defined(&__GNUC__)) { if( &__GNUC_PREREQ (4, 3)) { eval 'sub __bswap_32 { my($__bsx) = @_; eval q({ &__builtin_bswap32 ($__bsx); }); }' unless defined(&__bswap_32); } elsif((defined(&__GNUC__) ? &__GNUC__ : undef) >= 2) { if((defined(&__WORDSIZE) ? &__WORDSIZE : undef) == 64|| (defined (&__i486__) || defined (&__pentium__) || defined (&__pentiumpro__) || defined (&__pentium4__) || defined (&__k8__) || defined (&__athlon__) || defined (&__k6__) || defined (&__nocona__) || defined (&__core2__) || defined (&__geode__) || defined (&__amdfam10__))) { eval 'sub __bswap_32 { my($x) = @_; eval q(\\"(assembly code)\\"); }' unless defined(&__bswap_32); } else { eval 'sub __bswap_32 { my($x) = @_; eval q(\\"(assembly code)\\"); }' unless defined(&__bswap_32); } } else { eval 'sub __bswap_32 { my($x) = @_; eval q(( &__extension__ ({ \'unsigned int __x\' = ($x); &__bswap_constant_32 ( &__x); }))); }' unless defined(&__bswap_32); } } else { eval 'sub __bswap_32 { my($__bsx) = @_; eval q({ &__bswap_constant_32 ($__bsx); }); }' unless defined(&__bswap_32); } if( &__GNUC_PREREQ (2, 0)) { eval 'sub __bswap_constant_64 { my($x) = @_; eval q(( &__extension__ (((($x) & 0xff00000000000000) >> 56) | ((($x) & 0xff000000000000) >> 40) | ((($x) & 0xff0000000000) >> 24) | ((($x) & 0xff00000000) >> 8) | ((($x) & 0xff000000) << 8) | ((($x) & 0xff0000) << 24) | ((($x) & 0xff00) << 40) | ((($x) & 0xff) << 56)))); }' unless defined(&__bswap_constant_64); if( &__GNUC_PREREQ (4, 3)) { eval 'sub __bswap_64 { my($__bsx) = @_; eval q({ &__builtin_bswap64 ($__bsx); }); }' unless defined(&__bswap_64); } elsif((defined(&__WORDSIZE) ? &__WORDSIZE : undef) == 64) { eval 'sub __bswap_64 { my($x) = @_; eval q(\\"(assembly code)\\"); }' unless defined(&__bswap_64); } else { eval 'sub __bswap_64 { my($x) = @_; eval q(( &__extension__ ({ \'union union\' { &__extension__ &__uint64_t &__ll; \'unsigned int __l\'[2]; } &__w, &__r; &if ( &__builtin_constant_p ($x)) ($__r->{__ll}) = &__bswap_constant_64 ($x); &else { ($__w->{__ll}) = ($x); ($__r->{__l[0]}) = &__bswap_32 ( ($__w->{__l[1]})); ($__r->{__l[1]}) = &__bswap_32 ( ($__w->{__l[0]})); } ($__r->{__ll}); }))); }' unless defined(&__bswap_64); } } elsif((defined(&__GLIBC_HAVE_LONG_LONG) ? &__GLIBC_HAVE_LONG_LONG : undef)) { eval 'sub __bswap_constant_64 { my($x) = @_; eval q((((($x) & 0xff00000000000000) >> 56) | ((($x) & 0xff000000000000) >> 40) | ((($x) & 0xff0000000000) >> 24) | ((($x) & 0xff00000000) >> 8) | ((($x) & 0xff000000) << 8) | ((($x) & 0xff0000) << 24) | ((($x) & 0xff00) << 40) | ((($x) & 0xff) << 56))); }' unless defined(&__bswap_constant_64); eval 'sub __bswap_64 { my($__bsx) = @_; eval q({ &__bswap_constant_64 ($__bsx); }); }' unless defined(&__bswap_64); } } 1;