Bill Currie
086fd0f3c3
Correct a comment.
2012-11-30 13:57:08 +09:00
Bill Currie
8d23573ebb
Move the mingw stuff to a more realistic place.
...
If I ever get mxe built, I'll update for that.
2012-11-30 13:40:46 +09:00
Bill Currie
0bdf511da6
Fix qf-release to work with the new mingw cross scripts.
2012-11-29 11:39:58 +09:00
Bill Currie
433b3c0b31
make distcheck fixes.
2012-11-29 11:34:34 +09:00
Bill Currie
6857fe55ce
Make all the cross-compiling scripts consistent.
...
Now all cross builds automatically build qfcc and pak, bail on error, and
use pkg-config correctly.
2012-11-29 11:19:09 +09:00
Bill Currie
042cae29b1
Use pkg-config when checking for sdl.
...
This makes setting up for cross-compiling cleaner.
2012-11-29 11:16:06 +09:00
Bill Currie
568b719c1b
Make a bunch of improvements to the droid cross scripts.
...
Native versions of qfcc and pak are now built automatically, and the
android toolchain now defaults to a more sensible place. Also, the separate
pkg-config replacement is no longer necessary.
2012-11-29 10:30:36 +09:00
Bill Currie
e97193faf6
Add error to stub.c.
...
It turns out libc has an "error" function too, but the android libc does
not, thus qfprogs wouldn't link when building for droid.
2012-11-29 10:26:19 +09:00
Bill Currie
69d9a2b452
Hit some inlining issues with a big stick.
...
It turns out gcc has a way to force functions to inline even when it thinks
doing so would not be a good idea (call to a modest sized function unlikely).
2012-11-29 10:18:52 +09:00
Bill Currie
b5f2da0b78
Copy the entity leaf leak from qw.
2012-11-29 10:15:52 +09:00
Bill Currie
a12eb940f1
Remove the hard-coded bsp maximum depths.
...
The depth limits in the gl and glsl renderers and in the trace code really
bothered me, but then the fix hit me: at load-time, recurse the trees
normally and record the depth in the appropriate place. The node stacks can
then be allocated as necessary (I chose to add a paranoia buffer of 2, but
I expect the maximum depth will rarely be used).
2012-11-28 21:29:03 +09:00
Bill Currie
7c3ad46b48
Correct the endianess.
...
mips-linux is little endian (missed edit from the copy from ps3)
2012-11-28 19:15:38 +09:00
Bill Currie
c4ba294433
Fix the icky fixme :)
2012-11-27 20:32:52 +09:00
Bill Currie
a91f4cedeb
Add the @nil keyword.
...
@nil is exactly the same as nil, but it is always available.
2012-11-27 18:33:42 +09:00
Bill Currie
edeffd64e9
Fix a missed obj_module_s/_t from the class cleanup.
...
Doesn't seem to have caused any problems, but still :)
2012-11-27 18:33:42 +09:00
Bill Currie
026a992179
Add a test case for the alias chain mangling.
...
I think I need to rework the tests to better handle compile-only tests.
2012-11-27 18:33:41 +09:00
Bill Currie
31b07bcbbf
Rewrite expr_alias().
...
Modifying the existing alias chain proved to be a bad idea (in retrospect,
I should have known better:P). Instead, just walk down any existing alias
chain to the root operand and build a new alias from that.
2012-11-27 18:33:41 +09:00
Bill Currie
1cd58b30f4
Fix the library dependencies for the servers.
...
It's so rarely I build without clients...
2012-11-27 13:18:23 +09:00
Bill Currie
62bac6e7b4
Add scripts for cross-compiling for mipsel-linux.
...
These are based on the ps3dev scripts, so native qfcc and pak are built
automatically.
Note that there may be a need to replace or even just nuke bison in the
toolchain as it is too old and can't build qfcc.
2012-11-27 13:18:23 +09:00
Bill Currie
215ff61216
Add a test for the dead boolean expression.
...
This tests the zombie label problem found via ctf.
2012-11-26 21:05:24 +09:00
Bill Currie
d6b38dd0ee
Add an option to control expr tree dumping.
...
About bloody time :P
2012-11-26 21:00:28 +09:00
Bill Currie
e28aa0a5fb
Fix some errors in the set code.
...
I really need to write some unit tests for the set code, but with this (and
an uncommitted dags patch (still thinking about it)) ctf compiles.
2012-11-26 17:19:02 +09:00
Bill Currie
8e225cd726
Fix a missing label use count decrement.
...
if statements in dead code weren't being removed due to the label.
2012-11-26 16:13:59 +09:00
Bill Currie
24847857ef
Fix some whitespace.
2012-11-26 16:13:40 +09:00
Bill Currie
128547b885
Resurrect the "next" pointers for labels and conditionals.
2012-11-26 16:09:53 +09:00
Bill Currie
f7417345ba
Rewrite print_bool to be more informative.
2012-11-26 15:47:10 +09:00
Bill Currie
147d00d41f
Rewrite print_block making it more informative.
2012-11-26 15:04:33 +09:00
Bill Currie
ce1d89ba50
Replace some of the quotes around node names.
...
Null expression pointers can show up unexpectedly, and printf's (null)
messes up dot.
2012-11-26 14:18:23 +09:00
Bill Currie
578ad07487
Fix yet another empty block issue.
...
I think I need to rework all the code in there, but this will do for now.
2012-11-25 15:01:36 +09:00
Bill Currie
f6e5428382
Don't create default_expr unless needed.
...
The goto for the default expression is the source of the mis-counted label
users: the label was being counted by the goto, but the goto was never
being inserted into the code (only v6 progs or "difficult" types insert the
goto).
2012-11-24 21:53:00 +09:00
Bill Currie
d0e56c91cc
Detect non-initial nodes with no predecessors.
...
Such nodes are unreachable code (ie, dead blocks), but the dead block
removal code failed to remove them (current known cause: miscounted label
userrs). As such blocks cause problems for data flow analysis, ignoring
them is not a good idea. Thus make them an internal error.
2012-11-24 21:39:02 +09:00
Bill Currie
4f8b3b5692
More empty block checks.
2012-11-24 19:06:10 +09:00
Bill Currie
6e7aaac1b9
Fix the wording of a comment.
2012-11-24 19:06:01 +09:00
Bill Currie
b68401e552
Produce a debug print when using jump tables.
2012-11-24 17:55:57 +09:00
Bill Currie
4c1dc568e0
Cop out on uninitialized large variables.
...
vectors, quaternions and structs are a little tricky. I need to think about
how to get them working, but I also want qfcc to get through as much code
as possible.
2012-11-24 16:49:46 +09:00
Bill Currie
40c97f9570
Tread immediate move statements similarly to assignments.
...
They're used for structure assignment in near data space. This fixes the
bogus uninitialized warnings on fully initialized structs.
2012-11-24 16:47:44 +09:00
Bill Currie
7f229b7682
Remove execessive html quoting.
...
Heh, I must have put that in long before I did the quoting functions.
2012-11-24 15:42:21 +09:00
Bill Currie
dbbca47a3b
Mark initialized struct/array defs as initalized.
...
Also, use the initialized flag for setting up the initalized var set in
flow_uninitialized().
2012-11-24 15:26:27 +09:00
Bill Currie
f4604d9db5
Remove gotos that go to the following statement.
...
eg:
goto foo:
foo:
//some code
2012-11-24 15:08:48 +09:00
Bill Currie
738fc65e0f
Treat global vars as always live.
...
This fixes the infloop.r test.
2012-11-24 14:56:30 +09:00
Bill Currie
2478b053de
Add a test for writes to global vars in a loop.
2012-11-24 14:53:45 +09:00
Bill Currie
bdafdad0d5
Treat flow control statements separately.
...
I'm not convinced this is the correct fix for while (count--), but it does
work.
2012-11-24 12:53:51 +09:00
Bill Currie
67b796f851
Fix a silly error in bsp extents checking.
...
Found while hunting for rhinodemons.
2012-11-23 14:38:15 +09:00
Bill Currie
fe9fb41f93
Correct some very suspicious looking code.
...
While accessing short foo[2][4]; as foo[0][0..7] should work in theory, who
knows what gcc does with it when optimizing. I don't know if this will fix
johnnyonflame's bsp loading problem, but no point in having rhinodemonic
code hanging around.
2012-11-23 14:35:34 +09:00
Bill Currie
65024af8c4
Ignore some files.
...
The problem with building out-of-tree :P
2012-11-23 14:34:48 +09:00
Bill Currie
bc26cd24c8
Make structptr.r a little quieter.
2012-11-22 21:59:01 +09:00
Bill Currie
607d7dd45e
Simplify the child match in dagnode_match.
...
I have no idea why I did it that way when all that's needed is to check the
child pointers. Well, that's modulo.r fixed :)
2012-11-22 21:59:01 +09:00
Bill Currie
64d9bbd230
Make the failure message clearer.
2012-11-22 21:59:01 +09:00
Bill Currie
b920a4dec9
Add a new test case.
...
It turns out that the optimizer completely breaks (a + b) % (a - b) with v6
code.
2012-11-22 21:59:01 +09:00
Bill Currie
47decd58d0
Support testing v6 progs.
...
v6 progs return float rather than int (they don't have int).
2012-11-22 21:59:01 +09:00