stage3/datatype_functions.cc
changeset 483 7f839fb100c1
parent 481 16f943328696
child 484 f78750994a82
equal deleted inserted replaced
482:b62a5ecce54d 483:7f839fb100c1
   303 /*******  TABLE 26: Standard bitwise Boolean functions  *******/
   303 /*******  TABLE 26: Standard bitwise Boolean functions  *******/
   304 /*******                                                *******/
   304 /*******                                                *******/
   305 /**************************************************************/
   305 /**************************************************************/
   306 /**************************************************************/
   306 /**************************************************************/
   307 /**************************************************************/
   307 /**************************************************************/
   308 
   308 /* table used by AND and ANDN operators, and and_expression */
   309 const struct widen_entry widen_AND_table[] = {
   309 const struct widen_entry widen_AND_table[] = {
   310 #define __and(TYPE)       \
   310 #define __and(TYPE)       \
   311     { &search_constant_type_c::TYPE##_type_name,        &search_constant_type_c::TYPE##_type_name,          &search_constant_type_c::TYPE##_type_name,       widen_entry::ok     }, \
   311     { &search_constant_type_c::TYPE##_type_name,        &search_constant_type_c::TYPE##_type_name,          &search_constant_type_c::TYPE##_type_name,       widen_entry::ok     }, \
   312     { &search_constant_type_c::safe##TYPE##_type_name,  &search_constant_type_c::TYPE##_type_name,          &search_constant_type_c::TYPE##_type_name,       widen_entry::ok     }, \
   312     { &search_constant_type_c::safe##TYPE##_type_name,  &search_constant_type_c::TYPE##_type_name,          &search_constant_type_c::TYPE##_type_name,       widen_entry::ok     }, \
   313     { &search_constant_type_c::TYPE##_type_name,        &search_constant_type_c::safe##TYPE##_type_name,    &search_constant_type_c::TYPE##_type_name,       widen_entry::ok     }, \
   313     { &search_constant_type_c::TYPE##_type_name,        &search_constant_type_c::safe##TYPE##_type_name,    &search_constant_type_c::TYPE##_type_name,       widen_entry::ok     }, \
   316 #undef __and
   316 #undef __and
   317 
   317 
   318     { NULL, NULL, NULL, widen_entry::ok },
   318     { NULL, NULL, NULL, widen_entry::ok },
   319 };
   319 };
   320 
   320 
   321 
   321 /* table used by OR and ORN operators, and or_expression */
   322 const struct widen_entry widen_OR_table[] = {
   322 const struct widen_entry widen_OR_table[] = {
   323 #define __or(TYPE)       \
   323 #define __or(TYPE)       \
   324     { &search_constant_type_c::TYPE##_type_name,        &search_constant_type_c::TYPE##_type_name,          &search_constant_type_c::TYPE##_type_name,       widen_entry::ok     }, \
   324     { &search_constant_type_c::TYPE##_type_name,        &search_constant_type_c::TYPE##_type_name,          &search_constant_type_c::TYPE##_type_name,       widen_entry::ok     }, \
   325     { &search_constant_type_c::safe##TYPE##_type_name,  &search_constant_type_c::TYPE##_type_name,          &search_constant_type_c::TYPE##_type_name,       widen_entry::ok     }, \
   325     { &search_constant_type_c::safe##TYPE##_type_name,  &search_constant_type_c::TYPE##_type_name,          &search_constant_type_c::TYPE##_type_name,       widen_entry::ok     }, \
   326     { &search_constant_type_c::TYPE##_type_name,        &search_constant_type_c::safe##TYPE##_type_name,    &search_constant_type_c::TYPE##_type_name,       widen_entry::ok     }, \
   326     { &search_constant_type_c::TYPE##_type_name,        &search_constant_type_c::safe##TYPE##_type_name,    &search_constant_type_c::TYPE##_type_name,       widen_entry::ok     }, \
   330 
   330 
   331     { NULL, NULL, NULL, widen_entry::ok },
   331     { NULL, NULL, NULL, widen_entry::ok },
   332 };
   332 };
   333 
   333 
   334 
   334 
   335 
   335 /* table used by XOR and XORN operators, and xor_expression */
   336 const struct widen_entry widen_XOR_table[] = {
   336 const struct widen_entry widen_XOR_table[] = {
   337 #define __xor(TYPE)       \
   337 #define __xor(TYPE)       \
   338     { &search_constant_type_c::TYPE##_type_name,        &search_constant_type_c::TYPE##_type_name,          &search_constant_type_c::TYPE##_type_name,       widen_entry::ok     }, \
   338     { &search_constant_type_c::TYPE##_type_name,        &search_constant_type_c::TYPE##_type_name,          &search_constant_type_c::TYPE##_type_name,       widen_entry::ok     }, \
   339     { &search_constant_type_c::safe##TYPE##_type_name,  &search_constant_type_c::TYPE##_type_name,          &search_constant_type_c::TYPE##_type_name,       widen_entry::ok     }, \
   339     { &search_constant_type_c::safe##TYPE##_type_name,  &search_constant_type_c::TYPE##_type_name,          &search_constant_type_c::TYPE##_type_name,       widen_entry::ok     }, \
   340     { &search_constant_type_c::TYPE##_type_name,        &search_constant_type_c::safe##TYPE##_type_name,    &search_constant_type_c::TYPE##_type_name,       widen_entry::ok     }, \
   340     { &search_constant_type_c::TYPE##_type_name,        &search_constant_type_c::safe##TYPE##_type_name,    &search_constant_type_c::TYPE##_type_name,       widen_entry::ok     }, \