sparc: implement float->unsigned conversions
[libfirm] / ir / be / amd64 / amd64_nodes_attr.h
index 6c18f14..035df02 100644 (file)
 /**
  * @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_immediate_attr_t
-{
-       unsigned imm_value; /**< the immediate value to load */
+       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_SymConst_attr_t
 {
-       ir_entity *entity;
+       amd64_attr_t  base;
+       ir_entity    *entity;
+       unsigned      fp_offset;
 };
 
 #define CAST_AMD64_ATTR(type,ptr)        ((type *)(ptr))