reload.c (103453) | reload.c (104764) |
---|---|
1/* Search an insn for pseudo regs that must be in hard regs and are not. 2 Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 3 1999, 2000, 2001, 2002 Free Software Foundation, Inc. 4 5This file is part of GCC. 6 7GCC is free software; you can redistribute it and/or modify it under 8the terms of the GNU General Public License as published by the Free --- 6 unchanged lines hidden (view full) --- 15for more details. 16 17You should have received a copy of the GNU General Public License 18along with GCC; see the file COPYING. If not, write to the Free 19Software Foundation, 59 Temple Place - Suite 330, Boston, MA 2002111-1307, USA. */ 21 22 | 1/* Search an insn for pseudo regs that must be in hard regs and are not. 2 Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 3 1999, 2000, 2001, 2002 Free Software Foundation, Inc. 4 5This file is part of GCC. 6 7GCC is free software; you can redistribute it and/or modify it under 8the terms of the GNU General Public License as published by the Free --- 6 unchanged lines hidden (view full) --- 15for more details. 16 17You should have received a copy of the GNU General Public License 18along with GCC; see the file COPYING. If not, write to the Free 19Software Foundation, 59 Temple Place - Suite 330, Boston, MA 2002111-1307, USA. */ 21 22 |
23/* $FreeBSD: head/contrib/gcc/reload.c 103453 2002-09-17 04:14:38Z kan $ */ | 23/* $FreeBSD: head/contrib/gcc/reload.c 104764 2002-10-10 04:50:29Z kan $ */ |
24 25 26/* This file contains subroutines used only from the file reload1.c. 27 It knows how to scan one insn for operands and values 28 that need to be copied into registers to make valid code. 29 It also finds other operands and values which are valid 30 but for which equivalent values in registers exist and 31 ought to be used instead. --- 1250 unchanged lines hidden (view full) --- 1282 = push_secondary_reload (0, out, opnum, optional, class, outmode, 1283 type, &secondary_out_icode); 1284#endif 1285 1286 /* We found no existing reload suitable for re-use. 1287 So add an additional reload. */ 1288 1289#ifdef SECONDARY_MEMORY_NEEDED | 24 25 26/* This file contains subroutines used only from the file reload1.c. 27 It knows how to scan one insn for operands and values 28 that need to be copied into registers to make valid code. 29 It also finds other operands and values which are valid 30 but for which equivalent values in registers exist and 31 ought to be used instead. --- 1250 unchanged lines hidden (view full) --- 1282 = push_secondary_reload (0, out, opnum, optional, class, outmode, 1283 type, &secondary_out_icode); 1284#endif 1285 1286 /* We found no existing reload suitable for re-use. 1287 So add an additional reload. */ 1288 1289#ifdef SECONDARY_MEMORY_NEEDED |
1290 /* If a memory location is needed for the copy, make one. */ 1291 if (in != 0 && GET_CODE (in) == REG 1292 && REGNO (in) < FIRST_PSEUDO_REGISTER 1293 && SECONDARY_MEMORY_NEEDED (REGNO_REG_CLASS (REGNO (in)), 1294 class, inmode)) 1295 get_secondary_mem (in, inmode, opnum, type); | 1290 { 1291 int regnum; 1292 1293 /* If a memory location is needed for the copy, make one. */ 1294 if (in != 0 1295 && ((regnum = true_regnum (in)) >= 0) 1296 && regnum < FIRST_PSEUDO_REGISTER 1297 && SECONDARY_MEMORY_NEEDED (REGNO_REG_CLASS (regnum), 1298 class, inmode)) 1299 get_secondary_mem (in, inmode, opnum, type); 1300 } |
1296#endif 1297 1298 i = n_reloads; 1299 rld[i].in = in; 1300 rld[i].out = out; 1301 rld[i].class = class; 1302 rld[i].inmode = inmode; 1303 rld[i].outmode = outmode; --- 9 unchanged lines hidden (view full) --- 1313 rld[i].secondary_out_reload = secondary_out_reload; 1314 rld[i].secondary_in_icode = secondary_in_icode; 1315 rld[i].secondary_out_icode = secondary_out_icode; 1316 rld[i].secondary_p = 0; 1317 1318 n_reloads++; 1319 1320#ifdef SECONDARY_MEMORY_NEEDED | 1301#endif 1302 1303 i = n_reloads; 1304 rld[i].in = in; 1305 rld[i].out = out; 1306 rld[i].class = class; 1307 rld[i].inmode = inmode; 1308 rld[i].outmode = outmode; --- 9 unchanged lines hidden (view full) --- 1318 rld[i].secondary_out_reload = secondary_out_reload; 1319 rld[i].secondary_in_icode = secondary_in_icode; 1320 rld[i].secondary_out_icode = secondary_out_icode; 1321 rld[i].secondary_p = 0; 1322 1323 n_reloads++; 1324 1325#ifdef SECONDARY_MEMORY_NEEDED |
1321 if (out != 0 && GET_CODE (out) == REG 1322 && REGNO (out) < FIRST_PSEUDO_REGISTER 1323 && SECONDARY_MEMORY_NEEDED (class, REGNO_REG_CLASS (REGNO (out)), 1324 outmode)) 1325 get_secondary_mem (out, outmode, opnum, type); | 1326 { 1327 int regnum; 1328 1329 if (out != 0 1330 && ((regnum = true_regnum (out)) >= 0) 1331 && regnum < FIRST_PSEUDO_REGISTER 1332 && SECONDARY_MEMORY_NEEDED (class, REGNO_REG_CLASS (regnum), 1333 outmode)) 1334 get_secondary_mem (out, outmode, opnum, type); 1335 } |
1326#endif 1327 } 1328 else 1329 { 1330 /* We are reusing an existing reload, 1331 but we may have additional information for it. 1332 For example, we may now have both IN and OUT 1333 while the old one may have just one of them. */ --- 5657 unchanged lines hidden --- | 1336#endif 1337 } 1338 else 1339 { 1340 /* We are reusing an existing reload, 1341 but we may have additional information for it. 1342 For example, we may now have both IN and OUT 1343 while the old one may have just one of them. */ --- 5657 unchanged lines hidden --- |