- size_t result;
- size_t m;
-
- result = var_get_dict_index (v1) ^ var_get_dict_index (c->v1);
- m = var_get_dict_index (v2) ^ var_get_dict_index (c->v2);
- result = result|m;
- if (var_is_alpha (v1))
- {
- result |= value_compare_3way (val1, c->val1, var_get_width (v1));
- if (var_is_alpha (v2))
- {
- result |= value_compare_3way (val2, c->val2, var_get_width (v2));
- }
- }
- else if (var_is_alpha (v2))
- {
- result |= value_compare_3way (val2, c->val2, var_get_width (v2));
- }
- return result;
+ return (v1 != c->v1
+ || v2 != c->v2
+ || (var_is_alpha (v1)
+ && !value_equal (val1, c->val1, var_get_width (v1)))
+ || (var_is_alpha (v2)
+ && !value_equal (val2, c->val2, var_get_width (v2))));