File tree 3 files changed +30
-1
lines changed 3 files changed +30
-1
lines changed Original file line number Diff line number Diff line change
1
+ // Copyright 2015 The Go Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style
3
+ // license that can be found in the LICENSE file.
4
+
5
+ // +build gccgo
6
+
7
+ package intsets
8
+
9
+ func popcount (x word ) int
Original file line number Diff line number Diff line change
1
+ // Copyright 2015 The Go Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style
3
+ // license that can be found in the LICENSE file.
4
+
5
+ // +build gccgo
6
+
7
+ #include <errno.h>
8
+ #include <stdint.h>
9
+ #include <unistd.h>
10
+
11
+ #define _STRINGIFY2_ (x ) #x
12
+ #define _STRINGIFY_ (x ) _STRINGIFY2_(x)
13
+ #define GOSYM_PREFIX _STRINGIFY_(__USER_LABEL_PREFIX__)
14
+
15
+ extern intptr_t popcount (uintptr_t x ) __asm__(GOSYM_PREFIX GOPKGPATH ".popcount" );
16
+
17
+ intptr_t popcount (uintptr_t x ) {
18
+ return __builtin_popcountl ((unsigned long )(x ));
19
+ }
Original file line number Diff line number Diff line change 2
2
// Use of this source code is governed by a BSD-style
3
3
// license that can be found in the LICENSE file.
4
4
5
- // +build !amd64 appengine gccgo
5
+ // +build !amd64 appengine
6
+ // +build !gccgo
6
7
7
8
package intsets
8
9
You can’t perform that action at this time.
0 commit comments