X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fgmqcc.git;a=blobdiff_plain;f=gmqcc.ini.example;h=5c1ad3777a8c999ad7815492da0fec9f0ba3d927;hp=0a263df6da6631aeabfb159884ee30c3eb2bd093;hb=dac058107a33615a9279ed0ab73dadfc2fea5fd1;hpb=292c8150b47f3e6fb65125e08a3b3243dc655c5c diff --git a/gmqcc.ini.example b/gmqcc.ini.example index 0a263df..5c1ad37 100644 --- a/gmqcc.ini.example +++ b/gmqcc.ini.example @@ -62,6 +62,47 @@ FTEPP_PREDEFS = false + #Enable math constant definitions. This only works in combination + #with '-fftepp' and is currently not included by '-std=fteqcc'. + #The following macros will be added: + # + # M_E + # M_LOG2E + # M_LOG10E + # M_LN2 + # M_LN10 + # M_PI + # M_PI_2 + # M_PI_4 + # M_1_PI + # M_2_PI + # M_2_SQRTPI + # M_SQRT2 + # M_SQRT1_2 + # M_TAU + + FTEPP_MATHDEFS = false + + + #Enable indirect macro expansion. This only works in combination + #with '-fftepp' and is currently not included by '-std=fteqcc'. + #Enabling this behavior will allow the preprocessor to operate more + #like the standard C preprocessor in that it will allow arguments + #of macros which are macro-expanded to be substituted into the + #definition of the macro. As an example: + # + # #define STR1(x) #x + # #define STR2(x) STR1(x) + # #define THE_ANSWER 42 + # #define THE_ANSWER_STR STR2(THE_ANSWER) /* "42" */ + # + #With this enabled, an expansion of THE_ANSWER_STR will yield + #the string "42". With this disabled an expansion of THE_ANSWER_STR + #will yield "THE_ANSWER" + + FTEPP_INDIRECT_EXPANSION = false + + #Allow switch cases to use non constant variables. RELAXED_SWITCH = true @@ -288,10 +329,26 @@ SORT_OPERANDS = false + #Emulate OP_STATE operations in code rather than using the instruction. + #The desired fps can be set via -state-fps=NUM, defaults to 10. + + EMULATE_STATE = false + + + #Turn on arithmetic exception tests in the compiler. In constant expressions + #which trigger exceptions like division by zero, overflow, underflow, etc, + #the following flag will produce diagnostics for what triggered that + #exception. + ARITHMETIC_EXCEPTIONS = false + + #Split vector-literals which are only used dirctly as function parameters + #into 3 floats stored separately to reduce the number of globals at the + #expense of additional instructions. + SPLIT_VECTOR_PARAMETERS = false [warnings] #Generate a warning about variables which are declared but never - #used. This can be avoided by adding the ‘noref’ keyword in front + #used. This can be avoided by adding the ‘noref’ keyword in front #of the variable declaration. Additionally a complete section of #unreferenced variables can be opened using ‘#pragma noref 1’ and #closed via ‘#pragma noref 0’. @@ -299,6 +356,11 @@ UNUSED_VARIABLE = false + #Generate a warning about vector variables which are declared but + #components of it are never used. + + UNUSED_COMPONENT = false + #Generate a warning if it is possible that a variable can be used #without prior initialization. Note that this warning is not nec‐ #essarily reliable if the initialization happens only under cer‐ @@ -546,6 +608,12 @@ BUILTINS = true + #When comparing an inexact value such as `1.0/3.0' the result is + #pathologically wrong. Enabling this will trigger a compiler warning + #on such expressions. + INEXACT_COMPARES = true + + [optimizations] #Some general peephole optimizations. For instance the code `a = b #+ c` typically generates 2 instructions, an ADD and a STORE. This