/* GAS interface for targets using CGEN: Cpu tools GENerator.
- Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
static void
queue_fixup (opindex, opinfo, expP)
int opindex;
+ int opinfo;
expressionS * expP;
{
/* We need to generate a fixup for this expression. */
/* Used for communication between the next two procedures. */
static jmp_buf expr_jmp_buf;
+static int expr_jmp_buf_p;
/* Callback for cgen interface. Parse the expression at *STRP.
The result is an error message or NULL for success (in which case
const char *
gas_cgen_parse_operand (cd, want, strP, opindex, opinfo, resultP, valueP)
- CGEN_CPU_DESC cd;
+ CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
enum cgen_parse_operand_type want;
const char ** strP;
int opindex;
This is done via gas_cgen_md_operand. */
if (setjmp (expr_jmp_buf) != 0)
{
+ expr_jmp_buf_p = 0;
input_line_pointer = (char *) hold;
* resultP_1 = CGEN_PARSE_OPERAND_RESULT_ERROR;
return "illegal operand";
}
+ expr_jmp_buf_p = 1;
expression (& exp);
+ expr_jmp_buf_p = 0;
* strP = input_line_pointer;
input_line_pointer = hold;
void
gas_cgen_md_operand (expressionP)
- expressionS * expressionP;
+ expressionS * expressionP ATTRIBUTE_UNUSED;
{
- longjmp (expr_jmp_buf, 1);
+ /* Don't longjmp if we're not called from within cgen_parse_operand(). */
+ if (expr_jmp_buf_p)
+ longjmp (expr_jmp_buf, 1);
}
/* Finish assembling instruction INSN.
gas_cgen_md_apply_fix3 (fixP, valueP, seg)
fixS * fixP;
valueT * valueP;
- segT seg;
+ segT seg ATTRIBUTE_UNUSED;
{
char * where = fixP->fx_frag->fr_literal + fixP->fx_where;
valueT value;
arelent *
gas_cgen_tc_gen_reloc (section, fixP)
- asection * section;
+ asection * section ATTRIBUTE_UNUSED;
fixS * fixP;
{
arelent * reloc;