#include <stddef.h>#include <stdlib.h>#include <stdarg.h>#include <stdio.h>#include <assert.h>#include <vector>#include <list>#include <algorithm>#include "topcode.h"#include "gen_util.h"#include "isa_operands_gen.h"
Go to the source code of this file.
Classes | |
| struct | operand_value_type |
| struct | operands_group |
| struct | operand_use_type |
Defines | |
| #define | FNAME "targ_isa_operands" |
Typedefs | |
| typedef struct operand_value_type * | OPERAND_VALUE_TYPE |
| typedef struct operands_group * | OPERANDS_GROUP |
Functions | |
| void | ISA_Operands_Begin (const char *) |
| OPERAND_VALUE_TYPE | ISA_Reg_Opnd_Type_Create (const char *name, ISA_REGISTER_CLASS register_class, ISA_REGISTER_SUBCLASS subclass, int size, RTYPE type, FP_TYPE fp_int) |
| OPERAND_VALUE_TYPE | ISA_Lit_Opnd_Type_Create (const char *name, int size, RTYPE type, ISA_LIT_CLASS literal_class) |
| OPERAND_VALUE_TYPE | ISA_Enum_Opnd_Type_Create (const char *name, int size, RTYPE type, ISA_ENUM_CLASS enum_class) |
| OPERAND_USE_TYPE | Create_Operand_Use (const char *name) |
| void | Instruction_Group (const char *name,...) |
| void | Operand (int operand_index, OPERAND_VALUE_TYPE operand_type, OPERAND_USE_TYPE operand_use) |
| void | Relocatable (int operand_index) |
| void | Result (int result_index, OPERAND_VALUE_TYPE result_type) |
| void | ISA_Operands_End (void) |
Variables | |
| static vector< OPERANDS_GROUP > | op_groups |
| static OPERANDS_GROUP | cur_oper_group |
| static list< OPERAND_VALUE_TYPE > | all_operand_types |
| static list< OPERAND_USE_TYPE > | all_use_types |
| static list< OPERANDS_GROUP > | all_groups |
| static int | max_operands = 0 |
| static int | max_results = 0 |
| static int | max_valtypes = 0 |
| static int | max_groups = 0 |
| static int | max_uses = 0 |
| static const char *const | interface [] |
| #define FNAME "targ_isa_operands" |
| typedef struct operand_value_type* OPERAND_VALUE_TYPE |
Definition at line 45 of file isa_operands_gen.cxx.
| typedef struct operands_group * OPERANDS_GROUP |
| OPERAND_USE_TYPE Create_Operand_Use | ( | const char * | name | ) |
Definition at line 377 of file isa_operands_gen.cxx.
References all_use_types, operand_use_type::index, max_uses, operand_use_type::name, and result.
Referenced by main().
| void Instruction_Group | ( | const char * | name, | |
| ... | ||||
| ) |
Definition at line 394 of file isa_operands_gen.cxx.
References all_groups, cur_oper_group, fprintf(), operands_group::index, max_groups, operands_group::name, op_groups, operands_group::operands, operands_group::opnd_count, operands_group::opnd_use, operands_group::relocatable_opnd, operands_group::res_use, operands_group::result_count, and operands_group::results.
Referenced by main().

| OPERAND_VALUE_TYPE ISA_Enum_Opnd_Type_Create | ( | const char * | name, | |
| int | size, | |||
| RTYPE | type, | |||
| ISA_ENUM_CLASS | enum_class | |||
| ) |
Definition at line 341 of file isa_operands_gen.cxx.
References all_operand_types, operand_value_type::enum_class, exit(), fprintf(), operand_value_type::index, operand_value_type::is_fpu_int, operand_value_type::is_pcrel, operand_value_type::is_register, operand_value_type::is_signed, operand_value_type::literal_class, max_valtypes, operand_value_type::name, operand_value_type::register_class, operand_value_type::register_subclass, result, SIGNED, operand_value_type::size, and UNSIGNED.
Referenced by main().

| OPERAND_VALUE_TYPE ISA_Lit_Opnd_Type_Create | ( | const char * | name, | |
| int | size, | |||
| RTYPE | type, | |||
| ISA_LIT_CLASS | literal_class | |||
| ) |
Definition at line 306 of file isa_operands_gen.cxx.
References all_operand_types, operand_value_type::enum_class, exit(), fprintf(), operand_value_type::index, operand_value_type::is_fpu_int, operand_value_type::is_pcrel, operand_value_type::is_register, operand_value_type::is_signed, operand_value_type::literal_class, max_valtypes, operand_value_type::name, PCREL, operand_value_type::register_class, operand_value_type::register_subclass, result, SIGNED, operand_value_type::size, and UNSIGNED.
Referenced by main().

