Deleted Added
full compact
i386.md (146906) i386.md (161660)
1;; GCC machine description for IA-32 and x86-64.
2;; Copyright (C) 1988, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
3;; 2001, 2002, 2003, 2004
4;; Free Software Foundation, Inc.
5;; Mostly by William Schelter.
6;; x86_64 support added by Jan Hubicka
7;;
8;; This file is part of GCC.

--- 1836 unchanged lines hidden (view full) ---

1845 operands[1] = gen_lowpart (DImode, operands[2]);
1846 operands[2] = gen_rtx_MEM (SImode, gen_rtx_PLUS (DImode, stack_pointer_rtx,
1847 GEN_INT (4)));
1848 ")
1849
1850(define_split
1851 [(set (match_operand:DI 0 "push_operand" "")
1852 (match_operand:DI 1 "immediate_operand" ""))]
1;; GCC machine description for IA-32 and x86-64.
2;; Copyright (C) 1988, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
3;; 2001, 2002, 2003, 2004
4;; Free Software Foundation, Inc.
5;; Mostly by William Schelter.
6;; x86_64 support added by Jan Hubicka
7;;
8;; This file is part of GCC.

--- 1836 unchanged lines hidden (view full) ---

1845 operands[1] = gen_lowpart (DImode, operands[2]);
1846 operands[2] = gen_rtx_MEM (SImode, gen_rtx_PLUS (DImode, stack_pointer_rtx,
1847 GEN_INT (4)));
1848 ")
1849
1850(define_split
1851 [(set (match_operand:DI 0 "push_operand" "")
1852 (match_operand:DI 1 "immediate_operand" ""))]
1853 "TARGET_64BIT && (flow2_completed || (reload_completed && !flag_peephole2))
1853 "TARGET_64BIT && ((optimize > 0 && flag_peephole2)
1854 ? flow2_completed : reload_completed)
1854 && !symbolic_operand (operands[1], DImode)
1855 && !x86_64_immediate_operand (operands[1], DImode)"
1856 [(set (match_dup 0) (match_dup 1))
1857 (set (match_dup 2) (match_dup 3))]
1858 "split_di (operands + 1, 1, operands + 2, operands + 3);
1859 operands[1] = gen_lowpart (DImode, operands[2]);
1860 operands[2] = gen_rtx_MEM (SImode, gen_rtx_PLUS (DImode, stack_pointer_rtx,
1861 GEN_INT (4)));

--- 238 unchanged lines hidden (view full) ---

2100 && !x86_64_immediate_operand (operands[1], DImode) && 1"
2101 [(set (match_dup 2) (match_dup 3))
2102 (set (match_dup 4) (match_dup 5))]
2103 "split_di (operands, 2, operands + 2, operands + 4);")
2104
2105(define_split
2106 [(set (match_operand:DI 0 "memory_operand" "")
2107 (match_operand:DI 1 "immediate_operand" ""))]
1855 && !symbolic_operand (operands[1], DImode)
1856 && !x86_64_immediate_operand (operands[1], DImode)"
1857 [(set (match_dup 0) (match_dup 1))
1858 (set (match_dup 2) (match_dup 3))]
1859 "split_di (operands + 1, 1, operands + 2, operands + 3);
1860 operands[1] = gen_lowpart (DImode, operands[2]);
1861 operands[2] = gen_rtx_MEM (SImode, gen_rtx_PLUS (DImode, stack_pointer_rtx,
1862 GEN_INT (4)));

--- 238 unchanged lines hidden (view full) ---

2101 && !x86_64_immediate_operand (operands[1], DImode) && 1"
2102 [(set (match_dup 2) (match_dup 3))
2103 (set (match_dup 4) (match_dup 5))]
2104 "split_di (operands, 2, operands + 2, operands + 4);")
2105
2106(define_split
2107 [(set (match_operand:DI 0 "memory_operand" "")
2108 (match_operand:DI 1 "immediate_operand" ""))]
2108 "TARGET_64BIT && (flow2_completed || (reload_completed && !flag_peephole2))
2109 "TARGET_64BIT && ((optimize > 0 && flag_peephole2)
2110 ? flow2_completed : reload_completed)
2109 && !symbolic_operand (operands[1], DImode)
2110 && !x86_64_immediate_operand (operands[1], DImode)"
2111 [(set (match_dup 2) (match_dup 3))
2112 (set (match_dup 4) (match_dup 5))]
2113 "split_di (operands, 2, operands + 2, operands + 4);")
2114
2115(define_insn "*swapdi_rex64"
2116 [(set (match_operand:DI 0 "register_operand" "+r")

--- 50 unchanged lines hidden (view full) ---

2167 [(set_attr "type" "multi,push,multi")
2168 (set_attr "mode" "SF,DI,SF")])
2169
2170(define_split
2171 [(set (match_operand:SF 0 "push_operand" "")
2172 (match_operand:SF 1 "memory_operand" ""))]
2173 "reload_completed
2174 && GET_CODE (operands[1]) == MEM
2111 && !symbolic_operand (operands[1], DImode)
2112 && !x86_64_immediate_operand (operands[1], DImode)"
2113 [(set (match_dup 2) (match_dup 3))
2114 (set (match_dup 4) (match_dup 5))]
2115 "split_di (operands, 2, operands + 2, operands + 4);")
2116
2117(define_insn "*swapdi_rex64"
2118 [(set (match_operand:DI 0 "register_operand" "+r")

--- 50 unchanged lines hidden (view full) ---

2169 [(set_attr "type" "multi,push,multi")
2170 (set_attr "mode" "SF,DI,SF")])
2171
2172(define_split
2173 [(set (match_operand:SF 0 "push_operand" "")
2174 (match_operand:SF 1 "memory_operand" ""))]
2175 "reload_completed
2176 && GET_CODE (operands[1]) == MEM
2175 && GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF
2176 && CONSTANT_POOL_ADDRESS_P (XEXP (operands[1], 0))"
2177 && constant_pool_reference_p (operands[1])"
2177 [(set (match_dup 0)
2178 (match_dup 1))]
2178 [(set (match_dup 0)
2179 (match_dup 1))]
2179 "operands[1] = get_pool_constant (XEXP (operands[1], 0));")
2180 "operands[1] = avoid_constant_pool_reference (operands[1]);")
2180
2181
2182;; %%% Kill this when call knows how to work this out.
2183(define_split
2184 [(set (match_operand:SF 0 "push_operand" "")
2185 (match_operand:SF 1 "any_fp_register_operand" ""))]
2186 "!TARGET_64BIT"
2187 [(set (reg:SI 7) (plus:SI (reg:SI 7) (const_int -4)))

--- 696 unchanged lines hidden (view full) ---

2884
2885(define_split
2886 [(set (match_operand 0 "register_operand" "")
2887 (match_operand 1 "memory_operand" ""))]
2888 "reload_completed
2889 && GET_CODE (operands[1]) == MEM
2890 && (GET_MODE (operands[0]) == XFmode
2891 || GET_MODE (operands[0]) == SFmode || GET_MODE (operands[0]) == DFmode)
2181
2182
2183;; %%% Kill this when call knows how to work this out.
2184(define_split
2185 [(set (match_operand:SF 0 "push_operand" "")
2186 (match_operand:SF 1 "any_fp_register_operand" ""))]
2187 "!TARGET_64BIT"
2188 [(set (reg:SI 7) (plus:SI (reg:SI 7) (const_int -4)))

--- 696 unchanged lines hidden (view full) ---

2885
2886(define_split
2887 [(set (match_operand 0 "register_operand" "")
2888 (match_operand 1 "memory_operand" ""))]
2889 "reload_completed
2890 && GET_CODE (operands[1]) == MEM
2891 && (GET_MODE (operands[0]) == XFmode
2892 || GET_MODE (operands[0]) == SFmode || GET_MODE (operands[0]) == DFmode)
2892 && GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF
2893 && CONSTANT_POOL_ADDRESS_P (XEXP (operands[1], 0))"
2893 && constant_pool_reference_p (operands[1])"
2894 [(set (match_dup 0) (match_dup 1))]
2895{
2894 [(set (match_dup 0) (match_dup 1))]
2895{
2896 rtx c = get_pool_constant (XEXP (operands[1], 0));
2896 rtx c = avoid_constant_pool_reference (operands[1]);
2897 rtx r = operands[0];
2898
2899 if (GET_CODE (r) == SUBREG)
2900 r = SUBREG_REG (r);
2901
2902 if (SSE_REG_P (r))
2903 {
2904 if (!standard_sse_constant_p (c))

--- 20117 unchanged lines hidden ---
2897 rtx r = operands[0];
2898
2899 if (GET_CODE (r) == SUBREG)
2900 r = SUBREG_REG (r);
2901
2902 if (SSE_REG_P (r))
2903 {
2904 if (!standard_sse_constant_p (c))

--- 20117 unchanged lines hidden ---