Line 1... |
Line 1... |
/* Configurable Xtensa ISA support.
|
/* 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.
|
This file is part of BFD, the Binary File Descriptor library.
|
|
|
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
Line 409... |
Line 409... |
xtensa_isa_num_pipe_stages (xtensa_isa isa)
|
xtensa_isa_num_pipe_stages (xtensa_isa isa)
|
{
|
{
|
xtensa_opcode opcode;
|
xtensa_opcode opcode;
|
xtensa_funcUnit_use *use;
|
xtensa_funcUnit_use *use;
|
int num_opcodes, num_uses;
|
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);
|
num_opcodes = xtensa_isa_num_opcodes (isa);
|
for (opcode = 0; opcode < num_opcodes; opcode++)
|
for (opcode = 0; opcode < num_opcodes; opcode++)
|
{
|
{
|
num_uses = xtensa_opcode_num_funcUnit_uses (isa, opcode);
|
num_uses = xtensa_opcode_num_funcUnit_uses (isa, opcode);
|
Line 1519... |
Line 1524... |
return 1;
|
return 1;
|
return 0;
|
return 0;
|
}
|
}
|
|
|
|
|
|
int
|
|
xtensa_state_is_shared_or (xtensa_isa isa, xtensa_state st)
|
|
{
|
|
xtensa_isa_internal *intisa = (xtensa_isa_internal *) isa;
|
|
CHECK_STATE (intisa, st, XTENSA_UNDEFINED);
|
|
if ((intisa->states[st].flags & XTENSA_STATE_IS_SHARED_OR) != 0)
|
|
return 1;
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
/* Sysregs. */
|
/* Sysregs. */
|
|
|
|
|
#define CHECK_SYSREG(INTISA,SYSREG,ERRVAL) \
|
#define CHECK_SYSREG(INTISA,SYSREG,ERRVAL) \
|