go/src/cmd/compile/internal/ssa
Keith Randall 8dc04cbedc cmd/compile: enforce 32-bit restrictions on ops
Most 64-bit x86 ops can only take a signed 32-bit constant.
Clean up our rewrite rules to enforce this restriction.

Modify the assembler to fail if the offset does not fit
in the instruction.

That last check triggers a few times on weird testing code.
Suppress those errors if the compiler itself generated errors.

Fixes #14862

Change-Id: I76559af035b38483b1e59621a8029fc66b3a5d1e
Reviewed-on: https://go-review.googlesource.com/20815
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
2016-03-20 00:12:47 +00:00
..
gen cmd/compile: enforce 32-bit restrictions on ops 2016-03-20 00:12:47 +00:00
TODO cmd/compile: modify regalloc/stackalloc to use the cmd line debug args 2016-03-11 01:35:12 +00:00
block.go cmd/compile: keep value use counts in SSA 2016-03-17 04:20:02 +00:00
check.go cmd/compile: keep value use counts in SSA 2016-03-17 04:20:02 +00:00
compile.go cmd/compile: get gcflags to bootstrap; ssa debug opts for "all" 2016-03-18 01:04:47 +00:00
config.go cmd/compile: change the type of ssa Warnl line number 2016-03-14 11:04:40 +00:00
copyelim.go cmd/compile: keep value use counts in SSA 2016-03-17 04:20:02 +00:00
critical.go cmd/compile: perform minimal phi elimination during critical 2016-03-18 15:35:49 +00:00
cse.go cmd/compile: keep value use counts in SSA 2016-03-17 04:20:02 +00:00
cse_test.go [dev.ssa] cmd/compile: add a zero arg cse pass 2016-02-22 13:06:18 +00:00
deadcode.go cmd/compile: keep value use counts in SSA 2016-03-17 04:20:02 +00:00
deadcode_test.go [dev.ssa] cmd/compile: add aux typing, flags to ops 2016-02-02 02:55:13 +00:00
deadstore.go cmd/compile: rename ssa.Type's Elem method to ElemType 2016-03-10 23:02:33 +00:00
deadstore_test.go all: single space after period. 2016-03-02 00:13:47 +00:00
decompose.go cmd/compile: use int for field index 2016-03-15 19:56:43 +00:00
dom.go all: single space after period. 2016-03-02 00:13:47 +00:00
dom_test.go [dev.ssa] cmd/compile: add aux typing, flags to ops 2016-02-02 02:55:13 +00:00
export_test.go cmd/compile: change the type of ssa Warnl line number 2016-03-14 11:04:40 +00:00
flagalloc.go cmd/compile: keep value use counts in SSA 2016-03-17 04:20:02 +00:00
func.go cmd/compile: keep value use counts in SSA 2016-03-17 04:20:02 +00:00
func_test.go cmd/compile: keep value use counts in SSA 2016-03-17 04:20:02 +00:00
fuse.go cmd/compile: keep value use counts in SSA 2016-03-17 04:20:02 +00:00
fuse_test.go [dev.ssa] cmd/compile: add max arg length to opcodes 2016-02-28 14:50:19 +00:00
html.go
id.go [dev.ssa] cmd/compile: preallocate small-numbered values and blocks 2016-01-28 22:52:42 +00:00
layout.go [dev.ssa] cmd/compile: reuse sparse sets across compiler passes 2016-01-30 13:57:39 +00:00
likelyadjust.go cmd/compile: use loop information in regalloc 2016-03-18 01:23:29 +00:00
location.go
lower.go
magic.go all: single space after period. 2016-03-02 00:13:47 +00:00
nilcheck.go cmd/compile: keep value use counts in SSA 2016-03-17 04:20:02 +00:00
nilcheck_test.go [dev.ssa] cmd/compile: add max arg length to opcodes 2016-02-28 14:50:19 +00:00
op.go cmd/compile: const folding for float32/64 2016-03-13 13:32:41 +00:00
opGen.go cmd/compile: const folding for float32/64 2016-03-13 13:32:41 +00:00
opt.go cmd/compile/internal/ssa: lower builtins much later 2016-03-09 11:08:59 +00:00
passbm_test.go [dev.ssa] cmd/compile: add aux typing, flags to ops 2016-02-02 02:55:13 +00:00
phielim.go cmd/compile: add logging to critical and phielim 2016-03-15 22:53:12 +00:00
phiopt.go cmd/compile: change the type of ssa Warnl line number 2016-03-14 11:04:40 +00:00
print.go cmd/compile: make compilation deterministic, fixes toolstash 2016-03-03 18:03:45 +00:00
prove.go cmd/compile: keep value use counts in SSA 2016-03-17 04:20:02 +00:00
regalloc.go cmd/compile: use loop information in regalloc 2016-03-18 01:23:29 +00:00
regalloc_test.go [dev.ssa] cmd/compile: add aux typing, flags to ops 2016-02-02 02:55:13 +00:00
rewrite.go cmd/compile: enforce 32-bit restrictions on ops 2016-03-20 00:12:47 +00:00
rewriteAMD64.go cmd/compile: enforce 32-bit restrictions on ops 2016-03-20 00:12:47 +00:00
rewrite_test.go [dev.ssa] cmd/compiler: rewrite AND x const as a shift if possible 2016-02-16 16:53:16 +00:00
rewritedec.go cmd/compile/internal/ssa: lower builtins much later 2016-03-09 11:08:59 +00:00
rewritegeneric.go cmd/compile: keep value use counts in SSA 2016-03-17 04:20:02 +00:00
schedule.go cmd/compile: Tinkering with schedule for debug and regalloc 2016-03-08 02:32:20 +00:00
schedule_test.go [dev.ssa] cmd/compile: add aux typing, flags to ops 2016-02-02 02:55:13 +00:00
shift_test.go [dev.ssa] cmd/compile: add aux typing, flags to ops 2016-02-02 02:55:13 +00:00
shortcircuit.go cmd/compile: keep value use counts in SSA 2016-03-17 04:20:02 +00:00
shortcircuit_test.go [dev.ssa] cmd/compile: add aux typing, flags to ops 2016-02-02 02:55:13 +00:00
sizeof_test.go cmd/compile: keep value use counts in SSA 2016-03-17 04:20:02 +00:00
sparsemap.go
sparseset.go [dev.ssa] cmd/compile: reuse sparse sets across compiler passes 2016-01-30 13:57:39 +00:00
sparsetree.go all: single space after period. 2016-03-02 00:13:47 +00:00
stackalloc.go cmd/compile: modify regalloc/stackalloc to use the cmd line debug args 2016-03-11 01:35:12 +00:00
tighten.go [dev.ssa] cmd/compile: reduce line number churn in generated code 2016-02-24 16:57:36 +00:00
trim.go [dev.ssa] cmd/compile: short-circuit empty blocks 2016-01-22 22:12:12 +00:00
type.go cmd/compile: use int for field index 2016-03-15 19:56:43 +00:00
type_test.go cmd/compile: use int for field index 2016-03-15 19:56:43 +00:00
value.go cmd/compile: keep value use counts in SSA 2016-03-17 04:20:02 +00:00
zcse.go cmd/compile: keep value use counts in SSA 2016-03-17 04:20:02 +00:00