Bill Currie
20fd5eb80c
[qfcc] Show def size when dumping defs
2020-03-14 22:07:36 +09:00
Bill Currie
6ada20f685
[qfcc] Show offset for op_x_def_ofs relocs
2020-03-07 02:06:33 +09:00
Bill Currie
caa297b756
[qfcc] Remove type alias encoding
...
It proved to be too fragile in its current implementation. It broke
pointers to incomplete structs and switch enum checking, and getting it
to work for other things was overly invasive. I still want the encoding,
but need to come up with something more robust.a
2020-03-01 16:13:18 +09:00
Bill Currie
66dd3ef070
Make a bunch of count things positive-only
...
This fixes a pile of FIXMEs, because some things should never be
negative.
2020-02-25 21:23:13 +09:00
Bill Currie
282132958f
Relocate local def type encodings in debug load
...
For technical reasons (programmer laziness), qfcc does not fix up local
def type encodings when writing the debug symbols file (type encoding
location not readily accessible).
2020-02-25 20:46:01 +09:00
Bill Currie
89e83d7d73
Move the debug info out of progs_t
...
The debug subsystem now uses the resources system to ensure it cleans
up, and its data is now semi-private. Unfortunately, PR_LoadDebug had to
remain public for qfprogs because using PR_RunLoadFuncs would cause
builtin resolution to complain.
2020-02-25 20:07:29 +09:00
Bill Currie
1cfac0f11a
Resolve local def type encodings
...
They need to be resolved at load-time.
2020-02-25 00:12:02 +09:00
Bill Currie
b0157e5095
Fix qfo field dumping
2020-02-23 14:56:50 +09:00
Bill Currie
81083698a8
Move to using an in-memory form of ddef_t
...
This allows the VM to work with extended ddefs transparently. It seems
to have uncovered a typedef alias relocation bug, though.
2020-02-22 22:33:44 +09:00
Bill Currie
caf78b5422
Rename ty_none to ty_basic
...
This far better reflects the actual meaning. It is very likely that
ty_none is a holdover from long before there was full type encoding and
it meant that the union in qfcc's type_t had no data. This is still
true for basic types, but only if not a function, field or pointer type.
If the type was function, field or pointer, it was not true, so it was
misnamed pretty much from the start.
2020-02-21 17:52:00 +09:00
Bill Currie
6bc803c72d
Use correct encoding for alias types
...
I got confused which field was which.
2020-02-19 21:41:46 +09:00
Bill Currie
a5aba6c8ac
Implement type aliasing
...
The separate types are in the file, but there are multiple issues
2020-02-19 21:41:46 +09:00
Bill Currie
2f18364364
Start work on encoding typedef chains
2020-02-19 21:41:46 +09:00
Bill Currie
7a399c956b
Encode function parameter alignment
...
The encoding is 3:5 giving 3 bits for alignment (log2) and 5 bits for
size, with alignment in the 3 most significant bits. This keeps the
format backwards compatible as until doubles were added, all types were
aligned to 1 word which gets encoded as 0, and the size is unaffected.
2020-02-16 17:10:43 +09:00
Bill Currie
533fb8acc9
Implement double constants
2020-02-15 23:49:12 +09:00
Bill Currie
2ee36e8b99
Rename qfot_type_t.ty to meta
...
When I did up a ruamoko implementation of a type encoding dumper, I
named the field meta, which feels much better than ty.
2019-06-09 18:10:07 +09:00
Bill Currie
59e85b7d5e
Fix a pile of dead assignments.
...
Some were actual bugs!
2018-09-08 22:23:57 +09:00
Bill Currie
59b04dbcca
Make many qfo int fields unsigned.
...
I don't remember why I thought signed was a good idea, but unsigned does
make more sense for most fields.
2018-09-08 19:45:19 +09:00
Bill Currie
0ff6e8a471
Correct some spaces in the type dump output.
2012-12-13 13:33:13 +09:00
Bill Currie
d8a5d6745f
Add a param flag to defs.
...
It is necessary to know if a def is a function parameter so it can be
treated as initialized by the flow analyzer. The support for the flag in
object files is, at this stage, purely for debugging purposes.
2012-11-20 17:50:59 +09:00
Bill Currie
552142497e
Support progs.dat when dumping type encodings.
...
Knock up a quick and dirty progs-to-qfo "converter" (strings and types
only) to re-use the qfo types dumper.
2012-11-15 11:58:13 +09:00
Bill Currie
74ac4ee142
Fix a misplaced line.
2012-11-15 11:00:51 +09:00
Bill Currie
2685d38059
More paranoia when dumping qfo type encodings.
2012-11-14 16:32:41 +09:00
Bill Currie
d782622e74
Be more paranoid when dumping qfo type encodings.
2012-11-13 21:24:48 +09:00
Bill Currie
f002f3ad7a
Escape strings for reloc dumps.
...
Line feeds messing up the output wasn't nice :P.
2012-11-13 21:14:51 +09:00
Bill Currie
7a2f7e8982
Add some safety checks to progs global dumping.
...
Getting segfaults in the debug tools is not fun :P
Conflicts:
tools/qfcc/source/dump_globals.c
2012-11-09 12:30:14 +09:00
Bill Currie
1d060d1ac1
Quote string values when dumping globals.
...
Much nicer :)
2012-11-08 21:13:24 +09:00
Bill Currie
a3a22f2a1b
Add the ability to dump qfo type encoding.
2012-11-08 17:06:38 +09:00
Bill Currie
bc1b483525
Nuke the rcsid stuff.
...
It's pretty useless in git.
2012-04-22 10:56:32 +09:00
Bill Currie
e42c5a4272
More tests and fix vector/quaternion global dumps.
2011-08-11 14:58:13 +09:00
Bill Currie
8c8a6a4d63
The function return type is the address of the type descriptor...
2011-03-17 20:31:20 +09:00
Bill Currie
b2f0c9a127
Dump the local defs for functions when debug info is available.
2011-03-06 21:03:12 +09:00
Bill Currie
c29e0250e4
Make def_field_Ofs reloc dumps more informative.
2011-03-06 15:34:53 +09:00
Bill Currie
02766f0795
Do not try to dump def values from spaces with no data.
2011-03-06 15:33:53 +09:00
Bill Currie
e7e8220246
Dump code addresses as hex, too.
2011-03-05 16:25:56 +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
8b661bbb89
Rename qfo_reloc_t's def to target and correct its usage.
2011-02-27 11:37:24 +09:00
Bill Currie
58ac212b54
Fix qfo function dumping.
2011-02-25 13:37:23 +09:00
Bill Currie
2b3436beed
Fix qfo reloc dumping.
2011-02-25 13:29:09 +09:00
Bill Currie
f43eda63fe
Fix qfo global dumping.
2011-02-25 09:39:07 +09:00
Bill Currie
88cd37a3e2
Header update for the renamed files.
2011-02-24 13:00:19 +09:00
Bill Currie
5efeb7ebf8
Rename some files that have been bugging me.
2011-02-24 12:59:18 +09:00