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 --- |