X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fmips%2Fmips_nodes_attr.h;h=e08ab998259c0f2e785e415f9e7524951d1acd46;hb=29bb6875dc277a493d3764d1ef69d05100de03c0;hp=5d1a4793bb81882f6df701803e0e297fb10c5c6a;hpb=86fe675b2126c88d1417ff62ac31dbb08a709b0e;p=libfirm diff --git a/ir/be/mips/mips_nodes_attr.h b/ir/be/mips/mips_nodes_attr.h index 5d1a4793b..e08ab9982 100644 --- a/ir/be/mips/mips_nodes_attr.h +++ b/ir/be/mips/mips_nodes_attr.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved. + * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. * * This file is part of libFirm. * @@ -28,23 +28,37 @@ #include "../bearch_t.h" #include "irmode_t.h" +#include "irnode_t.h" -typedef struct _mips_attr_t { +typedef struct mips_attr_t { + except_attr exc; /**< the exception attribute. MUST be the first one. */ arch_irn_flags_t flags; /**< indicating if spillable, rematerializeable ... etc. */ - int n_res; /**< number of results for this node */ - tarval *tv; /**< contains the immediate value */ - ir_entity *symconst; - - ir_mode *original_mode; /**< contains the original mode of the node */ - ir_entity *stack_entity; /**< contains the entity on the stack for a load/store mode */ int switch_default_pn; /**< proj number of default case in switch */ const arch_register_req_t **in_req; /**< register requirements for arguments */ const arch_register_req_t **out_req; /**< register requirements for results */ - /* must be last, dynamically allocated */ - const arch_register_t *slots[1]; /**< register slots for assigned registers */ + const arch_register_t **slots; /**< register slots for assigned registers */ } mips_attr_t; +typedef enum mips_immediate_type_t { + MIPS_IMM_CONST, + MIPS_IMM_SYMCONST_LO, + MIPS_IMM_SYMCONST_HI +} mips_immediate_type_t; + +typedef struct mips_immediate_attr_t { + mips_attr_t attr; + mips_immediate_type_t imm_type; + ir_entity *entity; + long val; +} mips_immediate_attr_t; + +typedef struct mips_load_store_attr_t { + mips_attr_t attr; + ir_entity *stack_entity; + long offset; +} mips_load_store_attr_t; + #endif