X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fgmqcc.git;a=blobdiff_plain;f=ir.cpp;h=0f7989f328e2f8501f4158e73751cd28742548b7;hp=8388aab31df51492d1a40bbe665824f220a0c8fe;hb=f971f89e1e239a74fd34f9f5369993b25d5432ed;hpb=451873ae529289f4a22d8bbce6ebf0e074da8f2b diff --git a/ir.cpp b/ir.cpp index 8388aab..0f7989f 100644 --- a/ir.cpp +++ b/ir.cpp @@ -2515,7 +2515,7 @@ static bool gen_blocks_recursive(code_t *code, ir_function *func, ir_block *bloc stmt.opcode = INSTR_BITOR; stmt.o1.s1 = instr->_m_ops[1]->codeAddress(); stmt.o2.s1 = instr->_m_ops[2]->codeAddress(); - stmt.o3.s1 = instr->_m_ops[0]->codeAddress(); + stmt.o3.s1 = func->m_owner->m_vinstr_temp[1]->codeAddress(); code_push_statement(code, &stmt, instr->m_context); stmt.opcode = INSTR_BITAND; stmt.o1.s1 = instr->_m_ops[1]->codeAddress(); @@ -2523,7 +2523,7 @@ static bool gen_blocks_recursive(code_t *code, ir_function *func, ir_block *bloc stmt.o3.s1 = func->m_owner->m_vinstr_temp[0]->codeAddress(); code_push_statement(code, &stmt, instr->m_context); stmt.opcode = INSTR_SUB_F; - stmt.o1.s1 = instr->_m_ops[0]->codeAddress(); + stmt.o1.s1 = func->m_owner->m_vinstr_temp[1]->codeAddress(); stmt.o2.s1 = func->m_owner->m_vinstr_temp[0]->codeAddress(); stmt.o3.s1 = instr->_m_ops[0]->codeAddress(); code_push_statement(code, &stmt, instr->m_context); @@ -2575,7 +2575,7 @@ static bool gen_blocks_recursive(code_t *code, ir_function *func, ir_block *bloc stmt.opcode = INSTR_BITOR; stmt.o1.s1 = instr->_m_ops[1]->codeAddress() + j; stmt.o2.s1 = instr->_m_ops[2]->codeAddress() + j; - stmt.o3.s1 = instr->_m_ops[0]->codeAddress() + j; + stmt.o3.s1 = func->m_owner->m_vinstr_temp[1]->codeAddress() + j; code_push_statement(code, &stmt, instr->m_context); stmt.opcode = INSTR_BITAND; stmt.o1.s1 = instr->_m_ops[1]->codeAddress() + j; @@ -2584,7 +2584,7 @@ static bool gen_blocks_recursive(code_t *code, ir_function *func, ir_block *bloc code_push_statement(code, &stmt, instr->m_context); } stmt.opcode = INSTR_SUB_V; - stmt.o1.s1 = instr->_m_ops[0]->codeAddress(); + stmt.o1.s1 = func->m_owner->m_vinstr_temp[1]->codeAddress(); stmt.o2.s1 = func->m_owner->m_vinstr_temp[0]->codeAddress(); stmt.o3.s1 = instr->_m_ops[0]->codeAddress(); code_push_statement(code, &stmt, instr->m_context); @@ -2632,7 +2632,7 @@ static bool gen_blocks_recursive(code_t *code, ir_function *func, ir_block *bloc stmt.opcode = INSTR_BITOR; stmt.o1.s1 = instr->_m_ops[1]->codeAddress() + j; stmt.o2.s1 = instr->_m_ops[2]->codeAddress(); - stmt.o3.s1 = instr->_m_ops[0]->codeAddress() + j; + stmt.o3.s1 = func->m_owner->m_vinstr_temp[1]->codeAddress() + j; code_push_statement(code, &stmt, instr->m_context); stmt.opcode = INSTR_BITAND; stmt.o1.s1 = instr->_m_ops[1]->codeAddress() + j; @@ -2641,7 +2641,7 @@ static bool gen_blocks_recursive(code_t *code, ir_function *func, ir_block *bloc code_push_statement(code, &stmt, instr->m_context); } stmt.opcode = INSTR_SUB_V; - stmt.o1.s1 = instr->_m_ops[0]->codeAddress(); + stmt.o1.s1 = func->m_owner->m_vinstr_temp[1]->codeAddress(); stmt.o2.s1 = func->m_owner->m_vinstr_temp[0]->codeAddress(); stmt.o3.s1 = instr->_m_ops[0]->codeAddress(); code_push_statement(code, &stmt, instr->m_context); @@ -2655,7 +2655,7 @@ static bool gen_blocks_recursive(code_t *code, ir_function *func, ir_block *bloc for (j = 0; j < 3; ++j) { stmt.o1.s1 = instr->_m_ops[1]->codeAddress() + (j + 1) % 3; stmt.o2.s1 = instr->_m_ops[2]->codeAddress() + (j + 2) % 3; - stmt.o3.s1 = instr->_m_ops[0]->codeAddress() + j; + stmt.o3.s1 = func->m_owner->m_vinstr_temp[1]->codeAddress() + j; code_push_statement(code, &stmt, instr->m_context); stmt.o1.s1 = instr->_m_ops[1]->codeAddress() + (j + 2) % 3; stmt.o2.s1 = instr->_m_ops[2]->codeAddress() + (j + 1) % 3; @@ -2663,7 +2663,7 @@ static bool gen_blocks_recursive(code_t *code, ir_function *func, ir_block *bloc code_push_statement(code, &stmt, instr->m_context); } stmt.opcode = INSTR_SUB_V; - stmt.o1.s1 = instr->_m_ops[0]->codeAddress(); + stmt.o1.s1 = func->m_owner->m_vinstr_temp[1]->codeAddress(); stmt.o2.s1 = func->m_owner->m_vinstr_temp[0]->codeAddress(); stmt.o3.s1 = instr->_m_ops[0]->codeAddress(); code_push_statement(code, &stmt, instr->m_context);