From f7438c4999f7a4565b7753df2dfde4de3cb74bfa Mon Sep 17 00:00:00 2001 From: Matthias Braun Date: Fri, 4 Nov 2011 22:42:16 +0100 Subject: [PATCH] tarval: allow or/eor/and/andnot on references --- ir/tv/tv.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ir/tv/tv.c b/ir/tv/tv.c index 47ef2d4b6..ff38cc5ae 100644 --- a/ir/tv/tv.c +++ b/ir/tv/tv.c @@ -1186,6 +1186,7 @@ ir_tarval *tarval_and(ir_tarval *a, ir_tarval *b) case irms_internal_boolean: return (a == tarval_b_false) ? a : b; + case irms_reference: case irms_int_number: sc_and(a->value, b->value, NULL); return get_tarval(sc_get_buffer(), sc_get_buffer_length(), a->mode); @@ -1206,6 +1207,7 @@ ir_tarval *tarval_andnot(ir_tarval *a, ir_tarval *b) case irms_internal_boolean: return a == tarval_b_true && b == tarval_b_false ? tarval_b_true : tarval_b_false; + case irms_reference: case irms_int_number: sc_andnot(a->value, b->value, NULL); return get_tarval(sc_get_buffer(), sc_get_buffer_length(), a->mode); @@ -1229,6 +1231,7 @@ ir_tarval *tarval_or(ir_tarval *a, ir_tarval *b) case irms_internal_boolean: return (a == tarval_b_true) ? a : b; + case irms_reference: case irms_int_number: sc_or(a->value, b->value, NULL); return get_tarval(sc_get_buffer(), sc_get_buffer_length(), a->mode); @@ -1252,6 +1255,7 @@ ir_tarval *tarval_eor(ir_tarval *a, ir_tarval *b) case irms_internal_boolean: return (a == b)? tarval_b_false : tarval_b_true; + case irms_reference: case irms_int_number: sc_xor(a->value, b->value, NULL); return get_tarval(sc_get_buffer(), sc_get_buffer_length(), a->mode); -- 2.20.1