aboutsummaryrefslogtreecommitdiff
path: root/opcodes/cgen-opc.c
diff options
context:
space:
mode:
Diffstat (limited to 'opcodes/cgen-opc.c')
-rw-r--r--opcodes/cgen-opc.c129
1 files changed, 47 insertions, 82 deletions
diff --git a/opcodes/cgen-opc.c b/opcodes/cgen-opc.c
index 06544ca..882b348 100644
--- a/opcodes/cgen-opc.c
+++ b/opcodes/cgen-opc.c
@@ -33,11 +33,11 @@
#endif
static unsigned int hash_keyword_name
- PARAMS ((const CGEN_KEYWORD *, const char *, int));
+ (const CGEN_KEYWORD *, const char *, int);
static unsigned int hash_keyword_value
- PARAMS ((const CGEN_KEYWORD *, unsigned int));
+ (const CGEN_KEYWORD *, unsigned int);
static void build_keyword_hash_tables
- PARAMS ((CGEN_KEYWORD *));
+ (CGEN_KEYWORD *);
/* Return number of hash table entries to use for N elements. */
#define KEYWORD_HASH_SIZE(n) ((n) <= 31 ? 17 : 31)
@@ -46,9 +46,7 @@ static void build_keyword_hash_tables
The result is the keyword entry or NULL if not found. */
const CGEN_KEYWORD_ENTRY *
-cgen_keyword_lookup_name (kt, name)
- CGEN_KEYWORD *kt;
- const char *name;
+cgen_keyword_lookup_name (CGEN_KEYWORD *kt, const char *name)
{
const CGEN_KEYWORD_ENTRY *ke;
const char *p,*n;
@@ -87,9 +85,7 @@ cgen_keyword_lookup_name (kt, name)
The result is the keyword entry or NULL if not found. */
const CGEN_KEYWORD_ENTRY *
-cgen_keyword_lookup_value (kt, value)
- CGEN_KEYWORD *kt;
- int value;
+cgen_keyword_lookup_value (CGEN_KEYWORD *kt, int value)
{
const CGEN_KEYWORD_ENTRY *ke;
@@ -111,9 +107,7 @@ cgen_keyword_lookup_value (kt, value)
/* Add an entry to a keyword table. */
void
-cgen_keyword_add (kt, ke)
- CGEN_KEYWORD *kt;
- CGEN_KEYWORD_ENTRY *ke;
+cgen_keyword_add (CGEN_KEYWORD *kt, CGEN_KEYWORD_ENTRY *ke)
{
unsigned int hash;
size_t i;
@@ -159,9 +153,7 @@ cgen_keyword_add (kt, ke)
It is passed to each call to cgen_keyword_search_next. */
CGEN_KEYWORD_SEARCH
-cgen_keyword_search_init (kt, spec)
- CGEN_KEYWORD *kt;
- const char *spec;
+cgen_keyword_search_init (CGEN_KEYWORD *kt, const char *spec)
{
CGEN_KEYWORD_SEARCH search;
@@ -183,8 +175,7 @@ cgen_keyword_search_init (kt, spec)
The result is the next entry or NULL if there are no more. */
const CGEN_KEYWORD_ENTRY *
-cgen_keyword_search_next (search)
- CGEN_KEYWORD_SEARCH *search;
+cgen_keyword_search_next (CGEN_KEYWORD_SEARCH *search)
{
/* Has search finished? */
if (search->current_hash == search->table->hash_table_size)
@@ -218,10 +209,9 @@ cgen_keyword_search_next (search)
If CASE_SENSITIVE_P is non-zero, return a case sensitive hash. */
static unsigned int
-hash_keyword_name (kt, name, case_sensitive_p)
- const CGEN_KEYWORD *kt;
- const char *name;
- int case_sensitive_p;
+hash_keyword_name (const CGEN_KEYWORD *kt,
+ const char *name,
+ int case_sensitive_p)
{
unsigned int hash;
@@ -237,9 +227,7 @@ hash_keyword_name (kt, name, case_sensitive_p)
/* Return first entry in hash chain for VALUE. */
static unsigned int
-hash_keyword_value (kt, value)
- const CGEN_KEYWORD *kt;
- unsigned int value;
+hash_keyword_value (const CGEN_KEYWORD *kt, unsigned int value)
{
return value % kt->hash_table_size;
}
@@ -249,8 +237,7 @@ hash_keyword_value (kt, value)
we're using the disassembler, but we keep things simple. */
static void
-build_keyword_hash_tables (kt)
- CGEN_KEYWORD *kt;
+build_keyword_hash_tables (CGEN_KEYWORD *kt)
{
int i;
/* Use the number of compiled in entries as an estimate for the
@@ -278,9 +265,7 @@ build_keyword_hash_tables (kt)
mach/isa. */
const CGEN_HW_ENTRY *
-cgen_hw_lookup_by_name (cd, name)
- CGEN_CPU_DESC cd;
- const char *name;
+cgen_hw_lookup_by_name (CGEN_CPU_DESC cd, const char *name)
{
unsigned int i;
const CGEN_HW_ENTRY **hw = cd->hw_table.entries;
@@ -298,9 +283,7 @@ cgen_hw_lookup_by_name (cd, name)
Returns NULL if HWNUM is not supported by the currently selected mach. */
const CGEN_HW_ENTRY *
-cgen_hw_lookup_by_num (cd, hwnum)
- CGEN_CPU_DESC cd;
- unsigned int hwnum;
+cgen_hw_lookup_by_num (CGEN_CPU_DESC cd, unsigned int hwnum)
{
unsigned int i;
const CGEN_HW_ENTRY **hw = cd->hw_table.entries;
@@ -320,9 +303,7 @@ cgen_hw_lookup_by_num (cd, hwnum)
mach/isa. */
const CGEN_OPERAND *
-cgen_operand_lookup_by_name (cd, name)
- CGEN_CPU_DESC cd;
- const char *name;
+cgen_operand_lookup_by_name (CGEN_CPU_DESC cd, const char *name)
{
unsigned int i;
const CGEN_OPERAND **op = cd->operand_table.entries;
@@ -341,9 +322,7 @@ cgen_operand_lookup_by_name (cd, name)
mach/isa. */
const CGEN_OPERAND *
-cgen_operand_lookup_by_num (cd, opnum)
- CGEN_CPU_DESC cd;
- int opnum;
+cgen_operand_lookup_by_num (CGEN_CPU_DESC cd, int opnum)
{
return cd->operand_table.entries[opnum];
}
@@ -353,8 +332,7 @@ cgen_operand_lookup_by_num (cd, opnum)
/* Return number of instructions. This includes any added at runtime. */
int
-cgen_insn_count (cd)
- CGEN_CPU_DESC cd;
+cgen_insn_count (CGEN_CPU_DESC cd)
{
int count = cd->insn_table.num_init_entries;
CGEN_INSN_LIST *rt_insns = cd->insn_table.new_entries;
@@ -369,8 +347,7 @@ cgen_insn_count (cd)
This includes any added at runtime. */
int
-cgen_macro_insn_count (cd)
- CGEN_CPU_DESC cd;
+cgen_macro_insn_count (CGEN_CPU_DESC cd)
{
int count = cd->macro_insn_table.num_init_entries;
CGEN_INSN_LIST *rt_insns = cd->macro_insn_table.new_entries;
@@ -384,10 +361,7 @@ cgen_macro_insn_count (cd)
/* Cover function to read and properly byteswap an insn value. */
CGEN_INSN_INT
-cgen_get_insn_value (cd, buf, length)
- CGEN_CPU_DESC cd;
- unsigned char *buf;
- int length;
+cgen_get_insn_value (CGEN_CPU_DESC cd, unsigned char *buf, int length)
{
int big_p = (cd->insn_endian == CGEN_ENDIAN_BIG);
int insn_chunk_bitsize = cd->insn_chunk_bitsize;
@@ -423,11 +397,10 @@ cgen_get_insn_value (cd, buf, length)
/* Cover function to store an insn value properly byteswapped. */
void
-cgen_put_insn_value (cd, buf, length, value)
- CGEN_CPU_DESC cd;
- unsigned char *buf;
- int length;
- CGEN_INSN_INT value;
+cgen_put_insn_value (CGEN_CPU_DESC cd,
+ unsigned char *buf,
+ int length,
+ CGEN_INSN_INT value)
{
int big_p = (cd->insn_endian == CGEN_ENDIAN_BIG);
int insn_chunk_bitsize = cd->insn_chunk_bitsize;
@@ -472,16 +445,14 @@ cgen_put_insn_value (cd, buf, length, value)
/* ??? Will need to be revisited for VLIW architectures. */
const CGEN_INSN *
-cgen_lookup_insn (cd, insn, insn_int_value, insn_bytes_value, length, fields,
- alias_p)
- CGEN_CPU_DESC cd;
- const CGEN_INSN *insn;
- CGEN_INSN_INT insn_int_value;
- /* ??? CGEN_INSN_BYTES would be a nice type name to use here. */
- unsigned char *insn_bytes_value;
- int length;
- CGEN_FIELDS *fields;
- int alias_p;
+cgen_lookup_insn (CGEN_CPU_DESC cd,
+ const CGEN_INSN *insn,
+ CGEN_INSN_INT insn_int_value,
+ /* ??? CGEN_INSN_BYTES would be a nice type name to use here. */
+ unsigned char *insn_bytes_value,
+ int length,
+ CGEN_FIELDS *fields,
+ int alias_p)
{
unsigned char *buf;
CGEN_INSN_INT base_insn;
@@ -571,11 +542,10 @@ cgen_lookup_insn (cd, insn, insn_int_value, insn_bytes_value, length, fields,
in. */
void
-cgen_get_insn_operands (cd, insn, fields, indices)
- CGEN_CPU_DESC cd;
- const CGEN_INSN *insn;
- const CGEN_FIELDS *fields;
- int *indices;
+cgen_get_insn_operands (CGEN_CPU_DESC cd,
+ const CGEN_INSN *insn,
+ const CGEN_FIELDS *fields,
+ int *indices)
{
const CGEN_OPINST *opinst;
int i;
@@ -603,16 +573,14 @@ cgen_get_insn_operands (cd, insn, fields, indices)
recognized. */
const CGEN_INSN *
-cgen_lookup_get_insn_operands (cd, insn, insn_int_value, insn_bytes_value,
- length, indices, fields)
- CGEN_CPU_DESC cd;
- const CGEN_INSN *insn;
- CGEN_INSN_INT insn_int_value;
- /* ??? CGEN_INSN_BYTES would be a nice type name to use here. */
- unsigned char *insn_bytes_value;
- int length;
- int *indices;
- CGEN_FIELDS *fields;
+cgen_lookup_get_insn_operands (CGEN_CPU_DESC cd,
+ const CGEN_INSN *insn,
+ CGEN_INSN_INT insn_int_value,
+ /* ??? CGEN_INSN_BYTES would be a nice type name to use here. */
+ unsigned char *insn_bytes_value,
+ int length,
+ int *indices,
+ CGEN_FIELDS *fields)
{
/* Pass non-zero for ALIAS_P only if INSN != NULL.
If INSN == NULL, we want a real insn. */
@@ -627,24 +595,21 @@ cgen_lookup_get_insn_operands (cd, insn, insn_int_value, insn_bytes_value,
/* Allow signed overflow of instruction fields. */
void
-cgen_set_signed_overflow_ok (cd)
- CGEN_CPU_DESC cd;
+cgen_set_signed_overflow_ok (CGEN_CPU_DESC cd)
{
cd->signed_overflow_ok_p = 1;
}
/* Generate an error message if a signed field in an instruction overflows. */
void
-cgen_clear_signed_overflow_ok (cd)
- CGEN_CPU_DESC cd;
+cgen_clear_signed_overflow_ok (CGEN_CPU_DESC cd)
{
cd->signed_overflow_ok_p = 0;
}
/* Will an error message be generated if a signed field in an instruction overflows ? */
unsigned int
-cgen_signed_overflow_ok_p (cd)
- CGEN_CPU_DESC cd;
+cgen_signed_overflow_ok_p (CGEN_CPU_DESC cd)
{
return cd->signed_overflow_ok_p;
}