Age | Commit message (Collapse) | Author | |
---|---|---|---|
2021-03-31 | qbe: Use second argument of call/arg to store type name | Michael Forney | |
2021-03-31 | qbe: Use separate type for block/label | Michael Forney | |
Labels are no longer used as instruction arguments. | |||
2021-03-31 | qbe: Switch to fixed-size instruction struct | Michael Forney | |
Move jump and phi instructions to struct block, and function arguments to their own instruction. This will facilitate allocating instructions as an array. | |||
2021-03-27 | qbe: Change value kind naming scheme | Michael Forney | |
2020-05-24 | qbe: Omit unnecessary add to help QBE's memopt pass | Michael Forney | |
2020-01-31 | qbe: Make non-constant initializer expression a proper error | Michael Forney | |
2020-01-30 | Fix links to issue tracker | Michael Forney | |
2019-07-10 | Remove comment for completed TODO | Michael Forney | |
2019-07-05 | Specify function name in error message | Michael Forney | |
2019-07-05 | qbe: Handle K&R function definition argument promotion | Michael Forney | |
Parameters for K&R function definitions that are affected by default argument promotion are passed as their promoted type, so need to be converted back before storing into memory allocated for the parameter. | |||
2019-07-05 | qbe: Separate out value conversion from funcexpr | Michael Forney | |
2019-07-05 | Move some functions around | Michael Forney | |
2019-06-27 | qbe: Fix switch statements with 64-bit controlling expression | Michael Forney | |
2019-05-29 | Temporarily avoid %a when printing floating constants | Michael Forney | |
This is C99, but is not supported by fscanf in OpenBSD, so floating constants can't be read back in by QBE. | |||
2019-05-16 | qbe: Fix error check for invalid object | Michael Forney | |
The result of funcexpr might be NULL if we are in a dead branch, but this doesn't mean that we had an invalid object. | |||
2019-05-15 | Implement asm labels | Michael Forney | |
2019-05-12 | eval: Keep track of kind of constant expression we are evaluating | Michael Forney | |
When we are evaluating an arithmetic constant expression, we don't want to indroduce static data definitions for string or compound literals. Fixes #59. | |||
2019-05-10 | qbe: Fix QBE types for structs containing bit-fields | Michael Forney | |
2019-04-27 | Sign-extend result of bit-field assignments | Michael Forney | |
Fixes #51. Thanks to Andrew Chambers for the bug report and test case. | |||
2019-04-25 | qbe: Error out when va_arg is called with non-scalar type | Michael Forney | |
2019-04-24 | Use a common member for expression base | Michael Forney | |
2019-04-24 | Use a common member for expression op | Michael Forney | |
2019-04-24 | Free function call argument lists | Michael Forney | |
2019-04-24 | Free functions when we're done with them | Michael Forney | |
2019-04-24 | qbe: Make sure generated code doesn't depend on argument evaluation order | Michael Forney | |
It would be correct in any order, but this is a bit simpler and guarantees the same output. | |||
2019-04-23 | Fix integer promotion on bit-fields | Michael Forney | |
Fixes #47. | |||
2019-04-21 | Keep track of type properties in type | Michael Forney | |
2019-04-20 | Make basic types have their own kind | Michael Forney | |
2019-04-18 | Fix potential overflow of bit-field initializers into following member | Michael Forney | |
Fixes #46. Thanks to Andrew Chambers for the bug report. | |||
2019-04-17 | Merge map.h and tree.h into util.h | Michael Forney | |
2019-04-17 | Just use a single mapkey function | Michael Forney | |
2019-04-17 | htab -> map | Michael Forney | |
2019-04-17 | Implement bit-field initializers | Michael Forney | |
2019-04-16 | Error instead of segfault when working with `long double` | Michael Forney | |
2019-04-16 | Fix offset of initializer following fixed-length string | Michael Forney | |
2019-04-15 | Handle static sub-initializers | Michael Forney | |
2019-04-14 | Initial support for loading/storing bit-fields | Michael Forney | |
2019-04-06 | Track type qualifiers separately | Michael Forney | |
Using a special qualified type kind has a number of problems: - Important fields such as size, align, and incomplete may not be set, since the qualified type was created before a struct was completed. - When we don't care about type qualifiers (which is the usual case), we have to explicitly unqualify the type which is annoying and error-prone. Instead, in derived types, keep track of the qualifiers of the base type alongside the base type (similar to what is done for members, parameters, declarations, and expressions in the past few commits). | |||
2019-04-06 | Separate unqualified type and qualifiers in struct decl | Michael Forney | |
2019-04-06 | Separate unqualified type and qualifiers in struct member | Michael Forney | |
2019-04-06 | Separate unqualified type and qualifiers in struct param | Michael Forney | |
2019-04-06 | Separate unqualified type and qualifiers in struct expr | Michael Forney | |
2019-04-04 | Merge headers into cc.h | Michael Forney | |
2019-04-03 | Revert "Make member access its own expression type" | Michael Forney | |
This reverts commit b3865e402e426387d4cdccdcd249a02d5ba1bc05. This breaks member address expressions in static initializers. We can support bit-fields by instead adding a "bit-field" expression that affects loads and stores to the underlying object. | |||
2019-04-03 | Make member access its own expression type | Michael Forney | |
2019-03-15 | Start to handle overlapping initializers | Michael Forney | |
2019-03-14 | Abbreviate tag names | Michael Forney | |
2019-03-13 | Use instruction op for varargs call instead of "ellipsis" value | Michael Forney | |
2019-03-13 | Update __PRETTY_FUNCTION__ comment | Michael Forney | |
2019-03-13 | Make `struct function` opaque | Michael Forney | |