Commit graph

2890 commits

Author SHA1 Message Date
Dale Weiler
aed893b6b8 More work for arithmetic exception on vectors. 2014-05-24 23:21:20 -04:00
Dale Weiler
337d7ddbf4 soft float state defaults. 2014-05-24 22:40:14 -04:00
Dale Weiler
ff80bf1aa2 Only when arithmetic exceptions are enabled. 2014-05-24 22:13:47 -04:00
Dale Weiler
1497191e3c Perliminary work in arithmetic exception handling for vector operations in constant evaluator / folder. 2014-05-24 22:12:05 -04:00
Dale Weiler
3945f26d92 Put this back in global scope, we have a local scope test 2014-05-24 20:36:09 -04:00
Dale Weiler
4fa694fe82 Some CLZ for other toolchains. 2014-05-24 20:33:57 -04:00
Wolfgang Bumiller
edb38ce70e local compile-time const values are now created as globals, thus they're now subject to constant-folding 2014-05-24 19:13:49 +02:00
Wolfgang Bumiller
536138273f propagate the 'inexact' flag on when initializing a constant 2014-05-24 17:53:29 +02:00
Dale Weiler
68c2baa7c1 Mage inexact travel across constants. 2014-05-24 11:50:16 -04:00
Dale Weiler
05e20bcdda Some things. Fix testsuite as well. One test will fail (inexact). 2014-05-24 11:42:10 -04:00
Wolfgang Bumiller
f1ab19ba0b this should be NULL 2014-05-24 17:15:25 +02:00
Wolfgang Bumiller
b7b60e7468 Merge branch 'master' into cooking 2014-05-24 17:13:05 +02:00
Dale Weiler
bbeb2517c0 Arithmetic exception flag and a plethora of tests. 2014-05-24 10:38:02 -04:00
Dale Weiler
2917d39ef1 Don't forget the BSDmakefile too. 2014-05-24 10:04:14 -04:00
Dale Weiler
cc20d7e4e9 Disable stupid clang warning. 2014-05-24 10:02:58 -04:00
Dale Weiler
5dc7e62b19 Use flags instead. 2014-05-24 09:59:43 -04:00
Dale Weiler
6424ebaf98 Perliminary work on arithmetic exception handling in the constant evaluator. We can safely check for arithmetic underflow, overflow, divison by zero and inexactness now. Inexactness of expressions are propagated through the AST such that using an inexact value in a comparison will trigger a warning with -Winexact-compares. 2014-05-24 09:53:38 -04:00
Dale Weiler
7024ebfe7f Merge branch 'master' into cooking 2014-05-13 23:22:25 -04:00
Dale Weiler
a371c4ee27 On platforms that the byte order check fails on the runtime test is concluded instead. It still needs these swap functions at compile time since the runtime test has to run. This fixes a FTBFS on BE selected ARMs. 2014-05-09 02:39:25 -04:00
Wolfgang Bumiller
ba0ac97372 add tests for INSTR_STATE and -femulate-state 2014-04-08 14:35:11 +02:00
Wolfgang Bumiller
8dafdfc5e2 use INSTR_STATE by default, add -femulate-state to switch to emulation, and -state-fps=NUM to set its emulation FPS 2014-04-08 14:34:55 +02:00
Wolfgang Bumiller
0d8b0d419c implement INSTR_STATE in the qcvm 2014-04-08 14:34:26 +02:00
Dale Weiler
0d1a740bc7 Fix style 2014-04-08 05:06:16 -04:00
Dale Weiler
0db41f4279 Only increment the buffer location for macro output whitespace stripping if the situation is actually stripable, otherwise macros like #define foo(X) bar(#X), with foo(test) will expand to bartest) instead of bar(test). This should fix Xonotic builds. 2014-04-08 04:02:23 -04:00
Dale Weiler
15d1277158 Added memory protection to prevent mismatching of mem_d or vec_free on pointers which are otherwise unknown to be allocated memory or allocated vectors. Also fixed the preprocessor to only strip on ' ' and '\t' around macros. 2014-04-08 03:26:08 -04:00
Wolfgang Bumiller
2b7b2ea455 fix a silly macro issue 2014-04-07 14:28:11 +02:00
Wolfgang Bumiller
e8133893a0 Merge remote-tracking branch 'origin/master' into cooking 2014-04-07 14:23:35 +02:00
Dale Weiler
f1650c42d9 Match C's preprocessor semantics for token pasting with '##'. 2014-04-07 06:00:04 -04:00
Dale Weiler
606d7ac110 Eliminate debug log 2014-04-05 05:16:36 -04:00
Dale Weiler
90533079c8 Rework distro package build system. 2014-04-05 05:16:15 -04:00
Dale Weiler
fe14d1b056 Order 2014-04-05 02:53:03 -04:00
Dale Weiler
8250124c51 Consistency 2014-04-05 02:52:01 -04:00
Dale Weiler
8c0a280a3e Fixed Windows builds. Now we also build Win64 packages. 2014-04-05 02:50:07 -04:00
Dale Weiler
9e5d02dab0 Less parens 2014-03-17 10:24:48 -04:00
Dale Weiler
827826b9f9 Remove the qcint cast. 2014-03-17 10:23:13 -04:00
Dale Weiler
763e85b3ae Use powf instead of pow. 2014-03-17 09:43:17 -04:00
Dale Weiler
b21e967581 Fix left/right shift constant fold. 2014-03-17 09:41:53 -04:00
Dale Weiler
06e2cb2b1b Add qc_pow. 2014-03-17 09:39:59 -04:00
Wolfgang Bumiller
581c48e337 Merge pull request #142 from CurrentResident/big_endian_testsuite
Big endian testsuite
2014-02-23 12:31:01 +01:00
Jim Thoenen
56edc3db9c White space tweak 2014-02-22 22:21:29 -06:00
Jim Thoenen
52adc2113f Tweak for coding convention 2014-02-22 21:22:41 -06:00
Jim Thoenen
69b89dc6ac Allow testsuite to pass on big endian
Move the progs header and body byteswapping into util functions and
call those functions when either reading or writing the progs.
2014-02-10 20:31:54 -06:00
Wolfgang Bumiller
f7e074d88f Merge branch 'master' into cooking 2014-02-08 10:33:50 +01:00
Dale Weiler
7ffda37513 s/atanhf/atanh/ 2014-02-08 02:50:06 -05:00
Wolfgang Bumiller
24763aad65 moving the length multiplication for 64 bit types from util_endianswap into util_swap64; renaming length parameter to count 2014-02-02 11:04:18 +01:00
Dale Weiler
360389638b Merge pull request #141 from CurrentResident/big_endian_swap_fix
Big endian swap fix
2014-02-02 02:00:15 -08:00
Jim Thoenen
2ddb5ad50d Update per IRC peer review feedback
Restore the swap function's original name, remove convenience function,
use %u in log message, whitespace tweak.
2014-02-02 02:32:50 -06:00
Jim Thoenen
3070c03fc0 Oops, scale int64 count into int32 count for swapper. 2014-02-02 01:52:50 -06:00
Jim Thoenen
1bf9ebabcc Big-endian: Byteswap only the field contents when writing progs.dat
The previous code swapped not just the fields' contents themselves, but
also field positions within several of the structs, resulting in a
non-working progs.dat when compiled on big endian (ppc in my case).
Swapping on a field-by-field basis now.

Also:
* Addresses weird swap size requests (30+ bytes in one case)

* Take a guess at the right way to log a weird swap request before dying

* Fix swap array length scaling

* Rename the main swap function to reflect its native->little-endian
  purpose.  Figued that was okay because progs.dat is required to be
  always little-endian...

* Add a non-array version of the swap function for convenience
2014-02-02 00:57:02 -06:00
Wolfgang Bumiller
9cc4fe1ed2 Merge branch 'master' into cooking 2014-01-26 12:38:00 +01:00