%PDF- %PDF-
Direktori : /backups/router/usr/local/lib/perl5/site_perl/mach/5.36/sys/ |
Current File : //backups/router/usr/local/lib/perl5/site_perl/mach/5.36/sys/bitcount.ph |
require '_h2ph_pre.ph'; no warnings qw(redefine misc); unless(defined(&_SYS_BITCOUNT_H_)) { eval 'sub _SYS_BITCOUNT_H_ () {1;}' unless defined(&_SYS_BITCOUNT_H_); require 'sys/_types.ph'; if(defined(&__POPCNT__)) { eval 'sub __bitcount64 { my($x) = @_; eval q( &__builtin_popcountll(( &__uint64_t)($x))); }' unless defined(&__bitcount64); eval 'sub __bitcount32 { my($x) = @_; eval q( &__builtin_popcount(( &__uint32_t)($x))); }' unless defined(&__bitcount32); eval 'sub __bitcount16 { my($x) = @_; eval q( &__builtin_popcount(( &__uint16_t)($x))); }' unless defined(&__bitcount16); eval 'sub __bitcountl { my($x) = @_; eval q( &__builtin_popcountl(($x))); }' unless defined(&__bitcountl); eval 'sub __bitcount { my($x) = @_; eval q( &__builtin_popcount(($x))); }' unless defined(&__bitcount); } else { eval 'sub __bitcount32 { my($_x) = @_; eval q({ $_x = ($_x & 0x55555555) + (($_x & 0xaaaaaaaa) >> 1); $_x = ($_x & 0x33333333) + (($_x & 0xcccccccc) >> 2); $_x = ($_x + ($_x >> 4)) & 0xf0f0f0f; $_x = ($_x + ($_x >> 8)); $_x = ($_x + ($_x >> 16)) & 0xff; ($_x); }); }' unless defined(&__bitcount32); if(defined(&__LP64__)) { eval 'sub __bitcount64 { my($_x) = @_; eval q({ $_x = ($_x & 0x5555555555555555) + (($_x & 0xaaaaaaaaaaaaaaaa) >> 1); $_x = ($_x & 0x3333333333333333) + (($_x & 0xcccccccccccccccc) >> 2); $_x = ($_x + ($_x >> 4)) & 0xf0f0f0f0f0f0f0f; $_x = ($_x + ($_x >> 8)); $_x = ($_x + ($_x >> 16)); $_x = ($_x + ($_x >> 32)) & 0xff; ($_x); }); }' unless defined(&__bitcount64); eval 'sub __bitcountl { my($x) = @_; eval q( &__bitcount64(($x))); }' unless defined(&__bitcountl); } else { eval 'sub __bitcount64 { my($_x) = @_; eval q({ ( &__bitcount32($_x >> 32) + &__bitcount32($_x)); }); }' unless defined(&__bitcount64); eval 'sub __bitcountl { my($x) = @_; eval q( &__bitcount32(($x))); }' unless defined(&__bitcountl); } eval 'sub __bitcount { my($x) = @_; eval q( &__bitcount32(($x))); }' unless defined(&__bitcount); } } 1;