| void ISA_Operands_Begin | ( | const char * | ) |
| void ISA_Operands_End | ( | void | ) |
Definition at line 498 of file isa_operands_gen.cxx.
References all_groups, all_operand_types, all_use_types, cfile, code, efile, Emit_Footer(), Emit_Header(), operand_value_type::enum_class, exit(), fprintf(), hfile, operands_group::index, operand_use_type::index, operand_value_type::index, interface, operand_value_type::is_fpu_int, operand_value_type::is_pcrel, operand_value_type::is_register, operand_value_type::is_signed, operand_value_type::literal_class, max_groups, max_operands, max_results, max_uses, operands_group::name, operand_value_type::name, operand_use_type::name, NULL, op_groups, operands_group::operands, operands_group::opnd_count, operands_group::opnd_use, operand_value_type::register_class, operand_value_type::register_subclass, operands_group::relocatable_opnd, operands_group::result_count, operands_group::results, and operand_value_type::size.
Referenced by main().

| OPERAND_VALUE_TYPE ISA_Reg_Opnd_Type_Create | ( | const char * | name, | |
| ISA_REGISTER_CLASS | register_class, | |||
| ISA_REGISTER_SUBCLASS | subclass, | |||
| int | size, | |||
| RTYPE | type, | |||
| FP_TYPE | fp_int | |||
| ) |
Definition at line 268 of file isa_operands_gen.cxx.
References all_operand_types, operand_value_type::enum_class, exit(), fprintf(), operand_value_type::index, operand_value_type::is_fpu_int, operand_value_type::is_pcrel, operand_value_type::is_register, operand_value_type::is_signed, operand_value_type::literal_class, max_valtypes, operand_value_type::name, operand_value_type::register_class, operand_value_type::register_subclass, result, SIGNED, operand_value_type::size, and UNSIGNED.
Referenced by main().

| void Operand | ( | int | operand_index, | |
| OPERAND_VALUE_TYPE | operand_type, | |||
| OPERAND_USE_TYPE | operand_use | |||
| ) |
Definition at line 431 of file isa_operands_gen.cxx.
References cur_oper_group, max_operands, NULL, operands_group::operands, operands_group::opnd_count, and operands_group::opnd_use.
Referenced by main().
| void Relocatable | ( | int | operand_index | ) |
Definition at line 458 of file isa_operands_gen.cxx.
References cur_oper_group, exit(), fprintf(), operands_group::name, and operands_group::relocatable_opnd.
Referenced by main().

| void Result | ( | int | result_index, | |
| OPERAND_VALUE_TYPE | result_type | |||
| ) |
Definition at line 472 of file isa_operands_gen.cxx.
References cur_oper_group, max_results, NULL, operands_group::res_use, operands_group::result_count, and operands_group::results.
Referenced by main().
list<OPERANDS_GROUP> all_groups [static] |
Definition at line 99 of file isa_operands_gen.cxx.
Referenced by Instruction_Group(), and ISA_Operands_End().
list<OPERAND_VALUE_TYPE> all_operand_types [static] |
Definition at line 97 of file isa_operands_gen.cxx.
Referenced by ISA_Enum_Opnd_Type_Create(), ISA_Lit_Opnd_Type_Create(), ISA_Operands_End(), and ISA_Reg_Opnd_Type_Create().
list<OPERAND_USE_TYPE> all_use_types [static] |
Definition at line 98 of file isa_operands_gen.cxx.
Referenced by Create_Operand_Use(), and ISA_Operands_End().
OPERANDS_GROUP cur_oper_group [static] |
Definition at line 96 of file isa_operands_gen.cxx.
Referenced by Instruction_Group(), Operand(), Relocatable(), and Result().
const char* const interface[] [static] |
Definition at line 109 of file isa_operands_gen.cxx.
Referenced by ISA_Operands_End().
int max_groups = 0 [static] |
Definition at line 104 of file isa_operands_gen.cxx.
Referenced by Instruction_Group(), and ISA_Operands_End().
int max_operands = 0 [static] |
Definition at line 101 of file isa_operands_gen.cxx.
Referenced by ISA_Operands_End(), and Operand().
int max_results = 0 [static] |
Definition at line 102 of file isa_operands_gen.cxx.
Referenced by ISA_Operands_End(), and Result().
int max_uses = 0 [static] |
Definition at line 105 of file isa_operands_gen.cxx.
Referenced by Create_Operand_Use(), and ISA_Operands_End().
int max_valtypes = 0 [static] |
Definition at line 103 of file isa_operands_gen.cxx.
Referenced by ISA_Enum_Opnd_Type_Create(), ISA_Lit_Opnd_Type_Create(), and ISA_Reg_Opnd_Type_Create().
vector<OPERANDS_GROUP> op_groups [static] |
Definition at line 95 of file isa_operands_gen.cxx.
Referenced by Instruction_Group(), ISA_Operands_Begin(), and ISA_Operands_End().
1.7.1