/**
* @file
* @brief attributes attached to all amd64 nodes
- * @version $Id: amd64_nodes_attr.h 26317 2009-08-05 10:53:46Z matze $
*/
#ifndef FIRM_BE_amd64_amd64_NODES_ATTR_H
#define FIRM_BE_amd64_amd64_NODES_ATTR_H
-#include "../bearch.h"
+#include "bearch.h"
typedef struct amd64_attr_t amd64_attr_t;
-typedef struct amd64_immediate_attr_t amd64_immediate_attr_t;
+typedef struct amd64_SymConst_attr_t amd64_SymConst_attr_t;
struct amd64_attr_t
{
- const arch_register_req_t **in_req; /**< register requirements for arguments */
- const arch_register_req_t **out_req; /**< register requirements for results */
+ except_attr exc; /**< the exception attribute. MUST be the first one. */
+ ir_mode *ls_mode; /**< Stores the "input" mode */
+ struct amd64_attr_data_bitfield {
+ unsigned ins_permuted : 1; /**< inputs of node have been permuted
+ (for commutative nodes) */
+ unsigned cmp_unsigned : 1; /**< compare should be unsigned */
+ } data;
+ struct amd64_attr_extended {
+ ir_relation relation; /**< type of compare operation >*/
+ unsigned imm_value; /**< immediate value to use >*/
+ } ext;
};
-struct amd64_immediate_attr_t
+struct amd64_SymConst_attr_t
{
- unsigned imm_value; /**< the immediate value to load */
+ amd64_attr_t base;
+ ir_entity *entity;
+ unsigned fp_offset;
};
#define CAST_AMD64_ATTR(type,ptr) ((type *)(ptr))