comparison gcc/dwarf2out.c @ 47:3bfb6c00c1e0

update it from 4.4.2 to 4.4.3.
author kent <kent@cr.ie.u-ryukyu.ac.jp>
date Sun, 07 Feb 2010 17:44:34 +0900
parents 855418dad1a3
children 77e2b8dfacca
comparison
equal deleted inserted replaced
46:b85a337e5837 47:3bfb6c00c1e0
1 /* Output Dwarf2 format symbol table information from GCC. 1 /* Output Dwarf2 format symbol table information from GCC.
2 Copyright (C) 1992, 1993, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2 Copyright (C) 1992, 1993, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
3 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. 3 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4 Free Software Foundation, Inc.
4 Contributed by Gary Funck (gary@intrepid.com). 5 Contributed by Gary Funck (gary@intrepid.com).
5 Derived from DWARF 1 implementation of Ron Guilmette (rfg@monkeys.com). 6 Derived from DWARF 1 implementation of Ron Guilmette (rfg@monkeys.com).
6 Extensively modified by Jason Merrill (jason@cygnus.com). 7 Extensively modified by Jason Merrill (jason@cygnus.com).
7 8
8 This file is part of GCC. 9 This file is part of GCC.
10638 10639
10639 case FLOOR_DIV_EXPR: 10640 case FLOOR_DIV_EXPR:
10640 case CEIL_DIV_EXPR: 10641 case CEIL_DIV_EXPR:
10641 case ROUND_DIV_EXPR: 10642 case ROUND_DIV_EXPR:
10642 case TRUNC_DIV_EXPR: 10643 case TRUNC_DIV_EXPR:
10644 if (TYPE_UNSIGNED (TREE_TYPE (loc)))
10645 return 0;
10643 op = DW_OP_div; 10646 op = DW_OP_div;
10644 goto do_binop; 10647 goto do_binop;
10645 10648
10646 case MINUS_EXPR: 10649 case MINUS_EXPR:
10647 op = DW_OP_minus; 10650 op = DW_OP_minus;
10649 10652
10650 case FLOOR_MOD_EXPR: 10653 case FLOOR_MOD_EXPR:
10651 case CEIL_MOD_EXPR: 10654 case CEIL_MOD_EXPR:
10652 case ROUND_MOD_EXPR: 10655 case ROUND_MOD_EXPR:
10653 case TRUNC_MOD_EXPR: 10656 case TRUNC_MOD_EXPR:
10654 op = DW_OP_mod; 10657 if (TYPE_UNSIGNED (TREE_TYPE (loc)))
10655 goto do_binop; 10658 {
10659 op = DW_OP_mod;
10660 goto do_binop;
10661 }
10662 ret = loc_descriptor_from_tree_1 (TREE_OPERAND (loc, 0), 0);
10663 ret1 = loc_descriptor_from_tree_1 (TREE_OPERAND (loc, 1), 0);
10664 if (ret == 0 || ret1 == 0)
10665 return 0;
10666
10667 add_loc_descr (&ret, ret1);
10668 add_loc_descr (&ret, new_loc_descr (DW_OP_over, 0, 0));
10669 add_loc_descr (&ret, new_loc_descr (DW_OP_over, 0, 0));
10670 add_loc_descr (&ret, new_loc_descr (DW_OP_div, 0, 0));
10671 add_loc_descr (&ret, new_loc_descr (DW_OP_mul, 0, 0));
10672 add_loc_descr (&ret, new_loc_descr (DW_OP_minus, 0, 0));
10673 break;
10656 10674
10657 case MULT_EXPR: 10675 case MULT_EXPR:
10658 op = DW_OP_mul; 10676 op = DW_OP_mul;
10659 goto do_binop; 10677 goto do_binop;
10660 10678