aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Wilson <bob.wilson@acm.org>2008-03-03 23:23:41 +0000
committerBob Wilson <bob.wilson@acm.org>2008-03-03 23:23:41 +0000
commit77cba8a32b4cec9c12249fa59391242c039a1842 (patch)
treed45203ee16e0e37165d0e50b0bbd552fe3c98cb8
parent332fbd6f66ba68a2452e153e830b6d5c6560e066 (diff)
downloadgdb-77cba8a32b4cec9c12249fa59391242c039a1842.zip
gdb-77cba8a32b4cec9c12249fa59391242c039a1842.tar.gz
gdb-77cba8a32b4cec9c12249fa59391242c039a1842.tar.bz2
bfd/
* xtensa-isa.c (xtensa_isa_num_pipe_stages): Make max_stage static and only compute its value once. gas/ * config/tc-xtensa.c (xtensa_num_pipe_stages): New. (md_begin): Initialize it. (resources_conflict): Use it.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/xtensa-isa.c9
-rw-r--r--gas/ChangeLog7
-rw-r--r--gas/config/tc-xtensa.c5
4 files changed, 23 insertions, 3 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 883d2e5..6490fcf 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2008-03-03 Bob Wilson <bob.wilson@acm.org>
+
+ * xtensa-isa.c (xtensa_isa_num_pipe_stages): Make max_stage static and
+ only compute its value once.
+
2008-03-03 Alan Modra <amodra@bigpond.net.au>
* elf32-spu.c (struct got_entry): Add "addend" field.
diff --git a/bfd/xtensa-isa.c b/bfd/xtensa-isa.c
index ced8257..35b27db 100644
--- a/bfd/xtensa-isa.c
+++ b/bfd/xtensa-isa.c
@@ -1,5 +1,5 @@
/* Configurable Xtensa ISA support.
- Copyright 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
+ Copyright 2003, 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@@ -411,7 +411,12 @@ xtensa_isa_num_pipe_stages (xtensa_isa isa)
xtensa_opcode opcode;
xtensa_funcUnit_use *use;
int num_opcodes, num_uses;
- int i, stage, max_stage = XTENSA_UNDEFINED;
+ int i, stage;
+ static int max_stage = XTENSA_UNDEFINED;
+
+ /* Only compute the value once. */
+ if (max_stage != XTENSA_UNDEFINED)
+ return max_stage + 1;
num_opcodes = xtensa_isa_num_opcodes (isa);
for (opcode = 0; opcode < num_opcodes; opcode++)
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 97a7aab..80337c4 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,4 +1,11 @@
2008-03-03 Sterling Augustine <sterling@tensilica.com>
+ Bob Wilson <bob.wilson@acm.org>
+
+ * config/tc-xtensa.c (xtensa_num_pipe_stages): New.
+ (md_begin): Initialize it.
+ (resources_conflict): Use it.
+
+2008-03-03 Sterling Augustine <sterling@tensilica.com>
* config/tc-xtensa.h (RELAX_XTENSA_NONE): New.
diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c
index 1321bfb..6ef1825 100644
--- a/gas/config/tc-xtensa.c
+++ b/gas/config/tc-xtensa.c
@@ -79,6 +79,7 @@ bfd_boolean absolute_literals_supported = XSHAL_USE_ABSOLUTE_LITERALS;
static vliw_insn cur_vinsn;
+unsigned xtensa_num_pipe_stages;
unsigned xtensa_fetch_width = XCHAL_INST_FETCH_WIDTH;
static enum debug_info_type xt_saved_debug_type = DEBUG_NONE;
@@ -5084,6 +5085,8 @@ md_begin (void)
xtensa_rsr_lcount_opcode = xtensa_opcode_lookup (isa, "rsr.lcount");
xtensa_waiti_opcode = xtensa_opcode_lookup (isa, "waiti");
+ xtensa_num_pipe_stages = xtensa_isa_num_pipe_stages (isa);
+
init_op_placement_info_table ();
/* Set up the assembly state. */
@@ -6006,7 +6009,7 @@ resources_conflict (vliw_insn *vinsn)
{
xtensa_isa isa = xtensa_default_isa;
rt = new_resource_table
- (isa, xtensa_isa_num_pipe_stages (isa),
+ (isa, xtensa_num_pipe_stages,
xtensa_isa_num_funcUnits (isa),
(unit_num_copies_func) xtensa_funcUnit_num_copies,
(opcode_num_units_func) xtensa_opcode_num_funcUnit_uses,