]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: make _MaxMem an untyped constant
authorAustin Clements <austin@google.com>
Fri, 13 Jan 2017 20:32:53 +0000 (15:32 -0500)
committerAustin Clements <austin@google.com>
Tue, 7 Feb 2017 18:39:12 +0000 (18:39 +0000)
Currently _MaxMem is a uintptr, which is going to complicate some
further changes. Make it untyped so we'll be able to do untyped math
on it before truncating it to a uintptr.

The runtime assembly is identical before and after this change on
{linux,windows}/{amd64,386}.

Updates #18651.

Change-Id: I0f64511faa9e0aa25179a556ab9f185ebf8c9cf8
Reviewed-on: https://go-review.googlesource.com/35251
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rick Hudson <rlh@golang.org>
Reviewed-by: David Crawshaw <crawshaw@golang.org>
src/runtime/malloc.go

index da39dac5102923da939df0b637238aa42c7793d0..37e6b4b2efb5ad5a3ab184fee76feb1d437a90b0 100644 (file)
@@ -148,7 +148,11 @@ const (
        _MHeapMap_TotalBits = (_64bit*sys.GoosWindows)*35 + (_64bit*(1-sys.GoosWindows)*(1-sys.GoosDarwin*sys.GoarchArm64))*39 + sys.GoosDarwin*sys.GoarchArm64*31 + (1-_64bit)*(32-(sys.GoarchMips+sys.GoarchMipsle))
        _MHeapMap_Bits      = _MHeapMap_TotalBits - _PageShift
 
-       _MaxMem = uintptr(1<<_MHeapMap_TotalBits - 1)
+       // _MaxMem is the maximum heap arena size minus 1.
+       //
+       // On 32-bit, this is also the maximum heap pointer value,
+       // since the arena starts at address 0.
+       _MaxMem = 1<<_MHeapMap_TotalBits - 1
 
        // Max number of threads to run garbage collection.
        // 2, 3, and 4 are all plausible maximums depending