diff options
| author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-12-12 11:03:04 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-07 21:06:02 -0700 |
| commit | 7f3a296bbbea7c06ccfff9d9ebe25e8f09696cbf (patch) | |
| tree | 1cac1709c03479e3286a11abdc45232a23a3cea1 /linearize.h | |
| parent | 7ec6f5462f09df41d61a986b80cf7a6cfb174464 (diff) | |
| download | sparse-dev-7f3a296bbbea7c06ccfff9d9ebe25e8f09696cbf.tar.gz | |
Make asm linearization not drop the constraints.
This also makes the OP_ASM data structures a bit more structured
in order to contain all the required information.
Diffstat (limited to 'linearize.h')
| -rw-r--r-- | linearize.h | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/linearize.h b/linearize.h index eb30e7f9..226cf837 100644 --- a/linearize.h +++ b/linearize.h @@ -39,6 +39,19 @@ struct multijmp { int begin, end; }; +struct asm_constraint { + pseudo_t pseudo; + const char *constraint; +}; + +DECLARE_PTR_LIST(asm_constraint_list, struct asm_constraint); + +struct asm_rules { + struct asm_constraint_list *inputs; + struct asm_constraint_list *outputs; + struct asm_constraint_list *clobbers; +}; + struct instruction { unsigned opcode:8, size:24; @@ -92,8 +105,7 @@ struct instruction { }; struct /* asm */ { const char *string; - struct pseudo_list *outputs; - struct pseudo_list *inputs; + struct asm_rules *asm_rules; }; }; }; |
