projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
MIPS: Fix the encoding of immediates with microMIPS JALX
[deliverable/binutils-gdb.git]
/
gas
/
ehopt.c
diff --git
a/gas/ehopt.c
b/gas/ehopt.c
index ece0f2b74c0c529ef51c6a754b8ebaaf3460cf00..d42064ddef09785a7f71029b58e088e331f57384 100644
(file)
--- a/
gas/ehopt.c
+++ b/
gas/ehopt.c
@@
-1,6
+1,5
@@
/* ehopt.c--optimize gcc exception frame information.
/* ehopt.c--optimize gcc exception frame information.
- Copyright 1998, 2000, 2001, 2003, 2005, 2007, 2008
- Free Software Foundation, Inc.
+ Copyright (C) 1998-2016 Free Software Foundation, Inc.
Written by Ian Lance Taylor <ian@cygnus.com>.
This file is part of GAS, the GNU Assembler.
Written by Ian Lance Taylor <ian@cygnus.com>.
This file is part of GAS, the GNU Assembler.
@@
-120,7
+119,7
@@
get_cie_info (struct cie_info *info)
/* First make sure that the CIE Identifier Tag is 0/-1. */
/* First make sure that the CIE Identifier Tag is 0/-1. */
- if (str
cmp (segment_name (now_seg), ".debug_frame"
) == 0)
+ if (str
ncmp (segment_name (now_seg), ".debug_frame", 12
) == 0)
CIE_id = (char)0xff;
else
CIE_id = 0;
CIE_id = (char)0xff;
else
CIE_id = 0;
@@
-227,6
+226,19
@@
get_cie_info (struct cie_info *info)
return 1;
}
return 1;
}
+enum frame_state
+{
+ state_idle,
+ state_saw_size,
+ state_saw_cie_offset,
+ state_saw_pc_begin,
+ state_seeing_aug_size,
+ state_skipping_aug,
+ state_wait_loc4,
+ state_saw_loc4,
+ state_error,
+};
+
/* This function is called from emit_expr. It looks for cases which
we can optimize.
/* This function is called from emit_expr. It looks for cases which
we can optimize.
@@
-245,18
+257,7
@@
check_eh_frame (expressionS *exp, unsigned int *pnbytes)
{
struct frame_data
{
{
struct frame_data
{
- enum frame_state
- {
- state_idle,
- state_saw_size,
- state_saw_cie_offset,
- state_saw_pc_begin,
- state_seeing_aug_size,
- state_skipping_aug,
- state_wait_loc4,
- state_saw_loc4,
- state_error,
- } state;
+ enum frame_state state;
int cie_info_ok;
struct cie_info cie_info;
int cie_info_ok;
struct cie_info cie_info;
@@
-283,9
+284,10
@@
check_eh_frame (expressionS *exp, unsigned int *pnbytes)
#endif
/* Select the proper section data. */
#endif
/* Select the proper section data. */
- if (strcmp (segment_name (now_seg), ".eh_frame") == 0)
+ if (strncmp (segment_name (now_seg), ".eh_frame", 9) == 0
+ && segment_name (now_seg)[9] != '_')
d = &eh_frame_data;
d = &eh_frame_data;
- else if (str
cmp (segment_name (now_seg), ".debug_frame"
) == 0)
+ else if (str
ncmp (segment_name (now_seg), ".debug_frame", 12
) == 0)
d = &debug_frame_data;
else
return 0;
d = &debug_frame_data;
else
return 0;
@@
-324,7
+326,7
@@
check_eh_frame (expressionS *exp, unsigned int *pnbytes)
case state_saw_size:
case state_saw_cie_offset:
/* Assume whatever form it appears in, it appears atomically. */
case state_saw_size:
case state_saw_cie_offset:
/* Assume whatever form it appears in, it appears atomically. */
- d->state
+= 1
;
+ d->state
= (enum frame_state) (d->state + 1)
;
break;
case state_saw_pc_begin:
break;
case state_saw_pc_begin:
This page took
0.026142 seconds
and
4
git commands to generate.