• Clément Chigot's avatar
    cmd/compile: fix nilcheck for AIX · 9fe9853a
    Clément Chigot authored
    This commit adapts compile tool to create correct nilchecks for AIX.
    
    AIX allows to load a nil pointer. Therefore, the default nilcheck
    which issues a load must be replaced by a CMP instruction followed by a
    store at 0x0 if the value is nil. The store will trigger a SIGSEGV as on
    others OS.
    
    The nilcheck algorithm must be adapted to do not remove nilcheck if it's
    only a read. Stores are detected with v.Type.IsMemory().
    
    Tests related to nilptr must be adapted to the previous changements.
    nilptr.go cannot be used as it's because the AIX address space starts at
    1<<32.
    
    Change-Id: I9f5aaf0b7e185d736a9b119c0ed2fe4e5bd1e7af
    Reviewed-on: https://go-review.googlesource.com/c/144538
    Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarKeith Randall <khr@golang.org>
    9fe9853a
Name
Last commit
Last update
..
gen Loading commit data...
testdata Loading commit data...
README.md Loading commit data...
TODO Loading commit data...
biasedsparsemap.go Loading commit data...
block.go Loading commit data...
branchelim.go Loading commit data...
branchelim_test.go Loading commit data...
cache.go Loading commit data...
check.go Loading commit data...
checkbce.go Loading commit data...
compile.go Loading commit data...
config.go Loading commit data...
copyelim.go Loading commit data...
copyelim_test.go Loading commit data...
critical.go Loading commit data...
cse.go Loading commit data...
cse_test.go Loading commit data...
deadcode.go Loading commit data...
deadcode_test.go Loading commit data...
deadstore.go Loading commit data...
deadstore_test.go Loading commit data...
debug.go Loading commit data...
debug_test.go Loading commit data...
decompose.go Loading commit data...
dom.go Loading commit data...
dom_test.go Loading commit data...
export_test.go Loading commit data...
flagalloc.go Loading commit data...
func.go Loading commit data...
func_test.go Loading commit data...
fuse.go Loading commit data...
fuse_test.go Loading commit data...
html.go Loading commit data...
id.go Loading commit data...
layout.go Loading commit data...
lca.go Loading commit data...
lca_test.go Loading commit data...
likelyadjust.go Loading commit data...
location.go Loading commit data...
loop_test.go Loading commit data...
loopbce.go Loading commit data...
loopreschedchecks.go Loading commit data...
looprotate.go Loading commit data...
lower.go Loading commit data...
magic.go Loading commit data...
magic_test.go Loading commit data...
nilcheck.go Loading commit data...
nilcheck_test.go Loading commit data...
numberlines.go Loading commit data...
op.go Loading commit data...
opGen.go Loading commit data...
opt.go Loading commit data...
passbm_test.go Loading commit data...
phielim.go Loading commit data...
phiopt.go Loading commit data...
poset.go Loading commit data...
poset_test.go Loading commit data...
print.go Loading commit data...
prove.go Loading commit data...
redblack32.go Loading commit data...
redblack32_test.go Loading commit data...
regalloc.go Loading commit data...
regalloc_test.go Loading commit data...
rewrite.go Loading commit data...
rewrite386.go Loading commit data...
rewriteAMD64.go Loading commit data...
rewriteARM.go Loading commit data...
rewriteARM64.go Loading commit data...
rewriteMIPS.go Loading commit data...
rewriteMIPS64.go Loading commit data...
rewritePPC64.go Loading commit data...
rewriteS390X.go Loading commit data...
rewriteWasm.go Loading commit data...
rewrite_test.go Loading commit data...
rewritedec.go Loading commit data...
rewritedec64.go Loading commit data...
rewritedecArgs.go Loading commit data...
rewritegeneric.go Loading commit data...
schedule.go Loading commit data...
schedule_test.go Loading commit data...
shift_test.go Loading commit data...
shortcircuit.go Loading commit data...
shortcircuit_test.go Loading commit data...
sizeof_test.go Loading commit data...
softfloat.go Loading commit data...
sparsemap.go Loading commit data...
sparseset.go Loading commit data...
sparsetree.go Loading commit data...
sparsetreemap.go Loading commit data...
stackalloc.go Loading commit data...
stackframe.go Loading commit data...
stmtlines_test.go Loading commit data...
tighten.go Loading commit data...
trim.go Loading commit data...
value.go Loading commit data...
writebarrier.go Loading commit data...
writebarrier_test.go Loading commit data...
zcse.go Loading commit data...
zeroextension_test.go Loading commit data...