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 }, \ |