• philhofer's avatar
    cmd/compile: add support for arm64 bit-test instructions · c59b4959
    philhofer authored
    Add support for generating TBZ/TBNZ instructions.
    
    The bit-test-and-branch pattern shows up in a number of
    important places, including the runtime (gc bitmaps).
    
    Before this change, there were 3 TB[N]?Z instructions in the Go tool,
    all of which were in hand-written assembly. After this change, there
    are 285. Also, the go1 benchmark binary gets about 4.5kB smaller.
    
    Fixes #21361
    
    Change-Id: I170c138b852754b9b8df149966ca5e62e6dfa771
    Reviewed-on: https://go-review.googlesource.com/54470
    Run-TryBot: Philip Hofer <phofer@umich.edu>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarCherry Zhang <cherryyz@google.com>
    c59b4959
Name
Last commit
Last update
..
gen Loading commit data...
TODO Loading commit data...
block.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...
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...
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...
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...
rewrite_test.go Loading commit data...
rewritedec.go Loading commit data...
rewritedec64.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...
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...
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...