8 #include <orc-test/orctest.h>
13 char * test_opcode (OrcStaticOpcode *opcode, OrcTarget *target,
14 unsigned int target_flags);
17 main (int argc, char *argv[])
21 OrcOpcodeSet *opcode_set;
22 OrcTarget *targets[10];
23 unsigned int target_flags[10];
29 targets[0] = orc_target_get_by_name("sse");
30 target_flags[0] = orc_target_get_default_flags(targets[0]);
32 targets[1] = orc_target_get_by_name("mmx");
33 target_flags[1] = orc_target_get_default_flags(targets[1]);
35 targets[2] = orc_target_get_by_name("altivec");
36 target_flags[2] = orc_target_get_default_flags(targets[2]);
38 targets[3] = orc_target_get_by_name("arm");
39 target_flags[3] = orc_target_get_default_flags(targets[3]);
41 targets[4] = orc_target_get_by_name("neon");
42 target_flags[4] = orc_target_get_default_flags(targets[4]);
44 targets[5] = orc_target_get_by_name("c64x-c");
45 target_flags[5] = orc_target_get_default_flags(targets[5]);
50 "<table frame=\"all\" id=\"table-basictypes\" xreflabel=\"Table of Opcode Rule Coverage\">\n"
51 "<title>Table of Opcode Rule Coverage</title>\n"
52 "<tgroup cols=\"%d\" align=\"left\" colsep=\"1\" rowsep=\"1\">\n"
55 "<entry>opcode name</entry>\n", n_targets+1);
56 for(j=0;j<n_targets;j++){
57 printf("<entry>%s</entry>\n",
58 orc_target_get_name(targets[j]));
63 "<tbody valign=\"top\">\n");
65 opcode_set = orc_opcode_set_get ("sys");
67 for(i=0;i<opcode_set->n_opcodes;i++){
69 printf("<entry>%s</entry>\n", opcode_set->opcodes[i].name);
70 for(j=0;j<n_targets;j++){
71 printf("<entry>%s</entry>\n",
72 test_opcode (opcode_set->opcodes + i, targets[j], target_flags[j]));
85 test_opcode (OrcStaticOpcode *opcode, OrcTarget *target,
86 unsigned int target_flags)
91 p = orc_test_get_program_for_opcode (opcode);
93 ret = orc_program_compile_full (p, target, target_flags);
96 if (ORC_COMPILE_RESULT_IS_SUCCESSFUL(ret)) {
101 p = orc_test_get_program_for_opcode_const (opcode);
103 ret = orc_program_compile_full (p, target, target_flags);
104 orc_program_free (p);
106 if (ORC_COMPILE_RESULT_IS_SUCCESSFUL(ret)) {