comparison gcc/regmove.c @ 63:b7f97abdc517 gcc-4.6-20100522

update gcc from gcc-4.5.0 to gcc-4.6
author ryoma <e075725@ie.u-ryukyu.ac.jp>
date Mon, 24 May 2010 12:47:05 +0900
parents 77e2b8dfacca
children f6334be47118
comparison
equal deleted inserted replaced
56:3c8a44c06a95 63:b7f97abdc517
25 25
26 #include "config.h" 26 #include "config.h"
27 #include "system.h" 27 #include "system.h"
28 #include "coretypes.h" 28 #include "coretypes.h"
29 #include "tm.h" 29 #include "tm.h"
30 #include "rtl.h" /* stdio.h must precede rtl.h for FFS. */ 30 #include "rtl.h"
31 #include "tm_p.h" 31 #include "tm_p.h"
32 #include "insn-config.h" 32 #include "insn-config.h"
33 #include "recog.h" 33 #include "recog.h"
34 #include "target.h"
34 #include "output.h" 35 #include "output.h"
35 #include "regs.h" 36 #include "regs.h"
36 #include "hard-reg-set.h" 37 #include "hard-reg-set.h"
37 #include "flags.h" 38 #include "flags.h"
38 #include "function.h" 39 #include "function.h"
237 int dregno = REGNO (dest); 238 int dregno = REGNO (dest);
238 basic_block bb = BLOCK_FOR_INSN (insn); 239 basic_block bb = BLOCK_FOR_INSN (insn);
239 240
240 /* We don't want to mess with hard regs if register classes are small. */ 241 /* We don't want to mess with hard regs if register classes are small. */
241 if (sregno == dregno 242 if (sregno == dregno
242 || (SMALL_REGISTER_CLASSES 243 || (targetm.small_register_classes_for_mode_p (GET_MODE (src))
243 && (sregno < FIRST_PSEUDO_REGISTER 244 && (sregno < FIRST_PSEUDO_REGISTER
244 || dregno < FIRST_PSEUDO_REGISTER)) 245 || dregno < FIRST_PSEUDO_REGISTER))
245 /* We don't see all updates to SP if they are in an auto-inc memory 246 /* We don't see all updates to SP if they are in an auto-inc memory
246 reference, so we must disallow this optimization on them. */ 247 reference, so we must disallow this optimization on them. */
247 || sregno == STACK_POINTER_REGNUM || dregno == STACK_POINTER_REGNUM) 248 || sregno == STACK_POINTER_REGNUM || dregno == STACK_POINTER_REGNUM)