Use x86_64_general_operand in a bunch more SI mode insn patterns

The x86_64_general_operand predicate applies some important constraints,
such as that a symbol_ref cannot be an immediate operand under -fPIC.
With the ILP32 model, these constraints matter for SI mode instructions
(rather than just DI mode) too, since address values are SI mode.

Previously the x86_64_general_operand predicate was used inconsistently,
e.g. on add patterns but not on sub and mul patterns.  This fix changes
all the relevant patterns to use x86_64_general_operand in place of
vanilla general_operand.  This is consistent with how the -mx32 support
handles this issue in the upstream trunk code.

BUG= https://code.google.com/p/nativeclient/issues/detail?id=3549
TEST= toolchain trybots
R=khim@chromium.org

Review URL: https://codereview.chromium.org/20820002
1 file changed