Commit Graph

7107 Commits

Author SHA1 Message Date
Bill Currie 5231e8e9f8 Handle .zero, .return and .param* properly. 2011-01-26 08:01:24 +09:00
Bill Currie 4966120e3b Untwist param's knickers. 2011-01-25 20:21:41 +09:00
Bill Currie 6ce3c5a59a Get statments being emitted to the code segment.
The first function seems to work fine, but there's a problems with the
scope of params causing params to get their knickers in a twist (tangled
linked list).
2011-01-25 15:46:48 +09:00
Bill Currie fd3b594ca5 Move label relocs to the relevant statement block. 2011-01-25 15:45:31 +09:00
Bill Currie 849d013f5e Allocate space for function parameters. 2011-01-25 15:43:57 +09:00
Bill Currie f45919df09 Need alias defs after all. 2011-01-25 15:42:26 +09:00
Bill Currie a648f043de Give functions their own defspace.
The defspace is propogated through the function's sub-scopes.
2011-01-25 12:34:45 +09:00
Bill Currie 27c5139612 Give defspaces some backing memory.
I'm not sure I want all defspaces to have backing memory, but this will do
for now.
2011-01-25 12:16:13 +09:00
Bill Currie 34ffce50fa Ensure current_symtab gets set at the start of parsing.
current_symtab must be set even if the first thing encountered is a syntax
error.
2011-01-25 12:16:13 +09:00
Bill Currie 69b889756d Fix a misplaced ! 2011-01-25 12:16:13 +09:00
Bill Currie 726f293d0d Allocate space for defs and handle basic initializations.
Block initializers (arrays and structs) are still broken.
2011-01-25 12:16:13 +09:00
Bill Currie 30701980bc Get QC cfunctions and defs working. 2011-01-25 12:16:13 +09:00
Bill Currie ade2e92ea4 Fix the immediate breakage in immediate handling. 2011-01-25 09:08:11 +09:00
Bill Currie 7e914b8c53 Fix copyright headers.
Add forgotten templates and fill in the information in places I had
forgotten. I hope I got the dates right (timezone issues).
2011-01-25 09:01:37 +09:00
Bill Currie 49b7c2d527 Document make_symbol 2011-01-25 09:01:37 +09:00
Bill Currie 0624408317 Move the diagnostic functions into their own file. 2011-01-24 21:54:57 +09:00
Bill Currie d618e51dc8 Move save_string and make_string into strpool
Might not be the perfect place, but at least they're strongly related.
2011-01-24 21:32:48 +09:00
Bill Currie 483cbeba03 Fix a few FIXMEs. 2011-01-24 21:13:37 +09:00
Bill Currie afc5b2827d Simplify def handling, use far data.
Since there is now a proper symbol table, defs are now just references to
memory locations and the symbol table takes care of duplicates.

Also, start using far data for ObjQC structures.

The qfo functions have been stubbed out until I figure out what to do with
object files in the new scheme.
2011-01-24 15:41:43 +09:00
Bill Currie ce02fe8660 Fix the order of paramenters in the tree output.
Also get call nodes looking a little better.
2011-01-23 12:59:30 +09:00
Bill Currie a79b6f0a6c Partially implement casts. 2011-01-23 11:53:08 +09:00
Bill Currie bf626c9e00 Fix some simple fixmes 2011-01-23 11:13:56 +09:00
Bill Currie 20b14af024 Add "is_math" type check and use for unary +/-. 2011-01-23 11:12:58 +09:00
Bill Currie 341f370662 Rename is_math() to is_math_op(). 2011-01-23 11:12:05 +09:00
Bill Currie dea6771d92 Create type_nil for passing nil into ... 2011-01-22 16:41:31 +09:00
Bill Currie 4ac80c2932 Get qfcc running again.
It segs when it tries to link, but that's because a real object file has
not been created yet. However, I can get my tree and flow diagrams :)
2011-01-22 15:52:57 +09:00
Bill Currie 55d3d17807 Add a missing break.
"return" falling through to "goto" was bad news :)
2011-01-22 15:52:01 +09:00
Bill Currie d5f669af7a Nuke temp reference counting.
The whole reason for this crazy developement branch :)
2011-01-22 11:40:53 +09:00
Bill Currie 3b462e16cf Produce flow diagrams of the basic blocks. 2011-01-22 11:40:53 +09:00
Bill Currie 246778b5de Use function pointer tables instead of switch.
This seems to be better for complicated code. switch seems to be better
suited for relatively simple code.
2011-01-22 11:40:53 +09:00
Bill Currie 2f09efe547 Break out print_expr into its own file. 2011-01-21 20:31:40 +09:00
Bill Currie bcb2667b73 Possibly get vector calls working. 2011-01-21 19:40:46 +09:00
Bill Currie 52b561f7cb Nuke bind expressions.
Since I'm planning on implementing CSE and other optimizations, they're
rather redundant (and I'm having trouble getting them to work).
2011-01-21 19:07:58 +09:00
Bill Currie 0d01930056 Link a bool to its block rather than the block's head.
This makes the flow make a little more sense.
2011-01-21 18:50:17 +09:00
Bill Currie 977c48d728 Make operator type overrides clear. 2011-01-21 15:57:53 +09:00
Bill Currie aec9f256a7 Get calls mostly working.
Bind seems to be broken, but parameters seem to be being set correctly.
2011-01-21 15:54:53 +09:00
Bill Currie 5c5fa67e43 Minor tweaks of the expression tree output. 2011-01-21 15:34:42 +09:00
Bill Currie 96fae582e3 Implement bind expressions. 2011-01-21 11:27:40 +09:00
Bill Currie 4a24393d8d Temp expressions now use operands instead of defs. 2011-01-21 11:26:43 +09:00
Bill Currie 2998e578fb Get very basic deref assignments working.
More complicated expressions will not work yet.
2011-01-21 10:59:16 +09:00
Bill Currie ff6e2584da Handle block sub-expressions that produce results. 2011-01-21 10:57:47 +09:00
Bill Currie 16e013ff5d Allow the operand to override the symbol's type. 2011-01-21 10:56:32 +09:00
Bill Currie 3f2793ef72 Get a lot of statements being generated. 2011-01-20 23:26:13 +09:00
Bill Currie e45ea4b2ae Move the statement printing near the top of the file. 2011-01-20 18:07:24 +09:00
Bill Currie 35b7278967 Re-disable the next-edge constraints.
This gives a flatter layout.
2011-01-20 15:36:10 +09:00
Bill Currie 08e387ebac Slight improvement to branch instruction nodes/labels. 2011-01-20 15:33:13 +09:00
Bill Currie f8cc347dce Print expressions as dot files.
While the resulting images can be a little confusing, they're much easier
to read than my cryptic postfix notation.
2011-01-20 15:23:19 +09:00
Bill Currie 0594609b3a Get the label from the right expression. 2011-01-19 22:25:43 +09:00
Bill Currie 5deda9c9b9 Clean out ex_def as ex_symbol replaces it. 2011-01-19 22:25:04 +09:00
Bill Currie b5424bca7d Start work on getting expressions converted to internal statements. 2011-01-19 15:47:45 +09:00