Bill Currie
|
85bffbcad0
|
Add is_integral() to check for integral types (integer, short, enum).
|
2011-03-06 11:25:12 +09:00 |
|
Bill Currie
|
17a9dff769
|
Avoid freeing an operand twice.
Due to the way operands are used, they can be freed twice in dead-statement
removal. Detect the double-free and ignore it.
|
2011-03-06 11:19:09 +09:00 |
|
Bill Currie
|
28f4de94d2
|
Fix switch statements so the work in the new scheme.
Convert case labels to be the same type as the switch expression.
Use alias expressions for the various test expressions.
|
2011-03-06 00:29:29 +09:00 |
|
Bill Currie
|
8cfa80b5d4
|
Implement think expressions.
|
2011-03-05 18:01:37 +09:00 |
|
Bill Currie
|
7209c61912
|
Fix initializing local float variables with an integer constant.
Run the assignment expression through fold_constants to handle any
necessary conversions and error checking.
|
2011-03-05 17:23:58 +09:00 |
|
Bill Currie
|
a3c1f339fc
|
Gracefully handle undefined symbols in entity field expressions.
|
2011-03-05 17:22:04 +09:00 |
|
Bill Currie
|
fbea276ede
|
Yet more tests.
|
2011-03-05 17:21:19 +09:00 |
|
Bill Currie
|
7314b944d5
|
Bring back the offset alias support.
Accidently nuked it when fixing .return etc.
|
2011-03-05 16:31:32 +09:00 |
|
Bill Currie
|
e7e8220246
|
Dump code addresses as hex, too.
|
2011-03-05 16:25:56 +09:00 |
|
Bill Currie
|
2f74e6e4bf
|
Nuke the old progs global.
It is no longer needed thanks to the new qfo conversion functions.
|
2011-03-05 16:24:53 +09:00 |
|
Bill Currie
|
fcb567fc98
|
Use the correct function number when updating the function def.
Functions are 1 based in progs bug 0 based in qfo files.
|
2011-03-05 16:00:39 +09:00 |
|
Bill Currie
|
535dfad305
|
Emit defs for far data.
They will break when the offsets exceed 64k, but they are needed for
debugging.
|
2011-03-05 15:59:14 +09:00 |
|
Bill Currie
|
97b1ceceb0
|
Fix line number info.
line number info is now 1 based rather than 0 based (to better detect when
a function does not have line number info).
|
2011-03-05 15:40:08 +09:00 |
|
Bill Currie
|
1dea86a3e4
|
Update debug info loading when dumping qfo files.
|
2011-03-05 14:53:41 +09:00 |
|
Bill Currie
|
cfefd79e07
|
Fix the source of bogus string relocs.
Nested aggregate initializers were corrupting themselves.
|
2011-03-05 09:21:12 +09:00 |
|
Bill Currie
|
7c95913c61
|
Avoid segfaulting with bad string relocs.
|
2011-03-05 09:07:16 +09:00 |
|
Bill Currie
|
8eb5fd653a
|
Perform the relocations!!!
line numbers seem to be broken, but the code itself looks good.
|
2011-03-05 08:41:14 +09:00 |
|
Bill Currie
|
fe7be543f8
|
Correctly update the offset of code relocs.
|
2011-03-05 08:39:47 +09:00 |
|
Bill Currie
|
7fd839a5ed
|
Handle chains of alias defs so relocs will be emitted.
|
2011-03-05 08:39:16 +09:00 |
|
Bill Currie
|
bbedbf5c9c
|
Add the .return etc symbols to the symbol table.
This puts their defs into the object file.
|
2011-03-05 08:37:51 +09:00 |
|
Bill Currie
|
c3f1c186f8
|
Resolve types of .return etc.
|
2011-03-05 08:36:55 +09:00 |
|
Bill Currie
|
af7bc81e16
|
Chain the types for the linker.
|
2011-03-05 08:35:56 +09:00 |
|
Bill Currie
|
0bd0f783b2
|
Update def offsets with their final locations.
|
2011-03-04 23:37:46 +09:00 |
|
Bill Currie
|
6d02555ca9
|
Reorganize the offset calculations.
keep the offset calculations separate from the data transfers for better
clarity in what is happening.
|
2011-03-04 23:31:09 +09:00 |
|
Bill Currie
|
e62163e569
|
Nuke any invalidated relocs.
|
2011-03-04 21:46:19 +09:00 |
|
Bill Currie
|
2565e0db32
|
Update reloc targets when linking.
|
2011-03-04 21:29:47 +09:00 |
|
Bill Currie
|
bc78b84869
|
Set the target of string relocs to the string index.
|
2011-03-04 21:29:10 +09:00 |
|
Bill Currie
|
7fb22bd1e4
|
Make D_STRING() more useful and add D_GETSTR()
|
2011-03-04 21:28:12 +09:00 |
|
Bill Currie
|
e04f6266b1
|
Nuke def_list from defref_t.
It didn't work :/.
|
2011-03-04 20:40:01 +09:00 |
|
Bill Currie
|
5a552d8841
|
Add the null function.
|
2011-03-04 20:29:40 +09:00 |
|
Bill Currie
|
368a3826be
|
Redo the offset and size calculations for qfo_to_progs().
|
2011-03-04 20:14:02 +09:00 |
|
Bill Currie
|
cd12a78f93
|
Replace some accidentally deleted code.
Forgot to commit it the first time round, then rebase messed me up and I
didn't notice until after pushing. *sigh*
|
2011-03-04 19:02:47 +09:00 |
|
Bill Currie
|
72fae608e5
|
Write the function start address to the progs file.
Oops:P
|
2011-03-04 18:46:28 +09:00 |
|
Bill Currie
|
2211a807d4
|
Do not relocate builtin functions.
|
2011-03-04 18:46:25 +09:00 |
|
Bill Currie
|
d6d8b5b49d
|
Generate the debug symbol file.
|
2011-03-04 18:46:05 +09:00 |
|
Bill Currie
|
9a96febdf5
|
Fix the hordes of bogus defs.
They were caused by unused external defs, so not processing unused externs
in the first place is the simplest solution.
|
2011-03-04 14:51:09 +09:00 |
|
Bill Currie
|
7b7f4c70e0
|
Correct non-external def processing.
|
2011-03-04 14:33:03 +09:00 |
|
Bill Currie
|
c5dac6d1d1
|
Transfer the type encoding.
oops
|
2011-03-04 14:29:22 +09:00 |
|
Bill Currie
|
d0b4546383
|
qfprogs isn't yet fully functional...
|
2011-03-04 13:54:29 +09:00 |
|
Bill Currie
|
2992d66f87
|
Simplify the tag used for anonymous structs etc.
Hopefully two files with the same file name won't have anonymous stucts on
the same line.
|
2011-03-04 13:52:32 +09:00 |
|
Bill Currie
|
e525727a24
|
Add a null type descriptor to the linker output.
|
2011-03-04 11:38:33 +09:00 |
|
Bill Currie
|
3a828ca5c2
|
Ensure work spaces are always connected to their data.
|
2011-03-04 11:18:56 +09:00 |
|
Bill Currie
|
45c3dd67a8
|
Some test updates.
|
2011-03-04 08:27:26 +09:00 |
|
Bill Currie
|
4192ef835c
|
Delay initialization of obj_module_t as long as possible.
This keeps the type descriptor out of progs that never use any
Objective-QC features.
|
2011-03-04 08:25:50 +09:00 |
|
Bill Currie
|
c99f3aba0e
|
Add the new header files for make dist.
|
2011-03-04 00:11:13 +09:00 |
|
Bill Currie
|
fd24524e13
|
More tests.
I really need to sort out some test automation.
|
2011-03-03 22:32:22 +09:00 |
|
Bill Currie
|
ee9045c377
|
Emit code for jump tables.
With this, the entirety of the ruamoko tree builds (though the progs will
be broken in various ways: mostly unrelocated references).
|
2011-03-03 19:09:00 +09:00 |
|
Bill Currie
|
a281033920
|
Alais the jump table's array to an integer.
As per the previous commit, I'm not sure this is the right thing to do, but
it works for now.
|
2011-03-03 19:07:37 +09:00 |
|
Bill Currie
|
4324486ae6
|
Give - unary expressions special treatment.
The progs engine has no neg instruction, so need to implement -val as
nil - val
|
2011-03-03 18:13:30 +09:00 |
|
Bill Currie
|
f9e177efd6
|
Obtain the label to be removed from the correct place.
This fixes the undetected dead block after "if return else return".
|
2011-03-03 17:50:46 +09:00 |
|