[gcc] Remove few changes from machine-independent part.

This change restores explow.c and reload.c back to their original state.

This change can affect the performance, as it may limit the number of cases when lea instruction is generated.
However, the change is the "right thing" to do. Lea problems, if any, should be solved in i386-specific code.

Review URL: http://codereview.chromium.org/2825071
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 4f1c5e1..d061298 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -8965,6 +8965,9 @@
 {
   struct ix86_address parts;
 
+  if (GET_MODE (op) != mode)
+    return 0;
+
   /* 1 and -1 are valid decompose address results for lea operand.  */
   if (ix86_lea_decompose_address (op, &parts) == 0)
     return 0;      
diff --git a/gcc/explow.c b/gcc/explow.c
index 8c0f3f7..c9bf675 100644
--- a/gcc/explow.c
+++ b/gcc/explow.c
@@ -613,13 +613,7 @@
 rtx
 copy_to_mode_reg (enum machine_mode mode, rtx x)
 {
-  rtx temp;
-
-  /* It's safe to move SImode register instead of DImode register in x86-64 */
-  if (mode == DImode && GET_MODE (x) == SImode && GET_CODE(x) == CONST)
-    mode = SImode;
-
-  temp = gen_reg_rtx (mode);
+  rtx temp = gen_reg_rtx (mode);
 
   /* If not an operand, must be an address with PLUS and MULT so
      do the computation.  */
diff --git a/gcc/reload.c b/gcc/reload.c
index 673dca9..d188233 100644
--- a/gcc/reload.c
+++ b/gcc/reload.c
@@ -4692,9 +4692,6 @@
 	  && reg_equiv_constant[regno] != 0)
 	{
 	  tem =
-	    GET_MODE (x) == GET_MODE(reg_equiv_constant[regno]) ?
-		reg_equiv_constant[regno]
-	    :
 	    simplify_gen_subreg (GET_MODE (x), reg_equiv_constant[regno],
 				 GET_MODE (SUBREG_REG (x)), SUBREG_BYTE (x));
 	  gcc_assert (tem);