projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added missing API docu, improved existing API docu
[libfirm]
/
include
/
libfirm
/
be.h
diff --git
a/include/libfirm/be.h
b/include/libfirm/be.h
index
a97ec1b
..
41d5454
100644
(file)
--- a/
include/libfirm/be.h
+++ b/
include/libfirm/be.h
@@
-38,18
+38,33
@@
* @{
*/
* @{
*/
-typedef enum {
- ASM_CONSTRAINT_FLAG_NONE = 0,
+/**
+ * flags categorizing assembler constraint specifications
+ */
+typedef enum asm_constraint_flags_t {
+ ASM_CONSTRAINT_FLAG_NONE = 0, /**< no constraints */
+ /** input/output can be in a register */
ASM_CONSTRAINT_FLAG_SUPPORTS_REGISTER = 1u << 0,
ASM_CONSTRAINT_FLAG_SUPPORTS_REGISTER = 1u << 0,
+ /** input/output can be read/written to/from a memory address */
ASM_CONSTRAINT_FLAG_SUPPORTS_MEMOP = 1u << 1,
ASM_CONSTRAINT_FLAG_SUPPORTS_MEMOP = 1u << 1,
+ /** input can be encoded as an immediate number */
ASM_CONSTRAINT_FLAG_SUPPORTS_IMMEDIATE = 1u << 2,
ASM_CONSTRAINT_FLAG_SUPPORTS_IMMEDIATE = 1u << 2,
+ /** the constraint is not supported yet by libFirm */
ASM_CONSTRAINT_FLAG_NO_SUPPORT = 1u << 3,
ASM_CONSTRAINT_FLAG_NO_SUPPORT = 1u << 3,
+ /** The input is also written to */
ASM_CONSTRAINT_FLAG_MODIFIER_WRITE = 1u << 4,
ASM_CONSTRAINT_FLAG_MODIFIER_WRITE = 1u << 4,
+ /** the input is not written to */
ASM_CONSTRAINT_FLAG_MODIFIER_NO_WRITE = 1u << 5,
ASM_CONSTRAINT_FLAG_MODIFIER_NO_WRITE = 1u << 5,
+ /** the input is read */
ASM_CONSTRAINT_FLAG_MODIFIER_READ = 1u << 6,
ASM_CONSTRAINT_FLAG_MODIFIER_READ = 1u << 6,
+ /** the input is not read */
ASM_CONSTRAINT_FLAG_MODIFIER_NO_READ = 1u << 7,
ASM_CONSTRAINT_FLAG_MODIFIER_NO_READ = 1u << 7,
+ /** the value is modified before all inputs to the asm block
+ * are handled. */
ASM_CONSTRAINT_FLAG_MODIFIER_EARLYCLOBBER = 1u << 8,
ASM_CONSTRAINT_FLAG_MODIFIER_EARLYCLOBBER = 1u << 8,
+ /** This operand and the following operand are commutative */
ASM_CONSTRAINT_FLAG_MODIFIER_COMMUTATIVE = 1u << 9,
ASM_CONSTRAINT_FLAG_MODIFIER_COMMUTATIVE = 1u << 9,
+ /** invalid constraint (due to parse error) */
ASM_CONSTRAINT_FLAG_INVALID = 1u << 10
} asm_constraint_flags_t;
ENUM_BITSET(asm_constraint_flags_t)
ASM_CONSTRAINT_FLAG_INVALID = 1u << 10
} asm_constraint_flags_t;
ENUM_BITSET(asm_constraint_flags_t)
@@
-138,7
+153,7
@@
typedef struct backend_params {
FIRM_API int be_parse_arg(const char *arg);
/**
FIRM_API int be_parse_arg(const char *arg);
/**
- * Return the backend configuration parameter.
+ * Return
s
the backend configuration parameter.
*
* @return libFirm configuration parameters for the selected
* backend
*
* @return libFirm configuration parameters for the selected
* backend