projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Dump calling conventions for entities
[libfirm]
/
ir
/
ir
/
irmode.h
diff --git
a/ir/ir/irmode.h
b/ir/ir/irmode.h
index
42b566c
..
17a3a67
100644
(file)
--- a/
ir/ir/irmode.h
+++ b/
ir/ir/irmode.h
@@
-39,12
+39,12
@@
/**
* Contains relevant information about a mode.
*
/**
* Contains relevant information about a mode.
*
- * Nec
c
essary information about a mode is stored in this struct
+ * Necessary information about a mode is stored in this struct
* which is used by the tarval module to perform calculations
* and comparisons of values of a such described mode.
*
* ATTRIBUTES:
* which is used by the tarval module to perform calculations
* and comparisons of values of a such described mode.
*
* ATTRIBUTES:
- * - modecode code: An unambigous int (enum) for the mode
+ * - modecode code: An unambig
u
ous int (enum) for the mode
* - ident *name: Name of this mode. Two modes are different if the name is different.
* - mode_sort sort: sort of mode specifying possible usage categories
* - int size: size of the mode in Bits.
* - ident *name: Name of this mode. Two modes are different if the name is different.
* - mode_sort sort: sort of mode specifying possible usage categories
* - int size: size of the mode in Bits.
@@
-321,8
+321,11
@@
extern ir_mode *mode_C; /**< 8 bit char */
extern ir_mode *mode_U; /**< 16 bit unicode char */
extern ir_mode *mode_P; /**< pointer */
extern ir_mode *mode_U; /**< 16 bit unicode char */
extern ir_mode *mode_P; /**< pointer */
-extern ir_mode *mode_P_mach; /**< A pointer mode that is set by the client of libfirm. This mode
- represents the pointer size of the target machine. Is initialized
+extern ir_mode *mode_P_code; /**< A pointer mode that is set by the client of libfirm. This mode
+ represents the pointer size of the target machine code addresses. Is initialized
+ to mode_P. */
+extern ir_mode *mode_P_data; /**< A pointer mode that is set by the client of libfirm. This mode
+ represents the pointer size of the target machine data addresses. Is initialized
to mode_P. */
/* -- Auxiliary modes necessary for the Firm representation -- */
to mode_P. */
/* -- Auxiliary modes necessary for the Firm representation -- */
@@
-359,14
+362,23
@@
ir_mode *get_modeT(void);
ir_mode *get_modeANY(void);
ir_mode *get_modeBAD(void);
ir_mode *get_modeANY(void);
ir_mode *get_modeBAD(void);
-/** Returns the machine specific pointer mode. */
-ir_mode *get_modeP_mach(void);
+/** Returns the machine specific pointer mode for code addresses. */
+ir_mode *get_modeP_code(void);
+
+/** Returns the machine specific pointer mode for data addresses. */
+ir_mode *get_modeP_data(void);
/**
/**
- * Sets the machine specific pointer mode.
+ * Sets the machine specific pointer mode
for code addresses
.
* If not set, the predefined mode mode_P will be used.
*/
* If not set, the predefined mode mode_P will be used.
*/
-void set_modeP_mach(ir_mode *p);
+void set_modeP_code(ir_mode *p);
+
+/**
+ * Sets the machine specific pointer mode for data addresses.
+ * If not set, the predefined mode mode_P will be used.
+ */
+void set_modeP_data(ir_mode *p);
/**
Functions to check, whether a modecode is signed, float, int, character,
/**
Functions to check, whether a modecode is signed, float, int, character,
@@
-452,4
+464,12
@@
int mode_honor_signed_zeros(const ir_mode *mode);
*/
int mode_overflow_on_unary_Minus(const ir_mode *mode);
*/
int mode_overflow_on_unary_Minus(const ir_mode *mode);
+/**
+ * Returns non-zero if the mode has a reversed wrap-aound
+ * logic, especially (a + x) - x == a.
+ * This is normally true for integer modes, not for floating
+ * point modes.
+ */
+int mode_wrap_around(const ir_mode *mode);
+
#endif /* _IRMODE_H_ */
#endif /* _IRMODE_H_ */