mirror of
https://github.com/DarkPlacesEngine/gmqcc.git
synced 2025-03-22 02:31:28 +00:00
Guard 2 peephole optimizations which should only work on the currently-last instruction by a check if it's actually really at the end...
This commit is contained in:
parent
f4d1ef4740
commit
99249c8fa3
2 changed files with 3 additions and 3 deletions
2
Makefile
2
Makefile
|
@ -9,7 +9,7 @@ CYGWIN = $(findstring CYGWIN, $(UNAME))
|
|||
MINGW = $(findstring MINGW32, $(UNAME))
|
||||
|
||||
CC ?= clang
|
||||
CFLAGS += -Wall -Wextra -I. -fno-strict-aliasing -fsigned-char -O2
|
||||
CFLAGS += -Wall -Wextra -I. -fno-strict-aliasing -fsigned-char
|
||||
CFLAGS += -DGMQCC_GITINFO="`git describe`"
|
||||
#turn on tons of warnings if clang is present
|
||||
# but also turn off the STUPID ONES
|
||||
|
|
4
ir.c
4
ir.c
|
@ -2884,7 +2884,7 @@ tailcall:
|
|||
if (onfalse->generated) {
|
||||
/* fixup the jump address */
|
||||
code_statements[stidx].o2.s1 = (onfalse->code_start) - (stidx);
|
||||
if (code_statements[stidx].o2.s1 == 1) {
|
||||
if (stidx+2 == vec_size(code_statements) && code_statements[stidx].o2.s1 == 1) {
|
||||
code_statements[stidx] = code_statements[stidx+1];
|
||||
if (code_statements[stidx].o1.s1 < 0)
|
||||
code_statements[stidx].o1.s1++;
|
||||
|
@ -2909,7 +2909,7 @@ tailcall:
|
|||
code_push_statement(&stmt, instr->context.line);
|
||||
return true;
|
||||
}
|
||||
else if (code_statements[stidx].o2.s1 == 1) {
|
||||
else if (stidx+2 == vec_size(code_statements) && code_statements[stidx].o2.s1 == 1) {
|
||||
code_statements[stidx] = code_statements[stidx+1];
|
||||
if (code_statements[stidx].o1.s1 < 0)
|
||||
code_statements[stidx].o1.s1++;
|
||||
|
|
Loading…
Reference in a new issue