From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19337 invoked by alias); 6 Aug 2003 20:50:08 -0000 Mailing-List: contact cgen-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cgen-owner@sources.redhat.com Received: (qmail 19275 invoked from network); 6 Aug 2003 20:50:04 -0000 Received: from unknown (HELO tiktok.the-meissners.org) (66.205.90.83) by sources.redhat.com with SMTP; 6 Aug 2003 20:50:04 -0000 Received: from tiktok.the-meissners.org (localhost [127.0.0.1]) by tiktok.the-meissners.org (8.12.8/8.12.8) with ESMTP id h76Ko3rn030366 for ; Wed, 6 Aug 2003 16:50:04 -0400 Received: (from meissner@localhost) by tiktok.the-meissners.org (8.12.8/8.12.8/Submit) id h76Ko3FO030364 for cgen@sources.redhat.com; Wed, 6 Aug 2003 16:50:03 -0400 Date: Wed, 06 Aug 2003 20:52:00 -0000 From: Michael Meissner To: cgen@sources.redhat.com Subject: Eliminate PARAMS in include/opcode/cgen.h Message-ID: <20030806205003.GA30314@tiktok.the-meissners.org> Mail-Followup-To: Michael Meissner , cgen@sources.redhat.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i X-SW-Source: 2003-q3/txt/msg00028.txt.bz2 This patch eliminates PARAMS from include/opcode/cgen.h. Note, I waiting for an answer from the copyright clerk so I don't yet have a valid copyright disclaimer on file at the FSF for bfd/binutils. I suspect this can't be applied until all of the paperwork is in place. 2003-08-06 Michael Meissner * cgen.h: Remove PARAM macro usage in all prototypes. *** include/opcode/cgen.h.~1~ 2003-08-06 16:43:35.000000000 -0400 --- include/opcode/cgen.h 2003-08-06 16:13:38.000000000 -0400 *************** typedef struct { *** 265,272 **** If not it is left alone. The result is NULL if success or an error message. */ typedef const char * (cgen_parse_fn) ! PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *insn_, ! const char **strp_, CGEN_FIELDS *fields_)); /* Insert handler. CD is a cpu table descriptor. --- 265,272 ---- If not it is left alone. The result is NULL if success or an error message. */ typedef const char * (cgen_parse_fn) ! (CGEN_CPU_DESC, const CGEN_INSN *insn_, ! const char **strp_, CGEN_FIELDS *fields_); /* Insert handler. CD is a cpu table descriptor. *************** typedef const char * (cgen_parse_fn) *** 279,287 **** #ifdef __BFD_H_SEEN__ typedef const char * (cgen_insert_fn) ! PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *insn_, ! CGEN_FIELDS *fields_, CGEN_INSN_BYTES_PTR insnp_, ! bfd_vma pc_)); #else typedef const char * (cgen_insert_fn) (); #endif --- 279,287 ---- #ifdef __BFD_H_SEEN__ typedef const char * (cgen_insert_fn) ! (CGEN_CPU_DESC, const CGEN_INSN *insn_, ! CGEN_FIELDS *fields_, CGEN_INSN_BYTES_PTR insnp_, ! bfd_vma pc_); #else typedef const char * (cgen_insert_fn) (); #endif *************** typedef const char * (cgen_insert_fn) () *** 300,308 **** #ifdef __BFD_H_SEEN__ typedef int (cgen_extract_fn) ! PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *insn_, ! CGEN_EXTRACT_INFO *ex_info_, CGEN_INSN_INT base_insn_, ! CGEN_FIELDS *fields_, bfd_vma pc_)); #else typedef int (cgen_extract_fn) (); #endif --- 300,308 ---- #ifdef __BFD_H_SEEN__ typedef int (cgen_extract_fn) ! (CGEN_CPU_DESC, const CGEN_INSN *insn_, ! CGEN_EXTRACT_INFO *ex_info_, CGEN_INSN_INT base_insn_, ! CGEN_FIELDS *fields_, bfd_vma pc_); #else typedef int (cgen_extract_fn) (); #endif *************** typedef int (cgen_extract_fn) (); *** 319,326 **** #ifdef __BFD_H_SEEN__ typedef void (cgen_print_fn) ! PARAMS ((CGEN_CPU_DESC, PTR info_, const CGEN_INSN *insn_, ! CGEN_FIELDS *fields_, bfd_vma pc_, int len_)); #else typedef void (cgen_print_fn) (); #endif --- 319,326 ---- #ifdef __BFD_H_SEEN__ typedef void (cgen_print_fn) ! (CGEN_CPU_DESC, PTR info_, const CGEN_INSN *insn_, ! CGEN_FIELDS *fields_, bfd_vma pc_, int len_); #else typedef void (cgen_print_fn) (); #endif *************** enum cgen_parse_operand_result *** 384,392 **** #ifdef __BFD_H_SEEN__ /* Don't require bfd.h unnecessarily. */ typedef const char * (cgen_parse_operand_fn) ! PARAMS ((CGEN_CPU_DESC, ! enum cgen_parse_operand_type, const char **, int, int, ! enum cgen_parse_operand_result *, bfd_vma *)); #else typedef const char * (cgen_parse_operand_fn) (); #endif --- 384,392 ---- #ifdef __BFD_H_SEEN__ /* Don't require bfd.h unnecessarily. */ typedef const char * (cgen_parse_operand_fn) ! (CGEN_CPU_DESC, ! enum cgen_parse_operand_type, const char **, int, int, ! enum cgen_parse_operand_result *, bfd_vma *); #else typedef const char * (cgen_parse_operand_fn) (); #endif *************** typedef const char * (cgen_parse_operand *** 394,404 **** /* Set the cgen_parse_operand_fn callback. */ extern void cgen_set_parse_operand_fn ! PARAMS ((CGEN_CPU_DESC, cgen_parse_operand_fn)); /* Called before trying to match a table entry with the insn. */ ! extern void cgen_init_parse_operand PARAMS ((CGEN_CPU_DESC)); /* Operand values (keywords, integers, symbols, etc.) */ --- 394,404 ---- /* Set the cgen_parse_operand_fn callback. */ extern void cgen_set_parse_operand_fn ! (CGEN_CPU_DESC, cgen_parse_operand_fn); /* Called before trying to match a table entry with the insn. */ ! extern void cgen_init_parse_operand (CGEN_CPU_DESC); /* Operand values (keywords, integers, symbols, etc.) */ *************** typedef struct { *** 453,461 **** } CGEN_HW_TABLE; extern const CGEN_HW_ENTRY * cgen_hw_lookup_by_name ! PARAMS ((CGEN_CPU_DESC, const char *)); extern const CGEN_HW_ENTRY * cgen_hw_lookup_by_num ! PARAMS ((CGEN_CPU_DESC, unsigned int)); /* This struct is used to describe things like register names, etc. */ --- 453,461 ---- } CGEN_HW_TABLE; extern const CGEN_HW_ENTRY * cgen_hw_lookup_by_name ! (CGEN_CPU_DESC, const char *); extern const CGEN_HW_ENTRY * cgen_hw_lookup_by_num ! (CGEN_CPU_DESC, unsigned int); /* This struct is used to describe things like register names, etc. */ *************** typedef struct *** 543,583 **** /* Lookup a keyword from its name. */ const CGEN_KEYWORD_ENTRY *cgen_keyword_lookup_name ! PARAMS ((CGEN_KEYWORD *, const char *)); /* Lookup a keyword from its value. */ const CGEN_KEYWORD_ENTRY *cgen_keyword_lookup_value ! PARAMS ((CGEN_KEYWORD *, int)); /* Add a keyword. */ ! void cgen_keyword_add PARAMS ((CGEN_KEYWORD *, CGEN_KEYWORD_ENTRY *)); /* Keyword searching. This can be used to retrieve every keyword, or a subset. */ CGEN_KEYWORD_SEARCH cgen_keyword_search_init ! PARAMS ((CGEN_KEYWORD *, const char *)); const CGEN_KEYWORD_ENTRY *cgen_keyword_search_next ! PARAMS ((CGEN_KEYWORD_SEARCH *)); /* Operand value support routines. */ extern const char *cgen_parse_keyword ! PARAMS ((CGEN_CPU_DESC, const char **, CGEN_KEYWORD *, long *)); #ifdef __BFD_H_SEEN__ /* Don't require bfd.h unnecessarily. */ extern const char *cgen_parse_signed_integer ! PARAMS ((CGEN_CPU_DESC, const char **, int, long *)); extern const char *cgen_parse_unsigned_integer ! PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *)); extern const char *cgen_parse_address ! PARAMS ((CGEN_CPU_DESC, const char **, int, int, ! enum cgen_parse_operand_result *, bfd_vma *)); extern const char *cgen_validate_signed_integer ! PARAMS ((long, long, long)); extern const char *cgen_validate_unsigned_integer ! PARAMS ((unsigned long, unsigned long, unsigned long)); #endif /* Operand modes. */ --- 543,583 ---- /* Lookup a keyword from its name. */ const CGEN_KEYWORD_ENTRY *cgen_keyword_lookup_name ! (CGEN_KEYWORD *, const char *); /* Lookup a keyword from its value. */ const CGEN_KEYWORD_ENTRY *cgen_keyword_lookup_value ! (CGEN_KEYWORD *, int); /* Add a keyword. */ ! void cgen_keyword_add (CGEN_KEYWORD *, CGEN_KEYWORD_ENTRY *); /* Keyword searching. This can be used to retrieve every keyword, or a subset. */ CGEN_KEYWORD_SEARCH cgen_keyword_search_init ! (CGEN_KEYWORD *, const char *); const CGEN_KEYWORD_ENTRY *cgen_keyword_search_next ! (CGEN_KEYWORD_SEARCH *); /* Operand value support routines. */ extern const char *cgen_parse_keyword ! (CGEN_CPU_DESC, const char **, CGEN_KEYWORD *, long *); #ifdef __BFD_H_SEEN__ /* Don't require bfd.h unnecessarily. */ extern const char *cgen_parse_signed_integer ! (CGEN_CPU_DESC, const char **, int, long *); extern const char *cgen_parse_unsigned_integer ! (CGEN_CPU_DESC, const char **, int, unsigned long *); extern const char *cgen_parse_address ! (CGEN_CPU_DESC, const char **, int, int, ! enum cgen_parse_operand_result *, bfd_vma *); extern const char *cgen_validate_signed_integer ! (long, long, long); extern const char *cgen_validate_unsigned_integer ! (unsigned long, unsigned long, unsigned long); #endif /* Operand modes. */ *************** typedef struct { *** 705,713 **** } CGEN_OPERAND_TABLE; extern const CGEN_OPERAND * cgen_operand_lookup_by_name ! PARAMS ((CGEN_CPU_DESC, const char *)); extern const CGEN_OPERAND * cgen_operand_lookup_by_num ! PARAMS ((CGEN_CPU_DESC, int)); /* Instruction operand instances. --- 705,713 ---- } CGEN_OPERAND_TABLE; extern const CGEN_OPERAND * cgen_operand_lookup_by_name ! (CGEN_CPU_DESC, const char *); extern const CGEN_OPERAND * cgen_operand_lookup_by_num ! (CGEN_CPU_DESC, int); /* Instruction operand instances. *************** typedef struct *** 1061,1068 **** /* Return number of instructions. This includes any added at run-time. */ ! extern int cgen_insn_count PARAMS ((CGEN_CPU_DESC)); ! extern int cgen_macro_insn_count PARAMS ((CGEN_CPU_DESC)); /* Macros to access the other insn elements not recorded in CGEN_IBASE. */ --- 1061,1068 ---- /* Return number of instructions. This includes any added at run-time. */ ! extern int cgen_insn_count (CGEN_CPU_DESC); ! extern int cgen_macro_insn_count (CGEN_CPU_DESC); /* Macros to access the other insn elements not recorded in CGEN_IBASE. */ *************** typedef struct cgen_minsn_expansion { *** 1126,1134 **** If the expansion fails (e.g. "no match") NULL is returned. Space for the expansion is obtained with malloc. It is up to the caller to free it. */ ! const char * (* fn) PARAMS ((const struct cgen_minsn_expansion *, ! const char *, const char **, int *, ! CGEN_OPERAND **)); #define CGEN_MIEXPN_FN(ex) ((ex)->fn) /* Instruction(s) the macro expands to. --- 1126,1135 ---- If the expansion fails (e.g. "no match") NULL is returned. Space for the expansion is obtained with malloc. It is up to the caller to free it. */ ! const char * (* fn) ! (const struct cgen_minsn_expansion *, ! const char *, const char **, int *, ! CGEN_OPERAND **); #define CGEN_MIEXPN_FN(ex) ((ex)->fn) /* Instruction(s) the macro expands to. *************** typedef struct cgen_minsn_expansion { *** 1146,1160 **** may contain further macro invocations. */ extern const char * cgen_expand_macro_insn ! PARAMS ((CGEN_CPU_DESC, const struct cgen_minsn_expansion *, ! const char *, const char **, int *, CGEN_OPERAND **)); /* The assembler insn table is hashed based on some function of the mnemonic (the actually hashing done is up to the target, but we provide a few examples like the first letter or a function of the entire mnemonic). */ extern CGEN_INSN_LIST * cgen_asm_lookup_insn ! PARAMS ((CGEN_CPU_DESC, const char *)); #define CGEN_ASM_LOOKUP_INSN(cd, string) cgen_asm_lookup_insn ((cd), (string)) #define CGEN_ASM_NEXT_INSN(insn) ((insn)->next) --- 1147,1161 ---- may contain further macro invocations. */ extern const char * cgen_expand_macro_insn ! (CGEN_CPU_DESC, const struct cgen_minsn_expansion *, ! const char *, const char **, int *, CGEN_OPERAND **); /* The assembler insn table is hashed based on some function of the mnemonic (the actually hashing done is up to the target, but we provide a few examples like the first letter or a function of the entire mnemonic). */ extern CGEN_INSN_LIST * cgen_asm_lookup_insn ! (CGEN_CPU_DESC, const char *); #define CGEN_ASM_LOOKUP_INSN(cd, string) cgen_asm_lookup_insn ((cd), (string)) #define CGEN_ASM_NEXT_INSN(insn) ((insn)->next) *************** extern CGEN_INSN_LIST * cgen_asm_lookup_ *** 1162,1168 **** instruction (the actually hashing done is up to the target). */ extern CGEN_INSN_LIST * cgen_dis_lookup_insn ! PARAMS ((CGEN_CPU_DESC, const char *, CGEN_INSN_INT)); /* FIXME: delete these two */ #define CGEN_DIS_LOOKUP_INSN(cd, buf, value) cgen_dis_lookup_insn ((cd), (buf), (value)) #define CGEN_DIS_NEXT_INSN(insn) ((insn)->next) --- 1163,1169 ---- instruction (the actually hashing done is up to the target). */ extern CGEN_INSN_LIST * cgen_dis_lookup_insn ! (CGEN_CPU_DESC, const char *, CGEN_INSN_INT); /* FIXME: delete these two */ #define CGEN_DIS_LOOKUP_INSN(cd, buf, value) cgen_dis_lookup_insn ((cd), (buf), (value)) #define CGEN_DIS_NEXT_INSN(insn) ((insn)->next) *************** typedef struct cgen_cpu_desc *** 1246,1270 **** int int_insn_p; /* Called to rebuild the tables after something has changed. */ ! void (*rebuild_tables) PARAMS ((CGEN_CPU_DESC)); /* Operand parser callback. */ cgen_parse_operand_fn * parse_operand_fn; /* Parse/insert/extract/print cover fns for operands. */ const char * (*parse_operand) ! PARAMS ((CGEN_CPU_DESC, int opindex_, const char **, ! CGEN_FIELDS *fields_)); #ifdef __BFD_H_SEEN__ const char * (*insert_operand) ! PARAMS ((CGEN_CPU_DESC, int opindex_, CGEN_FIELDS *fields_, ! CGEN_INSN_BYTES_PTR, bfd_vma pc_)); int (*extract_operand) ! PARAMS ((CGEN_CPU_DESC, int opindex_, CGEN_EXTRACT_INFO *, CGEN_INSN_INT, ! CGEN_FIELDS *fields_, bfd_vma pc_)); void (*print_operand) ! PARAMS ((CGEN_CPU_DESC, int opindex_, PTR info_, CGEN_FIELDS * fields_, ! void const *attrs_, bfd_vma pc_, int length_)); #else const char * (*insert_operand) (); int (*extract_operand) (); --- 1247,1270 ---- int int_insn_p; /* Called to rebuild the tables after something has changed. */ ! void (*rebuild_tables) (CGEN_CPU_DESC); /* Operand parser callback. */ cgen_parse_operand_fn * parse_operand_fn; /* Parse/insert/extract/print cover fns for operands. */ const char * (*parse_operand) ! (CGEN_CPU_DESC, int opindex_, const char **, CGEN_FIELDS *fields_); #ifdef __BFD_H_SEEN__ const char * (*insert_operand) ! (CGEN_CPU_DESC, int opindex_, CGEN_FIELDS *fields_, ! CGEN_INSN_BYTES_PTR, bfd_vma pc_); int (*extract_operand) ! (CGEN_CPU_DESC, int opindex_, CGEN_EXTRACT_INFO *, CGEN_INSN_INT, ! CGEN_FIELDS *fields_, bfd_vma pc_); void (*print_operand) ! (CGEN_CPU_DESC, int opindex_, PTR info_, CGEN_FIELDS * fields_, ! void const *attrs_, bfd_vma pc_, int length_); #else const char * (*insert_operand) (); int (*extract_operand) (); *************** typedef struct cgen_cpu_desc *** 1280,1298 **** #define CGEN_CPU_SIZEOF_FIELDS(cd) ((cd)->sizeof_fields) /* Set the bitsize field. */ ! void (*set_fields_bitsize) PARAMS ((CGEN_FIELDS *fields_, int size_)); #define CGEN_CPU_SET_FIELDS_BITSIZE(cd) ((cd)->set_fields_bitsize) /* CGEN_FIELDS accessors. */ int (*get_int_operand) ! PARAMS ((CGEN_CPU_DESC, int opindex_, const CGEN_FIELDS *fields_)); void (*set_int_operand) ! PARAMS ((CGEN_CPU_DESC, int opindex_, CGEN_FIELDS *fields_, int value_)); #ifdef __BFD_H_SEEN__ bfd_vma (*get_vma_operand) ! PARAMS ((CGEN_CPU_DESC, int opindex_, const CGEN_FIELDS *fields_)); void (*set_vma_operand) ! PARAMS ((CGEN_CPU_DESC, int opindex_, CGEN_FIELDS *fields_, bfd_vma value_)); #else long (*get_vma_operand) (); void (*set_vma_operand) (); --- 1280,1298 ---- #define CGEN_CPU_SIZEOF_FIELDS(cd) ((cd)->sizeof_fields) /* Set the bitsize field. */ ! void (*set_fields_bitsize) (CGEN_FIELDS *fields_, int size_); #define CGEN_CPU_SET_FIELDS_BITSIZE(cd) ((cd)->set_fields_bitsize) /* CGEN_FIELDS accessors. */ int (*get_int_operand) ! (CGEN_CPU_DESC, int opindex_, const CGEN_FIELDS *fields_); void (*set_int_operand) ! (CGEN_CPU_DESC, int opindex_, CGEN_FIELDS *fields_, int value_); #ifdef __BFD_H_SEEN__ bfd_vma (*get_vma_operand) ! (CGEN_CPU_DESC, int opindex_, const CGEN_FIELDS *fields_); void (*set_vma_operand) ! (CGEN_CPU_DESC, int opindex_, CGEN_FIELDS *fields_, bfd_vma value_); #else long (*get_vma_operand) (); void (*set_vma_operand) (); *************** typedef struct cgen_cpu_desc *** 1314,1332 **** #define CGEN_PRINT_FN(cd, insn) (cd->print_handlers[(insn)->opcode->handlers.print]) /* Return non-zero if insn should be added to hash table. */ ! int (* asm_hash_p) PARAMS ((const CGEN_INSN *)); /* Assembler hash function. */ ! unsigned int (* asm_hash) PARAMS ((const char *)); /* Number of entries in assembler hash table. */ unsigned int asm_hash_size; /* Return non-zero if insn should be added to hash table. */ ! int (* dis_hash_p) PARAMS ((const CGEN_INSN *)); /* Disassembler hash function. */ ! unsigned int (* dis_hash) PARAMS ((const char *, CGEN_INSN_INT)); /* Number of entries in disassembler hash table. */ unsigned int dis_hash_size; --- 1314,1332 ---- #define CGEN_PRINT_FN(cd, insn) (cd->print_handlers[(insn)->opcode->handlers.print]) /* Return non-zero if insn should be added to hash table. */ ! int (* asm_hash_p) (const CGEN_INSN *); /* Assembler hash function. */ ! unsigned int (* asm_hash) (const char *); /* Number of entries in assembler hash table. */ unsigned int asm_hash_size; /* Return non-zero if insn should be added to hash table. */ ! int (* dis_hash_p) (const CGEN_INSN *); /* Disassembler hash function. */ ! unsigned int (* dis_hash) (const char *, CGEN_INSN_INT); /* Number of entries in disassembler hash table. */ unsigned int dis_hash_size; *************** extern CGEN_CPU_DESC CGEN_SYM (cpu_open) *** 1381,1461 **** /* Cover fn to handle simple case. */ ! extern CGEN_CPU_DESC CGEN_SYM (cpu_open_1) PARAMS ((const char *mach_name_, ! enum cgen_endian endian_)); /* Close it. */ ! extern void CGEN_SYM (cpu_close) PARAMS ((CGEN_CPU_DESC)); /* Initialize the opcode table for use. Called by init_asm/init_dis. */ ! extern void CGEN_SYM (init_opcode_table) PARAMS ((CGEN_CPU_DESC cd_)); /* build the insn selection regex. called by init_opcode_table */ ! extern char * CGEN_SYM(build_insn_regex) PARAMS ((CGEN_INSN *insn_)); /* Initialize the ibld table for use. Called by init_asm/init_dis. */ ! extern void CGEN_SYM (init_ibld_table) PARAMS ((CGEN_CPU_DESC cd_)); /* Initialize an cpu table for assembler or disassembler use. These must be called immediately after cpu_open. */ ! extern void CGEN_SYM (init_asm) PARAMS ((CGEN_CPU_DESC)); ! extern void CGEN_SYM (init_dis) PARAMS ((CGEN_CPU_DESC)); /* Initialize the operand instance table for use. */ ! extern void CGEN_SYM (init_opinst_table) PARAMS ((CGEN_CPU_DESC cd_)); /* Assemble an instruction. */ extern const CGEN_INSN * CGEN_SYM (assemble_insn) ! PARAMS ((CGEN_CPU_DESC, const char *, CGEN_FIELDS *, ! CGEN_INSN_BYTES_PTR, char **)); extern const CGEN_KEYWORD CGEN_SYM (operand_mach); ! extern int CGEN_SYM (get_mach) PARAMS ((const char *)); /* Operand index computation. */ extern const CGEN_INSN * cgen_lookup_insn ! PARAMS ((CGEN_CPU_DESC, const CGEN_INSN * insn_, ! CGEN_INSN_INT int_value_, unsigned char *bytes_value_, ! int length_, CGEN_FIELDS *fields_, int alias_p_)); extern void cgen_get_insn_operands ! PARAMS ((CGEN_CPU_DESC, const CGEN_INSN * insn_, ! const CGEN_FIELDS *fields_, int *indices_)); extern const CGEN_INSN * cgen_lookup_get_insn_operands ! PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *insn_, ! CGEN_INSN_INT int_value_, unsigned char *bytes_value_, ! int length_, int *indices_, CGEN_FIELDS *fields_)); /* Cover fns to bfd_get/set. */ extern CGEN_INSN_INT cgen_get_insn_value ! PARAMS ((CGEN_CPU_DESC, unsigned char *, int)); extern void cgen_put_insn_value ! PARAMS ((CGEN_CPU_DESC, unsigned char *, int, CGEN_INSN_INT)); /* Read in a cpu description file. ??? For future concerns, including adding instructions to the assembler/ disassembler at run-time. */ ! extern const char * cgen_read_cpu_file ! PARAMS ((CGEN_CPU_DESC, const char * filename_)); /* Allow signed overflow of instruction fields. */ ! extern void cgen_set_signed_overflow_ok PARAMS ((CGEN_CPU_DESC)); /* Generate an error message if a signed field in an instruction overflows. */ ! extern void cgen_clear_signed_overflow_ok PARAMS ((CGEN_CPU_DESC)); /* Will an error message be generated if a signed field in an instruction overflows ? */ ! extern unsigned int cgen_signed_overflow_ok_p PARAMS ((CGEN_CPU_DESC)); #endif /* CGEN_H */ --- 1381,1460 ---- /* Cover fn to handle simple case. */ ! extern CGEN_CPU_DESC CGEN_SYM (cpu_open_1) ! (const char *mach_name_, enum cgen_endian endian_); /* Close it. */ ! extern void CGEN_SYM (cpu_close) (CGEN_CPU_DESC); /* Initialize the opcode table for use. Called by init_asm/init_dis. */ ! extern void CGEN_SYM (init_opcode_table) (CGEN_CPU_DESC cd_); /* build the insn selection regex. called by init_opcode_table */ ! extern char * CGEN_SYM(build_insn_regex) (CGEN_INSN *insn_); /* Initialize the ibld table for use. Called by init_asm/init_dis. */ ! extern void CGEN_SYM (init_ibld_table) (CGEN_CPU_DESC cd_); /* Initialize an cpu table for assembler or disassembler use. These must be called immediately after cpu_open. */ ! extern void CGEN_SYM (init_asm) (CGEN_CPU_DESC); ! extern void CGEN_SYM (init_dis) (CGEN_CPU_DESC); /* Initialize the operand instance table for use. */ ! extern void CGEN_SYM (init_opinst_table) (CGEN_CPU_DESC cd_); /* Assemble an instruction. */ extern const CGEN_INSN * CGEN_SYM (assemble_insn) ! (CGEN_CPU_DESC, const char *, CGEN_FIELDS *, ! CGEN_INSN_BYTES_PTR, char **); extern const CGEN_KEYWORD CGEN_SYM (operand_mach); ! extern int CGEN_SYM (get_mach) (const char *); /* Operand index computation. */ extern const CGEN_INSN * cgen_lookup_insn ! (CGEN_CPU_DESC, const CGEN_INSN * insn_, ! CGEN_INSN_INT int_value_, unsigned char *bytes_value_, ! int length_, CGEN_FIELDS *fields_, int alias_p_); extern void cgen_get_insn_operands ! (CGEN_CPU_DESC, const CGEN_INSN * insn_, ! const CGEN_FIELDS *fields_, int *indices_); extern const CGEN_INSN * cgen_lookup_get_insn_operands ! (CGEN_CPU_DESC, const CGEN_INSN *insn_, ! CGEN_INSN_INT int_value_, unsigned char *bytes_value_, ! int length_, int *indices_, CGEN_FIELDS *fields_); /* Cover fns to bfd_get/set. */ extern CGEN_INSN_INT cgen_get_insn_value ! (CGEN_CPU_DESC, unsigned char *, int); extern void cgen_put_insn_value ! (CGEN_CPU_DESC, unsigned char *, int, CGEN_INSN_INT); /* Read in a cpu description file. ??? For future concerns, including adding instructions to the assembler/ disassembler at run-time. */ ! extern const char * cgen_read_cpu_file (CGEN_CPU_DESC, const char * filename_); /* Allow signed overflow of instruction fields. */ ! extern void cgen_set_signed_overflow_ok (CGEN_CPU_DESC); /* Generate an error message if a signed field in an instruction overflows. */ ! extern void cgen_clear_signed_overflow_ok (CGEN_CPU_DESC); /* Will an error message be generated if a signed field in an instruction overflows ? */ ! extern unsigned int cgen_signed_overflow_ok_p (CGEN_CPU_DESC); #endif /* CGEN_H */ -- Michael Meissner email: gnu@the-meissners.org http://www.the-meissners.org