#include "config.h" #include #include #include #include int error = FALSE; char * test_opcode (OrcStaticOpcode *opcode, OrcTarget *target, unsigned int target_flags); int main (int argc, char *argv[]) { int i; int j; OrcOpcodeSet *opcode_set; OrcTarget *targets[10]; unsigned int target_flags[10]; int n_targets; orc_init(); orc_test_init(); targets[0] = orc_target_get_by_name("sse"); target_flags[0] = orc_target_get_default_flags(targets[0]); targets[1] = orc_target_get_by_name("mmx"); target_flags[1] = orc_target_get_default_flags(targets[1]); targets[2] = orc_target_get_by_name("altivec"); target_flags[2] = orc_target_get_default_flags(targets[2]); targets[3] = orc_target_get_by_name("arm"); target_flags[3] = orc_target_get_default_flags(targets[3]); targets[4] = orc_target_get_by_name("neon"); target_flags[4] = orc_target_get_default_flags(targets[4]); targets[5] = orc_target_get_by_name("c64x-c"); target_flags[5] = orc_target_get_default_flags(targets[5]); n_targets=6; printf( "\n" "Table of Opcode Rule Coverage\n" "\n" "\n" "\n" "opcode name\n", n_targets+1); for(j=0;j%s\n", orc_target_get_name(targets[j])); } printf( "\n" "\n" "\n"); opcode_set = orc_opcode_set_get ("sys"); for(i=0;in_opcodes;i++){ printf("\n"); printf("%s\n", opcode_set->opcodes[i].name); for(j=0;j%s\n", test_opcode (opcode_set->opcodes + i, targets[j], target_flags[j])); } printf("\n"); } printf( "\n" "\n" "
\n"); return 0; } char * test_opcode (OrcStaticOpcode *opcode, OrcTarget *target, unsigned int target_flags) { OrcProgram *p; OrcCompileResult ret; p = orc_test_get_program_for_opcode (opcode); if (!p) return "fail"; ret = orc_program_compile_full (p, target, target_flags); orc_program_free (p); if (ORC_COMPILE_RESULT_IS_FATAL(ret)) { //return "fail"; return "no"; } if (ORC_COMPILE_RESULT_IS_SUCCESSFUL(ret)) { return "yes"; } return "no"; }