summaryrefslogtreecommitdiff
path: root/libgo/go/runtime/runtime1.go
diff options
context:
space:
mode:
Diffstat (limited to 'libgo/go/runtime/runtime1.go')
-rw-r--r--libgo/go/runtime/runtime1.go25
1 files changed, 6 insertions, 19 deletions
diff --git a/libgo/go/runtime/runtime1.go b/libgo/go/runtime/runtime1.go
index 050f180c407..4e771629b0e 100644
--- a/libgo/go/runtime/runtime1.go
+++ b/libgo/go/runtime/runtime1.go
@@ -157,7 +157,7 @@ func check() {
h uint64
i, i1 float32
j, j1 float64
- k, k1 unsafe.Pointer
+ k unsafe.Pointer
l *uint16
m [4]byte
)
@@ -246,21 +246,6 @@ func check() {
throw("cas6")
}
- k = unsafe.Pointer(uintptr(0xfedcb123))
- if sys.PtrSize == 8 {
- k = unsafe.Pointer(uintptr(k) << 10)
- }
- if casp(&k, nil, nil) {
- throw("casp1")
- }
- k1 = add(k, 1)
- if !casp(&k, k, k1) {
- throw("casp2")
- }
- if k != k1 {
- throw("casp3")
- }
-
m = [4]byte{1, 1, 1, 1}
atomic.Or8(&m[1], 0xf0)
if m[0] != 1 || m[1] != 0xf1 || m[2] != 1 || m[3] != 1 {
@@ -332,10 +317,10 @@ var debug struct {
gccheckmark int32
gcpacertrace int32
gcshrinkstackoff int32
- gcrescanstacks int32
gcstoptheworld int32
gctrace int32
invalidptr int32
+ madvdontneed int32 // for Linux; issue 28466
sbrk int32
scavenge int32
scheddetail int32
@@ -350,10 +335,10 @@ var dbgvars = []dbgVar{
{"gccheckmark", &debug.gccheckmark},
{"gcpacertrace", &debug.gcpacertrace},
{"gcshrinkstackoff", &debug.gcshrinkstackoff},
- {"gcrescanstacks", &debug.gcrescanstacks},
{"gcstoptheworld", &debug.gcstoptheworld},
{"gctrace", &debug.gctrace},
{"invalidptr", &debug.invalidptr},
+ {"madvdontneed", &debug.madvdontneed},
{"sbrk", &debug.sbrk},
{"scavenge", &debug.scavenge},
{"scheddetail", &debug.scheddetail},
@@ -454,7 +439,9 @@ func timediv(v int64, div int32, rem *int32) int32 {
for bit := 30; bit >= 0; bit-- {
if v >= int64(div)<<uint(bit) {
v = v - (int64(div) << uint(bit))
- res += 1 << uint(bit)
+ // Before this for loop, res was 0, thus all these
+ // power of 2 increments are now just bitsets.
+ res |= 1 << uint(bit)
}
}
if v >= int64(div) {