diff --git a/libs/gamecode/pr_v6p_opcode.c b/libs/gamecode/pr_v6p_opcode.c index cb11c9eca..c99ef1580 100644 --- a/libs/gamecode/pr_v6p_opcode.c +++ b/libs/gamecode/pr_v6p_opcode.c @@ -236,7 +236,7 @@ VISIBLE const v6p_opcode_t pr_v6p_opcodes[] = { ev_quaternion, ev_quaternion, ev_int, PROG_V6P_VERSION, }, - [OP_NE_S_v6p] = {"ne", "ne.s", + [OP_NE_S_v6p] = {"cmp", "ne.s", ev_string, ev_string, ev_int, PROG_ID_VERSION, }, diff --git a/tools/qfcc/source/statements.c b/tools/qfcc/source/statements.c index c2387cec8..f81807a82 100644 --- a/tools/qfcc/source/statements.c +++ b/tools/qfcc/source/statements.c @@ -1548,6 +1548,9 @@ expr_expr (sblock_t *sblock, expr_t *e, operand_t **op) opcode = convert_op (e->e.expr.op); if (!opcode) internal_error (e, "ice ice baby"); + if (strcmp (opcode, "ne") == 0 && is_string (get_type (e->e.expr.e1))) { + opcode = "cmp"; + } s = new_statement (st_expr, opcode, e); sblock = statement_subexpr (sblock, e->e.expr.e1, &s->opa); sblock = statement_subexpr (sblock, e->e.expr.e2, &s->opb);