X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gas%2Fconfig%2Ftc-d30v.c;h=31875d5825df4867713781b27468fb58e7c6e7ea;hb=3067d3b96cfb88e86acf94d2aa1575cff0e0110f;hp=64c46662ceb2bc51abfaf27760f9a3d25acbe0d6;hpb=69da848e6ebe8d0b4196f2b630b112fa43dc9348;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/config/tc-d30v.c b/gas/config/tc-d30v.c index 64c46662ce..31875d5825 100644 --- a/gas/config/tc-d30v.c +++ b/gas/config/tc-d30v.c @@ -1,6 +1,5 @@ /* tc-d30v.c -- Assembler code for the Mitsubishi D30V - Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006, 2007, 2008, - 2009, 2010 Free Software Foundation, Inc. + Copyright (C) 1997-2015 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -304,7 +303,7 @@ valueT md_section_align (asection *seg, valueT addr) { int align = bfd_get_section_alignment (stdoutput, seg); - return ((addr + (1 << align) - 1) & (-1 << align)); + return ((addr + (1 << align) - 1) & -(1 << align)); } void @@ -1243,12 +1242,10 @@ find_format (struct d30v_opcode *opcode, /* Calculate the current address by running through the previous frags and adding our current offset. */ - value = 0; + value = frag_now_fix_octets (); for (f = frchain_now->frch_root; f; f = f->fr_next) value += f->fr_fix + f->fr_offset; - value = (S_GET_VALUE (myops[j].X_add_symbol) - value - - (obstack_next_free (&frchain_now->frch_obstack) - - frag_now->fr_literal)); + value = S_GET_VALUE (myops[j].X_add_symbol) - value; if (check_range (value, bits, flags)) match = 0; } @@ -1885,7 +1882,8 @@ d30v_cons_align (int size) int log_size; /* Don't specially align anything in debug sections. */ - if ((now_seg->flags & SEC_ALLOC) == 0) + if ((now_seg->flags & SEC_ALLOC) == 0 + || strcmp (now_seg->name, ".eh_frame") == 0) return; log_size = 0;