summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Schleef <ds@schleef.org>2012-09-03 12:32:25 -0700
committerDavid Schleef <ds@schleef.org>2012-09-03 12:34:39 -0700
commitad8a9d1110164b6bc2260110ed6a25f80315242e (patch)
treec49cf9c2e7bb505af523b3241fd3a6ae8c2449e7
parent299bc5ea3de69c3cfe391b57214c3fb2926608c8 (diff)
downloadorc-ad8a9d1110164b6bc2260110ed6a25f80315242e.tar.gz
Reindent
-rw-r--r--orc/generate-bytecode.c193
-rw-r--r--orc/generate-emulation.c203
-rw-r--r--orc/orc.c29
-rw-r--r--orc/orcarm.c309
-rw-r--r--orc/orcbytecode.c127
-rw-r--r--orc/orccode.c9
-rw-r--r--orc/orccodemem.c103
-rw-r--r--orc/orccompiler.c404
-rw-r--r--orc/orccpu-arm.c61
-rw-r--r--orc/orccpu-powerpc.c41
-rw-r--r--orc/orccpu-x86.c277
-rw-r--r--orc/orcdebug.c17
-rw-r--r--orc/orcemulateopcodes.c2969
-rw-r--r--orc/orcexecutor.c215
-rw-r--r--orc/orcfunctions.c79
-rw-r--r--orc/orcmmx.c79
-rw-r--r--orc/orconce.c10
-rw-r--r--orc/orcopcodes.c515
-rw-r--r--orc/orcparse.c161
-rw-r--r--orc/orcpowerpc.c453
-rw-r--r--orc/orcprogram-altivec.c170
-rw-r--r--orc/orcprogram-arm.c171
-rw-r--r--orc/orcprogram-c.c911
-rw-r--r--orc/orcprogram-c64x-c.c942
-rw-r--r--orc/orcprogram-mmx.c377
-rw-r--r--orc/orcprogram-neon.c319
-rw-r--r--orc/orcprogram-sse.c377
-rw-r--r--orc/orcprogram.c183
-rw-r--r--orc/orcrule.c8
-rw-r--r--orc/orcrules-altivec.c807
-rw-r--r--orc/orcrules-arm.c538
-rw-r--r--orc/orcrules-mmx.c1057
-rw-r--r--orc/orcrules-neon.c2172
-rw-r--r--orc/orcrules-sse.c1057
-rw-r--r--orc/orcsse.c39
-rw-r--r--orc/orcutils.c50
-rw-r--r--orc/orcx86.c270
-rw-r--r--orc/orcx86insn.c828
-rw-r--r--testsuite/bytecode_parse.c50
-rw-r--r--testsuite/compile_opcodes_float.c58
-rw-r--r--testsuite/compile_opcodes_float_c.c67
-rw-r--r--testsuite/compile_opcodes_float_neon.c58
-rw-r--r--testsuite/compile_opcodes_pixel_neon.c58
-rw-r--r--testsuite/compile_opcodes_sys.c49
-rw-r--r--testsuite/compile_opcodes_sys_c.c70
-rw-r--r--testsuite/compile_opcodes_sys_c64x.c56
-rw-r--r--testsuite/compile_opcodes_sys_neon.c56
-rw-r--r--testsuite/compile_parse.c44
-rw-r--r--testsuite/compile_parse_c.c44
-rw-r--r--testsuite/compile_parse_neon.c44
-rw-r--r--testsuite/exec_opcodes_float.c65
-rw-r--r--testsuite/exec_opcodes_sys.c196
-rw-r--r--testsuite/exec_parse.c45
-rw-r--r--testsuite/generate_opcodes_sys.c70
-rw-r--r--testsuite/generate_xml_table.c84
-rw-r--r--testsuite/generate_xml_table2.c394
-rw-r--r--testsuite/memcpy_speed.c59
-rw-r--r--testsuite/perf_opcodes_sys.c18
-rw-r--r--testsuite/perf_opcodes_sys_compare.c18
-rw-r--r--testsuite/perf_parse.c44
-rw-r--r--testsuite/perf_parse_compare.c44
-rw-r--r--testsuite/show_parse.c224
-rw-r--r--testsuite/test-schro.c378
-rw-r--r--testsuite/test_accsadubl.c34
-rw-r--r--tools/orc-bugreport.c233
-rw-r--r--tools/orcc.c1162
66 files changed, 10233 insertions, 10019 deletions
diff --git a/orc/generate-bytecode.c b/orc/generate-bytecode.c
index 32bb2eb..3ff8f09 100644
--- a/orc/generate-bytecode.c
+++ b/orc/generate-bytecode.c
@@ -24,17 +24,18 @@ char *target = "sse";
} \
} while (0)
-void help (void)
+void
+help (void)
{
- printf("Usage:\n");
- printf(" generate-bytecode [OPTION...]\n");
- printf("\n");
- printf("Help Options:\n");
- printf(" -h, --help Show help options\n");
- printf("\n");
- printf("Application Options:\n");
- printf(" -o, --output FILE Write output to FILE\n");
- printf("\n");
+ printf ("Usage:\n");
+ printf (" generate-bytecode [OPTION...]\n");
+ printf ("\n");
+ printf ("Help Options:\n");
+ printf (" -h, --help Show help options\n");
+ printf ("\n");
+ printf ("Application Options:\n");
+ printf (" -o, --output FILE Write output to FILE\n");
+ printf ("\n");
exit (0);
}
@@ -52,25 +53,24 @@ main (int argc, char *argv[])
orc_init ();
- for(i=1;i<argc;i++) {
- if (strcmp (argv[i], "--output") == 0 ||
- strcmp(argv[i], "-o") == 0) {
- if (i+1 < argc) {
- output_file = argv[i+1];
+ for (i = 1; i < argc; i++) {
+ if (strcmp (argv[i], "--output") == 0 || strcmp (argv[i], "-o") == 0) {
+ if (i + 1 < argc) {
+ output_file = argv[i + 1];
i++;
} else {
- help();
+ help ();
}
} else if (strcmp (argv[i], "--header") == 0) {
output_header = TRUE;
- } else if (strncmp(argv[i], "-", 1) == 0) {
- printf("Unknown option: %s\n", argv[i]);
+ } else if (strncmp (argv[i], "-", 1) == 0) {
+ printf ("Unknown option: %s\n", argv[i]);
exit (1);
} else {
if (input_file == NULL) {
input_file = argv[i];
} else {
- printf("More than one input file specified: %s\n", argv[i]);
+ printf ("More than one input file specified: %s\n", argv[i]);
exit (1);
}
}
@@ -82,110 +82,109 @@ main (int argc, char *argv[])
output = fopen (output_file, "w");
if (!output) {
- printf("Could not write output file: %s\n", output_file);
- exit(1);
+ printf ("Could not write output file: %s\n", output_file);
+ exit (1);
}
opcode_set = orc_opcode_set_get ("sys");
- fprintf(output, "\n");
- fprintf(output, "/* autogenerated by generate-bytecode */\n");
- fprintf(output, "\n");
+ fprintf (output, "\n");
+ fprintf (output, "/* autogenerated by generate-bytecode */\n");
+ fprintf (output, "\n");
if (output_header) {
- fprintf(output, "#include <math.h>\n");
- fprintf(output, "#include <orc/orc.h>\n");
+ fprintf (output, "#include <math.h>\n");
+ fprintf (output, "#include <orc/orc.h>\n");
if (include_file) {
- fprintf(output, "#include <%s>\n", include_file);
+ fprintf (output, "#include <%s>\n", include_file);
}
- fprintf(output, "\n");
-
- fprintf(output, "typedef enum {\n");
- fprintf(output, " ORC_BC_END,\n");
- fprintf(output, " ORC_BC_BEGIN_FUNCTION,\n");
- fprintf(output, " ORC_BC_END_FUNCTION,\n");
- fprintf(output, " ORC_BC_SET_CONSTANT_N,\n");
- fprintf(output, " ORC_BC_SET_N_MULTIPLE,\n");
- fprintf(output, " ORC_BC_SET_N_MINIMUM,\n");
- fprintf(output, " ORC_BC_SET_N_MAXIMUM,\n");
- fprintf(output, " ORC_BC_SET_2D,\n");
- fprintf(output, " ORC_BC_SET_CONSTANT_M,\n");
- fprintf(output, " ORC_BC_SET_NAME,\n");
- fprintf(output, " ORC_BC_SET_BACKUP_FUNCTION,\n");
- fprintf(output, " ORC_BC_ADD_DESTINATION,\n");
- fprintf(output, " ORC_BC_ADD_SOURCE,\n");
- fprintf(output, " ORC_BC_ADD_ACCUMULATOR,\n");
- fprintf(output, " ORC_BC_ADD_CONSTANT,\n");
- fprintf(output, " ORC_BC_ADD_CONSTANT_INT64,\n");
- fprintf(output, " ORC_BC_ADD_PARAMETER,\n");
- fprintf(output, " ORC_BC_ADD_PARAMETER_FLOAT,\n");
- fprintf(output, " ORC_BC_ADD_PARAMETER_INT64,\n");
- fprintf(output, " ORC_BC_ADD_PARAMETER_DOUBLE,\n");
- fprintf(output, " ORC_BC_ADD_TEMPORARY,\n");
- for (i=21;i<32;i++){
- fprintf(output, " ORC_BC_RESERVED_%d,\n", i);
+ fprintf (output, "\n");
+
+ fprintf (output, "typedef enum {\n");
+ fprintf (output, " ORC_BC_END,\n");
+ fprintf (output, " ORC_BC_BEGIN_FUNCTION,\n");
+ fprintf (output, " ORC_BC_END_FUNCTION,\n");
+ fprintf (output, " ORC_BC_SET_CONSTANT_N,\n");
+ fprintf (output, " ORC_BC_SET_N_MULTIPLE,\n");
+ fprintf (output, " ORC_BC_SET_N_MINIMUM,\n");
+ fprintf (output, " ORC_BC_SET_N_MAXIMUM,\n");
+ fprintf (output, " ORC_BC_SET_2D,\n");
+ fprintf (output, " ORC_BC_SET_CONSTANT_M,\n");
+ fprintf (output, " ORC_BC_SET_NAME,\n");
+ fprintf (output, " ORC_BC_SET_BACKUP_FUNCTION,\n");
+ fprintf (output, " ORC_BC_ADD_DESTINATION,\n");
+ fprintf (output, " ORC_BC_ADD_SOURCE,\n");
+ fprintf (output, " ORC_BC_ADD_ACCUMULATOR,\n");
+ fprintf (output, " ORC_BC_ADD_CONSTANT,\n");
+ fprintf (output, " ORC_BC_ADD_CONSTANT_INT64,\n");
+ fprintf (output, " ORC_BC_ADD_PARAMETER,\n");
+ fprintf (output, " ORC_BC_ADD_PARAMETER_FLOAT,\n");
+ fprintf (output, " ORC_BC_ADD_PARAMETER_INT64,\n");
+ fprintf (output, " ORC_BC_ADD_PARAMETER_DOUBLE,\n");
+ fprintf (output, " ORC_BC_ADD_TEMPORARY,\n");
+ for (i = 21; i < 32; i++) {
+ fprintf (output, " ORC_BC_RESERVED_%d,\n", i);
}
- for(i=0;i<opcode_set->n_opcodes;i++){
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
OrcStaticOpcode *opcode = opcode_set->opcodes + i;
- if ((i+32)%10 == 0) {
- fprintf(output, " /* %d */\n", i+32);
+ if ((i + 32) % 10 == 0) {
+ fprintf (output, " /* %d */\n", i + 32);
}
- fprintf(output, " ORC_BC_%s,\n", opcode->name);
+ fprintf (output, " ORC_BC_%s,\n", opcode->name);
}
- fprintf(output, " /* %d */\n", i+32);
- fprintf(output, " ORC_BC_LAST\n");
- fprintf(output, "} OrcBytecodes;\n");
+ fprintf (output, " /* %d */\n", i + 32);
+ fprintf (output, " ORC_BC_LAST\n");
+ fprintf (output, "} OrcBytecodes;\n");
} else {
- fprintf(output, "#ifdef HAVE_CONFIG_H\n");
- fprintf(output, "#include \"config.h\"\n");
- fprintf(output, "#endif\n");
-
- fprintf(output, " ORC_BC_END,\n");
- fprintf(output, " ORC_BC_BEGIN_FUNCTION,\n");
- fprintf(output, " ORC_BC_END_FUNCTION,\n");
- fprintf(output, " ORC_BC_SET_CONSTANT_N,\n");
- fprintf(output, " ORC_BC_SET_N_MULTIPLE,\n");
- fprintf(output, " ORC_BC_SET_N_MINIMUM,\n");
- fprintf(output, " ORC_BC_SET_N_MAXIMUM,\n");
- fprintf(output, " ORC_BC_SET_2D,\n");
- fprintf(output, " ORC_BC_SET_CONSTANT_M,\n");
- fprintf(output, " ORC_BC_SET_NAME,\n");
- fprintf(output, " ORC_BC_SET_BACKUP_FUNCTION,\n");
- fprintf(output, " ORC_BC_ADD_DESTINATION,\n");
- fprintf(output, " ORC_BC_ADD_SOURCE,\n");
- fprintf(output, " ORC_BC_ADD_ACCUMULATOR,\n");
- fprintf(output, " ORC_BC_ADD_CONSTANT,\n");
- fprintf(output, " ORC_BC_ADD_CONSTANT_INT64,\n");
- fprintf(output, " ORC_BC_ADD_PARAMETER,\n");
- fprintf(output, " ORC_BC_ADD_PARAMETER_FLOAT,\n");
- fprintf(output, " ORC_BC_ADD_PARAMETER_INT64,\n");
- fprintf(output, " ORC_BC_ADD_PARAMETER_DOUBLE,\n");
- fprintf(output, " ORC_BC_ADD_TEMPORARY,\n");
- for (i=21;i<32;i++){
- fprintf(output, " ORC_BC_RESERVED_%d,\n", i);
+ fprintf (output, "#ifdef HAVE_CONFIG_H\n");
+ fprintf (output, "#include \"config.h\"\n");
+ fprintf (output, "#endif\n");
+
+ fprintf (output, " ORC_BC_END,\n");
+ fprintf (output, " ORC_BC_BEGIN_FUNCTION,\n");
+ fprintf (output, " ORC_BC_END_FUNCTION,\n");
+ fprintf (output, " ORC_BC_SET_CONSTANT_N,\n");
+ fprintf (output, " ORC_BC_SET_N_MULTIPLE,\n");
+ fprintf (output, " ORC_BC_SET_N_MINIMUM,\n");
+ fprintf (output, " ORC_BC_SET_N_MAXIMUM,\n");
+ fprintf (output, " ORC_BC_SET_2D,\n");
+ fprintf (output, " ORC_BC_SET_CONSTANT_M,\n");
+ fprintf (output, " ORC_BC_SET_NAME,\n");
+ fprintf (output, " ORC_BC_SET_BACKUP_FUNCTION,\n");
+ fprintf (output, " ORC_BC_ADD_DESTINATION,\n");
+ fprintf (output, " ORC_BC_ADD_SOURCE,\n");
+ fprintf (output, " ORC_BC_ADD_ACCUMULATOR,\n");
+ fprintf (output, " ORC_BC_ADD_CONSTANT,\n");
+ fprintf (output, " ORC_BC_ADD_CONSTANT_INT64,\n");
+ fprintf (output, " ORC_BC_ADD_PARAMETER,\n");
+ fprintf (output, " ORC_BC_ADD_PARAMETER_FLOAT,\n");
+ fprintf (output, " ORC_BC_ADD_PARAMETER_INT64,\n");
+ fprintf (output, " ORC_BC_ADD_PARAMETER_DOUBLE,\n");
+ fprintf (output, " ORC_BC_ADD_TEMPORARY,\n");
+ for (i = 21; i < 32; i++) {
+ fprintf (output, " ORC_BC_RESERVED_%d,\n", i);
}
- for(i=0;i<opcode_set->n_opcodes;i++){
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
OrcStaticOpcode *opcode = opcode_set->opcodes + i;
- if ((i+32)%10 == 0) {
- fprintf(output, " /* %d */\n", i+32);
+ if ((i + 32) % 10 == 0) {
+ fprintf (output, " /* %d */\n", i + 32);
}
- fprintf(output, " { \"%s\" },\n", opcode->name);
+ fprintf (output, " { \"%s\" },\n", opcode->name);
}
- fprintf(output, " /* %d */\n", i+32);
- fprintf(output, " ORC_BC_LAST\n");
- fprintf(output, "} OrcBytecodes;\n");
+ fprintf (output, " /* %d */\n", i + 32);
+ fprintf (output, " ORC_BC_LAST\n");
+ fprintf (output, "} OrcBytecodes;\n");
}
fclose (output);
- if (error) exit(1);
+ if (error)
+ exit (1);
return 0;
}
-
-
diff --git a/orc/generate-emulation.c b/orc/generate-emulation.c
index f375c04..b7e824e 100644
--- a/orc/generate-emulation.c
+++ b/orc/generate-emulation.c
@@ -9,7 +9,7 @@
#include <string.h>
#include <ctype.h>
-void output_code_emulate (OrcProgram *p, FILE *output);
+void output_code_emulate (OrcProgram * p, FILE * output);
int verbose = 0;
int error = 0;
@@ -25,17 +25,18 @@ char *target = "sse";
} \
} while (0)
-void help (void)
+void
+help (void)
{
- printf("Usage:\n");
- printf(" generate-emulation [OPTION...]\n");
- printf("\n");
- printf("Help Options:\n");
- printf(" -h, --help Show help options\n");
- printf("\n");
- printf("Application Options:\n");
- printf(" -o, --output FILE Write output to FILE\n");
- printf("\n");
+ printf ("Usage:\n");
+ printf (" generate-emulation [OPTION...]\n");
+ printf ("\n");
+ printf ("Help Options:\n");
+ printf (" -h, --help Show help options\n");
+ printf ("\n");
+ printf ("Application Options:\n");
+ printf (" -o, --output FILE Write output to FILE\n");
+ printf ("\n");
exit (0);
}
@@ -53,25 +54,24 @@ main (int argc, char *argv[])
orc_init ();
- for(i=1;i<argc;i++) {
- if (strcmp (argv[i], "--output") == 0 ||
- strcmp(argv[i], "-o") == 0) {
- if (i+1 < argc) {
- output_file = argv[i+1];
+ for (i = 1; i < argc; i++) {
+ if (strcmp (argv[i], "--output") == 0 || strcmp (argv[i], "-o") == 0) {
+ if (i + 1 < argc) {
+ output_file = argv[i + 1];
i++;
} else {
- help();
+ help ();
}
} else if (strcmp (argv[i], "--header") == 0) {
output_header = TRUE;
- } else if (strncmp(argv[i], "-", 1) == 0) {
- printf("Unknown option: %s\n", argv[i]);
+ } else if (strncmp (argv[i], "-", 1) == 0) {
+ printf ("Unknown option: %s\n", argv[i]);
exit (1);
} else {
if (input_file == NULL) {
input_file = argv[i];
} else {
- printf("More than one input file specified: %s\n", argv[i]);
+ printf ("More than one input file specified: %s\n", argv[i]);
exit (1);
}
}
@@ -83,45 +83,45 @@ main (int argc, char *argv[])
output = fopen (output_file, "w");
if (!output) {
- printf("Could not write output file: %s\n", output_file);
- exit(1);
+ printf ("Could not write output file: %s\n", output_file);
+ exit (1);
}
opcode_set = orc_opcode_set_get ("sys");
- fprintf(output, "\n");
- fprintf(output, "/* autogenerated by generate-emulation */\n");
- fprintf(output, "\n");
+ fprintf (output, "\n");
+ fprintf (output, "/* autogenerated by generate-emulation */\n");
+ fprintf (output, "\n");
if (output_header) {
- fprintf(output, "#ifndef _ORC_EMULATE_OPCODES_H_\n");
- fprintf(output, "#define _ORC_EMULATE_OPCODES_H_\n");
- fprintf(output, "\n");
- for(i=0;i<opcode_set->n_opcodes;i++){
+ fprintf (output, "#ifndef _ORC_EMULATE_OPCODES_H_\n");
+ fprintf (output, "#define _ORC_EMULATE_OPCODES_H_\n");
+ fprintf (output, "\n");
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
OrcStaticOpcode *opcode = opcode_set->opcodes + i;
- fprintf(output,
+ fprintf (output,
"void emulate_%s (OrcOpcodeExecutor *ex, int i, int n);\n",
opcode->name);
}
- fprintf(output, "\n");
- fprintf(output, "#endif\n");
- fprintf(output, "\n");
+ fprintf (output, "\n");
+ fprintf (output, "#endif\n");
+ fprintf (output, "\n");
} else {
-
- fprintf(output, "#ifdef HAVE_CONFIG_H\n");
- fprintf(output, "#include \"config.h\"\n");
- fprintf(output, "#endif\n");
- fprintf(output, "#include <math.h>\n");
- fprintf(output, "#include <orc/orc.h>\n");
+
+ fprintf (output, "#ifdef HAVE_CONFIG_H\n");
+ fprintf (output, "#include \"config.h\"\n");
+ fprintf (output, "#endif\n");
+ fprintf (output, "#include <math.h>\n");
+ fprintf (output, "#include <orc/orc.h>\n");
if (include_file) {
- fprintf(output, "#include <%s>\n", include_file);
+ fprintf (output, "#include <%s>\n", include_file);
}
- fprintf(output, "\n");
- fprintf(output, "%s", orc_target_get_asm_preamble ("c"));
- fprintf(output, "\n");
+ fprintf (output, "\n");
+ fprintf (output, "%s", orc_target_get_asm_preamble ("c"));
+ fprintf (output, "\n");
- for(i=0;i<opcode_set->n_opcodes;i++){
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
char s[40];
OrcProgram *program;
OrcStaticOpcode *opcode = opcode_set->opcodes + i;
@@ -130,48 +130,48 @@ main (int argc, char *argv[])
program = orc_program_new ();
- sprintf(s, "emulate_%s", opcode->name);
+ sprintf (s, "emulate_%s", opcode->name);
orc_program_set_name (program, s);
if (opcode->dest_size[0] != 0) {
if (opcode->flags & ORC_STATIC_OPCODE_ACCUMULATOR) {
args[n_args++] =
- orc_program_add_accumulator (program, opcode->dest_size[0], "d1");
+ orc_program_add_accumulator (program, opcode->dest_size[0], "d1");
} else {
args[n_args++] =
- orc_program_add_destination (program, opcode->dest_size[0], "d1");
+ orc_program_add_destination (program, opcode->dest_size[0], "d1");
}
}
if (opcode->dest_size[1] != 0) {
args[n_args++] =
- orc_program_add_destination (program, opcode->dest_size[1], "d2");
+ orc_program_add_destination (program, opcode->dest_size[1], "d2");
}
if (opcode->src_size[0] != 0) {
if (opcode->src_size[1] == 0 &&
opcode->flags & ORC_STATIC_OPCODE_SCALAR) {
args[n_args++] =
- orc_program_add_parameter (program, opcode->src_size[0], "s1");
+ orc_program_add_parameter (program, opcode->src_size[0], "s1");
} else {
args[n_args++] =
- orc_program_add_source (program, opcode->src_size[0], "s1");
+ orc_program_add_source (program, opcode->src_size[0], "s1");
}
}
if (opcode->src_size[1] != 0) {
if (opcode->flags & ORC_STATIC_OPCODE_SCALAR) {
args[n_args++] =
- orc_program_add_parameter (program, opcode->src_size[1], "s2");
+ orc_program_add_parameter (program, opcode->src_size[1], "s2");
} else {
args[n_args++] =
- orc_program_add_source (program, opcode->src_size[1], "s2");
+ orc_program_add_source (program, opcode->src_size[1], "s2");
}
}
if (opcode->src_size[2] != 0) {
if (opcode->flags & ORC_STATIC_OPCODE_SCALAR) {
args[n_args++] =
- orc_program_add_parameter (program, opcode->src_size[2], "s3");
+ orc_program_add_parameter (program, opcode->src_size[2], "s3");
} else {
args[n_args++] =
- orc_program_add_source (program, opcode->src_size[2], "s3");
+ orc_program_add_source (program, opcode->src_size[2], "s3");
}
}
@@ -184,7 +184,8 @@ main (int argc, char *argv[])
fclose (output);
- if (error) exit(1);
+ if (error)
+ exit (1);
return 0;
}
@@ -222,122 +223,124 @@ const char *enumnames[] = {
#if 0
void
-output_prototype (OrcProgram *p, FILE *output)
+output_prototype (OrcProgram * p, FILE * output)
{
OrcVariable *var;
int i;
int need_comma;
- fprintf(output, "%s (", p->name);
+ fprintf (output, "%s (", p->name);
need_comma = FALSE;
- for(i=0;i<4;i++){
+ for (i = 0; i < 4; i++) {
var = &p->vars[ORC_VAR_D1 + i];
if (var->size) {
- if (need_comma) fprintf(output, ", ");
+ if (need_comma)
+ fprintf (output, ", ");
if (var->type_name) {
- fprintf(output, "%s * %s", var->type_name,
- varnames[ORC_VAR_D1 + i]);
+ fprintf (output, "%s * %s", var->type_name, varnames[ORC_VAR_D1 + i]);
} else {
- fprintf(output, "orc_uint%d * %s", var->size*8,
+ fprintf (output, "orc_uint%d * %s", var->size * 8,
varnames[ORC_VAR_D1 + i]);
}
if (p->is_2d) {
- fprintf(output, ", int %s_stride", varnames[ORC_VAR_D1 + i]);
+ fprintf (output, ", int %s_stride", varnames[ORC_VAR_D1 + i]);
}
need_comma = TRUE;
}
}
- for(i=0;i<4;i++){
+ for (i = 0; i < 4; i++) {
var = &p->vars[ORC_VAR_A1 + i];
if (var->size) {
- if (need_comma) fprintf(output, ", ");
+ if (need_comma)
+ fprintf (output, ", ");
if (var->type_name) {
- fprintf(output, "%s * %s", var->type_name,
- varnames[ORC_VAR_A1 + i]);
+ fprintf (output, "%s * %s", var->type_name, varnames[ORC_VAR_A1 + i]);
} else {
- fprintf(output, "orc_uint%d * %s", var->size*8,
+ fprintf (output, "orc_uint%d * %s", var->size * 8,
varnames[ORC_VAR_A1 + i]);
}
need_comma = TRUE;
}
}
- for(i=0;i<8;i++){
+ for (i = 0; i < 8; i++) {
var = &p->vars[ORC_VAR_S1 + i];
if (var->size) {
- if (need_comma) fprintf(output, ", ");
+ if (need_comma)
+ fprintf (output, ", ");
if (var->type_name) {
- fprintf(output, "const %s * %s", var->type_name,
+ fprintf (output, "const %s * %s", var->type_name,
varnames[ORC_VAR_S1 + i]);
} else {
- fprintf(output, "const orc_uint%d * %s", var->size*8,
+ fprintf (output, "const orc_uint%d * %s", var->size * 8,
varnames[ORC_VAR_S1 + i]);
}
if (p->is_2d) {
- fprintf(output, ", int %s_stride", varnames[ORC_VAR_S1 + i]);
+ fprintf (output, ", int %s_stride", varnames[ORC_VAR_S1 + i]);
}
need_comma = TRUE;
}
}
- for(i=0;i<8;i++){
+ for (i = 0; i < 8; i++) {
var = &p->vars[ORC_VAR_P1 + i];
if (var->size) {
- if (need_comma) fprintf(output, ", ");
+ if (need_comma)
+ fprintf (output, ", ");
if (var->is_float_param) {
- REQUIRE(0,4,5,1);
+ REQUIRE (0, 4, 5, 1);
}
- fprintf(output, "%s %s",
- var->is_float_param ? "float" : "int",
- varnames[ORC_VAR_P1 + i]);
+ fprintf (output, "%s %s",
+ var->is_float_param ? "float" : "int", varnames[ORC_VAR_P1 + i]);
need_comma = TRUE;
}
}
if (p->constant_n == 0) {
- if (need_comma) fprintf(output, ", ");
- fprintf(output, "int n");
+ if (need_comma)
+ fprintf (output, ", ");
+ fprintf (output, "int n");
need_comma = TRUE;
}
if (p->is_2d && p->constant_m == 0) {
- if (need_comma) fprintf(output, ", ");
- fprintf(output, "int m");
+ if (need_comma)
+ fprintf (output, ", ");
+ fprintf (output, "int m");
}
- fprintf(output, ")");
+ fprintf (output, ")");
}
void
-output_code_header (OrcProgram *p, FILE *output)
+output_code_header (OrcProgram * p, FILE * output)
{
- fprintf(output, "void ");
+ fprintf (output, "void ");
output_prototype (p, output);
- fprintf(output, ";\n");
+ fprintf (output, ";\n");
}
#endif
void
-output_code_emulate (OrcProgram *p, FILE *output)
+output_code_emulate (OrcProgram * p, FILE * output)
{
- fprintf(output, "void\n");
+ fprintf (output, "void\n");
if (p->constant_n) {
- fprintf(output, "%s (OrcOpcodeExecutor *ex, int offset)\n", p->name);
+ fprintf (output, "%s (OrcOpcodeExecutor *ex, int offset)\n", p->name);
} else {
- fprintf(output, "%s (OrcOpcodeExecutor *ex, int offset, int n)\n", p->name);
+ fprintf (output, "%s (OrcOpcodeExecutor *ex, int offset, int n)\n",
+ p->name);
}
- fprintf(output, "{\n");
+ fprintf (output, "{\n");
{
OrcCompileResult result;
- result = orc_program_compile_full (p, orc_target_get_by_name("c"),
+ result = orc_program_compile_full (p, orc_target_get_by_name ("c"),
ORC_TARGET_C_BARE | ORC_TARGET_C_OPCODE);
- if (ORC_COMPILE_RESULT_IS_SUCCESSFUL(result)) {
- fprintf(output, "%s\n", orc_program_get_asm_code (p));
+ if (ORC_COMPILE_RESULT_IS_SUCCESSFUL (result)) {
+ fprintf (output, "%s\n", orc_program_get_asm_code (p));
} else {
- printf("Failed to compile %s\n", p->name);
+ printf ("Failed to compile %s\n", p->name);
error = TRUE;
}
}
- fprintf(output, "}\n");
- fprintf(output, "\n");
+ fprintf (output, "}\n");
+ fprintf (output, "\n");
}
-
-
diff --git a/orc/orc.c b/orc/orc.c
index 49f350f..a7a3a5c 100644
--- a/orc/orc.c
+++ b/orc/orc.c
@@ -17,9 +17,9 @@
* @short_description: Library Initialization
*/
-void _orc_debug_init(void);
-void _orc_once_init(void);
-void _orc_compiler_init(void);
+void _orc_debug_init (void);
+void _orc_once_init (void);
+void _orc_compiler_init (void);
/**
* orc_init:
@@ -36,29 +36,29 @@ orc_init (void)
if (!inited) {
orc_global_mutex_lock ();
if (!inited) {
- ORC_ASSERT(sizeof(OrcExecutor) == sizeof(OrcExecutorAlt));
+ ORC_ASSERT (sizeof (OrcExecutor) == sizeof (OrcExecutorAlt));
- _orc_debug_init();
- _orc_compiler_init();
- orc_opcode_init();
- orc_c_init();
+ _orc_debug_init ();
+ _orc_compiler_init ();
+ orc_opcode_init ();
+ orc_c_init ();
#ifdef ENABLE_BACKEND_C64X
- orc_c64x_c_init();
+ orc_c64x_c_init ();
#endif
#ifdef ENABLE_BACKEND_MMX
- orc_mmx_init();
+ orc_mmx_init ();
#endif
#ifdef ENABLE_BACKEND_SSE
- orc_sse_init();
+ orc_sse_init ();
#endif
#ifdef ENABLE_BACKEND_ALTIVEC
- orc_powerpc_init();
+ orc_powerpc_init ();
#endif
#ifdef ENABLE_BACKEND_ARM
- orc_arm_init();
+ orc_arm_init ();
#endif
#ifdef ENABLE_BACKEND_NEON
- orc_neon_init();
+ orc_neon_init ();
#endif
inited = TRUE;
@@ -66,4 +66,3 @@ orc_init (void)
orc_global_mutex_unlock ();
}
}
-
diff --git a/orc/orcarm.c b/orc/orcarm.c
index bfdc246..ad8a638 100644
--- a/orc/orcarm.c
+++ b/orc/orcarm.c
@@ -30,7 +30,7 @@ orc_arm_cond_name (OrcArmCond cond)
if (cond < 0 || cond >= 16) {
return "ERROR";
}
- return cond_names[cond&0xf];
+ return cond_names[cond & 0xf];
}
const char *
@@ -41,91 +41,93 @@ orc_arm_reg_name (int reg)
"a1", "a2", "a3", "a4",
"v1", "v2", "v3", "v4",
"v5", "v6", "v7", "v8",
- "ip", "sp", "lr", "pc" };
+ "ip", "sp", "lr", "pc"
+ };
#else
static const char *gp_regs[] = {
"r0", "r1", "r2", "r3",
"r4", "r5", "r6", "r7",
"r8", "r9", "r10", "r11",
- "ip", "sp", "lr", "pc" };
- //"r12", "r13", "r14", "r15" };
+ "ip", "sp", "lr", "pc"
+ };
+ //"r12", "r13", "r14", "r15" };
#endif
- if (reg < ORC_GP_REG_BASE || reg >= ORC_GP_REG_BASE+16) {
+ if (reg < ORC_GP_REG_BASE || reg >= ORC_GP_REG_BASE + 16) {
return "ERROR";
}
- return gp_regs[reg&0xf];
+ return gp_regs[reg & 0xf];
}
void
-orc_arm_emit (OrcCompiler *compiler, orc_uint32 insn)
+orc_arm_emit (OrcCompiler * compiler, orc_uint32 insn)
{
ORC_WRITE_UINT32_LE (compiler->codeptr, insn);
- compiler->codeptr+=4;
+ compiler->codeptr += 4;
}
void
-orc_arm_emit_bx_lr (OrcCompiler *compiler)
+orc_arm_emit_bx_lr (OrcCompiler * compiler)
{
- ORC_ASM_CODE(compiler," bx lr\n");
+ ORC_ASM_CODE (compiler, " bx lr\n");
orc_arm_emit (compiler, 0xe12fff1e);
}
void
-orc_arm_emit_push (OrcCompiler *compiler, int regs)
+orc_arm_emit_push (OrcCompiler * compiler, int regs)
{
int i;
int x = 0;
- ORC_ASM_CODE(compiler," push {");
- for(i=0;i<16;i++){
- if (regs & (1<<i)) {
- x |= (1<<i);
- ORC_ASM_CODE(compiler,"r%d", i);
+ ORC_ASM_CODE (compiler, " push {");
+ for (i = 0; i < 16; i++) {
+ if (regs & (1 << i)) {
+ x |= (1 << i);
+ ORC_ASM_CODE (compiler, "r%d", i);
if (x != regs) {
- ORC_ASM_CODE(compiler,", ");
+ ORC_ASM_CODE (compiler, ", ");
}
}
}
- ORC_ASM_CODE(compiler,"}\n");
+ ORC_ASM_CODE (compiler, "}\n");
orc_arm_emit (compiler, 0xe92d0000 | regs);
}
void
-orc_arm_emit_pop (OrcCompiler *compiler, int regs)
+orc_arm_emit_pop (OrcCompiler * compiler, int regs)
{
int i;
int x = 0;
- ORC_ASM_CODE(compiler," pop {");
- for(i=0;i<16;i++){
- if (regs & (1<<i)) {
- x |= (1<<i);
- ORC_ASM_CODE(compiler,"r%d", i);
+ ORC_ASM_CODE (compiler, " pop {");
+ for (i = 0; i < 16; i++) {
+ if (regs & (1 << i)) {
+ x |= (1 << i);
+ ORC_ASM_CODE (compiler, "r%d", i);
if (x != regs) {
- ORC_ASM_CODE(compiler,", ");
+ ORC_ASM_CODE (compiler, ", ");
}
}
}
- ORC_ASM_CODE(compiler,"}\n");
+ ORC_ASM_CODE (compiler, "}\n");
orc_arm_emit (compiler, 0xe8bd0000 | regs);
}
void
-orc_arm_emit_label (OrcCompiler *compiler, int label)
+orc_arm_emit_label (OrcCompiler * compiler, int label)
{
ORC_ASSERT (label < ORC_N_LABELS);
- ORC_ASM_CODE(compiler,".L%d:\n", label);
+ ORC_ASM_CODE (compiler, ".L%d:\n", label);
compiler->labels[label] = compiler->codeptr;
}
void
-orc_arm_add_fixup (OrcCompiler *compiler, int label, int type)
+orc_arm_add_fixup (OrcCompiler * compiler, int label, int type)
{
ORC_ASSERT (compiler->n_fixups < ORC_N_FIXUPS);
@@ -136,10 +138,10 @@ orc_arm_add_fixup (OrcCompiler *compiler, int label, int type)
}
void
-orc_arm_do_fixups (OrcCompiler *compiler)
+orc_arm_do_fixups (OrcCompiler * compiler)
{
int i;
- for(i=0;i<compiler->n_fixups;i++){
+ for (i = 0; i < compiler->n_fixups; i++) {
unsigned char *label = compiler->labels[compiler->fixups[i].label];
unsigned char *ptr = compiler->fixups[i].ptr;
orc_uint32 code;
@@ -150,10 +152,10 @@ orc_arm_do_fixups (OrcCompiler *compiler)
diff = code;
diff = (diff << 8) >> 8;
diff += ((label - ptr) >> 2);
- if (diff != (diff << 8)>>8) {
- ORC_COMPILER_ERROR(compiler, "fixup out of range");
+ if (diff != (diff << 8) >> 8) {
+ ORC_COMPILER_ERROR (compiler, "fixup out of range");
}
- ORC_WRITE_UINT32_LE(ptr, (code&0xff000000) | (diff&0x00ffffff));
+ ORC_WRITE_UINT32_LE (ptr, (code & 0xff000000) | (diff & 0x00ffffff));
} else {
code = ORC_READ_UINT32_LE (ptr);
diff = code;
@@ -162,47 +164,47 @@ orc_arm_do_fixups (OrcCompiler *compiler)
diff = (diff << 24) >> 24;
diff += ((label - ptr) >> 2);
if (diff != (diff & 0xff)) {
- ORC_COMPILER_ERROR(compiler, "fixup out of range (%d > 255)", diff);
+ ORC_COMPILER_ERROR (compiler, "fixup out of range (%d > 255)", diff);
}
- ORC_WRITE_UINT32_LE(ptr, (code&0xffffff00) | (diff&0x000000ff));
+ ORC_WRITE_UINT32_LE (ptr, (code & 0xffffff00) | (diff & 0x000000ff));
}
}
}
void
-orc_arm_emit_align (OrcCompiler *compiler, int align_shift)
+orc_arm_emit_align (OrcCompiler * compiler, int align_shift)
{
int diff;
- diff = (compiler->code - compiler->codeptr)&((1<<align_shift) - 1);
+ diff = (compiler->code - compiler->codeptr) & ((1 << align_shift) - 1);
while (diff) {
orc_arm_emit_nop (compiler);
- diff-=4;
+ diff -= 4;
}
}
void
-orc_arm_emit_nop (OrcCompiler *compiler)
+orc_arm_emit_nop (OrcCompiler * compiler)
{
- ORC_ASM_CODE(compiler," nop\n");
+ ORC_ASM_CODE (compiler, " nop\n");
orc_arm_emit (compiler, 0xe1a00000);
}
void
-orc_arm_emit_branch (OrcCompiler *compiler, int cond, int label)
+orc_arm_emit_branch (OrcCompiler * compiler, int cond, int label)
{
orc_uint32 code;
code = 0x0afffffe;
- code |= (cond&0xf) << 28;
+ code |= (cond & 0xf) << 28;
orc_arm_add_fixup (compiler, label, 0);
orc_arm_emit (compiler, code);
- ORC_ASM_CODE(compiler," b%s .L%d\n", orc_arm_cond_name(cond), label);
+ ORC_ASM_CODE (compiler, " b%s .L%d\n", orc_arm_cond_name (cond), label);
}
void
-orc_arm_emit_load_imm (OrcCompiler *compiler, int dest, int imm)
+orc_arm_emit_load_imm (OrcCompiler * compiler, int dest, int imm)
{
orc_uint32 code;
int shift2;
@@ -219,21 +221,21 @@ orc_arm_emit_load_imm (OrcCompiler *compiler, int dest, int imm)
shift2++;
}
if (x > 0xff) {
- ORC_PROGRAM_ERROR(compiler, "bad immediate value");
+ ORC_PROGRAM_ERROR (compiler, "bad immediate value");
}
}
code = 0xe3a00000;
- code |= (dest&0xf) << 12;
- code |= (((16-shift2)&0xf) << 8);
- code |= (x&0xff);
+ code |= (dest & 0xf) << 12;
+ code |= (((16 - shift2) & 0xf) << 8);
+ code |= (x & 0xff);
- ORC_ASM_CODE(compiler," mov %s, #0x%08x\n", orc_arm_reg_name (dest), imm);
+ ORC_ASM_CODE (compiler, " mov %s, #0x%08x\n", orc_arm_reg_name (dest), imm);
orc_arm_emit (compiler, code);
}
void
-orc_arm_emit_add_imm (OrcCompiler *compiler, int dest, int src1, int imm)
+orc_arm_emit_add_imm (OrcCompiler * compiler, int dest, int src1, int imm)
{
orc_uint32 code;
int shift2;
@@ -250,153 +252,145 @@ orc_arm_emit_add_imm (OrcCompiler *compiler, int dest, int src1, int imm)
shift2++;
}
if (x > 0xff) {
- ORC_PROGRAM_ERROR(compiler, "bad immediate value");
+ ORC_PROGRAM_ERROR (compiler, "bad immediate value");
}
}
code = 0xe2800000;
- code |= (src1&0xf) << 16;
- code |= (dest&0xf) << 12;
- code |= (((16-shift2)&0xf) << 8);
- code |= (x&0xff);
+ code |= (src1 & 0xf) << 16;
+ code |= (dest & 0xf) << 12;
+ code |= (((16 - shift2) & 0xf) << 8);
+ code |= (x & 0xff);
- ORC_ASM_CODE(compiler," add %s, %s, #0x%08x\n", orc_arm_reg_name (dest),
- orc_arm_reg_name(src1), imm);
+ ORC_ASM_CODE (compiler, " add %s, %s, #0x%08x\n", orc_arm_reg_name (dest),
+ orc_arm_reg_name (src1), imm);
orc_arm_emit (compiler, code);
}
void
-orc_arm_emit_and_imm (OrcCompiler *compiler, int dest, int src1, int value)
+orc_arm_emit_and_imm (OrcCompiler * compiler, int dest, int src1, int value)
{
orc_uint32 code;
code = 0xe2000000;
- code |= (src1&0xf) << 16;
- code |= (dest&0xf) << 12;
+ code |= (src1 & 0xf) << 16;
+ code |= (dest & 0xf) << 12;
code |= (value) << 0;
- ORC_ASM_CODE(compiler," and %s, %s, #%d\n",
- orc_arm_reg_name (dest),
- orc_arm_reg_name (src1),
- value);
+ ORC_ASM_CODE (compiler, " and %s, %s, #%d\n",
+ orc_arm_reg_name (dest), orc_arm_reg_name (src1), value);
orc_arm_emit (compiler, code);
}
void
-orc_arm_emit_cmp (OrcCompiler *compiler, int src1, int src2)
+orc_arm_emit_cmp (OrcCompiler * compiler, int src1, int src2)
{
orc_uint32 code;
code = 0xe1500000;
- code |= (src1&0xf) << 16;
- code |= (src2&0xf) << 0;
+ code |= (src1 & 0xf) << 16;
+ code |= (src2 & 0xf) << 0;
- ORC_ASM_CODE(compiler," cmp %s, %s\n",
- orc_arm_reg_name (src1),
- orc_arm_reg_name (src2));
+ ORC_ASM_CODE (compiler, " cmp %s, %s\n",
+ orc_arm_reg_name (src1), orc_arm_reg_name (src2));
orc_arm_emit (compiler, code);
}
void
-orc_arm_emit_asr_imm (OrcCompiler *compiler, int dest, int src1, int value)
+orc_arm_emit_asr_imm (OrcCompiler * compiler, int dest, int src1, int value)
{
orc_uint32 code;
if (value == 0) {
- ORC_ERROR("bad immediate value");
+ ORC_ERROR ("bad immediate value");
}
code = 0xe1a00040;
- code |= (src1&0xf) << 0;
- code |= (dest&0xf) << 12;
+ code |= (src1 & 0xf) << 0;
+ code |= (dest & 0xf) << 12;
code |= (value) << 7;
- ORC_ASM_CODE(compiler," asr %s, %s, #%d\n",
- orc_arm_reg_name (dest),
- orc_arm_reg_name (src1),
- value);
+ ORC_ASM_CODE (compiler, " asr %s, %s, #%d\n",
+ orc_arm_reg_name (dest), orc_arm_reg_name (src1), value);
orc_arm_emit (compiler, code);
}
void
-orc_arm_emit_lsl_imm (OrcCompiler *compiler, int dest, int src1, int value)
+orc_arm_emit_lsl_imm (OrcCompiler * compiler, int dest, int src1, int value)
{
orc_uint32 code;
if (value == 0) {
- ORC_ERROR("bad immediate value");
+ ORC_ERROR ("bad immediate value");
}
code = 0xe1a00000;
- code |= (src1&0xf) << 0;
- code |= (dest&0xf) << 12;
+ code |= (src1 & 0xf) << 0;
+ code |= (dest & 0xf) << 12;
code |= (value) << 7;
- ORC_ASM_CODE(compiler," lsl %s, %s, #%d\n",
- orc_arm_reg_name (dest),
- orc_arm_reg_name (src1),
- value);
+ ORC_ASM_CODE (compiler, " lsl %s, %s, #%d\n",
+ orc_arm_reg_name (dest), orc_arm_reg_name (src1), value);
orc_arm_emit (compiler, code);
}
void
-orc_arm_emit_load_reg (OrcCompiler *compiler, int dest, int src1, int offset)
+orc_arm_emit_load_reg (OrcCompiler * compiler, int dest, int src1, int offset)
{
orc_uint32 code;
code = 0xe5900000;
- code |= (src1&0xf) << 16;
- code |= (dest&0xf) << 12;
- code |= offset&0xfff;
+ code |= (src1 & 0xf) << 16;
+ code |= (dest & 0xf) << 12;
+ code |= offset & 0xfff;
- ORC_ASM_CODE(compiler," ldr %s, [%s, #%d]\n",
- orc_arm_reg_name (dest),
- orc_arm_reg_name (src1), offset);
+ ORC_ASM_CODE (compiler, " ldr %s, [%s, #%d]\n",
+ orc_arm_reg_name (dest), orc_arm_reg_name (src1), offset);
orc_arm_emit (compiler, code);
}
void
-orc_arm_emit_store_reg (OrcCompiler *compiler, int src1, int dest, int offset)
+orc_arm_emit_store_reg (OrcCompiler * compiler, int src1, int dest, int offset)
{
orc_uint32 code;
code = 0xe5800000;
- code |= (dest&0xf) << 16;
- code |= (src1&0xf) << 12;
- code |= offset&0xfff;
+ code |= (dest & 0xf) << 16;
+ code |= (src1 & 0xf) << 12;
+ code |= offset & 0xfff;
- ORC_ASM_CODE(compiler," str %s, [%s, #%d]\n",
- orc_arm_reg_name (src1),
- orc_arm_reg_name (dest), offset);
+ ORC_ASM_CODE (compiler, " str %s, [%s, #%d]\n",
+ orc_arm_reg_name (src1), orc_arm_reg_name (dest), offset);
orc_arm_emit (compiler, code);
}
void
-orc_arm_emit_mov (OrcCompiler *compiler, int dest, int src)
+orc_arm_emit_mov (OrcCompiler * compiler, int dest, int src)
{
- if (dest == src) return;
- orc_arm_emit_mov_r(compiler, ORC_ARM_COND_AL, 0, dest, src);
+ if (dest == src)
+ return;
+ orc_arm_emit_mov_r (compiler, ORC_ARM_COND_AL, 0, dest, src);
}
void
-orc_arm_emit_sub (OrcCompiler *compiler, int dest, int src1, int src2)
+orc_arm_emit_sub (OrcCompiler * compiler, int dest, int src1, int src2)
{
orc_arm_emit_sub_r (compiler, ORC_ARM_COND_AL, 0, dest, src1, src2);
}
void
-orc_arm_emit_sub_imm (OrcCompiler *compiler, int dest, int src1, int value,
+orc_arm_emit_sub_imm (OrcCompiler * compiler, int dest, int src1, int value,
int record)
{
orc_arm_emit_sub_i (compiler, ORC_ARM_COND_AL, record, dest, src1, value);
}
void
-orc_arm_emit_add (OrcCompiler *compiler, int dest, int src1, int src2)
+orc_arm_emit_add (OrcCompiler * compiler, int dest, int src1, int src2)
{
orc_arm_emit_add_r (compiler, ORC_ARM_COND_AL, 0, dest, src1, src2);
}
void
-orc_arm_emit_cmp_imm (OrcCompiler *compiler, int src1, int value)
+orc_arm_emit_cmp_imm (OrcCompiler * compiler, int src1, int value)
{
orc_arm_emit_cmp_i (compiler, ORC_ARM_COND_AL, src1, value);
}
@@ -447,7 +441,7 @@ orc_arm_emit_cmp_imm (OrcCompiler *compiler, int src1, int value)
* type 4: <op>{<cond>}{s} {<Rd>,} <Rn>, <Rm>, RRX
*/
void
-orc_arm_emit_dp (OrcCompiler *p, int type, OrcArmCond cond, OrcArmDP opcode,
+orc_arm_emit_dp (OrcCompiler * p, int type, OrcArmCond cond, OrcArmDP opcode,
int S, int Rd, int Rn, int Rm, int shift, orc_uint32 val)
{
orc_uint32 code;
@@ -482,7 +476,7 @@ orc_arm_emit_dp (OrcCompiler *p, int type, OrcArmCond cond, OrcArmDP opcode,
shift++;
}
if (shift > 15) {
- ORC_COMPILER_ERROR(p,"invalid ARM immediate %08x", val);
+ ORC_COMPILER_ERROR (p, "invalid ARM immediate %08x", val);
return;
}
shifter_op = arm_so_i (shift, imm);
@@ -496,24 +490,23 @@ orc_arm_emit_dp (OrcCompiler *p, int type, OrcArmCond cond, OrcArmDP opcode,
break;
case 2:
/* <Rm>, [LSL|LSR|ASR] #imm */
- shifter_op = arm_so_rsi (val,shift,Rm);
+ shifter_op = arm_so_rsi (val, shift, Rm);
sprintf (shifter, "%s, %s #%d",
orc_arm_reg_name (Rm), shift_names[shift], val);
break;
case 3:
/* <Rm>, [LSL|LSR|ASR] <Rs> */
- shifter_op = arm_so_rsr (val,shift,Rm);
+ shifter_op = arm_so_rsr (val, shift, Rm);
sprintf (shifter, "%s, %s %s",
orc_arm_reg_name (Rm), shift_names[shift], orc_arm_reg_name (val));
break;
case 4:
/* <Rm>, RRX */
shifter_op = arm_so_rrx (Rm);
- sprintf (shifter, "%s, RRX",
- orc_arm_reg_name (Rm));
+ sprintf (shifter, "%s, RRX", orc_arm_reg_name (Rm));
break;
default:
- ORC_COMPILER_ERROR(p,"unknown data processing type %d", type);
+ ORC_COMPILER_ERROR (p, "unknown data processing type %d", type);
return;
}
@@ -521,21 +514,22 @@ orc_arm_emit_dp (OrcCompiler *p, int type, OrcArmCond cond, OrcArmDP opcode,
if (op_Rn[opcode]) {
/* opcode using Rn */
code = arm_code_dp (cond, I, opcode, S, Rn, Rd, shifter_op);
- ORC_ASM_CODE(p," %s%s%s %s, %s, %s\n",
- dp_insn_names[opcode], orc_arm_cond_name(cond), (S ? "s" : ""),
+ ORC_ASM_CODE (p, " %s%s%s %s, %s, %s\n",
+ dp_insn_names[opcode], orc_arm_cond_name (cond), (S ? "s" : ""),
orc_arm_reg_name (Rd), orc_arm_reg_name (Rn), shifter);
} else {
/* opcode using Rd and val (mov, mvn) */
code = arm_code_dp (cond, I, opcode, S, Rn, Rd, shifter_op);
- ORC_ASM_CODE(p," %s%s%s %s, %s\n",
- dp_insn_names[opcode], orc_arm_cond_name(cond), (S ? "s" : ""),
+ ORC_ASM_CODE (p, " %s%s%s %s, %s\n",
+ dp_insn_names[opcode], orc_arm_cond_name (cond), (S ? "s" : ""),
orc_arm_reg_name (Rd), shifter);
}
} else {
/* opcode does not change Rd, change status register (cmp, tst, ..) */
code = arm_code_dp (cond, I, opcode, 1, Rn, 0, shifter_op);
- ORC_ASM_CODE(p," %s%s %s, %s\n",
- dp_insn_names[opcode], orc_arm_cond_name(cond), orc_arm_reg_name (Rn), shifter);
+ ORC_ASM_CODE (p, " %s%s %s, %s\n",
+ dp_insn_names[opcode], orc_arm_cond_name (cond), orc_arm_reg_name (Rn),
+ shifter);
}
orc_arm_emit (p, code);
}
@@ -550,7 +544,7 @@ orc_arm_emit_dp (OrcCompiler *p, int type, OrcArmCond cond, OrcArmDP opcode,
#define arm_code_par(cond,mode,Rn,Rd,op,Rm) (((cond)<<28)|((mode)<<20)|(((Rn)&0xf)<<16)|(((Rd)&0xf)<<12)|((op)<<4)|((Rm)&0xf)|0xf00)
void
-orc_arm_emit_par (OrcCompiler *p, int op, int mode, OrcArmCond cond,
+orc_arm_emit_par (OrcCompiler * p, int op, int mode, OrcArmCond cond,
int Rd, int Rn, int Rm)
{
orc_uint32 code;
@@ -576,11 +570,9 @@ orc_arm_emit_par (OrcCompiler *p, int op, int mode, OrcArmCond cond,
Rn = Rm;
Rm = tmp;
}
- ORC_ASM_CODE(p," %s%s%s %s, %s, %s\n",
- par_mode_names[mode], par_op_names[op], orc_arm_cond_name(cond),
- orc_arm_reg_name (Rd),
- orc_arm_reg_name (Rn),
- orc_arm_reg_name (Rm));
+ ORC_ASM_CODE (p, " %s%s%s %s, %s, %s\n",
+ par_mode_names[mode], par_op_names[op], orc_arm_cond_name (cond),
+ orc_arm_reg_name (Rd), orc_arm_reg_name (Rn), orc_arm_reg_name (Rm));
orc_arm_emit (p, code);
}
@@ -594,8 +586,8 @@ orc_arm_emit_par (OrcCompiler *p, int op, int mode, OrcArmCond cond,
#define arm_code_xt(op,cond,Rn,Rd,r8,Rm) (op|((cond)<<28)|(((Rn)&0xf)<<16)|(((Rd)&0xf)<<12)|((((r8)&0xf)&0x18)<<7)|((Rm)&0xf))
void
-orc_arm_emit_xt (OrcCompiler *p, int op, OrcArmCond cond,
- int Rd, int Rn, int Rm, int r8)
+orc_arm_emit_xt (OrcCompiler * p, int op, OrcArmCond cond,
+ int Rd, int Rn, int Rm, int r8)
{
orc_uint32 code;
char shifter[64];
@@ -615,25 +607,21 @@ orc_arm_emit_xt (OrcCompiler *p, int op, OrcArmCond cond,
code = arm_code_xt (xt_opcodes[op], cond, Rn, Rd, r8, Rm);
if (Rn < 15) {
/* with Rn */
- ORC_ASM_CODE(p," %s%s %s, %s, %s%s\n",
- xt_insn_names[op], orc_arm_cond_name(cond),
+ ORC_ASM_CODE (p, " %s%s %s, %s, %s%s\n",
+ xt_insn_names[op], orc_arm_cond_name (cond),
orc_arm_reg_name (Rd),
- orc_arm_reg_name (Rn),
- orc_arm_reg_name (Rm),
- shifter);
+ orc_arm_reg_name (Rn), orc_arm_reg_name (Rm), shifter);
} else {
- ORC_ASM_CODE(p," %s%s %s, %s%s\n",
- xt_insn_names[op], orc_arm_cond_name(cond),
- orc_arm_reg_name (Rd),
- orc_arm_reg_name (Rm),
- shifter);
+ ORC_ASM_CODE (p, " %s%s %s, %s%s\n",
+ xt_insn_names[op], orc_arm_cond_name (cond),
+ orc_arm_reg_name (Rd), orc_arm_reg_name (Rm), shifter);
}
orc_arm_emit (p, code);
}
#define arm_code_pkh(op,cond,Rn,Rd,sh,Rm) (op|((cond)<<28)|(((Rn)&0xf)<<16)|(((Rd)&0xf)<<12)|((sh)<<7)|((Rm)&0xf))
void
-orc_arm_emit_pkh (OrcCompiler *p, int op, OrcArmCond cond,
+orc_arm_emit_pkh (OrcCompiler * p, int op, OrcArmCond cond,
int Rd, int Rn, int Rm, int sh)
{
orc_uint32 code;
@@ -642,19 +630,16 @@ orc_arm_emit_pkh (OrcCompiler *p, int op, OrcArmCond cond,
static const char *pkh_insn_names[] = { "pkhbt", "pkhtb" };
if (sh > 0) {
- sprintf (shifter, ", %s #%d",
- (op == 0 ? "LSL" : "ASR"), sh);
+ sprintf (shifter, ", %s #%d", (op == 0 ? "LSL" : "ASR"), sh);
} else {
shifter[0] = '\0';
}
code = arm_code_pkh (pkh_opcodes[op], cond, Rn, Rd, sh, Rm);
- ORC_ASM_CODE(p," %s%s %s, %s, %s%s\n",
- pkh_insn_names[op], orc_arm_cond_name(cond),
+ ORC_ASM_CODE (p, " %s%s %s, %s, %s%s\n",
+ pkh_insn_names[op], orc_arm_cond_name (cond),
orc_arm_reg_name (Rd),
- orc_arm_reg_name (Rn),
- orc_arm_reg_name (Rm),
- shifter);
+ orc_arm_reg_name (Rn), orc_arm_reg_name (Rm), shifter);
orc_arm_emit (p, code);
}
@@ -669,8 +654,8 @@ orc_arm_emit_pkh (OrcCompiler *p, int op, OrcArmCond cond,
(((Rd)&15)<<12)|(((sh)&31)<<7)|(((a)&1)<<6)|\
((Rm)&15))
void
-orc_arm_emit_sat (OrcCompiler *p, int op, OrcArmCond cond,
- int Rd, int sat, int Rm, int sh, int asr)
+orc_arm_emit_sat (OrcCompiler * p, int op, OrcArmCond cond,
+ int Rd, int sat, int Rm, int sh, int asr)
{
orc_uint32 code;
char shifter[64];
@@ -680,8 +665,7 @@ orc_arm_emit_sat (OrcCompiler *p, int op, OrcArmCond cond,
static const int par_op[] = { 0, 0, 3, 3 };
if (sh > 0) {
- sprintf (shifter, ", %s #%d",
- (asr&1 ? "ASR" : "LSL"), sh);
+ sprintf (shifter, ", %s #%d", (asr & 1 ? "ASR" : "LSL"), sh);
} else {
shifter[0] = '\0';
}
@@ -695,33 +679,29 @@ orc_arm_emit_sat (OrcCompiler *p, int op, OrcArmCond cond,
code = arm_code_par (cond, par_mode[op], sat - 1, Rd, par_op[op], Rm);
}
}
- ORC_ASM_CODE(p," %s%s %s, #%d, %s%s\n",
- sat_insn_names[op], orc_arm_cond_name(cond),
- orc_arm_reg_name (Rd),
- sat,
- orc_arm_reg_name (Rm),
- shifter);
+ ORC_ASM_CODE (p, " %s%s %s, #%d, %s%s\n",
+ sat_insn_names[op], orc_arm_cond_name (cond),
+ orc_arm_reg_name (Rd), sat, orc_arm_reg_name (Rm), shifter);
orc_arm_emit (p, code);
}
#define arm_code_rv(op,cond,Rd,Rm) (op|(((cond)&15)<<28)|(((Rd)&15)<<12)|((Rm)&15))
void
-orc_arm_emit_rv (OrcCompiler *p, int op, OrcArmCond cond,
- int Rd, int Rm)
+orc_arm_emit_rv (OrcCompiler * p, int op, OrcArmCond cond, int Rd, int Rm)
{
orc_uint32 code;
static const orc_uint32 rv_opcodes[] = { 0x06bf0f30, 0x06bf0fb0 };
static const char *rv_insn_names[] = { "rev", "rev16" };
code = arm_code_rv (rv_opcodes[op], cond, Rd, Rm);
- ORC_ASM_CODE(p," %s%s %s, %s\n",
- rv_insn_names[op], orc_arm_cond_name(cond),
+ ORC_ASM_CODE (p, " %s%s %s, %s\n",
+ rv_insn_names[op], orc_arm_cond_name (cond),
orc_arm_reg_name (Rd), orc_arm_reg_name (Rm));
orc_arm_emit (p, code);
}
void
-orc_arm_flush_cache (OrcCode *code)
+orc_arm_flush_cache (OrcCode * code)
{
#ifdef HAVE_ARM
__clear_cache (code->code, code->code + code->code_size);
@@ -729,13 +709,12 @@ orc_arm_flush_cache (OrcCode *code)
}
void
-orc_arm_emit_data (OrcCompiler *compiler, orc_uint32 data)
+orc_arm_emit_data (OrcCompiler * compiler, orc_uint32 data)
{
if (compiler->target_flags & ORC_TARGET_CLEAN_COMPILE) {
orc_arm_emit_nop (compiler);
} else {
- ORC_ASM_CODE(compiler," .word 0x%08x\n", data);
+ ORC_ASM_CODE (compiler, " .word 0x%08x\n", data);
orc_arm_emit (compiler, data);
}
}
-
diff --git a/orc/orcbytecode.c b/orc/orcbytecode.c
index 19af32c..7062ba3 100644
--- a/orc/orcbytecode.c
+++ b/orc/orcbytecode.c
@@ -10,11 +10,11 @@
#include <string.h>
-void bytecode_append_code (OrcBytecode *bytecode, int code);
-void bytecode_append_int (OrcBytecode *bytecode, int value);
-void bytecode_append_uint32 (OrcBytecode *bytecode, orc_uint32 value);
-void bytecode_append_uint64 (OrcBytecode *bytecode, orc_uint64 value);
-void bytecode_append_string (OrcBytecode *bytecode, char *s);
+void bytecode_append_code (OrcBytecode * bytecode, int code);
+void bytecode_append_int (OrcBytecode * bytecode, int value);
+void bytecode_append_uint32 (OrcBytecode * bytecode, orc_uint32 value);
+void bytecode_append_uint64 (OrcBytecode * bytecode, orc_uint64 value);
+void bytecode_append_string (OrcBytecode * bytecode, char *s);
OrcBytecode *
@@ -22,24 +22,24 @@ orc_bytecode_new (void)
{
OrcBytecode *bytecode;
- bytecode = malloc (sizeof(OrcBytecode));
- memset (bytecode, 0, sizeof(OrcBytecode));
+ bytecode = malloc (sizeof (OrcBytecode));
+ memset (bytecode, 0, sizeof (OrcBytecode));
bytecode->alloc_len = 256;
- bytecode->bytecode = malloc(bytecode->alloc_len);
+ bytecode->bytecode = malloc (bytecode->alloc_len);
return bytecode;
}
void
-orc_bytecode_free (OrcBytecode *bytecode)
+orc_bytecode_free (OrcBytecode * bytecode)
{
free (bytecode->bytecode);
free (bytecode);
}
OrcBytecode *
-orc_bytecode_from_program (OrcProgram *p)
+orc_bytecode_from_program (OrcProgram * p)
{
OrcBytecode *bytecode = orc_bytecode_new ();
int i;
@@ -84,7 +84,7 @@ orc_bytecode_from_program (OrcProgram *p)
bytecode_pointer (bytecode, p->backup_function);
}
#endif
- for(i=0;i<4;i++){
+ for (i = 0; i < 4; i++) {
var = &p->vars[ORC_VAR_D1 + i];
if (var->size) {
bytecode_append_code (bytecode, ORC_BC_ADD_DESTINATION);
@@ -92,7 +92,7 @@ orc_bytecode_from_program (OrcProgram *p)
bytecode_append_int (bytecode, var->alignment);
}
}
- for(i=0;i<8;i++){
+ for (i = 0; i < 8; i++) {
var = &p->vars[ORC_VAR_S1 + i];
if (var->size) {
bytecode_append_code (bytecode, ORC_BC_ADD_SOURCE);
@@ -100,7 +100,7 @@ orc_bytecode_from_program (OrcProgram *p)
bytecode_append_int (bytecode, var->alignment);
}
}
- for(i=0;i<4;i++){
+ for (i = 0; i < 4; i++) {
var = &p->vars[ORC_VAR_A1 + i];
if (var->size) {
bytecode_append_code (bytecode, ORC_BC_ADD_ACCUMULATOR);
@@ -108,20 +108,21 @@ orc_bytecode_from_program (OrcProgram *p)
//bytecode_append_int (bytecode, var->alignment);
}
}
- for(i=0;i<8;i++){
+ for (i = 0; i < 8; i++) {
var = &p->vars[ORC_VAR_C1 + i];
- if (var->size == 0) continue;
+ if (var->size == 0)
+ continue;
if (var->size <= 4) {
bytecode_append_code (bytecode, ORC_BC_ADD_CONSTANT);
bytecode_append_int (bytecode, var->size);
- bytecode_append_uint32 (bytecode, (orc_uint32)var->value.i);
+ bytecode_append_uint32 (bytecode, (orc_uint32) var->value.i);
} else if (var->size > 4) {
bytecode_append_code (bytecode, ORC_BC_ADD_CONSTANT_INT64);
bytecode_append_int (bytecode, var->size);
- bytecode_append_uint64 (bytecode, (orc_uint64)var->value.i);
+ bytecode_append_uint64 (bytecode, (orc_uint64) var->value.i);
}
}
- for(i=0;i<8;i++){
+ for (i = 0; i < 8; i++) {
var = &p->vars[ORC_VAR_P1 + i];
if (var->size) {
switch (var->param_type) {
@@ -138,13 +139,13 @@ orc_bytecode_from_program (OrcProgram *p)
bytecode_append_code (bytecode, ORC_BC_ADD_PARAMETER_INT64);
break;
default:
- ORC_ASSERT(0);
+ ORC_ASSERT (0);
break;
}
bytecode_append_int (bytecode, var->size);
}
}
- for(i=0;i<16;i++){
+ for (i = 0; i < 16; i++) {
var = &p->vars[ORC_VAR_T1 + i];
if (var->size) {
bytecode_append_code (bytecode, ORC_BC_ADD_TEMPORARY);
@@ -152,7 +153,7 @@ orc_bytecode_from_program (OrcProgram *p)
}
}
- for(i=0;i<p->n_insns;i++){
+ for (i = 0; i < p->n_insns; i++) {
OrcInstruction *insn = p->insns + i;
if (insn->flags) {
@@ -184,7 +185,7 @@ orc_bytecode_from_program (OrcProgram *p)
}
void
-bytecode_append_byte (OrcBytecode *bytecode, int byte)
+bytecode_append_byte (OrcBytecode * bytecode, int byte)
{
if (bytecode->length >= bytecode->alloc_len) {
bytecode->alloc_len += 256;
@@ -195,15 +196,15 @@ bytecode_append_byte (OrcBytecode *bytecode, int byte)
}
void
-bytecode_append_code (OrcBytecode *bytecode, int code)
+bytecode_append_code (OrcBytecode * bytecode, int code)
{
bytecode_append_byte (bytecode, code);
#if 0
OrcOpcodeSet *opcode_set = orc_opcode_set_get ("sys");
- fprintf(bytecode, "\n ");
+ fprintf (bytecode, "\n ");
if (code >= 32) {
- fprintf(bytecode, "ORC_BC_%s, ", opcode_set->opcodes[code-32].name);
+ fprintf (bytecode, "ORC_BC_%s, ", opcode_set->opcodes[code - 32].name);
} else {
static char *codes[32] = {
"END",
@@ -240,15 +241,15 @@ bytecode_append_code (OrcBytecode *bytecode, int code)
"RESERVED_31"
};
- fprintf(bytecode, "ORC_BC_%s, ", codes[code]);
+ fprintf (bytecode, "ORC_BC_%s, ", codes[code]);
}
#endif
}
void
-bytecode_append_int (OrcBytecode *bytecode, int value)
+bytecode_append_int (OrcBytecode * bytecode, int value)
{
- ORC_ASSERT(value >= 0);
+ ORC_ASSERT (value >= 0);
if (value < 255) {
bytecode_append_byte (bytecode, value);
@@ -257,12 +258,12 @@ bytecode_append_int (OrcBytecode *bytecode, int value)
bytecode_append_byte (bytecode, value & 0xff);
bytecode_append_byte (bytecode, value >> 8);
} else {
- ORC_ASSERT(0);
+ ORC_ASSERT (0);
}
}
void
-bytecode_append_uint32 (OrcBytecode *bytecode, orc_uint32 value)
+bytecode_append_uint32 (OrcBytecode * bytecode, orc_uint32 value)
{
bytecode_append_byte (bytecode, value & 0xff);
bytecode_append_byte (bytecode, (value >> 8) & 0xff);
@@ -272,7 +273,7 @@ bytecode_append_uint32 (OrcBytecode *bytecode, orc_uint32 value)
}
void
-bytecode_append_uint64 (OrcBytecode *bytecode, orc_uint64 value)
+bytecode_append_uint64 (OrcBytecode * bytecode, orc_uint64 value)
{
bytecode_append_byte (bytecode, value & 0xff);
bytecode_append_byte (bytecode, (value >> 8) & 0xff);
@@ -286,18 +287,19 @@ bytecode_append_uint64 (OrcBytecode *bytecode, orc_uint64 value)
}
void
-bytecode_append_string (OrcBytecode *bytecode, char *s)
+bytecode_append_string (OrcBytecode * bytecode, char *s)
{
int i;
- int len = strlen(s);
+ int len = strlen (s);
bytecode_append_int (bytecode, len);
- for(i=0;i<len;i++){
+ for (i = 0; i < len; i++) {
bytecode_append_byte (bytecode, s[i]);
}
}
typedef struct _OrcBytecodeParse OrcBytecodeParse;
-struct _OrcBytecodeParse {
+struct _OrcBytecodeParse
+{
const orc_uint8 *bytecode;
int parse_offset;
int function_start;
@@ -305,7 +307,7 @@ struct _OrcBytecodeParse {
};
int
-orc_bytecode_parse_get_byte (OrcBytecodeParse *parse)
+orc_bytecode_parse_get_byte (OrcBytecodeParse * parse)
{
int value;
value = parse->bytecode[parse->parse_offset];
@@ -314,21 +316,21 @@ orc_bytecode_parse_get_byte (OrcBytecodeParse *parse)
}
int
-orc_bytecode_parse_get_int (OrcBytecodeParse *parse)
+orc_bytecode_parse_get_int (OrcBytecodeParse * parse)
{
int value;
- value = orc_bytecode_parse_get_byte(parse);
+ value = orc_bytecode_parse_get_byte (parse);
if (value == 255) {
- value = orc_bytecode_parse_get_byte(parse);
- value |= orc_bytecode_parse_get_byte(parse) << 8;
+ value = orc_bytecode_parse_get_byte (parse);
+ value |= orc_bytecode_parse_get_byte (parse) << 8;
}
return value;
}
char *
-orc_bytecode_parse_get_string (OrcBytecodeParse *parse)
+orc_bytecode_parse_get_string (OrcBytecodeParse * parse)
{
int len;
int i;
@@ -336,7 +338,7 @@ orc_bytecode_parse_get_string (OrcBytecodeParse *parse)
len = orc_bytecode_parse_get_int (parse);
s = malloc (len + 1);
- for(i=0;i<len;i++){
+ for (i = 0; i < len; i++) {
s[i] = orc_bytecode_parse_get_byte (parse);
}
s[i] = 0;
@@ -345,7 +347,7 @@ orc_bytecode_parse_get_string (OrcBytecodeParse *parse)
}
orc_uint32
-orc_bytecode_parse_get_uint32 (OrcBytecodeParse *parse)
+orc_bytecode_parse_get_uint32 (OrcBytecodeParse * parse)
{
orc_uint32 value;
value = orc_bytecode_parse_get_byte (parse);
@@ -356,22 +358,22 @@ orc_bytecode_parse_get_uint32 (OrcBytecodeParse *parse)
}
orc_uint64
-orc_bytecode_parse_get_uint64 (OrcBytecodeParse *parse)
+orc_bytecode_parse_get_uint64 (OrcBytecodeParse * parse)
{
orc_uint64 value;
value = orc_bytecode_parse_get_byte (parse);
value |= orc_bytecode_parse_get_byte (parse) << 8;
value |= orc_bytecode_parse_get_byte (parse) << 16;
value |= orc_bytecode_parse_get_byte (parse) << 24;
- value |= (orc_uint64)orc_bytecode_parse_get_byte (parse) << 32;
- value |= (orc_uint64)orc_bytecode_parse_get_byte (parse) << 40;
- value |= (orc_uint64)orc_bytecode_parse_get_byte (parse) << 48;
- value |= (orc_uint64)orc_bytecode_parse_get_byte (parse) << 56;
+ value |= (orc_uint64) orc_bytecode_parse_get_byte (parse) << 32;
+ value |= (orc_uint64) orc_bytecode_parse_get_byte (parse) << 40;
+ value |= (orc_uint64) orc_bytecode_parse_get_byte (parse) << 48;
+ value |= (orc_uint64) orc_bytecode_parse_get_byte (parse) << 56;
return value;
}
int
-orc_bytecode_parse_function (OrcProgram *program, const orc_uint8 *bytecode)
+orc_bytecode_parse_function (OrcProgram * program, const orc_uint8 * bytecode)
{
OrcBytecodeParse _parse;
OrcBytecodeParse *parse = &_parse;
@@ -382,7 +384,7 @@ orc_bytecode_parse_function (OrcProgram *program, const orc_uint8 *bytecode)
OrcOpcodeSet *opcode_set;
int instruction_flags = 0;
- memset (parse, 0, sizeof(*parse));
+ memset (parse, 0, sizeof (*parse));
parse->bytecode = bytecode;
opcode_set = orc_opcode_set_get ("sys");
@@ -440,20 +442,20 @@ orc_bytecode_parse_function (OrcProgram *program, const orc_uint8 *bytecode)
orc_program_add_accumulator (program, size, "a");
break;
case ORC_BC_ADD_CONSTANT:
- {
- orc_uint32 value;
- size = orc_bytecode_parse_get_int (parse);
- value = orc_bytecode_parse_get_uint32 (parse);
- orc_program_add_constant (program, size, value, "c");
- }
+ {
+ orc_uint32 value;
+ size = orc_bytecode_parse_get_int (parse);
+ value = orc_bytecode_parse_get_uint32 (parse);
+ orc_program_add_constant (program, size, value, "c");
+ }
break;
case ORC_BC_ADD_CONSTANT_INT64:
- {
- orc_uint64 value;
- size = orc_bytecode_parse_get_int (parse);
- value = orc_bytecode_parse_get_uint64 (parse);
- orc_program_add_constant_int64 (program, size, value, "c");
- }
+ {
+ orc_uint64 value;
+ size = orc_bytecode_parse_get_int (parse);
+ value = orc_bytecode_parse_get_uint64 (parse);
+ orc_program_add_constant_int64 (program, size, value, "c");
+ }
break;
case ORC_BC_ADD_PARAMETER:
size = orc_bytecode_parse_get_int (parse);
@@ -509,4 +511,3 @@ orc_bytecode_parse_function (OrcProgram *program, const orc_uint8 *bytecode)
}
}
}
-
diff --git a/orc/orccode.c b/orc/orccode.c
index ca5946c..5774a85 100644
--- a/orc/orccode.c
+++ b/orc/orccode.c
@@ -13,13 +13,13 @@ OrcCode *
orc_code_new (void)
{
OrcCode *code;
- code = malloc(sizeof(OrcCode));
- memset (code, 0, sizeof(OrcCode));
+ code = malloc (sizeof (OrcCode));
+ memset (code, 0, sizeof (OrcCode));
return code;
}
void
-orc_code_free (OrcCode *code)
+orc_code_free (OrcCode * code)
{
if (code->insns) {
free (code->insns);
@@ -36,6 +36,3 @@ orc_code_free (OrcCode *code)
free (code);
}
-
-
-
diff --git a/orc/orccodemem.c b/orc/orccodemem.c
index f470be5..04eef56 100644
--- a/orc/orccodemem.c
+++ b/orc/orccodemem.c
@@ -26,7 +26,8 @@
typedef struct _OrcCodeRegion OrcCodeRegion;
-struct _OrcCodeRegion {
+struct _OrcCodeRegion
+{
orc_uint8 *write_ptr;
orc_uint8 *exec_ptr;
int size;
@@ -34,8 +35,9 @@ struct _OrcCodeRegion {
OrcCodeChunk *chunks;
};
-struct _OrcCodeChunk {
- /*< private >*/
+struct _OrcCodeChunk
+{
+ /*< private > */
struct _OrcCodeChunk *next;
struct _OrcCodeChunk *prev;
struct _OrcCodeRegion *region;
@@ -46,7 +48,7 @@ struct _OrcCodeChunk {
};
-void orc_code_region_allocate_codemem (OrcCodeRegion *region);
+void orc_code_region_allocate_codemem (OrcCodeRegion * region);
static OrcCodeRegion **orc_code_regions;
static int orc_code_n_regions;
@@ -58,13 +60,13 @@ orc_code_region_new (void)
OrcCodeRegion *region;
OrcCodeChunk *chunk;
- region = malloc(sizeof(OrcCodeRegion));
- memset (region, 0, sizeof(OrcCodeRegion));
+ region = malloc (sizeof (OrcCodeRegion));
+ memset (region, 0, sizeof (OrcCodeRegion));
orc_code_region_allocate_codemem (region);
- chunk = malloc(sizeof(OrcCodeChunk));
- memset (chunk, 0, sizeof(OrcCodeChunk));
+ chunk = malloc (sizeof (OrcCodeChunk));
+ memset (chunk, 0, sizeof (OrcCodeChunk));
chunk->offset = 0;
chunk->used = FALSE;
@@ -77,12 +79,12 @@ orc_code_region_new (void)
}
OrcCodeChunk *
-orc_code_chunk_split (OrcCodeChunk *chunk, int size)
+orc_code_chunk_split (OrcCodeChunk * chunk, int size)
{
OrcCodeChunk *newchunk;
- newchunk = malloc(sizeof(OrcCodeChunk));
- memset (newchunk, 0, sizeof(OrcCodeChunk));
+ newchunk = malloc (sizeof (OrcCodeChunk));
+ memset (newchunk, 0, sizeof (OrcCodeChunk));
newchunk->region = chunk->region;
newchunk->offset = chunk->offset + size;
@@ -100,7 +102,7 @@ orc_code_chunk_split (OrcCodeChunk *chunk, int size)
}
void
-orc_code_chunk_merge (OrcCodeChunk *chunk)
+orc_code_chunk_merge (OrcCodeChunk * chunk)
{
OrcCodeChunk *chunk2 = chunk->next;
@@ -110,7 +112,7 @@ orc_code_chunk_merge (OrcCodeChunk *chunk)
}
chunk->size += chunk2->size;
- free(chunk2);
+ free (chunk2);
}
OrcCodeChunk *
@@ -121,9 +123,9 @@ orc_code_region_get_free_chunk (int size)
OrcCodeChunk *chunk;
orc_global_mutex_lock ();
- for(i=0;i<orc_code_n_regions;i++){
+ for (i = 0; i < orc_code_n_regions; i++) {
region = orc_code_regions[i];
- for(chunk = region->chunks; chunk; chunk = chunk->next) {
+ for (chunk = region->chunks; chunk; chunk = chunk->next) {
if (!chunk->used && size <= chunk->size) {
orc_global_mutex_unlock ();
return chunk;
@@ -132,26 +134,26 @@ orc_code_region_get_free_chunk (int size)
}
orc_code_regions = realloc (orc_code_regions,
- sizeof(void *)*(orc_code_n_regions+1));
+ sizeof (void *) * (orc_code_n_regions + 1));
orc_code_regions[orc_code_n_regions] = orc_code_region_new ();
region = orc_code_regions[orc_code_n_regions];
orc_code_n_regions++;
- for(chunk = region->chunks; chunk; chunk = chunk->next) {
- if (!chunk->used && size <= chunk->size){
+ for (chunk = region->chunks; chunk; chunk = chunk->next) {
+ if (!chunk->used && size <= chunk->size) {
orc_global_mutex_unlock ();
return chunk;
}
}
orc_global_mutex_unlock ();
- ORC_ASSERT(0);
+ ORC_ASSERT (0);
return NULL;
}
void
-orc_code_allocate_codemem (OrcCode *code, int size)
+orc_code_allocate_codemem (OrcCode * code, int size)
{
OrcCodeRegion *region;
OrcCodeChunk *chunk;
@@ -167,14 +169,14 @@ orc_code_allocate_codemem (OrcCode *code, int size)
chunk->used = TRUE;
code->chunk = chunk;
- code->code = ORC_PTR_OFFSET(region->write_ptr, chunk->offset);
- code->exec = ORC_PTR_OFFSET(region->exec_ptr, chunk->offset);
+ code->code = ORC_PTR_OFFSET (region->write_ptr, chunk->offset);
+ code->exec = ORC_PTR_OFFSET (region->exec_ptr, chunk->offset);
code->code_size = size;
//compiler->codeptr = ORC_PTR_OFFSET(region->write_ptr, chunk->offset);
}
void
-orc_code_chunk_free (OrcCodeChunk *chunk)
+orc_code_chunk_free (OrcCodeChunk * chunk)
{
if (_orc_compiler_flag_debug) {
/* If debug is turned on, don't free code */
@@ -192,16 +194,15 @@ orc_code_chunk_free (OrcCodeChunk *chunk)
#ifdef HAVE_CODEMEM_MMAP
int
-orc_code_region_allocate_codemem_dual_map (OrcCodeRegion *region,
+orc_code_region_allocate_codemem_dual_map (OrcCodeRegion * region,
const char *dir, int force_unlink)
{
int fd;
int n;
char *filename;
- filename = malloc (strlen ("/orcexec..") +
- strlen (dir) + 6 + 1);
- sprintf(filename, "%s/orcexec.XXXXXX", dir);
+ filename = malloc (strlen ("/orcexec..") + strlen (dir) + 6 + 1);
+ sprintf (filename, "%s/orcexec.XXXXXX", dir);
fd = mkstemp (filename);
if (fd == -1) {
ORC_WARNING ("failed to create temp file");
@@ -215,19 +216,19 @@ orc_code_region_allocate_codemem_dual_map (OrcCodeRegion *region,
n = ftruncate (fd, SIZE);
if (n < 0) {
- ORC_WARNING("failed to expand file to size");
+ ORC_WARNING ("failed to expand file to size");
close (fd);
return FALSE;
}
- region->exec_ptr = mmap (NULL, SIZE, PROT_READ|PROT_EXEC,
+ region->exec_ptr = mmap (NULL, SIZE, PROT_READ | PROT_EXEC,
MAP_SHARED, fd, 0);
if (region->exec_ptr == MAP_FAILED) {
- ORC_WARNING("failed to create exec map");
+ ORC_WARNING ("failed to create exec map");
close (fd);
return FALSE;
}
- region->write_ptr = mmap (NULL, SIZE, PROT_READ|PROT_WRITE,
+ region->write_ptr = mmap (NULL, SIZE, PROT_READ | PROT_WRITE,
MAP_SHARED, fd, 0);
if (region->write_ptr == MAP_FAILED) {
ORC_WARNING ("failed to create write map");
@@ -245,12 +246,12 @@ orc_code_region_allocate_codemem_dual_map (OrcCodeRegion *region,
#endif
int
-orc_code_region_allocate_codemem_anon_map (OrcCodeRegion *region)
+orc_code_region_allocate_codemem_anon_map (OrcCodeRegion * region)
{
- region->exec_ptr = mmap (NULL, SIZE, PROT_READ|PROT_WRITE|PROT_EXEC,
- MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
+ region->exec_ptr = mmap (NULL, SIZE, PROT_READ | PROT_WRITE | PROT_EXEC,
+ MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
if (region->exec_ptr == MAP_FAILED) {
- ORC_WARNING("failed to create write/exec map");
+ ORC_WARNING ("failed to create write/exec map");
return FALSE;
}
region->write_ptr = region->exec_ptr;
@@ -259,28 +260,32 @@ orc_code_region_allocate_codemem_anon_map (OrcCodeRegion *region)
}
void
-orc_code_region_allocate_codemem (OrcCodeRegion *region)
+orc_code_region_allocate_codemem (OrcCodeRegion * region)
{
const char *tmpdir;
tmpdir = getenv ("TMPDIR");
if (tmpdir && orc_code_region_allocate_codemem_dual_map (region,
- tmpdir, FALSE)) return;
+ tmpdir, FALSE))
+ return;
- if (orc_code_region_allocate_codemem_dual_map (region,
- "/tmp", FALSE)) return;
+ if (orc_code_region_allocate_codemem_dual_map (region, "/tmp", FALSE))
+ return;
tmpdir = getenv ("XDG_RUNTIME_DIR");
if (tmpdir && orc_code_region_allocate_codemem_dual_map (region,
- tmpdir, FALSE)) return;
+ tmpdir, FALSE))
+ return;
tmpdir = getenv ("HOME");
if (tmpdir && orc_code_region_allocate_codemem_dual_map (region,
- tmpdir, FALSE)) return;
+ tmpdir, FALSE))
+ return;
+
+ if (orc_code_region_allocate_codemem_anon_map (region))
+ return;
- if (orc_code_region_allocate_codemem_anon_map (region)) return;
-
- ORC_ERROR("Failed to create write and exec mmap regions. This "
+ ORC_ERROR ("Failed to create write and exec mmap regions. This "
"is probably because SELinux execmem check is enabled (good) "
"and $TMPDIR and $HOME are mounted noexec (bad).");
}
@@ -289,9 +294,10 @@ orc_code_region_allocate_codemem (OrcCodeRegion *region)
#ifdef HAVE_CODEMEM_VIRTUALALLOC
void
-orc_code_region_allocate_codemem (OrcCodeRegion *region)
+orc_code_region_allocate_codemem (OrcCodeRegion * region)
{
- region->write_ptr = VirtualAlloc(NULL, SIZE, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
+ region->write_ptr =
+ VirtualAlloc (NULL, SIZE, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
region->exec_ptr = region->write_ptr;
region->size = SIZE;
}
@@ -299,11 +305,10 @@ orc_code_region_allocate_codemem (OrcCodeRegion *region)
#ifdef HAVE_CODEMEM_MALLOC
void
-orc_code_region_allocate_codemem (OrcCodeRegion *region)
+orc_code_region_allocate_codemem (OrcCodeRegion * region)
{
- region->write_ptr = malloc(SIZE);
+ region->write_ptr = malloc (SIZE);
region->exec_ptr = region->write_ptr;
region->size = SIZE;
}
#endif
-
diff --git a/orc/orccompiler.c b/orc/orccompiler.c
index 477bc91..59cd032 100644
--- a/orc/orccompiler.c
+++ b/orc/orccompiler.c
@@ -32,14 +32,14 @@
* or functions that use ORC_ASM_CODE() internally.
*/
-void orc_compiler_assign_rules (OrcCompiler *compiler);
-void orc_compiler_global_reg_alloc (OrcCompiler *compiler);
-void orc_compiler_rewrite_insns (OrcCompiler *compiler);
-void orc_compiler_rewrite_vars (OrcCompiler *compiler);
-void orc_compiler_rewrite_vars2 (OrcCompiler *compiler);
-int orc_compiler_dup_temporary (OrcCompiler *compiler, int var, int j);
-int orc_compiler_new_temporary (OrcCompiler *compiler, int size);
-void orc_compiler_check_sizes (OrcCompiler *compiler);
+void orc_compiler_assign_rules (OrcCompiler * compiler);
+void orc_compiler_global_reg_alloc (OrcCompiler * compiler);
+void orc_compiler_rewrite_insns (OrcCompiler * compiler);
+void orc_compiler_rewrite_vars (OrcCompiler * compiler);
+void orc_compiler_rewrite_vars2 (OrcCompiler * compiler);
+int orc_compiler_dup_temporary (OrcCompiler * compiler, int var, int j);
+int orc_compiler_new_temporary (OrcCompiler * compiler, int size);
+void orc_compiler_check_sizes (OrcCompiler * compiler);
static char **_orc_compiler_flag_list;
int _orc_compiler_flag_backup;
@@ -68,16 +68,18 @@ orc_compiler_flag_check (const char *flag)
{
int i;
- if (_orc_compiler_flag_list == NULL) return FALSE;
+ if (_orc_compiler_flag_list == NULL)
+ return FALSE;
- for (i=0;_orc_compiler_flag_list[i];i++){
- if (strcmp (_orc_compiler_flag_list[i], flag) == 0) return TRUE;
+ for (i = 0; _orc_compiler_flag_list[i]; i++) {
+ if (strcmp (_orc_compiler_flag_list[i], flag) == 0)
+ return TRUE;
}
return FALSE;
}
int
-orc_compiler_allocate_register (OrcCompiler *compiler, int data_reg)
+orc_compiler_allocate_register (OrcCompiler * compiler, int data_reg)
{
int i;
int roff;
@@ -93,23 +95,21 @@ orc_compiler_allocate_register (OrcCompiler *compiler, int data_reg)
roff = 0;
if (_orc_compiler_flag_randomize) {
/* for testing */
- roff = rand()&0x1f;
+ roff = rand () & 0x1f;
}
- for(i=0;i<32;i++){
- reg = offset + ((roff + i)&0x1f);
+ for (i = 0; i < 32; i++) {
+ reg = offset + ((roff + i) & 0x1f);
if (compiler->valid_regs[reg] &&
- !compiler->save_regs[reg] &&
- compiler->alloc_regs[reg] == 0) {
+ !compiler->save_regs[reg] && compiler->alloc_regs[reg] == 0) {
compiler->alloc_regs[reg]++;
compiler->used_regs[reg] = 1;
return reg;
}
}
- for(i=0;i<32;i++){
- reg = offset + ((roff + i)&0x1f);
- if (compiler->valid_regs[reg] &&
- compiler->alloc_regs[reg] == 0) {
+ for (i = 0; i < 32; i++) {
+ reg = offset + ((roff + i) & 0x1f);
+ if (compiler->valid_regs[reg] && compiler->alloc_regs[reg] == 0) {
compiler->alloc_regs[reg]++;
compiler->used_regs[reg] = 1;
return reg;
@@ -145,7 +145,7 @@ orc_compiler_allocate_register (OrcCompiler *compiler, int data_reg)
* Returns: an OrcCompileResult
*/
OrcCompileResult
-orc_program_compile (OrcProgram *program)
+orc_program_compile (OrcProgram * program)
{
return orc_program_compile_for_target (program, orc_target_get_default ());
}
@@ -160,7 +160,7 @@ orc_program_compile (OrcProgram *program)
* Returns: an OrcCompileResult
*/
OrcCompileResult
-orc_program_compile_for_target (OrcProgram *program, OrcTarget *target)
+orc_program_compile_for_target (OrcProgram * program, OrcTarget * target)
{
unsigned int flags;
@@ -183,16 +183,16 @@ orc_program_compile_for_target (OrcProgram *program, OrcTarget *target)
* Returns: an OrcCompileResult
*/
OrcCompileResult
-orc_program_compile_full (OrcProgram *program, OrcTarget *target,
+orc_program_compile_full (OrcProgram * program, OrcTarget * target,
unsigned int flags)
{
OrcCompiler *compiler;
int i;
OrcCompileResult result;
- ORC_INFO("initializing compiler for program \"%s\"", program->name);
- compiler = malloc (sizeof(OrcCompiler));
- memset (compiler, 0, sizeof(OrcCompiler));
+ ORC_INFO ("initializing compiler for program \"%s\"", program->name);
+ compiler = malloc (sizeof (OrcCompiler));
+ memset (compiler, 0, sizeof (OrcCompiler));
compiler->program = program;
@@ -200,88 +200,87 @@ orc_program_compile_full (OrcProgram *program, OrcTarget *target,
compiler->target_flags = flags;
{
- ORC_LOG("variables");
- for(i=0;i<ORC_N_VARIABLES;i++){
+ ORC_LOG ("variables");
+ for (i = 0; i < ORC_N_VARIABLES; i++) {
if (program->vars[i].size > 0) {
- ORC_LOG("%d: %s size %d type %d alloc %d", i,
+ ORC_LOG ("%d: %s size %d type %d alloc %d", i,
program->vars[i].name,
program->vars[i].size,
- program->vars[i].vartype,
- program->vars[i].alloc);
+ program->vars[i].vartype, program->vars[i].alloc);
}
}
- ORC_LOG("instructions");
- for(i=0;i<program->n_insns;i++){
- ORC_LOG("%d: %s %d %d %d %d", i,
+ ORC_LOG ("instructions");
+ for (i = 0; i < program->n_insns; i++) {
+ ORC_LOG ("%d: %s %d %d %d %d", i,
program->insns[i].opcode->name,
program->insns[i].dest_args[0],
program->insns[i].dest_args[1],
- program->insns[i].src_args[0],
- program->insns[i].src_args[1]);
+ program->insns[i].src_args[0], program->insns[i].src_args[1]);
}
}
memcpy (compiler->insns, program->insns,
- program->n_insns * sizeof(OrcInstruction));
+ program->n_insns * sizeof (OrcInstruction));
compiler->n_insns = program->n_insns;
memcpy (compiler->vars, program->vars,
- ORC_N_VARIABLES * sizeof(OrcVariable));
+ ORC_N_VARIABLES * sizeof (OrcVariable));
memset (compiler->vars + ORC_N_VARIABLES, 0,
- (ORC_N_COMPILER_VARIABLES - ORC_N_VARIABLES) * sizeof(OrcVariable));
+ (ORC_N_COMPILER_VARIABLES - ORC_N_VARIABLES) * sizeof (OrcVariable));
compiler->n_temp_vars = program->n_temp_vars;
compiler->n_dup_vars = 0;
- for(i=0;i<32;i++) {
+ for (i = 0; i < 32; i++) {
compiler->valid_regs[i] = 1;
}
orc_compiler_check_sizes (compiler);
- if (compiler->error) goto error;
+ if (compiler->error)
+ goto error;
if (compiler->target) {
compiler->target->compiler_init (compiler);
}
orc_compiler_rewrite_insns (compiler);
- if (compiler->error) goto error;
+ if (compiler->error)
+ goto error;
orc_compiler_rewrite_vars (compiler);
- if (compiler->error) goto error;
+ if (compiler->error)
+ goto error;
if (compiler->target) {
orc_compiler_global_reg_alloc (compiler);
orc_compiler_rewrite_vars2 (compiler);
}
-
#if 0
{
- ORC_ERROR("variables");
- for(i=0;i<ORC_N_VARIABLES;i++){
+ ORC_ERROR ("variables");
+ for (i = 0; i < ORC_N_VARIABLES; i++) {
if (compiler->vars[i].size > 0) {
- ORC_ERROR("%d: %s size %d type %d alloc %d [%d,%d]", i,
+ ORC_ERROR ("%d: %s size %d type %d alloc %d [%d,%d]", i,
compiler->vars[i].name,
compiler->vars[i].size,
compiler->vars[i].vartype,
compiler->vars[i].alloc,
- compiler->vars[i].first_use,
- compiler->vars[i].last_use);
+ compiler->vars[i].first_use, compiler->vars[i].last_use);
}
}
- ORC_ERROR("instructions");
- for(i=0;i<compiler->n_insns;i++){
- ORC_ERROR("%d: %s %d %d %d %d", i,
+ ORC_ERROR ("instructions");
+ for (i = 0; i < compiler->n_insns; i++) {
+ ORC_ERROR ("%d: %s %d %d %d %d", i,
compiler->insns[i].opcode->name,
compiler->insns[i].dest_args[0],
compiler->insns[i].dest_args[1],
- compiler->insns[i].src_args[0],
- compiler->insns[i].src_args[1]);
+ compiler->insns[i].src_args[0], compiler->insns[i].src_args[1]);
}
}
#endif
- if (compiler->error) goto error;
+ if (compiler->error)
+ goto error;
program->orccode = orc_code_new ();
@@ -291,18 +290,20 @@ orc_program_compile_full (OrcProgram *program, OrcTarget *target,
if (program->backup_func) {
program->orccode->exec = program->backup_func;
} else {
- program->orccode->exec = (void *)orc_executor_emulate;
+ program->orccode->exec = (void *) orc_executor_emulate;
}
program->orccode->n_insns = compiler->n_insns;
- program->orccode->insns = malloc(sizeof(OrcInstruction) * compiler->n_insns);
+ program->orccode->insns =
+ malloc (sizeof (OrcInstruction) * compiler->n_insns);
memcpy (program->orccode->insns, compiler->insns,
- sizeof(OrcInstruction) * compiler->n_insns);
+ sizeof (OrcInstruction) * compiler->n_insns);
- program->orccode->vars = malloc (sizeof(OrcCodeVariable) * ORC_N_COMPILER_VARIABLES);
+ program->orccode->vars =
+ malloc (sizeof (OrcCodeVariable) * ORC_N_COMPILER_VARIABLES);
memset (program->orccode->vars, 0,
- sizeof(OrcCodeVariable) * ORC_N_COMPILER_VARIABLES);
- for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
+ sizeof (OrcCodeVariable) * ORC_N_COMPILER_VARIABLES);
+ for (i = 0; i < ORC_N_COMPILER_VARIABLES; i++) {
program->orccode->vars[i].vartype = compiler->vars[i].vartype;
program->orccode->vars[i].size = compiler->vars[i].size;
program->orccode->vars[i].value = compiler->vars[i].value;
@@ -315,22 +316,24 @@ orc_program_compile_full (OrcProgram *program, OrcTarget *target,
}
if (_orc_compiler_flag_emulate || target == NULL) {
- program->orccode->exec = (void *)orc_executor_emulate;
+ program->orccode->exec = (void *) orc_executor_emulate;
orc_compiler_error (compiler, "Compilation disabled, using emulation");
compiler->result = ORC_COMPILE_RESULT_UNKNOWN_COMPILE;
goto error;
}
orc_compiler_assign_rules (compiler);
- if (compiler->error) goto error;
+ if (compiler->error)
+ goto error;
- ORC_INFO("allocating code memory");
- compiler->code = malloc(65536);
+ ORC_INFO ("allocating code memory");
+ compiler->code = malloc (65536);
compiler->codeptr = compiler->code;
- if (compiler->error) goto error;
+ if (compiler->error)
+ goto error;
- ORC_INFO("compiling for target \"%s\"", compiler->target->name);
+ ORC_INFO ("compiling for target \"%s\"", compiler->target->name);
compiler->target->compile (compiler);
if (compiler->error) {
compiler->result = ORC_COMPILE_RESULT_UNKNOWN_COMPILE;
@@ -354,15 +357,16 @@ orc_program_compile_full (OrcProgram *program, OrcTarget *target,
program->asm_code = compiler->asm_code;
result = compiler->result;
- for (i=0;i<compiler->n_dup_vars;i++){
- free(compiler->vars[ORC_VAR_T1 + compiler->n_temp_vars + i].name);
+ for (i = 0; i < compiler->n_dup_vars; i++) {
+ free (compiler->vars[ORC_VAR_T1 + compiler->n_temp_vars + i].name);
compiler->vars[ORC_VAR_T1 + compiler->n_temp_vars + i].name = NULL;
}
free (compiler->code);
compiler->code = NULL;
- if (compiler->output_insns) free (compiler->output_insns);
+ if (compiler->output_insns)
+ free (compiler->output_insns);
free (compiler);
- ORC_INFO("finished compiling (success)");
+ ORC_INFO ("finished compiling (success)");
return result;
error:
@@ -371,11 +375,12 @@ error:
ORC_WARNING ("program %s failed to compile, reason: %s",
program->name, compiler->error_msg);
} else {
- ORC_WARNING("program %s failed to compile, reason %d",
+ ORC_WARNING ("program %s failed to compile, reason %d",
program->name, compiler->result);
}
result = compiler->result;
- if (program->error_msg) free (program->error_msg);
+ if (program->error_msg)
+ free (program->error_msg);
program->error_msg = compiler->error_msg;
if (result == 0) {
result = ORC_COMPILE_RESULT_UNKNOWN_COMPILE;
@@ -384,26 +389,27 @@ error:
free (compiler->asm_code);
compiler->asm_code = NULL;
}
- for (i=0;i<compiler->n_dup_vars;i++){
- free(compiler->vars[ORC_VAR_T1 + compiler->n_temp_vars + i].name);
+ for (i = 0; i < compiler->n_dup_vars; i++) {
+ free (compiler->vars[ORC_VAR_T1 + compiler->n_temp_vars + i].name);
compiler->vars[ORC_VAR_T1 + compiler->n_temp_vars + i].name = NULL;
}
free (compiler->code);
compiler->code = NULL;
- if (compiler->output_insns) free (compiler->output_insns);
+ if (compiler->output_insns)
+ free (compiler->output_insns);
free (compiler);
- ORC_INFO("finished compiling (fail)");
+ ORC_INFO ("finished compiling (fail)");
return result;
}
void
-orc_compiler_check_sizes (OrcCompiler *compiler)
+orc_compiler_check_sizes (OrcCompiler * compiler)
{
int i;
int j;
int max_size = 1;
- for(i=0;i<compiler->n_insns;i++) {
+ for (i = 0; i < compiler->n_insns; i++) {
OrcInstruction *insn = compiler->insns + i;
OrcStaticOpcode *opcode = insn->opcode;
int multiplier = 1;
@@ -414,26 +420,30 @@ orc_compiler_check_sizes (OrcCompiler *compiler)
multiplier = 4;
}
- for(j=0;j<ORC_STATIC_OPCODE_N_DEST;j++){
- if (opcode->dest_size[j] == 0) continue;
+ for (j = 0; j < ORC_STATIC_OPCODE_N_DEST; j++) {
+ if (opcode->dest_size[j] == 0)
+ continue;
if (multiplier * opcode->dest_size[j] !=
compiler->vars[insn->dest_args[j]].size) {
- ORC_COMPILER_ERROR (compiler, "size mismatch, opcode %s dest[%d] is %d should be %d",
+ ORC_COMPILER_ERROR (compiler,
+ "size mismatch, opcode %s dest[%d] is %d should be %d",
opcode->name, j, compiler->vars[insn->dest_args[j]].size,
multiplier * opcode->dest_size[j]);
compiler->result = ORC_COMPILE_RESULT_UNKNOWN_PARSE;
return;
}
- max_size = MAX(max_size, multiplier * opcode->dest_size[j]);
+ max_size = MAX (max_size, multiplier * opcode->dest_size[j]);
}
- for(j=0;j<ORC_STATIC_OPCODE_N_SRC;j++){
- if (opcode->src_size[j] == 0) continue;
+ for (j = 0; j < ORC_STATIC_OPCODE_N_SRC; j++) {
+ if (opcode->src_size[j] == 0)
+ continue;
if (multiplier * opcode->src_size[j] !=
compiler->vars[insn->src_args[j]].size &&
compiler->vars[insn->src_args[j]].vartype != ORC_VAR_TYPE_PARAM &&
compiler->vars[insn->src_args[j]].vartype != ORC_VAR_TYPE_CONST) {
- ORC_COMPILER_ERROR(compiler, "size mismatch, opcode %s src[%d] is %d should be %d",
- opcode->name, j, compiler->vars[insn->src_args[j]].size,
+ ORC_COMPILER_ERROR (compiler,
+ "size mismatch, opcode %s src[%d] is %d should be %d", opcode->name,
+ j, compiler->vars[insn->src_args[j]].size,
multiplier * opcode->src_size[j]);
compiler->result = ORC_COMPILE_RESULT_UNKNOWN_PARSE;
return;
@@ -441,18 +451,18 @@ orc_compiler_check_sizes (OrcCompiler *compiler)
if (opcode->flags & ORC_STATIC_OPCODE_SCALAR && j >= 1 &&
compiler->vars[insn->src_args[j]].vartype != ORC_VAR_TYPE_PARAM &&
compiler->vars[insn->src_args[j]].vartype != ORC_VAR_TYPE_CONST) {
- ORC_COMPILER_ERROR(compiler, "opcode %s requires const or param source",
- opcode->name);
+ ORC_COMPILER_ERROR (compiler,
+ "opcode %s requires const or param source", opcode->name);
compiler->result = ORC_COMPILE_RESULT_UNKNOWN_PARSE;
return;
}
- max_size = MAX(max_size, multiplier * opcode->src_size[j]);
+ max_size = MAX (max_size, multiplier * opcode->src_size[j]);
}
if (opcode->flags & ORC_STATIC_OPCODE_SCALAR &&
opcode->src_size[1] == 0 &&
compiler->vars[insn->src_args[0]].vartype != ORC_VAR_TYPE_PARAM &&
compiler->vars[insn->src_args[0]].vartype != ORC_VAR_TYPE_CONST) {
- ORC_COMPILER_ERROR(compiler, "opcode %s requires const or param source",
+ ORC_COMPILER_ERROR (compiler, "opcode %s requires const or param source",
opcode->name);
compiler->result = ORC_COMPILE_RESULT_UNKNOWN_PARSE;
return;
@@ -474,7 +484,7 @@ get_load_opcode_for_size (int size)
case 8:
return orc_opcode_find_by_name ("loadq");
default:
- ORC_ASSERT(0);
+ ORC_ASSERT (0);
}
return NULL;
}
@@ -492,7 +502,7 @@ get_loadp_opcode_for_size (int size)
case 8:
return orc_opcode_find_by_name ("loadpq");
default:
- ORC_ASSERT(0);
+ ORC_ASSERT (0);
}
return NULL;
}
@@ -510,13 +520,13 @@ get_store_opcode_for_size (int size)
case 8:
return orc_opcode_find_by_name ("storeq");
default:
- ORC_ASSERT(0);
+ ORC_ASSERT (0);
}
return NULL;
}
void
-orc_compiler_rewrite_insns (OrcCompiler *compiler)
+orc_compiler_rewrite_insns (OrcCompiler * compiler)
{
int i;
int j;
@@ -524,18 +534,19 @@ orc_compiler_rewrite_insns (OrcCompiler *compiler)
OrcProgram *program = compiler->program;
compiler->n_insns = 0;
- for(j=0;j<program->n_insns;j++){
+ for (j = 0; j < program->n_insns; j++) {
OrcInstruction insn;
OrcInstruction *xinsn;
- memcpy (&insn, program->insns + j, sizeof(OrcInstruction));
+ memcpy (&insn, program->insns + j, sizeof (OrcInstruction));
opcode = insn.opcode;
if (!(opcode->flags & ORC_STATIC_OPCODE_LOAD)) {
- for(i=0;i<ORC_STATIC_OPCODE_N_SRC;i++){
+ for (i = 0; i < ORC_STATIC_OPCODE_N_SRC; i++) {
OrcVariable *var;
- if (opcode->src_size[i] == 0) continue;
+ if (opcode->src_size[i] == 0)
+ continue;
var = compiler->vars + insn.src_args[i];
if (i > 0 && (opcode->flags & ORC_STATIC_OPCODE_SCALAR) &&
@@ -545,13 +556,13 @@ orc_compiler_rewrite_insns (OrcCompiler *compiler)
if (var->vartype == ORC_VAR_TYPE_SRC ||
var->vartype == ORC_VAR_TYPE_DEST) {
OrcInstruction *cinsn;
-
+
cinsn = compiler->insns + compiler->n_insns;
compiler->n_insns++;
cinsn->flags = insn.flags;
cinsn->flags |= ORC_INSN_FLAG_ADDED;
- cinsn->flags &= ~(ORC_INSTRUCTION_FLAG_X2|ORC_INSTRUCTION_FLAG_X4);
+ cinsn->flags &= ~(ORC_INSTRUCTION_FLAG_X2 | ORC_INSTRUCTION_FLAG_X4);
cinsn->opcode = get_load_opcode_for_size (var->size);
cinsn->dest_args[0] = orc_compiler_new_temporary (compiler,
var->size);
@@ -586,25 +597,26 @@ orc_compiler_rewrite_insns (OrcCompiler *compiler)
}
xinsn = compiler->insns + compiler->n_insns;
- memcpy (xinsn, &insn, sizeof(OrcInstruction));
+ memcpy (xinsn, &insn, sizeof (OrcInstruction));
compiler->n_insns++;
if (!(opcode->flags & ORC_STATIC_OPCODE_STORE)) {
- for(i=0;i<ORC_STATIC_OPCODE_N_DEST;i++){
+ for (i = 0; i < ORC_STATIC_OPCODE_N_DEST; i++) {
OrcVariable *var;
- if (opcode->dest_size[i] == 0) continue;
+ if (opcode->dest_size[i] == 0)
+ continue;
var = compiler->vars + insn.dest_args[i];
if (var->vartype == ORC_VAR_TYPE_DEST) {
OrcInstruction *cinsn;
-
+
cinsn = compiler->insns + compiler->n_insns;
compiler->n_insns++;
cinsn->flags = xinsn->flags;
cinsn->flags |= ORC_INSN_FLAG_ADDED;
- cinsn->flags &= ~(ORC_INSTRUCTION_FLAG_X2|ORC_INSTRUCTION_FLAG_X4);
+ cinsn->flags &= ~(ORC_INSTRUCTION_FLAG_X2 | ORC_INSTRUCTION_FLAG_X4);
cinsn->opcode = get_store_opcode_for_size (var->size);
cinsn->src_args[0] = orc_compiler_new_temporary (compiler, var->size);
cinsn->dest_args[0] = xinsn->dest_args[i];
@@ -617,11 +629,11 @@ orc_compiler_rewrite_insns (OrcCompiler *compiler)
}
void
-orc_compiler_assign_rules (OrcCompiler *compiler)
+orc_compiler_assign_rules (OrcCompiler * compiler)
{
int i;
- for(i=0;i<compiler->n_insns;i++) {
+ for (i = 0; i < compiler->n_insns; i++) {
OrcInstruction *insn = compiler->insns + i;
insn->rule = orc_target_get_rule (compiler->target, insn->opcode,
@@ -637,19 +649,19 @@ orc_compiler_assign_rules (OrcCompiler *compiler)
}
int
-orc_compiler_get_temp_reg (OrcCompiler *compiler)
+orc_compiler_get_temp_reg (OrcCompiler * compiler)
{
int j;
- for(j=0;j<ORC_N_REGS;j++){
+ for (j = 0; j < ORC_N_REGS; j++) {
compiler->alloc_regs[j] = 0;
}
- for(j=0;j<ORC_N_COMPILER_VARIABLES;j++){
- if (!compiler->vars[j].alloc) continue;
+ for (j = 0; j < ORC_N_COMPILER_VARIABLES; j++) {
+ if (!compiler->vars[j].alloc)
+ continue;
- ORC_DEBUG("var %d: %d %d %d", j, compiler->vars[j].alloc,
- compiler->vars[j].first_use,
- compiler->vars[j].last_use);
+ ORC_DEBUG ("var %d: %d %d %d", j, compiler->vars[j].alloc,
+ compiler->vars[j].first_use, compiler->vars[j].last_use);
if (compiler->vars[j].first_use == -1) {
compiler->alloc_regs[compiler->vars[j].alloc] = 1;
@@ -658,19 +670,20 @@ orc_compiler_get_temp_reg (OrcCompiler *compiler)
compiler->alloc_regs[compiler->vars[j].alloc] = 1;
}
}
- for(j=0;j<compiler->n_constants;j++){
+ for (j = 0; j < compiler->n_constants; j++) {
if (compiler->constants[j].alloc_reg) {
compiler->alloc_regs[compiler->constants[j].alloc_reg] = 1;
}
}
- ORC_DEBUG("at insn %d %s", compiler->insn_index,
+ ORC_DEBUG ("at insn %d %s", compiler->insn_index,
compiler->insns[compiler->insn_index].opcode->name);
- for(j=compiler->min_temp_reg;j<ORC_VEC_REG_BASE+32;j++){
+ for (j = compiler->min_temp_reg; j < ORC_VEC_REG_BASE + 32; j++) {
if (compiler->valid_regs[j] && !compiler->alloc_regs[j]) {
- compiler->min_temp_reg = j+1;
- if (compiler->max_used_temp_reg < j) compiler->max_used_temp_reg = j;
+ compiler->min_temp_reg = j + 1;
+ if (compiler->max_used_temp_reg < j)
+ compiler->max_used_temp_reg = j;
return j;
}
}
@@ -682,7 +695,7 @@ orc_compiler_get_temp_reg (OrcCompiler *compiler)
}
void
-orc_compiler_rewrite_vars (OrcCompiler *compiler)
+orc_compiler_rewrite_vars (OrcCompiler * compiler)
{
int j;
int k;
@@ -691,17 +704,19 @@ orc_compiler_rewrite_vars (OrcCompiler *compiler)
int var;
int actual_var;
- for(j=0;j<ORC_N_COMPILER_VARIABLES;j++){
- if (compiler->vars[j].alloc) continue;
+ for (j = 0; j < ORC_N_COMPILER_VARIABLES; j++) {
+ if (compiler->vars[j].alloc)
+ continue;
compiler->vars[j].last_use = -1;
}
- for(j=0;j<compiler->n_insns;j++){
+ for (j = 0; j < compiler->n_insns; j++) {
insn = compiler->insns + j;
opcode = insn->opcode;
/* set up args */
- for(k=0;k<ORC_STATIC_OPCODE_N_SRC;k++){
- if (opcode->src_size[k] == 0) continue;
+ for (k = 0; k < ORC_STATIC_OPCODE_N_SRC; k++) {
+ if (opcode->src_size[k] == 0)
+ continue;
var = insn->src_args[k];
if (compiler->vars[var].vartype == ORC_VAR_TYPE_DEST) {
@@ -722,7 +737,8 @@ orc_compiler_rewrite_vars (OrcCompiler *compiler)
if (!compiler->vars[var].used) {
if (compiler->vars[var].vartype == ORC_VAR_TYPE_TEMP) {
- ORC_COMPILER_ERROR(compiler, "using uninitialized temp var at line %d", insn->line);
+ ORC_COMPILER_ERROR (compiler,
+ "using uninitialized temp var at line %d", insn->line);
compiler->result = ORC_COMPILE_RESULT_UNKNOWN_PARSE;
}
compiler->vars[var].used = TRUE;
@@ -731,8 +747,9 @@ orc_compiler_rewrite_vars (OrcCompiler *compiler)
compiler->vars[actual_var].last_use = j;
}
- for(k=0;k<ORC_STATIC_OPCODE_N_DEST;k++){
- if (opcode->dest_size[k] == 0) continue;
+ for (k = 0; k < ORC_STATIC_OPCODE_N_DEST; k++) {
+ if (opcode->dest_size[k] == 0)
+ continue;
var = insn->dest_args[k];
@@ -740,25 +757,32 @@ orc_compiler_rewrite_vars (OrcCompiler *compiler)
continue;
}
if (compiler->vars[var].vartype == ORC_VAR_TYPE_SRC) {
- ORC_COMPILER_ERROR(compiler,"using src var as dest at line %d", insn->line);
+ ORC_COMPILER_ERROR (compiler, "using src var as dest at line %d",
+ insn->line);
compiler->result = ORC_COMPILE_RESULT_UNKNOWN_PARSE;
}
if (compiler->vars[var].vartype == ORC_VAR_TYPE_CONST) {
- ORC_COMPILER_ERROR(compiler,"using const var as dest at line %d", insn->line);
+ ORC_COMPILER_ERROR (compiler, "using const var as dest at line %d",
+ insn->line);
compiler->result = ORC_COMPILE_RESULT_UNKNOWN_PARSE;
}
if (compiler->vars[var].vartype == ORC_VAR_TYPE_PARAM) {
- ORC_COMPILER_ERROR(compiler,"using param var as dest at line %d", insn->line);
+ ORC_COMPILER_ERROR (compiler, "using param var as dest at line %d",
+ insn->line);
compiler->result = ORC_COMPILE_RESULT_UNKNOWN_PARSE;
}
if (opcode->flags & ORC_STATIC_OPCODE_ACCUMULATOR) {
if (compiler->vars[var].vartype != ORC_VAR_TYPE_ACCUMULATOR) {
- ORC_COMPILER_ERROR(compiler,"accumulating opcode to non-accumulator dest at line %d", insn->line);
+ ORC_COMPILER_ERROR (compiler,
+ "accumulating opcode to non-accumulator dest at line %d",
+ insn->line);
compiler->result = ORC_COMPILE_RESULT_UNKNOWN_PARSE;
}
} else {
if (compiler->vars[var].vartype == ORC_VAR_TYPE_ACCUMULATOR) {
- ORC_COMPILER_ERROR(compiler,"non-accumulating opcode to accumulator dest at line %d", insn->line);
+ ORC_COMPILER_ERROR (compiler,
+ "non-accumulating opcode to accumulator dest at line %d",
+ insn->line);
compiler->result = ORC_COMPILE_RESULT_UNKNOWN_PARSE;
}
}
@@ -775,7 +799,8 @@ orc_compiler_rewrite_vars (OrcCompiler *compiler)
} else {
#if 0
if (compiler->vars[var].vartype == ORC_VAR_TYPE_DEST) {
- ORC_COMPILER_ERROR(compiler,"writing dest more than once at line %d", insn->line);
+ ORC_COMPILER_ERROR (compiler,
+ "writing dest more than once at line %d", insn->line);
compiler->result = ORC_COMPILE_RESULT_UNKNOWN_PARSE;
}
#endif
@@ -794,14 +819,15 @@ orc_compiler_rewrite_vars (OrcCompiler *compiler)
}
void
-orc_compiler_global_reg_alloc (OrcCompiler *compiler)
+orc_compiler_global_reg_alloc (OrcCompiler * compiler)
{
int i;
OrcVariable *var;
- for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
+ for (i = 0; i < ORC_N_COMPILER_VARIABLES; i++) {
var = compiler->vars + i;
- if (var->name == NULL) continue;
+ if (var->name == NULL)
+ continue;
switch (var->vartype) {
case ORC_VAR_TYPE_CONST:
break;
@@ -834,10 +860,11 @@ orc_compiler_global_reg_alloc (OrcCompiler *compiler)
break;
}
- if (compiler->error) break;
+ if (compiler->error)
+ break;
}
- for(i=0;i<compiler->n_insns;i++){
+ for (i = 0; i < compiler->n_insns; i++) {
OrcInstruction *insn = compiler->insns + i;
OrcStaticOpcode *opcode = insn->opcode;
@@ -866,20 +893,21 @@ orc_compiler_global_reg_alloc (OrcCompiler *compiler)
}
void
-orc_compiler_rewrite_vars2 (OrcCompiler *compiler)
+orc_compiler_rewrite_vars2 (OrcCompiler * compiler)
{
int i;
int j;
int k;
- for(j=0;j<compiler->n_insns;j++){
+ for (j = 0; j < compiler->n_insns; j++) {
#if 1
/* must be true to chain src1 to dest:
* - rule must handle it
* - src1 must be last_use
* - only one dest
*/
- if (compiler->insns[j].flags & ORC_INSN_FLAG_INVARIANT) continue;
+ if (compiler->insns[j].flags & ORC_INSN_FLAG_INVARIANT)
+ continue;
if (!(compiler->insns[j].opcode->flags & ORC_STATIC_OPCODE_ACCUMULATOR)
&& compiler->insns[j].opcode->dest_size[1] == 0) {
@@ -908,17 +936,21 @@ orc_compiler_rewrite_vars2 (OrcCompiler *compiler)
}
}
- for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
- if (compiler->vars[i].name == NULL) continue;
- if (compiler->vars[i].last_use == -1) continue;
+ for (i = 0; i < ORC_N_COMPILER_VARIABLES; i++) {
+ if (compiler->vars[i].name == NULL)
+ continue;
+ if (compiler->vars[i].last_use == -1)
+ continue;
if (compiler->vars[i].first_use == j) {
- if (compiler->vars[i].alloc) continue;
+ if (compiler->vars[i].alloc)
+ continue;
k = orc_compiler_allocate_register (compiler, TRUE);
compiler->vars[i].alloc = k;
}
}
- for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
- if (compiler->vars[i].name == NULL) continue;
+ for (i = 0; i < ORC_N_COMPILER_VARIABLES; i++) {
+ if (compiler->vars[i].name == NULL)
+ continue;
if (compiler->vars[i].last_use == j) {
compiler->alloc_regs[compiler->vars[i].alloc]--;
}
@@ -928,37 +960,37 @@ orc_compiler_rewrite_vars2 (OrcCompiler *compiler)
}
int
-orc_compiler_dup_temporary (OrcCompiler *compiler, int var, int j)
+orc_compiler_dup_temporary (OrcCompiler * compiler, int var, int j)
{
int i = ORC_VAR_T1 + compiler->n_temp_vars + compiler->n_dup_vars;
compiler->vars[i].vartype = ORC_VAR_TYPE_TEMP;
compiler->vars[i].size = compiler->vars[var].size;
- compiler->vars[i].name = malloc (strlen(compiler->vars[var].name) + 10);
- sprintf(compiler->vars[i].name, "%s.dup%d", compiler->vars[var].name, j);
+ compiler->vars[i].name = malloc (strlen (compiler->vars[var].name) + 10);
+ sprintf (compiler->vars[i].name, "%s.dup%d", compiler->vars[var].name, j);
compiler->n_dup_vars++;
return i;
}
int
-orc_compiler_new_temporary (OrcCompiler *compiler, int size)
+orc_compiler_new_temporary (OrcCompiler * compiler, int size)
{
int i = ORC_VAR_T1 + compiler->n_temp_vars + compiler->n_dup_vars;
compiler->vars[i].vartype = ORC_VAR_TYPE_TEMP;
compiler->vars[i].size = size;
compiler->vars[i].name = malloc (10);
- sprintf(compiler->vars[i].name, "tmp%d", i);
+ sprintf (compiler->vars[i].name, "tmp%d", i);
compiler->n_dup_vars++;
return i;
}
void
-orc_compiler_dump_asm (OrcCompiler *compiler)
+orc_compiler_dump_asm (OrcCompiler * compiler)
{
- printf("%s", compiler->asm_code);
+ printf ("%s", compiler->asm_code);
}
/**
@@ -977,14 +1009,14 @@ orc_compiler_dump_asm (OrcCompiler *compiler)
* or implementing a target.
*/
void
-orc_compiler_append_code (OrcCompiler *p, const char *fmt, ...)
+orc_compiler_append_code (OrcCompiler * p, const char *fmt, ...)
{
char tmp[200];
va_list varargs;
int n;
va_start (varargs, fmt);
- vsnprintf(tmp, 200 - 1, fmt, varargs);
+ vsnprintf (tmp, 200 - 1, fmt, varargs);
va_end (varargs);
n = strlen (tmp);
@@ -994,27 +1026,27 @@ orc_compiler_append_code (OrcCompiler *p, const char *fmt, ...)
}
int
-orc_compiler_label_new (OrcCompiler *compiler)
+orc_compiler_label_new (OrcCompiler * compiler)
{
return compiler->n_labels++;
}
void
-orc_compiler_load_constant (OrcCompiler *compiler, int reg, int size,
+orc_compiler_load_constant (OrcCompiler * compiler, int reg, int size,
int value)
{
compiler->target->load_constant (compiler, reg, size, value);
}
void
-orc_compiler_load_constant_long (OrcCompiler *compiler, int reg,
- OrcConstant *constant)
+orc_compiler_load_constant_long (OrcCompiler * compiler, int reg,
+ OrcConstant * constant)
{
compiler->target->load_constant_long (compiler, reg, constant);
}
int
-orc_compiler_get_temp_constant (OrcCompiler *compiler, int size, int value)
+orc_compiler_get_temp_constant (OrcCompiler * compiler, int size, int value)
{
int tmp;
@@ -1024,7 +1056,7 @@ orc_compiler_get_temp_constant (OrcCompiler *compiler, int size, int value)
}
int
-orc_compiler_get_constant (OrcCompiler *compiler, int size, int value)
+orc_compiler_get_constant (OrcCompiler * compiler, int size, int value)
{
int i;
int tmp;
@@ -1032,13 +1064,13 @@ orc_compiler_get_constant (OrcCompiler *compiler, int size, int value)
if (size < 4) {
if (size < 2) {
value &= 0xff;
- value |= (value<<8);
+ value |= (value << 8);
}
value &= 0xffff;
- value |= (value<<16);
+ value |= (value << 16);
}
- for(i=0;i<compiler->n_constants;i++){
+ for (i = 0; i < compiler->n_constants; i++) {
if (compiler->constants[i].is_long == FALSE &&
compiler->constants[i].value == value) {
break;
@@ -1063,13 +1095,13 @@ orc_compiler_get_constant (OrcCompiler *compiler, int size, int value)
}
int
-orc_compiler_get_constant_long (OrcCompiler *compiler,
+orc_compiler_get_constant_long (OrcCompiler * compiler,
orc_uint32 a, orc_uint32 b, orc_uint32 c, orc_uint32 d)
{
int i;
int tmp;
- for(i=0;i<compiler->n_constants;i++){
+ for (i = 0; i < compiler->n_constants; i++) {
if (compiler->constants[i].is_long == TRUE &&
compiler->constants[i].full_value[0] == a &&
compiler->constants[i].full_value[1] == b &&
@@ -1100,12 +1132,12 @@ orc_compiler_get_constant_long (OrcCompiler *compiler,
}
int
-orc_compiler_try_get_constant_long (OrcCompiler *compiler,
+orc_compiler_try_get_constant_long (OrcCompiler * compiler,
orc_uint32 a, orc_uint32 b, orc_uint32 c, orc_uint32 d)
{
int i;
- for(i=0;i<compiler->n_constants;i++){
+ for (i = 0; i < compiler->n_constants; i++) {
if (compiler->constants[i].is_long == TRUE &&
compiler->constants[i].full_value[0] == a &&
compiler->constants[i].full_value[1] == b &&
@@ -1135,19 +1167,19 @@ orc_compiler_try_get_constant_long (OrcCompiler *compiler,
int
-orc_compiler_get_constant_reg (OrcCompiler *compiler)
+orc_compiler_get_constant_reg (OrcCompiler * compiler)
{
int j;
- for(j=0;j<ORC_N_REGS;j++){
+ for (j = 0; j < ORC_N_REGS; j++) {
compiler->alloc_regs[j] = 0;
}
- for(j=0;j<ORC_N_COMPILER_VARIABLES;j++){
- if (!compiler->vars[j].alloc) continue;
+ for (j = 0; j < ORC_N_COMPILER_VARIABLES; j++) {
+ if (!compiler->vars[j].alloc)
+ continue;
- ORC_DEBUG("var %d: %d %d %d", j, compiler->vars[j].alloc,
- compiler->vars[j].first_use,
- compiler->vars[j].last_use);
+ ORC_DEBUG ("var %d: %d %d %d", j, compiler->vars[j].alloc,
+ compiler->vars[j].first_use, compiler->vars[j].last_use);
if (compiler->vars[j].first_use == -1) {
compiler->alloc_regs[compiler->vars[j].alloc] = 1;
@@ -1155,16 +1187,16 @@ orc_compiler_get_constant_reg (OrcCompiler *compiler)
compiler->alloc_regs[compiler->vars[j].alloc] = 1;
}
}
- for(j=0;j<compiler->n_constants;j++){
+ for (j = 0; j < compiler->n_constants; j++) {
if (compiler->constants[j].alloc_reg) {
compiler->alloc_regs[compiler->constants[j].alloc_reg] = 1;
}
}
- for(j=ORC_VEC_REG_BASE;j<=compiler->max_used_temp_reg;j++) {
+ for (j = ORC_VEC_REG_BASE; j <= compiler->max_used_temp_reg; j++) {
compiler->alloc_regs[j] = 1;
}
- for(j=compiler->max_used_temp_reg;j<ORC_VEC_REG_BASE+32;j++){
+ for (j = compiler->max_used_temp_reg; j < ORC_VEC_REG_BASE + 32; j++) {
if (compiler->valid_regs[j] && !compiler->alloc_regs[j]) {
return j;
}
@@ -1176,12 +1208,13 @@ orc_compiler_get_constant_reg (OrcCompiler *compiler)
#define ORC_COMPILER_ERROR_BUFFER_SIZE 200
void
-orc_compiler_error_valist (OrcCompiler *compiler, const char *fmt,
+orc_compiler_error_valist (OrcCompiler * compiler, const char *fmt,
va_list args)
{
char *s;
- if (compiler->error_msg) return;
+ if (compiler->error_msg)
+ return;
s = malloc (ORC_COMPILER_ERROR_BUFFER_SIZE);
vsprintf (s, fmt, args);
@@ -1191,7 +1224,7 @@ orc_compiler_error_valist (OrcCompiler *compiler, const char *fmt,
}
void
-orc_compiler_error (OrcCompiler *compiler, const char *fmt, ...)
+orc_compiler_error (OrcCompiler * compiler, const char *fmt, ...)
{
va_list var_args;
@@ -1199,4 +1232,3 @@ orc_compiler_error (OrcCompiler *compiler, const char *fmt, ...)
orc_compiler_error_valist (compiler, fmt, var_args);
va_end (var_args);
}
-
diff --git a/orc/orccpu-arm.c b/orc/orccpu-arm.c
index cb013c3..21577d6 100644
--- a/orc/orccpu-arm.c
+++ b/orc/orccpu-arm.c
@@ -50,12 +50,10 @@
#ifdef __arm__
#if 0
static unsigned long
-orc_profile_stamp_xscale(void)
+orc_profile_stamp_xscale (void)
{
unsigned int ts;
- __asm__ __volatile__ (
- " mrc p14, 0, %0, c1, c0, 0 \n"
- : "=r" (ts));
+ __asm__ __volatile__ (" mrc p14, 0, %0, c1, c0, 0 \n":"=r" (ts));
return ts;
}
#endif
@@ -69,31 +67,34 @@ orc_check_neon_proc_auxv (void)
ssize_t count;
int fd;
- fd = open("/proc/self/auxv", O_RDONLY);
+ fd = open ("/proc/self/auxv", O_RDONLY);
if (fd < 0) {
return 0;
}
while (1) {
- count = read(fd, aux, sizeof(aux));
- if (count < sizeof(aux)) {
+ count = read (fd, aux, sizeof (aux));
+ if (count < sizeof (aux)) {
break;
}
if (aux[0] == AT_HWCAP) {
//if (aux[1] & 64) flags |= ORC_TARGET_NEON_VFP;
//if (aux[1] & 512) flags |= ORC_TARGET_NEON_IWMMXT;
- if (aux[1] & 4096) flags |= ORC_TARGET_NEON_NEON;
- if (aux[1] & 128) flags |= ORC_TARGET_ARM_EDSP;
- ORC_INFO("arm hwcap %08x", aux[1]);
- } if (aux[0] == AT_PLATFORM) {
- ORC_INFO("arm platform %s", (char *)aux[1]);
+ if (aux[1] & 4096)
+ flags |= ORC_TARGET_NEON_NEON;
+ if (aux[1] & 128)
+ flags |= ORC_TARGET_ARM_EDSP;
+ ORC_INFO ("arm hwcap %08x", aux[1]);
+ }
+ if (aux[0] == AT_PLATFORM) {
+ ORC_INFO ("arm platform %s", (char *) aux[1]);
} else if (aux[0] == AT_NULL) {
break;
}
}
- close(fd);
+ close (fd);
return flags;
}
@@ -107,13 +108,13 @@ orc_cpu_arm_getflags_cpuinfo (char *cpuinfo)
char **flags;
char **f;
- cpuinfo_flags = get_cpuinfo_line(cpuinfo, "Features");
+ cpuinfo_flags = get_cpuinfo_line (cpuinfo, "Features");
if (cpuinfo_flags == NULL) {
free (cpuinfo);
return;
}
- flags = strsplit(cpuinfo_flags, ' ');
+ flags = strsplit (cpuinfo_flags, ' ');
for (f = flags; *f; f++) {
#if 0
if (strcmp (*f, "edsp") == 0) {
@@ -139,16 +140,17 @@ get_proc_cpuinfo (void)
int fd;
int n;
- cpuinfo = malloc(4096);
- if (cpuinfo == NULL) return NULL;
+ cpuinfo = malloc (4096);
+ if (cpuinfo == NULL)
+ return NULL;
- fd = open("/proc/cpuinfo", O_RDONLY);
+ fd = open ("/proc/cpuinfo", O_RDONLY);
if (fd < 0) {
free (cpuinfo);
return NULL;
}
- n = read(fd, cpuinfo, 4095);
+ n = read (fd, cpuinfo, 4095);
if (n < 0) {
free (cpuinfo);
close (fd);
@@ -176,18 +178,19 @@ orc_arm_get_cpu_flags (void)
char *cpuinfo;
char *s;
- cpuinfo = get_proc_cpuinfo();
- if (cpuinfo == NULL) return;
+ cpuinfo = get_proc_cpuinfo ();
+ if (cpuinfo == NULL)
+ return;
- s = get_cpuinfo_line(cpuinfo, "CPU implementer");
+ s = get_cpuinfo_line (cpuinfo, "CPU implementer");
if (s) {
arm_implementer = strtoul (s, NULL, 0);
- free(s);
+ free (s);
}
- switch(arm_implementer) {
- case 0x69: /* Intel */
- case 0x41: /* ARM */
+ switch (arm_implementer) {
+ case 0x69: /* Intel */
+ case 0x41: /* ARM */
/* ARM chips are known to not have timestamping available from
* user space */
break;
@@ -196,13 +199,13 @@ orc_arm_get_cpu_flags (void)
}
#if 0
- s = get_cpuinfo_line(cpuinfo, "CPU architecture");
+ s = get_cpuinfo_line (cpuinfo, "CPU architecture");
if (s) {
int arm_arch;
arm_arch = strtoul (s, NULL, 0);
if (arm_arch >= 6)
orc_cpu_flags |= ORC_CPU_FLAG_ARM6;
- free(s);
+ free (s);
}
#endif
@@ -217,5 +220,3 @@ orc_arm_get_cpu_flags (void)
return neon_flags;
}
#endif
-
-
diff --git a/orc/orccpu-powerpc.c b/orc/orccpu-powerpc.c
index 93c9910..a6ee92b 100644
--- a/orc/orccpu-powerpc.c
+++ b/orc/orccpu-powerpc.c
@@ -60,17 +60,17 @@
#if 0
static unsigned long
-orc_profile_stamp_tb(void)
+orc_profile_stamp_tb (void)
{
unsigned long ts;
- __asm__ __volatile__("mftb %0\n" : "=r" (ts));
+ __asm__ __volatile__ ("mftb %0\n":"=r" (ts));
return ts;
}
#endif
#if !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && !defined(__OpenBSD__) && !defined(__APPLE__) && !defined(__linux__)
static void
-test_altivec (void * ignored)
+test_altivec (void *ignored)
{
asm volatile ("vor v0, v0, v0\n");
}
@@ -90,8 +90,8 @@ orc_check_altivec_sysctl_bsd (void)
int ret, vu;
size_t len;
- len = sizeof(vu);
- ret = sysctlbyname(SYSCTL, &vu, &len, NULL, 0);
+ len = sizeof (vu);
+ ret = sysctlbyname (SYSCTL, &vu, &len, NULL, 0);
if (!ret && vu) {
cpu_flags |= ORC_TARGET_ALTIVEC_ALTIVEC;
}
@@ -111,8 +111,8 @@ orc_check_altivec_sysctl_openbsd (void)
mib[0] = CTL_MACHDEP;
mib[1] = CPU_ALTIVEC;
- len = sizeof(vu);
- ret = sysctl(mib, 2, &vu, &len, NULL, 0);
+ len = sizeof (vu);
+ ret = sysctl (mib, 2, &vu, &len, NULL, 0);
if (!ret && vu) {
cpu_flags |= ORC_TARGET_ALTIVEC_ALTIVEC;
}
@@ -137,32 +137,32 @@ orc_check_altivec_proc_auxv (void)
return 0;
}
- fd = open("/proc/self/auxv", O_RDONLY);
+ fd = open ("/proc/self/auxv", O_RDONLY);
if (fd < 0) {
goto out;
}
more:
- count = read(fd, buf, sizeof(buf));
+ count = read (fd, buf, sizeof (buf));
if (count < 0) {
goto out_close;
}
- for (i=0; i < (count / sizeof(unsigned long)); i += 2) {
+ for (i = 0; i < (count / sizeof (unsigned long)); i += 2) {
if (buf[i] == AT_HWCAP) {
- new_avail = !!(buf[i+1] & PPC_FEATURE_HAS_ALTIVEC);
+ new_avail = ! !(buf[i + 1] & PPC_FEATURE_HAS_ALTIVEC);
goto out_close;
} else if (buf[i] == AT_NULL) {
goto out_close;
}
}
- if (count == sizeof(buf)) {
+ if (count == sizeof (buf)) {
goto more;
}
out_close:
- close(fd);
+ close (fd);
out:
available = new_avail;
@@ -179,7 +179,7 @@ static void
orc_check_altivec_fault (void)
{
orc_fault_check_enable ();
- if (orc_fault_check_try(test_altivec, NULL)) {
+ if (orc_fault_check_try (test_altivec, NULL)) {
ORC_DEBUG ("cpu flag altivec");
orc_cpu_flags |= ORC_IMPL_FLAG_ALTIVEC;
}
@@ -188,20 +188,17 @@ orc_check_altivec_fault (void)
#endif
void
-orc_cpu_detect_arch(void)
+orc_cpu_detect_arch (void)
{
#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__APPLE__)
- orc_check_altivec_sysctl_bsd();
+ orc_check_altivec_sysctl_bsd ();
#elif defined(__OpenBSD__)
- orc_check_altivec_sysctl_openbsd();
+ orc_check_altivec_sysctl_openbsd ();
#elif defined(__linux__)
- orc_check_altivec_proc_auxv();
+ orc_check_altivec_proc_auxv ();
#else
- orc_check_altivec_fault();
+ orc_check_altivec_fault ();
#endif
//_orc_profile_stamp = orc_profile_stamp_tb;
}
-
-
-
diff --git a/orc/orccpu-x86.c b/orc/orccpu-x86.c
index 813dbc8..d4aa4f0 100644
--- a/orc/orccpu-x86.c
+++ b/orc/orccpu-x86.c
@@ -53,10 +53,11 @@ int orc_x86_microarchitecture;
#if defined(_MSC_VER)
static void
-get_cpuid (orc_uint32 op, orc_uint32 *a, orc_uint32 *b, orc_uint32 *c, orc_uint32 *d)
+get_cpuid (orc_uint32 op, orc_uint32 * a, orc_uint32 * b, orc_uint32 * c,
+ orc_uint32 * d)
{
int tmp[4];
- __cpuid(tmp, op);
+ __cpuid (tmp, op);
*a = tmp[0];
*b = tmp[1];
*c = tmp[2];
@@ -64,11 +65,12 @@ get_cpuid (orc_uint32 op, orc_uint32 *a, orc_uint32 *b, orc_uint32 *c, orc_uint3
}
static void
-get_cpuid_ecx (orc_uint32 op, orc_uint32 init_ecx, orc_uint32 *a, orc_uint32 *b, orc_uint32 *c, orc_uint32 *d)
+get_cpuid_ecx (orc_uint32 op, orc_uint32 init_ecx, orc_uint32 * a,
+ orc_uint32 * b, orc_uint32 * c, orc_uint32 * d)
{
#if _MSC_VER >= 1500
int tmp[4];
- __cpuidex(tmp, op, init_ecx);
+ __cpuidex (tmp, op, init_ecx);
*a = tmp[0];
*b = tmp[1];
*c = tmp[2];
@@ -83,28 +85,23 @@ get_cpuid_ecx (orc_uint32 op, orc_uint32 init_ecx, orc_uint32 *a, orc_uint32 *b,
#elif defined(__GNUC__) || defined (__SUNPRO_C)
static void
-get_cpuid_ecx (orc_uint32 op, orc_uint32 init_ecx, orc_uint32 *a, orc_uint32 *b,
- orc_uint32 *c, orc_uint32 *d)
+get_cpuid_ecx (orc_uint32 op, orc_uint32 init_ecx, orc_uint32 * a,
+ orc_uint32 * b, orc_uint32 * c, orc_uint32 * d)
{
*a = op;
*c = init_ecx;
#ifdef __i386__
- __asm__ (
- " pushl %%ebx\n"
- " cpuid\n"
- " mov %%ebx, %%esi\n"
- " popl %%ebx\n"
- : "+a" (*a), "=S" (*b), "+c" (*c), "=d" (*d));
+__asm__ (" pushl %%ebx\n" " cpuid\n" " mov %%ebx, %%esi\n" " popl %%ebx\n":"+a" (*a), "=S" (*b), "+c" (*c),
+ "=d"
+ (*d));
#elif defined(__amd64__)
- __asm__ (
- " cpuid\n"
- : "+a" (*a), "=b" (*b), "+c" (*c), "=d" (*d));
+__asm__ (" cpuid\n":"+a" (*a), "=b" (*b), "+c" (*c), "=d" (*d));
#endif
}
static void
-get_cpuid (orc_uint32 op, orc_uint32 *a, orc_uint32 *b,
- orc_uint32 *c, orc_uint32 *d)
+get_cpuid (orc_uint32 op, orc_uint32 * a, orc_uint32 * b,
+ orc_uint32 * c, orc_uint32 * d)
{
get_cpuid_ecx (op, 0, a, b, c, d);
}
@@ -117,55 +114,56 @@ get_cpuid (orc_uint32 op, orc_uint32 *a, orc_uint32 *b,
#endif
-struct desc_struct {
+struct desc_struct
+{
int desc;
int level;
int size;
};
struct desc_struct cache_descriptors[] = {
- { 0x0a, 1, 8*1024 },
- { 0x0c, 1, 16*1024 },
- { 0x0d, 1, 16*1024 },
- { 0x0e, 1, 24*1024 },
- { 0x21, 2, 256*1024 },
- { 0x22, 3, 512*1024 },
- { 0x23, 3, 1024*1024 },
- { 0x25, 3, 2*1024*1024 },
- { 0x29, 3, 4*1024*1024 },
- { 0x2c, 1, 32*1024 },
- { 0x41, 2, 128*1024 },
- { 0x42, 2, 256*1024 },
- { 0x43, 2, 512*1024 },
- { 0x44, 2, 1*1024*1024 },
- { 0x45, 2, 2*1024*1024 },
- { 0x46, 3, 4*1024*1024 },
- { 0x47, 3, 8*1024*1024 },
- { 0x48, 2, 3*1024*1024 },
- { 0x49, 2, 4*1024*1024 }, /* special case */
- { 0x4a, 3, 6*1024*1024 },
- { 0x4b, 3, 8*1024*1024 },
- { 0x4c, 3, 12*1024*1024 },
- { 0x4d, 3, 16*1024*1024 },
- { 0x4e, 2, 6*1024*1024 },
- { 0x60, 1, 16*1024 },
- { 0x66, 1, 8*1024 },
- { 0x67, 1, 16*1024 },
- { 0x68, 1, 32*1024 },
- { 0x78, 2, 1*1024*1024 },
- { 0x79, 2, 128*1024 },
- { 0x7a, 2, 256*1024 },
- { 0x7b, 2, 512*1024 },
- { 0x7c, 2, 1*1024*1024 },
- { 0x7d, 2, 2*1024*1024 },
- { 0x7f, 2, 512*1024 },
- { 0x80, 2, 512*1024 },
- { 0x82, 2, 256*1024 },
- { 0x83, 2, 512*1024 },
- { 0x84, 2, 1*1024*1024 },
- { 0x85, 2, 2*1024*1024 },
- { 0x86, 2, 512*1024 },
- { 0x87, 2, 1*1024*1024 },
- { 0xe4, 3, 8*1024*1024 }
+ {0x0a, 1, 8 * 1024},
+ {0x0c, 1, 16 * 1024},
+ {0x0d, 1, 16 * 1024},
+ {0x0e, 1, 24 * 1024},
+ {0x21, 2, 256 * 1024},
+ {0x22, 3, 512 * 1024},
+ {0x23, 3, 1024 * 1024},
+ {0x25, 3, 2 * 1024 * 1024},
+ {0x29, 3, 4 * 1024 * 1024},
+ {0x2c, 1, 32 * 1024},
+ {0x41, 2, 128 * 1024},
+ {0x42, 2, 256 * 1024},
+ {0x43, 2, 512 * 1024},
+ {0x44, 2, 1 * 1024 * 1024},
+ {0x45, 2, 2 * 1024 * 1024},
+ {0x46, 3, 4 * 1024 * 1024},
+ {0x47, 3, 8 * 1024 * 1024},
+ {0x48, 2, 3 * 1024 * 1024},
+ {0x49, 2, 4 * 1024 * 1024}, /* special case */
+ {0x4a, 3, 6 * 1024 * 1024},
+ {0x4b, 3, 8 * 1024 * 1024},
+ {0x4c, 3, 12 * 1024 * 1024},
+ {0x4d, 3, 16 * 1024 * 1024},
+ {0x4e, 2, 6 * 1024 * 1024},
+ {0x60, 1, 16 * 1024},
+ {0x66, 1, 8 * 1024},
+ {0x67, 1, 16 * 1024},
+ {0x68, 1, 32 * 1024},
+ {0x78, 2, 1 * 1024 * 1024},
+ {0x79, 2, 128 * 1024},
+ {0x7a, 2, 256 * 1024},
+ {0x7b, 2, 512 * 1024},
+ {0x7c, 2, 1 * 1024 * 1024},
+ {0x7d, 2, 2 * 1024 * 1024},
+ {0x7f, 2, 512 * 1024},
+ {0x80, 2, 512 * 1024},
+ {0x82, 2, 256 * 1024},
+ {0x83, 2, 512 * 1024},
+ {0x84, 2, 1 * 1024 * 1024},
+ {0x85, 2, 2 * 1024 * 1024},
+ {0x86, 2, 512 * 1024},
+ {0x87, 2, 1 * 1024 * 1024},
+ {0xe4, 3, 8 * 1024 * 1024}
};
static void
@@ -173,18 +171,20 @@ handle_cache_descriptor (unsigned int desc)
{
int i;
- if (desc == 0) return;
+ if (desc == 0)
+ return;
/* special case */
if (desc == 0x49 && _orc_cpu_family == 0xf && _orc_cpu_model == 0x6) {
- ORC_DEBUG("level %d size %d", 3, 4*1024*1024);
- _orc_data_cache_size_level3 = 4*1024*1024;
+ ORC_DEBUG ("level %d size %d", 3, 4 * 1024 * 1024);
+ _orc_data_cache_size_level3 = 4 * 1024 * 1024;
return;
}
- for(i=0;i<sizeof(cache_descriptors)/sizeof(cache_descriptors[0]);i++){
+ for (i = 0; i < sizeof (cache_descriptors) / sizeof (cache_descriptors[0]);
+ i++) {
if (desc == cache_descriptors[i].desc) {
- ORC_DEBUG("level %d size %d", cache_descriptors[i].level,
+ ORC_DEBUG ("level %d size %d", cache_descriptors[i].level,
cache_descriptors[i].size);
switch (cache_descriptors[i].level) {
case 1:
@@ -212,12 +212,13 @@ orc_x86_detect_cpuid (void)
orc_uint32 ebx, edx;
orc_uint32 level;
- if (inited) return;
+ if (inited)
+ return;
inited = 1;
get_cpuid (0x00000000, &level, &ebx, &orc_x86_vendor, &edx);
- ORC_DEBUG("cpuid %d %08x %08x %08x", level, ebx, edx, orc_x86_vendor);
+ ORC_DEBUG ("cpuid %d %08x %08x %08x", level, ebx, edx, orc_x86_vendor);
#define ORC_X86_GenuineIntel (('n'<<0)|('t'<<8)|('e'<<16)|('l'<<24))
#define ORC_X86_AuthenticAMD (('c'<<0)|('A'<<8)|('M'<<16)|('D'<<24))
@@ -239,7 +240,7 @@ orc_x86_detect_cpuid (void)
orc_sse_detect_cpuid_amd (level);
break;
default:
- ORC_INFO("unhandled vendor %08x %08x %08x", ebx, edx, orc_x86_vendor);
+ ORC_INFO ("unhandled vendor %08x %08x %08x", ebx, edx, orc_x86_vendor);
orc_sse_detect_cpuid_generic (level);
break;
}
@@ -274,20 +275,20 @@ static void
orc_x86_cpuid_get_branding_string (void)
{
get_cpuid (0x80000002,
- (orc_uint32 *)(orc_x86_processor_string+0),
- (orc_uint32 *)(orc_x86_processor_string+4),
- (orc_uint32 *)(orc_x86_processor_string+8),
- (orc_uint32 *)(orc_x86_processor_string+12));
+ (orc_uint32 *) (orc_x86_processor_string + 0),
+ (orc_uint32 *) (orc_x86_processor_string + 4),
+ (orc_uint32 *) (orc_x86_processor_string + 8),
+ (orc_uint32 *) (orc_x86_processor_string + 12));
get_cpuid (0x80000003,
- (orc_uint32 *)(orc_x86_processor_string+16),
- (orc_uint32 *)(orc_x86_processor_string+20),
- (orc_uint32 *)(orc_x86_processor_string+24),
- (orc_uint32 *)(orc_x86_processor_string+28));
+ (orc_uint32 *) (orc_x86_processor_string + 16),
+ (orc_uint32 *) (orc_x86_processor_string + 20),
+ (orc_uint32 *) (orc_x86_processor_string + 24),
+ (orc_uint32 *) (orc_x86_processor_string + 28));
get_cpuid (0x80000004,
- (orc_uint32 *)(orc_x86_processor_string+32),
- (orc_uint32 *)(orc_x86_processor_string+36),
- (orc_uint32 *)(orc_x86_processor_string+40),
- (orc_uint32 *)(orc_x86_processor_string+44));
+ (orc_uint32 *) (orc_x86_processor_string + 32),
+ (orc_uint32 *) (orc_x86_processor_string + 36),
+ (orc_uint32 *) (orc_x86_processor_string + 40),
+ (orc_uint32 *) (orc_x86_processor_string + 44));
ORC_INFO ("processor string '%s'", orc_x86_processor_string);
@@ -301,25 +302,25 @@ orc_x86_cpuid_handle_standard_flags (void)
get_cpuid (0x00000001, &eax, &ebx, &ecx, &edx);
- if (edx & (1<<23)) {
+ if (edx & (1 << 23)) {
orc_x86_mmx_flags |= ORC_TARGET_MMX_MMX;
}
- if (edx & (1<<26)) {
+ if (edx & (1 << 26)) {
orc_x86_sse_flags |= ORC_TARGET_SSE_SSE2;
orc_x86_mmx_flags |= ORC_TARGET_MMX_MMXEXT;
}
- if (ecx & (1<<0)) {
+ if (ecx & (1 << 0)) {
orc_x86_sse_flags |= ORC_TARGET_SSE_SSE3;
}
- if (ecx & (1<<9)) {
+ if (ecx & (1 << 9)) {
orc_x86_sse_flags |= ORC_TARGET_SSE_SSSE3;
orc_x86_mmx_flags |= ORC_TARGET_MMX_SSSE3;
}
- if (ecx & (1<<19)) {
+ if (ecx & (1 << 19)) {
orc_x86_sse_flags |= ORC_TARGET_SSE_SSE4_1;
orc_x86_mmx_flags |= ORC_TARGET_MMX_SSE4_1;
}
- if (ecx & (1<<20)) {
+ if (ecx & (1 << 20)) {
orc_x86_sse_flags |= ORC_TARGET_SSE_SSE4_2;
}
}
@@ -335,14 +336,14 @@ orc_x86_cpuid_handle_family_model_stepping (void)
get_cpuid (0x00000001, &eax, &ebx, &ecx, &edx);
- family_id = (eax>>8)&0xf;
- model_id = (eax>>4)&0xf;
- ext_family_id = (eax>>20)&0xff;
- ext_model_id = (eax>>16)&0xf;
+ family_id = (eax >> 8) & 0xf;
+ model_id = (eax >> 4) & 0xf;
+ ext_family_id = (eax >> 20) & 0xff;
+ ext_model_id = (eax >> 16) & 0xf;
_orc_cpu_family = family_id + ext_family_id;
_orc_cpu_model = (ext_model_id << 4) | model_id;
- _orc_cpu_stepping = eax&0xf;
+ _orc_cpu_stepping = eax & 0xf;
ORC_INFO ("family_id %d model_id %d stepping %d",
_orc_cpu_family, _orc_cpu_model, _orc_cpu_stepping);
@@ -370,8 +371,8 @@ orc_sse_detect_cpuid_intel (orc_uint32 level)
orc_x86_microarchitecture = ORC_X86_UNKNOWN;
if (_orc_cpu_family == 6) {
switch (_orc_cpu_model) {
- case 6: /* Mendocino */
- case 11: /* Tualatin-256 */
+ case 6: /* Mendocino */
+ case 11: /* Tualatin-256 */
orc_x86_microarchitecture = ORC_X86_P6;
break;
case 15:
@@ -400,34 +401,34 @@ orc_sse_detect_cpuid_intel (orc_uint32 level)
if (level >= 2) {
get_cpuid (0x00000002, &eax, &ebx, &ecx, &edx);
- if ((eax&0x80000000) == 0) {
- handle_cache_descriptor ((eax>>8)&0xff);
- handle_cache_descriptor ((eax>>16)&0xff);
- handle_cache_descriptor ((eax>>24)&0xff);
+ if ((eax & 0x80000000) == 0) {
+ handle_cache_descriptor ((eax >> 8) & 0xff);
+ handle_cache_descriptor ((eax >> 16) & 0xff);
+ handle_cache_descriptor ((eax >> 24) & 0xff);
}
- if ((ebx&0x80000000) == 0) {
- handle_cache_descriptor (ebx&0xff);
- handle_cache_descriptor ((ebx>>8)&0xff);
- handle_cache_descriptor ((ebx>>16)&0xff);
- handle_cache_descriptor ((ebx>>24)&0xff);
+ if ((ebx & 0x80000000) == 0) {
+ handle_cache_descriptor (ebx & 0xff);
+ handle_cache_descriptor ((ebx >> 8) & 0xff);
+ handle_cache_descriptor ((ebx >> 16) & 0xff);
+ handle_cache_descriptor ((ebx >> 24) & 0xff);
}
- if ((ecx&0x80000000) == 0) {
- handle_cache_descriptor (ecx&0xff);
- handle_cache_descriptor ((ecx>>8)&0xff);
- handle_cache_descriptor ((ecx>>16)&0xff);
- handle_cache_descriptor ((ecx>>24)&0xff);
+ if ((ecx & 0x80000000) == 0) {
+ handle_cache_descriptor (ecx & 0xff);
+ handle_cache_descriptor ((ecx >> 8) & 0xff);
+ handle_cache_descriptor ((ecx >> 16) & 0xff);
+ handle_cache_descriptor ((ecx >> 24) & 0xff);
}
- if ((edx&0x80000000) == 0) {
- handle_cache_descriptor (edx&0xff);
- handle_cache_descriptor ((edx>>8)&0xff);
- handle_cache_descriptor ((edx>>16)&0xff);
- handle_cache_descriptor ((edx>>24)&0xff);
+ if ((edx & 0x80000000) == 0) {
+ handle_cache_descriptor (edx & 0xff);
+ handle_cache_descriptor ((edx >> 8) & 0xff);
+ handle_cache_descriptor ((edx >> 16) & 0xff);
+ handle_cache_descriptor ((edx >> 24) & 0xff);
}
}
if (level >= 4) {
int i;
- for(i=0;i<10;i++){
+ for (i = 0; i < 10; i++) {
int type;
int level;
int l;
@@ -436,13 +437,14 @@ orc_sse_detect_cpuid_intel (orc_uint32 level)
int s;
get_cpuid_ecx (0x00000004, i, &eax, &ebx, &ecx, &edx);
- type = eax&0xf;
- if (type == 0) break;
+ type = eax & 0xf;
+ if (type == 0)
+ break;
- level = (eax>>5)&0x7;
- l = ((ebx>>0)&0xfff)+1;
- p = ((ebx>>12)&0x3ff)+1;
- w = ((ebx>>22)&0x3ff)+1;
+ level = (eax >> 5) & 0x7;
+ l = ((ebx >> 0) & 0xfff) + 1;
+ p = ((ebx >> 12) & 0x3ff) + 1;
+ w = ((ebx >> 22) & 0x3ff) + 1;
s = ecx + 1;
ORC_INFO ("type %d level %d line size %d partitions %d ways %d sets %d",
@@ -450,13 +452,13 @@ orc_sse_detect_cpuid_intel (orc_uint32 level)
if (type == 1 || type == 3) {
switch (level) {
case 1:
- _orc_data_cache_size_level1 = l*p*w*s;
+ _orc_data_cache_size_level1 = l * p * w * s;
break;
case 2:
- _orc_data_cache_size_level2 = l*p*w*s;
+ _orc_data_cache_size_level2 = l * p * w * s;
break;
case 3:
- _orc_data_cache_size_level3 = l*p*w*s;
+ _orc_data_cache_size_level3 = l * p * w * s;
break;
}
}
@@ -471,7 +473,7 @@ orc_sse_detect_cpuid_intel (orc_uint32 level)
}
}
-
+
static void
orc_sse_detect_cpuid_amd (orc_uint32 level)
{
@@ -511,19 +513,19 @@ orc_sse_detect_cpuid_amd (orc_uint32 level)
get_cpuid (0x80000001, &eax, &ebx, &ecx, &edx);
/* AMD flags */
- if (ecx & (1<<6)) {
+ if (ecx & (1 << 6)) {
orc_x86_sse_flags |= ORC_TARGET_SSE_SSE4A;
}
- if (ecx & (1<<11)) {
+ if (ecx & (1 << 11)) {
orc_x86_sse_flags |= ORC_TARGET_SSE_SSE5;
}
- if (edx & (1<<22)) {
+ if (edx & (1 << 22)) {
orc_x86_mmx_flags |= ORC_TARGET_MMX_MMXEXT;
}
- if (edx & (1<<31)) {
+ if (edx & (1 << 31)) {
orc_x86_mmx_flags |= ORC_TARGET_MMX_3DNOW;
}
- if (edx & (1<<30)) {
+ if (edx & (1 << 30)) {
orc_x86_mmx_flags |= ORC_TARGET_MMX_3DNOWEXT;
}
}
@@ -535,32 +537,29 @@ orc_sse_detect_cpuid_amd (orc_uint32 level)
if (level >= 6) {
get_cpuid (0x80000005, &eax, &ebx, &ecx, &edx);
- _orc_data_cache_size_level1 = ((ecx>>24)&0xff) * 1024;
+ _orc_data_cache_size_level1 = ((ecx >> 24) & 0xff) * 1024;
ORC_INFO ("L1 D-cache: %d kbytes, %d-way, %d lines/tag, %d line size",
- (ecx>>24)&0xff, (ecx>>16)&0xff, (ecx>>8)&0xff, ecx&0xff);
+ (ecx >> 24) & 0xff, (ecx >> 16) & 0xff, (ecx >> 8) & 0xff, ecx & 0xff);
ORC_INFO ("L1 I-cache: %d kbytes, %d-way, %d lines/tag, %d line size",
- (edx>>24)&0xff, (edx>>16)&0xff, (edx>>8)&0xff, edx&0xff);
+ (edx >> 24) & 0xff, (edx >> 16) & 0xff, (edx >> 8) & 0xff, edx & 0xff);
get_cpuid (0x80000006, &eax, &ebx, &ecx, &edx);
- _orc_data_cache_size_level2 = ((ecx>>16)&0xffff) * 1024;
+ _orc_data_cache_size_level2 = ((ecx >> 16) & 0xffff) * 1024;
ORC_INFO ("L2 cache: %d kbytes, %d assoc, %d lines/tag, %d line size",
- (ecx>>16)&0xffff, (ecx>>12)&0xf, (ecx>>8)&0xf, ecx&0xff);
+ (ecx >> 16) & 0xffff, (ecx >> 12) & 0xf, (ecx >> 8) & 0xf, ecx & 0xff);
}
}
unsigned int
-orc_sse_get_cpu_flags(void)
+orc_sse_get_cpu_flags (void)
{
orc_x86_detect_cpuid ();
return orc_x86_sse_flags;
}
unsigned int
-orc_mmx_get_cpu_flags(void)
+orc_mmx_get_cpu_flags (void)
{
orc_x86_detect_cpuid ();
return orc_x86_mmx_flags;
}
-
-
-
diff --git a/orc/orcdebug.c b/orc/orcdebug.c
index c4aa7be..3364c98 100644
--- a/orc/orcdebug.c
+++ b/orc/orcdebug.c
@@ -49,7 +49,7 @@ static int _orc_debug_level = ORC_DEBUG_ERROR;
static OrcDebugPrintFunc _orc_debug_print_func = orc_debug_print_valist;
void
-_orc_debug_init(void)
+_orc_debug_init (void)
{
const char *envvar;
@@ -68,18 +68,20 @@ _orc_debug_init(void)
static void
orc_debug_print_valist (int level, const char *file, const char *func,
- int line, const char *format, va_list args)
+ int line, const char *format, va_list args)
{
static const char *level_names[] = { "NONE", "ERROR", "WARNING", "INFO",
- "DEBUG", "LOG" };
+ "DEBUG", "LOG"
+ };
const char *level_name = "unknown";
- if (level > _orc_debug_level) return;
+ if (level > _orc_debug_level)
+ return;
- if(level>=ORC_DEBUG_NONE && level<=ORC_DEBUG_LOG){
+ if (level >= ORC_DEBUG_NONE && level <= ORC_DEBUG_LOG) {
level_name = level_names[level];
}
-
+
fprintf (stderr, "ORC: %s: %s(%d): %s(): ", level_name, file, line, func);
vfprintf (stderr, format, args);
fprintf (stderr, "\n");
@@ -87,7 +89,7 @@ orc_debug_print_valist (int level, const char *file, const char *func,
void
orc_debug_print (int level, const char *file, const char *func,
- int line, const char *format, ...)
+ int line, const char *format, ...)
{
va_list var_args;
@@ -138,4 +140,3 @@ orc_debug_set_print_function (OrcDebugPrintFunc func)
_orc_debug_print_func = orc_debug_print_valist;
}
}
-
diff --git a/orc/orcemulateopcodes.c b/orc/orcemulateopcodes.c
index c467aa0..7b006db 100644
--- a/orc/orcemulateopcodes.c
+++ b/orc/orcemulateopcodes.c
@@ -52,23 +52,23 @@
void
-emulate_absb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_absb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
orc_int8 var32;
orc_int8 var33;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadb */
var32 = ptr4[i];
/* 1: absb */
- var33 = ORC_ABS(var32);
+ var33 = ORC_ABS (var32);
/* 2: storeb */
ptr0[i] = var33;
}
@@ -76,19 +76,19 @@ emulate_absb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_addb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_addb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
- const orc_int8 * ORC_RESTRICT ptr5;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
orc_int8 var32;
orc_int8 var33;
orc_int8 var34;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
- ptr5 = (orc_int8 *)ex->src_ptrs[1];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
+ ptr5 = (orc_int8 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -105,19 +105,19 @@ emulate_addb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_addssb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_addssb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
- const orc_int8 * ORC_RESTRICT ptr5;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
orc_int8 var32;
orc_int8 var33;
orc_int8 var34;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
- ptr5 = (orc_int8 *)ex->src_ptrs[1];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
+ ptr5 = (orc_int8 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -126,7 +126,7 @@ emulate_addssb (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadb */
var33 = ptr5[i];
/* 2: addssb */
- var34 = ORC_CLAMP_SB(var32 + var33);
+ var34 = ORC_CLAMP_SB (var32 + var33);
/* 3: storeb */
ptr0[i] = var34;
}
@@ -134,19 +134,19 @@ emulate_addssb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_addusb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_addusb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
- const orc_int8 * ORC_RESTRICT ptr5;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
orc_int8 var32;
orc_int8 var33;
orc_int8 var34;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
- ptr5 = (orc_int8 *)ex->src_ptrs[1];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
+ ptr5 = (orc_int8 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -155,7 +155,7 @@ emulate_addusb (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadb */
var33 = ptr5[i];
/* 2: addusb */
- var34 = ORC_CLAMP_UB((orc_uint8)var32 + (orc_uint8)var33);
+ var34 = ORC_CLAMP_UB ((orc_uint8) var32 + (orc_uint8) var33);
/* 3: storeb */
ptr0[i] = var34;
}
@@ -163,19 +163,19 @@ emulate_addusb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_andb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_andb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
- const orc_int8 * ORC_RESTRICT ptr5;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
orc_int8 var32;
orc_int8 var33;
orc_int8 var34;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
- ptr5 = (orc_int8 *)ex->src_ptrs[1];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
+ ptr5 = (orc_int8 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -192,19 +192,19 @@ emulate_andb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_andnb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_andnb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
- const orc_int8 * ORC_RESTRICT ptr5;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
orc_int8 var32;
orc_int8 var33;
orc_int8 var34;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
- ptr5 = (orc_int8 *)ex->src_ptrs[1];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
+ ptr5 = (orc_int8 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -221,19 +221,19 @@ emulate_andnb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_avgsb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_avgsb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
- const orc_int8 * ORC_RESTRICT ptr5;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
orc_int8 var32;
orc_int8 var33;
orc_int8 var34;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
- ptr5 = (orc_int8 *)ex->src_ptrs[1];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
+ ptr5 = (orc_int8 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -242,7 +242,7 @@ emulate_avgsb (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadb */
var33 = ptr5[i];
/* 2: avgsb */
- var34 = (var32 + var33 + 1)>>1;
+ var34 = (var32 + var33 + 1) >> 1;
/* 3: storeb */
ptr0[i] = var34;
}
@@ -250,19 +250,19 @@ emulate_avgsb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_avgub (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_avgub (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
- const orc_int8 * ORC_RESTRICT ptr5;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
orc_int8 var32;
orc_int8 var33;
orc_int8 var34;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
- ptr5 = (orc_int8 *)ex->src_ptrs[1];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
+ ptr5 = (orc_int8 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -271,7 +271,7 @@ emulate_avgub (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadb */
var33 = ptr5[i];
/* 2: avgub */
- var34 = ((orc_uint8)var32 + (orc_uint8)var33 + 1)>>1;
+ var34 = ((orc_uint8) var32 + (orc_uint8) var33 + 1) >> 1;
/* 3: storeb */
ptr0[i] = var34;
}
@@ -279,19 +279,19 @@ emulate_avgub (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_cmpeqb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_cmpeqb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
- const orc_int8 * ORC_RESTRICT ptr5;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
orc_int8 var32;
orc_int8 var33;
orc_int8 var34;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
- ptr5 = (orc_int8 *)ex->src_ptrs[1];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
+ ptr5 = (orc_int8 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -308,19 +308,19 @@ emulate_cmpeqb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_cmpgtsb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_cmpgtsb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
- const orc_int8 * ORC_RESTRICT ptr5;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
orc_int8 var32;
orc_int8 var33;
orc_int8 var34;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
- ptr5 = (orc_int8 *)ex->src_ptrs[1];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
+ ptr5 = (orc_int8 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -337,16 +337,16 @@ emulate_cmpgtsb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_copyb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_copyb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
orc_int8 var32;
orc_int8 var33;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -361,15 +361,15 @@ emulate_copyb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_loadb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_loadb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
orc_int8 var32;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -382,20 +382,20 @@ emulate_loadb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_loadoffb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_loadoffb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
orc_int8 var32;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadoffb */
- var32 = ptr4[offset + i + ((orc_union64 *)(ex->src_ptrs[1]))->i];
+ var32 = ptr4[offset + i + ((orc_union64 *) (ex->src_ptrs[1]))->i];
/* 1: storeb */
ptr0[i] = var32;
}
@@ -403,20 +403,20 @@ emulate_loadoffb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_loadupdb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_loadupdb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
orc_int8 var32;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadupdb */
- var32 = ptr4[(offset + i)>>1];
+ var32 = ptr4[(offset + i) >> 1];
/* 1: storeb */
ptr0[i] = var32;
}
@@ -424,20 +424,23 @@ emulate_loadupdb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_loadupib (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_loadupib (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
orc_int8 var32;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadupib */
- var32 = ((offset + i)&1) ? ((orc_uint8)ptr4[(offset + i)>>1] + (orc_uint8)ptr4[((offset + i)>>1)+1] + 1)>>1 : ptr4[(offset + i)>>1];
+ var32 =
+ ((offset + i) & 1) ? ((orc_uint8) ptr4[(offset + i) >> 1] +
+ (orc_uint8) ptr4[((offset + i) >> 1) + 1] + 1) >> 1 : ptr4[(offset +
+ i) >> 1];
/* 1: storeb */
ptr0[i] = var32;
}
@@ -445,16 +448,16 @@ emulate_loadupib (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_loadpb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_loadpb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
+ orc_int8 *ORC_RESTRICT ptr0;
orc_int8 var32;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
- /* 0: loadpb */
- var32 = ((orc_union64 *)(ex->src_ptrs[0]))->i;
+ /* 0: loadpb */
+ var32 = ((orc_union64 *) (ex->src_ptrs[0]))->i;
for (i = 0; i < n; i++) {
/* 1: storeb */
@@ -464,20 +467,22 @@ emulate_loadpb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_ldresnearb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_ldresnearb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
orc_int8 var32;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: ldresnearb */
- var32 = ptr4[(((orc_union64 *)(ex->src_ptrs[1]))->i + (offset + i)*((orc_union64 *)(ex->src_ptrs[2]))->i)>>16];
+ var32 =
+ ptr4[(((orc_union64 *) (ex->src_ptrs[1]))->i + (offset +
+ i) * ((orc_union64 *) (ex->src_ptrs[2]))->i) >> 16];
/* 1: storeb */
ptr0[i] = var32;
}
@@ -485,20 +490,22 @@ emulate_ldresnearb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_ldresnearl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_ldresnearl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
orc_union32 var32;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: ldresnearl */
- var32 = ptr4[(((orc_union64 *)(ex->src_ptrs[1]))->i + (offset + i)*((orc_union64 *)(ex->src_ptrs[2]))->i)>>16];
+ var32 =
+ ptr4[(((orc_union64 *) (ex->src_ptrs[1]))->i + (offset +
+ i) * ((orc_union64 *) (ex->src_ptrs[2]))->i) >> 16];
/* 1: storel */
ptr0[i] = var32;
}
@@ -506,22 +513,26 @@ emulate_ldresnearl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_ldreslinb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_ldreslinb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
orc_int8 var32;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: ldreslinb */
{
- int tmp = ((orc_union64 *)(ex->src_ptrs[1]))->i + (offset + i) * ((orc_union64 *)(ex->src_ptrs[2]))->i;
- var32 = ((orc_uint8)ptr4[tmp>>16] * (256-((tmp>>8)&0xff)) + (orc_uint8)ptr4[(tmp>>16)+1] * ((tmp>>8)&0xff))>>8;
+ int tmp =
+ ((orc_union64 *) (ex->src_ptrs[1]))->i + (offset +
+ i) * ((orc_union64 *) (ex->src_ptrs[2]))->i;
+ var32 =
+ ((orc_uint8) ptr4[tmp >> 16] * (256 - ((tmp >> 8) & 0xff)) +
+ (orc_uint8) ptr4[(tmp >> 16) + 1] * ((tmp >> 8) & 0xff)) >> 8;
}
/* 1: storeb */
ptr0[i] = var32;
@@ -530,27 +541,37 @@ emulate_ldreslinb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_ldreslinl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_ldreslinl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
orc_union32 var32;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: ldreslinl */
{
- int tmp = ((orc_union64 *)(ex->src_ptrs[1]))->i + (offset + i) * ((orc_union64 *)(ex->src_ptrs[2]))->i;
- orc_union32 a = ptr4[tmp>>16];
- orc_union32 b = ptr4[(tmp>>16)+1];
- var32.x4[0] = ((orc_uint8)a.x4[0] * (256-((tmp>>8)&0xff)) + (orc_uint8)b.x4[0] * ((tmp>>8)&0xff))>>8;
- var32.x4[1] = ((orc_uint8)a.x4[1] * (256-((tmp>>8)&0xff)) + (orc_uint8)b.x4[1] * ((tmp>>8)&0xff))>>8;
- var32.x4[2] = ((orc_uint8)a.x4[2] * (256-((tmp>>8)&0xff)) + (orc_uint8)b.x4[2] * ((tmp>>8)&0xff))>>8;
- var32.x4[3] = ((orc_uint8)a.x4[3] * (256-((tmp>>8)&0xff)) + (orc_uint8)b.x4[3] * ((tmp>>8)&0xff))>>8;
+ int tmp =
+ ((orc_union64 *) (ex->src_ptrs[1]))->i + (offset +
+ i) * ((orc_union64 *) (ex->src_ptrs[2]))->i;
+ orc_union32 a = ptr4[tmp >> 16];
+ orc_union32 b = ptr4[(tmp >> 16) + 1];
+ var32.x4[0] =
+ ((orc_uint8) a.x4[0] * (256 - ((tmp >> 8) & 0xff)) +
+ (orc_uint8) b.x4[0] * ((tmp >> 8) & 0xff)) >> 8;
+ var32.x4[1] =
+ ((orc_uint8) a.x4[1] * (256 - ((tmp >> 8) & 0xff)) +
+ (orc_uint8) b.x4[1] * ((tmp >> 8) & 0xff)) >> 8;
+ var32.x4[2] =
+ ((orc_uint8) a.x4[2] * (256 - ((tmp >> 8) & 0xff)) +
+ (orc_uint8) b.x4[2] * ((tmp >> 8) & 0xff)) >> 8;
+ var32.x4[3] =
+ ((orc_uint8) a.x4[3] * (256 - ((tmp >> 8) & 0xff)) +
+ (orc_uint8) b.x4[3] * ((tmp >> 8) & 0xff)) >> 8;
}
/* 1: storel */
ptr0[i] = var32;
@@ -559,19 +580,19 @@ emulate_ldreslinl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_maxsb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_maxsb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
- const orc_int8 * ORC_RESTRICT ptr5;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
orc_int8 var32;
orc_int8 var33;
orc_int8 var34;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
- ptr5 = (orc_int8 *)ex->src_ptrs[1];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
+ ptr5 = (orc_int8 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -580,7 +601,7 @@ emulate_maxsb (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadb */
var33 = ptr5[i];
/* 2: maxsb */
- var34 = ORC_MAX(var32, var33);
+ var34 = ORC_MAX (var32, var33);
/* 3: storeb */
ptr0[i] = var34;
}
@@ -588,19 +609,19 @@ emulate_maxsb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_maxub (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_maxub (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
- const orc_int8 * ORC_RESTRICT ptr5;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
orc_int8 var32;
orc_int8 var33;
orc_int8 var34;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
- ptr5 = (orc_int8 *)ex->src_ptrs[1];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
+ ptr5 = (orc_int8 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -609,7 +630,7 @@ emulate_maxub (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadb */
var33 = ptr5[i];
/* 2: maxub */
- var34 = ORC_MAX((orc_uint8)var32, (orc_uint8)var33);
+ var34 = ORC_MAX ((orc_uint8) var32, (orc_uint8) var33);
/* 3: storeb */
ptr0[i] = var34;
}
@@ -617,19 +638,19 @@ emulate_maxub (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_minsb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_minsb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
- const orc_int8 * ORC_RESTRICT ptr5;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
orc_int8 var32;
orc_int8 var33;
orc_int8 var34;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
- ptr5 = (orc_int8 *)ex->src_ptrs[1];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
+ ptr5 = (orc_int8 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -638,7 +659,7 @@ emulate_minsb (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadb */
var33 = ptr5[i];
/* 2: minsb */
- var34 = ORC_MIN(var32, var33);
+ var34 = ORC_MIN (var32, var33);
/* 3: storeb */
ptr0[i] = var34;
}
@@ -646,19 +667,19 @@ emulate_minsb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_minub (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_minub (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
- const orc_int8 * ORC_RESTRICT ptr5;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
orc_int8 var32;
orc_int8 var33;
orc_int8 var34;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
- ptr5 = (orc_int8 *)ex->src_ptrs[1];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
+ ptr5 = (orc_int8 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -667,7 +688,7 @@ emulate_minub (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadb */
var33 = ptr5[i];
/* 2: minub */
- var34 = ORC_MIN((orc_uint8)var32, (orc_uint8)var33);
+ var34 = ORC_MIN ((orc_uint8) var32, (orc_uint8) var33);
/* 3: storeb */
ptr0[i] = var34;
}
@@ -675,19 +696,19 @@ emulate_minub (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_mullb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_mullb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
- const orc_int8 * ORC_RESTRICT ptr5;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
orc_int8 var32;
orc_int8 var33;
orc_int8 var34;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
- ptr5 = (orc_int8 *)ex->src_ptrs[1];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
+ ptr5 = (orc_int8 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -704,19 +725,19 @@ emulate_mullb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_mulhsb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_mulhsb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
- const orc_int8 * ORC_RESTRICT ptr5;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
orc_int8 var32;
orc_int8 var33;
orc_int8 var34;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
- ptr5 = (orc_int8 *)ex->src_ptrs[1];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
+ ptr5 = (orc_int8 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -733,19 +754,19 @@ emulate_mulhsb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_mulhub (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_mulhub (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
- const orc_int8 * ORC_RESTRICT ptr5;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
orc_int8 var32;
orc_int8 var33;
orc_int8 var34;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
- ptr5 = (orc_int8 *)ex->src_ptrs[1];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
+ ptr5 = (orc_int8 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -754,7 +775,8 @@ emulate_mulhub (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadb */
var33 = ptr5[i];
/* 2: mulhub */
- var34 = ((orc_uint32)(orc_uint8)var32 * (orc_uint32)(orc_uint8)var33) >> 8;
+ var34 =
+ ((orc_uint32) (orc_uint8) var32 * (orc_uint32) (orc_uint8) var33) >> 8;
/* 3: storeb */
ptr0[i] = var34;
}
@@ -762,19 +784,19 @@ emulate_mulhub (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_orb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_orb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
- const orc_int8 * ORC_RESTRICT ptr5;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
orc_int8 var32;
orc_int8 var33;
orc_int8 var34;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
- ptr5 = (orc_int8 *)ex->src_ptrs[1];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
+ ptr5 = (orc_int8 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -791,23 +813,23 @@ emulate_orb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_shlb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_shlb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
orc_int8 var32;
orc_int8 var33;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadb */
var32 = ptr4[i];
/* 1: shlb */
- var33 = var32 << ((orc_union64 *)(ex->src_ptrs[1]))->i;
+ var33 = var32 << ((orc_union64 *) (ex->src_ptrs[1]))->i;
/* 2: storeb */
ptr0[i] = var33;
}
@@ -815,23 +837,23 @@ emulate_shlb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_shrsb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_shrsb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
orc_int8 var32;
orc_int8 var33;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadb */
var32 = ptr4[i];
/* 1: shrsb */
- var33 = var32 >> ((orc_union64 *)(ex->src_ptrs[1]))->i;
+ var33 = var32 >> ((orc_union64 *) (ex->src_ptrs[1]))->i;
/* 2: storeb */
ptr0[i] = var33;
}
@@ -839,23 +861,23 @@ emulate_shrsb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_shrub (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_shrub (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
orc_int8 var32;
orc_int8 var33;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadb */
var32 = ptr4[i];
/* 1: shrub */
- var33 = ((orc_uint8)var32) >> ((orc_union64 *)(ex->src_ptrs[1]))->i;
+ var33 = ((orc_uint8) var32) >> ((orc_union64 *) (ex->src_ptrs[1]))->i;
/* 2: storeb */
ptr0[i] = var33;
}
@@ -863,23 +885,23 @@ emulate_shrub (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_signb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_signb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
orc_int8 var32;
orc_int8 var33;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadb */
var32 = ptr4[i];
/* 1: signb */
- var33 = ORC_CLAMP(var32,-1,1);
+ var33 = ORC_CLAMP (var32, -1, 1);
/* 2: storeb */
ptr0[i] = var33;
}
@@ -887,15 +909,15 @@ emulate_signb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_storeb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_storeb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
orc_int8 var32;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -908,19 +930,19 @@ emulate_storeb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_subb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_subb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
- const orc_int8 * ORC_RESTRICT ptr5;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
orc_int8 var32;
orc_int8 var33;
orc_int8 var34;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
- ptr5 = (orc_int8 *)ex->src_ptrs[1];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
+ ptr5 = (orc_int8 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -937,19 +959,19 @@ emulate_subb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_subssb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_subssb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
- const orc_int8 * ORC_RESTRICT ptr5;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
orc_int8 var32;
orc_int8 var33;
orc_int8 var34;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
- ptr5 = (orc_int8 *)ex->src_ptrs[1];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
+ ptr5 = (orc_int8 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -958,7 +980,7 @@ emulate_subssb (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadb */
var33 = ptr5[i];
/* 2: subssb */
- var34 = ORC_CLAMP_SB(var32 - var33);
+ var34 = ORC_CLAMP_SB (var32 - var33);
/* 3: storeb */
ptr0[i] = var34;
}
@@ -966,19 +988,19 @@ emulate_subssb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_subusb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_subusb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
- const orc_int8 * ORC_RESTRICT ptr5;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
orc_int8 var32;
orc_int8 var33;
orc_int8 var34;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
- ptr5 = (orc_int8 *)ex->src_ptrs[1];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
+ ptr5 = (orc_int8 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -987,7 +1009,7 @@ emulate_subusb (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadb */
var33 = ptr5[i];
/* 2: subusb */
- var34 = ORC_CLAMP_UB((orc_uint8)var32 - (orc_uint8)var33);
+ var34 = ORC_CLAMP_UB ((orc_uint8) var32 - (orc_uint8) var33);
/* 3: storeb */
ptr0[i] = var34;
}
@@ -995,19 +1017,19 @@ emulate_subusb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_xorb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_xorb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
- const orc_int8 * ORC_RESTRICT ptr5;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
orc_int8 var32;
orc_int8 var33;
orc_int8 var34;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
- ptr5 = (orc_int8 *)ex->src_ptrs[1];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
+ ptr5 = (orc_int8 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -1024,23 +1046,23 @@ emulate_xorb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_absw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_absw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
orc_union16 var32;
orc_union16 var33;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadw */
var32 = ptr4[i];
/* 1: absw */
- var33.i = ORC_ABS(var32.i);
+ var33.i = ORC_ABS (var32.i);
/* 2: storew */
ptr0[i] = var33;
}
@@ -1048,19 +1070,19 @@ emulate_absw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_addw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_addw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
- const orc_union16 * ORC_RESTRICT ptr5;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
orc_union16 var32;
orc_union16 var33;
orc_union16 var34;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
- ptr5 = (orc_union16 *)ex->src_ptrs[1];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
+ ptr5 = (orc_union16 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -1077,19 +1099,19 @@ emulate_addw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_addssw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_addssw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
- const orc_union16 * ORC_RESTRICT ptr5;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
orc_union16 var32;
orc_union16 var33;
orc_union16 var34;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
- ptr5 = (orc_union16 *)ex->src_ptrs[1];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
+ ptr5 = (orc_union16 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -1098,7 +1120,7 @@ emulate_addssw (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadw */
var33 = ptr5[i];
/* 2: addssw */
- var34.i = ORC_CLAMP_SW(var32.i + var33.i);
+ var34.i = ORC_CLAMP_SW (var32.i + var33.i);
/* 3: storew */
ptr0[i] = var34;
}
@@ -1106,19 +1128,19 @@ emulate_addssw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_addusw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_addusw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
- const orc_union16 * ORC_RESTRICT ptr5;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
orc_union16 var32;
orc_union16 var33;
orc_union16 var34;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
- ptr5 = (orc_union16 *)ex->src_ptrs[1];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
+ ptr5 = (orc_union16 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -1127,7 +1149,7 @@ emulate_addusw (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadw */
var33 = ptr5[i];
/* 2: addusw */
- var34.i = ORC_CLAMP_UW((orc_uint16)var32.i + (orc_uint16)var33.i);
+ var34.i = ORC_CLAMP_UW ((orc_uint16) var32.i + (orc_uint16) var33.i);
/* 3: storew */
ptr0[i] = var34;
}
@@ -1135,19 +1157,19 @@ emulate_addusw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_andw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_andw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
- const orc_union16 * ORC_RESTRICT ptr5;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
orc_union16 var32;
orc_union16 var33;
orc_union16 var34;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
- ptr5 = (orc_union16 *)ex->src_ptrs[1];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
+ ptr5 = (orc_union16 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -1164,19 +1186,19 @@ emulate_andw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_andnw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_andnw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
- const orc_union16 * ORC_RESTRICT ptr5;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
orc_union16 var32;
orc_union16 var33;
orc_union16 var34;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
- ptr5 = (orc_union16 *)ex->src_ptrs[1];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
+ ptr5 = (orc_union16 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -1193,19 +1215,19 @@ emulate_andnw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_avgsw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_avgsw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
- const orc_union16 * ORC_RESTRICT ptr5;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
orc_union16 var32;
orc_union16 var33;
orc_union16 var34;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
- ptr5 = (orc_union16 *)ex->src_ptrs[1];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
+ ptr5 = (orc_union16 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -1214,7 +1236,7 @@ emulate_avgsw (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadw */
var33 = ptr5[i];
/* 2: avgsw */
- var34.i = (var32.i + var33.i + 1)>>1;
+ var34.i = (var32.i + var33.i + 1) >> 1;
/* 3: storew */
ptr0[i] = var34;
}
@@ -1222,19 +1244,19 @@ emulate_avgsw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_avguw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_avguw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
- const orc_union16 * ORC_RESTRICT ptr5;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
orc_union16 var32;
orc_union16 var33;
orc_union16 var34;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
- ptr5 = (orc_union16 *)ex->src_ptrs[1];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
+ ptr5 = (orc_union16 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -1243,7 +1265,7 @@ emulate_avguw (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadw */
var33 = ptr5[i];
/* 2: avguw */
- var34.i = ((orc_uint16)var32.i + (orc_uint16)var33.i + 1)>>1;
+ var34.i = ((orc_uint16) var32.i + (orc_uint16) var33.i + 1) >> 1;
/* 3: storew */
ptr0[i] = var34;
}
@@ -1251,19 +1273,19 @@ emulate_avguw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_cmpeqw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_cmpeqw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
- const orc_union16 * ORC_RESTRICT ptr5;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
orc_union16 var32;
orc_union16 var33;
orc_union16 var34;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
- ptr5 = (orc_union16 *)ex->src_ptrs[1];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
+ ptr5 = (orc_union16 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -1280,19 +1302,19 @@ emulate_cmpeqw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_cmpgtsw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_cmpgtsw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
- const orc_union16 * ORC_RESTRICT ptr5;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
orc_union16 var32;
orc_union16 var33;
orc_union16 var34;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
- ptr5 = (orc_union16 *)ex->src_ptrs[1];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
+ ptr5 = (orc_union16 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -1309,16 +1331,16 @@ emulate_cmpgtsw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_copyw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_copyw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
orc_union16 var32;
orc_union16 var33;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -1333,23 +1355,25 @@ emulate_copyw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_div255w (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_div255w (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
orc_union16 var32;
orc_union16 var33;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadw */
var32 = ptr4[i];
/* 1: div255w */
- var33.i = ((orc_uint16)(((orc_uint16)(var32.i+128)) + (((orc_uint16)(var32.i+128))>>8)))>>8;
+ var33.i =
+ ((orc_uint16) (((orc_uint16) (var32.i + 128)) +
+ (((orc_uint16) (var32.i + 128)) >> 8))) >> 8;
/* 2: storew */
ptr0[i] = var33;
}
@@ -1357,19 +1381,19 @@ emulate_div255w (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_divluw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_divluw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
- const orc_union16 * ORC_RESTRICT ptr5;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
orc_union16 var32;
orc_union16 var33;
orc_union16 var34;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
- ptr5 = (orc_union16 *)ex->src_ptrs[1];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
+ ptr5 = (orc_union16 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -1378,7 +1402,10 @@ emulate_divluw (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadw */
var33 = ptr5[i];
/* 2: divluw */
- var34.i = ((var33.i&0xff) == 0) ? 255 : ORC_CLAMP_UB(((orc_uint16)var32.i)/((orc_uint16)var33.i&0xff));
+ var34.i =
+ ((var33.i & 0xff) ==
+ 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var32.i) /
+ ((orc_uint16) var33.i & 0xff));
/* 3: storew */
ptr0[i] = var34;
}
@@ -1386,15 +1413,15 @@ emulate_divluw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_loadw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_loadw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
orc_union16 var32;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -1407,20 +1434,20 @@ emulate_loadw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_loadoffw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_loadoffw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
orc_union16 var32;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadoffw */
- var32 = ptr4[offset + i + ((orc_union64 *)(ex->src_ptrs[1]))->i];
+ var32 = ptr4[offset + i + ((orc_union64 *) (ex->src_ptrs[1]))->i];
/* 1: storew */
ptr0[i] = var32;
}
@@ -1428,16 +1455,16 @@ emulate_loadoffw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_loadpw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_loadpw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
+ orc_union16 *ORC_RESTRICT ptr0;
orc_union16 var32;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
- /* 0: loadpw */
- var32.i = ((orc_union64 *)(ex->src_ptrs[0]))->i;
+ /* 0: loadpw */
+ var32.i = ((orc_union64 *) (ex->src_ptrs[0]))->i;
for (i = 0; i < n; i++) {
/* 1: storew */
@@ -1447,19 +1474,19 @@ emulate_loadpw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_maxsw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_maxsw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
- const orc_union16 * ORC_RESTRICT ptr5;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
orc_union16 var32;
orc_union16 var33;
orc_union16 var34;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
- ptr5 = (orc_union16 *)ex->src_ptrs[1];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
+ ptr5 = (orc_union16 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -1468,7 +1495,7 @@ emulate_maxsw (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadw */
var33 = ptr5[i];
/* 2: maxsw */
- var34.i = ORC_MAX(var32.i, var33.i);
+ var34.i = ORC_MAX (var32.i, var33.i);
/* 3: storew */
ptr0[i] = var34;
}
@@ -1476,19 +1503,19 @@ emulate_maxsw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_maxuw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_maxuw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
- const orc_union16 * ORC_RESTRICT ptr5;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
orc_union16 var32;
orc_union16 var33;
orc_union16 var34;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
- ptr5 = (orc_union16 *)ex->src_ptrs[1];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
+ ptr5 = (orc_union16 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -1497,7 +1524,7 @@ emulate_maxuw (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadw */
var33 = ptr5[i];
/* 2: maxuw */
- var34.i = ORC_MAX((orc_uint16)var32.i, (orc_uint16)var33.i);
+ var34.i = ORC_MAX ((orc_uint16) var32.i, (orc_uint16) var33.i);
/* 3: storew */
ptr0[i] = var34;
}
@@ -1505,19 +1532,19 @@ emulate_maxuw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_minsw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_minsw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
- const orc_union16 * ORC_RESTRICT ptr5;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
orc_union16 var32;
orc_union16 var33;
orc_union16 var34;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
- ptr5 = (orc_union16 *)ex->src_ptrs[1];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
+ ptr5 = (orc_union16 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -1526,7 +1553,7 @@ emulate_minsw (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadw */
var33 = ptr5[i];
/* 2: minsw */
- var34.i = ORC_MIN(var32.i, var33.i);
+ var34.i = ORC_MIN (var32.i, var33.i);
/* 3: storew */
ptr0[i] = var34;
}
@@ -1534,19 +1561,19 @@ emulate_minsw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_minuw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_minuw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
- const orc_union16 * ORC_RESTRICT ptr5;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
orc_union16 var32;
orc_union16 var33;
orc_union16 var34;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
- ptr5 = (orc_union16 *)ex->src_ptrs[1];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
+ ptr5 = (orc_union16 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -1555,7 +1582,7 @@ emulate_minuw (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadw */
var33 = ptr5[i];
/* 2: minuw */
- var34.i = ORC_MIN((orc_uint16)var32.i, (orc_uint16)var33.i);
+ var34.i = ORC_MIN ((orc_uint16) var32.i, (orc_uint16) var33.i);
/* 3: storew */
ptr0[i] = var34;
}
@@ -1563,19 +1590,19 @@ emulate_minuw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_mullw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_mullw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
- const orc_union16 * ORC_RESTRICT ptr5;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
orc_union16 var32;
orc_union16 var33;
orc_union16 var34;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
- ptr5 = (orc_union16 *)ex->src_ptrs[1];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
+ ptr5 = (orc_union16 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -1592,19 +1619,19 @@ emulate_mullw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_mulhsw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_mulhsw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
- const orc_union16 * ORC_RESTRICT ptr5;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
orc_union16 var32;
orc_union16 var33;
orc_union16 var34;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
- ptr5 = (orc_union16 *)ex->src_ptrs[1];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
+ ptr5 = (orc_union16 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -1621,19 +1648,19 @@ emulate_mulhsw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_mulhuw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_mulhuw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
- const orc_union16 * ORC_RESTRICT ptr5;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
orc_union16 var32;
orc_union16 var33;
orc_union16 var34;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
- ptr5 = (orc_union16 *)ex->src_ptrs[1];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
+ ptr5 = (orc_union16 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -1642,7 +1669,9 @@ emulate_mulhuw (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadw */
var33 = ptr5[i];
/* 2: mulhuw */
- var34.i = ((orc_uint32)((orc_uint16)var32.i) * (orc_uint32)((orc_uint16)var33.i)) >> 16;
+ var34.i =
+ ((orc_uint32) ((orc_uint16) var32.i) *
+ (orc_uint32) ((orc_uint16) var33.i)) >> 16;
/* 3: storew */
ptr0[i] = var34;
}
@@ -1650,19 +1679,19 @@ emulate_mulhuw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_orw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_orw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
- const orc_union16 * ORC_RESTRICT ptr5;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
orc_union16 var32;
orc_union16 var33;
orc_union16 var34;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
- ptr5 = (orc_union16 *)ex->src_ptrs[1];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
+ ptr5 = (orc_union16 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -1679,23 +1708,23 @@ emulate_orw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_shlw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_shlw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
orc_union16 var32;
orc_union16 var33;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadw */
var32 = ptr4[i];
/* 1: shlw */
- var33.i = var32.i << ((orc_union64 *)(ex->src_ptrs[1]))->i;
+ var33.i = var32.i << ((orc_union64 *) (ex->src_ptrs[1]))->i;
/* 2: storew */
ptr0[i] = var33;
}
@@ -1703,23 +1732,23 @@ emulate_shlw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_shrsw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_shrsw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
orc_union16 var32;
orc_union16 var33;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadw */
var32 = ptr4[i];
/* 1: shrsw */
- var33.i = var32.i >> ((orc_union64 *)(ex->src_ptrs[1]))->i;
+ var33.i = var32.i >> ((orc_union64 *) (ex->src_ptrs[1]))->i;
/* 2: storew */
ptr0[i] = var33;
}
@@ -1727,23 +1756,23 @@ emulate_shrsw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_shruw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_shruw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
orc_union16 var32;
orc_union16 var33;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadw */
var32 = ptr4[i];
/* 1: shruw */
- var33.i = ((orc_uint16)var32.i) >> ((orc_union64 *)(ex->src_ptrs[1]))->i;
+ var33.i = ((orc_uint16) var32.i) >> ((orc_union64 *) (ex->src_ptrs[1]))->i;
/* 2: storew */
ptr0[i] = var33;
}
@@ -1751,23 +1780,23 @@ emulate_shruw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_signw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_signw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
orc_union16 var32;
orc_union16 var33;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadw */
var32 = ptr4[i];
/* 1: signw */
- var33.i = ORC_CLAMP(var32.i,-1,1);
+ var33.i = ORC_CLAMP (var32.i, -1, 1);
/* 2: storew */
ptr0[i] = var33;
}
@@ -1775,15 +1804,15 @@ emulate_signw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_storew (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_storew (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
orc_union16 var32;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -1796,19 +1825,19 @@ emulate_storew (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_subw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_subw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
- const orc_union16 * ORC_RESTRICT ptr5;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
orc_union16 var32;
orc_union16 var33;
orc_union16 var34;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
- ptr5 = (orc_union16 *)ex->src_ptrs[1];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
+ ptr5 = (orc_union16 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -1825,19 +1854,19 @@ emulate_subw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_subssw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_subssw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
- const orc_union16 * ORC_RESTRICT ptr5;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
orc_union16 var32;
orc_union16 var33;
orc_union16 var34;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
- ptr5 = (orc_union16 *)ex->src_ptrs[1];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
+ ptr5 = (orc_union16 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -1846,7 +1875,7 @@ emulate_subssw (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadw */
var33 = ptr5[i];
/* 2: subssw */
- var34.i = ORC_CLAMP_SW(var32.i - var33.i);
+ var34.i = ORC_CLAMP_SW (var32.i - var33.i);
/* 3: storew */
ptr0[i] = var34;
}
@@ -1854,19 +1883,19 @@ emulate_subssw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_subusw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_subusw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
- const orc_union16 * ORC_RESTRICT ptr5;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
orc_union16 var32;
orc_union16 var33;
orc_union16 var34;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
- ptr5 = (orc_union16 *)ex->src_ptrs[1];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
+ ptr5 = (orc_union16 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -1875,7 +1904,7 @@ emulate_subusw (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadw */
var33 = ptr5[i];
/* 2: subusw */
- var34.i = ORC_CLAMP_UW((orc_uint16)var32.i - (orc_uint16)var33.i);
+ var34.i = ORC_CLAMP_UW ((orc_uint16) var32.i - (orc_uint16) var33.i);
/* 3: storew */
ptr0[i] = var34;
}
@@ -1883,19 +1912,19 @@ emulate_subusw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_xorw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_xorw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
- const orc_union16 * ORC_RESTRICT ptr5;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
orc_union16 var32;
orc_union16 var33;
orc_union16 var34;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
- ptr5 = (orc_union16 *)ex->src_ptrs[1];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
+ ptr5 = (orc_union16 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -1912,23 +1941,23 @@ emulate_xorw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_absl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_absl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
orc_union32 var32;
orc_union32 var33;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadl */
var32 = ptr4[i];
/* 1: absl */
- var33.i = ORC_ABS(var32.i);
+ var33.i = ORC_ABS (var32.i);
/* 2: storel */
ptr0[i] = var33;
}
@@ -1936,19 +1965,19 @@ emulate_absl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_addl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_addl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -1965,19 +1994,19 @@ emulate_addl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_addssl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_addssl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -1986,7 +2015,7 @@ emulate_addssl (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadl */
var33 = ptr5[i];
/* 2: addssl */
- var34.i = ORC_CLAMP_SL((orc_int64)var32.i + (orc_int64)var33.i);
+ var34.i = ORC_CLAMP_SL ((orc_int64) var32.i + (orc_int64) var33.i);
/* 3: storel */
ptr0[i] = var34;
}
@@ -1994,19 +2023,19 @@ emulate_addssl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_addusl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_addusl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -2015,7 +2044,9 @@ emulate_addusl (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadl */
var33 = ptr5[i];
/* 2: addusl */
- var34.i = ORC_CLAMP_UL((orc_int64)(orc_uint32)var32.i + (orc_int64)(orc_uint32)var33.i);
+ var34.i =
+ ORC_CLAMP_UL ((orc_int64) (orc_uint32) var32.i +
+ (orc_int64) (orc_uint32) var33.i);
/* 3: storel */
ptr0[i] = var34;
}
@@ -2023,19 +2054,19 @@ emulate_addusl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_andl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_andl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -2052,19 +2083,19 @@ emulate_andl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_andnl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_andnl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -2081,19 +2112,19 @@ emulate_andnl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_avgsl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_avgsl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -2102,7 +2133,7 @@ emulate_avgsl (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadl */
var33 = ptr5[i];
/* 2: avgsl */
- var34.i = ((orc_int64)var32.i + (orc_int64)var33.i + 1)>>1;
+ var34.i = ((orc_int64) var32.i + (orc_int64) var33.i + 1) >> 1;
/* 3: storel */
ptr0[i] = var34;
}
@@ -2110,19 +2141,19 @@ emulate_avgsl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_avgul (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_avgul (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -2131,7 +2162,9 @@ emulate_avgul (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadl */
var33 = ptr5[i];
/* 2: avgul */
- var34.i = ((orc_uint64)(orc_uint32)var32.i + (orc_uint64)(orc_uint32)var33.i + 1)>>1;
+ var34.i =
+ ((orc_uint64) (orc_uint32) var32.i + (orc_uint64) (orc_uint32) var33.i +
+ 1) >> 1;
/* 3: storel */
ptr0[i] = var34;
}
@@ -2139,19 +2172,19 @@ emulate_avgul (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_cmpeql (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_cmpeql (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -2168,19 +2201,19 @@ emulate_cmpeql (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_cmpgtsl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_cmpgtsl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -2197,16 +2230,16 @@ emulate_cmpgtsl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_copyl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_copyl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
orc_union32 var32;
orc_union32 var33;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -2221,15 +2254,15 @@ emulate_copyl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_loadl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_loadl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
orc_union32 var32;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -2242,20 +2275,20 @@ emulate_loadl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_loadoffl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_loadoffl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
orc_union32 var32;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadoffl */
- var32 = ptr4[offset + i + ((orc_union64 *)(ex->src_ptrs[1]))->i];
+ var32 = ptr4[offset + i + ((orc_union64 *) (ex->src_ptrs[1]))->i];
/* 1: storel */
ptr0[i] = var32;
}
@@ -2263,16 +2296,16 @@ emulate_loadoffl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_loadpl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_loadpl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
+ orc_union32 *ORC_RESTRICT ptr0;
orc_union32 var32;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
- /* 0: loadpl */
- var32.i = ((orc_union64 *)(ex->src_ptrs[0]))->i;
+ /* 0: loadpl */
+ var32.i = ((orc_union64 *) (ex->src_ptrs[0]))->i;
for (i = 0; i < n; i++) {
/* 1: storel */
@@ -2282,19 +2315,19 @@ emulate_loadpl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_maxsl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_maxsl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -2303,7 +2336,7 @@ emulate_maxsl (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadl */
var33 = ptr5[i];
/* 2: maxsl */
- var34.i = ORC_MAX(var32.i, var33.i);
+ var34.i = ORC_MAX (var32.i, var33.i);
/* 3: storel */
ptr0[i] = var34;
}
@@ -2311,19 +2344,19 @@ emulate_maxsl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_maxul (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_maxul (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -2332,7 +2365,7 @@ emulate_maxul (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadl */
var33 = ptr5[i];
/* 2: maxul */
- var34.i = ORC_MAX((orc_uint32)var32.i, (orc_uint32)var33.i);
+ var34.i = ORC_MAX ((orc_uint32) var32.i, (orc_uint32) var33.i);
/* 3: storel */
ptr0[i] = var34;
}
@@ -2340,19 +2373,19 @@ emulate_maxul (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_minsl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_minsl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -2361,7 +2394,7 @@ emulate_minsl (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadl */
var33 = ptr5[i];
/* 2: minsl */
- var34.i = ORC_MIN(var32.i, var33.i);
+ var34.i = ORC_MIN (var32.i, var33.i);
/* 3: storel */
ptr0[i] = var34;
}
@@ -2369,19 +2402,19 @@ emulate_minsl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_minul (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_minul (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -2390,7 +2423,7 @@ emulate_minul (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadl */
var33 = ptr5[i];
/* 2: minul */
- var34.i = ORC_MIN((orc_uint32)var32.i, (orc_uint32)var33.i);
+ var34.i = ORC_MIN ((orc_uint32) var32.i, (orc_uint32) var33.i);
/* 3: storel */
ptr0[i] = var34;
}
@@ -2398,19 +2431,19 @@ emulate_minul (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_mulll (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_mulll (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -2427,19 +2460,19 @@ emulate_mulll (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_mulhsl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_mulhsl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -2448,7 +2481,7 @@ emulate_mulhsl (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadl */
var33 = ptr5[i];
/* 2: mulhsl */
- var34.i = ((orc_int64)var32.i * (orc_int64)var33.i) >> 32;
+ var34.i = ((orc_int64) var32.i * (orc_int64) var33.i) >> 32;
/* 3: storel */
ptr0[i] = var34;
}
@@ -2456,19 +2489,19 @@ emulate_mulhsl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_mulhul (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_mulhul (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -2477,7 +2510,9 @@ emulate_mulhul (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadl */
var33 = ptr5[i];
/* 2: mulhul */
- var34.i = ((orc_uint64)(orc_uint32)var32.i * (orc_uint64)(orc_uint32)var33.i) >> 32;
+ var34.i =
+ ((orc_uint64) (orc_uint32) var32.i *
+ (orc_uint64) (orc_uint32) var33.i) >> 32;
/* 3: storel */
ptr0[i] = var34;
}
@@ -2485,19 +2520,19 @@ emulate_mulhul (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_orl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_orl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -2514,23 +2549,23 @@ emulate_orl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_shll (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_shll (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
orc_union32 var32;
orc_union32 var33;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadl */
var32 = ptr4[i];
/* 1: shll */
- var33.i = var32.i << ((orc_union64 *)(ex->src_ptrs[1]))->i;
+ var33.i = var32.i << ((orc_union64 *) (ex->src_ptrs[1]))->i;
/* 2: storel */
ptr0[i] = var33;
}
@@ -2538,23 +2573,23 @@ emulate_shll (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_shrsl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_shrsl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
orc_union32 var32;
orc_union32 var33;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadl */
var32 = ptr4[i];
/* 1: shrsl */
- var33.i = var32.i >> ((orc_union64 *)(ex->src_ptrs[1]))->i;
+ var33.i = var32.i >> ((orc_union64 *) (ex->src_ptrs[1]))->i;
/* 2: storel */
ptr0[i] = var33;
}
@@ -2562,23 +2597,23 @@ emulate_shrsl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_shrul (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_shrul (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
orc_union32 var32;
orc_union32 var33;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadl */
var32 = ptr4[i];
/* 1: shrul */
- var33.i = ((orc_uint32)var32.i) >> ((orc_union64 *)(ex->src_ptrs[1]))->i;
+ var33.i = ((orc_uint32) var32.i) >> ((orc_union64 *) (ex->src_ptrs[1]))->i;
/* 2: storel */
ptr0[i] = var33;
}
@@ -2586,23 +2621,23 @@ emulate_shrul (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_signl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_signl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
orc_union32 var32;
orc_union32 var33;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadl */
var32 = ptr4[i];
/* 1: signl */
- var33.i = ORC_CLAMP(var32.i,-1,1);
+ var33.i = ORC_CLAMP (var32.i, -1, 1);
/* 2: storel */
ptr0[i] = var33;
}
@@ -2610,15 +2645,15 @@ emulate_signl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_storel (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_storel (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
orc_union32 var32;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -2631,19 +2666,19 @@ emulate_storel (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_subl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_subl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -2660,19 +2695,19 @@ emulate_subl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_subssl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_subssl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -2681,7 +2716,7 @@ emulate_subssl (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadl */
var33 = ptr5[i];
/* 2: subssl */
- var34.i = ORC_CLAMP_SL((orc_int64)var32.i - (orc_int64)var33.i);
+ var34.i = ORC_CLAMP_SL ((orc_int64) var32.i - (orc_int64) var33.i);
/* 3: storel */
ptr0[i] = var34;
}
@@ -2689,19 +2724,19 @@ emulate_subssl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_subusl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_subusl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -2710,7 +2745,9 @@ emulate_subusl (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadl */
var33 = ptr5[i];
/* 2: subusl */
- var34.i = ORC_CLAMP_UL((orc_int64)(orc_uint32)var32.i - (orc_int64)(orc_uint32)var33.i);
+ var34.i =
+ ORC_CLAMP_UL ((orc_int64) (orc_uint32) var32.i -
+ (orc_int64) (orc_uint32) var33.i);
/* 3: storel */
ptr0[i] = var34;
}
@@ -2718,19 +2755,19 @@ emulate_subusl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_xorl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_xorl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -2747,15 +2784,15 @@ emulate_xorl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_loadq (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_loadq (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
orc_union64 var32;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -2768,16 +2805,16 @@ emulate_loadq (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_loadpq (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_loadpq (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
+ orc_union64 *ORC_RESTRICT ptr0;
orc_union64 var32;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
- /* 0: loadpq */
- var32.i = ((orc_union64 *)(ex->src_ptrs[0]))->i;
+ /* 0: loadpq */
+ var32.i = ((orc_union64 *) (ex->src_ptrs[0]))->i;
for (i = 0; i < n; i++) {
/* 1: storeq */
@@ -2787,15 +2824,15 @@ emulate_loadpq (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_storeq (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_storeq (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
orc_union64 var32;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -2808,23 +2845,27 @@ emulate_storeq (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_splatw3q (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_splatw3q (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
orc_union64 var32;
orc_union64 var33;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadq */
var32 = ptr4[i];
/* 1: splatw3q */
- var33.i = ((((orc_uint64)var32.i)>>48) << 48) | ((((orc_uint64)var32.i)>>48)<<32) | ((((orc_uint64)var32.i)>>48) << 16) | ((((orc_uint64)var32.i)>>48));
+ var33.i =
+ ((((orc_uint64) var32.
+ i) >> 48) << 48) | ((((orc_uint64) var32.i) >> 48) << 32) |
+ ((((orc_uint64) var32.i) >> 48) << 16) | ((((orc_uint64) var32.
+ i) >> 48));
/* 2: storeq */
ptr0[i] = var33;
}
@@ -2832,16 +2873,16 @@ emulate_splatw3q (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_copyq (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_copyq (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
orc_union64 var32;
orc_union64 var33;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -2856,19 +2897,19 @@ emulate_copyq (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_cmpeqq (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_cmpeqq (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
- const orc_union64 * ORC_RESTRICT ptr5;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ const orc_union64 *ORC_RESTRICT ptr5;
orc_union64 var32;
orc_union64 var33;
orc_union64 var34;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
- ptr5 = (orc_union64 *)ex->src_ptrs[1];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
+ ptr5 = (orc_union64 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -2885,19 +2926,19 @@ emulate_cmpeqq (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_cmpgtsq (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_cmpgtsq (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
- const orc_union64 * ORC_RESTRICT ptr5;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ const orc_union64 *ORC_RESTRICT ptr5;
orc_union64 var32;
orc_union64 var33;
orc_union64 var34;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
- ptr5 = (orc_union64 *)ex->src_ptrs[1];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
+ ptr5 = (orc_union64 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -2914,19 +2955,19 @@ emulate_cmpgtsq (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_andq (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_andq (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
- const orc_union64 * ORC_RESTRICT ptr5;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ const orc_union64 *ORC_RESTRICT ptr5;
orc_union64 var32;
orc_union64 var33;
orc_union64 var34;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
- ptr5 = (orc_union64 *)ex->src_ptrs[1];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
+ ptr5 = (orc_union64 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -2943,19 +2984,19 @@ emulate_andq (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_andnq (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_andnq (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
- const orc_union64 * ORC_RESTRICT ptr5;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ const orc_union64 *ORC_RESTRICT ptr5;
orc_union64 var32;
orc_union64 var33;
orc_union64 var34;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
- ptr5 = (orc_union64 *)ex->src_ptrs[1];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
+ ptr5 = (orc_union64 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -2972,19 +3013,19 @@ emulate_andnq (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_orq (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_orq (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
- const orc_union64 * ORC_RESTRICT ptr5;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ const orc_union64 *ORC_RESTRICT ptr5;
orc_union64 var32;
orc_union64 var33;
orc_union64 var34;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
- ptr5 = (orc_union64 *)ex->src_ptrs[1];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
+ ptr5 = (orc_union64 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -3001,19 +3042,19 @@ emulate_orq (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_xorq (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_xorq (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
- const orc_union64 * ORC_RESTRICT ptr5;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ const orc_union64 *ORC_RESTRICT ptr5;
orc_union64 var32;
orc_union64 var33;
orc_union64 var34;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
- ptr5 = (orc_union64 *)ex->src_ptrs[1];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
+ ptr5 = (orc_union64 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -3030,19 +3071,19 @@ emulate_xorq (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_addq (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_addq (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
- const orc_union64 * ORC_RESTRICT ptr5;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ const orc_union64 *ORC_RESTRICT ptr5;
orc_union64 var32;
orc_union64 var33;
orc_union64 var34;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
- ptr5 = (orc_union64 *)ex->src_ptrs[1];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
+ ptr5 = (orc_union64 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -3059,19 +3100,19 @@ emulate_addq (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_subq (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_subq (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
- const orc_union64 * ORC_RESTRICT ptr5;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ const orc_union64 *ORC_RESTRICT ptr5;
orc_union64 var32;
orc_union64 var33;
orc_union64 var34;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
- ptr5 = (orc_union64 *)ex->src_ptrs[1];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
+ ptr5 = (orc_union64 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -3088,23 +3129,23 @@ emulate_subq (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_shlq (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_shlq (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
orc_union64 var32;
orc_union64 var33;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadq */
var32 = ptr4[i];
/* 1: shlq */
- var33.i = var32.i << ((orc_union64 *)(ex->src_ptrs[1]))->i;
+ var33.i = var32.i << ((orc_union64 *) (ex->src_ptrs[1]))->i;
/* 2: storeq */
ptr0[i] = var33;
}
@@ -3112,23 +3153,23 @@ emulate_shlq (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_shrsq (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_shrsq (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
orc_union64 var32;
orc_union64 var33;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadq */
var32 = ptr4[i];
/* 1: shrsq */
- var33.i = var32.i >> ((orc_union64 *)(ex->src_ptrs[1]))->i;
+ var33.i = var32.i >> ((orc_union64 *) (ex->src_ptrs[1]))->i;
/* 2: storeq */
ptr0[i] = var33;
}
@@ -3136,23 +3177,23 @@ emulate_shrsq (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_shruq (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_shruq (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
orc_union64 var32;
orc_union64 var33;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadq */
var32 = ptr4[i];
/* 1: shruq */
- var33.i = ((orc_uint64)var32.i) >> ((orc_union64 *)(ex->src_ptrs[1]))->i;
+ var33.i = ((orc_uint64) var32.i) >> ((orc_union64 *) (ex->src_ptrs[1]))->i;
/* 2: storeq */
ptr0[i] = var33;
}
@@ -3160,16 +3201,16 @@ emulate_shruq (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_convsbw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_convsbw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
orc_int8 var32;
orc_union16 var33;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -3184,23 +3225,23 @@ emulate_convsbw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_convubw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_convubw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
orc_int8 var32;
orc_union16 var33;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadb */
var32 = ptr4[i];
/* 1: convubw */
- var33.i = (orc_uint8)var32;
+ var33.i = (orc_uint8) var32;
/* 2: storew */
ptr0[i] = var33;
}
@@ -3208,23 +3249,23 @@ emulate_convubw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_splatbw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_splatbw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
orc_int8 var32;
orc_union16 var33;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadb */
var32 = ptr4[i];
/* 1: splatbw */
- var33.i = ((var32&0xff) << 8) | (var32&0xff);
+ var33.i = ((var32 & 0xff) << 8) | (var32 & 0xff);
/* 2: storew */
ptr0[i] = var33;
}
@@ -3232,23 +3273,25 @@ emulate_splatbw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_splatbl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_splatbl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
orc_int8 var32;
orc_union32 var33;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadb */
var32 = ptr4[i];
/* 1: splatbl */
- var33.i = ((var32&0xff) << 24) | ((var32&0xff)<<16) | ((var32&0xff) << 8) | (var32&0xff);
+ var33.i =
+ ((var32 & 0xff) << 24) | ((var32 & 0xff) << 16) | ((var32 & 0xff) << 8)
+ | (var32 & 0xff);
/* 2: storel */
ptr0[i] = var33;
}
@@ -3256,16 +3299,16 @@ emulate_splatbl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_convswl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_convswl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
orc_union16 var32;
orc_union32 var33;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -3280,23 +3323,23 @@ emulate_convswl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_convuwl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_convuwl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
orc_union16 var32;
orc_union32 var33;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadw */
var32 = ptr4[i];
/* 1: convuwl */
- var33.i = (orc_uint16)var32.i;
+ var33.i = (orc_uint16) var32.i;
/* 2: storel */
ptr0[i] = var33;
}
@@ -3304,16 +3347,16 @@ emulate_convuwl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_convslq (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_convslq (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
orc_union32 var32;
orc_union64 var33;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -3328,23 +3371,23 @@ emulate_convslq (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_convulq (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_convulq (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
orc_union32 var32;
orc_union64 var33;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadl */
var32 = ptr4[i];
/* 1: convulq */
- var33.i = (orc_uint32)var32.i;
+ var33.i = (orc_uint32) var32.i;
/* 2: storeq */
ptr0[i] = var33;
}
@@ -3352,16 +3395,16 @@ emulate_convulq (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_convwb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_convwb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
orc_union16 var32;
orc_int8 var33;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -3376,23 +3419,23 @@ emulate_convwb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_convhwb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_convhwb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
orc_union16 var32;
orc_int8 var33;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadw */
var32 = ptr4[i];
/* 1: convhwb */
- var33 = ((orc_uint16)var32.i)>>8;
+ var33 = ((orc_uint16) var32.i) >> 8;
/* 2: storeb */
ptr0[i] = var33;
}
@@ -3400,23 +3443,23 @@ emulate_convhwb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_convssswb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_convssswb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
orc_union16 var32;
orc_int8 var33;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadw */
var32 = ptr4[i];
/* 1: convssswb */
- var33 = ORC_CLAMP_SB(var32.i);
+ var33 = ORC_CLAMP_SB (var32.i);
/* 2: storeb */
ptr0[i] = var33;
}
@@ -3424,23 +3467,23 @@ emulate_convssswb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_convsuswb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_convsuswb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
orc_union16 var32;
orc_int8 var33;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadw */
var32 = ptr4[i];
/* 1: convsuswb */
- var33 = ORC_CLAMP_UB(var32.i);
+ var33 = ORC_CLAMP_UB (var32.i);
/* 2: storeb */
ptr0[i] = var33;
}
@@ -3448,23 +3491,23 @@ emulate_convsuswb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_convusswb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_convusswb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
orc_union16 var32;
orc_int8 var33;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadw */
var32 = ptr4[i];
/* 1: convusswb */
- var33 = ORC_MIN((orc_uint16)var32.i,ORC_SB_MAX);
+ var33 = ORC_MIN ((orc_uint16) var32.i, ORC_SB_MAX);
/* 2: storeb */
ptr0[i] = var33;
}
@@ -3472,23 +3515,23 @@ emulate_convusswb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_convuuswb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_convuuswb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
orc_union16 var32;
orc_int8 var33;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadw */
var32 = ptr4[i];
/* 1: convuuswb */
- var33 = ORC_MIN((orc_uint16)var32.i,ORC_UB_MAX);
+ var33 = ORC_MIN ((orc_uint16) var32.i, ORC_UB_MAX);
/* 2: storeb */
ptr0[i] = var33;
}
@@ -3496,16 +3539,16 @@ emulate_convuuswb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_convlw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_convlw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
orc_union32 var32;
orc_union16 var33;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -3520,23 +3563,23 @@ emulate_convlw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_convhlw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_convhlw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
orc_union32 var32;
orc_union16 var33;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadl */
var32 = ptr4[i];
/* 1: convhlw */
- var33.i = ((orc_uint32)var32.i)>>16;
+ var33.i = ((orc_uint32) var32.i) >> 16;
/* 2: storew */
ptr0[i] = var33;
}
@@ -3544,23 +3587,23 @@ emulate_convhlw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_convssslw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_convssslw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
orc_union32 var32;
orc_union16 var33;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadl */
var32 = ptr4[i];
/* 1: convssslw */
- var33.i = ORC_CLAMP_SW(var32.i);
+ var33.i = ORC_CLAMP_SW (var32.i);
/* 2: storew */
ptr0[i] = var33;
}
@@ -3568,23 +3611,23 @@ emulate_convssslw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_convsuslw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_convsuslw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
orc_union32 var32;
orc_union16 var33;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadl */
var32 = ptr4[i];
/* 1: convsuslw */
- var33.i = ORC_CLAMP_UW(var32.i);
+ var33.i = ORC_CLAMP_UW (var32.i);
/* 2: storew */
ptr0[i] = var33;
}
@@ -3592,23 +3635,23 @@ emulate_convsuslw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_convusslw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_convusslw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
orc_union32 var32;
orc_union16 var33;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadl */
var32 = ptr4[i];
/* 1: convusslw */
- var33.i = ORC_CLAMP((orc_uint32)var32.i,0,ORC_SW_MAX);
+ var33.i = ORC_CLAMP ((orc_uint32) var32.i, 0, ORC_SW_MAX);
/* 2: storew */
ptr0[i] = var33;
}
@@ -3616,23 +3659,23 @@ emulate_convusslw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_convuuslw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_convuuslw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
orc_union32 var32;
orc_union16 var33;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadl */
var32 = ptr4[i];
/* 1: convuuslw */
- var33.i = ORC_CLAMP_UW((orc_uint32)var32.i);
+ var33.i = ORC_CLAMP_UW ((orc_uint32) var32.i);
/* 2: storew */
ptr0[i] = var33;
}
@@ -3640,16 +3683,16 @@ emulate_convuuslw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_convql (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_convql (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
orc_union64 var32;
orc_union32 var33;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -3664,23 +3707,23 @@ emulate_convql (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_convsssql (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_convsssql (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
orc_union64 var32;
orc_union32 var33;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadq */
var32 = ptr4[i];
/* 1: convsssql */
- var33.i = ORC_CLAMP_SL(var32.i);
+ var33.i = ORC_CLAMP_SL (var32.i);
/* 2: storel */
ptr0[i] = var33;
}
@@ -3688,23 +3731,23 @@ emulate_convsssql (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_convsusql (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_convsusql (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
orc_union64 var32;
orc_union32 var33;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadq */
var32 = ptr4[i];
/* 1: convsusql */
- var33.i = ORC_CLAMP_UL(var32.i);
+ var33.i = ORC_CLAMP_UL (var32.i);
/* 2: storel */
ptr0[i] = var33;
}
@@ -3712,23 +3755,23 @@ emulate_convsusql (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_convussql (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_convussql (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
orc_union64 var32;
orc_union32 var33;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadq */
var32 = ptr4[i];
/* 1: convussql */
- var33.i = ORC_CLAMP_SL((orc_uint64)var32.i);
+ var33.i = ORC_CLAMP_SL ((orc_uint64) var32.i);
/* 2: storel */
ptr0[i] = var33;
}
@@ -3736,23 +3779,23 @@ emulate_convussql (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_convuusql (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_convuusql (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
orc_union64 var32;
orc_union32 var33;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadq */
var32 = ptr4[i];
/* 1: convuusql */
- var33.i = ORC_CLAMP_UL((orc_uint64)var32.i);
+ var33.i = ORC_CLAMP_UL ((orc_uint64) var32.i);
/* 2: storel */
ptr0[i] = var33;
}
@@ -3760,19 +3803,19 @@ emulate_convuusql (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_mulsbw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_mulsbw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
- const orc_int8 * ORC_RESTRICT ptr5;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
orc_int8 var32;
orc_int8 var33;
orc_union16 var34;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
- ptr5 = (orc_int8 *)ex->src_ptrs[1];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
+ ptr5 = (orc_int8 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -3789,19 +3832,19 @@ emulate_mulsbw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_mulubw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_mulubw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
- const orc_int8 * ORC_RESTRICT ptr5;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
orc_int8 var32;
orc_int8 var33;
orc_union16 var34;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
- ptr5 = (orc_int8 *)ex->src_ptrs[1];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
+ ptr5 = (orc_int8 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -3810,7 +3853,7 @@ emulate_mulubw (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadb */
var33 = ptr5[i];
/* 2: mulubw */
- var34.i = ((orc_uint8)var32) * ((orc_uint8)var33);
+ var34.i = ((orc_uint8) var32) * ((orc_uint8) var33);
/* 3: storew */
ptr0[i] = var34;
}
@@ -3818,19 +3861,19 @@ emulate_mulubw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_mulswl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_mulswl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
- const orc_union16 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
orc_union16 var32;
orc_union16 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
- ptr5 = (orc_union16 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
+ ptr5 = (orc_union16 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -3847,19 +3890,19 @@ emulate_mulswl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_muluwl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_muluwl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
- const orc_union16 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
orc_union16 var32;
orc_union16 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
- ptr5 = (orc_union16 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
+ ptr5 = (orc_union16 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -3868,7 +3911,7 @@ emulate_muluwl (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadw */
var33 = ptr5[i];
/* 2: muluwl */
- var34.i = ((orc_uint16)var32.i) * ((orc_uint16)var33.i);
+ var34.i = ((orc_uint16) var32.i) * ((orc_uint16) var33.i);
/* 3: storel */
ptr0[i] = var34;
}
@@ -3876,19 +3919,19 @@ emulate_muluwl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_mulslq (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_mulslq (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union64 var34;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -3897,7 +3940,7 @@ emulate_mulslq (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadl */
var33 = ptr5[i];
/* 2: mulslq */
- var34.i = ((orc_int64)var32.i) * ((orc_int64)var33.i);
+ var34.i = ((orc_int64) var32.i) * ((orc_int64) var33.i);
/* 3: storeq */
ptr0[i] = var34;
}
@@ -3905,19 +3948,19 @@ emulate_mulslq (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_mululq (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_mululq (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union64 var34;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -3926,7 +3969,9 @@ emulate_mululq (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadl */
var33 = ptr5[i];
/* 2: mululq */
- var34.i = ((orc_uint64)((orc_uint32)var32.i)) * ((orc_uint64)((orc_uint32)var33.i));
+ var34.i =
+ ((orc_uint64) ((orc_uint32) var32.i)) *
+ ((orc_uint64) ((orc_uint32) var33.i));
/* 3: storeq */
ptr0[i] = var34;
}
@@ -3934,14 +3979,14 @@ emulate_mululq (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_accw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_accw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- const orc_union16 * ORC_RESTRICT ptr4;
- orc_union16 var12 = { 0 };
+ const orc_union16 *ORC_RESTRICT ptr4;
+ orc_union16 var12 = { 0 };
orc_union16 var32;
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -3950,19 +3995,20 @@ emulate_accw (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: accw */
var12.i = var12.i + var32.i;
}
- ((orc_union32 *)ex->dest_ptrs[0])->i = (var12.i + ((orc_union32 *)ex->dest_ptrs[0])->i) & 0xffff;
+ ((orc_union32 *) ex->dest_ptrs[0])->i =
+ (var12.i + ((orc_union32 *) ex->dest_ptrs[0])->i) & 0xffff;
}
void
-emulate_accl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_accl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- const orc_union32 * ORC_RESTRICT ptr4;
- orc_union32 var12 = { 0 };
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var12 = { 0 };
orc_union32 var32;
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -3971,22 +4017,22 @@ emulate_accl (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: accl */
var12.i = var12.i + var32.i;
}
- ((orc_union32 *)ex->dest_ptrs[0])->i += var12.i;
+ ((orc_union32 *) ex->dest_ptrs[0])->i += var12.i;
}
void
-emulate_accsadubl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_accsadubl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- const orc_int8 * ORC_RESTRICT ptr4;
- const orc_int8 * ORC_RESTRICT ptr5;
- orc_union32 var12 = { 0 };
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
+ orc_union32 var12 = { 0 };
orc_int8 var32;
orc_int8 var33;
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
- ptr5 = (orc_int8 *)ex->src_ptrs[1];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
+ ptr5 = (orc_int8 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -3995,30 +4041,32 @@ emulate_accsadubl (OrcOpcodeExecutor *ex, int offset, int n)
/* 1: loadb */
var33 = ptr5[i];
/* 2: accsadubl */
- var12.i = var12.i + ORC_ABS((orc_int32)(orc_uint8)var32 - (orc_int32)(orc_uint8)var33);
+ var12.i =
+ var12.i + ORC_ABS ((orc_int32) (orc_uint8) var32 -
+ (orc_int32) (orc_uint8) var33);
}
- ((orc_union32 *)ex->dest_ptrs[0])->i += var12.i;
+ ((orc_union32 *) ex->dest_ptrs[0])->i += var12.i;
}
void
-emulate_swapw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_swapw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
orc_union16 var32;
orc_union16 var33;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadw */
var32 = ptr4[i];
/* 1: swapw */
- var33.i = ORC_SWAP_W(var32.i);
+ var33.i = ORC_SWAP_W (var32.i);
/* 2: storew */
ptr0[i] = var33;
}
@@ -4026,23 +4074,23 @@ emulate_swapw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_swapl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_swapl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
orc_union32 var32;
orc_union32 var33;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadl */
var32 = ptr4[i];
/* 1: swapl */
- var33.i = ORC_SWAP_L(var32.i);
+ var33.i = ORC_SWAP_L (var32.i);
/* 2: storel */
ptr0[i] = var33;
}
@@ -4050,23 +4098,23 @@ emulate_swapl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_swapwl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_swapwl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
orc_union32 var32;
orc_union32 var33;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadl */
var32 = ptr4[i];
/* 1: swapwl */
- var33.i = ((var32.i&0x0000ffff) << 16) | ((var32.i&0xffff0000) >> 16);
+ var33.i = ((var32.i & 0x0000ffff) << 16) | ((var32.i & 0xffff0000) >> 16);
/* 2: storel */
ptr0[i] = var33;
}
@@ -4074,23 +4122,23 @@ emulate_swapwl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_swapq (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_swapq (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
orc_union64 var32;
orc_union64 var33;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadq */
var32 = ptr4[i];
/* 1: swapq */
- var33.i = ORC_SWAP_Q(var32.i);
+ var33.i = ORC_SWAP_Q (var32.i);
/* 2: storeq */
ptr0[i] = var33;
}
@@ -4098,23 +4146,25 @@ emulate_swapq (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_swaplq (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_swaplq (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
orc_union64 var32;
orc_union64 var33;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadq */
var32 = ptr4[i];
/* 1: swaplq */
- var33.i = (ORC_UINT64_C(var32.i&0x00000000ffffffff) << 32) | (ORC_UINT64_C(var32.i&0xffffffff00000000) >> 32);
+ var33.i =
+ (ORC_UINT64_C (var32.i & 0x00000000ffffffff) << 32) |
+ (ORC_UINT64_C (var32.i & 0xffffffff00000000) >> 32);
/* 2: storeq */
ptr0[i] = var33;
}
@@ -4122,16 +4172,16 @@ emulate_swaplq (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_select0wb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_select0wb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
orc_union16 var32;
orc_int8 var33;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -4139,9 +4189,9 @@ emulate_select0wb (OrcOpcodeExecutor *ex, int offset, int n)
var32 = ptr4[i];
/* 1: select0wb */
{
- orc_union16 _src;
- _src.i = var32.i;
- var33 = _src.x2[0];
+ orc_union16 _src;
+ _src.i = var32.i;
+ var33 = _src.x2[0];
}
/* 2: storeb */
ptr0[i] = var33;
@@ -4150,16 +4200,16 @@ emulate_select0wb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_select1wb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_select1wb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
orc_union16 var32;
orc_int8 var33;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -4167,9 +4217,9 @@ emulate_select1wb (OrcOpcodeExecutor *ex, int offset, int n)
var32 = ptr4[i];
/* 1: select1wb */
{
- orc_union16 _src;
- _src.i = var32.i;
- var33 = _src.x2[1];
+ orc_union16 _src;
+ _src.i = var32.i;
+ var33 = _src.x2[1];
}
/* 2: storeb */
ptr0[i] = var33;
@@ -4178,16 +4228,16 @@ emulate_select1wb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_select0lw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_select0lw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
orc_union32 var32;
orc_union16 var33;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -4195,9 +4245,9 @@ emulate_select0lw (OrcOpcodeExecutor *ex, int offset, int n)
var32 = ptr4[i];
/* 1: select0lw */
{
- orc_union32 _src;
- _src.i = var32.i;
- var33.i = _src.x2[0];
+ orc_union32 _src;
+ _src.i = var32.i;
+ var33.i = _src.x2[0];
}
/* 2: storew */
ptr0[i] = var33;
@@ -4206,16 +4256,16 @@ emulate_select0lw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_select1lw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_select1lw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
orc_union32 var32;
orc_union16 var33;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -4223,9 +4273,9 @@ emulate_select1lw (OrcOpcodeExecutor *ex, int offset, int n)
var32 = ptr4[i];
/* 1: select1lw */
{
- orc_union32 _src;
- _src.i = var32.i;
- var33.i = _src.x2[1];
+ orc_union32 _src;
+ _src.i = var32.i;
+ var33.i = _src.x2[1];
}
/* 2: storew */
ptr0[i] = var33;
@@ -4234,16 +4284,16 @@ emulate_select1lw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_select0ql (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_select0ql (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
orc_union64 var32;
orc_union32 var33;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -4251,9 +4301,9 @@ emulate_select0ql (OrcOpcodeExecutor *ex, int offset, int n)
var32 = ptr4[i];
/* 1: select0ql */
{
- orc_union64 _src;
- _src.i = var32.i;
- var33.i = _src.x2[0];
+ orc_union64 _src;
+ _src.i = var32.i;
+ var33.i = _src.x2[0];
}
/* 2: storel */
ptr0[i] = var33;
@@ -4262,16 +4312,16 @@ emulate_select0ql (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_select1ql (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_select1ql (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
orc_union64 var32;
orc_union32 var33;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -4279,9 +4329,9 @@ emulate_select1ql (OrcOpcodeExecutor *ex, int offset, int n)
var32 = ptr4[i];
/* 1: select1ql */
{
- orc_union64 _src;
- _src.i = var32.i;
- var33.i = _src.x2[1];
+ orc_union64 _src;
+ _src.i = var32.i;
+ var33.i = _src.x2[1];
}
/* 2: storel */
ptr0[i] = var33;
@@ -4290,19 +4340,19 @@ emulate_select1ql (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_mergelq (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_mergelq (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union64 var34;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -4312,10 +4362,10 @@ emulate_mergelq (OrcOpcodeExecutor *ex, int offset, int n)
var33 = ptr5[i];
/* 2: mergelq */
{
- orc_union64 _dest;
- _dest.x2[0] = var32.i;
- _dest.x2[1] = var33.i;
- var34.i = _dest.i;
+ orc_union64 _dest;
+ _dest.x2[0] = var32.i;
+ _dest.x2[1] = var33.i;
+ var34.i = _dest.i;
}
/* 3: storeq */
ptr0[i] = var34;
@@ -4324,19 +4374,19 @@ emulate_mergelq (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_mergewl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_mergewl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union16 * ORC_RESTRICT ptr4;
- const orc_union16 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
orc_union16 var32;
orc_union16 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
- ptr5 = (orc_union16 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
+ ptr5 = (orc_union16 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -4346,10 +4396,10 @@ emulate_mergewl (OrcOpcodeExecutor *ex, int offset, int n)
var33 = ptr5[i];
/* 2: mergewl */
{
- orc_union32 _dest;
- _dest.x2[0] = var32.i;
- _dest.x2[1] = var33.i;
- var34.i = _dest.i;
+ orc_union32 _dest;
+ _dest.x2[0] = var32.i;
+ _dest.x2[1] = var33.i;
+ var34.i = _dest.i;
}
/* 3: storel */
ptr0[i] = var34;
@@ -4358,19 +4408,19 @@ emulate_mergewl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_mergebw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_mergebw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
- const orc_int8 * ORC_RESTRICT ptr5;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
orc_int8 var32;
orc_int8 var33;
orc_union16 var34;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr4 = (orc_int8 *)ex->src_ptrs[0];
- ptr5 = (orc_int8 *)ex->src_ptrs[1];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr4 = (orc_int8 *) ex->src_ptrs[0];
+ ptr5 = (orc_int8 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -4380,10 +4430,10 @@ emulate_mergebw (OrcOpcodeExecutor *ex, int offset, int n)
var33 = ptr5[i];
/* 2: mergebw */
{
- orc_union16 _dest;
- _dest.x2[0] = var32;
- _dest.x2[1] = var33;
- var34.i = _dest.i;
+ orc_union16 _dest;
+ _dest.x2[0] = var32;
+ _dest.x2[1] = var33;
+ var34.i = _dest.i;
}
/* 3: storew */
ptr0[i] = var34;
@@ -4392,19 +4442,19 @@ emulate_mergebw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_splitql (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_splitql (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- orc_union32 * ORC_RESTRICT ptr1;
- const orc_union64 * ORC_RESTRICT ptr4;
+ orc_union32 *ORC_RESTRICT ptr0;
+ orc_union32 *ORC_RESTRICT ptr1;
+ const orc_union64 *ORC_RESTRICT ptr4;
orc_union64 var32;
orc_union32 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr1 = (orc_union32 *)ex->dest_ptrs[1];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr1 = (orc_union32 *) ex->dest_ptrs[1];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -4412,10 +4462,10 @@ emulate_splitql (OrcOpcodeExecutor *ex, int offset, int n)
var32 = ptr4[i];
/* 1: splitql */
{
- orc_union64 _src;
- _src.i = var32.i;
- var33.i = _src.x2[1];
- var34.i = _src.x2[0];
+ orc_union64 _src;
+ _src.i = var32.i;
+ var33.i = _src.x2[1];
+ var34.i = _src.x2[0];
}
/* 2: storel */
ptr0[i] = var33;
@@ -4426,19 +4476,19 @@ emulate_splitql (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_splitlw (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_splitlw (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union16 * ORC_RESTRICT ptr0;
- orc_union16 * ORC_RESTRICT ptr1;
- const orc_union32 * ORC_RESTRICT ptr4;
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_union16 *ORC_RESTRICT ptr1;
+ const orc_union32 *ORC_RESTRICT ptr4;
orc_union32 var32;
orc_union16 var33;
orc_union16 var34;
- ptr0 = (orc_union16 *)ex->dest_ptrs[0];
- ptr1 = (orc_union16 *)ex->dest_ptrs[1];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
+ ptr0 = (orc_union16 *) ex->dest_ptrs[0];
+ ptr1 = (orc_union16 *) ex->dest_ptrs[1];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -4446,10 +4496,10 @@ emulate_splitlw (OrcOpcodeExecutor *ex, int offset, int n)
var32 = ptr4[i];
/* 1: splitlw */
{
- orc_union32 _src;
- _src.i = var32.i;
- var33.i = _src.x2[1];
- var34.i = _src.x2[0];
+ orc_union32 _src;
+ _src.i = var32.i;
+ var33.i = _src.x2[1];
+ var34.i = _src.x2[0];
}
/* 2: storew */
ptr0[i] = var33;
@@ -4460,19 +4510,19 @@ emulate_splitlw (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_splitwb (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_splitwb (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- orc_int8 * ORC_RESTRICT ptr1;
- const orc_union16 * ORC_RESTRICT ptr4;
+ orc_int8 *ORC_RESTRICT ptr0;
+ orc_int8 *ORC_RESTRICT ptr1;
+ const orc_union16 *ORC_RESTRICT ptr4;
orc_union16 var32;
orc_int8 var33;
orc_int8 var34;
- ptr0 = (orc_int8 *)ex->dest_ptrs[0];
- ptr1 = (orc_int8 *)ex->dest_ptrs[1];
- ptr4 = (orc_union16 *)ex->src_ptrs[0];
+ ptr0 = (orc_int8 *) ex->dest_ptrs[0];
+ ptr1 = (orc_int8 *) ex->dest_ptrs[1];
+ ptr4 = (orc_union16 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -4480,10 +4530,10 @@ emulate_splitwb (OrcOpcodeExecutor *ex, int offset, int n)
var32 = ptr4[i];
/* 1: splitwb */
{
- orc_union16 _src;
- _src.i = var32.i;
- var33 = _src.x2[1];
- var34 = _src.x2[0];
+ orc_union16 _src;
+ _src.i = var32.i;
+ var33 = _src.x2[1];
+ var34 = _src.x2[0];
}
/* 2: storeb */
ptr0[i] = var33;
@@ -4494,19 +4544,19 @@ emulate_splitwb (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_addf (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_addf (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -4516,13 +4566,13 @@ emulate_addf (OrcOpcodeExecutor *ex, int offset, int n)
var33 = ptr5[i];
/* 2: addf */
{
- orc_union32 _src1;
- orc_union32 _src2;
- orc_union32 _dest1;
- _src1.i = ORC_DENORMAL(var32.i);
- _src2.i = ORC_DENORMAL(var33.i);
- _dest1.f = _src1.f + _src2.f;
- var34.i = ORC_DENORMAL(_dest1.i);
+ orc_union32 _src1;
+ orc_union32 _src2;
+ orc_union32 _dest1;
+ _src1.i = ORC_DENORMAL (var32.i);
+ _src2.i = ORC_DENORMAL (var33.i);
+ _dest1.f = _src1.f + _src2.f;
+ var34.i = ORC_DENORMAL (_dest1.i);
}
/* 3: storel */
ptr0[i] = var34;
@@ -4531,19 +4581,19 @@ emulate_addf (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_subf (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_subf (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -4553,13 +4603,13 @@ emulate_subf (OrcOpcodeExecutor *ex, int offset, int n)
var33 = ptr5[i];
/* 2: subf */
{
- orc_union32 _src1;
- orc_union32 _src2;
- orc_union32 _dest1;
- _src1.i = ORC_DENORMAL(var32.i);
- _src2.i = ORC_DENORMAL(var33.i);
- _dest1.f = _src1.f - _src2.f;
- var34.i = ORC_DENORMAL(_dest1.i);
+ orc_union32 _src1;
+ orc_union32 _src2;
+ orc_union32 _dest1;
+ _src1.i = ORC_DENORMAL (var32.i);
+ _src2.i = ORC_DENORMAL (var33.i);
+ _dest1.f = _src1.f - _src2.f;
+ var34.i = ORC_DENORMAL (_dest1.i);
}
/* 3: storel */
ptr0[i] = var34;
@@ -4568,19 +4618,19 @@ emulate_subf (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_mulf (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_mulf (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -4590,13 +4640,13 @@ emulate_mulf (OrcOpcodeExecutor *ex, int offset, int n)
var33 = ptr5[i];
/* 2: mulf */
{
- orc_union32 _src1;
- orc_union32 _src2;
- orc_union32 _dest1;
- _src1.i = ORC_DENORMAL(var32.i);
- _src2.i = ORC_DENORMAL(var33.i);
- _dest1.f = _src1.f * _src2.f;
- var34.i = ORC_DENORMAL(_dest1.i);
+ orc_union32 _src1;
+ orc_union32 _src2;
+ orc_union32 _dest1;
+ _src1.i = ORC_DENORMAL (var32.i);
+ _src2.i = ORC_DENORMAL (var33.i);
+ _dest1.f = _src1.f * _src2.f;
+ var34.i = ORC_DENORMAL (_dest1.i);
}
/* 3: storel */
ptr0[i] = var34;
@@ -4605,19 +4655,19 @@ emulate_mulf (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_divf (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_divf (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -4627,13 +4677,13 @@ emulate_divf (OrcOpcodeExecutor *ex, int offset, int n)
var33 = ptr5[i];
/* 2: divf */
{
- orc_union32 _src1;
- orc_union32 _src2;
- orc_union32 _dest1;
- _src1.i = ORC_DENORMAL(var32.i);
- _src2.i = ORC_DENORMAL(var33.i);
- _dest1.f = _src1.f / _src2.f;
- var34.i = ORC_DENORMAL(_dest1.i);
+ orc_union32 _src1;
+ orc_union32 _src2;
+ orc_union32 _dest1;
+ _src1.i = ORC_DENORMAL (var32.i);
+ _src2.i = ORC_DENORMAL (var33.i);
+ _dest1.f = _src1.f / _src2.f;
+ var34.i = ORC_DENORMAL (_dest1.i);
}
/* 3: storel */
ptr0[i] = var34;
@@ -4642,16 +4692,16 @@ emulate_divf (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_sqrtf (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_sqrtf (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
orc_union32 var32;
orc_union32 var33;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -4659,11 +4709,11 @@ emulate_sqrtf (OrcOpcodeExecutor *ex, int offset, int n)
var32 = ptr4[i];
/* 1: sqrtf */
{
- orc_union32 _src1;
- orc_union32 _dest1;
- _src1.i = ORC_DENORMAL(var32.i);
- _dest1.f = sqrt(_src1.f);
- var33.i = ORC_DENORMAL(_dest1.i);
+ orc_union32 _src1;
+ orc_union32 _dest1;
+ _src1.i = ORC_DENORMAL (var32.i);
+ _dest1.f = sqrt (_src1.f);
+ var33.i = ORC_DENORMAL (_dest1.i);
}
/* 2: storel */
ptr0[i] = var33;
@@ -4672,19 +4722,19 @@ emulate_sqrtf (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_maxf (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_maxf (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -4696,11 +4746,14 @@ emulate_maxf (OrcOpcodeExecutor *ex, int offset, int n)
{
orc_union32 _src1;
orc_union32 _src2;
- _src1.i = ORC_DENORMAL(var32.i);
- _src2.i = ORC_DENORMAL(var33.i);
- if (ORC_ISNAN(_src1.i)) var34.i = _src1.i;
- else if (ORC_ISNAN(_src2.i)) var34.i = _src2.i;
- else var34.i = (_src1.f > _src2.f) ? _src1.i : _src2.i;
+ _src1.i = ORC_DENORMAL (var32.i);
+ _src2.i = ORC_DENORMAL (var33.i);
+ if (ORC_ISNAN (_src1.i))
+ var34.i = _src1.i;
+ else if (ORC_ISNAN (_src2.i))
+ var34.i = _src2.i;
+ else
+ var34.i = (_src1.f > _src2.f) ? _src1.i : _src2.i;
}
/* 3: storel */
ptr0[i] = var34;
@@ -4709,19 +4762,19 @@ emulate_maxf (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_minf (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_minf (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -4733,11 +4786,14 @@ emulate_minf (OrcOpcodeExecutor *ex, int offset, int n)
{
orc_union32 _src1;
orc_union32 _src2;
- _src1.i = ORC_DENORMAL(var32.i);
- _src2.i = ORC_DENORMAL(var33.i);
- if (ORC_ISNAN(_src1.i)) var34.i = _src1.i;
- else if (ORC_ISNAN(_src2.i)) var34.i = _src2.i;
- else var34.i = (_src1.f < _src2.f) ? _src1.i : _src2.i;
+ _src1.i = ORC_DENORMAL (var32.i);
+ _src2.i = ORC_DENORMAL (var33.i);
+ if (ORC_ISNAN (_src1.i))
+ var34.i = _src1.i;
+ else if (ORC_ISNAN (_src2.i))
+ var34.i = _src2.i;
+ else
+ var34.i = (_src1.f < _src2.f) ? _src1.i : _src2.i;
}
/* 3: storel */
ptr0[i] = var34;
@@ -4746,19 +4802,19 @@ emulate_minf (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_cmpeqf (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_cmpeqf (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -4768,11 +4824,11 @@ emulate_cmpeqf (OrcOpcodeExecutor *ex, int offset, int n)
var33 = ptr5[i];
/* 2: cmpeqf */
{
- orc_union32 _src1;
- orc_union32 _src2;
- _src1.i = ORC_DENORMAL(var32.i);
- _src2.i = ORC_DENORMAL(var33.i);
- var34.i = (_src1.f == _src2.f) ? (~0) : 0;
+ orc_union32 _src1;
+ orc_union32 _src2;
+ _src1.i = ORC_DENORMAL (var32.i);
+ _src2.i = ORC_DENORMAL (var33.i);
+ var34.i = (_src1.f == _src2.f) ? (~0) : 0;
}
/* 3: storel */
ptr0[i] = var34;
@@ -4781,19 +4837,19 @@ emulate_cmpeqf (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_cmpltf (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_cmpltf (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -4803,11 +4859,11 @@ emulate_cmpltf (OrcOpcodeExecutor *ex, int offset, int n)
var33 = ptr5[i];
/* 2: cmpltf */
{
- orc_union32 _src1;
- orc_union32 _src2;
- _src1.i = ORC_DENORMAL(var32.i);
- _src2.i = ORC_DENORMAL(var33.i);
- var34.i = (_src1.f < _src2.f) ? (~0) : 0;
+ orc_union32 _src1;
+ orc_union32 _src2;
+ _src1.i = ORC_DENORMAL (var32.i);
+ _src2.i = ORC_DENORMAL (var33.i);
+ var34.i = (_src1.f < _src2.f) ? (~0) : 0;
}
/* 3: storel */
ptr0[i] = var34;
@@ -4816,19 +4872,19 @@ emulate_cmpltf (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_cmplef (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_cmplef (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
- const orc_union32 * ORC_RESTRICT ptr5;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
orc_union32 var32;
orc_union32 var33;
orc_union32 var34;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
- ptr5 = (orc_union32 *)ex->src_ptrs[1];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
+ ptr5 = (orc_union32 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -4838,11 +4894,11 @@ emulate_cmplef (OrcOpcodeExecutor *ex, int offset, int n)
var33 = ptr5[i];
/* 2: cmplef */
{
- orc_union32 _src1;
- orc_union32 _src2;
- _src1.i = ORC_DENORMAL(var32.i);
- _src2.i = ORC_DENORMAL(var33.i);
- var34.i = (_src1.f <= _src2.f) ? (~0) : 0;
+ orc_union32 _src1;
+ orc_union32 _src2;
+ _src1.i = ORC_DENORMAL (var32.i);
+ _src2.i = ORC_DENORMAL (var33.i);
+ var34.i = (_src1.f <= _src2.f) ? (~0) : 0;
}
/* 3: storel */
ptr0[i] = var34;
@@ -4851,16 +4907,16 @@ emulate_cmplef (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_convfl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_convfl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
orc_union32 var32;
orc_union32 var33;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -4868,10 +4924,11 @@ emulate_convfl (OrcOpcodeExecutor *ex, int offset, int n)
var32 = ptr4[i];
/* 1: convfl */
{
- int tmp;
- tmp = (int)var32.f;
- if (tmp == 0x80000000 && !(var32.i&0x80000000)) tmp = 0x7fffffff;
- var33.i = tmp;
+ int tmp;
+ tmp = (int) var32.f;
+ if (tmp == 0x80000000 && !(var32.i & 0x80000000))
+ tmp = 0x7fffffff;
+ var33.i = tmp;
}
/* 2: storel */
ptr0[i] = var33;
@@ -4880,23 +4937,23 @@ emulate_convfl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_convlf (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_convlf (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
orc_union32 var32;
orc_union32 var33;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadl */
var32 = ptr4[i];
/* 1: convlf */
- var33.f = var32.i;
+ var33.f = var32.i;
/* 2: storel */
ptr0[i] = var33;
}
@@ -4904,19 +4961,19 @@ emulate_convlf (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_addd (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_addd (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
- const orc_union64 * ORC_RESTRICT ptr5;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ const orc_union64 *ORC_RESTRICT ptr5;
orc_union64 var32;
orc_union64 var33;
orc_union64 var34;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
- ptr5 = (orc_union64 *)ex->src_ptrs[1];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
+ ptr5 = (orc_union64 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -4926,13 +4983,13 @@ emulate_addd (OrcOpcodeExecutor *ex, int offset, int n)
var33 = ptr5[i];
/* 2: addd */
{
- orc_union64 _src1;
- orc_union64 _src2;
- orc_union64 _dest1;
- _src1.i = ORC_DENORMAL_DOUBLE(var32.i);
- _src2.i = ORC_DENORMAL_DOUBLE(var33.i);
- _dest1.f = _src1.f + _src2.f;
- var34.i = ORC_DENORMAL_DOUBLE(_dest1.i);
+ orc_union64 _src1;
+ orc_union64 _src2;
+ orc_union64 _dest1;
+ _src1.i = ORC_DENORMAL_DOUBLE (var32.i);
+ _src2.i = ORC_DENORMAL_DOUBLE (var33.i);
+ _dest1.f = _src1.f + _src2.f;
+ var34.i = ORC_DENORMAL_DOUBLE (_dest1.i);
}
/* 3: storeq */
ptr0[i] = var34;
@@ -4941,19 +4998,19 @@ emulate_addd (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_subd (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_subd (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
- const orc_union64 * ORC_RESTRICT ptr5;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ const orc_union64 *ORC_RESTRICT ptr5;
orc_union64 var32;
orc_union64 var33;
orc_union64 var34;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
- ptr5 = (orc_union64 *)ex->src_ptrs[1];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
+ ptr5 = (orc_union64 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -4963,13 +5020,13 @@ emulate_subd (OrcOpcodeExecutor *ex, int offset, int n)
var33 = ptr5[i];
/* 2: subd */
{
- orc_union64 _src1;
- orc_union64 _src2;
- orc_union64 _dest1;
- _src1.i = ORC_DENORMAL_DOUBLE(var32.i);
- _src2.i = ORC_DENORMAL_DOUBLE(var33.i);
- _dest1.f = _src1.f - _src2.f;
- var34.i = ORC_DENORMAL_DOUBLE(_dest1.i);
+ orc_union64 _src1;
+ orc_union64 _src2;
+ orc_union64 _dest1;
+ _src1.i = ORC_DENORMAL_DOUBLE (var32.i);
+ _src2.i = ORC_DENORMAL_DOUBLE (var33.i);
+ _dest1.f = _src1.f - _src2.f;
+ var34.i = ORC_DENORMAL_DOUBLE (_dest1.i);
}
/* 3: storeq */
ptr0[i] = var34;
@@ -4978,19 +5035,19 @@ emulate_subd (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_muld (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_muld (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
- const orc_union64 * ORC_RESTRICT ptr5;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ const orc_union64 *ORC_RESTRICT ptr5;
orc_union64 var32;
orc_union64 var33;
orc_union64 var34;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
- ptr5 = (orc_union64 *)ex->src_ptrs[1];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
+ ptr5 = (orc_union64 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -5000,13 +5057,13 @@ emulate_muld (OrcOpcodeExecutor *ex, int offset, int n)
var33 = ptr5[i];
/* 2: muld */
{
- orc_union64 _src1;
- orc_union64 _src2;
- orc_union64 _dest1;
- _src1.i = ORC_DENORMAL_DOUBLE(var32.i);
- _src2.i = ORC_DENORMAL_DOUBLE(var33.i);
- _dest1.f = _src1.f * _src2.f;
- var34.i = ORC_DENORMAL_DOUBLE(_dest1.i);
+ orc_union64 _src1;
+ orc_union64 _src2;
+ orc_union64 _dest1;
+ _src1.i = ORC_DENORMAL_DOUBLE (var32.i);
+ _src2.i = ORC_DENORMAL_DOUBLE (var33.i);
+ _dest1.f = _src1.f * _src2.f;
+ var34.i = ORC_DENORMAL_DOUBLE (_dest1.i);
}
/* 3: storeq */
ptr0[i] = var34;
@@ -5015,19 +5072,19 @@ emulate_muld (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_divd (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_divd (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
- const orc_union64 * ORC_RESTRICT ptr5;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ const orc_union64 *ORC_RESTRICT ptr5;
orc_union64 var32;
orc_union64 var33;
orc_union64 var34;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
- ptr5 = (orc_union64 *)ex->src_ptrs[1];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
+ ptr5 = (orc_union64 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -5037,13 +5094,13 @@ emulate_divd (OrcOpcodeExecutor *ex, int offset, int n)
var33 = ptr5[i];
/* 2: divd */
{
- orc_union64 _src1;
- orc_union64 _src2;
- orc_union64 _dest1;
- _src1.i = ORC_DENORMAL_DOUBLE(var32.i);
- _src2.i = ORC_DENORMAL_DOUBLE(var33.i);
- _dest1.f = _src1.f / _src2.f;
- var34.i = ORC_DENORMAL_DOUBLE(_dest1.i);
+ orc_union64 _src1;
+ orc_union64 _src2;
+ orc_union64 _dest1;
+ _src1.i = ORC_DENORMAL_DOUBLE (var32.i);
+ _src2.i = ORC_DENORMAL_DOUBLE (var33.i);
+ _dest1.f = _src1.f / _src2.f;
+ var34.i = ORC_DENORMAL_DOUBLE (_dest1.i);
}
/* 3: storeq */
ptr0[i] = var34;
@@ -5052,16 +5109,16 @@ emulate_divd (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_sqrtd (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_sqrtd (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
orc_union64 var32;
orc_union64 var33;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -5069,11 +5126,11 @@ emulate_sqrtd (OrcOpcodeExecutor *ex, int offset, int n)
var32 = ptr4[i];
/* 1: sqrtd */
{
- orc_union64 _src1;
- orc_union64 _dest1;
- _src1.i = ORC_DENORMAL_DOUBLE(var32.i);
- _dest1.f = sqrt(_src1.f);
- var33.i = ORC_DENORMAL_DOUBLE(_dest1.i);
+ orc_union64 _src1;
+ orc_union64 _dest1;
+ _src1.i = ORC_DENORMAL_DOUBLE (var32.i);
+ _dest1.f = sqrt (_src1.f);
+ var33.i = ORC_DENORMAL_DOUBLE (_dest1.i);
}
/* 2: storeq */
ptr0[i] = var33;
@@ -5082,19 +5139,19 @@ emulate_sqrtd (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_maxd (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_maxd (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
- const orc_union64 * ORC_RESTRICT ptr5;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ const orc_union64 *ORC_RESTRICT ptr5;
orc_union64 var32;
orc_union64 var33;
orc_union64 var34;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
- ptr5 = (orc_union64 *)ex->src_ptrs[1];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
+ ptr5 = (orc_union64 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -5106,11 +5163,14 @@ emulate_maxd (OrcOpcodeExecutor *ex, int offset, int n)
{
orc_union64 _src1;
orc_union64 _src2;
- _src1.i = ORC_DENORMAL_DOUBLE(var32.i);
- _src2.i = ORC_DENORMAL_DOUBLE(var33.i);
- if (ORC_ISNAN_DOUBLE(_src1.i)) var34.i = _src1.i;
- else if (ORC_ISNAN_DOUBLE(_src2.i)) var34.i = _src2.i;
- else var34.i = (_src1.f > _src2.f) ? _src1.i : _src2.i;
+ _src1.i = ORC_DENORMAL_DOUBLE (var32.i);
+ _src2.i = ORC_DENORMAL_DOUBLE (var33.i);
+ if (ORC_ISNAN_DOUBLE (_src1.i))
+ var34.i = _src1.i;
+ else if (ORC_ISNAN_DOUBLE (_src2.i))
+ var34.i = _src2.i;
+ else
+ var34.i = (_src1.f > _src2.f) ? _src1.i : _src2.i;
}
/* 3: storeq */
ptr0[i] = var34;
@@ -5119,19 +5179,19 @@ emulate_maxd (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_mind (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_mind (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
- const orc_union64 * ORC_RESTRICT ptr5;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ const orc_union64 *ORC_RESTRICT ptr5;
orc_union64 var32;
orc_union64 var33;
orc_union64 var34;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
- ptr5 = (orc_union64 *)ex->src_ptrs[1];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
+ ptr5 = (orc_union64 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -5143,11 +5203,14 @@ emulate_mind (OrcOpcodeExecutor *ex, int offset, int n)
{
orc_union64 _src1;
orc_union64 _src2;
- _src1.i = ORC_DENORMAL_DOUBLE(var32.i);
- _src2.i = ORC_DENORMAL_DOUBLE(var33.i);
- if (ORC_ISNAN_DOUBLE(_src1.i)) var34.i = _src1.i;
- else if (ORC_ISNAN_DOUBLE(_src2.i)) var34.i = _src2.i;
- else var34.i = (_src1.f < _src2.f) ? _src1.i : _src2.i;
+ _src1.i = ORC_DENORMAL_DOUBLE (var32.i);
+ _src2.i = ORC_DENORMAL_DOUBLE (var33.i);
+ if (ORC_ISNAN_DOUBLE (_src1.i))
+ var34.i = _src1.i;
+ else if (ORC_ISNAN_DOUBLE (_src2.i))
+ var34.i = _src2.i;
+ else
+ var34.i = (_src1.f < _src2.f) ? _src1.i : _src2.i;
}
/* 3: storeq */
ptr0[i] = var34;
@@ -5156,19 +5219,19 @@ emulate_mind (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_cmpeqd (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_cmpeqd (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
- const orc_union64 * ORC_RESTRICT ptr5;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ const orc_union64 *ORC_RESTRICT ptr5;
orc_union64 var32;
orc_union64 var33;
orc_union64 var34;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
- ptr5 = (orc_union64 *)ex->src_ptrs[1];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
+ ptr5 = (orc_union64 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -5178,11 +5241,11 @@ emulate_cmpeqd (OrcOpcodeExecutor *ex, int offset, int n)
var33 = ptr5[i];
/* 2: cmpeqd */
{
- orc_union64 _src1;
- orc_union64 _src2;
- _src1.i = ORC_DENORMAL_DOUBLE(var32.i);
- _src2.i = ORC_DENORMAL_DOUBLE(var33.i);
- var34.i = (_src1.f == _src2.f) ? ORC_UINT64_C(~0) : 0;
+ orc_union64 _src1;
+ orc_union64 _src2;
+ _src1.i = ORC_DENORMAL_DOUBLE (var32.i);
+ _src2.i = ORC_DENORMAL_DOUBLE (var33.i);
+ var34.i = (_src1.f == _src2.f) ? ORC_UINT64_C (~0) : 0;
}
/* 3: storeq */
ptr0[i] = var34;
@@ -5191,19 +5254,19 @@ emulate_cmpeqd (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_cmpltd (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_cmpltd (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
- const orc_union64 * ORC_RESTRICT ptr5;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ const orc_union64 *ORC_RESTRICT ptr5;
orc_union64 var32;
orc_union64 var33;
orc_union64 var34;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
- ptr5 = (orc_union64 *)ex->src_ptrs[1];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
+ ptr5 = (orc_union64 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -5213,11 +5276,11 @@ emulate_cmpltd (OrcOpcodeExecutor *ex, int offset, int n)
var33 = ptr5[i];
/* 2: cmpltd */
{
- orc_union64 _src1;
- orc_union64 _src2;
- _src1.i = ORC_DENORMAL_DOUBLE(var32.i);
- _src2.i = ORC_DENORMAL_DOUBLE(var33.i);
- var34.i = (_src1.f < _src2.f) ? ORC_UINT64_C(~0) : 0;
+ orc_union64 _src1;
+ orc_union64 _src2;
+ _src1.i = ORC_DENORMAL_DOUBLE (var32.i);
+ _src2.i = ORC_DENORMAL_DOUBLE (var33.i);
+ var34.i = (_src1.f < _src2.f) ? ORC_UINT64_C (~0) : 0;
}
/* 3: storeq */
ptr0[i] = var34;
@@ -5226,19 +5289,19 @@ emulate_cmpltd (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_cmpled (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_cmpled (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
- const orc_union64 * ORC_RESTRICT ptr5;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ const orc_union64 *ORC_RESTRICT ptr5;
orc_union64 var32;
orc_union64 var33;
orc_union64 var34;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
- ptr5 = (orc_union64 *)ex->src_ptrs[1];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
+ ptr5 = (orc_union64 *) ex->src_ptrs[1];
for (i = 0; i < n; i++) {
@@ -5248,11 +5311,11 @@ emulate_cmpled (OrcOpcodeExecutor *ex, int offset, int n)
var33 = ptr5[i];
/* 2: cmpled */
{
- orc_union64 _src1;
- orc_union64 _src2;
- _src1.i = ORC_DENORMAL_DOUBLE(var32.i);
- _src2.i = ORC_DENORMAL_DOUBLE(var33.i);
- var34.i = (_src1.f <= _src2.f) ? ORC_UINT64_C(~0) : 0;
+ orc_union64 _src1;
+ orc_union64 _src2;
+ _src1.i = ORC_DENORMAL_DOUBLE (var32.i);
+ _src2.i = ORC_DENORMAL_DOUBLE (var33.i);
+ var34.i = (_src1.f <= _src2.f) ? ORC_UINT64_C (~0) : 0;
}
/* 3: storeq */
ptr0[i] = var34;
@@ -5261,16 +5324,16 @@ emulate_cmpled (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_convdl (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_convdl (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
orc_union64 var32;
orc_union32 var33;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -5278,10 +5341,11 @@ emulate_convdl (OrcOpcodeExecutor *ex, int offset, int n)
var32 = ptr4[i];
/* 1: convdl */
{
- int tmp;
- tmp = var32.f;
- if (tmp == 0x80000000 && !(var32.i & ORC_UINT64_C(0x8000000000000000))) tmp = 0x7fffffff;
- var33.i = tmp;
+ int tmp;
+ tmp = var32.f;
+ if (tmp == 0x80000000 && !(var32.i & ORC_UINT64_C (0x8000000000000000)))
+ tmp = 0x7fffffff;
+ var33.i = tmp;
}
/* 2: storel */
ptr0[i] = var33;
@@ -5290,23 +5354,23 @@ emulate_convdl (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_convld (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_convld (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
orc_union32 var32;
orc_union64 var33;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
/* 0: loadl */
var32 = ptr4[i];
/* 1: convld */
- var33.f = var32.i;
+ var33.f = var32.i;
/* 2: storeq */
ptr0[i] = var33;
}
@@ -5314,16 +5378,16 @@ emulate_convld (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_convfd (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_convfd (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union64 * ORC_RESTRICT ptr0;
- const orc_union32 * ORC_RESTRICT ptr4;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
orc_union32 var32;
orc_union64 var33;
- ptr0 = (orc_union64 *)ex->dest_ptrs[0];
- ptr4 = (orc_union32 *)ex->src_ptrs[0];
+ ptr0 = (orc_union64 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union32 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -5331,9 +5395,9 @@ emulate_convfd (OrcOpcodeExecutor *ex, int offset, int n)
var32 = ptr4[i];
/* 1: convfd */
{
- orc_union32 _src1;
- _src1.i = ORC_DENORMAL(var32.i);
- var33.f = _src1.f;
+ orc_union32 _src1;
+ _src1.i = ORC_DENORMAL (var32.i);
+ var33.f = _src1.f;
}
/* 2: storeq */
ptr0[i] = var33;
@@ -5342,16 +5406,16 @@ emulate_convfd (OrcOpcodeExecutor *ex, int offset, int n)
}
void
-emulate_convdf (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_convdf (OrcOpcodeExecutor * ex, int offset, int n)
{
int i;
- orc_union32 * ORC_RESTRICT ptr0;
- const orc_union64 * ORC_RESTRICT ptr4;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
orc_union64 var32;
orc_union32 var33;
- ptr0 = (orc_union32 *)ex->dest_ptrs[0];
- ptr4 = (orc_union64 *)ex->src_ptrs[0];
+ ptr0 = (orc_union32 *) ex->dest_ptrs[0];
+ ptr4 = (orc_union64 *) ex->src_ptrs[0];
for (i = 0; i < n; i++) {
@@ -5359,15 +5423,14 @@ emulate_convdf (OrcOpcodeExecutor *ex, int offset, int n)
var32 = ptr4[i];
/* 1: convdf */
{
- orc_union64 _src1;
- orc_union32 _dest;
- _src1.i = ORC_DENORMAL_DOUBLE(var32.i);
- _dest.f = _src1.f;
- var33.i = ORC_DENORMAL(_dest.i);
+ orc_union64 _src1;
+ orc_union32 _dest;
+ _src1.i = ORC_DENORMAL_DOUBLE (var32.i);
+ _dest.f = _src1.f;
+ var33.i = ORC_DENORMAL (_dest.i);
}
/* 2: storel */
ptr0[i] = var33;
}
}
-
diff --git a/orc/orcexecutor.c b/orc/orcexecutor.c
index 2a3d0b0..2666396 100644
--- a/orc/orcexecutor.c
+++ b/orc/orcexecutor.c
@@ -17,12 +17,12 @@
#define CHUNK_SIZE 16
OrcExecutor *
-orc_executor_new (OrcProgram *program)
+orc_executor_new (OrcProgram * program)
{
OrcExecutor *ex;
- ex = malloc(sizeof(OrcExecutor));
- memset(ex,0,sizeof(OrcExecutor));
+ ex = malloc (sizeof (OrcExecutor));
+ memset (ex, 0, sizeof (OrcExecutor));
ex->program = program;
ex->arrays[ORC_VAR_A2] = program->orccode;
@@ -31,16 +31,16 @@ orc_executor_new (OrcProgram *program)
}
void
-orc_executor_free (OrcExecutor *ex)
+orc_executor_free (OrcExecutor * ex)
{
free (ex);
}
void
-orc_executor_run (OrcExecutor *ex)
+orc_executor_run (OrcExecutor * ex)
{
void (*func) (OrcExecutor *);
- OrcCode *code = (OrcCode *)ex->arrays[ORC_VAR_A2];
+ OrcCode *code = (OrcCode *) ex->arrays[ORC_VAR_A2];
func = code->exec;
if (func) {
@@ -52,14 +52,14 @@ orc_executor_run (OrcExecutor *ex)
}
void
-orc_executor_run_backup (OrcExecutor *ex)
+orc_executor_run_backup (OrcExecutor * ex)
{
void (*func) (OrcExecutor *);
if (ex->program) {
func = ex->program->backup_func;
} else {
- OrcCode *code = (OrcCode *)ex->arrays[ORC_VAR_A2];
+ OrcCode *code = (OrcCode *) ex->arrays[ORC_VAR_A2];
func = code->exec;
}
if (func) {
@@ -71,26 +71,26 @@ orc_executor_run_backup (OrcExecutor *ex)
}
void
-orc_executor_set_program (OrcExecutor *ex, OrcProgram *program)
+orc_executor_set_program (OrcExecutor * ex, OrcProgram * program)
{
ex->program = program;
- ex->arrays[ORC_VAR_A1] = (void *)orc_executor_emulate;
+ ex->arrays[ORC_VAR_A1] = (void *) orc_executor_emulate;
}
void
-orc_executor_set_array (OrcExecutor *ex, int var, void *ptr)
+orc_executor_set_array (OrcExecutor * ex, int var, void *ptr)
{
ex->arrays[var] = ptr;
}
void
-orc_executor_set_stride (OrcExecutor *ex, int var, int stride)
+orc_executor_set_stride (OrcExecutor * ex, int var, int stride)
{
ex->params[var] = stride;
}
void
-orc_executor_set_array_str (OrcExecutor *ex, const char *name, void *ptr)
+orc_executor_set_array_str (OrcExecutor * ex, const char *name, void *ptr)
{
int var;
var = orc_program_find_var_by_name (ex->program, name);
@@ -98,13 +98,13 @@ orc_executor_set_array_str (OrcExecutor *ex, const char *name, void *ptr)
}
void
-orc_executor_set_param (OrcExecutor *ex, int var, int value)
+orc_executor_set_param (OrcExecutor * ex, int var, int value)
{
ex->params[var] = value;
}
void
-orc_executor_set_param_float (OrcExecutor *ex, int var, float value)
+orc_executor_set_param_float (OrcExecutor * ex, int var, float value)
{
orc_union32 u;
u.f = value;
@@ -112,25 +112,25 @@ orc_executor_set_param_float (OrcExecutor *ex, int var, float value)
}
void
-orc_executor_set_param_int64 (OrcExecutor *ex, int var, orc_int64 value)
+orc_executor_set_param_int64 (OrcExecutor * ex, int var, orc_int64 value)
{
orc_union64 u;
u.i = value;
ex->params[var] = u.x2[0];
- ex->params[var + (ORC_VAR_T1-ORC_VAR_P1)] = u.x2[1];
+ ex->params[var + (ORC_VAR_T1 - ORC_VAR_P1)] = u.x2[1];
}
void
-orc_executor_set_param_double (OrcExecutor *ex, int var, double value)
+orc_executor_set_param_double (OrcExecutor * ex, int var, double value)
{
orc_union64 u;
u.f = value;
ex->params[var] = u.x2[0];
- ex->params[var + (ORC_VAR_T1-ORC_VAR_P1)] = u.x2[1];
+ ex->params[var + (ORC_VAR_T1 - ORC_VAR_P1)] = u.x2[1];
}
void
-orc_executor_set_param_str (OrcExecutor *ex, const char *name, int value)
+orc_executor_set_param_str (OrcExecutor * ex, const char *name, int value)
{
int var;
var = orc_program_find_var_by_name (ex->program, name);
@@ -138,13 +138,13 @@ orc_executor_set_param_str (OrcExecutor *ex, const char *name, int value)
}
int
-orc_executor_get_accumulator (OrcExecutor *ex, int var)
+orc_executor_get_accumulator (OrcExecutor * ex, int var)
{
return ex->accumulators[var - ORC_VAR_A1];
}
int
-orc_executor_get_accumulator_str (OrcExecutor *ex, const char *name)
+orc_executor_get_accumulator_str (OrcExecutor * ex, const char *name)
{
int var;
var = orc_program_find_var_by_name (ex->program, name);
@@ -152,15 +152,15 @@ orc_executor_get_accumulator_str (OrcExecutor *ex, const char *name)
}
void
-orc_executor_set_n (OrcExecutor *ex, int n)
+orc_executor_set_n (OrcExecutor * ex, int n)
{
ex->n = n;
}
void
-orc_executor_set_m (OrcExecutor *ex, int m)
+orc_executor_set_m (OrcExecutor * ex, int m)
{
- ORC_EXECUTOR_M(ex) = m;
+ ORC_EXECUTOR_M (ex) = m;
}
static void
@@ -168,50 +168,50 @@ load_constant (void *data, int size, orc_uint64 value)
{
switch (size) {
case 1:
- {
- int l;
- orc_int8 *d = data;
- for(l=0;l<CHUNK_SIZE;l++) {
- d[l] = value;
- }
+ {
+ int l;
+ orc_int8 *d = data;
+ for (l = 0; l < CHUNK_SIZE; l++) {
+ d[l] = value;
}
+ }
break;
case 2:
- {
- int l;
- orc_int16 *d = data;
- for(l=0;l<CHUNK_SIZE;l++) {
- d[l] = value;
- }
+ {
+ int l;
+ orc_int16 *d = data;
+ for (l = 0; l < CHUNK_SIZE; l++) {
+ d[l] = value;
}
+ }
break;
case 4:
- {
- int l;
- orc_int32 *d = data;
- for(l=0;l<CHUNK_SIZE;l++) {
- d[l] = value;
- }
+ {
+ int l;
+ orc_int32 *d = data;
+ for (l = 0; l < CHUNK_SIZE; l++) {
+ d[l] = value;
}
+ }
break;
case 8:
- {
- int l;
- orc_int64 *d = data;
- for(l=0;l<CHUNK_SIZE;l++) {
- d[l] = value;
- }
+ {
+ int l;
+ orc_int64 *d = data;
+ for (l = 0; l < CHUNK_SIZE; l++) {
+ d[l] = value;
}
+ }
break;
default:
- ORC_ASSERT(0);
+ ORC_ASSERT (0);
}
}
void
-orc_executor_emulate (OrcExecutor *ex)
+orc_executor_emulate (OrcExecutor * ex)
{
int i;
int j;
@@ -226,7 +226,7 @@ orc_executor_emulate (OrcExecutor *ex)
if (ex->program) {
code = ex->program->orccode;
} else {
- code = (OrcCode *)ex->arrays[ORC_VAR_A2];
+ code = (OrcCode *) ex->arrays[ORC_VAR_A2];
}
ex->accumulators[0] = 0;
@@ -234,32 +234,32 @@ orc_executor_emulate (OrcExecutor *ex)
ex->accumulators[2] = 0;
ex->accumulators[3] = 0;
- ORC_DEBUG("emulating");
+ ORC_DEBUG ("emulating");
- memset (&opcode_ex, 0, sizeof(opcode_ex));
+ memset (&opcode_ex, 0, sizeof (opcode_ex));
if (code == NULL) {
- ORC_ERROR("attempt to run program that failed to compile");
- ORC_ASSERT(0);
+ ORC_ERROR ("attempt to run program that failed to compile");
+ ORC_ASSERT (0);
}
if (code->is_2d) {
- m = ORC_EXECUTOR_M(ex);
+ m = ORC_EXECUTOR_M (ex);
} else {
m = 1;
}
- for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
+ for (i = 0; i < ORC_N_COMPILER_VARIABLES; i++) {
OrcCodeVariable *var = code->vars + i;
if (var->size) {
- tmpspace[i] = malloc(ORC_MAX_VAR_SIZE * CHUNK_SIZE);
+ tmpspace[i] = malloc (ORC_MAX_VAR_SIZE * CHUNK_SIZE);
}
}
- opcode_ex = malloc(sizeof(OrcOpcodeExecutor)*code->n_insns);
+ opcode_ex = malloc (sizeof (OrcOpcodeExecutor) * code->n_insns);
- for(j=0;j<code->n_insns;j++){
+ for (j = 0; j < code->n_insns; j++) {
insn = code->insns + j;
opcode = insn->opcode;
@@ -271,110 +271,115 @@ orc_executor_emulate (OrcExecutor *ex)
opcode_ex[j].shift = 2;
}
- for(k=0;k<ORC_STATIC_OPCODE_N_SRC;k++) {
+ for (k = 0; k < ORC_STATIC_OPCODE_N_SRC; k++) {
OrcCodeVariable *var = code->vars + insn->src_args[k];
- if (opcode->src_size[k] == 0) continue;
+ if (opcode->src_size[k] == 0)
+ continue;
if (var->vartype == ORC_VAR_TYPE_CONST) {
opcode_ex[j].src_ptrs[k] = tmpspace[insn->src_args[k]];
/* FIXME hack */
- load_constant (tmpspace[insn->src_args[k]], 8,
- var->value.i);
+ load_constant (tmpspace[insn->src_args[k]], 8, var->value.i);
} else if (var->vartype == ORC_VAR_TYPE_PARAM) {
opcode_ex[j].src_ptrs[k] = tmpspace[insn->src_args[k]];
/* FIXME hack */
load_constant (tmpspace[insn->src_args[k]], 8,
- (orc_uint64)(orc_uint32)ex->params[insn->src_args[k]] |
- (((orc_uint64)(orc_uint32)ex->params[insn->src_args[k] +
- (ORC_VAR_T1 - ORC_VAR_P1)])<<32));
+ (orc_uint64) (orc_uint32) ex->params[insn->src_args[k]] |
+ (((orc_uint64) (orc_uint32) ex->params[insn->src_args[k] +
+ (ORC_VAR_T1 - ORC_VAR_P1)]) << 32));
} else if (var->vartype == ORC_VAR_TYPE_TEMP) {
opcode_ex[j].src_ptrs[k] = tmpspace[insn->src_args[k]];
} else if (var->vartype == ORC_VAR_TYPE_SRC) {
- if (ORC_PTR_TO_INT(ex->arrays[insn->src_args[k]]) & (var->size - 1)) {
- ORC_ERROR("Unaligned array for src%d, program %s",
- (insn->src_args[k]-ORC_VAR_S1), ex->program->name);
+ if (ORC_PTR_TO_INT (ex->arrays[insn->src_args[k]]) & (var->size - 1)) {
+ ORC_ERROR ("Unaligned array for src%d, program %s",
+ (insn->src_args[k] - ORC_VAR_S1), ex->program->name);
}
opcode_ex[j].src_ptrs[k] = ex->arrays[insn->src_args[k]];
} else if (var->vartype == ORC_VAR_TYPE_DEST) {
- if (ORC_PTR_TO_INT(ex->arrays[insn->src_args[k]]) & (var->size - 1)) {
- ORC_ERROR("Unaligned array for dest%d, program %s",
- (insn->src_args[k]-ORC_VAR_D1), ex->program->name);
+ if (ORC_PTR_TO_INT (ex->arrays[insn->src_args[k]]) & (var->size - 1)) {
+ ORC_ERROR ("Unaligned array for dest%d, program %s",
+ (insn->src_args[k] - ORC_VAR_D1), ex->program->name);
}
opcode_ex[j].src_ptrs[k] = ex->arrays[insn->src_args[k]];
}
}
- for(k=0;k<ORC_STATIC_OPCODE_N_DEST;k++) {
+ for (k = 0; k < ORC_STATIC_OPCODE_N_DEST; k++) {
OrcCodeVariable *var = code->vars + insn->dest_args[k];
- if (opcode->dest_size[k] == 0) continue;
+ if (opcode->dest_size[k] == 0)
+ continue;
if (var->vartype == ORC_VAR_TYPE_TEMP) {
- ORC_DEBUG("dest vartype tmp %d", insn->dest_args[k]);
+ ORC_DEBUG ("dest vartype tmp %d", insn->dest_args[k]);
opcode_ex[j].dest_ptrs[k] = tmpspace[insn->dest_args[k]];
} else if (var->vartype == ORC_VAR_TYPE_ACCUMULATOR) {
opcode_ex[j].dest_ptrs[k] =
- &ex->accumulators[insn->dest_args[k] - ORC_VAR_A1];
+ &ex->accumulators[insn->dest_args[k] - ORC_VAR_A1];
} else if (var->vartype == ORC_VAR_TYPE_DEST) {
- if (ORC_PTR_TO_INT(ex->arrays[insn->dest_args[k]]) & (var->size - 1)) {
- ORC_ERROR("Unaligned array for dest%d, program %s",
- (insn->dest_args[k]-ORC_VAR_D1), ex->program->name);
+ if (ORC_PTR_TO_INT (ex->arrays[insn->dest_args[k]]) & (var->size - 1)) {
+ ORC_ERROR ("Unaligned array for dest%d, program %s",
+ (insn->dest_args[k] - ORC_VAR_D1), ex->program->name);
}
opcode_ex[j].dest_ptrs[k] = ex->arrays[insn->dest_args[k]];
}
}
- ORC_DEBUG("opcode %s %p %p %p", opcode->name,
+ ORC_DEBUG ("opcode %s %p %p %p", opcode->name,
opcode_ex[j].dest_ptrs[0], opcode_ex[j].src_ptrs[0],
opcode_ex[j].src_ptrs[1]);
}
-
- ORC_DEBUG("src ptr %p stride %d", ex->arrays[ORC_VAR_S1], ex->params[ORC_VAR_S1]);
- for(m_index=0;m_index<m;m_index++){
- ORC_DEBUG("m_index %d m %d", m_index, m);
- for(j=0;j<code->n_insns;j++){
+ ORC_DEBUG ("src ptr %p stride %d", ex->arrays[ORC_VAR_S1],
+ ex->params[ORC_VAR_S1]);
+ for (m_index = 0; m_index < m; m_index++) {
+ ORC_DEBUG ("m_index %d m %d", m_index, m);
+
+ for (j = 0; j < code->n_insns; j++) {
insn = code->insns + j;
opcode = insn->opcode;
- for(k=0;k<ORC_STATIC_OPCODE_N_SRC;k++) {
+ for (k = 0; k < ORC_STATIC_OPCODE_N_SRC; k++) {
OrcCodeVariable *var = code->vars + insn->src_args[k];
- if (opcode->src_size[k] == 0) continue;
+ if (opcode->src_size[k] == 0)
+ continue;
if (var->vartype == ORC_VAR_TYPE_SRC) {
opcode_ex[j].src_ptrs[k] =
- ORC_PTR_OFFSET(ex->arrays[insn->src_args[k]],
- ex->params[insn->src_args[k]]*m_index);
+ ORC_PTR_OFFSET (ex->arrays[insn->src_args[k]],
+ ex->params[insn->src_args[k]] * m_index);
} else if (var->vartype == ORC_VAR_TYPE_DEST) {
opcode_ex[j].src_ptrs[k] =
- ORC_PTR_OFFSET(ex->arrays[insn->src_args[k]],
- ex->params[insn->src_args[k]]*m_index);
+ ORC_PTR_OFFSET (ex->arrays[insn->src_args[k]],
+ ex->params[insn->src_args[k]] * m_index);
}
}
- for(k=0;k<ORC_STATIC_OPCODE_N_DEST;k++) {
+ for (k = 0; k < ORC_STATIC_OPCODE_N_DEST; k++) {
OrcCodeVariable *var = code->vars + insn->dest_args[k];
- if (opcode->dest_size[k] == 0) continue;
+ if (opcode->dest_size[k] == 0)
+ continue;
if (var->vartype == ORC_VAR_TYPE_DEST) {
opcode_ex[j].dest_ptrs[k] =
- ORC_PTR_OFFSET(ex->arrays[insn->dest_args[k]],
- ex->params[insn->dest_args[k]]*m_index);
+ ORC_PTR_OFFSET (ex->arrays[insn->dest_args[k]],
+ ex->params[insn->dest_args[k]] * m_index);
}
}
}
- for(i=0;i<ex->n;i+=CHUNK_SIZE){
- for(j=0;j<code->n_insns;j++){
+ for (i = 0; i < ex->n; i += CHUNK_SIZE) {
+ for (j = 0; j < code->n_insns; j++) {
if (ex->n - i >= CHUNK_SIZE) {
- opcode_ex[j].emulateN (opcode_ex + j, i, CHUNK_SIZE << opcode_ex[j].shift);
+ opcode_ex[j].emulateN (opcode_ex + j, i,
+ CHUNK_SIZE << opcode_ex[j].shift);
} else {
- opcode_ex[j].emulateN (opcode_ex + j, i, (ex->n - i) << opcode_ex[j].shift);
+ opcode_ex[j].emulateN (opcode_ex + j, i,
+ (ex->n - i) << opcode_ex[j].shift);
}
}
}
}
free (opcode_ex);
- for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
- if (tmpspace[i]) free (tmpspace[i]);
+ for (i = 0; i < ORC_N_COMPILER_VARIABLES; i++) {
+ if (tmpspace[i])
+ free (tmpspace[i]);
}
}
-
-
diff --git a/orc/orcfunctions.c b/orc/orcfunctions.c
index dbe0b7d..1c52f9c 100644
--- a/orc/orcfunctions.c
+++ b/orc/orcfunctions.c
@@ -47,9 +47,26 @@ typedef unsigned long orc_uint64;
#define ORC_UINT64_C(x) (x##UL)
#endif
#endif
-typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16;
-typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32;
-typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; } orc_union64;
+typedef union
+{
+ orc_int16 i;
+ orc_int8 x2[2];
+} orc_union16;
+typedef union
+{
+ orc_int32 i;
+ float f;
+ orc_int16 x2[2];
+ orc_int8 x4[4];
+} orc_union32;
+typedef union
+{
+ orc_int64 i;
+ double f;
+ orc_int32 x2[2];
+ float x2f[2];
+ orc_int16 x4[4];
+} orc_union64;
#endif
#ifndef ORC_RESTRICT
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
@@ -64,8 +81,8 @@ typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16
#ifndef DISABLE_ORC
#include <orc/orc.h>
#endif
-void orc_memcpy (void * ORC_RESTRICT d1, const void * ORC_RESTRICT s1, int n);
-void orc_memset (void * ORC_RESTRICT d1, int p1, int n);
+void orc_memcpy (void *ORC_RESTRICT d1, const void *ORC_RESTRICT s1, int n);
+void orc_memset (void *ORC_RESTRICT d1, int p1, int n);
/* begin Orc C target preamble */
@@ -115,15 +132,16 @@ void orc_memset (void * ORC_RESTRICT d1, int p1, int n);
/* orc_memcpy */
#ifdef DISABLE_ORC
void
-orc_memcpy (void * ORC_RESTRICT d1, const void * ORC_RESTRICT s1, int n){
+orc_memcpy (void *ORC_RESTRICT d1, const void *ORC_RESTRICT s1, int n)
+{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
orc_int8 var32;
orc_int8 var33;
- ptr0 = (orc_int8 *)d1;
- ptr4 = (orc_int8 *)s1;
+ ptr0 = (orc_int8 *) d1;
+ ptr4 = (orc_int8 *) s1;
for (i = 0; i < n; i++) {
@@ -143,13 +161,13 @@ _backup_orc_memcpy (OrcExecutor * ORC_RESTRICT ex)
{
int i;
int n = ex->n;
- orc_int8 * ORC_RESTRICT ptr0;
- const orc_int8 * ORC_RESTRICT ptr4;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
orc_int8 var32;
orc_int8 var33;
- ptr0 = (orc_int8 *)ex->arrays[0];
- ptr4 = (orc_int8 *)ex->arrays[4];
+ ptr0 = (orc_int8 *) ex->arrays[0];
+ ptr4 = (orc_int8 *) ex->arrays[4];
for (i = 0; i < n; i++) {
@@ -164,7 +182,7 @@ _backup_orc_memcpy (OrcExecutor * ORC_RESTRICT ex)
}
void
-orc_memcpy (void * ORC_RESTRICT d1, const void * ORC_RESTRICT s1, int n)
+orc_memcpy (void *ORC_RESTRICT d1, const void *ORC_RESTRICT s1, int n)
{
OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0;
@@ -182,7 +200,8 @@ orc_memcpy (void * ORC_RESTRICT d1, const void * ORC_RESTRICT s1, int n)
orc_program_add_destination (p, 1, "d1");
orc_program_add_source (p, 1, "s1");
- orc_program_append_2 (p, "copyb", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "copyb", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
+ ORC_VAR_D1);
orc_program_compile (p);
c = orc_program_take_code (p);
@@ -196,7 +215,7 @@ orc_memcpy (void * ORC_RESTRICT d1, const void * ORC_RESTRICT s1, int n)
ex->n = n;
ex->arrays[ORC_VAR_D1] = d1;
- ex->arrays[ORC_VAR_S1] = (void *)s1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
func = c->exec;
func (ex);
@@ -207,16 +226,17 @@ orc_memcpy (void * ORC_RESTRICT d1, const void * ORC_RESTRICT s1, int n)
/* orc_memset */
#ifdef DISABLE_ORC
void
-orc_memset (void * ORC_RESTRICT d1, int p1, int n){
+orc_memset (void *ORC_RESTRICT d1, int p1, int n)
+{
int i;
- orc_int8 * ORC_RESTRICT ptr0;
+ orc_int8 *ORC_RESTRICT ptr0;
orc_int8 var32;
orc_int8 var33;
- ptr0 = (orc_int8 *)d1;
+ ptr0 = (orc_int8 *) d1;
- /* 0: loadpb */
- var32 = p1;
+ /* 0: loadpb */
+ var32 = p1;
for (i = 0; i < n; i++) {
/* 1: copyb */
@@ -233,14 +253,14 @@ _backup_orc_memset (OrcExecutor * ORC_RESTRICT ex)
{
int i;
int n = ex->n;
- orc_int8 * ORC_RESTRICT ptr0;
+ orc_int8 *ORC_RESTRICT ptr0;
orc_int8 var32;
orc_int8 var33;
- ptr0 = (orc_int8 *)ex->arrays[0];
+ ptr0 = (orc_int8 *) ex->arrays[0];
- /* 0: loadpb */
- var32 = ex->params[24];
+ /* 0: loadpb */
+ var32 = ex->params[24];
for (i = 0; i < n; i++) {
/* 1: copyb */
@@ -252,7 +272,7 @@ _backup_orc_memset (OrcExecutor * ORC_RESTRICT ex)
}
void
-orc_memset (void * ORC_RESTRICT d1, int p1, int n)
+orc_memset (void *ORC_RESTRICT d1, int p1, int n)
{
OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0;
@@ -270,7 +290,8 @@ orc_memset (void * ORC_RESTRICT d1, int p1, int n)
orc_program_add_destination (p, 1, "d1");
orc_program_add_parameter (p, 1, "p1");
- orc_program_append_2 (p, "copyb", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "copyb", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1,
+ ORC_VAR_D1);
orc_program_compile (p);
c = orc_program_take_code (p);
@@ -290,5 +311,3 @@ orc_memset (void * ORC_RESTRICT d1, int p1, int n)
func (ex);
}
#endif
-
-
diff --git a/orc/orcmmx.c b/orc/orcmmx.c
index 70f00f6..5d5612a 100644
--- a/orc/orcmmx.c
+++ b/orc/orcmmx.c
@@ -19,14 +19,15 @@
const char *
-orc_x86_get_regname_mmx(int i)
+orc_x86_get_regname_mmx (int i)
{
static const char *x86_regs[] = {
"mm0", "mm1", "mm2", "mm3", "mm4", "mm5", "mm6", "mm7",
"mm8", "mm9", "mm10", "mm11", "mm12", "mm13", "mm14", "mm15"
};
- if (i>=X86_MM0 && i<X86_MM0 + 16) return x86_regs[i - X86_MM0];
+ if (i >= X86_MM0 && i < X86_MM0 + 16)
+ return x86_regs[i - X86_MM0];
switch (i) {
case 0:
return "UNALLOCATED";
@@ -39,81 +40,86 @@ orc_x86_get_regname_mmx(int i)
#if 0
void
-orc_x86_emit_mov_memindex_mmx (OrcCompiler *compiler, int size, int offset,
+orc_x86_emit_mov_memindex_mmx (OrcCompiler * compiler, int size, int offset,
int reg1, int regindex, int shift, int reg2, int is_aligned)
{
switch (size) {
case 4:
- ORC_ASM_CODE(compiler," movd %d(%%%s,%%%s,%d), %%%s\n", offset,
- orc_x86_get_regname_ptr(compiler, reg1),
- orc_x86_get_regname_ptr(compiler, regindex), 1<<shift,
- orc_x86_get_regname_mmx(reg2));
- orc_x86_emit_rex(compiler, 0, reg2, 0, reg1);
+ ORC_ASM_CODE (compiler, " movd %d(%%%s,%%%s,%d), %%%s\n", offset,
+ orc_x86_get_regname_ptr (compiler, reg1),
+ orc_x86_get_regname_ptr (compiler, regindex), 1 << shift,
+ orc_x86_get_regname_mmx (reg2));
+ orc_x86_emit_rex (compiler, 0, reg2, 0, reg1);
*compiler->codeptr++ = 0x0f;
*compiler->codeptr++ = 0x6e;
break;
case 8:
- ORC_ASM_CODE(compiler," movq %d(%%%s,%%%s,%d), %%%s\n", offset, orc_x86_get_regname_ptr(compiler, reg1),
- orc_x86_get_regname_ptr(compiler, regindex), 1<<shift,
- orc_x86_get_regname_mmx(reg2));
- orc_x86_emit_rex(compiler, 0, reg2, 0, reg1);
+ ORC_ASM_CODE (compiler, " movq %d(%%%s,%%%s,%d), %%%s\n", offset,
+ orc_x86_get_regname_ptr (compiler, reg1),
+ orc_x86_get_regname_ptr (compiler, regindex), 1 << shift,
+ orc_x86_get_regname_mmx (reg2));
+ orc_x86_emit_rex (compiler, 0, reg2, 0, reg1);
*compiler->codeptr++ = 0x0f;
*compiler->codeptr++ = 0x7e;
break;
default:
- ORC_COMPILER_ERROR(compiler, "bad size");
+ ORC_COMPILER_ERROR (compiler, "bad size");
break;
}
orc_x86_emit_modrm_memindex (compiler, reg2, offset, reg1, regindex, shift);
}
void
-orc_x86_emit_mov_memoffset_mmx (OrcCompiler *compiler, int size, int offset,
+orc_x86_emit_mov_memoffset_mmx (OrcCompiler * compiler, int size, int offset,
int reg1, int reg2, int is_aligned)
{
switch (size) {
case 4:
- ORC_ASM_CODE(compiler," movd %d(%%%s), %%%s\n", offset, orc_x86_get_regname_ptr(compiler, reg1),
- orc_x86_get_regname_mmx(reg2));
- orc_x86_emit_rex(compiler, 0, reg2, 0, reg1);
+ ORC_ASM_CODE (compiler, " movd %d(%%%s), %%%s\n", offset,
+ orc_x86_get_regname_ptr (compiler, reg1),
+ orc_x86_get_regname_mmx (reg2));
+ orc_x86_emit_rex (compiler, 0, reg2, 0, reg1);
*compiler->codeptr++ = 0x0f;
*compiler->codeptr++ = 0x6e;
break;
case 8:
- ORC_ASM_CODE(compiler," movq %d(%%%s), %%%s\n", offset, orc_x86_get_regname_ptr(compiler, reg1),
- orc_x86_get_regname_mmx(reg2));
- orc_x86_emit_rex(compiler, 0, reg2, 0, reg1);
+ ORC_ASM_CODE (compiler, " movq %d(%%%s), %%%s\n", offset,
+ orc_x86_get_regname_ptr (compiler, reg1),
+ orc_x86_get_regname_mmx (reg2));
+ orc_x86_emit_rex (compiler, 0, reg2, 0, reg1);
*compiler->codeptr++ = 0x0f;
*compiler->codeptr++ = 0x6f;
break;
default:
- ORC_COMPILER_ERROR(compiler, "bad size");
+ ORC_COMPILER_ERROR (compiler, "bad size");
break;
}
orc_x86_emit_modrm_memoffset (compiler, offset, reg1, reg2);
}
void
-orc_x86_emit_mov_mmx_memoffset (OrcCompiler *compiler, int size, int reg1, int offset,
- int reg2, int aligned, int uncached)
+orc_x86_emit_mov_mmx_memoffset (OrcCompiler * compiler, int size, int reg1,
+ int offset, int reg2, int aligned, int uncached)
{
switch (size) {
case 4:
- ORC_ASM_CODE(compiler," movd %%%s, %d(%%%s)\n", orc_x86_get_regname_mmx(reg1), offset,
- orc_x86_get_regname_ptr(compiler, reg2));
- orc_x86_emit_rex(compiler, 0, reg1, 0, reg2);
+ ORC_ASM_CODE (compiler, " movd %%%s, %d(%%%s)\n",
+ orc_x86_get_regname_mmx (reg1), offset,
+ orc_x86_get_regname_ptr (compiler, reg2));
+ orc_x86_emit_rex (compiler, 0, reg1, 0, reg2);
*compiler->codeptr++ = 0x0f;
*compiler->codeptr++ = 0x7e;
break;
case 8:
- ORC_ASM_CODE(compiler," movq %%%s, %d(%%%s)\n", orc_x86_get_regname_mmx(reg1), offset,
- orc_x86_get_regname_ptr(compiler, reg2));
- orc_x86_emit_rex(compiler, 0, reg1, 0, reg2);
+ ORC_ASM_CODE (compiler, " movq %%%s, %d(%%%s)\n",
+ orc_x86_get_regname_mmx (reg1), offset,
+ orc_x86_get_regname_ptr (compiler, reg2));
+ orc_x86_emit_rex (compiler, 0, reg1, 0, reg2);
*compiler->codeptr++ = 0x0f;
*compiler->codeptr++ = 0x7f;
break;
default:
- ORC_COMPILER_ERROR(compiler, "bad size");
+ ORC_COMPILER_ERROR (compiler, "bad size");
break;
}
@@ -122,7 +128,7 @@ orc_x86_emit_mov_mmx_memoffset (OrcCompiler *compiler, int size, int reg1, int o
#endif
void
-orc_x86_emit_mov_memoffset_mmx (OrcCompiler *compiler, int size, int offset,
+orc_x86_emit_mov_memoffset_mmx (OrcCompiler * compiler, int size, int offset,
int reg1, int reg2, int is_aligned)
{
switch (size) {
@@ -133,13 +139,13 @@ orc_x86_emit_mov_memoffset_mmx (OrcCompiler *compiler, int size, int offset,
orc_mmx_emit_movq_load_memoffset (compiler, offset, reg1, reg2);
break;
default:
- ORC_COMPILER_ERROR(compiler, "bad size");
+ ORC_COMPILER_ERROR (compiler, "bad size");
break;
}
}
void
-orc_x86_emit_mov_memindex_mmx (OrcCompiler *compiler, int size, int offset,
+orc_x86_emit_mov_memindex_mmx (OrcCompiler * compiler, int size, int offset,
int reg1, int regindex, int shift, int reg2, int is_aligned)
{
switch (size) {
@@ -152,13 +158,13 @@ orc_x86_emit_mov_memindex_mmx (OrcCompiler *compiler, int size, int offset,
reg1, regindex, shift, reg2);
break;
default:
- ORC_COMPILER_ERROR(compiler, "bad size");
+ ORC_COMPILER_ERROR (compiler, "bad size");
break;
}
}
void
-orc_x86_emit_mov_mmx_memoffset (OrcCompiler *compiler, int size, int reg1,
+orc_x86_emit_mov_mmx_memoffset (OrcCompiler * compiler, int size, int reg1,
int offset, int reg2, int aligned, int uncached)
{
switch (size) {
@@ -169,9 +175,8 @@ orc_x86_emit_mov_mmx_memoffset (OrcCompiler *compiler, int size, int reg1,
orc_mmx_emit_movq_store_memoffset (compiler, offset, reg1, reg2);
break;
default:
- ORC_COMPILER_ERROR(compiler, "bad size");
+ ORC_COMPILER_ERROR (compiler, "bad size");
break;
}
}
-
diff --git a/orc/orconce.c b/orc/orconce.c
index 86315c1..1934668 100644
--- a/orc/orconce.c
+++ b/orc/orconce.c
@@ -80,15 +80,15 @@ orc_once_cs_init (void)
InitializeCriticalSection (&global_mutex);
}
-__declspec(allocate(".CRT$XCU"))
-void (__cdecl * orc_once_cs_init_constructor)(void) = orc_once_cs_init;
+__declspec (allocate (".CRT$XCU"))
+ void (__cdecl * orc_once_cs_init_constructor) (void) = orc_once_cs_init;
#elif defined(__GNUC__)
-static void orc_once_cs_init (void) __attribute__((constructor));
+static void orc_once_cs_init (void) __attribute__ ((constructor));
static void
-orc_once_cs_init (void)
+orc_once_cs_init (void)
{
InitializeCriticalSection (&once_mutex);
InitializeCriticalSection (&global_mutex);
@@ -122,5 +122,3 @@ orc_once_mutex_unlock (void)
}
#endif
-
-
diff --git a/orc/orcopcodes.c b/orc/orcopcodes.c
index eda8610..b10a274 100644
--- a/orc/orcopcodes.c
+++ b/orc/orcopcodes.c
@@ -46,7 +46,7 @@ static OrcTarget *default_target;
void
-orc_target_register (OrcTarget *target)
+orc_target_register (OrcTarget * target)
{
targets[n_targets] = target;
n_targets++;
@@ -61,9 +61,10 @@ orc_target_get_by_name (const char *name)
{
int i;
- if (name == NULL) return default_target;
+ if (name == NULL)
+ return default_target;
- for(i=0;i<n_targets;i++){
+ for (i = 0; i < n_targets; i++) {
if (strcmp (name, targets[i]->name) == 0) {
return targets[i];
}
@@ -79,23 +80,26 @@ orc_target_get_default (void)
}
const char *
-orc_target_get_name (OrcTarget *target)
+orc_target_get_name (OrcTarget * target)
{
- if (target == NULL) return NULL;
+ if (target == NULL)
+ return NULL;
return target->name;
}
unsigned int
-orc_target_get_default_flags (OrcTarget *target)
+orc_target_get_default_flags (OrcTarget * target)
{
- if (target == NULL) return 0;
- return target->get_default_flags();
+ if (target == NULL)
+ return 0;
+ return target->get_default_flags ();
}
const char *
-orc_target_get_preamble (OrcTarget *target)
+orc_target_get_preamble (OrcTarget * target)
{
- if (target->get_asm_preamble == NULL) return "";
+ if (target->get_asm_preamble == NULL)
+ return "";
return target->get_asm_preamble ();
}
@@ -106,22 +110,24 @@ orc_target_get_asm_preamble (const char *target)
OrcTarget *t;
t = orc_target_get_by_name (target);
- if (t == NULL) return "";
+ if (t == NULL)
+ return "";
return orc_target_get_preamble (t);
}
const char *
-orc_target_get_flag_name (OrcTarget *target, int shift)
+orc_target_get_flag_name (OrcTarget * target, int shift)
{
- if (target->get_flag_name == NULL) return "";
+ if (target->get_flag_name == NULL)
+ return "";
return target->get_flag_name (shift);
}
#if 0
int
-orc_opcode_get_list (OrcOpcode **list)
+orc_opcode_get_list (OrcOpcode ** list)
{
(*list) = opcode_list;
return n_opcodes;
@@ -137,7 +143,7 @@ orc_opcode_register (const char *name, int n_dest, int n_src,
if (n_opcodes == n_opcodes_alloc) {
n_opcodes_alloc += 100;
- opcode_list = realloc(opcode_list, sizeof(OrcOpcode) * n_opcodes_alloc);
+ opcode_list = realloc (opcode_list, sizeof (OrcOpcode) * n_opcodes_alloc);
}
opcode = opcode_list + n_opcodes;
@@ -153,7 +159,7 @@ orc_opcode_register (const char *name, int n_dest, int n_src,
#endif
OrcRuleSet *
-orc_rule_set_new (OrcOpcodeSet *opcode_set, OrcTarget *target,
+orc_rule_set_new (OrcOpcodeSet * opcode_set, OrcTarget * target,
unsigned int required_flags)
{
OrcRuleSet *rule_set;
@@ -161,19 +167,19 @@ orc_rule_set_new (OrcOpcodeSet *opcode_set, OrcTarget *target,
rule_set = target->rule_sets + target->n_rule_sets;
target->n_rule_sets++;
- memset (rule_set, 0, sizeof(OrcRuleSet));
+ memset (rule_set, 0, sizeof (OrcRuleSet));
rule_set->opcode_major = opcode_set->opcode_major;
rule_set->required_target_flags = required_flags;
- rule_set->rules = malloc (sizeof(OrcRule) * opcode_set->n_opcodes);
- memset (rule_set->rules, 0, sizeof(OrcRule) * opcode_set->n_opcodes);
+ rule_set->rules = malloc (sizeof (OrcRule) * opcode_set->n_opcodes);
+ memset (rule_set->rules, 0, sizeof (OrcRule) * opcode_set->n_opcodes);
return rule_set;
}
OrcRule *
-orc_target_get_rule (OrcTarget *target, OrcStaticOpcode *opcode,
+orc_target_get_rule (OrcTarget * target, OrcStaticOpcode * opcode,
unsigned int target_flags)
{
OrcRule *rule;
@@ -181,18 +187,23 @@ orc_target_get_rule (OrcTarget *target, OrcStaticOpcode *opcode,
int j;
int k;
- for(k=0;k<n_opcode_sets;k++){
+ for (k = 0; k < n_opcode_sets; k++) {
j = opcode - opcode_sets[k].opcodes;
- if (j < 0 || j >= opcode_sets[k].n_opcodes) continue;
- if (opcode_sets[k].opcodes + j != opcode) continue;
+ if (j < 0 || j >= opcode_sets[k].n_opcodes)
+ continue;
+ if (opcode_sets[k].opcodes + j != opcode)
+ continue;
- for(i=target->n_rule_sets-1;i>=0;i--){
- if (target->rule_sets[i].opcode_major != opcode_sets[k].opcode_major) continue;
- if (target->rule_sets[i].required_target_flags & (~target_flags)) continue;
+ for (i = target->n_rule_sets - 1; i >= 0; i--) {
+ if (target->rule_sets[i].opcode_major != opcode_sets[k].opcode_major)
+ continue;
+ if (target->rule_sets[i].required_target_flags & (~target_flags))
+ continue;
rule = target->rule_sets[i].rules + j;
- if (rule->emit) return rule;
+ if (rule->emit)
+ return rule;
}
}
@@ -200,7 +211,7 @@ orc_target_get_rule (OrcTarget *target, OrcStaticOpcode *opcode,
}
int
-orc_opcode_register_static (OrcStaticOpcode *sopcode, char *prefix)
+orc_opcode_register_static (OrcStaticOpcode * sopcode, char *prefix)
{
int n;
int major;
@@ -213,10 +224,11 @@ orc_opcode_register_static (OrcStaticOpcode *sopcode, char *prefix)
major = n_opcode_sets;
n_opcode_sets++;
- opcode_sets = realloc (opcode_sets, sizeof(OrcOpcodeSet)*n_opcode_sets);
-
- memset (opcode_sets + major, 0, sizeof(OrcOpcodeSet));
- strncpy(opcode_sets[major].prefix, prefix, sizeof(opcode_sets[major].prefix)-1);
+ opcode_sets = realloc (opcode_sets, sizeof (OrcOpcodeSet) * n_opcode_sets);
+
+ memset (opcode_sets + major, 0, sizeof (OrcOpcodeSet));
+ strncpy (opcode_sets[major].prefix, prefix,
+ sizeof (opcode_sets[major].prefix) - 1);
opcode_sets[major].n_opcodes = n;
opcode_sets[major].opcodes = sopcode;
opcode_sets[major].opcode_major = major;
@@ -229,7 +241,7 @@ orc_opcode_set_get (const char *name)
{
int i;
- for(i=0;i<n_opcode_sets;i++){
+ for (i = 0; i < n_opcode_sets; i++) {
if (strcmp (opcode_sets[i].prefix, name) == 0) {
return opcode_sets + i;
}
@@ -245,11 +257,11 @@ orc_opcode_set_get_nth (int opcode_major)
}
int
-orc_opcode_set_find_by_name (OrcOpcodeSet *opcode_set, const char *name)
+orc_opcode_set_find_by_name (OrcOpcodeSet * opcode_set, const char *name)
{
int j;
- for(j=0;j<opcode_set->n_opcodes;j++){
+ for (j = 0; j < opcode_set->n_opcodes; j++) {
if (strcmp (name, opcode_set->opcodes[j].name) == 0) {
return j;
}
@@ -264,7 +276,7 @@ orc_opcode_find_by_name (const char *name)
int i;
int j;
- for(i=0;i<n_opcode_sets;i++){
+ for (i = 0; i < n_opcode_sets; i++) {
j = orc_opcode_set_find_by_name (opcode_sets + i, name);
if (j >= 0) {
return &opcode_sets[i].opcodes[j];
@@ -275,10 +287,10 @@ orc_opcode_find_by_name (const char *name)
}
void
-emulate_null (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_null (OrcOpcodeExecutor * ex, int offset, int n)
{
/* This is a placeholder for adding new opcodes */
- ORC_ERROR("emulate_null() called. This is a bug.");
+ ORC_ERROR ("emulate_null() called. This is a bug.");
}
#include "orc/orcemulateopcodes.h"
@@ -286,220 +298,237 @@ emulate_null (OrcOpcodeExecutor *ex, int offset, int n)
static OrcStaticOpcode opcodes[] = {
/* byte ops */
- { "absb", 0, { 1 }, { 1 }, emulate_absb },
- { "addb", 0, { 1 }, { 1, 1 }, emulate_addb },
- { "addssb", 0, { 1 }, { 1, 1 }, emulate_addssb },
- { "addusb", 0, { 1 }, { 1, 1 }, emulate_addusb },
- { "andb", 0, { 1 }, { 1, 1 }, emulate_andb },
- { "andnb", 0, { 1 }, { 1, 1 }, emulate_andnb },
- { "avgsb", 0, { 1 }, { 1, 1 }, emulate_avgsb },
- { "avgub", 0, { 1 }, { 1, 1 }, emulate_avgub },
- { "cmpeqb", 0, { 1 }, { 1, 1 }, emulate_cmpeqb },
- { "cmpgtsb", 0, { 1 }, { 1, 1 }, emulate_cmpgtsb },
- { "copyb", 0, { 1 }, { 1 }, emulate_copyb },
- { "loadb", ORC_STATIC_OPCODE_LOAD, { 1 }, { 1 }, emulate_loadb },
- { "loadoffb", ORC_STATIC_OPCODE_LOAD|ORC_STATIC_OPCODE_SCALAR, { 1 }, { 1, 4 }, emulate_loadoffb },
- { "loadupdb", ORC_STATIC_OPCODE_LOAD|ORC_STATIC_OPCODE_ITERATOR, { 1 }, { 1 }, emulate_loadupdb },
- { "loadupib", ORC_STATIC_OPCODE_LOAD|ORC_STATIC_OPCODE_ITERATOR, { 1 }, { 1 }, emulate_loadupib },
- { "loadpb", ORC_STATIC_OPCODE_LOAD|ORC_STATIC_OPCODE_SCALAR|ORC_STATIC_OPCODE_INVARIANT, { 1 }, { 1 }, emulate_loadpb },
- { "ldresnearb", ORC_STATIC_OPCODE_LOAD|ORC_STATIC_OPCODE_SCALAR, { 1 }, { 1, 4, 4 }, emulate_ldresnearb },
- { "ldresnearl", ORC_STATIC_OPCODE_LOAD|ORC_STATIC_OPCODE_SCALAR, { 4 }, { 4, 4, 4 }, emulate_ldresnearl },
- { "ldreslinb", ORC_STATIC_OPCODE_LOAD|ORC_STATIC_OPCODE_SCALAR, { 1 }, { 1, 4, 4 }, emulate_ldreslinb },
- { "ldreslinl", ORC_STATIC_OPCODE_LOAD|ORC_STATIC_OPCODE_SCALAR, { 4 }, { 4, 4, 4 }, emulate_ldreslinl },
- { "maxsb", 0, { 1 }, { 1, 1 }, emulate_maxsb },
- { "maxub", 0, { 1 }, { 1, 1 }, emulate_maxub },
- { "minsb", 0, { 1 }, { 1, 1 }, emulate_minsb },
- { "minub", 0, { 1 }, { 1, 1 }, emulate_minub },
- { "mullb", 0, { 1 }, { 1, 1 }, emulate_mullb },
- { "mulhsb", 0, { 1 }, { 1, 1 }, emulate_mulhsb },
- { "mulhub", 0, { 1 }, { 1, 1 }, emulate_mulhub },
- { "orb", 0, { 1 }, { 1, 1 }, emulate_orb },
- { "shlb", ORC_STATIC_OPCODE_SCALAR, { 1 }, { 1, 1 }, emulate_shlb },
- { "shrsb", ORC_STATIC_OPCODE_SCALAR, { 1 }, { 1, 1 }, emulate_shrsb },
- { "shrub", ORC_STATIC_OPCODE_SCALAR, { 1 }, { 1, 1 }, emulate_shrub },
- { "signb", 0, { 1 }, { 1 }, emulate_signb },
- { "storeb", ORC_STATIC_OPCODE_STORE, { 1 }, { 1 }, emulate_storeb },
- { "subb", 0, { 1 }, { 1, 1 }, emulate_subb },
- { "subssb", 0, { 1 }, { 1, 1 }, emulate_subssb },
- { "subusb", 0, { 1 }, { 1, 1 }, emulate_subusb },
- { "xorb", 0, { 1 }, { 1, 1 }, emulate_xorb },
+ {"absb", 0, {1}, {1}, emulate_absb},
+ {"addb", 0, {1}, {1, 1}, emulate_addb},
+ {"addssb", 0, {1}, {1, 1}, emulate_addssb},
+ {"addusb", 0, {1}, {1, 1}, emulate_addusb},
+ {"andb", 0, {1}, {1, 1}, emulate_andb},
+ {"andnb", 0, {1}, {1, 1}, emulate_andnb},
+ {"avgsb", 0, {1}, {1, 1}, emulate_avgsb},
+ {"avgub", 0, {1}, {1, 1}, emulate_avgub},
+ {"cmpeqb", 0, {1}, {1, 1}, emulate_cmpeqb},
+ {"cmpgtsb", 0, {1}, {1, 1}, emulate_cmpgtsb},
+ {"copyb", 0, {1}, {1}, emulate_copyb},
+ {"loadb", ORC_STATIC_OPCODE_LOAD, {1}, {1}, emulate_loadb},
+ {"loadoffb", ORC_STATIC_OPCODE_LOAD | ORC_STATIC_OPCODE_SCALAR, {1}, {1, 4},
+ emulate_loadoffb},
+ {"loadupdb", ORC_STATIC_OPCODE_LOAD | ORC_STATIC_OPCODE_ITERATOR, {1}, {1},
+ emulate_loadupdb},
+ {"loadupib", ORC_STATIC_OPCODE_LOAD | ORC_STATIC_OPCODE_ITERATOR, {1}, {1},
+ emulate_loadupib},
+ {"loadpb",
+ ORC_STATIC_OPCODE_LOAD | ORC_STATIC_OPCODE_SCALAR |
+ ORC_STATIC_OPCODE_INVARIANT, {1}, {1}, emulate_loadpb},
+ {"ldresnearb", ORC_STATIC_OPCODE_LOAD | ORC_STATIC_OPCODE_SCALAR, {1}, {1, 4,
+ 4}, emulate_ldresnearb},
+ {"ldresnearl", ORC_STATIC_OPCODE_LOAD | ORC_STATIC_OPCODE_SCALAR, {4}, {4, 4,
+ 4}, emulate_ldresnearl},
+ {"ldreslinb", ORC_STATIC_OPCODE_LOAD | ORC_STATIC_OPCODE_SCALAR, {1}, {1, 4,
+ 4}, emulate_ldreslinb},
+ {"ldreslinl", ORC_STATIC_OPCODE_LOAD | ORC_STATIC_OPCODE_SCALAR, {4}, {4, 4,
+ 4}, emulate_ldreslinl},
+ {"maxsb", 0, {1}, {1, 1}, emulate_maxsb},
+ {"maxub", 0, {1}, {1, 1}, emulate_maxub},
+ {"minsb", 0, {1}, {1, 1}, emulate_minsb},
+ {"minub", 0, {1}, {1, 1}, emulate_minub},
+ {"mullb", 0, {1}, {1, 1}, emulate_mullb},
+ {"mulhsb", 0, {1}, {1, 1}, emulate_mulhsb},
+ {"mulhub", 0, {1}, {1, 1}, emulate_mulhub},
+ {"orb", 0, {1}, {1, 1}, emulate_orb},
+ {"shlb", ORC_STATIC_OPCODE_SCALAR, {1}, {1, 1}, emulate_shlb},
+ {"shrsb", ORC_STATIC_OPCODE_SCALAR, {1}, {1, 1}, emulate_shrsb},
+ {"shrub", ORC_STATIC_OPCODE_SCALAR, {1}, {1, 1}, emulate_shrub},
+ {"signb", 0, {1}, {1}, emulate_signb},
+ {"storeb", ORC_STATIC_OPCODE_STORE, {1}, {1}, emulate_storeb},
+ {"subb", 0, {1}, {1, 1}, emulate_subb},
+ {"subssb", 0, {1}, {1, 1}, emulate_subssb},
+ {"subusb", 0, {1}, {1, 1}, emulate_subusb},
+ {"xorb", 0, {1}, {1, 1}, emulate_xorb},
/* word ops */
- { "absw", 0, { 2 }, { 2 }, emulate_absw },
- { "addw", 0, { 2 }, { 2, 2 }, emulate_addw },
- { "addssw", 0, { 2 }, { 2, 2 }, emulate_addssw },
- { "addusw", 0, { 2 }, { 2, 2 }, emulate_addusw },
- { "andw", 0, { 2 }, { 2, 2 }, emulate_andw },
- { "andnw", 0, { 2 }, { 2, 2 }, emulate_andnw },
- { "avgsw", 0, { 2 }, { 2, 2 }, emulate_avgsw },
- { "avguw", 0, { 2 }, { 2, 2 }, emulate_avguw },
- { "cmpeqw", 0, { 2 }, { 2, 2 }, emulate_cmpeqw },
- { "cmpgtsw", 0, { 2 }, { 2, 2 }, emulate_cmpgtsw },
- { "copyw", 0, { 2 }, { 2 }, emulate_copyw },
- { "div255w", 0, { 2 }, { 2 }, emulate_div255w },
- { "divluw", 0, { 2 }, { 2, 2 }, emulate_divluw },
- { "loadw", ORC_STATIC_OPCODE_LOAD, { 2 }, { 2 }, emulate_loadw },
- { "loadoffw", ORC_STATIC_OPCODE_LOAD|ORC_STATIC_OPCODE_SCALAR, { 2 }, { 2, 4 }, emulate_loadoffw },
- { "loadpw", ORC_STATIC_OPCODE_LOAD|ORC_STATIC_OPCODE_SCALAR|ORC_STATIC_OPCODE_INVARIANT, { 2 }, { 2 }, emulate_loadpw },
- { "maxsw", 0, { 2 }, { 2, 2 }, emulate_maxsw },
- { "maxuw", 0, { 2 }, { 2, 2 }, emulate_maxuw },
- { "minsw", 0, { 2 }, { 2, 2 }, emulate_minsw },
- { "minuw", 0, { 2 }, { 2, 2 }, emulate_minuw },
- { "mullw", 0, { 2 }, { 2, 2 }, emulate_mullw },
- { "mulhsw", 0, { 2 }, { 2, 2 }, emulate_mulhsw },
- { "mulhuw", 0, { 2 }, { 2, 2 }, emulate_mulhuw },
- { "orw", 0, { 2 }, { 2, 2 }, emulate_orw },
- { "shlw", ORC_STATIC_OPCODE_SCALAR, { 2 }, { 2, 2 }, emulate_shlw },
- { "shrsw", ORC_STATIC_OPCODE_SCALAR, { 2 }, { 2, 2 }, emulate_shrsw },
- { "shruw", ORC_STATIC_OPCODE_SCALAR, { 2 }, { 2, 2 }, emulate_shruw },
- { "signw", 0, { 2 }, { 2 }, emulate_signw },
- { "storew", ORC_STATIC_OPCODE_STORE, { 2 }, { 2 }, emulate_storew },
- { "subw", 0, { 2 }, { 2, 2 }, emulate_subw },
- { "subssw", 0, { 2 }, { 2, 2 }, emulate_subssw },
- { "subusw", 0, { 2 }, { 2, 2 }, emulate_subusw },
- { "xorw", 0, { 2 }, { 2, 2 }, emulate_xorw },
+ {"absw", 0, {2}, {2}, emulate_absw},
+ {"addw", 0, {2}, {2, 2}, emulate_addw},
+ {"addssw", 0, {2}, {2, 2}, emulate_addssw},
+ {"addusw", 0, {2}, {2, 2}, emulate_addusw},
+ {"andw", 0, {2}, {2, 2}, emulate_andw},
+ {"andnw", 0, {2}, {2, 2}, emulate_andnw},
+ {"avgsw", 0, {2}, {2, 2}, emulate_avgsw},
+ {"avguw", 0, {2}, {2, 2}, emulate_avguw},
+ {"cmpeqw", 0, {2}, {2, 2}, emulate_cmpeqw},
+ {"cmpgtsw", 0, {2}, {2, 2}, emulate_cmpgtsw},
+ {"copyw", 0, {2}, {2}, emulate_copyw},
+ {"div255w", 0, {2}, {2}, emulate_div255w},
+ {"divluw", 0, {2}, {2, 2}, emulate_divluw},
+ {"loadw", ORC_STATIC_OPCODE_LOAD, {2}, {2}, emulate_loadw},
+ {"loadoffw", ORC_STATIC_OPCODE_LOAD | ORC_STATIC_OPCODE_SCALAR, {2}, {2, 4},
+ emulate_loadoffw},
+ {"loadpw",
+ ORC_STATIC_OPCODE_LOAD | ORC_STATIC_OPCODE_SCALAR |
+ ORC_STATIC_OPCODE_INVARIANT, {2}, {2}, emulate_loadpw},
+ {"maxsw", 0, {2}, {2, 2}, emulate_maxsw},
+ {"maxuw", 0, {2}, {2, 2}, emulate_maxuw},
+ {"minsw", 0, {2}, {2, 2}, emulate_minsw},
+ {"minuw", 0, {2}, {2, 2}, emulate_minuw},
+ {"mullw", 0, {2}, {2, 2}, emulate_mullw},
+ {"mulhsw", 0, {2}, {2, 2}, emulate_mulhsw},
+ {"mulhuw", 0, {2}, {2, 2}, emulate_mulhuw},
+ {"orw", 0, {2}, {2, 2}, emulate_orw},
+ {"shlw", ORC_STATIC_OPCODE_SCALAR, {2}, {2, 2}, emulate_shlw},
+ {"shrsw", ORC_STATIC_OPCODE_SCALAR, {2}, {2, 2}, emulate_shrsw},
+ {"shruw", ORC_STATIC_OPCODE_SCALAR, {2}, {2, 2}, emulate_shruw},
+ {"signw", 0, {2}, {2}, emulate_signw},
+ {"storew", ORC_STATIC_OPCODE_STORE, {2}, {2}, emulate_storew},
+ {"subw", 0, {2}, {2, 2}, emulate_subw},
+ {"subssw", 0, {2}, {2, 2}, emulate_subssw},
+ {"subusw", 0, {2}, {2, 2}, emulate_subusw},
+ {"xorw", 0, {2}, {2, 2}, emulate_xorw},
/* long ops */
- { "absl", 0, { 4 }, { 4 }, emulate_absl },
- { "addl", 0, { 4 }, { 4, 4 }, emulate_addl },
- { "addssl", 0, { 4 }, { 4, 4 }, emulate_addssl },
- { "addusl", 0, { 4 }, { 4, 4 }, emulate_addusl },
- { "andl", 0, { 4 }, { 4, 4 }, emulate_andl },
- { "andnl", 0, { 4 }, { 4, 4 }, emulate_andnl },
- { "avgsl", 0, { 4 }, { 4, 4 }, emulate_avgsl },
- { "avgul", 0, { 4 }, { 4, 4 }, emulate_avgul },
- { "cmpeql", 0, { 4 }, { 4, 4 }, emulate_cmpeql },
- { "cmpgtsl", 0, { 4 }, { 4, 4 }, emulate_cmpgtsl },
- { "copyl", 0, { 4 }, { 4 }, emulate_copyl },
- { "loadl", ORC_STATIC_OPCODE_LOAD, { 4 }, { 4 }, emulate_loadl },
- { "loadoffl", ORC_STATIC_OPCODE_LOAD|ORC_STATIC_OPCODE_SCALAR, { 4 }, { 4, 4 }, emulate_loadoffl },
- { "loadpl", ORC_STATIC_OPCODE_LOAD|ORC_STATIC_OPCODE_SCALAR|ORC_STATIC_OPCODE_INVARIANT, { 4 }, { 4 }, emulate_loadpl },
- { "maxsl", 0, { 4 }, { 4, 4 }, emulate_maxsl },
- { "maxul", 0, { 4 }, { 4, 4 }, emulate_maxul },
- { "minsl", 0, { 4 }, { 4, 4 }, emulate_minsl },
- { "minul", 0, { 4 }, { 4, 4 }, emulate_minul },
- { "mulll", 0, { 4 }, { 4, 4 }, emulate_mulll },
- { "mulhsl", 0, { 4 }, { 4, 4 }, emulate_mulhsl },
- { "mulhul", 0, { 4 }, { 4, 4 }, emulate_mulhul },
- { "orl", 0, { 4 }, { 4, 4 }, emulate_orl },
- { "shll", ORC_STATIC_OPCODE_SCALAR, { 4 }, { 4, 4 }, emulate_shll },
- { "shrsl", ORC_STATIC_OPCODE_SCALAR, { 4 }, { 4, 4 }, emulate_shrsl },
- { "shrul", ORC_STATIC_OPCODE_SCALAR, { 4 }, { 4, 4 }, emulate_shrul },
- { "signl", 0, { 4 }, { 4 }, emulate_signl },
- { "storel", ORC_STATIC_OPCODE_STORE, { 4 }, { 4 }, emulate_storel },
- { "subl", 0, { 4 }, { 4, 4 }, emulate_subl },
- { "subssl", 0, { 4 }, { 4, 4 }, emulate_subssl },
- { "subusl", 0, { 4 }, { 4, 4 }, emulate_subusl },
- { "xorl", 0, { 4 }, { 4, 4 }, emulate_xorl },
-
- { "loadq", ORC_STATIC_OPCODE_LOAD, { 8 }, { 8 }, emulate_loadq },
- { "loadpq", ORC_STATIC_OPCODE_LOAD|ORC_STATIC_OPCODE_SCALAR|ORC_STATIC_OPCODE_INVARIANT, { 8 }, { 8 }, emulate_loadpq },
- { "storeq", ORC_STATIC_OPCODE_STORE, { 8 }, { 8 }, emulate_storeq },
- { "splatw3q", 0, { 8 }, { 8 }, emulate_splatw3q },
- { "copyq", 0, { 8 }, { 8 }, emulate_copyq },
- { "cmpeqq", 0, { 8 }, { 8, 8 }, emulate_cmpeqq },
- { "cmpgtsq", 0, { 8 }, { 8, 8 }, emulate_cmpgtsq },
- { "andq", 0, { 8 }, { 8, 8 }, emulate_andq },
- { "andnq", 0, { 8 }, { 8, 8 }, emulate_andnq },
- { "orq", 0, { 8 }, { 8, 8 }, emulate_orq },
- { "xorq", 0, { 8 }, { 8, 8 }, emulate_xorq },
- { "addq", 0, { 8 }, { 8, 8 }, emulate_addq },
- { "subq", 0, { 8 }, { 8, 8 }, emulate_subq },
- { "shlq", ORC_STATIC_OPCODE_SCALAR, { 8 }, { 8, 8 }, emulate_shlq },
- { "shrsq", ORC_STATIC_OPCODE_SCALAR, { 8 }, { 8, 8 }, emulate_shrsq },
- { "shruq", ORC_STATIC_OPCODE_SCALAR, { 8 }, { 8, 8 }, emulate_shruq },
-
- { "convsbw", 0, { 2 }, { 1 }, emulate_convsbw },
- { "convubw", 0, { 2 }, { 1 }, emulate_convubw },
- { "splatbw", 0, { 2 }, { 1 }, emulate_splatbw },
- { "splatbl", 0, { 4 }, { 1 }, emulate_splatbl },
-
- { "convswl", 0, { 4 }, { 2 }, emulate_convswl },
- { "convuwl", 0, { 4 }, { 2 }, emulate_convuwl },
- { "convslq", 0, { 8 }, { 4 }, emulate_convslq },
- { "convulq", 0, { 8 }, { 4 }, emulate_convulq },
-
- { "convwb", 0, { 1 }, { 2 }, emulate_convwb },
- { "convhwb", 0, { 1 }, { 2 }, emulate_convhwb },
- { "convssswb", 0, { 1 }, { 2 }, emulate_convssswb },
- { "convsuswb", 0, { 1 }, { 2 }, emulate_convsuswb },
- { "convusswb", 0, { 1 }, { 2 }, emulate_convusswb },
- { "convuuswb", 0, { 1 }, { 2 }, emulate_convuuswb },
-
- { "convlw", 0, { 2 }, { 4 }, emulate_convlw },
- { "convhlw", 0, { 2 }, { 4 }, emulate_convhlw },
- { "convssslw", 0, { 2 }, { 4 }, emulate_convssslw },
- { "convsuslw", 0, { 2 }, { 4 }, emulate_convsuslw },
- { "convusslw", 0, { 2 }, { 4 }, emulate_convusslw },
- { "convuuslw", 0, { 2 }, { 4 }, emulate_convuuslw },
-
- { "convql", 0, { 4 }, { 8 }, emulate_convql },
- { "convsssql", 0, { 4 }, { 8 }, emulate_convsssql },
- { "convsusql", 0, { 4 }, { 8 }, emulate_convsusql },
- { "convussql", 0, { 4 }, { 8 }, emulate_convussql },
- { "convuusql", 0, { 4 }, { 8 }, emulate_convuusql },
-
- { "mulsbw", 0, { 2 }, { 1, 1 }, emulate_mulsbw },
- { "mulubw", 0, { 2 }, { 1, 1 }, emulate_mulubw },
- { "mulswl", 0, { 4 }, { 2, 2 }, emulate_mulswl },
- { "muluwl", 0, { 4 }, { 2, 2 }, emulate_muluwl },
- { "mulslq", 0, { 8 }, { 4, 4 }, emulate_mulslq },
- { "mululq", 0, { 8 }, { 4, 4 }, emulate_mululq },
+ {"absl", 0, {4}, {4}, emulate_absl},
+ {"addl", 0, {4}, {4, 4}, emulate_addl},
+ {"addssl", 0, {4}, {4, 4}, emulate_addssl},
+ {"addusl", 0, {4}, {4, 4}, emulate_addusl},
+ {"andl", 0, {4}, {4, 4}, emulate_andl},
+ {"andnl", 0, {4}, {4, 4}, emulate_andnl},
+ {"avgsl", 0, {4}, {4, 4}, emulate_avgsl},
+ {"avgul", 0, {4}, {4, 4}, emulate_avgul},
+ {"cmpeql", 0, {4}, {4, 4}, emulate_cmpeql},
+ {"cmpgtsl", 0, {4}, {4, 4}, emulate_cmpgtsl},
+ {"copyl", 0, {4}, {4}, emulate_copyl},
+ {"loadl", ORC_STATIC_OPCODE_LOAD, {4}, {4}, emulate_loadl},
+ {"loadoffl", ORC_STATIC_OPCODE_LOAD | ORC_STATIC_OPCODE_SCALAR, {4}, {4, 4},
+ emulate_loadoffl},
+ {"loadpl",
+ ORC_STATIC_OPCODE_LOAD | ORC_STATIC_OPCODE_SCALAR |
+ ORC_STATIC_OPCODE_INVARIANT, {4}, {4}, emulate_loadpl},
+ {"maxsl", 0, {4}, {4, 4}, emulate_maxsl},
+ {"maxul", 0, {4}, {4, 4}, emulate_maxul},
+ {"minsl", 0, {4}, {4, 4}, emulate_minsl},
+ {"minul", 0, {4}, {4, 4}, emulate_minul},
+ {"mulll", 0, {4}, {4, 4}, emulate_mulll},
+ {"mulhsl", 0, {4}, {4, 4}, emulate_mulhsl},
+ {"mulhul", 0, {4}, {4, 4}, emulate_mulhul},
+ {"orl", 0, {4}, {4, 4}, emulate_orl},
+ {"shll", ORC_STATIC_OPCODE_SCALAR, {4}, {4, 4}, emulate_shll},
+ {"shrsl", ORC_STATIC_OPCODE_SCALAR, {4}, {4, 4}, emulate_shrsl},
+ {"shrul", ORC_STATIC_OPCODE_SCALAR, {4}, {4, 4}, emulate_shrul},
+ {"signl", 0, {4}, {4}, emulate_signl},
+ {"storel", ORC_STATIC_OPCODE_STORE, {4}, {4}, emulate_storel},
+ {"subl", 0, {4}, {4, 4}, emulate_subl},
+ {"subssl", 0, {4}, {4, 4}, emulate_subssl},
+ {"subusl", 0, {4}, {4, 4}, emulate_subusl},
+ {"xorl", 0, {4}, {4, 4}, emulate_xorl},
+
+ {"loadq", ORC_STATIC_OPCODE_LOAD, {8}, {8}, emulate_loadq},
+ {"loadpq",
+ ORC_STATIC_OPCODE_LOAD | ORC_STATIC_OPCODE_SCALAR |
+ ORC_STATIC_OPCODE_INVARIANT, {8}, {8}, emulate_loadpq},
+ {"storeq", ORC_STATIC_OPCODE_STORE, {8}, {8}, emulate_storeq},
+ {"splatw3q", 0, {8}, {8}, emulate_splatw3q},
+ {"copyq", 0, {8}, {8}, emulate_copyq},
+ {"cmpeqq", 0, {8}, {8, 8}, emulate_cmpeqq},
+ {"cmpgtsq", 0, {8}, {8, 8}, emulate_cmpgtsq},
+ {"andq", 0, {8}, {8, 8}, emulate_andq},
+ {"andnq", 0, {8}, {8, 8}, emulate_andnq},
+ {"orq", 0, {8}, {8, 8}, emulate_orq},
+ {"xorq", 0, {8}, {8, 8}, emulate_xorq},
+ {"addq", 0, {8}, {8, 8}, emulate_addq},
+ {"subq", 0, {8}, {8, 8}, emulate_subq},
+ {"shlq", ORC_STATIC_OPCODE_SCALAR, {8}, {8, 8}, emulate_shlq},
+ {"shrsq", ORC_STATIC_OPCODE_SCALAR, {8}, {8, 8}, emulate_shrsq},
+ {"shruq", ORC_STATIC_OPCODE_SCALAR, {8}, {8, 8}, emulate_shruq},
+
+ {"convsbw", 0, {2}, {1}, emulate_convsbw},
+ {"convubw", 0, {2}, {1}, emulate_convubw},
+ {"splatbw", 0, {2}, {1}, emulate_splatbw},
+ {"splatbl", 0, {4}, {1}, emulate_splatbl},
+
+ {"convswl", 0, {4}, {2}, emulate_convswl},
+ {"convuwl", 0, {4}, {2}, emulate_convuwl},
+ {"convslq", 0, {8}, {4}, emulate_convslq},
+ {"convulq", 0, {8}, {4}, emulate_convulq},
+
+ {"convwb", 0, {1}, {2}, emulate_convwb},
+ {"convhwb", 0, {1}, {2}, emulate_convhwb},
+ {"convssswb", 0, {1}, {2}, emulate_convssswb},
+ {"convsuswb", 0, {1}, {2}, emulate_convsuswb},
+ {"convusswb", 0, {1}, {2}, emulate_convusswb},
+ {"convuuswb", 0, {1}, {2}, emulate_convuuswb},
+
+ {"convlw", 0, {2}, {4}, emulate_convlw},
+ {"convhlw", 0, {2}, {4}, emulate_convhlw},
+ {"convssslw", 0, {2}, {4}, emulate_convssslw},
+ {"convsuslw", 0, {2}, {4}, emulate_convsuslw},
+ {"convusslw", 0, {2}, {4}, emulate_convusslw},
+ {"convuuslw", 0, {2}, {4}, emulate_convuuslw},
+
+ {"convql", 0, {4}, {8}, emulate_convql},
+ {"convsssql", 0, {4}, {8}, emulate_convsssql},
+ {"convsusql", 0, {4}, {8}, emulate_convsusql},
+ {"convussql", 0, {4}, {8}, emulate_convussql},
+ {"convuusql", 0, {4}, {8}, emulate_convuusql},
+
+ {"mulsbw", 0, {2}, {1, 1}, emulate_mulsbw},
+ {"mulubw", 0, {2}, {1, 1}, emulate_mulubw},
+ {"mulswl", 0, {4}, {2, 2}, emulate_mulswl},
+ {"muluwl", 0, {4}, {2, 2}, emulate_muluwl},
+ {"mulslq", 0, {8}, {4, 4}, emulate_mulslq},
+ {"mululq", 0, {8}, {4, 4}, emulate_mululq},
/* accumulators */
- { "accw", ORC_STATIC_OPCODE_ACCUMULATOR, { 2 }, { 2 }, emulate_accw },
- { "accl", ORC_STATIC_OPCODE_ACCUMULATOR, { 4 }, { 4 }, emulate_accl },
- { "accsadubl", ORC_STATIC_OPCODE_ACCUMULATOR, { 4 }, { 1, 1 }, emulate_accsadubl },
-
- { "swapw", 0, { 2 }, { 2 }, emulate_swapw },
- { "swapl", 0, { 4 }, { 4 }, emulate_swapl },
- { "swapwl", 0, { 4 }, { 4 }, emulate_swapwl },
- { "swapq", 0, { 8 }, { 8 }, emulate_swapq },
- { "swaplq", 0, { 8 }, { 8 }, emulate_swaplq },
- { "select0wb", 0, { 1 }, { 2 }, emulate_select0wb },
- { "select1wb", 0, { 1 }, { 2 }, emulate_select1wb },
- { "select0lw", 0, { 2 }, { 4 }, emulate_select0lw },
- { "select1lw", 0, { 2 }, { 4 }, emulate_select1lw },
- { "select0ql", 0, { 4 }, { 8 }, emulate_select0ql },
- { "select1ql", 0, { 4 }, { 8 }, emulate_select1ql },
- { "mergelq", 0, { 8 }, { 4, 4 }, emulate_mergelq },
- { "mergewl", 0, { 4 }, { 2, 2 }, emulate_mergewl },
- { "mergebw", 0, { 2 }, { 1, 1 }, emulate_mergebw },
- { "splitql", 0, { 4, 4 }, { 8 }, emulate_splitql },
- { "splitlw", 0, { 2, 2 }, { 4 }, emulate_splitlw },
- { "splitwb", 0, { 1, 1 }, { 2 }, emulate_splitwb },
+ {"accw", ORC_STATIC_OPCODE_ACCUMULATOR, {2}, {2}, emulate_accw},
+ {"accl", ORC_STATIC_OPCODE_ACCUMULATOR, {4}, {4}, emulate_accl},
+ {"accsadubl", ORC_STATIC_OPCODE_ACCUMULATOR, {4}, {1, 1}, emulate_accsadubl},
+
+ {"swapw", 0, {2}, {2}, emulate_swapw},
+ {"swapl", 0, {4}, {4}, emulate_swapl},
+ {"swapwl", 0, {4}, {4}, emulate_swapwl},
+ {"swapq", 0, {8}, {8}, emulate_swapq},
+ {"swaplq", 0, {8}, {8}, emulate_swaplq},
+ {"select0wb", 0, {1}, {2}, emulate_select0wb},
+ {"select1wb", 0, {1}, {2}, emulate_select1wb},
+ {"select0lw", 0, {2}, {4}, emulate_select0lw},
+ {"select1lw", 0, {2}, {4}, emulate_select1lw},
+ {"select0ql", 0, {4}, {8}, emulate_select0ql},
+ {"select1ql", 0, {4}, {8}, emulate_select1ql},
+ {"mergelq", 0, {8}, {4, 4}, emulate_mergelq},
+ {"mergewl", 0, {4}, {2, 2}, emulate_mergewl},
+ {"mergebw", 0, {2}, {1, 1}, emulate_mergebw},
+ {"splitql", 0, {4, 4}, {8}, emulate_splitql},
+ {"splitlw", 0, {2, 2}, {4}, emulate_splitlw},
+ {"splitwb", 0, {1, 1}, {2}, emulate_splitwb},
/* float ops */
- { "addf", ORC_STATIC_OPCODE_FLOAT, { 4 }, { 4, 4 }, emulate_addf },
- { "subf", ORC_STATIC_OPCODE_FLOAT, { 4 }, { 4, 4 }, emulate_subf },
- { "mulf", ORC_STATIC_OPCODE_FLOAT, { 4 }, { 4, 4 }, emulate_mulf },
- { "divf", ORC_STATIC_OPCODE_FLOAT, { 4 }, { 4, 4 }, emulate_divf },
- { "sqrtf", ORC_STATIC_OPCODE_FLOAT, { 4 }, { 4 }, emulate_sqrtf },
- { "maxf", ORC_STATIC_OPCODE_FLOAT, { 4 }, { 4, 4 }, emulate_maxf },
- { "minf", ORC_STATIC_OPCODE_FLOAT, { 4 }, { 4, 4 }, emulate_minf },
- { "cmpeqf", ORC_STATIC_OPCODE_FLOAT_SRC, { 4 }, { 4, 4 }, emulate_cmpeqf },
- { "cmpltf", ORC_STATIC_OPCODE_FLOAT_SRC, { 4 }, { 4, 4 }, emulate_cmpltf },
- { "cmplef", ORC_STATIC_OPCODE_FLOAT_SRC, { 4 }, { 4, 4 }, emulate_cmplef },
- { "convfl", ORC_STATIC_OPCODE_FLOAT_SRC, { 4 }, { 4 }, emulate_convfl },
- { "convlf", ORC_STATIC_OPCODE_FLOAT_DEST, { 4 }, { 4 }, emulate_convlf },
+ {"addf", ORC_STATIC_OPCODE_FLOAT, {4}, {4, 4}, emulate_addf},
+ {"subf", ORC_STATIC_OPCODE_FLOAT, {4}, {4, 4}, emulate_subf},
+ {"mulf", ORC_STATIC_OPCODE_FLOAT, {4}, {4, 4}, emulate_mulf},
+ {"divf", ORC_STATIC_OPCODE_FLOAT, {4}, {4, 4}, emulate_divf},
+ {"sqrtf", ORC_STATIC_OPCODE_FLOAT, {4}, {4}, emulate_sqrtf},
+ {"maxf", ORC_STATIC_OPCODE_FLOAT, {4}, {4, 4}, emulate_maxf},
+ {"minf", ORC_STATIC_OPCODE_FLOAT, {4}, {4, 4}, emulate_minf},
+ {"cmpeqf", ORC_STATIC_OPCODE_FLOAT_SRC, {4}, {4, 4}, emulate_cmpeqf},
+ {"cmpltf", ORC_STATIC_OPCODE_FLOAT_SRC, {4}, {4, 4}, emulate_cmpltf},
+ {"cmplef", ORC_STATIC_OPCODE_FLOAT_SRC, {4}, {4, 4}, emulate_cmplef},
+ {"convfl", ORC_STATIC_OPCODE_FLOAT_SRC, {4}, {4}, emulate_convfl},
+ {"convlf", ORC_STATIC_OPCODE_FLOAT_DEST, {4}, {4}, emulate_convlf},
/* double ops */
- { "addd", ORC_STATIC_OPCODE_FLOAT, { 8 }, { 8, 8 }, emulate_addd },
- { "subd", ORC_STATIC_OPCODE_FLOAT, { 8 }, { 8, 8 }, emulate_subd },
- { "muld", ORC_STATIC_OPCODE_FLOAT, { 8 }, { 8, 8 }, emulate_muld },
- { "divd", ORC_STATIC_OPCODE_FLOAT, { 8 }, { 8, 8 }, emulate_divd },
- { "sqrtd", ORC_STATIC_OPCODE_FLOAT, { 8 }, { 8 }, emulate_sqrtd },
- { "maxd", ORC_STATIC_OPCODE_FLOAT, { 8 }, { 8, 8 }, emulate_maxd },
- { "mind", ORC_STATIC_OPCODE_FLOAT, { 8 }, { 8, 8 }, emulate_mind },
- { "cmpeqd", ORC_STATIC_OPCODE_FLOAT_SRC, { 8 }, { 8, 8 }, emulate_cmpeqd },
- { "cmpltd", ORC_STATIC_OPCODE_FLOAT_SRC, { 8 }, { 8, 8 }, emulate_cmpltd },
- { "cmpled", ORC_STATIC_OPCODE_FLOAT_SRC, { 8 }, { 8, 8 }, emulate_cmpled },
- { "convdl", ORC_STATIC_OPCODE_FLOAT_SRC, { 4 }, { 8 }, emulate_convdl },
- { "convld", ORC_STATIC_OPCODE_FLOAT_DEST, { 8 }, { 4 }, emulate_convld },
- { "convfd", ORC_STATIC_OPCODE_FLOAT, { 8 }, { 4 }, emulate_convfd },
- { "convdf", ORC_STATIC_OPCODE_FLOAT, { 4 }, { 8 }, emulate_convdf },
-
- { "" }
+ {"addd", ORC_STATIC_OPCODE_FLOAT, {8}, {8, 8}, emulate_addd},
+ {"subd", ORC_STATIC_OPCODE_FLOAT, {8}, {8, 8}, emulate_subd},
+ {"muld", ORC_STATIC_OPCODE_FLOAT, {8}, {8, 8}, emulate_muld},
+ {"divd", ORC_STATIC_OPCODE_FLOAT, {8}, {8, 8}, emulate_divd},
+ {"sqrtd", ORC_STATIC_OPCODE_FLOAT, {8}, {8}, emulate_sqrtd},
+ {"maxd", ORC_STATIC_OPCODE_FLOAT, {8}, {8, 8}, emulate_maxd},
+ {"mind", ORC_STATIC_OPCODE_FLOAT, {8}, {8, 8}, emulate_mind},
+ {"cmpeqd", ORC_STATIC_OPCODE_FLOAT_SRC, {8}, {8, 8}, emulate_cmpeqd},
+ {"cmpltd", ORC_STATIC_OPCODE_FLOAT_SRC, {8}, {8, 8}, emulate_cmpltd},
+ {"cmpled", ORC_STATIC_OPCODE_FLOAT_SRC, {8}, {8, 8}, emulate_cmpled},
+ {"convdl", ORC_STATIC_OPCODE_FLOAT_SRC, {4}, {8}, emulate_convdl},
+ {"convld", ORC_STATIC_OPCODE_FLOAT_DEST, {8}, {4}, emulate_convld},
+ {"convfd", ORC_STATIC_OPCODE_FLOAT, {8}, {4}, emulate_convfd},
+ {"convdf", ORC_STATIC_OPCODE_FLOAT, {4}, {8}, emulate_convdf},
+
+ {""}
};
void
@@ -507,5 +536,3 @@ orc_opcode_init (void)
{
orc_opcode_register_static (opcodes, "sys");
}
-
-
diff --git a/orc/orcparse.c b/orc/orcparse.c
index 16fdaf4..86fee89 100644
--- a/orc/orcparse.c
+++ b/orc/orcparse.c
@@ -18,7 +18,8 @@
typedef struct _OrcParser OrcParser;
-struct _OrcParser {
+struct _OrcParser
+{
const char *code;
int code_length;
@@ -41,34 +42,34 @@ struct _OrcParser {
int log_alloc;
};
-static void orc_parse_get_line (OrcParser *parser);
-static OrcStaticOpcode * get_opcode (OrcParser *parser, const char *opcode);
-static void orc_parse_log (OrcParser *parser, const char *format, ...);
-static int opcode_n_args (OrcStaticOpcode *opcode);
-static void orc_parse_sanity_check (OrcParser *parser, OrcProgram *program);
+static void orc_parse_get_line (OrcParser * parser);
+static OrcStaticOpcode *get_opcode (OrcParser * parser, const char *opcode);
+static void orc_parse_log (OrcParser * parser, const char *format, ...);
+static int opcode_n_args (OrcStaticOpcode * opcode);
+static void orc_parse_sanity_check (OrcParser * parser, OrcProgram * program);
int
-orc_parse (const char *code, OrcProgram ***programs)
+orc_parse (const char *code, OrcProgram *** programs)
{
return orc_parse_full (code, programs, NULL);
}
int
-orc_parse_full (const char *code, OrcProgram ***programs, char **log)
+orc_parse_full (const char *code, OrcProgram *** programs, char **log)
{
OrcParser _parser;
OrcParser *parser = &_parser;
char *init_function = NULL;
- memset (parser, 0, sizeof(*parser));
+ memset (parser, 0, sizeof (*parser));
parser->code = code;
parser->code_length = strlen (code);
parser->line_number = 0;
parser->p = code;
parser->opcode_set = orc_opcode_set_get ("sys");
- parser->log = malloc(100);
+ parser->log = malloc (100);
parser->log_alloc = 100;
parser->log_size = 0;
parser->log[0] = 0;
@@ -80,13 +81,15 @@ orc_parse_full (const char *code, OrcProgram ***programs, char **log)
int n_tokens;
orc_parse_get_line (parser);
- if (parser->program) orc_program_set_line (parser->program, parser->line_number);
+ if (parser->program)
+ orc_program_set_line (parser->program, parser->line_number);
p = parser->line;
end = p + strlen (p);
//printf("%d: %s\n", parser->line_number, parser->line);
- while (p[0] == ' ' || p[0] == '\t') p++;
+ while (p[0] == ' ' || p[0] == '\t')
+ p++;
if (p[0] == 0) {
continue;
@@ -100,11 +103,14 @@ orc_parse_full (const char *code, OrcProgram ***programs, char **log)
n_tokens = 0;
while (p < end) {
- while (p[0] != 0 && (p[0] == ' ' || p[0] == '\t')) p++;
- if (p[0] == 0 || p[0] == '#') break;
+ while (p[0] != 0 && (p[0] == ' ' || p[0] == '\t'))
+ p++;
+ if (p[0] == 0 || p[0] == '#')
+ break;
token[n_tokens] = p;
- while (p[0] != 0 && p[0] != ' ' && p[0] != '\t' && p[0] != ',') p++;
+ while (p[0] != 0 && p[0] != ' ' && p[0] != '\t' && p[0] != ',')
+ p++;
n_tokens++;
p[0] = 0;
@@ -117,7 +123,7 @@ orc_parse_full (const char *code, OrcProgram ***programs, char **log)
{
int i;
- for(i=0;i<n_tokens;i++){
+ for (i = 0; i < n_tokens; i++) {
//printf("'%s' ", token[i]);
}
//printf("\n");
@@ -133,7 +139,7 @@ orc_parse_full (const char *code, OrcProgram ***programs, char **log)
if (parser->n_programs == parser->n_programs_alloc) {
parser->n_programs_alloc += 32;
parser->programs = realloc (parser->programs,
- sizeof(OrcProgram *)*parser->n_programs_alloc);
+ sizeof (OrcProgram *) * parser->n_programs_alloc);
}
parser->programs[parser->n_programs] = parser->program;
parser->n_programs++;
@@ -142,24 +148,26 @@ orc_parse_full (const char *code, OrcProgram ***programs, char **log)
free (init_function);
init_function = NULL;
if (n_tokens < 2) {
- orc_parse_log (parser, "error: line %d: .init without function name\n",
+ orc_parse_log (parser,
+ "error: line %d: .init without function name\n",
parser->line_number);
} else {
init_function = strdup (token[1]);
}
} else if (strcmp (token[0], ".flags") == 0) {
int i;
- for(i=1;i<n_tokens;i++){
+ for (i = 1; i < n_tokens; i++) {
if (!strcmp (token[i], "2d")) {
orc_program_set_2d (parser->program);
}
}
} else if (strcmp (token[0], ".n") == 0) {
int i;
- for(i=1;i<n_tokens;i++){
+ for (i = 1; i < n_tokens; i++) {
if (strcmp (token[i], "mult") == 0) {
if (i == n_tokens - 1) {
- orc_parse_log (parser, "error: line %d: .n mult requires multiple value\n",
+ orc_parse_log (parser,
+ "error: line %d: .n mult requires multiple value\n",
parser->line_number);
} else {
orc_program_set_n_multiple (parser->program,
@@ -168,7 +176,8 @@ orc_parse_full (const char *code, OrcProgram ***programs, char **log)
}
} else if (strcmp (token[i], "min") == 0) {
if (i == n_tokens - 1) {
- orc_parse_log (parser, "error: line %d: .n mult requires multiple value\n",
+ orc_parse_log (parser,
+ "error: line %d: .n mult requires multiple value\n",
parser->line_number);
} else {
orc_program_set_n_minimum (parser->program,
@@ -177,7 +186,8 @@ orc_parse_full (const char *code, OrcProgram ***programs, char **log)
}
} else if (strcmp (token[i], "max") == 0) {
if (i == n_tokens - 1) {
- orc_parse_log (parser, "error: line %d: .n mult requires multiple value\n",
+ orc_parse_log (parser,
+ "error: line %d: .n mult requires multiple value\n",
parser->line_number);
} else {
orc_program_set_n_maximum (parser->program,
@@ -197,13 +207,14 @@ orc_parse_full (const char *code, OrcProgram ***programs, char **log)
int var;
int i;
var = orc_program_add_source (parser->program, size, token[2]);
- for(i=3;i<n_tokens;i++){
+ for (i = 3; i < n_tokens; i++) {
if (strcmp (token[i], "align") == 0) {
if (i == n_tokens - 1) {
- orc_parse_log (parser, "error: line %d: .source align requires alignment value\n",
+ orc_parse_log (parser,
+ "error: line %d: .source align requires alignment value\n",
parser->line_number);
} else {
- int alignment = strtol (token[i+1], NULL, 0);
+ int alignment = strtol (token[i + 1], NULL, 0);
orc_program_set_var_alignment (parser->program, var, alignment);
i++;
}
@@ -216,13 +227,14 @@ orc_parse_full (const char *code, OrcProgram ***programs, char **log)
int var;
int i;
var = orc_program_add_destination (parser->program, size, token[2]);
- for(i=3;i<n_tokens;i++){
+ for (i = 3; i < n_tokens; i++) {
if (strcmp (token[i], "align") == 0) {
if (i == n_tokens - 1) {
- orc_parse_log (parser, "error: line %d: .source align requires alignment value\n",
+ orc_parse_log (parser,
+ "error: line %d: .source align requires alignment value\n",
parser->line_number);
} else {
- int alignment = strtol (token[i+1], NULL, 0);
+ int alignment = strtol (token[i + 1], NULL, 0);
orc_program_set_var_alignment (parser->program, var, alignment);
i++;
}
@@ -249,7 +261,8 @@ orc_parse_full (const char *code, OrcProgram ***programs, char **log)
} else if (strcmp (token[0], ".const") == 0) {
int size = strtol (token[1], NULL, 0);
- orc_program_add_constant_str (parser->program, size, token[3], token[2]);
+ orc_program_add_constant_str (parser->program, size, token[3],
+ token[2]);
} else if (strcmp (token[0], ".floatparam") == 0) {
int size = strtol (token[1], NULL, 0);
orc_program_add_parameter_float (parser->program, size, token[2]);
@@ -280,12 +293,14 @@ orc_parse_full (const char *code, OrcProgram ***programs, char **log)
int i;
if (n_tokens != 1 + offset + n_args) {
- orc_parse_log (parser, "error: line %d: too %s arguments for %s (expected %d)\n",
- parser->line_number, (n_tokens < 1+offset+n_args) ? "few" : "many",
- token[offset], n_args);
+ orc_parse_log (parser,
+ "error: line %d: too %s arguments for %s (expected %d)\n",
+ parser->line_number,
+ (n_tokens < 1 + offset + n_args) ? "few" : "many", token[offset],
+ n_args);
}
- for(i=offset+1;i<n_tokens;i++){
+ for (i = offset + 1; i < n_tokens; i++) {
char *end;
double unused ORC_GNUC_UNUSED;
@@ -298,18 +313,18 @@ orc_parse_full (const char *code, OrcProgram ***programs, char **log)
if (n_tokens - offset == 5) {
orc_program_append_str_2 (parser->program, token[offset], flags,
- token[offset+1], token[offset+2], token[offset+3], token[offset+4]);
+ token[offset + 1], token[offset + 2], token[offset + 3],
+ token[offset + 4]);
} else if (n_tokens - offset == 4) {
orc_program_append_str_2 (parser->program, token[offset], flags,
- token[offset+1], token[offset+2], token[offset+3], NULL);
+ token[offset + 1], token[offset + 2], token[offset + 3], NULL);
} else {
orc_program_append_str_2 (parser->program, token[offset], flags,
- token[offset+1], token[offset+2], NULL, NULL);
+ token[offset + 1], token[offset + 2], NULL, NULL);
}
} else {
orc_parse_log (parser, "error: line %d: unknown opcode: %s\n",
- parser->line_number,
- token[offset]);
+ parser->line_number, token[offset]);
}
}
}
@@ -318,7 +333,8 @@ orc_parse_full (const char *code, OrcProgram ***programs, char **log)
orc_parse_sanity_check (parser, parser->program);
}
- if (parser->line) free (parser->line);
+ if (parser->line)
+ free (parser->line);
if (log) {
*log = parser->log;
@@ -335,11 +351,11 @@ orc_parse_full (const char *code, OrcProgram ***programs, char **log)
}
static OrcStaticOpcode *
-get_opcode (OrcParser *parser, const char *opcode)
+get_opcode (OrcParser * parser, const char *opcode)
{
int i;
- for(i=0;i<parser->opcode_set->n_opcodes;i++){
+ for (i = 0; i < parser->opcode_set->n_opcodes; i++) {
if (strcmp (opcode, parser->opcode_set->opcodes[i].name) == 0) {
return parser->opcode_set->opcodes + i;
}
@@ -349,28 +365,30 @@ get_opcode (OrcParser *parser, const char *opcode)
}
static int
-opcode_n_args (OrcStaticOpcode *opcode)
+opcode_n_args (OrcStaticOpcode * opcode)
{
int i;
int n = 0;
- for(i=0;i<ORC_STATIC_OPCODE_N_DEST;i++){
- if (opcode->dest_size[i] != 0) n++;
+ for (i = 0; i < ORC_STATIC_OPCODE_N_DEST; i++) {
+ if (opcode->dest_size[i] != 0)
+ n++;
}
- for(i=0;i<ORC_STATIC_OPCODE_N_SRC;i++){
- if (opcode->src_size[i] != 0) n++;
+ for (i = 0; i < ORC_STATIC_OPCODE_N_SRC; i++) {
+ if (opcode->src_size[i] != 0)
+ n++;
}
return n;
}
static void
-orc_parse_log_valist (OrcParser *parser, const char *format, va_list args)
+orc_parse_log_valist (OrcParser * parser, const char *format, va_list args)
{
char s[100];
int len;
-
+
if (parser->error_program != parser->program) {
- sprintf(s, "In function %s:\n", parser->program->name);
- len = strlen(s);
+ sprintf (s, "In function %s:\n", parser->program->name);
+ len = strlen (s);
if (parser->log_size + len + 1 >= parser->log_alloc) {
parser->log_alloc += 100;
@@ -382,8 +400,8 @@ orc_parse_log_valist (OrcParser *parser, const char *format, va_list args)
parser->error_program = parser->program;
}
- vsprintf(s, format, args);
- len = strlen(s);
+ vsprintf (s, format, args);
+ len = strlen (s);
if (parser->log_size + len + 1 >= parser->log_alloc) {
parser->log_alloc += 100;
@@ -395,7 +413,7 @@ orc_parse_log_valist (OrcParser *parser, const char *format, va_list args)
}
static void
-orc_parse_log (OrcParser *parser, const char *format, ...)
+orc_parse_log (OrcParser * parser, const char *format, ...)
{
va_list var_args;
@@ -405,7 +423,7 @@ orc_parse_log (OrcParser *parser, const char *format, ...)
}
static void
-orc_parse_get_line (OrcParser *parser)
+orc_parse_get_line (OrcParser * parser)
{
const char *end;
int n;
@@ -434,15 +452,17 @@ orc_parse_get_line (OrcParser *parser)
static void
-orc_parse_sanity_check (OrcParser *parser, OrcProgram *program)
+orc_parse_sanity_check (OrcParser * parser, OrcProgram * program)
{
int i;
int j;
- for(i=0;i<=ORC_VAR_T15;i++) {
- if (program->vars[i].size == 0) continue;
- for(j=i+1;j<=ORC_VAR_T15;j++) {
- if (program->vars[j].size == 0) continue;
+ for (i = 0; i <= ORC_VAR_T15; i++) {
+ if (program->vars[i].size == 0)
+ continue;
+ for (j = i + 1; j <= ORC_VAR_T15; j++) {
+ if (program->vars[j].size == 0)
+ continue;
if (strcmp (program->vars[i].name, program->vars[j].name) == 0) {
orc_parse_log (parser, "error: duplicate variable name: %s\n",
@@ -451,22 +471,25 @@ orc_parse_sanity_check (OrcParser *parser, OrcProgram *program)
}
}
- for(i=0;i<program->n_insns;i++){
+ for (i = 0; i < program->n_insns; i++) {
OrcInstruction *insn = program->insns + i;
OrcStaticOpcode *opcode = insn->opcode;
- for(j=0;j<ORC_STATIC_OPCODE_N_DEST;j++){
- if (opcode->dest_size[j] == 0) continue;
+ for (j = 0; j < ORC_STATIC_OPCODE_N_DEST; j++) {
+ if (opcode->dest_size[j] == 0)
+ continue;
if (program->vars[insn->dest_args[j]].used &&
program->vars[insn->dest_args[j]].vartype == ORC_VAR_TYPE_DEST) {
- orc_parse_log (parser, "error: destination \"%s\" written multiple times\n",
+ orc_parse_log (parser,
+ "error: destination \"%s\" written multiple times\n",
program->vars[insn->dest_args[j]].name);
}
program->vars[insn->dest_args[j]].used = TRUE;
}
- for(j=0;j<ORC_STATIC_OPCODE_N_SRC;j++){
- if (opcode->src_size[j] == 0) continue;
+ for (j = 0; j < ORC_STATIC_OPCODE_N_SRC; j++) {
+ if (opcode->src_size[j] == 0)
+ continue;
if (program->vars[insn->src_args[j]].used &&
program->vars[insn->src_args[j]].vartype == ORC_VAR_TYPE_SRC) {
orc_parse_log (parser, "error: source \"%s\" read multiple times\n",
@@ -474,7 +497,8 @@ orc_parse_sanity_check (OrcParser *parser, OrcProgram *program)
}
if (!program->vars[insn->src_args[j]].used &&
program->vars[insn->src_args[j]].vartype == ORC_VAR_TYPE_TEMP) {
- orc_parse_log (parser, "error: variable \"%s\" used before being written\n",
+ orc_parse_log (parser,
+ "error: variable \"%s\" used before being written\n",
program->vars[insn->src_args[j]].name);
}
}
@@ -484,8 +508,7 @@ orc_parse_sanity_check (OrcParser *parser, OrcProgram *program)
}
const char *
-orc_parse_get_init_function (OrcProgram *program)
+orc_parse_get_init_function (OrcProgram * program)
{
return program->init_function;
}
-
diff --git a/orc/orcpowerpc.c b/orc/orcpowerpc.c
index 1d9c6c8..c7d92c1 100644
--- a/orc/orcpowerpc.c
+++ b/orc/orcpowerpc.c
@@ -18,12 +18,12 @@
*/
-void orc_compiler_powerpc_init (OrcCompiler *compiler);
-void orc_compiler_powerpc_assemble (OrcCompiler *compiler);
-void orc_compiler_powerpc_register_rules (OrcTarget *target);
+void orc_compiler_powerpc_init (OrcCompiler * compiler);
+void orc_compiler_powerpc_assemble (OrcCompiler * compiler);
+void orc_compiler_powerpc_register_rules (OrcTarget * target);
const char *
-powerpc_get_regname(int i)
+powerpc_get_regname (int i)
{
static const char *powerpc_regs[] = {
"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9",
@@ -36,7 +36,7 @@ powerpc_get_regname(int i)
"v30", "v31",
};
- if (i>=ORC_GP_REG_BASE && i<ORC_GP_REG_BASE + 64) {
+ if (i >= ORC_GP_REG_BASE && i < ORC_GP_REG_BASE + 64) {
return powerpc_regs[i - ORC_GP_REG_BASE];
}
switch (i) {
@@ -52,327 +52,321 @@ powerpc_get_regname(int i)
int
powerpc_regnum (int i)
{
- return (i-ORC_GP_REG_BASE)&0x1f;
+ return (i - ORC_GP_REG_BASE) & 0x1f;
}
void
-powerpc_emit(OrcCompiler *compiler, unsigned int insn)
+powerpc_emit (OrcCompiler * compiler, unsigned int insn)
{
- *compiler->codeptr++ = (insn>>24);
- *compiler->codeptr++ = (insn>>16);
- *compiler->codeptr++ = (insn>>8);
- *compiler->codeptr++ = (insn>>0);
+ *compiler->codeptr++ = (insn >> 24);
+ *compiler->codeptr++ = (insn >> 16);
+ *compiler->codeptr++ = (insn >> 8);
+ *compiler->codeptr++ = (insn >> 0);
}
void
-powerpc_emit_add (OrcCompiler *compiler, int regd, int rega, int regb)
+powerpc_emit_add (OrcCompiler * compiler, int regd, int rega, int regb)
{
unsigned int insn;
- ORC_ASM_CODE(compiler," add %s, %s, %s\n",
- powerpc_get_regname(regd),
- powerpc_get_regname(rega),
- powerpc_get_regname(regb));
- insn = 0x7c000214 | (powerpc_regnum (regd)<<21) | (powerpc_regnum (rega)<<16);
- insn |= (powerpc_regnum (regb)<<11);
+ ORC_ASM_CODE (compiler, " add %s, %s, %s\n",
+ powerpc_get_regname (regd),
+ powerpc_get_regname (rega), powerpc_get_regname (regb));
+ insn =
+ 0x7c000214 | (powerpc_regnum (regd) << 21) | (powerpc_regnum (rega) <<
+ 16);
+ insn |= (powerpc_regnum (regb) << 11);
powerpc_emit (compiler, insn);
}
void
-powerpc_emit_addi_rec (OrcCompiler *compiler, int regd, int rega, int imm)
+powerpc_emit_addi_rec (OrcCompiler * compiler, int regd, int rega, int imm)
{
unsigned int insn;
- ORC_ASM_CODE(compiler," addic. %s, %s, %d\n",
- powerpc_get_regname(regd),
- powerpc_get_regname(rega), imm);
- insn = 0x34000000 | (powerpc_regnum (regd)<<21) | (powerpc_regnum (rega)<<16);
- insn |= imm&0xffff;
+ ORC_ASM_CODE (compiler, " addic. %s, %s, %d\n",
+ powerpc_get_regname (regd), powerpc_get_regname (rega), imm);
+ insn =
+ 0x34000000 | (powerpc_regnum (regd) << 21) | (powerpc_regnum (rega) <<
+ 16);
+ insn |= imm & 0xffff;
powerpc_emit (compiler, insn);
}
void
-powerpc_emit_addi (OrcCompiler *compiler, int regd, int rega, int imm)
+powerpc_emit_addi (OrcCompiler * compiler, int regd, int rega, int imm)
{
unsigned int insn;
- ORC_ASM_CODE(compiler," addi %s, %s, %d\n",
- powerpc_get_regname(regd),
- powerpc_get_regname(rega), imm);
- insn = (14<<26) | (powerpc_regnum (regd)<<21) | (powerpc_regnum (rega)<<16);
- insn |= imm&0xffff;
+ ORC_ASM_CODE (compiler, " addi %s, %s, %d\n",
+ powerpc_get_regname (regd), powerpc_get_regname (rega), imm);
+ insn =
+ (14 << 26) | (powerpc_regnum (regd) << 21) | (powerpc_regnum (rega) <<
+ 16);
+ insn |= imm & 0xffff;
powerpc_emit (compiler, insn);
}
void
-powerpc_emit_lwz (OrcCompiler *compiler, int regd, int rega, int imm)
+powerpc_emit_lwz (OrcCompiler * compiler, int regd, int rega, int imm)
{
unsigned int insn;
- ORC_ASM_CODE(compiler," lwz %s, %d(%s)\n",
- powerpc_get_regname(regd),
- imm, powerpc_get_regname(rega));
- insn = (32<<26) | (powerpc_regnum (regd)<<21) | (powerpc_regnum (rega)<<16);
- insn |= imm&0xffff;
+ ORC_ASM_CODE (compiler, " lwz %s, %d(%s)\n",
+ powerpc_get_regname (regd), imm, powerpc_get_regname (rega));
+ insn =
+ (32 << 26) | (powerpc_regnum (regd) << 21) | (powerpc_regnum (rega) <<
+ 16);
+ insn |= imm & 0xffff;
powerpc_emit (compiler, insn);
}
void
-powerpc_emit_stw (OrcCompiler *compiler, int regs, int rega, int offset)
+powerpc_emit_stw (OrcCompiler * compiler, int regs, int rega, int offset)
{
unsigned int insn;
- ORC_ASM_CODE(compiler," stw %s, %d(%s)\n",
- powerpc_get_regname(regs),
- offset, powerpc_get_regname(rega));
- insn = 0x90000000 | (powerpc_regnum (regs)<<21) | (powerpc_regnum (rega)<<16);
- insn |= offset&0xffff;
+ ORC_ASM_CODE (compiler, " stw %s, %d(%s)\n",
+ powerpc_get_regname (regs), offset, powerpc_get_regname (rega));
+ insn =
+ 0x90000000 | (powerpc_regnum (regs) << 21) | (powerpc_regnum (rega) <<
+ 16);
+ insn |= offset & 0xffff;
powerpc_emit (compiler, insn);
}
void
-powerpc_emit_stwu (OrcCompiler *compiler, int regs, int rega, int offset)
+powerpc_emit_stwu (OrcCompiler * compiler, int regs, int rega, int offset)
{
unsigned int insn;
- ORC_ASM_CODE(compiler," stwu %s, %d(%s)\n",
- powerpc_get_regname(regs),
- offset, powerpc_get_regname(rega));
- insn = (37<<26) | (powerpc_regnum (regs)<<21) | (powerpc_regnum (rega)<<16);
- insn |= offset&0xffff;
+ ORC_ASM_CODE (compiler, " stwu %s, %d(%s)\n",
+ powerpc_get_regname (regs), offset, powerpc_get_regname (rega));
+ insn =
+ (37 << 26) | (powerpc_regnum (regs) << 21) | (powerpc_regnum (rega) <<
+ 16);
+ insn |= offset & 0xffff;
powerpc_emit (compiler, insn);
}
void
-powerpc_emit_srawi (OrcCompiler *compiler, int regd, int rega, int shift,
+powerpc_emit_srawi (OrcCompiler * compiler, int regd, int rega, int shift,
int record)
{
unsigned int insn;
- ORC_ASM_CODE(compiler," srawi%s %s, %s, %d\n", (record)?".":"",
- powerpc_get_regname(regd),
- powerpc_get_regname(rega), shift);
+ ORC_ASM_CODE (compiler, " srawi%s %s, %s, %d\n", (record) ? "." : "",
+ powerpc_get_regname (regd), powerpc_get_regname (rega), shift);
- insn = (31<<26) | (powerpc_regnum (regd)<<21) | (powerpc_regnum (rega)<<16);
- insn |= (shift<<11) | (824<<1) | record;
+ insn =
+ (31 << 26) | (powerpc_regnum (regd) << 21) | (powerpc_regnum (rega) <<
+ 16);
+ insn |= (shift << 11) | (824 << 1) | record;
powerpc_emit (compiler, insn);
}
void
-powerpc_emit_655510 (OrcCompiler *compiler, int major, int d, int a, int b,
+powerpc_emit_655510 (OrcCompiler * compiler, int major, int d, int a, int b,
int minor)
{
unsigned int insn;
- insn = (major<<26) | (d<<21) | (a<<16);
- insn |= (b<<11) | (minor<<0);
+ insn = (major << 26) | (d << 21) | (a << 16);
+ insn |= (b << 11) | (minor << 0);
powerpc_emit (compiler, insn);
}
void
-powerpc_emit_D (OrcCompiler *compiler, const char *name,
+powerpc_emit_D (OrcCompiler * compiler, const char *name,
unsigned int insn, int regd, int rega, int imm)
{
- ORC_ASM_CODE(compiler," %s %s, %s, %d\n", name,
- powerpc_get_regname(regd),
- powerpc_get_regname(rega), imm);
- insn |= (powerpc_regnum (regd)<<21) | (powerpc_regnum (rega)<<16);
- insn |= imm&0xffff;
+ ORC_ASM_CODE (compiler, " %s %s, %s, %d\n", name,
+ powerpc_get_regname (regd), powerpc_get_regname (rega), imm);
+ insn |= (powerpc_regnum (regd) << 21) | (powerpc_regnum (rega) << 16);
+ insn |= imm & 0xffff;
powerpc_emit (compiler, insn);
}
void
-powerpc_emit_X (OrcCompiler *compiler, unsigned int insn, int d, int a, int b)
+powerpc_emit_X (OrcCompiler * compiler, unsigned int insn, int d, int a, int b)
{
#if 0
unsigned int insn;
- insn = (major<<26) | (d<<21) | (a<<16);
- insn |= (b<<11) | (minor<<1) | (0<<0);
+ insn = (major << 26) | (d << 21) | (a << 16);
+ insn |= (b << 11) | (minor << 1) | (0 << 0);
powerpc_emit (compiler, insn);
#endif
- insn |= ((d&0x1f)<<21);
- insn |= ((a&0x1f)<<16);
- insn |= ((b&0x1f)<<11);
+ insn |= ((d & 0x1f) << 21);
+ insn |= ((a & 0x1f) << 16);
+ insn |= ((b & 0x1f) << 11);
powerpc_emit (compiler, insn);
}
void
-powerpc_emit_VA (OrcCompiler *compiler, const char *name, unsigned int insn,
+powerpc_emit_VA (OrcCompiler * compiler, const char *name, unsigned int insn,
int d, int a, int b, int c)
{
- ORC_ASM_CODE(compiler," %s %s, %s, %s, %s\n", name,
- powerpc_get_regname(d),
- powerpc_get_regname(a),
- powerpc_get_regname(b),
- powerpc_get_regname(c));
+ ORC_ASM_CODE (compiler, " %s %s, %s, %s, %s\n", name,
+ powerpc_get_regname (d),
+ powerpc_get_regname (a),
+ powerpc_get_regname (b), powerpc_get_regname (c));
- insn |= ((d&0x1f)<<21) | ((a&0x1f)<<16) | ((b&0x1f)<<11) | ((c&0x1f)<<6);
+ insn |=
+ ((d & 0x1f) << 21) | ((a & 0x1f) << 16) | ((b & 0x1f) << 11) | ((c & 0x1f)
+ << 6);
powerpc_emit (compiler, insn);
}
void
-powerpc_emit_VA_acb (OrcCompiler *compiler, const char *name, unsigned int insn,
- int d, int a, int b, int c)
+powerpc_emit_VA_acb (OrcCompiler * compiler, const char *name,
+ unsigned int insn, int d, int a, int b, int c)
{
- ORC_ASM_CODE(compiler," %s %s, %s, %s, %s\n", name,
- powerpc_get_regname(d),
- powerpc_get_regname(a),
- powerpc_get_regname(c),
- powerpc_get_regname(b));
+ ORC_ASM_CODE (compiler, " %s %s, %s, %s, %s\n", name,
+ powerpc_get_regname (d),
+ powerpc_get_regname (a),
+ powerpc_get_regname (c), powerpc_get_regname (b));
- insn |= ((d&0x1f)<<21) | ((a&0x1f)<<16) | ((b&0x1f)<<11) | ((c&0x1f)<<6);
+ insn |=
+ ((d & 0x1f) << 21) | ((a & 0x1f) << 16) | ((b & 0x1f) << 11) | ((c & 0x1f)
+ << 6);
powerpc_emit (compiler, insn);
}
void
-powerpc_emit_VXR (OrcCompiler *compiler, const char *name, unsigned int insn,
+powerpc_emit_VXR (OrcCompiler * compiler, const char *name, unsigned int insn,
int d, int a, int b, int record)
{
- ORC_ASM_CODE(compiler," %s %s, %s, %s\n", name,
- powerpc_get_regname(d),
- powerpc_get_regname(a),
- powerpc_get_regname(b));
+ ORC_ASM_CODE (compiler, " %s %s, %s, %s\n", name,
+ powerpc_get_regname (d),
+ powerpc_get_regname (a), powerpc_get_regname (b));
- insn |= ((d&0x1f)<<21) | ((a&0x1f)<<16) | ((b&0x1f)<<11);
- insn |= ((record&0x1)<<10);
+ insn |= ((d & 0x1f) << 21) | ((a & 0x1f) << 16) | ((b & 0x1f) << 11);
+ insn |= ((record & 0x1) << 10);
powerpc_emit (compiler, insn);
}
void
-powerpc_emit_VX (OrcCompiler *compiler, unsigned int insn, int d, int a, int b)
+powerpc_emit_VX (OrcCompiler * compiler, unsigned int insn, int d, int a, int b)
{
- insn |= ((d&0x1f)<<21);
- insn |= ((a&0x1f)<<16);
- insn |= ((b&0x1f)<<11);
+ insn |= ((d & 0x1f) << 21);
+ insn |= ((a & 0x1f) << 16);
+ insn |= ((b & 0x1f) << 11);
powerpc_emit (compiler, insn);
}
void
-powerpc_emit_VX_2 (OrcCompiler *p, const char *name,
+powerpc_emit_VX_2 (OrcCompiler * p, const char *name,
unsigned int insn, int d, int a, int b)
{
- ORC_ASM_CODE(p," %s %s, %s, %s\n", name,
- powerpc_get_regname(d),
- powerpc_get_regname(a),
- powerpc_get_regname(b));
- powerpc_emit_VX(p, insn,
- powerpc_regnum(d),
- powerpc_regnum(a),
- powerpc_regnum(b));
+ ORC_ASM_CODE (p, " %s %s, %s, %s\n", name,
+ powerpc_get_regname (d),
+ powerpc_get_regname (a), powerpc_get_regname (b));
+ powerpc_emit_VX (p, insn,
+ powerpc_regnum (d), powerpc_regnum (a), powerpc_regnum (b));
}
void
-powerpc_emit_VX_b (OrcCompiler *p, const char *name,
- unsigned int insn, int b)
+powerpc_emit_VX_b (OrcCompiler * p, const char *name, unsigned int insn, int b)
{
- ORC_ASM_CODE(p," %s %s\n", name, powerpc_get_regname(b));
- powerpc_emit_VX(p, insn, 0, 0, powerpc_regnum(b));
+ ORC_ASM_CODE (p, " %s %s\n", name, powerpc_get_regname (b));
+ powerpc_emit_VX (p, insn, 0, 0, powerpc_regnum (b));
}
void
-powerpc_emit_VX_db (OrcCompiler *p, const char *name, unsigned int insn,
+powerpc_emit_VX_db (OrcCompiler * p, const char *name, unsigned int insn,
int d, int b)
{
- ORC_ASM_CODE(p," %s %s, %s\n", name,
- powerpc_get_regname(d),
- powerpc_get_regname(b));
- powerpc_emit_VX(p, insn, powerpc_regnum(d), 0, powerpc_regnum(b));
+ ORC_ASM_CODE (p, " %s %s, %s\n", name,
+ powerpc_get_regname (d), powerpc_get_regname (b));
+ powerpc_emit_VX (p, insn, powerpc_regnum (d), 0, powerpc_regnum (b));
}
void
-powerpc_emit_VX_dbi (OrcCompiler *p, const char *name, unsigned int insn,
+powerpc_emit_VX_dbi (OrcCompiler * p, const char *name, unsigned int insn,
int d, int b, int imm)
{
- ORC_ASM_CODE(p," %s %s, %s, %d\n", name,
- powerpc_get_regname(d),
- powerpc_get_regname(b), imm);
- powerpc_emit_VX(p, insn, powerpc_regnum(d), imm, powerpc_regnum(b));
+ ORC_ASM_CODE (p, " %s %s, %s, %d\n", name,
+ powerpc_get_regname (d), powerpc_get_regname (b), imm);
+ powerpc_emit_VX (p, insn, powerpc_regnum (d), imm, powerpc_regnum (b));
}
void
-powerpc_emit_VX_3_reg (OrcCompiler *p, const char *name,
+powerpc_emit_VX_3_reg (OrcCompiler * p, const char *name,
unsigned int insn, int d, int a, int b, int c)
{
- ORC_ASM_CODE(p," %s %s, %s, %s, %s\n", name,
- powerpc_get_regname(d),
- powerpc_get_regname(a),
- powerpc_get_regname(b),
- powerpc_get_regname(c));
- powerpc_emit_VX(p, insn,
- powerpc_regnum(d),
- powerpc_regnum(a),
- powerpc_regnum(b));
+ ORC_ASM_CODE (p, " %s %s, %s, %s, %s\n", name,
+ powerpc_get_regname (d),
+ powerpc_get_regname (a),
+ powerpc_get_regname (b), powerpc_get_regname (c));
+ powerpc_emit_VX (p, insn,
+ powerpc_regnum (d), powerpc_regnum (a), powerpc_regnum (b));
}
void
-powerpc_emit_VX_3 (OrcCompiler *p, const char *name,
+powerpc_emit_VX_3 (OrcCompiler * p, const char *name,
unsigned int insn, int d, int a, int b, int c)
{
- ORC_ASM_CODE(p," %s %s, %s, %s, %d\n", name,
- powerpc_get_regname(d),
- powerpc_get_regname(a),
- powerpc_get_regname(b), c);
- powerpc_emit_VX(p, insn,
- powerpc_regnum(d),
- powerpc_regnum(a),
- powerpc_regnum(b));
+ ORC_ASM_CODE (p, " %s %s, %s, %s, %d\n", name,
+ powerpc_get_regname (d),
+ powerpc_get_regname (a), powerpc_get_regname (b), c);
+ powerpc_emit_VX (p, insn,
+ powerpc_regnum (d), powerpc_regnum (a), powerpc_regnum (b));
}
void
-powerpc_emit_VX_4 (OrcCompiler *p, const char *name,
+powerpc_emit_VX_4 (OrcCompiler * p, const char *name,
unsigned int insn, int d, int a)
{
- ORC_ASM_CODE(p," %s %s, %s\n", name,
- powerpc_get_regname(d),
- powerpc_get_regname(a));
- powerpc_emit_VX(p, insn,
- powerpc_regnum(d),
- 0,
- powerpc_regnum(a));
+ ORC_ASM_CODE (p, " %s %s, %s\n", name,
+ powerpc_get_regname (d), powerpc_get_regname (a));
+ powerpc_emit_VX (p, insn, powerpc_regnum (d), 0, powerpc_regnum (a));
}
void
-powerpc_do_fixups (OrcCompiler *compiler)
+powerpc_do_fixups (OrcCompiler * compiler)
{
int i;
unsigned int insn;
- for(i=0;i<compiler->n_fixups;i++){
+ for (i = 0; i < compiler->n_fixups; i++) {
unsigned char *label = compiler->labels[compiler->fixups[i].label];
unsigned char *ptr = compiler->fixups[i].ptr;
- insn = *(unsigned int *)ptr;
+ insn = *(unsigned int *) ptr;
switch (compiler->fixups[i].type) {
- case 0:
- *(unsigned int *)ptr = (insn&0xffff0000) | ((insn + (label-ptr))&0xffff);
- break;
- case 1:
- *(unsigned int *)ptr = (insn&0xffff0000) | ((insn + (label-compiler->code))&0xffff);
- break;
- case 2:
- *(unsigned int *)ptr = (insn&0xfc000000) | ((insn + (label-ptr))&0x03ffffff);
- break;
+ case 0:
+ *(unsigned int *) ptr =
+ (insn & 0xffff0000) | ((insn + (label - ptr)) & 0xffff);
+ break;
+ case 1:
+ *(unsigned int *) ptr =
+ (insn & 0xffff0000) | ((insn + (label - compiler->code)) & 0xffff);
+ break;
+ case 2:
+ *(unsigned int *) ptr =
+ (insn & 0xfc000000) | ((insn + (label - ptr)) & 0x03ffffff);
+ break;
}
}
}
void
-orc_powerpc_flush_cache (OrcCode *code)
+orc_powerpc_flush_cache (OrcCode * code)
{
#ifdef HAVE_POWERPC
unsigned char *ptr;
@@ -381,53 +375,50 @@ orc_powerpc_flush_cache (OrcCode *code)
int size = code->code_size;
ptr = code->code;
- for (i=0;i<size;i+=cache_line_size) {
- __asm__ __volatile__ ("dcbst %0,%1" :: "b" (ptr), "r" (i));
+ for (i = 0; i < size; i += cache_line_size) {
+ __asm__ __volatile__ ("dcbst %0,%1"::"b" (ptr), "r" (i));
}
__asm__ __volatile ("sync");
- ptr = (void *)code->exec;
- for (i=0;i<size;i+=cache_line_size) {
- __asm__ __volatile__ ("icbi %0,%1" :: "b" (ptr), "r" (i));
+ ptr = (void *) code->exec;
+ for (i = 0; i < size; i += cache_line_size) {
+ __asm__ __volatile__ ("icbi %0,%1"::"b" (ptr), "r" (i));
}
__asm__ __volatile ("isync");
#endif
}
static void
-powerpc_load_constant (OrcCompiler *p, int i, int reg)
+powerpc_load_constant (OrcCompiler * p, int i, int reg)
{
int j;
int value = p->constants[i].value;
switch (p->constants[i].type) {
case ORC_CONST_ZERO:
- powerpc_emit_VX_2(p, "vxor", 0x100004c4, reg, reg, reg);
+ powerpc_emit_VX_2 (p, "vxor", 0x100004c4, reg, reg, reg);
return;
case ORC_CONST_SPLAT_B:
if (value < 16 && value >= -16) {
- ORC_ASM_CODE(p," vspltisb %s, %d\n",
- powerpc_get_regname(reg), value);
- powerpc_emit_VX(p, 0x1000030c,
- powerpc_regnum(reg), value & 0x1f, 0);
+ ORC_ASM_CODE (p, " vspltisb %s, %d\n",
+ powerpc_get_regname (reg), value);
+ powerpc_emit_VX (p, 0x1000030c, powerpc_regnum (reg), value & 0x1f, 0);
return;
}
break;
case ORC_CONST_SPLAT_W:
if (value < 16 && value >= -16) {
- ORC_ASM_CODE(p," vspltish %s, %d\n",
- powerpc_get_regname(reg), value);
- powerpc_emit_VX(p, 0x1000034c,
- powerpc_regnum(reg), value & 0x1f, 0);
+ ORC_ASM_CODE (p, " vspltish %s, %d\n",
+ powerpc_get_regname (reg), value);
+ powerpc_emit_VX (p, 0x1000034c, powerpc_regnum (reg), value & 0x1f, 0);
return;
}
break;
case ORC_CONST_SPLAT_L:
if (value < 16 && value >= -16) {
- ORC_ASM_CODE(p," vspltisw %s, %d\n",
- powerpc_get_regname(reg), value);
- powerpc_emit_VX(p, 0x1000038c,
- powerpc_regnum(reg), value & 0x1f, 0);
+ ORC_ASM_CODE (p, " vspltisw %s, %d\n",
+ powerpc_get_regname (reg), value);
+ powerpc_emit_VX (p, 0x1000038c, powerpc_regnum (reg), value & 0x1f, 0);
return;
}
break;
@@ -437,27 +428,27 @@ powerpc_load_constant (OrcCompiler *p, int i, int reg)
switch (p->constants[i].type) {
case ORC_CONST_ZERO:
- for(j=0;j<4;j++){
+ for (j = 0; j < 4; j++) {
p->constants[i].full_value[j] = 0;
}
break;
case ORC_CONST_SPLAT_B:
value &= 0xff;
- value |= (value<<8);
- value |= (value<<16);
- for(j=0;j<4;j++){
+ value |= (value << 8);
+ value |= (value << 16);
+ for (j = 0; j < 4; j++) {
p->constants[i].full_value[j] = value;
}
break;
case ORC_CONST_SPLAT_W:
value &= 0xffff;
- value |= (value<<16);
- for(j=0;j<4;j++){
+ value |= (value << 16);
+ for (j = 0; j < 4; j++) {
p->constants[i].full_value[j] = value;
}
break;
case ORC_CONST_SPLAT_L:
- for(j=0;j<4;j++){
+ for (j = 0; j < 4; j++) {
p->constants[i].full_value[j] = value;
}
break;
@@ -466,14 +457,13 @@ powerpc_load_constant (OrcCompiler *p, int i, int reg)
}
powerpc_load_long_constant (p, reg,
- p->constants[i].full_value[0],
- p->constants[i].full_value[1],
- p->constants[i].full_value[2],
- p->constants[i].full_value[3]);
+ p->constants[i].full_value[0],
+ p->constants[i].full_value[1],
+ p->constants[i].full_value[2], p->constants[i].full_value[3]);
}
void
-powerpc_load_long_constant (OrcCompiler *p, int reg, orc_uint32 a,
+powerpc_load_long_constant (OrcCompiler * p, int reg, orc_uint32 a,
orc_uint32 b, orc_uint32 c, orc_uint32 d)
{
int label_skip, label_data;
@@ -485,58 +475,55 @@ powerpc_load_long_constant (OrcCompiler *p, int reg, orc_uint32 a,
powerpc_emit_b (p, label_skip);
while ((p->codeptr - p->code) & 0xf) {
- ORC_ASM_CODE(p," .long 0x00000000\n");
+ ORC_ASM_CODE (p, " .long 0x00000000\n");
powerpc_emit (p, 0x00000000);
}
powerpc_emit_label (p, label_data);
- ORC_ASM_CODE(p," .long 0x%08x\n", a);
+ ORC_ASM_CODE (p, " .long 0x%08x\n", a);
powerpc_emit (p, a);
- ORC_ASM_CODE(p," .long 0x%08x\n", b);
+ ORC_ASM_CODE (p, " .long 0x%08x\n", b);
powerpc_emit (p, b);
- ORC_ASM_CODE(p," .long 0x%08x\n", c);
+ ORC_ASM_CODE (p, " .long 0x%08x\n", c);
powerpc_emit (p, c);
- ORC_ASM_CODE(p," .long 0x%08x\n", d);
+ ORC_ASM_CODE (p, " .long 0x%08x\n", d);
powerpc_emit (p, d);
powerpc_emit_label (p, label_skip);
powerpc_emit_lwz (p,
greg,
- POWERPC_R3,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, arrays[ORC_VAR_A2]));
- powerpc_emit_lwz (p,
- greg, greg,
- (int)ORC_STRUCT_OFFSET(OrcCode, exec));
+ POWERPC_R3, (int) ORC_STRUCT_OFFSET (OrcExecutor, arrays[ORC_VAR_A2]));
+ powerpc_emit_lwz (p, greg, greg, (int) ORC_STRUCT_OFFSET (OrcCode, exec));
powerpc_add_fixup (p, 1, p->codeptr, label_data);
{
unsigned int insn;
- ORC_ASM_CODE(p," addi %s, %s, %db - %s\n",
- powerpc_get_regname(greg),
- powerpc_get_regname(greg), label_data, p->program->name);
- insn = (14<<26) | (powerpc_regnum (greg)<<21) | (powerpc_regnum (greg)<<16);
+ ORC_ASM_CODE (p, " addi %s, %s, %db - %s\n",
+ powerpc_get_regname (greg),
+ powerpc_get_regname (greg), label_data, p->program->name);
+ insn =
+ (14 << 26) | (powerpc_regnum (greg) << 21) | (powerpc_regnum (greg) <<
+ 16);
insn |= 0;
powerpc_emit (p, insn);
}
- ORC_ASM_CODE(p," lvx %s, 0, %s\n",
- powerpc_get_regname(reg),
- powerpc_get_regname(greg));
+ ORC_ASM_CODE (p, " lvx %s, 0, %s\n",
+ powerpc_get_regname (reg), powerpc_get_regname (greg));
powerpc_emit_X (p, 0x7c0000ce, reg, 0, greg);
}
int
-powerpc_get_constant (OrcCompiler *p, int type, int value)
+powerpc_get_constant (OrcCompiler * p, int type, int value)
{
int reg = orc_compiler_get_temp_reg (p);
int i;
- for(i=0;i<p->n_constants;i++){
- if (p->constants[i].type == type &&
- p->constants[i].value == value) {
+ for (i = 0; i < p->n_constants; i++) {
+ if (p->constants[i].type == type && p->constants[i].value == value) {
if (p->constants[i].alloc_reg != 0) {
return p->constants[i].alloc_reg;
}
@@ -556,16 +543,15 @@ powerpc_get_constant (OrcCompiler *p, int type, int value)
}
int
-powerpc_get_constant_full (OrcCompiler *p, int value0, int value1,
+powerpc_get_constant_full (OrcCompiler * p, int value0, int value1,
int value2, int value3)
{
int reg = p->tmpreg;
int i;
- for(i=0;i<p->n_constants;i++){
+ for (i = 0; i < p->n_constants; i++) {
#if 0
- if (p->constants[i].type == type &&
- p->constants[i].value == value) {
+ if (p->constants[i].type == type && p->constants[i].value == value) {
if (p->constants[i].alloc_reg != 0) {
return p->constants[i].alloc_reg;
}
@@ -588,61 +574,66 @@ powerpc_get_constant_full (OrcCompiler *p, int value0, int value1,
return reg;
}
-void powerpc_emit_ret (OrcCompiler *compiler)
+void
+powerpc_emit_ret (OrcCompiler * compiler)
{
- ORC_ASM_CODE(compiler," ret\n");
+ ORC_ASM_CODE (compiler, " ret\n");
//*compiler->codeptr++ = 0xc3;
}
void
-powerpc_add_fixup (OrcCompiler *compiler, int type, unsigned char *ptr, int label)
+powerpc_add_fixup (OrcCompiler * compiler, int type, unsigned char *ptr,
+ int label)
{
compiler->fixups[compiler->n_fixups].ptr = ptr;
compiler->fixups[compiler->n_fixups].label = label;
compiler->fixups[compiler->n_fixups].type = type;
compiler->n_fixups++;
if (compiler->n_fixups >= ORC_N_FIXUPS) {
- ORC_ERROR("too many fixups");
+ ORC_ERROR ("too many fixups");
}
}
void
-powerpc_add_label (OrcCompiler *compiler, unsigned char *ptr, int label)
+powerpc_add_label (OrcCompiler * compiler, unsigned char *ptr, int label)
{
compiler->labels[label] = ptr;
}
-void powerpc_emit_b (OrcCompiler *compiler, int label)
+void
+powerpc_emit_b (OrcCompiler * compiler, int label)
{
- ORC_ASM_CODE(compiler," b %d%c\n", label,
- (compiler->labels[label]!=NULL) ? 'b' : 'f');
+ ORC_ASM_CODE (compiler, " b %d%c\n", label,
+ (compiler->labels[label] != NULL) ? 'b' : 'f');
powerpc_add_fixup (compiler, 2, compiler->codeptr, label);
powerpc_emit (compiler, 0x48000000);
}
-void powerpc_emit_beq (OrcCompiler *compiler, int label)
+void
+powerpc_emit_beq (OrcCompiler * compiler, int label)
{
- ORC_ASM_CODE(compiler," ble- %d%c\n", label,
- (compiler->labels[label]!=NULL) ? 'b' : 'f');
+ ORC_ASM_CODE (compiler, " ble- %d%c\n", label,
+ (compiler->labels[label] != NULL) ? 'b' : 'f');
powerpc_add_fixup (compiler, 0, compiler->codeptr, label);
powerpc_emit (compiler, 0x40810000);
}
-void powerpc_emit_bne (OrcCompiler *compiler, int label)
+void
+powerpc_emit_bne (OrcCompiler * compiler, int label)
{
- ORC_ASM_CODE(compiler," bdnz+ %d%c\n", label,
- (compiler->labels[label]!=NULL) ? 'b' : 'f');
+ ORC_ASM_CODE (compiler, " bdnz+ %d%c\n", label,
+ (compiler->labels[label] != NULL) ? 'b' : 'f');
powerpc_add_fixup (compiler, 0, compiler->codeptr, label);
powerpc_emit (compiler, 0x42000000);
}
-void powerpc_emit_label (OrcCompiler *compiler, int label)
+void
+powerpc_emit_label (OrcCompiler * compiler, int label)
{
- ORC_ASM_CODE(compiler,"%d:\n", label);
+ ORC_ASM_CODE (compiler, "%d:\n", label);
powerpc_add_label (compiler, compiler->codeptr, label);
}
-
diff --git a/orc/orcprogram-altivec.c b/orc/orcprogram-altivec.c
index 3801b88..3555ed9 100644
--- a/orc/orcprogram-altivec.c
+++ b/orc/orcprogram-altivec.c
@@ -12,14 +12,14 @@
#include <orc/orcdebug.h>
-void orc_compiler_powerpc_init (OrcCompiler *compiler);
+void orc_compiler_powerpc_init (OrcCompiler * compiler);
unsigned int orc_compiler_powerpc_get_default_flags (void);
-void orc_compiler_powerpc_assemble (OrcCompiler *compiler);
-void orc_compiler_powerpc_register_rules (OrcTarget *target);
+void orc_compiler_powerpc_assemble (OrcCompiler * compiler);
+void orc_compiler_powerpc_register_rules (OrcTarget * target);
void
-powerpc_emit_prologue (OrcCompiler *compiler)
+powerpc_emit_prologue (OrcCompiler * compiler)
{
int i;
@@ -28,7 +28,7 @@ powerpc_emit_prologue (OrcCompiler *compiler)
powerpc_emit_stwu (compiler, POWERPC_R1, POWERPC_R1, -16);
- for(i=POWERPC_R13;i<=POWERPC_R31;i++){
+ for (i = POWERPC_R13; i <= POWERPC_R31; i++) {
if (compiler->used_regs[i]) {
//powerpc_emit_push (compiler, 4, i);
}
@@ -36,19 +36,19 @@ powerpc_emit_prologue (OrcCompiler *compiler)
}
void
-powerpc_emit_epilogue (OrcCompiler *compiler)
+powerpc_emit_epilogue (OrcCompiler * compiler)
{
int i;
- for(i=POWERPC_R31;i>=POWERPC_R31;i--){
+ for (i = POWERPC_R31; i >= POWERPC_R31; i--) {
if (compiler->used_regs[i]) {
//powerpc_emit_pop (compiler, 4, i);
}
}
powerpc_emit_addi (compiler, POWERPC_R1, POWERPC_R1, 16);
- ORC_ASM_CODE(compiler," blr\n");
- powerpc_emit(compiler, 0x4e800020);
+ ORC_ASM_CODE (compiler, " blr\n");
+ powerpc_emit (compiler, 0x4e800020);
}
static OrcTarget altivec_target = {
@@ -62,13 +62,12 @@ static OrcTarget altivec_target = {
orc_compiler_powerpc_get_default_flags,
orc_compiler_powerpc_init,
orc_compiler_powerpc_assemble,
- { { 0 } },
+ {{0}},
0,
NULL,
NULL,
NULL,
orc_powerpc_flush_cache
-
};
void
@@ -86,29 +85,29 @@ orc_compiler_powerpc_get_default_flags (void)
}
void
-orc_compiler_powerpc_init (OrcCompiler *compiler)
+orc_compiler_powerpc_init (OrcCompiler * compiler)
{
int i;
- for(i=0;i<32;i++){
- compiler->valid_regs[POWERPC_R0+i] = 1;
- compiler->valid_regs[POWERPC_V0+i] = 1;
+ for (i = 0; i < 32; i++) {
+ compiler->valid_regs[POWERPC_R0 + i] = 1;
+ compiler->valid_regs[POWERPC_V0 + i] = 1;
}
compiler->valid_regs[POWERPC_R0] = 0; /* used for temp space */
compiler->valid_regs[POWERPC_R1] = 0; /* stack pointer */
compiler->valid_regs[POWERPC_R2] = 0; /* TOC pointer */
compiler->valid_regs[POWERPC_R3] = 0; /* pointer to OrcExecutor */
- compiler->valid_regs[POWERPC_R13] = 0; /* reserved */
+ compiler->valid_regs[POWERPC_R13] = 0; /* reserved */
compiler->tmpreg = POWERPC_V0;
compiler->gp_tmpreg = POWERPC_R4;
compiler->valid_regs[compiler->tmpreg] = 0;
compiler->valid_regs[compiler->gp_tmpreg] = 0;
- for(i=14;i<32;i++){
+ for (i = 14; i < 32; i++) {
compiler->save_regs[POWERPC_R0 + i] = 1;
}
- for(i=20;i<32;i++){
+ for (i = 20; i < 32; i++) {
compiler->save_regs[POWERPC_V0 + i] = 1;
}
@@ -117,23 +116,23 @@ orc_compiler_powerpc_init (OrcCompiler *compiler)
}
void
-powerpc_load_inner_constants (OrcCompiler *compiler)
+powerpc_load_inner_constants (OrcCompiler * compiler)
{
int i;
- for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
- if (compiler->vars[i].name == NULL) continue;
+ for (i = 0; i < ORC_N_COMPILER_VARIABLES; i++) {
+ if (compiler->vars[i].name == NULL)
+ continue;
switch (compiler->vars[i].vartype) {
case ORC_VAR_TYPE_SRC:
case ORC_VAR_TYPE_DEST:
if (compiler->vars[i].ptr_register) {
powerpc_emit_lwz (compiler,
compiler->vars[i].ptr_register,
- POWERPC_R3,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, arrays[i]));
+ POWERPC_R3, (int) ORC_STRUCT_OFFSET (OrcExecutor, arrays[i]));
} else {
/* FIXME */
- ORC_ASM_CODE(compiler,"ERROR");
+ ORC_ASM_CODE (compiler, "ERROR");
}
break;
default:
@@ -143,19 +142,20 @@ powerpc_load_inner_constants (OrcCompiler *compiler)
}
static int
-orc_program_has_float (OrcCompiler *compiler)
+orc_program_has_float (OrcCompiler * compiler)
{
int j;
- for(j=0;j<compiler->n_insns;j++){
+ for (j = 0; j < compiler->n_insns; j++) {
OrcInstruction *insn = compiler->insns + j;
OrcStaticOpcode *opcode = insn->opcode;
- if (opcode->flags & ORC_STATIC_OPCODE_FLOAT) return TRUE;
+ if (opcode->flags & ORC_STATIC_OPCODE_FLOAT)
+ return TRUE;
}
return FALSE;
}
void
-orc_compiler_powerpc_assemble (OrcCompiler *compiler)
+orc_compiler_powerpc_assemble (OrcCompiler * compiler)
{
int j;
int k;
@@ -179,74 +179,74 @@ orc_compiler_powerpc_assemble (OrcCompiler *compiler)
set_vscr = TRUE;
- ORC_ASM_CODE(compiler," vspltish %s, %d\n",
- powerpc_get_regname(tmp), 1);
- powerpc_emit_VX(compiler, 0x1000034c,
- powerpc_regnum(tmp), 1, 0);
+ ORC_ASM_CODE (compiler, " vspltish %s, %d\n",
+ powerpc_get_regname (tmp), 1);
+ powerpc_emit_VX (compiler, 0x1000034c, powerpc_regnum (tmp), 1, 0);
- powerpc_emit_VX_b(compiler, "mtvscr", 0x10000644, tmp);
+ powerpc_emit_VX_b (compiler, "mtvscr", 0x10000644, tmp);
}
if (compiler->program->is_2d) {
powerpc_emit_lwz (compiler, POWERPC_R0, POWERPC_R3,
- (int)ORC_STRUCT_OFFSET(OrcExecutorAlt, m));
+ (int) ORC_STRUCT_OFFSET (OrcExecutorAlt, m));
powerpc_emit_srawi (compiler, POWERPC_R0, POWERPC_R0,
compiler->loop_shift, 1);
powerpc_emit_beq (compiler, label_leave);
powerpc_emit_stw (compiler, POWERPC_R0, POWERPC_R3,
- (int)ORC_STRUCT_OFFSET(OrcExecutorAlt, m_index));
+ (int) ORC_STRUCT_OFFSET (OrcExecutorAlt, m_index));
}
-
//powerpc_load_constants (compiler);
powerpc_load_inner_constants (compiler);
- for(k=0;k<4;k++){
+ for (k = 0; k < 4; k++) {
OrcVariable *var = &compiler->vars[ORC_VAR_A1 + k];
- if (compiler->vars[ORC_VAR_A1 + k].name == NULL) continue;
+ if (compiler->vars[ORC_VAR_A1 + k].name == NULL)
+ continue;
- //powerpc_emit_VX_2(p, "vxor", 0x100004c4, reg, reg, reg);
+ //powerpc_emit_VX_2(p, "vxor", 0x100004c4, reg, reg, reg);
powerpc_emit_vxor (compiler, var->alloc, var->alloc, var->alloc);
}
powerpc_emit_label (compiler, label_outer_loop_start);
powerpc_emit_lwz (compiler, POWERPC_R0, POWERPC_R3,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, n));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, n));
powerpc_emit_srawi (compiler, POWERPC_R0, POWERPC_R0,
compiler->loop_shift, 1);
powerpc_emit_beq (compiler, label_leave);
powerpc_emit (compiler, 0x7c0903a6);
- ORC_ASM_CODE (compiler, " mtctr %s\n", powerpc_get_regname(POWERPC_R0));
+ ORC_ASM_CODE (compiler, " mtctr %s\n", powerpc_get_regname (POWERPC_R0));
powerpc_emit_label (compiler, label_loop_start);
- for(j=0;j<compiler->n_insns;j++){
+ for (j = 0; j < compiler->n_insns; j++) {
insn = compiler->insns + j;
opcode = insn->opcode;
compiler->insn_index = j;
- ORC_ASM_CODE(compiler,"# %d: %s\n", j, insn->opcode->name);
+ ORC_ASM_CODE (compiler, "# %d: %s\n", j, insn->opcode->name);
#if 0
/* set up args */
- for(k=0;k<opcode->n_src + opcode->n_dest;k++){
+ for (k = 0; k < opcode->n_src + opcode->n_dest; k++) {
args[k] = compiler->vars + insn->args[k];
- ORC_ASM_CODE(compiler," %d", args[k]->alloc);
+ ORC_ASM_CODE (compiler, " %d", args[k]->alloc);
if (args[k]->is_chained) {
- ORC_ASM_CODE(compiler," (chained)");
+ ORC_ASM_CODE (compiler, " (chained)");
}
}
- ORC_ASM_CODE(compiler,"\n");
+ ORC_ASM_CODE (compiler, "\n");
#endif
- for(k=0;k<ORC_STATIC_OPCODE_N_SRC;k++){
+ for (k = 0; k < ORC_STATIC_OPCODE_N_SRC; k++) {
OrcVariable *var = compiler->vars + insn->src_args[k];
- if (opcode->src_size[k] == 0) continue;
+ if (opcode->src_size[k] == 0)
+ continue;
switch (var->vartype) {
case ORC_VAR_TYPE_SRC:
@@ -268,13 +268,14 @@ orc_compiler_powerpc_assemble (OrcCompiler *compiler)
if (rule) {
rule->emit (compiler, rule->emit_user, insn);
} else {
- ORC_ASM_CODE(compiler,"No rule for: %s\n", opcode->name);
+ ORC_ASM_CODE (compiler, "No rule for: %s\n", opcode->name);
}
- for(k=0;k<ORC_STATIC_OPCODE_N_DEST;k++){
+ for (k = 0; k < ORC_STATIC_OPCODE_N_DEST; k++) {
OrcVariable *var = compiler->vars + insn->dest_args[k];
- if (opcode->dest_size[k] == 0) continue;
+ if (opcode->dest_size[k] == 0)
+ continue;
switch (var->vartype) {
case ORC_VAR_TYPE_DEST:
@@ -288,8 +289,9 @@ orc_compiler_powerpc_assemble (OrcCompiler *compiler)
}
}
- for(k=0;k<ORC_N_COMPILER_VARIABLES;k++){
- if (compiler->vars[k].name == NULL) continue;
+ for (k = 0; k < ORC_N_COMPILER_VARIABLES; k++) {
+ if (compiler->vars[k].name == NULL)
+ continue;
if (compiler->vars[k].vartype == ORC_VAR_TYPE_SRC ||
compiler->vars[k].vartype == ORC_VAR_TYPE_DEST) {
if (compiler->vars[k].ptr_register) {
@@ -298,7 +300,7 @@ orc_compiler_powerpc_assemble (OrcCompiler *compiler)
compiler->vars[k].ptr_register,
compiler->vars[k].size << compiler->loop_shift);
} else {
- ORC_ASM_CODE(compiler,"ERROR\n");
+ ORC_ASM_CODE (compiler, "ERROR\n");
}
}
}
@@ -307,36 +309,33 @@ orc_compiler_powerpc_assemble (OrcCompiler *compiler)
if (compiler->program->is_2d) {
powerpc_emit_lwz (compiler, POWERPC_R0, POWERPC_R3,
- (int)ORC_STRUCT_OFFSET(OrcExecutorAlt, m_index));
+ (int) ORC_STRUCT_OFFSET (OrcExecutorAlt, m_index));
powerpc_emit_addi_rec (compiler, POWERPC_R0, POWERPC_R0, -1);
powerpc_emit_beq (compiler, label_leave);
powerpc_emit_stw (compiler, POWERPC_R0, POWERPC_R3,
- (int)ORC_STRUCT_OFFSET(OrcExecutorAlt, m_index));
+ (int) ORC_STRUCT_OFFSET (OrcExecutorAlt, m_index));
- for(k=0;k<ORC_N_COMPILER_VARIABLES;k++){
- if (compiler->vars[k].name == NULL) continue;
+ for (k = 0; k < ORC_N_COMPILER_VARIABLES; k++) {
+ if (compiler->vars[k].name == NULL)
+ continue;
if (compiler->vars[k].vartype == ORC_VAR_TYPE_SRC ||
compiler->vars[k].vartype == ORC_VAR_TYPE_DEST) {
if (compiler->vars[k].ptr_register) {
powerpc_emit_lwz (compiler,
compiler->vars[k].ptr_register,
- POWERPC_R3,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, arrays[k]));
+ POWERPC_R3, (int) ORC_STRUCT_OFFSET (OrcExecutor, arrays[k]));
powerpc_emit_lwz (compiler,
POWERPC_R0,
- POWERPC_R3,
- (int)ORC_STRUCT_OFFSET(OrcExecutorAlt, strides[k]));
+ POWERPC_R3, (int) ORC_STRUCT_OFFSET (OrcExecutorAlt, strides[k]));
powerpc_emit_add (compiler,
compiler->vars[k].ptr_register,
- compiler->vars[k].ptr_register,
- POWERPC_R0);
+ compiler->vars[k].ptr_register, POWERPC_R0);
powerpc_emit_stw (compiler,
compiler->vars[k].ptr_register,
- POWERPC_R3,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, arrays[k]));
+ POWERPC_R3, (int) ORC_STRUCT_OFFSET (OrcExecutor, arrays[k]));
} else {
- ORC_ASM_CODE(compiler,"ERROR\n");
+ ORC_ASM_CODE (compiler, "ERROR\n");
}
}
}
@@ -346,50 +345,45 @@ orc_compiler_powerpc_assemble (OrcCompiler *compiler)
powerpc_emit_label (compiler, label_leave);
- for(k=0;k<4;k++){
+ for (k = 0; k < 4; k++) {
OrcVariable *var = &compiler->vars[ORC_VAR_A1 + k];
- if (compiler->vars[ORC_VAR_A1 + k].name == NULL) continue;
+ if (compiler->vars[ORC_VAR_A1 + k].name == NULL)
+ continue;
powerpc_emit_addi (compiler,
POWERPC_R0,
- POWERPC_R3,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, accumulators[k]));
+ POWERPC_R3, (int) ORC_STRUCT_OFFSET (OrcExecutor, accumulators[k]));
if (var->size == 2) {
powerpc_emit_vxor (compiler, POWERPC_V0, POWERPC_V0, POWERPC_V0);
powerpc_emit_vmrghh (compiler, var->alloc, POWERPC_V0, var->alloc);
}
- ORC_ASM_CODE(compiler," lvsr %s, 0, %s\n",
- powerpc_get_regname (POWERPC_V0),
- powerpc_get_regname (POWERPC_R0));
- powerpc_emit_X (compiler, 0x7c00004c, powerpc_regnum(POWERPC_V0),
- 0, powerpc_regnum(POWERPC_R0));
+ ORC_ASM_CODE (compiler, " lvsr %s, 0, %s\n",
+ powerpc_get_regname (POWERPC_V0), powerpc_get_regname (POWERPC_R0));
+ powerpc_emit_X (compiler, 0x7c00004c, powerpc_regnum (POWERPC_V0),
+ 0, powerpc_regnum (POWERPC_R0));
powerpc_emit_vperm (compiler, var->alloc, var->alloc, var->alloc,
POWERPC_V0);
- ORC_ASM_CODE(compiler," stvewx %s, 0, %s\n",
- powerpc_get_regname (var->alloc),
- powerpc_get_regname (POWERPC_R0));
+ ORC_ASM_CODE (compiler, " stvewx %s, 0, %s\n",
+ powerpc_get_regname (var->alloc), powerpc_get_regname (POWERPC_R0));
powerpc_emit_X (compiler, 0x7c00018e,
- powerpc_regnum(var->alloc),
- 0, powerpc_regnum(POWERPC_R0));
+ powerpc_regnum (var->alloc), 0, powerpc_regnum (POWERPC_R0));
}
if (set_vscr) {
int tmp = POWERPC_V0;
- ORC_ASM_CODE(compiler," vspltisw %s, %d\n",
- powerpc_get_regname(tmp), 0);
- powerpc_emit_VX(compiler, 0x1000038c,
- powerpc_regnum(tmp), 0, 0);
+ ORC_ASM_CODE (compiler, " vspltisw %s, %d\n",
+ powerpc_get_regname (tmp), 0);
+ powerpc_emit_VX (compiler, 0x1000038c, powerpc_regnum (tmp), 0, 0);
- powerpc_emit_VX_b(compiler, "mtvscr", 0x10000644, tmp);
+ powerpc_emit_VX_b (compiler, "mtvscr", 0x10000644, tmp);
}
powerpc_emit_epilogue (compiler);
powerpc_do_fixups (compiler);
}
-
diff --git a/orc/orcprogram-arm.c b/orc/orcprogram-arm.c
index f300d9c..4121a6f 100644
--- a/orc/orcprogram-arm.c
+++ b/orc/orcprogram-arm.c
@@ -14,44 +14,47 @@
#define SIZE 65536
-void orc_arm_emit_loop (OrcCompiler *compiler);
+void orc_arm_emit_loop (OrcCompiler * compiler);
-void orc_compiler_orc_arm_register_rules (OrcTarget *target);
+void orc_compiler_orc_arm_register_rules (OrcTarget * target);
-void orc_compiler_orc_arm_init (OrcCompiler *compiler);
+void orc_compiler_orc_arm_init (OrcCompiler * compiler);
unsigned int orc_compiler_orc_arm_get_default_flags (void);
-void orc_compiler_orc_arm_assemble (OrcCompiler *compiler);
+void orc_compiler_orc_arm_assemble (OrcCompiler * compiler);
-void orc_compiler_rewrite_vars (OrcCompiler *compiler);
-void orc_compiler_dump (OrcCompiler *compiler);
-void arm_add_strides (OrcCompiler *compiler);
+void orc_compiler_rewrite_vars (OrcCompiler * compiler);
+void orc_compiler_dump (OrcCompiler * compiler);
+void arm_add_strides (OrcCompiler * compiler);
void
-orc_arm_emit_prologue (OrcCompiler *compiler)
+orc_arm_emit_prologue (OrcCompiler * compiler)
{
unsigned int regs = 0;
int i;
- orc_compiler_append_code(compiler,".global %s\n", compiler->program->name);
- orc_compiler_append_code(compiler,"%s:\n", compiler->program->name);
+ orc_compiler_append_code (compiler, ".global %s\n", compiler->program->name);
+ orc_compiler_append_code (compiler, "%s:\n", compiler->program->name);
- for(i=0;i<16;i++){
+ for (i = 0; i < 16; i++) {
if (compiler->used_regs[ORC_GP_REG_BASE + i] &&
compiler->save_regs[ORC_GP_REG_BASE + i]) {
- regs |= (1<<i);
+ regs |= (1 << i);
}
}
- if (regs) orc_arm_emit_push (compiler, regs);
+ if (regs)
+ orc_arm_emit_push (compiler, regs);
}
void
-orc_arm_dump_insns (OrcCompiler *compiler)
+orc_arm_dump_insns (OrcCompiler * compiler)
{
orc_arm_emit_label (compiler, 0);
- orc_arm_emit_add_r (compiler, ORC_ARM_COND_AL, 0, ORC_ARM_A2, ORC_ARM_A3, ORC_ARM_A4);
- orc_arm_emit_sub_r (compiler, ORC_ARM_COND_AL, 0, ORC_ARM_A2, ORC_ARM_A3, ORC_ARM_A4);
+ orc_arm_emit_add_r (compiler, ORC_ARM_COND_AL, 0, ORC_ARM_A2, ORC_ARM_A3,
+ ORC_ARM_A4);
+ orc_arm_emit_sub_r (compiler, ORC_ARM_COND_AL, 0, ORC_ARM_A2, ORC_ARM_A3,
+ ORC_ARM_A4);
orc_arm_emit_push (compiler, 0x06);
orc_arm_emit_mov_r (compiler, ORC_ARM_COND_AL, 0, ORC_ARM_A2, ORC_ARM_A3);
@@ -64,18 +67,19 @@ orc_arm_dump_insns (OrcCompiler *compiler)
}
void
-orc_arm_emit_epilogue (OrcCompiler *compiler)
+orc_arm_emit_epilogue (OrcCompiler * compiler)
{
int i;
unsigned int regs = 0;
- for(i=0;i<16;i++){
+ for (i = 0; i < 16; i++) {
if (compiler->used_regs[ORC_GP_REG_BASE + i] &&
compiler->save_regs[ORC_GP_REG_BASE + i]) {
- regs |= (1<<i);
+ regs |= (1 << i);
}
}
- if (regs) orc_arm_emit_pop (compiler, regs);
+ if (regs)
+ orc_arm_emit_pop (compiler, regs);
orc_arm_emit_bx_lr (compiler);
//orc_arm_dump_insns (compiler);
@@ -92,7 +96,7 @@ static OrcTarget orc_arm_target = {
orc_compiler_orc_arm_get_default_flags,
orc_compiler_orc_arm_init,
orc_compiler_orc_arm_assemble,
- { { 0 } },
+ {{0}},
0,
NULL,
NULL,
@@ -123,11 +127,11 @@ orc_compiler_orc_arm_get_default_flags (void)
}
void
-orc_compiler_orc_arm_init (OrcCompiler *compiler)
+orc_compiler_orc_arm_init (OrcCompiler * compiler)
{
int i;
- for(i=ORC_GP_REG_BASE;i<ORC_GP_REG_BASE+9;i++){
+ for (i = ORC_GP_REG_BASE; i < ORC_GP_REG_BASE + 9; i++) {
compiler->valid_regs[i] = 1;
}
//compiler->valid_regs[ORC_ARM_SB] = 0;
@@ -135,11 +139,11 @@ orc_compiler_orc_arm_init (OrcCompiler *compiler)
compiler->valid_regs[ORC_ARM_SP] = 0;
compiler->valid_regs[ORC_ARM_LR] = 0;
compiler->valid_regs[ORC_ARM_PC] = 0;
- for(i=4;i<11;i++) {
- compiler->save_regs[ORC_GP_REG_BASE+i] = 1;
+ for (i = 4; i < 11; i++) {
+ compiler->save_regs[ORC_GP_REG_BASE + i] = 1;
}
-
- for(i=0;i<ORC_N_REGS;i++){
+
+ for (i = 0; i < ORC_N_REGS; i++) {
compiler->alloc_regs[i] = 0;
compiler->used_regs[i] = 0;
}
@@ -154,18 +158,19 @@ orc_compiler_orc_arm_init (OrcCompiler *compiler)
}
void
-orc_arm_load_constants_outer (OrcCompiler *compiler)
+orc_arm_load_constants_outer (OrcCompiler * compiler)
{
int i;
- for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
- if (compiler->vars[i].name == NULL) continue;
+ for (i = 0; i < ORC_N_COMPILER_VARIABLES; i++) {
+ if (compiler->vars[i].name == NULL)
+ continue;
switch (compiler->vars[i].vartype) {
case ORC_VAR_TYPE_CONST:
//orc_arm_emit_load_imm (compiler, compiler->vars[i].alloc,
// (int)compiler->vars[i].value);
break;
case ORC_VAR_TYPE_PARAM:
- ORC_PROGRAM_ERROR(compiler,"unimplemented");
+ ORC_PROGRAM_ERROR (compiler, "unimplemented");
return;
/* FIXME offset is too large */
//orc_arm_loadw (compiler, compiler->vars[i].alloc,
@@ -180,39 +185,41 @@ orc_arm_load_constants_outer (OrcCompiler *compiler)
}
}
- for(i=0;i<compiler->n_insns;i++){
+ for (i = 0; i < compiler->n_insns; i++) {
OrcInstruction *insn = compiler->insns + i;
OrcStaticOpcode *opcode = insn->opcode;
OrcRule *rule;
- if (!(insn->flags & ORC_INSN_FLAG_INVARIANT)) continue;
+ if (!(insn->flags & ORC_INSN_FLAG_INVARIANT))
+ continue;
- ORC_ASM_CODE(compiler,"# %d: %s\n", i, insn->opcode->name);
+ ORC_ASM_CODE (compiler, "# %d: %s\n", i, insn->opcode->name);
rule = insn->rule;
if (rule && rule->emit) {
rule->emit (compiler, rule->emit_user, insn);
} else {
- ORC_COMPILER_ERROR(compiler,"No rule for: %s", opcode->name);
+ ORC_COMPILER_ERROR (compiler, "No rule for: %s", opcode->name);
}
}
}
void
-orc_arm_load_constants_inner (OrcCompiler *compiler)
+orc_arm_load_constants_inner (OrcCompiler * compiler)
{
int i;
- for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
- if (compiler->vars[i].name == NULL) continue;
+ for (i = 0; i < ORC_N_COMPILER_VARIABLES; i++) {
+ if (compiler->vars[i].name == NULL)
+ continue;
switch (compiler->vars[i].vartype) {
case ORC_VAR_TYPE_CONST:
case ORC_VAR_TYPE_PARAM:
break;
case ORC_VAR_TYPE_SRC:
case ORC_VAR_TYPE_DEST:
- orc_arm_emit_load_reg (compiler,
+ orc_arm_emit_load_reg (compiler,
compiler->vars[i].ptr_register,
- compiler->exec_reg, ORC_STRUCT_OFFSET(OrcExecutor, arrays[i]));
+ compiler->exec_reg, ORC_STRUCT_OFFSET (OrcExecutor, arrays[i]));
break;
default:
break;
@@ -222,7 +229,7 @@ orc_arm_load_constants_inner (OrcCompiler *compiler)
#if 0
void
-orc_arm_emit_load_src (OrcCompiler *compiler, OrcVariable *var)
+orc_arm_emit_load_src (OrcCompiler * compiler, OrcVariable * var)
{
int ptr_reg;
if (var->ptr_register == 0) {
@@ -250,19 +257,20 @@ orc_arm_emit_load_src (OrcCompiler *compiler, OrcVariable *var)
orc_arm_loadl (compiler, var->alloc, ptr_reg, 0);
//orc_arm_emit_mov_memoffset_arm (compiler, 4, 0, ptr_reg, var->alloc);
break;
- //case 8:
+ //case 8:
//orc_arm_emit_mov_memoffset_arm (compiler, 8, 0, ptr_reg, var->alloc);
break;
- //case 16:
+ //case 16:
//orc_arm_emit_mov_memoffset_arm (compiler, 16, 0, ptr_reg, var->alloc);
break;
default:
- ORC_COMPILER_ERROR(compiler, "bad size %d", var->size << compiler->loop_shift);
+ ORC_COMPILER_ERROR (compiler, "bad size %d",
+ var->size << compiler->loop_shift);
}
}
void
-orc_arm_emit_store_dest (OrcCompiler *compiler, OrcVariable *var)
+orc_arm_emit_store_dest (OrcCompiler * compiler, OrcVariable * var)
{
int ptr_reg;
if (var->ptr_register == 0) {
@@ -297,13 +305,14 @@ orc_arm_emit_store_dest (OrcCompiler *compiler, OrcVariable *var)
// var->is_aligned, var->is_uncached);
break;
default:
- ORC_COMPILER_ERROR(compiler, "bad size %d", var->size << compiler->loop_shift);
+ ORC_COMPILER_ERROR (compiler, "bad size %d",
+ var->size << compiler->loop_shift);
}
}
#endif
void
-orc_compiler_orc_arm_assemble (OrcCompiler *compiler)
+orc_compiler_orc_arm_assemble (OrcCompiler * compiler)
{
int dest_var = ORC_VAR_D1;
@@ -315,22 +324,22 @@ orc_compiler_orc_arm_assemble (OrcCompiler *compiler)
if (compiler->program->is_2d) {
if (compiler->program->constant_m > 0) {
- orc_arm_emit_load_imm (compiler, ORC_ARM_A3, compiler->program->constant_m
-);
+ orc_arm_emit_load_imm (compiler, ORC_ARM_A3,
+ compiler->program->constant_m);
orc_arm_emit_store_reg (compiler, ORC_ARM_A3, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,params[ORC_VAR_A2]));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[ORC_VAR_A2]));
} else {
orc_arm_emit_load_reg (compiler, ORC_ARM_A3, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[ORC_VAR_A1]));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[ORC_VAR_A1]));
orc_arm_emit_store_reg (compiler, ORC_ARM_A3, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,params[ORC_VAR_A2]));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[ORC_VAR_A2]));
}
-
+
orc_arm_emit_label (compiler, 8);
}
orc_arm_emit_load_reg (compiler, ORC_ARM_IP, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,n));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, n));
orc_arm_load_constants_inner (compiler);
orc_arm_emit_label (compiler, 1);
@@ -349,10 +358,10 @@ orc_compiler_orc_arm_assemble (OrcCompiler *compiler)
arm_add_strides (compiler);
orc_arm_emit_load_reg (compiler, ORC_ARM_A3, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[ORC_VAR_A2]));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[ORC_VAR_A2]));
orc_arm_emit_sub_imm (compiler, ORC_ARM_A3, ORC_ARM_A3, 1, TRUE);
orc_arm_emit_store_reg (compiler, ORC_ARM_A3, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,params[ORC_VAR_A2]));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[ORC_VAR_A2]));
orc_arm_emit_branch (compiler, ORC_ARM_COND_NE, 8);
}
@@ -362,7 +371,7 @@ orc_compiler_orc_arm_assemble (OrcCompiler *compiler)
}
void
-orc_arm_emit_loop (OrcCompiler *compiler)
+orc_arm_emit_loop (OrcCompiler * compiler)
{
int j;
int k;
@@ -370,28 +379,30 @@ orc_arm_emit_loop (OrcCompiler *compiler)
OrcStaticOpcode *opcode;
OrcRule *rule;
- for(j=0;j<compiler->n_insns;j++){
+ for (j = 0; j < compiler->n_insns; j++) {
insn = compiler->insns + j;
opcode = insn->opcode;
- if (insn->flags & ORC_INSN_FLAG_INVARIANT) continue;
+ if (insn->flags & ORC_INSN_FLAG_INVARIANT)
+ continue;
- orc_compiler_append_code(compiler,"# %d: %s", j, insn->opcode->name);
+ orc_compiler_append_code (compiler, "# %d: %s", j, insn->opcode->name);
/* set up args */
#if 0
- for(k=0;k<opcode->n_src + opcode->n_dest;k++){
+ for (k = 0; k < opcode->n_src + opcode->n_dest; k++) {
args[k] = compiler->vars + insn->args[k];
- orc_compiler_append_code(compiler," %d", args[k]->alloc);
+ orc_compiler_append_code (compiler, " %d", args[k]->alloc);
if (args[k]->is_chained) {
- orc_compiler_append_code(compiler," (chained)");
+ orc_compiler_append_code (compiler, " (chained)");
}
}
#endif
- orc_compiler_append_code(compiler,"\n");
+ orc_compiler_append_code (compiler, "\n");
- for(k=0;k<ORC_STATIC_OPCODE_N_SRC;k++){
- if (opcode->src_size[k] == 0) continue;
+ for (k = 0; k < ORC_STATIC_OPCODE_N_SRC; k++) {
+ if (opcode->src_size[k] == 0)
+ continue;
switch (compiler->vars[insn->src_args[k]].vartype) {
case ORC_VAR_TYPE_SRC:
@@ -419,11 +430,12 @@ orc_arm_emit_loop (OrcCompiler *compiler)
}
rule->emit (compiler, rule->emit_user, insn);
} else {
- orc_compiler_append_code(compiler,"No rule for: %s\n", opcode->name);
+ orc_compiler_append_code (compiler, "No rule for: %s\n", opcode->name);
}
- for(k=0;k<ORC_STATIC_OPCODE_N_DEST;k++){
- if (opcode->dest_size[k] == 0) continue;
+ for (k = 0; k < ORC_STATIC_OPCODE_N_DEST; k++) {
+ if (opcode->dest_size[k] == 0)
+ continue;
switch (compiler->vars[insn->dest_args[k]].vartype) {
case ORC_VAR_TYPE_DEST:
@@ -437,8 +449,9 @@ orc_arm_emit_loop (OrcCompiler *compiler)
}
}
- for(k=0;k<ORC_N_COMPILER_VARIABLES;k++){
- if (compiler->vars[k].name == NULL) continue;
+ for (k = 0; k < ORC_N_COMPILER_VARIABLES; k++) {
+ if (compiler->vars[k].name == NULL)
+ continue;
if (compiler->vars[k].vartype == ORC_VAR_TYPE_SRC ||
compiler->vars[k].vartype == ORC_VAR_TYPE_DEST) {
if (compiler->vars[k].ptr_register) {
@@ -457,12 +470,13 @@ orc_arm_emit_loop (OrcCompiler *compiler)
}
void
-arm_add_strides (OrcCompiler *compiler)
+arm_add_strides (OrcCompiler * compiler)
{
int i;
- for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
- if (compiler->vars[i].name == NULL) continue;
+ for (i = 0; i < ORC_N_COMPILER_VARIABLES; i++) {
+ if (compiler->vars[i].name == NULL)
+ continue;
switch (compiler->vars[i].vartype) {
case ORC_VAR_TYPE_CONST:
break;
@@ -471,21 +485,20 @@ arm_add_strides (OrcCompiler *compiler)
case ORC_VAR_TYPE_SRC:
case ORC_VAR_TYPE_DEST:
orc_arm_emit_load_reg (compiler, ORC_ARM_A3, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, arrays[i]));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, arrays[i]));
orc_arm_emit_load_reg (compiler, ORC_ARM_A2, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[i]));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[i]));
orc_arm_emit_add (compiler, ORC_ARM_A3, ORC_ARM_A3, ORC_ARM_A2);
orc_arm_emit_store_reg (compiler, ORC_ARM_A3, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, arrays[i]));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, arrays[i]));
break;
case ORC_VAR_TYPE_ACCUMULATOR:
break;
case ORC_VAR_TYPE_TEMP:
break;
default:
- ORC_COMPILER_ERROR(compiler,"bad vartype");
+ ORC_COMPILER_ERROR (compiler, "bad vartype");
break;
}
}
}
-
diff --git a/orc/orcprogram-c.c b/orc/orcprogram-c.c
index dac0fe6..295e7c6 100644
--- a/orc/orcprogram-c.c
+++ b/orc/orcprogram-c.c
@@ -10,16 +10,17 @@
#include <orc/orcdebug.h>
static const char *c_get_type_name (int size);
-static void c_get_name_int (char *name, OrcCompiler *p, OrcInstruction *insn, int var);
+static void c_get_name_int (char *name, OrcCompiler * p, OrcInstruction * insn,
+ int var);
void orc_c_init (void);
void
-orc_compiler_c_init (OrcCompiler *compiler)
+orc_compiler_c_init (OrcCompiler * compiler)
{
int i;
- for(i=ORC_GP_REG_BASE;i<ORC_GP_REG_BASE+32;i++){
+ for (i = ORC_GP_REG_BASE; i < ORC_GP_REG_BASE + 32; i++) {
compiler->valid_regs[i] = 1;
}
compiler->loop_shift = 0;
@@ -29,108 +30,103 @@ const char *
orc_target_c_get_typedefs (void)
{
return
- "#ifndef _ORC_INTEGER_TYPEDEFS_\n"
- "#define _ORC_INTEGER_TYPEDEFS_\n"
- "#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L\n"
- "#include <stdint.h>\n"
- "typedef int8_t orc_int8;\n"
- "typedef int16_t orc_int16;\n"
- "typedef int32_t orc_int32;\n"
- "typedef int64_t orc_int64;\n"
- "typedef uint8_t orc_uint8;\n"
- "typedef uint16_t orc_uint16;\n"
- "typedef uint32_t orc_uint32;\n"
- "typedef uint64_t orc_uint64;\n"
- "#define ORC_UINT64_C(x) UINT64_C(x)\n"
- "#elif defined(_MSC_VER)\n"
- "typedef signed __int8 orc_int8;\n"
- "typedef signed __int16 orc_int16;\n"
- "typedef signed __int32 orc_int32;\n"
- "typedef signed __int64 orc_int64;\n"
- "typedef unsigned __int8 orc_uint8;\n"
- "typedef unsigned __int16 orc_uint16;\n"
- "typedef unsigned __int32 orc_uint32;\n"
- "typedef unsigned __int64 orc_uint64;\n"
- "#define ORC_UINT64_C(x) (x##Ui64)\n"
- "#define inline __inline\n"
- "#else\n"
- "#include <limits.h>\n"
- "typedef signed char orc_int8;\n"
- "typedef short orc_int16;\n"
- "typedef int orc_int32;\n"
- "typedef unsigned char orc_uint8;\n"
- "typedef unsigned short orc_uint16;\n"
- "typedef unsigned int orc_uint32;\n"
- "#if INT_MAX == LONG_MAX\n"
- "typedef long long orc_int64;\n"
- "typedef unsigned long long orc_uint64;\n"
- "#define ORC_UINT64_C(x) (x##ULL)\n"
- "#else\n"
- "typedef long orc_int64;\n"
- "typedef unsigned long orc_uint64;\n"
- "#define ORC_UINT64_C(x) (x##UL)\n"
- "#endif\n"
- "#endif\n"
- "typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16;\n"
- "typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32;\n"
- "typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; } orc_union64;\n"
- "#endif\n"
- "#ifndef ORC_RESTRICT\n"
- "#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L\n"
- "#define ORC_RESTRICT restrict\n"
- "#elif defined(__GNUC__) && __GNUC__ >= 4\n"
- "#define ORC_RESTRICT __restrict__\n"
- "#else\n"
- "#define ORC_RESTRICT\n"
- "#endif\n"
- "#endif\n";
+ "#ifndef _ORC_INTEGER_TYPEDEFS_\n"
+ "#define _ORC_INTEGER_TYPEDEFS_\n"
+ "#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L\n"
+ "#include <stdint.h>\n"
+ "typedef int8_t orc_int8;\n"
+ "typedef int16_t orc_int16;\n"
+ "typedef int32_t orc_int32;\n"
+ "typedef int64_t orc_int64;\n"
+ "typedef uint8_t orc_uint8;\n"
+ "typedef uint16_t orc_uint16;\n"
+ "typedef uint32_t orc_uint32;\n"
+ "typedef uint64_t orc_uint64;\n"
+ "#define ORC_UINT64_C(x) UINT64_C(x)\n"
+ "#elif defined(_MSC_VER)\n"
+ "typedef signed __int8 orc_int8;\n"
+ "typedef signed __int16 orc_int16;\n"
+ "typedef signed __int32 orc_int32;\n"
+ "typedef signed __int64 orc_int64;\n"
+ "typedef unsigned __int8 orc_uint8;\n"
+ "typedef unsigned __int16 orc_uint16;\n"
+ "typedef unsigned __int32 orc_uint32;\n"
+ "typedef unsigned __int64 orc_uint64;\n"
+ "#define ORC_UINT64_C(x) (x##Ui64)\n"
+ "#define inline __inline\n"
+ "#else\n"
+ "#include <limits.h>\n"
+ "typedef signed char orc_int8;\n"
+ "typedef short orc_int16;\n"
+ "typedef int orc_int32;\n"
+ "typedef unsigned char orc_uint8;\n"
+ "typedef unsigned short orc_uint16;\n"
+ "typedef unsigned int orc_uint32;\n"
+ "#if INT_MAX == LONG_MAX\n"
+ "typedef long long orc_int64;\n"
+ "typedef unsigned long long orc_uint64;\n"
+ "#define ORC_UINT64_C(x) (x##ULL)\n"
+ "#else\n"
+ "typedef long orc_int64;\n"
+ "typedef unsigned long orc_uint64;\n"
+ "#define ORC_UINT64_C(x) (x##UL)\n"
+ "#endif\n"
+ "#endif\n"
+ "typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16;\n"
+ "typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32;\n"
+ "typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; } orc_union64;\n"
+ "#endif\n"
+ "#ifndef ORC_RESTRICT\n"
+ "#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L\n"
+ "#define ORC_RESTRICT restrict\n"
+ "#elif defined(__GNUC__) && __GNUC__ >= 4\n"
+ "#define ORC_RESTRICT __restrict__\n"
+ "#else\n" "#define ORC_RESTRICT\n" "#endif\n" "#endif\n";
}
const char *
orc_target_c_get_asm_preamble (void)
{
return "\n"
- "/* begin Orc C target preamble */\n"
- "#define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))\n"
- "#define ORC_ABS(a) ((a)<0 ? -(a) : (a))\n"
- "#define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))\n"
- "#define ORC_MAX(a,b) ((a)>(b) ? (a) : (b))\n"
- "#define ORC_SB_MAX 127\n"
- "#define ORC_SB_MIN (-1-ORC_SB_MAX)\n"
- "#define ORC_UB_MAX 255\n"
- "#define ORC_UB_MIN 0\n"
- "#define ORC_SW_MAX 32767\n"
- "#define ORC_SW_MIN (-1-ORC_SW_MAX)\n"
- "#define ORC_UW_MAX 65535\n"
- "#define ORC_UW_MIN 0\n"
- "#define ORC_SL_MAX 2147483647\n"
- "#define ORC_SL_MIN (-1-ORC_SL_MAX)\n"
- "#define ORC_UL_MAX 4294967295U\n"
- "#define ORC_UL_MIN 0\n"
- "#define ORC_CLAMP_SB(x) ORC_CLAMP(x,ORC_SB_MIN,ORC_SB_MAX)\n"
- "#define ORC_CLAMP_UB(x) ORC_CLAMP(x,ORC_UB_MIN,ORC_UB_MAX)\n"
- "#define ORC_CLAMP_SW(x) ORC_CLAMP(x,ORC_SW_MIN,ORC_SW_MAX)\n"
- "#define ORC_CLAMP_UW(x) ORC_CLAMP(x,ORC_UW_MIN,ORC_UW_MAX)\n"
- "#define ORC_CLAMP_SL(x) ORC_CLAMP(x,ORC_SL_MIN,ORC_SL_MAX)\n"
- "#define ORC_CLAMP_UL(x) ORC_CLAMP(x,ORC_UL_MIN,ORC_UL_MAX)\n"
- "#define ORC_SWAP_W(x) ((((x)&0xff)<<8) | (((x)&0xff00)>>8))\n"
- "#define ORC_SWAP_L(x) ((((x)&0xff)<<24) | (((x)&0xff00)<<8) | (((x)&0xff0000)>>8) | (((x)&0xff000000)>>24))\n"
- "#define ORC_SWAP_Q(x) ((((x)&ORC_UINT64_C(0xff))<<56) | (((x)&ORC_UINT64_C(0xff00))<<40) | (((x)&ORC_UINT64_C(0xff0000))<<24) | (((x)&ORC_UINT64_C(0xff000000))<<8) | (((x)&ORC_UINT64_C(0xff00000000))>>8) | (((x)&ORC_UINT64_C(0xff0000000000))>>24) | (((x)&ORC_UINT64_C(0xff000000000000))>>40) | (((x)&ORC_UINT64_C(0xff00000000000000))>>56))\n"
- "#define ORC_PTR_OFFSET(ptr,offset) ((void *)(((unsigned char *)(ptr)) + (offset)))\n"
- "#define ORC_DENORMAL(x) ((x) & ((((x)&0x7f800000) == 0) ? 0xff800000 : 0xffffffff))\n"
- "#define ORC_ISNAN(x) ((((x)&0x7f800000) == 0x7f800000) && (((x)&0x007fffff) != 0))\n"
- "#define ORC_DENORMAL_DOUBLE(x) ((x) & ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == 0) ? ORC_UINT64_C(0xfff0000000000000) : ORC_UINT64_C(0xffffffffffffffff)))\n"
- "#define ORC_ISNAN_DOUBLE(x) ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == ORC_UINT64_C(0x7ff0000000000000)) && (((x)&ORC_UINT64_C(0x000fffffffffffff)) != 0))\n"
- "#ifndef ORC_RESTRICT\n"
- "#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L\n"
- "#define ORC_RESTRICT restrict\n"
- "#elif defined(__GNUC__) && __GNUC__ >= 4\n"
- "#define ORC_RESTRICT __restrict__\n"
- "#else\n"
- "#define ORC_RESTRICT\n"
- "#endif\n"
- "#endif\n"
- "/* end Orc C target preamble */\n\n";
+ "/* begin Orc C target preamble */\n"
+ "#define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))\n"
+ "#define ORC_ABS(a) ((a)<0 ? -(a) : (a))\n"
+ "#define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))\n"
+ "#define ORC_MAX(a,b) ((a)>(b) ? (a) : (b))\n"
+ "#define ORC_SB_MAX 127\n"
+ "#define ORC_SB_MIN (-1-ORC_SB_MAX)\n"
+ "#define ORC_UB_MAX 255\n"
+ "#define ORC_UB_MIN 0\n"
+ "#define ORC_SW_MAX 32767\n"
+ "#define ORC_SW_MIN (-1-ORC_SW_MAX)\n"
+ "#define ORC_UW_MAX 65535\n"
+ "#define ORC_UW_MIN 0\n"
+ "#define ORC_SL_MAX 2147483647\n"
+ "#define ORC_SL_MIN (-1-ORC_SL_MAX)\n"
+ "#define ORC_UL_MAX 4294967295U\n"
+ "#define ORC_UL_MIN 0\n"
+ "#define ORC_CLAMP_SB(x) ORC_CLAMP(x,ORC_SB_MIN,ORC_SB_MAX)\n"
+ "#define ORC_CLAMP_UB(x) ORC_CLAMP(x,ORC_UB_MIN,ORC_UB_MAX)\n"
+ "#define ORC_CLAMP_SW(x) ORC_CLAMP(x,ORC_SW_MIN,ORC_SW_MAX)\n"
+ "#define ORC_CLAMP_UW(x) ORC_CLAMP(x,ORC_UW_MIN,ORC_UW_MAX)\n"
+ "#define ORC_CLAMP_SL(x) ORC_CLAMP(x,ORC_SL_MIN,ORC_SL_MAX)\n"
+ "#define ORC_CLAMP_UL(x) ORC_CLAMP(x,ORC_UL_MIN,ORC_UL_MAX)\n"
+ "#define ORC_SWAP_W(x) ((((x)&0xff)<<8) | (((x)&0xff00)>>8))\n"
+ "#define ORC_SWAP_L(x) ((((x)&0xff)<<24) | (((x)&0xff00)<<8) | (((x)&0xff0000)>>8) | (((x)&0xff000000)>>24))\n"
+ "#define ORC_SWAP_Q(x) ((((x)&ORC_UINT64_C(0xff))<<56) | (((x)&ORC_UINT64_C(0xff00))<<40) | (((x)&ORC_UINT64_C(0xff0000))<<24) | (((x)&ORC_UINT64_C(0xff000000))<<8) | (((x)&ORC_UINT64_C(0xff00000000))>>8) | (((x)&ORC_UINT64_C(0xff0000000000))>>24) | (((x)&ORC_UINT64_C(0xff000000000000))>>40) | (((x)&ORC_UINT64_C(0xff00000000000000))>>56))\n"
+ "#define ORC_PTR_OFFSET(ptr,offset) ((void *)(((unsigned char *)(ptr)) + (offset)))\n"
+ "#define ORC_DENORMAL(x) ((x) & ((((x)&0x7f800000) == 0) ? 0xff800000 : 0xffffffff))\n"
+ "#define ORC_ISNAN(x) ((((x)&0x7f800000) == 0x7f800000) && (((x)&0x007fffff) != 0))\n"
+ "#define ORC_DENORMAL_DOUBLE(x) ((x) & ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == 0) ? ORC_UINT64_C(0xfff0000000000000) : ORC_UINT64_C(0xffffffffffffffff)))\n"
+ "#define ORC_ISNAN_DOUBLE(x) ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == ORC_UINT64_C(0x7ff0000000000000)) && (((x)&ORC_UINT64_C(0x000fffffffffffff)) != 0))\n"
+ "#ifndef ORC_RESTRICT\n"
+ "#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L\n"
+ "#define ORC_RESTRICT restrict\n"
+ "#elif defined(__GNUC__) && __GNUC__ >= 4\n"
+ "#define ORC_RESTRICT __restrict__\n"
+ "#else\n"
+ "#define ORC_RESTRICT\n"
+ "#endif\n" "#endif\n" "/* end Orc C target preamble */\n\n";
}
unsigned int
@@ -155,37 +151,37 @@ static const char *varnames[] = {
};
static void
-get_varname (char *s, OrcCompiler *compiler, int var)
+get_varname (char *s, OrcCompiler * compiler, int var)
{
if (compiler->target_flags & ORC_TARGET_C_NOEXEC) {
if (var < 48) {
strcpy (s, varnames[var]);
} else {
- sprintf(s, "t%d", var-32);
+ sprintf (s, "t%d", var - 32);
}
} else if (compiler->target_flags & ORC_TARGET_C_OPCODE) {
if (var < ORC_VAR_S1) {
- sprintf(s, "ex->dest_ptrs[%d]", var-ORC_VAR_D1);
+ sprintf (s, "ex->dest_ptrs[%d]", var - ORC_VAR_D1);
} else {
- sprintf(s, "ex->src_ptrs[%d]", var-ORC_VAR_S1);
+ sprintf (s, "ex->src_ptrs[%d]", var - ORC_VAR_S1);
}
} else {
- sprintf(s, "ex->arrays[%d]", var);
+ sprintf (s, "ex->arrays[%d]", var);
}
}
static void
-get_varname_stride (char *s, OrcCompiler *compiler, int var)
+get_varname_stride (char *s, OrcCompiler * compiler, int var)
{
if (compiler->target_flags & ORC_TARGET_C_NOEXEC) {
- sprintf(s, "%s_stride", varnames[var]);
+ sprintf (s, "%s_stride", varnames[var]);
} else {
- sprintf(s, "ex->params[%d]", var);
+ sprintf (s, "ex->params[%d]", var);
}
}
void
-orc_compiler_c_assemble (OrcCompiler *compiler)
+orc_compiler_c_assemble (OrcCompiler * compiler)
{
int i;
int j;
@@ -195,119 +191,117 @@ orc_compiler_c_assemble (OrcCompiler *compiler)
int prefix = 0;
if (!(compiler->target_flags & ORC_TARGET_C_BARE)) {
- ORC_ASM_CODE(compiler,"void\n");
- ORC_ASM_CODE(compiler,"%s (OrcExecutor *ex)\n", compiler->program->name);
- ORC_ASM_CODE(compiler,"{\n");
+ ORC_ASM_CODE (compiler, "void\n");
+ ORC_ASM_CODE (compiler, "%s (OrcExecutor *ex)\n", compiler->program->name);
+ ORC_ASM_CODE (compiler, "{\n");
}
- ORC_ASM_CODE(compiler,"%*s int i;\n", prefix, "");
+ ORC_ASM_CODE (compiler, "%*s int i;\n", prefix, "");
if (compiler->program->is_2d) {
- ORC_ASM_CODE(compiler," int j;\n");
+ ORC_ASM_CODE (compiler, " int j;\n");
}
if (compiler->program->constant_n == 0) {
if (!(compiler->target_flags & ORC_TARGET_C_NOEXEC) &&
!(compiler->target_flags & ORC_TARGET_C_OPCODE)) {
- ORC_ASM_CODE(compiler," int n = ex->n;\n");
+ ORC_ASM_CODE (compiler, " int n = ex->n;\n");
}
} else {
- ORC_ASM_CODE(compiler," int n = %d;\n", compiler->program->constant_n);
+ ORC_ASM_CODE (compiler, " int n = %d;\n", compiler->program->constant_n);
}
if (compiler->program->is_2d) {
if (compiler->program->constant_m == 0) {
if (!(compiler->target_flags & ORC_TARGET_C_NOEXEC)) {
- ORC_ASM_CODE(compiler," int m = ex->params[ORC_VAR_A1];\n");
+ ORC_ASM_CODE (compiler, " int m = ex->params[ORC_VAR_A1];\n");
}
} else {
- ORC_ASM_CODE(compiler," int m = %d;\n", compiler->program->constant_m);
+ ORC_ASM_CODE (compiler, " int m = %d;\n", compiler->program->constant_m);
}
}
- for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
+ for (i = 0; i < ORC_N_COMPILER_VARIABLES; i++) {
OrcVariable *var = compiler->vars + i;
- if (var->name == NULL) continue;
+ if (var->name == NULL)
+ continue;
switch (var->vartype) {
case ORC_VAR_TYPE_CONST:
break;
case ORC_VAR_TYPE_TEMP:
if (!(var->last_use == -1 && var->first_use == 0)) {
- ORC_ASM_CODE(compiler," %s var%d;\n", c_get_type_name(var->size), i);
+ ORC_ASM_CODE (compiler, " %s var%d;\n", c_get_type_name (var->size),
+ i);
}
break;
case ORC_VAR_TYPE_SRC:
- ORC_ASM_CODE(compiler," const %s * ORC_RESTRICT ptr%d;\n",
- c_get_type_name (var->size),
- i);
+ ORC_ASM_CODE (compiler, " const %s * ORC_RESTRICT ptr%d;\n",
+ c_get_type_name (var->size), i);
break;
case ORC_VAR_TYPE_DEST:
- ORC_ASM_CODE(compiler," %s * ORC_RESTRICT ptr%d;\n",
- c_get_type_name (var->size),
- i);
+ ORC_ASM_CODE (compiler, " %s * ORC_RESTRICT ptr%d;\n",
+ c_get_type_name (var->size), i);
break;
case ORC_VAR_TYPE_ACCUMULATOR:
if (var->size >= 2) {
- ORC_ASM_CODE(compiler," %s var%d = { 0 };\n",
- c_get_type_name (var->size),
- i);
+ ORC_ASM_CODE (compiler, " %s var%d = { 0 };\n",
+ c_get_type_name (var->size), i);
} else {
- ORC_ASM_CODE(compiler," %s var%d = 0;\n",
- c_get_type_name (var->size),
- i);
+ ORC_ASM_CODE (compiler, " %s var%d = 0;\n",
+ c_get_type_name (var->size), i);
}
break;
case ORC_VAR_TYPE_PARAM:
break;
default:
- ORC_COMPILER_ERROR(compiler, "bad vartype");
+ ORC_COMPILER_ERROR (compiler, "bad vartype");
break;
}
}
- ORC_ASM_CODE(compiler,"\n");
+ ORC_ASM_CODE (compiler, "\n");
if (compiler->program->is_2d) {
- ORC_ASM_CODE(compiler," for (j = 0; j < m; j++) {\n");
+ ORC_ASM_CODE (compiler, " for (j = 0; j < m; j++) {\n");
prefix = 2;
- for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
+ for (i = 0; i < ORC_N_COMPILER_VARIABLES; i++) {
OrcVariable *var = compiler->vars + i;
- if (var->name == NULL) continue;
+ if (var->name == NULL)
+ continue;
switch (var->vartype) {
case ORC_VAR_TYPE_SRC:
- {
- char s1[40], s2[40];
- get_varname(s1, compiler, i);
- get_varname_stride(s2, compiler, i);
- ORC_ASM_CODE(compiler,
- " ptr%d = ORC_PTR_OFFSET(%s, %s * j);\n",
- i, s1, s2);
- }
+ {
+ char s1[40], s2[40];
+ get_varname (s1, compiler, i);
+ get_varname_stride (s2, compiler, i);
+ ORC_ASM_CODE (compiler,
+ " ptr%d = ORC_PTR_OFFSET(%s, %s * j);\n", i, s1, s2);
+ }
break;
case ORC_VAR_TYPE_DEST:
- {
- char s1[40], s2[40];
- get_varname(s1, compiler, i),
- get_varname_stride(s2, compiler, i),
- ORC_ASM_CODE(compiler,
- " ptr%d = ORC_PTR_OFFSET(%s, %s * j);\n",
- i, s1, s2);
- }
+ {
+ char s1[40], s2[40];
+ get_varname (s1, compiler, i),
+ get_varname_stride (s2, compiler, i),
+ ORC_ASM_CODE (compiler,
+ " ptr%d = ORC_PTR_OFFSET(%s, %s * j);\n", i, s1, s2);
+ }
break;
default:
break;
}
}
} else {
- for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
+ for (i = 0; i < ORC_N_COMPILER_VARIABLES; i++) {
OrcVariable *var = compiler->vars + i;
char s[40];
- if (var->name == NULL) continue;
- get_varname(s, compiler, i);
+ if (var->name == NULL)
+ continue;
+ get_varname (s, compiler, i);
switch (var->vartype) {
case ORC_VAR_TYPE_SRC:
- ORC_ASM_CODE(compiler," ptr%d = (%s *)%s;\n", i,
+ ORC_ASM_CODE (compiler, " ptr%d = (%s *)%s;\n", i,
c_get_type_name (var->size), s);
break;
case ORC_VAR_TYPE_DEST:
- ORC_ASM_CODE(compiler," ptr%d = (%s *)%s;\n", i,
+ ORC_ASM_CODE (compiler, " ptr%d = (%s *)%s;\n", i,
c_get_type_name (var->size), s);
break;
default:
@@ -316,111 +310,114 @@ orc_compiler_c_assemble (OrcCompiler *compiler)
}
}
- ORC_ASM_CODE(compiler,"\n");
- for(j=0;j<compiler->n_insns;j++){
+ ORC_ASM_CODE (compiler, "\n");
+ for (j = 0; j < compiler->n_insns; j++) {
insn = compiler->insns + j;
opcode = insn->opcode;
- if (!(insn->flags & ORC_INSN_FLAG_INVARIANT)) continue;
+ if (!(insn->flags & ORC_INSN_FLAG_INVARIANT))
+ continue;
- ORC_ASM_CODE(compiler,"%*s /* %d: %s */\n", prefix, "",
+ ORC_ASM_CODE (compiler, "%*s /* %d: %s */\n", prefix, "",
j, insn->opcode->name);
rule = insn->rule;
if (!rule) {
- ORC_COMPILER_ERROR(compiler, "No rule for: %s on target %s", opcode->name,
- compiler->target->name);
+ ORC_COMPILER_ERROR (compiler, "No rule for: %s on target %s",
+ opcode->name, compiler->target->name);
continue;
}
- ORC_ASM_CODE(compiler,"%*s", prefix, "");
- if (insn->flags & (ORC_INSTRUCTION_FLAG_X2|ORC_INSTRUCTION_FLAG_X4)) {
+ ORC_ASM_CODE (compiler, "%*s", prefix, "");
+ if (insn->flags & (ORC_INSTRUCTION_FLAG_X2 | ORC_INSTRUCTION_FLAG_X4)) {
int n;
if (insn->flags & ORC_INSTRUCTION_FLAG_X2) {
n = 2;
} else {
n = 4;
}
- for(i=0;i<n;i++){
+ for (i = 0; i < n; i++) {
compiler->unroll_index = i;
- ORC_ASM_CODE(compiler,"%*s", prefix, "");
+ ORC_ASM_CODE (compiler, "%*s", prefix, "");
rule->emit (compiler, rule->emit_user, insn);
}
} else {
- ORC_ASM_CODE(compiler,"%*s", prefix, "");
+ ORC_ASM_CODE (compiler, "%*s", prefix, "");
rule->emit (compiler, rule->emit_user, insn);
}
}
- ORC_ASM_CODE(compiler,"\n");
- ORC_ASM_CODE(compiler,"%*s for (i = 0; i < n; i++) {\n", prefix, "");
+ ORC_ASM_CODE (compiler, "\n");
+ ORC_ASM_CODE (compiler, "%*s for (i = 0; i < n; i++) {\n", prefix, "");
/* Emit instructions */
- for(j=0;j<compiler->n_insns;j++){
+ for (j = 0; j < compiler->n_insns; j++) {
insn = compiler->insns + j;
opcode = insn->opcode;
- if (insn->flags & ORC_INSN_FLAG_INVARIANT) continue;
+ if (insn->flags & ORC_INSN_FLAG_INVARIANT)
+ continue;
- ORC_ASM_CODE(compiler,"%*s /* %d: %s */\n", prefix, "",
+ ORC_ASM_CODE (compiler, "%*s /* %d: %s */\n", prefix, "",
j, insn->opcode->name);
rule = insn->rule;
if (!rule) {
- ORC_COMPILER_ERROR(compiler, "No rule for: %s on target %s", opcode->name,
- compiler->target->name);
+ ORC_COMPILER_ERROR (compiler, "No rule for: %s on target %s",
+ opcode->name, compiler->target->name);
continue;
}
- if (insn->flags & (ORC_INSTRUCTION_FLAG_X2|ORC_INSTRUCTION_FLAG_X4)) {
+ if (insn->flags & (ORC_INSTRUCTION_FLAG_X2 | ORC_INSTRUCTION_FLAG_X4)) {
int n;
if (insn->flags & ORC_INSTRUCTION_FLAG_X2) {
n = 2;
} else {
n = 4;
}
- for(i=0;i<n;i++){
+ for (i = 0; i < n; i++) {
compiler->unroll_index = i;
- ORC_ASM_CODE(compiler,"%*s", prefix, "");
+ ORC_ASM_CODE (compiler, "%*s", prefix, "");
rule->emit (compiler, rule->emit_user, insn);
}
} else {
- ORC_ASM_CODE(compiler,"%*s", prefix, "");
+ ORC_ASM_CODE (compiler, "%*s", prefix, "");
rule->emit (compiler, rule->emit_user, insn);
}
}
- ORC_ASM_CODE(compiler,"%*s }\n", prefix, "");
+ ORC_ASM_CODE (compiler, "%*s }\n", prefix, "");
if (compiler->program->is_2d) {
- ORC_ASM_CODE(compiler," }\n");
+ ORC_ASM_CODE (compiler, " }\n");
}
- for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
+ for (i = 0; i < ORC_N_COMPILER_VARIABLES; i++) {
char varname[40];
OrcVariable *var = compiler->vars + i;
- if (var->name == NULL) continue;
+ if (var->name == NULL)
+ continue;
switch (var->vartype) {
case ORC_VAR_TYPE_ACCUMULATOR:
c_get_name_int (varname, compiler, NULL, i);
if (var->size == 2) {
if (compiler->target_flags & ORC_TARGET_C_NOEXEC) {
- ORC_ASM_CODE(compiler," *%s = (%s & 0xffff);\n",
+ ORC_ASM_CODE (compiler, " *%s = (%s & 0xffff);\n",
varnames[i], varname);
} else if (compiler->target_flags & ORC_TARGET_C_OPCODE) {
- ORC_ASM_CODE(compiler," ((orc_union32 *)ex->dest_ptrs[%d])->i = "
+ ORC_ASM_CODE (compiler, " ((orc_union32 *)ex->dest_ptrs[%d])->i = "
"(%s + ((orc_union32 *)ex->dest_ptrs[%d])->i) & 0xffff;\n",
i - ORC_VAR_A1, varname, i - ORC_VAR_A1);
} else {
- ORC_ASM_CODE(compiler," ex->accumulators[%d] = (%s & 0xffff);\n",
+ ORC_ASM_CODE (compiler, " ex->accumulators[%d] = (%s & 0xffff);\n",
i - ORC_VAR_A1, varname);
}
} else {
if (compiler->target_flags & ORC_TARGET_C_NOEXEC) {
- ORC_ASM_CODE(compiler," *%s = %s;\n",
- varnames[i], varname);
+ ORC_ASM_CODE (compiler, " *%s = %s;\n", varnames[i], varname);
} else if (compiler->target_flags & ORC_TARGET_C_OPCODE) {
- ORC_ASM_CODE(compiler," ((orc_union32 *)ex->dest_ptrs[%d])->i += %s;\n",
+ ORC_ASM_CODE (compiler,
+ " ((orc_union32 *)ex->dest_ptrs[%d])->i += %s;\n",
i - ORC_VAR_A1, varname);
} else {
- ORC_ASM_CODE(compiler," ex->accumulators[%d] = %s;\n",
+ ORC_ASM_CODE (compiler, " ex->accumulators[%d] = %s;\n",
i - ORC_VAR_A1, varname);
}
}
@@ -431,8 +428,8 @@ orc_compiler_c_assemble (OrcCompiler *compiler)
}
if (!(compiler->target_flags & ORC_TARGET_C_BARE)) {
- ORC_ASM_CODE(compiler,"}\n");
- ORC_ASM_CODE(compiler,"\n");
+ ORC_ASM_CODE (compiler, "}\n");
+ ORC_ASM_CODE (compiler, "\n");
}
}
@@ -440,66 +437,66 @@ orc_compiler_c_assemble (OrcCompiler *compiler)
/* rules */
static void
-c_get_name_int (char *name, OrcCompiler *p, OrcInstruction *insn, int var)
+c_get_name_int (char *name, OrcCompiler * p, OrcInstruction * insn, int var)
{
if (p->vars[var].vartype == ORC_VAR_TYPE_PARAM) {
if (p->target_flags & ORC_TARGET_C_NOEXEC) {
- sprintf(name,"%s", varnames[var]);
+ sprintf (name, "%s", varnames[var]);
} else if (p->target_flags & ORC_TARGET_C_OPCODE) {
- sprintf(name,"((orc_union64 *)(ex->src_ptrs[%d]))->i",
+ sprintf (name, "((orc_union64 *)(ex->src_ptrs[%d]))->i",
var - ORC_VAR_P1 + p->program->n_src_vars);
} else {
switch (p->vars[var].param_type) {
case ORC_PARAM_TYPE_INT:
- sprintf(name,"ex->params[%d]", var);
+ sprintf (name, "ex->params[%d]", var);
break;
case ORC_PARAM_TYPE_FLOAT:
- sprintf(name,"((orc_union32 *)(ex->params+%d))->i", var);
+ sprintf (name, "((orc_union32 *)(ex->params+%d))->i", var);
break;
case ORC_PARAM_TYPE_INT64:
/* FIXME */
- sprintf(name,"((orc_union32 *)(ex->params+%d))->i", var);
+ sprintf (name, "((orc_union32 *)(ex->params+%d))->i", var);
break;
case ORC_PARAM_TYPE_DOUBLE:
/* FIXME */
- sprintf(name,"((orc_union32 *)(ex->params+%d))->i", var);
+ sprintf (name, "((orc_union32 *)(ex->params+%d))->i", var);
break;
default:
- ORC_ASSERT(0);
+ ORC_ASSERT (0);
}
}
} else if (p->vars[var].vartype == ORC_VAR_TYPE_CONST) {
if (p->vars[var].value.i == 0x80000000) {
- sprintf(name,"0x80000000");
+ sprintf (name, "0x80000000");
} else {
- if (p->vars[var].value.i == (int)p->vars[var].value.i) {
- sprintf(name, "%d", (int)p->vars[var].value.i);
+ if (p->vars[var].value.i == (int) p->vars[var].value.i) {
+ sprintf (name, "%d", (int) p->vars[var].value.i);
} else {
- ORC_ASSERT(0);
+ ORC_ASSERT (0);
}
}
} else {
if (insn && (insn->flags & ORC_INSTRUCTION_FLAG_X2)) {
- sprintf(name, "var%d.x2[%d]", var, p->unroll_index);
+ sprintf (name, "var%d.x2[%d]", var, p->unroll_index);
} else if (insn && (insn->flags & ORC_INSTRUCTION_FLAG_X4)) {
- sprintf(name, "var%d.x4[%d]", var, p->unroll_index);
+ sprintf (name, "var%d.x4[%d]", var, p->unroll_index);
} else {
if (p->vars[var].size >= 2) {
- sprintf(name, "var%d.i", var);
+ sprintf (name, "var%d.i", var);
} else {
- sprintf(name, "var%d", var);
+ sprintf (name, "var%d", var);
}
}
}
}
static void
-c_get_name_float (char *name, OrcCompiler *p, OrcInstruction *insn, int var)
+c_get_name_float (char *name, OrcCompiler * p, OrcInstruction * insn, int var)
{
if (insn && (insn->flags & ORC_INSTRUCTION_FLAG_X2)) {
- sprintf(name, "var%d.x2f[%d]", var, p->unroll_index);
+ sprintf (name, "var%d.x2f[%d]", var, p->unroll_index);
} else if (insn && (insn->flags & ORC_INSTRUCTION_FLAG_X4)) {
- sprintf(name, "var%d.x4f[%d]", var, p->unroll_index);
+ sprintf (name, "var%d.x4f[%d]", var, p->unroll_index);
} else {
switch (p->vars[var].vartype) {
case ORC_VAR_TYPE_CONST:
@@ -507,14 +504,14 @@ c_get_name_float (char *name, OrcCompiler *p, OrcInstruction *insn, int var)
case ORC_VAR_TYPE_ACCUMULATOR:
case ORC_VAR_TYPE_SRC:
case ORC_VAR_TYPE_DEST:
- sprintf(name, "var%d.f", var);
+ sprintf (name, "var%d.f", var);
break;
case ORC_VAR_TYPE_PARAM:
- sprintf(name, "var%d", var);
+ sprintf (name, "var%d", var);
break;
default:
- ORC_COMPILER_ERROR(p, "bad vartype");
- sprintf(name, "ERROR");
+ ORC_COMPILER_ERROR (p, "bad vartype");
+ sprintf (name, "ERROR");
break;
}
}
@@ -767,53 +764,54 @@ c_rule_ ## name (OrcCompiler *p, void *user, OrcInstruction *insn) \
static void
-c_rule_loadpX (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_loadpX (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40];
- int size = ORC_PTR_TO_INT(user);
+ int size = ORC_PTR_TO_INT (user);
if ((p->target_flags & ORC_TARGET_C_NOEXEC) &&
(p->vars[insn->src_args[0]].param_type == ORC_PARAM_TYPE_FLOAT ||
- p->vars[insn->src_args[0]].param_type == ORC_PARAM_TYPE_DOUBLE))
+ p->vars[insn->src_args[0]].param_type == ORC_PARAM_TYPE_DOUBLE))
c_get_name_float (dest, p, insn, insn->dest_args[0]);
else
c_get_name_int (dest, p, insn, insn->dest_args[0]);
if (p->vars[insn->src_args[0]].vartype == ORC_VAR_TYPE_PARAM) {
if (p->target_flags & ORC_TARGET_C_NOEXEC) {
- ORC_ASM_CODE(p," %s = %s;\n", dest, varnames[insn->src_args[0]]);
+ ORC_ASM_CODE (p, " %s = %s;\n", dest, varnames[insn->src_args[0]]);
} else if (p->target_flags & ORC_TARGET_C_OPCODE) {
- ORC_ASM_CODE(p," %s = ((orc_union64 *)(ex->src_ptrs[%d]))->i;\n",
+ ORC_ASM_CODE (p, " %s = ((orc_union64 *)(ex->src_ptrs[%d]))->i;\n",
dest, insn->src_args[0] - ORC_VAR_P1 + p->program->n_src_vars);
} else {
if (size == 8) {
- ORC_ASM_CODE(p," %s = (ex->params[%d] & 0xffffffff) | ((orc_uint64)(ex->params[%d + (ORC_VAR_T1 - ORC_VAR_P1)]) << 32);\n",
+ ORC_ASM_CODE (p,
+ " %s = (ex->params[%d] & 0xffffffff) | ((orc_uint64)(ex->params[%d + (ORC_VAR_T1 - ORC_VAR_P1)]) << 32);\n",
dest, insn->src_args[0], insn->src_args[0]);
} else {
- ORC_ASM_CODE(p," %s = ex->params[%d];\n", dest,
- insn->src_args[0]);
+ ORC_ASM_CODE (p, " %s = ex->params[%d];\n", dest, insn->src_args[0]);
}
}
} else if (p->vars[insn->src_args[0]].vartype == ORC_VAR_TYPE_CONST) {
if (p->vars[insn->src_args[0]].size <= 4) {
- ORC_ASM_CODE(p," %s = (int)0x%08x; /* %d or %gf */\n", dest,
- (unsigned int)p->vars[insn->src_args[0]].value.i,
- (int)p->vars[insn->src_args[0]].value.i,
+ ORC_ASM_CODE (p, " %s = (int)0x%08x; /* %d or %gf */\n", dest,
+ (unsigned int) p->vars[insn->src_args[0]].value.i,
+ (int) p->vars[insn->src_args[0]].value.i,
p->vars[insn->src_args[0]].value.f);
} else {
- ORC_ASM_CODE(p," %s = ORC_UINT64_C(0x%08x%08x); /* %gf */\n", dest,
- (orc_uint32)(((orc_uint64)p->vars[insn->src_args[0]].value.i)>>32),
- ((orc_uint32)p->vars[insn->src_args[0]].value.i),
+ ORC_ASM_CODE (p, " %s = ORC_UINT64_C(0x%08x%08x); /* %gf */\n", dest,
+ (orc_uint32) (((orc_uint64) p->vars[insn->src_args[0]].
+ value.i) >> 32),
+ ((orc_uint32) p->vars[insn->src_args[0]].value.i),
p->vars[insn->src_args[0]].value.f);
}
} else {
- ORC_COMPILER_ERROR(p, "expected param or constant");
+ ORC_COMPILER_ERROR (p, "expected param or constant");
}
}
#if 0
static void
-c_rule_loadpX (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_loadpX (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40];
char src[40];
@@ -824,25 +822,25 @@ c_rule_loadpX (OrcCompiler *p, void *user, OrcInstruction *insn)
var = &p->vars[insn->src_args[0]];
- ORC_ASM_CODE(p," %s = %s;\n", dest, src);
+ ORC_ASM_CODE (p, " %s = %s;\n", dest, src);
}
#endif
static void
-c_rule_loadX (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_loadX (OrcCompiler * p, void *user, OrcInstruction * insn)
{
if (p->target_flags & ORC_TARGET_C_OPCODE &&
!(insn->flags & ORC_INSN_FLAG_ADDED)) {
- ORC_ASM_CODE(p," var%d = ptr%d[offset + i];\n", insn->dest_args[0],
+ ORC_ASM_CODE (p, " var%d = ptr%d[offset + i];\n", insn->dest_args[0],
insn->src_args[0]);
} else {
- ORC_ASM_CODE(p," var%d = ptr%d[i];\n", insn->dest_args[0],
+ ORC_ASM_CODE (p, " var%d = ptr%d[i];\n", insn->dest_args[0],
insn->src_args[0]);
}
}
static void
-c_rule_loadoffX (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_loadoffX (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char src[40];
@@ -850,44 +848,46 @@ c_rule_loadoffX (OrcCompiler *p, void *user, OrcInstruction *insn)
if (p->target_flags & ORC_TARGET_C_OPCODE &&
!(insn->flags & ORC_INSN_FLAG_ADDED)) {
- ORC_ASM_CODE(p," var%d = ptr%d[offset + i + %s];\n", insn->dest_args[0],
- insn->src_args[0], src);
+ ORC_ASM_CODE (p, " var%d = ptr%d[offset + i + %s];\n",
+ insn->dest_args[0], insn->src_args[0], src);
} else {
- ORC_ASM_CODE(p," var%d = ptr%d[i + %s];\n", insn->dest_args[0],
+ ORC_ASM_CODE (p, " var%d = ptr%d[i + %s];\n", insn->dest_args[0],
insn->src_args[0], src);
}
}
static void
-c_rule_loadupdb (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_loadupdb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
if (p->target_flags & ORC_TARGET_C_OPCODE &&
!(insn->flags & ORC_INSN_FLAG_ADDED)) {
- ORC_ASM_CODE(p," var%d = ptr%d[(offset + i)>>1];\n", insn->dest_args[0],
- insn->src_args[0]);
+ ORC_ASM_CODE (p, " var%d = ptr%d[(offset + i)>>1];\n",
+ insn->dest_args[0], insn->src_args[0]);
} else {
- ORC_ASM_CODE(p," var%d = ptr%d[i>>1];\n", insn->dest_args[0],
+ ORC_ASM_CODE (p, " var%d = ptr%d[i>>1];\n", insn->dest_args[0],
insn->src_args[0]);
}
}
static void
-c_rule_loadupib (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_loadupib (OrcCompiler * p, void *user, OrcInstruction * insn)
{
if (p->target_flags & ORC_TARGET_C_OPCODE &&
!(insn->flags & ORC_INSN_FLAG_ADDED)) {
- ORC_ASM_CODE(p," var%d = ((offset + i)&1) ? ((orc_uint8)ptr%d[(offset + i)>>1] + (orc_uint8)ptr%d[((offset + i)>>1)+1] + 1)>>1 : ptr%d[(offset + i)>>1];\n",
+ ORC_ASM_CODE (p,
+ " var%d = ((offset + i)&1) ? ((orc_uint8)ptr%d[(offset + i)>>1] + (orc_uint8)ptr%d[((offset + i)>>1)+1] + 1)>>1 : ptr%d[(offset + i)>>1];\n",
insn->dest_args[0], insn->src_args[0], insn->src_args[0],
insn->src_args[0]);
} else {
- ORC_ASM_CODE(p," var%d = (i&1) ? ((orc_uint8)ptr%d[i>>1] + (orc_uint8)ptr%d[(i>>1)+1] + 1)>>1 : ptr%d[i>>1];\n",
+ ORC_ASM_CODE (p,
+ " var%d = (i&1) ? ((orc_uint8)ptr%d[i>>1] + (orc_uint8)ptr%d[(i>>1)+1] + 1)>>1 : ptr%d[i>>1];\n",
insn->dest_args[0], insn->src_args[0], insn->src_args[0],
insn->src_args[0]);
}
}
static void
-c_rule_ldresnearX (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_ldresnearX (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char src1[40];
char src2[40];
@@ -897,16 +897,16 @@ c_rule_ldresnearX (OrcCompiler *p, void *user, OrcInstruction *insn)
if (p->target_flags & ORC_TARGET_C_OPCODE &&
!(insn->flags & ORC_INSN_FLAG_ADDED)) {
- ORC_ASM_CODE(p," var%d = ptr%d[(%s + (offset + i)*%s)>>16];\n",
+ ORC_ASM_CODE (p, " var%d = ptr%d[(%s + (offset + i)*%s)>>16];\n",
insn->dest_args[0], insn->src_args[0], src1, src2);
} else {
- ORC_ASM_CODE(p," var%d = ptr%d[(%s + i*%s)>>16];\n",
+ ORC_ASM_CODE (p, " var%d = ptr%d[(%s + i*%s)>>16];\n",
insn->dest_args[0], insn->src_args[0], src1, src2);
}
}
static void
-c_rule_ldreslinb (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_ldreslinb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char src1[40];
char src2[40];
@@ -914,20 +914,21 @@ c_rule_ldreslinb (OrcCompiler *p, void *user, OrcInstruction *insn)
c_get_name_int (src1, p, insn, insn->src_args[1]);
c_get_name_int (src2, p, insn, insn->src_args[2]);
- ORC_ASM_CODE(p," {\n");
+ ORC_ASM_CODE (p, " {\n");
if (p->target_flags & ORC_TARGET_C_OPCODE &&
!(insn->flags & ORC_INSN_FLAG_ADDED)) {
- ORC_ASM_CODE(p," int tmp = %s + (offset + i) * %s;\n", src1, src2);
+ ORC_ASM_CODE (p, " int tmp = %s + (offset + i) * %s;\n", src1, src2);
} else {
- ORC_ASM_CODE(p," int tmp = %s + i * %s;\n", src1, src2);
+ ORC_ASM_CODE (p, " int tmp = %s + i * %s;\n", src1, src2);
}
- ORC_ASM_CODE(p," var%d = ((orc_uint8)ptr%d[tmp>>16] * (256-((tmp>>8)&0xff)) + (orc_uint8)ptr%d[(tmp>>16)+1] * ((tmp>>8)&0xff))>>8;\n",
+ ORC_ASM_CODE (p,
+ " var%d = ((orc_uint8)ptr%d[tmp>>16] * (256-((tmp>>8)&0xff)) + (orc_uint8)ptr%d[(tmp>>16)+1] * ((tmp>>8)&0xff))>>8;\n",
insn->dest_args[0], insn->src_args[0], insn->src_args[0]);
- ORC_ASM_CODE(p," }\n");
+ ORC_ASM_CODE (p, " }\n");
}
static void
-c_rule_ldreslinl (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_ldreslinl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int i;
char src1[40];
@@ -937,59 +938,61 @@ c_rule_ldreslinl (OrcCompiler *p, void *user, OrcInstruction *insn)
c_get_name_int (src2, p, insn, insn->src_args[2]);
- ORC_ASM_CODE(p," {\n");
+ ORC_ASM_CODE (p, " {\n");
if (p->target_flags & ORC_TARGET_C_OPCODE &&
!(insn->flags & ORC_INSN_FLAG_ADDED)) {
- ORC_ASM_CODE(p," int tmp = %s + (offset + i) * %s;\n", src1, src2);
+ ORC_ASM_CODE (p, " int tmp = %s + (offset + i) * %s;\n", src1, src2);
} else {
- ORC_ASM_CODE(p," int tmp = %s + i * %s;\n", src1, src2);
+ ORC_ASM_CODE (p, " int tmp = %s + i * %s;\n", src1, src2);
}
- ORC_ASM_CODE(p," orc_union32 a = ptr%d[tmp>>16];\n", insn->src_args[0]);
- ORC_ASM_CODE(p," orc_union32 b = ptr%d[(tmp>>16)+1];\n", insn->src_args[0]);
- for (i=0;i<4;i++){
- ORC_ASM_CODE(p," var%d.x4[%d] = ((orc_uint8)a.x4[%d] * (256-((tmp>>8)&0xff)) + (orc_uint8)b.x4[%d] * ((tmp>>8)&0xff))>>8;\n",
+ ORC_ASM_CODE (p, " orc_union32 a = ptr%d[tmp>>16];\n", insn->src_args[0]);
+ ORC_ASM_CODE (p, " orc_union32 b = ptr%d[(tmp>>16)+1];\n",
+ insn->src_args[0]);
+ for (i = 0; i < 4; i++) {
+ ORC_ASM_CODE (p,
+ " var%d.x4[%d] = ((orc_uint8)a.x4[%d] * (256-((tmp>>8)&0xff)) + (orc_uint8)b.x4[%d] * ((tmp>>8)&0xff))>>8;\n",
insn->dest_args[0], i, i, i);
}
- ORC_ASM_CODE(p," }\n");
+ ORC_ASM_CODE (p, " }\n");
}
static void
-c_rule_storeX (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_storeX (OrcCompiler * p, void *user, OrcInstruction * insn)
{
if (p->target_flags & ORC_TARGET_C_OPCODE &&
!(insn->flags & ORC_INSN_FLAG_ADDED)) {
- ORC_ASM_CODE(p," ptr%d[offset + i] = var%d;\n", insn->dest_args[0],
+ ORC_ASM_CODE (p, " ptr%d[offset + i] = var%d;\n", insn->dest_args[0],
insn->src_args[0]);
} else {
- ORC_ASM_CODE(p," ptr%d[i] = var%d;\n", insn->dest_args[0],
+ ORC_ASM_CODE (p, " ptr%d[i] = var%d;\n", insn->dest_args[0],
insn->src_args[0]);
}
}
static void
-c_rule_accw (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_accw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src1[40];
c_get_name_int (dest, p, insn, insn->dest_args[0]);
c_get_name_int (src1, p, insn, insn->src_args[0]);
- ORC_ASM_CODE(p," %s = %s + %s;\n", dest, dest, src1);
+ ORC_ASM_CODE (p, " %s = %s + %s;\n", dest, dest, src1);
}
static void
-c_rule_accl (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_accl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src1[40];
c_get_name_int (dest, p, insn, insn->dest_args[0]);
c_get_name_int (src1, p, insn, insn->src_args[0]);
- ORC_ASM_CODE(p," %s = %s + %s;\n", dest, dest, src1);
+ ORC_ASM_CODE (p, " %s = %s + %s;\n", dest, dest, src1);
}
static void
-c_rule_accsadubl (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_accsadubl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src1[40], src2[40];
@@ -997,13 +1000,13 @@ c_rule_accsadubl (OrcCompiler *p, void *user, OrcInstruction *insn)
c_get_name_int (src1, p, insn, insn->src_args[0]);
c_get_name_int (src2, p, insn, insn->src_args[1]);
- ORC_ASM_CODE(p,
+ ORC_ASM_CODE (p,
" %s = %s + ORC_ABS((orc_int32)(orc_uint8)%s - (orc_int32)(orc_uint8)%s);\n",
dest, dest, src1, src2);
}
static void
-c_rule_splitql (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_splitql (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest1[40], dest2[40], src[40];
@@ -1011,16 +1014,16 @@ c_rule_splitql (OrcCompiler *p, void *user, OrcInstruction *insn)
c_get_name_int (dest2, p, insn, insn->dest_args[1]);
c_get_name_int (src, p, insn, insn->src_args[0]);
- ORC_ASM_CODE(p, " {\n");
- ORC_ASM_CODE(p," orc_union64 _src;\n");
- ORC_ASM_CODE(p," _src.i = %s;\n", src);
- ORC_ASM_CODE(p," %s = _src.x2[1];\n", dest1);
- ORC_ASM_CODE(p," %s = _src.x2[0];\n", dest2);
- ORC_ASM_CODE(p, " }\n");
+ ORC_ASM_CODE (p, " {\n");
+ ORC_ASM_CODE (p, " orc_union64 _src;\n");
+ ORC_ASM_CODE (p, " _src.i = %s;\n", src);
+ ORC_ASM_CODE (p, " %s = _src.x2[1];\n", dest1);
+ ORC_ASM_CODE (p, " %s = _src.x2[0];\n", dest2);
+ ORC_ASM_CODE (p, " }\n");
}
static void
-c_rule_splitlw (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_splitlw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest1[40], dest2[40], src[40];
@@ -1028,16 +1031,16 @@ c_rule_splitlw (OrcCompiler *p, void *user, OrcInstruction *insn)
c_get_name_int (dest2, p, insn, insn->dest_args[1]);
c_get_name_int (src, p, insn, insn->src_args[0]);
- ORC_ASM_CODE(p, " {\n");
- ORC_ASM_CODE(p," orc_union32 _src;\n");
- ORC_ASM_CODE(p," _src.i = %s;\n", src);
- ORC_ASM_CODE(p," %s = _src.x2[1];\n", dest1);
- ORC_ASM_CODE(p," %s = _src.x2[0];\n", dest2);
- ORC_ASM_CODE(p, " }\n");
+ ORC_ASM_CODE (p, " {\n");
+ ORC_ASM_CODE (p, " orc_union32 _src;\n");
+ ORC_ASM_CODE (p, " _src.i = %s;\n", src);
+ ORC_ASM_CODE (p, " %s = _src.x2[1];\n", dest1);
+ ORC_ASM_CODE (p, " %s = _src.x2[0];\n", dest2);
+ ORC_ASM_CODE (p, " }\n");
}
static void
-c_rule_splitwb (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_splitwb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest1[40], dest2[40], src[40];
@@ -1045,159 +1048,158 @@ c_rule_splitwb (OrcCompiler *p, void *user, OrcInstruction *insn)
c_get_name_int (dest2, p, insn, insn->dest_args[1]);
c_get_name_int (src, p, insn, insn->src_args[0]);
- ORC_ASM_CODE(p, " {\n");
- ORC_ASM_CODE(p," orc_union16 _src;\n");
- ORC_ASM_CODE(p," _src.i = %s;\n", src);
- ORC_ASM_CODE(p," %s = _src.x2[1];\n", dest1);
- ORC_ASM_CODE(p," %s = _src.x2[0];\n", dest2);
- ORC_ASM_CODE(p, " }\n");
+ ORC_ASM_CODE (p, " {\n");
+ ORC_ASM_CODE (p, " orc_union16 _src;\n");
+ ORC_ASM_CODE (p, " _src.i = %s;\n", src);
+ ORC_ASM_CODE (p, " %s = _src.x2[1];\n", dest1);
+ ORC_ASM_CODE (p, " %s = _src.x2[0];\n", dest2);
+ ORC_ASM_CODE (p, " }\n");
}
static void
-c_rule_select0ql (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_select0ql (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src[40];
c_get_name_int (dest, p, insn, insn->dest_args[0]);
c_get_name_int (src, p, insn, insn->src_args[0]);
- ORC_ASM_CODE(p, " {\n");
- ORC_ASM_CODE(p," orc_union64 _src;\n");
- ORC_ASM_CODE(p," _src.i = %s;\n", src);
- ORC_ASM_CODE(p," %s = _src.x2[0];\n", dest);
- ORC_ASM_CODE(p, " }\n");
+ ORC_ASM_CODE (p, " {\n");
+ ORC_ASM_CODE (p, " orc_union64 _src;\n");
+ ORC_ASM_CODE (p, " _src.i = %s;\n", src);
+ ORC_ASM_CODE (p, " %s = _src.x2[0];\n", dest);
+ ORC_ASM_CODE (p, " }\n");
}
static void
-c_rule_select1ql (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_select1ql (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src[40];
c_get_name_int (dest, p, insn, insn->dest_args[0]);
c_get_name_int (src, p, insn, insn->src_args[0]);
- ORC_ASM_CODE(p, " {\n");
- ORC_ASM_CODE(p," orc_union64 _src;\n");
- ORC_ASM_CODE(p," _src.i = %s;\n", src);
- ORC_ASM_CODE(p," %s = _src.x2[1];\n", dest);
- ORC_ASM_CODE(p, " }\n");
+ ORC_ASM_CODE (p, " {\n");
+ ORC_ASM_CODE (p, " orc_union64 _src;\n");
+ ORC_ASM_CODE (p, " _src.i = %s;\n", src);
+ ORC_ASM_CODE (p, " %s = _src.x2[1];\n", dest);
+ ORC_ASM_CODE (p, " }\n");
}
static void
-c_rule_select0lw (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_select0lw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src[40];
c_get_name_int (dest, p, insn, insn->dest_args[0]);
c_get_name_int (src, p, insn, insn->src_args[0]);
- ORC_ASM_CODE(p, " {\n");
- ORC_ASM_CODE(p," orc_union32 _src;\n");
- ORC_ASM_CODE(p," _src.i = %s;\n", src);
- ORC_ASM_CODE(p," %s = _src.x2[0];\n", dest);
- ORC_ASM_CODE(p, " }\n");
+ ORC_ASM_CODE (p, " {\n");
+ ORC_ASM_CODE (p, " orc_union32 _src;\n");
+ ORC_ASM_CODE (p, " _src.i = %s;\n", src);
+ ORC_ASM_CODE (p, " %s = _src.x2[0];\n", dest);
+ ORC_ASM_CODE (p, " }\n");
}
static void
-c_rule_select1lw (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_select1lw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src[40];
c_get_name_int (dest, p, insn, insn->dest_args[0]);
c_get_name_int (src, p, insn, insn->src_args[0]);
- ORC_ASM_CODE(p, " {\n");
- ORC_ASM_CODE(p," orc_union32 _src;\n");
- ORC_ASM_CODE(p," _src.i = %s;\n", src);
- ORC_ASM_CODE(p," %s = _src.x2[1];\n", dest);
- ORC_ASM_CODE(p, " }\n");
+ ORC_ASM_CODE (p, " {\n");
+ ORC_ASM_CODE (p, " orc_union32 _src;\n");
+ ORC_ASM_CODE (p, " _src.i = %s;\n", src);
+ ORC_ASM_CODE (p, " %s = _src.x2[1];\n", dest);
+ ORC_ASM_CODE (p, " }\n");
}
static void
-c_rule_select0wb (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_select0wb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src[40];
c_get_name_int (dest, p, insn, insn->dest_args[0]);
c_get_name_int (src, p, insn, insn->src_args[0]);
- ORC_ASM_CODE(p, " {\n");
- ORC_ASM_CODE(p," orc_union16 _src;\n");
- ORC_ASM_CODE(p," _src.i = %s;\n", src);
- ORC_ASM_CODE(p," %s = _src.x2[0];\n", dest);
- ORC_ASM_CODE(p, " }\n");
+ ORC_ASM_CODE (p, " {\n");
+ ORC_ASM_CODE (p, " orc_union16 _src;\n");
+ ORC_ASM_CODE (p, " _src.i = %s;\n", src);
+ ORC_ASM_CODE (p, " %s = _src.x2[0];\n", dest);
+ ORC_ASM_CODE (p, " }\n");
}
static void
-c_rule_select1wb (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_select1wb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src[40];
c_get_name_int (dest, p, insn, insn->dest_args[0]);
c_get_name_int (src, p, insn, insn->src_args[0]);
- ORC_ASM_CODE(p, " {\n");
- ORC_ASM_CODE(p," orc_union16 _src;\n");
- ORC_ASM_CODE(p," _src.i = %s;\n", src);
- ORC_ASM_CODE(p," %s = _src.x2[1];\n", dest);
- ORC_ASM_CODE(p, " }\n");
+ ORC_ASM_CODE (p, " {\n");
+ ORC_ASM_CODE (p, " orc_union16 _src;\n");
+ ORC_ASM_CODE (p, " _src.i = %s;\n", src);
+ ORC_ASM_CODE (p, " %s = _src.x2[1];\n", dest);
+ ORC_ASM_CODE (p, " }\n");
}
static void
-c_rule_splatbw (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_splatbw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src[40];
c_get_name_int (dest, p, insn, insn->dest_args[0]);
c_get_name_int (src, p, insn, insn->src_args[0]);
- ORC_ASM_CODE(p," %s = ((%s&0xff) << 8) | (%s&0xff);\n", dest, src, src);
+ ORC_ASM_CODE (p, " %s = ((%s&0xff) << 8) | (%s&0xff);\n", dest, src, src);
}
static void
-c_rule_splatbl (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_splatbl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src[40];
c_get_name_int (dest, p, insn, insn->dest_args[0]);
c_get_name_int (src, p, insn, insn->src_args[0]);
- ORC_ASM_CODE(p,
+ ORC_ASM_CODE (p,
" %s = ((%s&0xff) << 24) | ((%s&0xff)<<16) | ((%s&0xff) << 8) | (%s&0xff);\n",
dest, src, src, src, src);
}
static void
-c_rule_splatw3q (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_splatw3q (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src[40];
c_get_name_int (dest, p, insn, insn->dest_args[0]);
c_get_name_int (src, p, insn, insn->src_args[0]);
- ORC_ASM_CODE(p,
+ ORC_ASM_CODE (p,
" %s = ((((orc_uint64)%s)>>48) << 48) | "
"((((orc_uint64)%s)>>48)<<32) | "
"((((orc_uint64)%s)>>48) << 16) | "
- "((((orc_uint64)%s)>>48));\n",
- dest, src, src, src, src);
+ "((((orc_uint64)%s)>>48));\n", dest, src, src, src, src);
}
static void
-c_rule_div255w (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_div255w (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src[40];
c_get_name_int (dest, p, insn, insn->dest_args[0]);
c_get_name_int (src, p, insn, insn->src_args[0]);
- ORC_ASM_CODE(p,
+ ORC_ASM_CODE (p,
" %s = ((orc_uint16)(((orc_uint16)(%s+128)) + (((orc_uint16)(%s+128))>>8)))>>8;\n",
dest, src, src);
}
static void
-c_rule_divluw (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_divluw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src1[40], src2[40];
@@ -1205,67 +1207,67 @@ c_rule_divluw (OrcCompiler *p, void *user, OrcInstruction *insn)
c_get_name_int (src1, p, insn, insn->src_args[0]);
c_get_name_int (src2, p, insn, insn->src_args[1]);
- ORC_ASM_CODE(p,
+ ORC_ASM_CODE (p,
" %s = ((%s&0xff) == 0) ? 255 : ORC_CLAMP_UB(((orc_uint16)%s)/((orc_uint16)%s&0xff));\n",
dest, src2, src1, src2);
}
static void
-c_rule_convlf (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_convlf (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src1[40];
c_get_name_float (dest, p, insn, insn->dest_args[0]);
c_get_name_int (src1, p, insn, insn->src_args[0]);
- ORC_ASM_CODE(p," %s = %s;\n", dest, src1);
+ ORC_ASM_CODE (p, " %s = %s;\n", dest, src1);
}
static void
-c_rule_convld (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_convld (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src1[40];
c_get_name_float (dest, p, insn, insn->dest_args[0]);
c_get_name_int (src1, p, insn, insn->src_args[0]);
- ORC_ASM_CODE(p," %s = %s;\n", dest, src1);
+ ORC_ASM_CODE (p, " %s = %s;\n", dest, src1);
}
static void
-c_rule_convfd (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_convfd (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src1[40];
c_get_name_float (dest, p, insn, insn->dest_args[0]);
c_get_name_int (src1, p, insn, insn->src_args[0]);
- ORC_ASM_CODE(p, " {\n");
- ORC_ASM_CODE(p," orc_union32 _src1;\n");
- ORC_ASM_CODE(p," _src1.i = ORC_DENORMAL(%s);\n", src1);
- ORC_ASM_CODE(p," %s = _src1.f;\n", dest);
- ORC_ASM_CODE(p, " }\n");
+ ORC_ASM_CODE (p, " {\n");
+ ORC_ASM_CODE (p, " orc_union32 _src1;\n");
+ ORC_ASM_CODE (p, " _src1.i = ORC_DENORMAL(%s);\n", src1);
+ ORC_ASM_CODE (p, " %s = _src1.f;\n", dest);
+ ORC_ASM_CODE (p, " }\n");
}
static void
-c_rule_convdf (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_convdf (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src1[40];
c_get_name_int (dest, p, insn, insn->dest_args[0]);
c_get_name_int (src1, p, insn, insn->src_args[0]);
- ORC_ASM_CODE(p, " {\n");
- ORC_ASM_CODE(p," orc_union64 _src1;\n");
- ORC_ASM_CODE(p," orc_union32 _dest;\n");
- ORC_ASM_CODE(p," _src1.i = ORC_DENORMAL_DOUBLE(%s);\n", src1);
- ORC_ASM_CODE(p," _dest.f = _src1.f;\n");
- ORC_ASM_CODE(p," %s = ORC_DENORMAL(_dest.i);\n", dest);
- ORC_ASM_CODE(p, " }\n");
+ ORC_ASM_CODE (p, " {\n");
+ ORC_ASM_CODE (p, " orc_union64 _src1;\n");
+ ORC_ASM_CODE (p, " orc_union32 _dest;\n");
+ ORC_ASM_CODE (p, " _src1.i = ORC_DENORMAL_DOUBLE(%s);\n", src1);
+ ORC_ASM_CODE (p, " _dest.f = _src1.f;\n");
+ ORC_ASM_CODE (p, " %s = ORC_DENORMAL(_dest.i);\n", dest);
+ ORC_ASM_CODE (p, " }\n");
}
static void
-c_rule_convfl (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_convfl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src[40], src_i[40];
@@ -1273,16 +1275,18 @@ c_rule_convfl (OrcCompiler *p, void *user, OrcInstruction *insn)
c_get_name_float (src, p, insn, insn->src_args[0]);
c_get_name_int (src_i, p, insn, insn->src_args[0]);
- ORC_ASM_CODE(p, " {\n");
- ORC_ASM_CODE(p," int tmp;\n");
- ORC_ASM_CODE(p," tmp = (int)%s;\n", src);
- ORC_ASM_CODE(p," if (tmp == 0x80000000 && !(%s&0x80000000)) tmp = 0x7fffffff;\n", src_i);
- ORC_ASM_CODE(p," %s = tmp;\n", dest);
- ORC_ASM_CODE(p, " }\n");
+ ORC_ASM_CODE (p, " {\n");
+ ORC_ASM_CODE (p, " int tmp;\n");
+ ORC_ASM_CODE (p, " tmp = (int)%s;\n", src);
+ ORC_ASM_CODE (p,
+ " if (tmp == 0x80000000 && !(%s&0x80000000)) tmp = 0x7fffffff;\n",
+ src_i);
+ ORC_ASM_CODE (p, " %s = tmp;\n", dest);
+ ORC_ASM_CODE (p, " }\n");
}
static void
-c_rule_convdl (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_convdl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src[40], src_i[40];
@@ -1290,16 +1294,18 @@ c_rule_convdl (OrcCompiler *p, void *user, OrcInstruction *insn)
c_get_name_float (src, p, insn, insn->src_args[0]);
c_get_name_int (src_i, p, insn, insn->src_args[0]);
- ORC_ASM_CODE(p, " {\n");
- ORC_ASM_CODE(p," int tmp;\n");
- ORC_ASM_CODE(p," tmp = %s;\n", src);
- ORC_ASM_CODE(p," if (tmp == 0x80000000 && !(%s & ORC_UINT64_C(0x8000000000000000))) tmp = 0x7fffffff;\n", src_i);
- ORC_ASM_CODE(p," %s = tmp;\n", dest);
- ORC_ASM_CODE(p, " }\n");
+ ORC_ASM_CODE (p, " {\n");
+ ORC_ASM_CODE (p, " int tmp;\n");
+ ORC_ASM_CODE (p, " tmp = %s;\n", src);
+ ORC_ASM_CODE (p,
+ " if (tmp == 0x80000000 && !(%s & ORC_UINT64_C(0x8000000000000000))) tmp = 0x7fffffff;\n",
+ src_i);
+ ORC_ASM_CODE (p, " %s = tmp;\n", dest);
+ ORC_ASM_CODE (p, " }\n");
}
static void
-c_rule_minf (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_minf (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src1[40], src2[40];
@@ -1307,19 +1313,20 @@ c_rule_minf (OrcCompiler *p, void *user, OrcInstruction *insn)
c_get_name_int (src1, p, insn, insn->src_args[0]);
c_get_name_int (src2, p, insn, insn->src_args[1]);
- ORC_ASM_CODE(p," {\n");
- ORC_ASM_CODE(p," orc_union32 _src1;\n");
- ORC_ASM_CODE(p," orc_union32 _src2;\n");
- ORC_ASM_CODE(p," _src1.i = ORC_DENORMAL(%s);\n", src1);
- ORC_ASM_CODE(p," _src2.i = ORC_DENORMAL(%s);\n", src2);
- ORC_ASM_CODE(p," if (ORC_ISNAN(_src1.i)) %s = _src1.i;\n", dest);
- ORC_ASM_CODE(p," else if (ORC_ISNAN(_src2.i)) %s = _src2.i;\n", dest);
- ORC_ASM_CODE(p," else %s = (_src1.f < _src2.f) ? _src1.i : _src2.i;\n", dest);
- ORC_ASM_CODE(p," }\n");
+ ORC_ASM_CODE (p, " {\n");
+ ORC_ASM_CODE (p, " orc_union32 _src1;\n");
+ ORC_ASM_CODE (p, " orc_union32 _src2;\n");
+ ORC_ASM_CODE (p, " _src1.i = ORC_DENORMAL(%s);\n", src1);
+ ORC_ASM_CODE (p, " _src2.i = ORC_DENORMAL(%s);\n", src2);
+ ORC_ASM_CODE (p, " if (ORC_ISNAN(_src1.i)) %s = _src1.i;\n", dest);
+ ORC_ASM_CODE (p, " else if (ORC_ISNAN(_src2.i)) %s = _src2.i;\n", dest);
+ ORC_ASM_CODE (p, " else %s = (_src1.f < _src2.f) ? _src1.i : _src2.i;\n",
+ dest);
+ ORC_ASM_CODE (p, " }\n");
}
static void
-c_rule_maxf (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_maxf (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src1[40], src2[40];
@@ -1327,19 +1334,20 @@ c_rule_maxf (OrcCompiler *p, void *user, OrcInstruction *insn)
c_get_name_int (src1, p, insn, insn->src_args[0]);
c_get_name_int (src2, p, insn, insn->src_args[1]);
- ORC_ASM_CODE(p," {\n");
- ORC_ASM_CODE(p," orc_union32 _src1;\n");
- ORC_ASM_CODE(p," orc_union32 _src2;\n");
- ORC_ASM_CODE(p," _src1.i = ORC_DENORMAL(%s);\n", src1);
- ORC_ASM_CODE(p," _src2.i = ORC_DENORMAL(%s);\n", src2);
- ORC_ASM_CODE(p," if (ORC_ISNAN(_src1.i)) %s = _src1.i;\n", dest);
- ORC_ASM_CODE(p," else if (ORC_ISNAN(_src2.i)) %s = _src2.i;\n", dest);
- ORC_ASM_CODE(p," else %s = (_src1.f > _src2.f) ? _src1.i : _src2.i;\n", dest);
- ORC_ASM_CODE(p," }\n");
+ ORC_ASM_CODE (p, " {\n");
+ ORC_ASM_CODE (p, " orc_union32 _src1;\n");
+ ORC_ASM_CODE (p, " orc_union32 _src2;\n");
+ ORC_ASM_CODE (p, " _src1.i = ORC_DENORMAL(%s);\n", src1);
+ ORC_ASM_CODE (p, " _src2.i = ORC_DENORMAL(%s);\n", src2);
+ ORC_ASM_CODE (p, " if (ORC_ISNAN(_src1.i)) %s = _src1.i;\n", dest);
+ ORC_ASM_CODE (p, " else if (ORC_ISNAN(_src2.i)) %s = _src2.i;\n", dest);
+ ORC_ASM_CODE (p, " else %s = (_src1.f > _src2.f) ? _src1.i : _src2.i;\n",
+ dest);
+ ORC_ASM_CODE (p, " }\n");
}
static void
-c_rule_mind (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_mind (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src1[40], src2[40];
@@ -1347,19 +1355,22 @@ c_rule_mind (OrcCompiler *p, void *user, OrcInstruction *insn)
c_get_name_int (src1, p, insn, insn->src_args[0]);
c_get_name_int (src2, p, insn, insn->src_args[1]);
- ORC_ASM_CODE(p," {\n");
- ORC_ASM_CODE(p," orc_union64 _src1;\n");
- ORC_ASM_CODE(p," orc_union64 _src2;\n");
- ORC_ASM_CODE(p," _src1.i = ORC_DENORMAL_DOUBLE(%s);\n", src1);
- ORC_ASM_CODE(p," _src2.i = ORC_DENORMAL_DOUBLE(%s);\n", src2);
- ORC_ASM_CODE(p," if (ORC_ISNAN_DOUBLE(_src1.i)) %s = _src1.i;\n", dest);
- ORC_ASM_CODE(p," else if (ORC_ISNAN_DOUBLE(_src2.i)) %s = _src2.i;\n", dest);
- ORC_ASM_CODE(p," else %s = (_src1.f < _src2.f) ? _src1.i : _src2.i;\n", dest);
- ORC_ASM_CODE(p," }\n");
+ ORC_ASM_CODE (p, " {\n");
+ ORC_ASM_CODE (p, " orc_union64 _src1;\n");
+ ORC_ASM_CODE (p, " orc_union64 _src2;\n");
+ ORC_ASM_CODE (p, " _src1.i = ORC_DENORMAL_DOUBLE(%s);\n", src1);
+ ORC_ASM_CODE (p, " _src2.i = ORC_DENORMAL_DOUBLE(%s);\n", src2);
+ ORC_ASM_CODE (p, " if (ORC_ISNAN_DOUBLE(_src1.i)) %s = _src1.i;\n",
+ dest);
+ ORC_ASM_CODE (p, " else if (ORC_ISNAN_DOUBLE(_src2.i)) %s = _src2.i;\n",
+ dest);
+ ORC_ASM_CODE (p, " else %s = (_src1.f < _src2.f) ? _src1.i : _src2.i;\n",
+ dest);
+ ORC_ASM_CODE (p, " }\n");
}
static void
-c_rule_maxd (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_maxd (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src1[40], src2[40];
@@ -1367,43 +1378,48 @@ c_rule_maxd (OrcCompiler *p, void *user, OrcInstruction *insn)
c_get_name_int (src1, p, insn, insn->src_args[0]);
c_get_name_int (src2, p, insn, insn->src_args[1]);
- ORC_ASM_CODE(p," {\n");
- ORC_ASM_CODE(p," orc_union64 _src1;\n");
- ORC_ASM_CODE(p," orc_union64 _src2;\n");
- ORC_ASM_CODE(p," _src1.i = ORC_DENORMAL_DOUBLE(%s);\n", src1);
- ORC_ASM_CODE(p," _src2.i = ORC_DENORMAL_DOUBLE(%s);\n", src2);
- ORC_ASM_CODE(p," if (ORC_ISNAN_DOUBLE(_src1.i)) %s = _src1.i;\n", dest);
- ORC_ASM_CODE(p," else if (ORC_ISNAN_DOUBLE(_src2.i)) %s = _src2.i;\n", dest);
- ORC_ASM_CODE(p," else %s = (_src1.f > _src2.f) ? _src1.i : _src2.i;\n", dest);
- ORC_ASM_CODE(p," }\n");
+ ORC_ASM_CODE (p, " {\n");
+ ORC_ASM_CODE (p, " orc_union64 _src1;\n");
+ ORC_ASM_CODE (p, " orc_union64 _src2;\n");
+ ORC_ASM_CODE (p, " _src1.i = ORC_DENORMAL_DOUBLE(%s);\n", src1);
+ ORC_ASM_CODE (p, " _src2.i = ORC_DENORMAL_DOUBLE(%s);\n", src2);
+ ORC_ASM_CODE (p, " if (ORC_ISNAN_DOUBLE(_src1.i)) %s = _src1.i;\n",
+ dest);
+ ORC_ASM_CODE (p, " else if (ORC_ISNAN_DOUBLE(_src2.i)) %s = _src2.i;\n",
+ dest);
+ ORC_ASM_CODE (p, " else %s = (_src1.f > _src2.f) ? _src1.i : _src2.i;\n",
+ dest);
+ ORC_ASM_CODE (p, " }\n");
}
static void
-c_rule_swapwl (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_swapwl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src[40];
c_get_name_int (dest, p, insn, insn->dest_args[0]);
c_get_name_int (src, p, insn, insn->src_args[0]);
- ORC_ASM_CODE(p," %s = ((%s&0x0000ffff) << 16) | ((%s&0xffff0000) >> 16);\n",
- dest, src, src);
+ ORC_ASM_CODE (p,
+ " %s = ((%s&0x0000ffff) << 16) | ((%s&0xffff0000) >> 16);\n", dest,
+ src, src);
}
static void
-c_rule_swaplq (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_swaplq (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src[40];
c_get_name_int (dest, p, insn, insn->dest_args[0]);
c_get_name_int (src, p, insn, insn->src_args[0]);
- ORC_ASM_CODE(p," %s = (ORC_UINT64_C(%s&0x00000000ffffffff) << 32) | (ORC_UINT64_C(%s&0xffffffff00000000) >> 32);\n",
+ ORC_ASM_CODE (p,
+ " %s = (ORC_UINT64_C(%s&0x00000000ffffffff) << 32) | (ORC_UINT64_C(%s&0xffffffff00000000) >> 32);\n",
dest, src, src);
}
static void
-c_rule_mergelq (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_mergelq (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src1[40], src2[40];
@@ -1411,16 +1427,16 @@ c_rule_mergelq (OrcCompiler *p, void *user, OrcInstruction *insn)
c_get_name_int (src1, p, insn, insn->src_args[0]);
c_get_name_int (src2, p, insn, insn->src_args[1]);
- ORC_ASM_CODE(p, " {\n");
- ORC_ASM_CODE(p," orc_union64 _dest;\n");
- ORC_ASM_CODE(p," _dest.x2[0] = %s;\n", src1);
- ORC_ASM_CODE(p," _dest.x2[1] = %s;\n", src2);
- ORC_ASM_CODE(p," %s = _dest.i;\n", dest);
- ORC_ASM_CODE(p, " }\n");
+ ORC_ASM_CODE (p, " {\n");
+ ORC_ASM_CODE (p, " orc_union64 _dest;\n");
+ ORC_ASM_CODE (p, " _dest.x2[0] = %s;\n", src1);
+ ORC_ASM_CODE (p, " _dest.x2[1] = %s;\n", src2);
+ ORC_ASM_CODE (p, " %s = _dest.i;\n", dest);
+ ORC_ASM_CODE (p, " }\n");
}
static void
-c_rule_mergewl (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_mergewl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src1[40], src2[40];
@@ -1428,16 +1444,16 @@ c_rule_mergewl (OrcCompiler *p, void *user, OrcInstruction *insn)
c_get_name_int (src1, p, insn, insn->src_args[0]);
c_get_name_int (src2, p, insn, insn->src_args[1]);
- ORC_ASM_CODE(p, " {\n");
- ORC_ASM_CODE(p," orc_union32 _dest;\n");
- ORC_ASM_CODE(p," _dest.x2[0] = %s;\n", src1);
- ORC_ASM_CODE(p," _dest.x2[1] = %s;\n", src2);
- ORC_ASM_CODE(p," %s = _dest.i;\n", dest);
- ORC_ASM_CODE(p, " }\n");
+ ORC_ASM_CODE (p, " {\n");
+ ORC_ASM_CODE (p, " orc_union32 _dest;\n");
+ ORC_ASM_CODE (p, " _dest.x2[0] = %s;\n", src1);
+ ORC_ASM_CODE (p, " _dest.x2[1] = %s;\n", src2);
+ ORC_ASM_CODE (p, " %s = _dest.i;\n", dest);
+ ORC_ASM_CODE (p, " }\n");
}
static void
-c_rule_mergebw (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_mergebw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src1[40], src2[40];
@@ -1445,12 +1461,12 @@ c_rule_mergebw (OrcCompiler *p, void *user, OrcInstruction *insn)
c_get_name_int (src1, p, insn, insn->src_args[0]);
c_get_name_int (src2, p, insn, insn->src_args[1]);
- ORC_ASM_CODE(p, " {\n");
- ORC_ASM_CODE(p," orc_union16 _dest;\n");
- ORC_ASM_CODE(p," _dest.x2[0] = %s;\n", src1);
- ORC_ASM_CODE(p," _dest.x2[1] = %s;\n", src2);
- ORC_ASM_CODE(p," %s = _dest.i;\n", dest);
- ORC_ASM_CODE(p, " }\n");
+ ORC_ASM_CODE (p, " {\n");
+ ORC_ASM_CODE (p, " orc_union16 _dest;\n");
+ ORC_ASM_CODE (p, " _dest.x2[0] = %s;\n", src1);
+ ORC_ASM_CODE (p, " _dest.x2[1] = %s;\n", src2);
+ ORC_ASM_CODE (p, " %s = _dest.i;\n", dest);
+ ORC_ASM_CODE (p, " }\n");
}
@@ -1461,7 +1477,7 @@ static OrcTarget c_target = {
orc_compiler_c_get_default_flags,
orc_compiler_c_init,
orc_compiler_c_assemble,
- { { 0 } },
+ {{0}},
0,
orc_target_c_get_asm_preamble,
};
@@ -1474,7 +1490,7 @@ orc_c_init (void)
orc_target_register (&c_target);
- rule_set = orc_rule_set_new (orc_opcode_set_get("sys"), &c_target, 0);
+ rule_set = orc_rule_set_new (orc_opcode_set_get ("sys"), &c_target, 0);
#define BINARY_SB(a,b) orc_rule_register (rule_set, #a , c_rule_ ## a, NULL);
#define BINARY_UB(a,b) orc_rule_register (rule_set, #a , c_rule_ ## a, NULL);
@@ -1520,10 +1536,10 @@ orc_c_init (void)
#include "opcodes.h"
- orc_rule_register (rule_set, "loadpb", c_rule_loadpX, (void *)1);
- orc_rule_register (rule_set, "loadpw", c_rule_loadpX, (void *)2);
- orc_rule_register (rule_set, "loadpl", c_rule_loadpX, (void *)4);
- orc_rule_register (rule_set, "loadpq", c_rule_loadpX, (void *)8);
+ orc_rule_register (rule_set, "loadpb", c_rule_loadpX, (void *) 1);
+ orc_rule_register (rule_set, "loadpw", c_rule_loadpX, (void *) 2);
+ orc_rule_register (rule_set, "loadpl", c_rule_loadpX, (void *) 4);
+ orc_rule_register (rule_set, "loadpq", c_rule_loadpX, (void *) 8);
orc_rule_register (rule_set, "loadb", c_rule_loadX, NULL);
orc_rule_register (rule_set, "loadw", c_rule_loadX, NULL);
orc_rule_register (rule_set, "loadl", c_rule_loadX, NULL);
@@ -1575,4 +1591,3 @@ orc_c_init (void)
orc_rule_register (rule_set, "mergewl", c_rule_mergewl, NULL);
orc_rule_register (rule_set, "mergelq", c_rule_mergelq, NULL);
}
-
diff --git a/orc/orcprogram-c64x-c.c b/orc/orcprogram-c64x-c.c
index 8361fee..1e28099 100644
--- a/orc/orcprogram-c64x-c.c
+++ b/orc/orcprogram-c64x-c.c
@@ -12,14 +12,14 @@
void orc_c_init (void);
-static void emit_loop (OrcCompiler *compiler, int prefix);
+static void emit_loop (OrcCompiler * compiler, int prefix);
void
-orc_compiler_c64x_c_init (OrcCompiler *compiler)
+orc_compiler_c64x_c_init (OrcCompiler * compiler)
{
int i;
- for(i=ORC_GP_REG_BASE;i<ORC_GP_REG_BASE+16;i++){
+ for (i = ORC_GP_REG_BASE; i < ORC_GP_REG_BASE + 16; i++) {
compiler->valid_regs[i] = 1;
}
compiler->loop_shift = 0;
@@ -29,58 +29,58 @@ const char *
orc_target_c64x_c_get_asm_preamble (void)
{
return "\n"
- "/* begin Orc C target preamble */\n"
- "typedef signed char int8_t;\n"
- "typedef unsigned char uint8_t;\n"
- "typedef signed short int16_t;\n"
- "typedef unsigned short uint16_t;\n"
- "typedef signed int int32_t;\n"
- "typedef unsigned int uint32_t;\n"
- "typedef signed long long int64_t;\n"
- "typedef unsigned long long uint64_t;\n"
- "#define ORC_RESTRICT restrict\n"
- "typedef struct _OrcProgram OrcProgram;\n"
- "typedef struct _OrcExecutor OrcExecutor;\n"
- "#define ORC_N_VARIABLES 20\n"
- "#define ORC_N_REGISTERS 20\n"
- "#define ORC_OPCODE_N_ARGS 4\n"
- "struct _OrcExecutor {\n"
- " OrcProgram *program;\n"
- " int n;\n"
- " int counter1;\n"
- " int counter2;\n"
- " int counter3;\n"
- " void *arrays[ORC_N_VARIABLES];\n"
- " int params[ORC_N_VARIABLES];\n"
- " //OrcVariable vars[ORC_N_VARIABLES];\n"
- " //OrcVariable *args[ORC_OPCODE_N_ARGS];\n"
- "};\n"
- "#define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))\n"
- "#define ORC_ABS(a) ((a)<0 ? -(a) : (a))\n"
- "#define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))\n"
- "#define ORC_MAX(a,b) ((a)>(b) ? (a) : (b))\n"
- "#define ORC_SB_MAX 127\n"
- "#define ORC_SB_MIN (-1-ORC_SB_MAX)\n"
- "#define ORC_UB_MAX 255\n"
- "#define ORC_UB_MIN 0\n"
- "#define ORC_SW_MAX 32767\n"
- "#define ORC_SW_MIN (-1-ORC_SW_MAX)\n"
- "#define ORC_UW_MAX 65535\n"
- "#define ORC_UW_MIN 0\n"
- "#define ORC_SL_MAX 2147483647\n"
- "#define ORC_SL_MIN (-1-ORC_SL_MAX)\n"
- "#define ORC_UL_MAX 4294967295U\n"
- "#define ORC_UL_MIN 0\n"
- "#define ORC_CLAMP_SB(x) ORC_CLAMP(x,ORC_SB_MIN,ORC_SB_MAX)\n"
- "#define ORC_CLAMP_UB(x) ORC_CLAMP(x,ORC_UB_MIN,ORC_UB_MAX)\n"
- "#define ORC_CLAMP_SW(x) ORC_CLAMP(x,ORC_SW_MIN,ORC_SW_MAX)\n"
- "#define ORC_CLAMP_UW(x) ORC_CLAMP(x,ORC_UW_MIN,ORC_UW_MAX)\n"
- "#define ORC_CLAMP_SL(x) ORC_CLAMP(x,ORC_SL_MIN,ORC_SL_MAX)\n"
- "#define ORC_CLAMP_UL(x) ORC_CLAMP(x,ORC_UL_MIN,ORC_UL_MAX)\n"
- "#define ORC_SWAP_W(x) ((((x)&0xff)<<8) | (((x)&0xff00)>>8))\n"
- "#define ORC_SWAP_L(x) ((((x)&0xff)<<24) | (((x)&0xff00)<<8) | (((x)&0xff0000)>>8) | (((x)&0xff000000)>>24))\n"
- "#define ORC_PTR_OFFSET(ptr,offset) ((void *)(((unsigned char *)(ptr)) + (offset)))\n"
- "/* end Orc C target preamble */\n\n";
+ "/* begin Orc C target preamble */\n"
+ "typedef signed char int8_t;\n"
+ "typedef unsigned char uint8_t;\n"
+ "typedef signed short int16_t;\n"
+ "typedef unsigned short uint16_t;\n"
+ "typedef signed int int32_t;\n"
+ "typedef unsigned int uint32_t;\n"
+ "typedef signed long long int64_t;\n"
+ "typedef unsigned long long uint64_t;\n"
+ "#define ORC_RESTRICT restrict\n"
+ "typedef struct _OrcProgram OrcProgram;\n"
+ "typedef struct _OrcExecutor OrcExecutor;\n"
+ "#define ORC_N_VARIABLES 20\n"
+ "#define ORC_N_REGISTERS 20\n"
+ "#define ORC_OPCODE_N_ARGS 4\n"
+ "struct _OrcExecutor {\n"
+ " OrcProgram *program;\n"
+ " int n;\n"
+ " int counter1;\n"
+ " int counter2;\n"
+ " int counter3;\n"
+ " void *arrays[ORC_N_VARIABLES];\n"
+ " int params[ORC_N_VARIABLES];\n"
+ " //OrcVariable vars[ORC_N_VARIABLES];\n"
+ " //OrcVariable *args[ORC_OPCODE_N_ARGS];\n"
+ "};\n"
+ "#define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))\n"
+ "#define ORC_ABS(a) ((a)<0 ? -(a) : (a))\n"
+ "#define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))\n"
+ "#define ORC_MAX(a,b) ((a)>(b) ? (a) : (b))\n"
+ "#define ORC_SB_MAX 127\n"
+ "#define ORC_SB_MIN (-1-ORC_SB_MAX)\n"
+ "#define ORC_UB_MAX 255\n"
+ "#define ORC_UB_MIN 0\n"
+ "#define ORC_SW_MAX 32767\n"
+ "#define ORC_SW_MIN (-1-ORC_SW_MAX)\n"
+ "#define ORC_UW_MAX 65535\n"
+ "#define ORC_UW_MIN 0\n"
+ "#define ORC_SL_MAX 2147483647\n"
+ "#define ORC_SL_MIN (-1-ORC_SL_MAX)\n"
+ "#define ORC_UL_MAX 4294967295U\n"
+ "#define ORC_UL_MIN 0\n"
+ "#define ORC_CLAMP_SB(x) ORC_CLAMP(x,ORC_SB_MIN,ORC_SB_MAX)\n"
+ "#define ORC_CLAMP_UB(x) ORC_CLAMP(x,ORC_UB_MIN,ORC_UB_MAX)\n"
+ "#define ORC_CLAMP_SW(x) ORC_CLAMP(x,ORC_SW_MIN,ORC_SW_MAX)\n"
+ "#define ORC_CLAMP_UW(x) ORC_CLAMP(x,ORC_UW_MIN,ORC_UW_MAX)\n"
+ "#define ORC_CLAMP_SL(x) ORC_CLAMP(x,ORC_SL_MIN,ORC_SL_MAX)\n"
+ "#define ORC_CLAMP_UL(x) ORC_CLAMP(x,ORC_UL_MIN,ORC_UL_MAX)\n"
+ "#define ORC_SWAP_W(x) ((((x)&0xff)<<8) | (((x)&0xff00)>>8))\n"
+ "#define ORC_SWAP_L(x) ((((x)&0xff)<<24) | (((x)&0xff00)<<8) | (((x)&0xff0000)>>8) | (((x)&0xff000000)>>24))\n"
+ "#define ORC_PTR_OFFSET(ptr,offset) ((void *)(((unsigned char *)(ptr)) + (offset)))\n"
+ "/* end Orc C target preamble */\n\n";
}
unsigned int
@@ -105,90 +105,98 @@ static const char *varnames[] = {
};
static void
-output_prototype (OrcCompiler *compiler)
+output_prototype (OrcCompiler * compiler)
{
OrcProgram *p = compiler->program;
OrcVariable *var;
int i;
int need_comma;
- ORC_ASM_CODE(compiler, "%s (", p->name);
+ ORC_ASM_CODE (compiler, "%s (", p->name);
need_comma = FALSE;
- for(i=0;i<4;i++){
+ for (i = 0; i < 4; i++) {
var = &p->vars[ORC_VAR_D1 + i];
if (var->size) {
- if (need_comma) ORC_ASM_CODE(compiler, ", ");
+ if (need_comma)
+ ORC_ASM_CODE (compiler, ", ");
if (var->type_name) {
- ORC_ASM_CODE(compiler, "%s * %s", var->type_name,
+ ORC_ASM_CODE (compiler, "%s * %s", var->type_name,
varnames[ORC_VAR_D1 + i]);
} else {
- ORC_ASM_CODE(compiler, "uint%d_t * %s", var->size*8,
+ ORC_ASM_CODE (compiler, "uint%d_t * %s", var->size * 8,
varnames[ORC_VAR_D1 + i]);
}
if (p->is_2d) {
- ORC_ASM_CODE(compiler, ", int %s_stride", varnames[ORC_VAR_D1 + i]);
+ ORC_ASM_CODE (compiler, ", int %s_stride", varnames[ORC_VAR_D1 + i]);
}
need_comma = TRUE;
}
}
- for(i=0;i<4;i++){
+ for (i = 0; i < 4; i++) {
var = &p->vars[ORC_VAR_A1 + i];
if (var->size) {
- if (need_comma) ORC_ASM_CODE(compiler, ", ");
+ if (need_comma)
+ ORC_ASM_CODE (compiler, ", ");
if (var->type_name) {
- ORC_ASM_CODE(compiler, "%s * %s", var->type_name,
+ ORC_ASM_CODE (compiler, "%s * %s", var->type_name,
varnames[ORC_VAR_A1 + i]);
} else {
- ORC_ASM_CODE(compiler, "uint%d_t * %s", var->size*8,
+ ORC_ASM_CODE (compiler, "uint%d_t * %s", var->size * 8,
varnames[ORC_VAR_A1 + i]);
}
need_comma = TRUE;
}
}
- for(i=0;i<8;i++){
+ for (i = 0; i < 8; i++) {
var = &p->vars[ORC_VAR_S1 + i];
if (var->size) {
- if (need_comma) ORC_ASM_CODE(compiler, ", ");
+ if (need_comma)
+ ORC_ASM_CODE (compiler, ", ");
if (var->type_name) {
- ORC_ASM_CODE(compiler, "%s * %s", var->type_name,
+ ORC_ASM_CODE (compiler, "%s * %s", var->type_name,
varnames[ORC_VAR_S1 + i]);
} else {
- ORC_ASM_CODE(compiler, "uint%d_t * %s", var->size*8,
+ ORC_ASM_CODE (compiler, "uint%d_t * %s", var->size * 8,
varnames[ORC_VAR_S1 + i]);
}
if (p->is_2d) {
- ORC_ASM_CODE(compiler, ", int %s_stride", varnames[ORC_VAR_S1 + i]);
+ ORC_ASM_CODE (compiler, ", int %s_stride", varnames[ORC_VAR_S1 + i]);
}
need_comma = TRUE;
}
}
- for(i=0;i<8;i++){
+ for (i = 0; i < 8; i++) {
var = &p->vars[ORC_VAR_P1 + i];
if (var->size) {
- if (need_comma) ORC_ASM_CODE(compiler, ", ");
- ORC_ASM_CODE(compiler, "int %s", varnames[ORC_VAR_P1 + i]);
+ if (need_comma)
+ ORC_ASM_CODE (compiler, ", ");
+ ORC_ASM_CODE (compiler, "int %s", varnames[ORC_VAR_P1 + i]);
need_comma = TRUE;
}
}
if (p->constant_n == 0) {
- if (need_comma) ORC_ASM_CODE(compiler, ", ");
- ORC_ASM_CODE(compiler, "int n");
+ if (need_comma)
+ ORC_ASM_CODE (compiler, ", ");
+ ORC_ASM_CODE (compiler, "int n");
need_comma = TRUE;
}
if (p->is_2d && p->constant_m == 0) {
- if (need_comma) ORC_ASM_CODE(compiler, ", ");
- ORC_ASM_CODE(compiler, "int m");
+ if (need_comma)
+ ORC_ASM_CODE (compiler, ", ");
+ ORC_ASM_CODE (compiler, "int m");
}
- ORC_ASM_CODE(compiler, ")");
+ ORC_ASM_CODE (compiler, ")");
}
static int
-get_align_var (OrcCompiler *compiler)
+get_align_var (OrcCompiler * compiler)
{
- if (compiler->vars[ORC_VAR_D1].size) return ORC_VAR_D1;
- if (compiler->vars[ORC_VAR_S1].size) return ORC_VAR_S1;
+ if (compiler->vars[ORC_VAR_D1].size)
+ return ORC_VAR_D1;
+ if (compiler->vars[ORC_VAR_S1].size)
+ return ORC_VAR_S1;
- ORC_COMPILER_ERROR(compiler, "could not find alignment variable");
+ ORC_COMPILER_ERROR (compiler, "could not find alignment variable");
return -1;
}
@@ -206,13 +214,13 @@ get_shift (int size)
case 8:
return 3;
default:
- ORC_ERROR("bad size %d", size);
+ ORC_ERROR ("bad size %d", size);
}
return -1;
}
void
-orc_compiler_c64x_c_assemble (OrcCompiler *compiler)
+orc_compiler_c64x_c_assemble (OrcCompiler * compiler)
{
int i;
int prefix = 0;
@@ -232,7 +240,7 @@ orc_compiler_c64x_c_assemble (OrcCompiler *compiler)
loop_shift = 0;
break;
default:
- ORC_ERROR("unhandled max var size %d", compiler->max_var_size);
+ ORC_ERROR ("unhandled max var size %d", compiler->max_var_size);
break;
}
@@ -240,115 +248,123 @@ orc_compiler_c64x_c_assemble (OrcCompiler *compiler)
if (!(compiler->target_flags & ORC_TARGET_C_BARE)) {
if (!(compiler->target_flags & ORC_TARGET_C_NOEXEC)) {
- ORC_ASM_CODE(compiler,"void\n");
- ORC_ASM_CODE(compiler,"%s (OrcExecutor *ex)\n", compiler->program->name);
- } else{
- ORC_ASM_CODE(compiler,"void\n");
+ ORC_ASM_CODE (compiler, "void\n");
+ ORC_ASM_CODE (compiler, "%s (OrcExecutor *ex)\n",
+ compiler->program->name);
+ } else {
+ ORC_ASM_CODE (compiler, "void\n");
output_prototype (compiler);
- ORC_ASM_CODE(compiler,"\n");
+ ORC_ASM_CODE (compiler, "\n");
}
- ORC_ASM_CODE(compiler,"{\n");
+ ORC_ASM_CODE (compiler, "{\n");
}
- ORC_ASM_CODE(compiler,"%*s int i;\n", prefix, "");
+ ORC_ASM_CODE (compiler, "%*s int i;\n", prefix, "");
if (compiler->program->is_2d) {
- ORC_ASM_CODE(compiler," int j;\n");
+ ORC_ASM_CODE (compiler, " int j;\n");
}
- for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
+ for (i = 0; i < ORC_N_COMPILER_VARIABLES; i++) {
OrcVariable *var = compiler->vars + i;
- if (var->name == NULL) continue;
+ if (var->name == NULL)
+ continue;
switch (var->vartype) {
case ORC_VAR_TYPE_CONST:
- {
- int value = var->value.i;
+ {
+ int value = var->value.i;
- if (var->size == 1) {
- value = (value&0xff);
- value |= (value<<8);
- value |= (value<<16);
- }
- if (var->size == 2) {
- value = (value&0xffff);
- value |= (value<<16);
- }
+ if (var->size == 1) {
+ value = (value & 0xff);
+ value |= (value << 8);
+ value |= (value << 16);
+ }
+ if (var->size == 2) {
+ value = (value & 0xffff);
+ value |= (value << 16);
+ }
- if (value == 0x80000000) {
- ORC_ASM_CODE(compiler," const int var%d = 0x80000000;\n", i);
- } else {
- ORC_ASM_CODE(compiler," const int var%d = %d;\n",
- i, value);
- }
+ if (value == 0x80000000) {
+ ORC_ASM_CODE (compiler, " const int var%d = 0x80000000;\n", i);
+ } else {
+ ORC_ASM_CODE (compiler, " const int var%d = %d;\n", i, value);
}
+ }
break;
case ORC_VAR_TYPE_TEMP:
- ORC_ASM_CODE(compiler," int var%d;\n", i);
+ ORC_ASM_CODE (compiler, " int var%d;\n", i);
break;
case ORC_VAR_TYPE_SRC:
- ORC_ASM_CODE(compiler," const unsigned char * restrict ptr%d;\n", i);
+ ORC_ASM_CODE (compiler, " const unsigned char * restrict ptr%d;\n", i);
break;
case ORC_VAR_TYPE_DEST:
- ORC_ASM_CODE(compiler," unsigned char * restrict ptr%d;\n", i);
+ ORC_ASM_CODE (compiler, " unsigned char * restrict ptr%d;\n", i);
break;
case ORC_VAR_TYPE_ACCUMULATOR:
- ORC_ASM_CODE(compiler," int var%d = 0;\n", i);
+ ORC_ASM_CODE (compiler, " int var%d = 0;\n", i);
break;
case ORC_VAR_TYPE_PARAM:
if (!(compiler->target_flags & ORC_TARGET_C_NOEXEC)) {
- ORC_ASM_CODE(compiler," const int var%d = ex->params[%d];\n", i, i);
+ ORC_ASM_CODE (compiler, " const int var%d = ex->params[%d];\n", i,
+ i);
} else {
- ORC_ASM_CODE(compiler," const int var%d = %s;\n", i, varnames[i]);
+ ORC_ASM_CODE (compiler, " const int var%d = %s;\n", i, varnames[i]);
}
break;
default:
- ORC_COMPILER_ERROR(compiler, "bad vartype");
+ ORC_COMPILER_ERROR (compiler, "bad vartype");
break;
}
}
if (compiler->program->constant_n == 0) {
if (!(compiler->target_flags & ORC_TARGET_C_NOEXEC)) {
- ORC_ASM_CODE(compiler,"%*s int n;\n", prefix, "");
+ ORC_ASM_CODE (compiler, "%*s int n;\n", prefix, "");
}
}
if (loop_shift > 0) {
- ORC_ASM_CODE(compiler,"%*s int n1, n2, n3;\n", prefix, "");
+ ORC_ASM_CODE (compiler, "%*s int n1, n2, n3;\n", prefix, "");
}
- ORC_ASM_CODE(compiler,"\n");
+ ORC_ASM_CODE (compiler, "\n");
if (compiler->program->is_2d) {
if (compiler->program->constant_m == 0) {
if (!(compiler->target_flags & ORC_TARGET_C_NOEXEC)) {
- ORC_ASM_CODE(compiler," for (j = 0; j < ex->params[ORC_VAR_A1]; j++) {\n");
+ ORC_ASM_CODE (compiler,
+ " for (j = 0; j < ex->params[ORC_VAR_A1]; j++) {\n");
} else {
- ORC_ASM_CODE(compiler," for (j = 0; j < m; j++) {\n");
+ ORC_ASM_CODE (compiler, " for (j = 0; j < m; j++) {\n");
}
} else {
- ORC_ASM_CODE(compiler," for (j = 0; j < %d; j++) {\n",
+ ORC_ASM_CODE (compiler, " for (j = 0; j < %d; j++) {\n",
compiler->program->constant_m);
}
prefix = 2;
- for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
+ for (i = 0; i < ORC_N_COMPILER_VARIABLES; i++) {
OrcVariable *var = compiler->vars + i;
- if (var->name == NULL) continue;
+ if (var->name == NULL)
+ continue;
switch (var->vartype) {
case ORC_VAR_TYPE_SRC:
if (!(compiler->target_flags & ORC_TARGET_C_NOEXEC)) {
- ORC_ASM_CODE(compiler," ptr%d = ORC_PTR_OFFSET(ex->arrays[%d], ex->params[%d] * j);\n",
+ ORC_ASM_CODE (compiler,
+ " ptr%d = ORC_PTR_OFFSET(ex->arrays[%d], ex->params[%d] * j);\n",
i, i, i);
} else {
- ORC_ASM_CODE(compiler," ptr%d = ORC_PTR_OFFSET(%s, %s_stride * j);\n",
- i, varnames[i], varnames[i]);
+ ORC_ASM_CODE (compiler,
+ " ptr%d = ORC_PTR_OFFSET(%s, %s_stride * j);\n", i,
+ varnames[i], varnames[i]);
}
break;
case ORC_VAR_TYPE_DEST:
if (!(compiler->target_flags & ORC_TARGET_C_NOEXEC)) {
- ORC_ASM_CODE(compiler," ptr%d = ORC_PTR_OFFSET(ex->arrays[%d], ex->params[%d] * j);\n",
+ ORC_ASM_CODE (compiler,
+ " ptr%d = ORC_PTR_OFFSET(ex->arrays[%d], ex->params[%d] * j);\n",
i, i, i);
} else {
- ORC_ASM_CODE(compiler," ptr%d = ORC_PTR_OFFSET(%s, %s_stride * j);\n",
- i, varnames[i], varnames[i]);
+ ORC_ASM_CODE (compiler,
+ " ptr%d = ORC_PTR_OFFSET(%s, %s_stride * j);\n", i,
+ varnames[i], varnames[i]);
}
break;
default:
@@ -356,22 +372,23 @@ orc_compiler_c64x_c_assemble (OrcCompiler *compiler)
}
}
} else {
- for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
+ for (i = 0; i < ORC_N_COMPILER_VARIABLES; i++) {
OrcVariable *var = compiler->vars + i;
- if (var->name == NULL) continue;
+ if (var->name == NULL)
+ continue;
switch (var->vartype) {
case ORC_VAR_TYPE_SRC:
if (!(compiler->target_flags & ORC_TARGET_C_NOEXEC)) {
- ORC_ASM_CODE(compiler," ptr%d = ex->arrays[%d];\n", i, i);
+ ORC_ASM_CODE (compiler, " ptr%d = ex->arrays[%d];\n", i, i);
} else {
- ORC_ASM_CODE(compiler," ptr%d = (void *)%s;\n", i, varnames[i]);
+ ORC_ASM_CODE (compiler, " ptr%d = (void *)%s;\n", i, varnames[i]);
}
break;
case ORC_VAR_TYPE_DEST:
if (!(compiler->target_flags & ORC_TARGET_C_NOEXEC)) {
- ORC_ASM_CODE(compiler," ptr%d = ex->arrays[%d];\n", i, i);
+ ORC_ASM_CODE (compiler, " ptr%d = ex->arrays[%d];\n", i, i);
} else {
- ORC_ASM_CODE(compiler," ptr%d = (void *)%s;\n", i, varnames[i]);
+ ORC_ASM_CODE (compiler, " ptr%d = (void *)%s;\n", i, varnames[i]);
}
break;
default:
@@ -382,68 +399,71 @@ orc_compiler_c64x_c_assemble (OrcCompiler *compiler)
if (compiler->program->constant_n == 0) {
if (!(compiler->target_flags & ORC_TARGET_C_NOEXEC)) {
- ORC_ASM_CODE(compiler,"%*s n = ex->n;\n", prefix, "");
+ ORC_ASM_CODE (compiler, "%*s n = ex->n;\n", prefix, "");
}
}
if (loop_shift > 0) {
- ORC_ASM_CODE(compiler,"%*s n1 = ((4 - (int)ptr%d)&0x3) >> %d;\n",
- prefix, "", align_var, get_shift(compiler->vars[align_var].size));
- ORC_ASM_CODE(compiler,"%*s n2 = (n - n1) >> %d;\n",
+ ORC_ASM_CODE (compiler, "%*s n1 = ((4 - (int)ptr%d)&0x3) >> %d;\n",
+ prefix, "", align_var, get_shift (compiler->vars[align_var].size));
+ ORC_ASM_CODE (compiler, "%*s n2 = (n - n1) >> %d;\n",
prefix, "", loop_shift);
- ORC_ASM_CODE(compiler,"%*s n3 = n & ((1 << %d) - 1);\n",
+ ORC_ASM_CODE (compiler, "%*s n3 = n & ((1 << %d) - 1);\n",
prefix, "", loop_shift);
- ORC_ASM_CODE(compiler,"\n");
+ ORC_ASM_CODE (compiler, "\n");
- ORC_ASM_CODE(compiler,"#pragma MUST_ITERATE(0,%d)\n", (1<<loop_shift)-1);
- ORC_ASM_CODE(compiler,"%*s for (i = 0; i < n1; i++) {\n", prefix, "");
+ ORC_ASM_CODE (compiler, "#pragma MUST_ITERATE(0,%d)\n",
+ (1 << loop_shift) - 1);
+ ORC_ASM_CODE (compiler, "%*s for (i = 0; i < n1; i++) {\n", prefix, "");
compiler->loop_shift = 0;
emit_loop (compiler, prefix);
- ORC_ASM_CODE(compiler,"%*s }\n", prefix, "");
+ ORC_ASM_CODE (compiler, "%*s }\n", prefix, "");
- ORC_ASM_CODE(compiler,"%*s for (i = 0; i < n2; i++) {\n", prefix, "");
+ ORC_ASM_CODE (compiler, "%*s for (i = 0; i < n2; i++) {\n", prefix, "");
compiler->vars[align_var].is_aligned = TRUE;
compiler->loop_shift = loop_shift;
emit_loop (compiler, prefix);
compiler->vars[align_var].is_aligned = FALSE;
- ORC_ASM_CODE(compiler,"%*s }\n", prefix, "");
+ ORC_ASM_CODE (compiler, "%*s }\n", prefix, "");
- ORC_ASM_CODE(compiler,"#pragma MUST_ITERATE(0,%d)\n", (1<<loop_shift)-1);
- ORC_ASM_CODE(compiler,"%*s for (i = 0; i < n3; i++) {\n", prefix, "");
+ ORC_ASM_CODE (compiler, "#pragma MUST_ITERATE(0,%d)\n",
+ (1 << loop_shift) - 1);
+ ORC_ASM_CODE (compiler, "%*s for (i = 0; i < n3; i++) {\n", prefix, "");
compiler->loop_shift = 0;
emit_loop (compiler, prefix);
- ORC_ASM_CODE(compiler,"%*s }\n", prefix, "");
+ ORC_ASM_CODE (compiler, "%*s }\n", prefix, "");
} else {
- ORC_ASM_CODE(compiler,"%*s for (i = 0; i < n; i++) {\n", prefix, "");
+ ORC_ASM_CODE (compiler, "%*s for (i = 0; i < n; i++) {\n", prefix, "");
compiler->loop_shift = loop_shift;
emit_loop (compiler, prefix);
- ORC_ASM_CODE(compiler,"%*s }\n", prefix, "");
+ ORC_ASM_CODE (compiler, "%*s }\n", prefix, "");
}
if (compiler->program->is_2d) {
- ORC_ASM_CODE(compiler," }\n");
+ ORC_ASM_CODE (compiler, " }\n");
}
- for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
+ for (i = 0; i < ORC_N_COMPILER_VARIABLES; i++) {
OrcVariable *var = compiler->vars + i;
- if (var->name == NULL) continue;
+ if (var->name == NULL)
+ continue;
switch (var->vartype) {
case ORC_VAR_TYPE_ACCUMULATOR:
if (var->size == 2) {
if (!(compiler->target_flags & ORC_TARGET_C_NOEXEC)) {
- ORC_ASM_CODE(compiler," ex->accumulators[%d] = (var%d & 0xffff);\n",
- i - ORC_VAR_A1, i);
+ ORC_ASM_CODE (compiler,
+ " ex->accumulators[%d] = (var%d & 0xffff);\n", i - ORC_VAR_A1,
+ i);
} else {
- ORC_ASM_CODE(compiler," *%s = (var%d & 0xffff);\n",
+ ORC_ASM_CODE (compiler, " *%s = (var%d & 0xffff);\n",
varnames[i], i);
}
} else {
if (!(compiler->target_flags & ORC_TARGET_C_NOEXEC)) {
- ORC_ASM_CODE(compiler," ex->accumulators[%d] = var%d;\n",
+ ORC_ASM_CODE (compiler, " ex->accumulators[%d] = var%d;\n",
i - ORC_VAR_A1, i);
} else {
- ORC_ASM_CODE(compiler," *%s = var%d;\n",
- varnames[i], i);
+ ORC_ASM_CODE (compiler, " *%s = var%d;\n", varnames[i], i);
}
}
break;
@@ -453,13 +473,13 @@ orc_compiler_c64x_c_assemble (OrcCompiler *compiler)
}
if (!(compiler->target_flags & ORC_TARGET_C_BARE)) {
- ORC_ASM_CODE(compiler,"}\n");
- ORC_ASM_CODE(compiler,"\n");
+ ORC_ASM_CODE (compiler, "}\n");
+ ORC_ASM_CODE (compiler, "\n");
}
}
static void
-emit_loop (OrcCompiler *compiler, int prefix)
+emit_loop (OrcCompiler * compiler, int prefix)
{
int j;
int i;
@@ -467,31 +487,32 @@ emit_loop (OrcCompiler *compiler, int prefix)
OrcStaticOpcode *opcode;
OrcRule *rule;
- for(j=0;j<compiler->n_insns;j++){
+ for (j = 0; j < compiler->n_insns; j++) {
insn = compiler->insns + j;
opcode = insn->opcode;
- ORC_ASM_CODE(compiler,"%*s /* %d: %s */\n", prefix, "",
+ ORC_ASM_CODE (compiler, "%*s /* %d: %s */\n", prefix, "",
j, insn->opcode->name);
rule = insn->rule;
if (rule) {
- ORC_ASM_CODE(compiler,"%*s", prefix, "");
+ ORC_ASM_CODE (compiler, "%*s", prefix, "");
rule->emit (compiler, rule->emit_user, insn);
} else {
- ORC_COMPILER_ERROR(compiler, "No rule for: %s on target %s",
+ ORC_COMPILER_ERROR (compiler, "No rule for: %s on target %s",
opcode->name, compiler->target->name);
compiler->error = TRUE;
}
}
- ORC_ASM_CODE(compiler,"\n");
- for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
+ ORC_ASM_CODE (compiler, "\n");
+ for (i = 0; i < ORC_N_COMPILER_VARIABLES; i++) {
OrcVariable *var = compiler->vars + i;
- if (var->name == NULL) continue;
+ if (var->name == NULL)
+ continue;
switch (var->vartype) {
case ORC_VAR_TYPE_SRC:
case ORC_VAR_TYPE_DEST:
- ORC_ASM_CODE(compiler,"%*s ptr%d += %d;\n", prefix, "",
+ ORC_ASM_CODE (compiler, "%*s ptr%d += %d;\n", prefix, "",
i, var->size << compiler->loop_shift);
break;
default:
@@ -503,7 +524,7 @@ emit_loop (OrcCompiler *compiler, int prefix)
/* rules */
static void
-c_get_name (char *name, OrcCompiler *p, int var)
+c_get_name (char *name, OrcCompiler * p, int var)
{
int size;
@@ -514,43 +535,43 @@ c_get_name (char *name, OrcCompiler *p, int var)
case ORC_VAR_TYPE_PARAM:
case ORC_VAR_TYPE_TEMP:
case ORC_VAR_TYPE_ACCUMULATOR:
- sprintf(name, "var%d", var);
+ sprintf (name, "var%d", var);
break;
case ORC_VAR_TYPE_SRC:
case ORC_VAR_TYPE_DEST:
if (size == 1) {
- sprintf(name, "(*(%sint8_t *)var%d)",
+ sprintf (name, "(*(%sint8_t *)var%d)",
(p->vars[var].vartype == ORC_VAR_TYPE_SRC) ? "const " : "", var);
} else {
- sprintf(name, "_%smem%d%s(var%d)",
+ sprintf (name, "_%smem%d%s(var%d)",
(p->vars[var].is_aligned) ? "a" : "", size,
(p->vars[var].vartype == ORC_VAR_TYPE_SRC) ? "_const" : "", var);
}
break;
default:
- ORC_COMPILER_ERROR(p, "bad vartype");
- sprintf(name, "ERROR");
+ ORC_COMPILER_ERROR (p, "bad vartype");
+ sprintf (name, "ERROR");
break;
}
}
static void
-c_get_name_float (char *name, OrcCompiler *p, int var)
+c_get_name_float (char *name, OrcCompiler * p, int var)
{
switch (p->vars[var].vartype) {
case ORC_VAR_TYPE_CONST:
case ORC_VAR_TYPE_PARAM:
case ORC_VAR_TYPE_TEMP:
case ORC_VAR_TYPE_ACCUMULATOR:
- sprintf(name, "(*(float *)(&var%d))", var);
+ sprintf (name, "(*(float *)(&var%d))", var);
break;
case ORC_VAR_TYPE_SRC:
case ORC_VAR_TYPE_DEST:
- sprintf(name, "((float *)var%d)[i]", var);
+ sprintf (name, "((float *)var%d)[i]", var);
break;
default:
- ORC_COMPILER_ERROR(p, "bad vartype");
- sprintf(name, "ERROR");
+ ORC_COMPILER_ERROR (p, "bad vartype");
+ sprintf (name, "ERROR");
break;
}
}
@@ -689,141 +710,142 @@ c_rule_ ## name (OrcCompiler *p, void *user, OrcInstruction *insn) \
#define UNARY_FL(a,b) UNARYFL(a,b)
#define UNARY_LF(a,b) UNARYLF(a,b)
-BINARY_SB(addb, "_add4(%s,%s)")
-BINARY_SB(addssb, "0x80808080^_saddu4(0x80808080^%s,0x80808080^%s)")
-BINARY_SB(addusb, "_saddu4(%s,%s)")
-BINARY_SB(andb, "%s & %s")
-BINARY_SB(andnb, "(~%s) & %s")
-BINARY_SB(avgsb, "0x7f7f7f7f^_avgu4(0x7f7f7f7f^%s,0x7f7f7f7f^%s)")
-BINARY_UB(avgub, "_avgu4(%s,%s)")
-BINARY_SB(cmpeqb, "_cmpeq4(%s,%s)")
-BINARY_SB(cmpgtsb, "_cmpgtu4(0x80808080^%s,0x80808080^%s)")
-UNARY_SB(copyb, "%s")
-BINARY_SB(maxsb, "0x80808080^_maxu4(0x80808080^%s,0x80808080^%s)")
-BINARY_UB(maxub, "_maxu4(%s,%s)")
-BINARY_SB(minsb, "0x80808080^_minu4(0x80808080^%s,0x80808080^%s)")
-BINARY_UB(minub, "_minu4(%s,%s)")
-BINARY_SB(orb, "%s | %s")
-UNARY_SB(signb, "0x80808080^_maxu4(0x7f7f7f7f,_minu4(0x81818181,0x80808080^%s))")
-BINARY_SB(subb, "_sub4(%s,%s)")
-BINARY_SB(xorb, "%s ^ %s")
-
-UNARY_SW(absw, "_abs2(%s)")
-BINARY_SW(addw, "_add2(%s,%s)")
-BINARY_SW(addssw, "_sadd2(%s,%s)")
-BINARY_SW(addusw, "0x80008000^_sadd2(0x80008000^%s,0x80008000^%s)")
-BINARY_SW(andw, "%s & %s")
-BINARY_SW(andnw, "(~%s) & %s")
-BINARY_SW(avgsw, "_avg2(%s,%s)")
-BINARY_UW(avguw, "0x7fff7fff^_avg2(0x7fff7fff^%s,0x7fff7fff^%s)")
-BINARY_SW(cmpeqw, "_cmpeq2(%s,%s)")
-BINARY_SW(cmpgtsw, "_cmpgt2(%s,%s)")
-UNARY_SW(copyw, "%s")
-BINARY_SW(maxsw, "_max2(%s,%s)")
-BINARY_SW(maxuw, "_max2(0x80008000^%s,0x80008000^%s)")
-BINARY_SW(minsw, "_min2(%s,%s)")
-BINARY_SW(minuw, "_min2(0x80008000^%s,0x80008000^%s)")
-BINARY_SW(orw, "%s | %s")
-BINARY_SW(shrsw, "_shr2(%s,%s)")
-BINARY_UW(shruw, "_shru2(%s,%s)")
-UNARY_SW(signw, "_max2(-1,_min2(1,%s))")
-BINARY_SW(subw, "_sub2(%s,%s)")
-BINARY_SW(subssw, "_ssub2(%s,%s)")
-BINARY_SW(subusw, "0x80008000^_ssub2(0x80008000^%s,0x80008000^%s)")
-BINARY_SW(xorw, "%s ^ %s")
-
-UNARY_SL(absl, "_abs(%s)")
-BINARY_SL(addl, "%s + %s")
-BINARY_SL(addssl, "_sadd(%s,%s)")
-BINARY_UL(addusl, "ORC_CLAMP_UL((int64_t)(uint32_t)%s + (int64_t)(uint32_t)%s)")
-BINARY_SL(andl, "%s & %s")
-BINARY_SL(andnl, "(~%s) & %s")
-BINARY_SL(avgsl, "((int64_t)%s + (int64_t)%s + 1)>>1")
-BINARY_UL(avgul, "((uint64_t)(uint32_t)%s + (uint64_t)(uint32_t)%s + 1)>>1")
-BINARY_SL(cmpeql, "(%s == %s) ? (~0) : 0")
-BINARY_SL(cmpgtsl, "(%s > %s) ? (~0) : 0")
-UNARY_SL(copyl, "%s")
-BINARY_SL(maxsl, "ORC_MAX(%s, %s)")
-BINARY_UL(maxul, "ORC_MAX((uint32_t)%s, (uint32_t)%s)")
-BINARY_SL(minsl, "ORC_MIN(%s, %s)")
-BINARY_UL(minul, "ORC_MIN((uint32_t)%s, (uint32_t)%s)")
-BINARY_SL(mulll, "_loll(_mpy32ll(%s,%s))")
-BINARY_SL(mulhsl, "_hill(_mpy32ll(%s,%s))")
-BINARY_UL(mulhul, "_hill(_mpy32u(%s,%s))")
-BINARY_SL(orl, "%s | %s")
-BINARY_SL(shll, "%s << %s")
-BINARY_SL(shrsl, "%s >> %s")
-BINARY_UL(shrul, "((uint32_t)%s) >> %s")
-UNARY_SL(signl, "ORC_CLAMP((int)%s,-1,1)")
-BINARY_SL(subl, "%s - %s")
-BINARY_SL(subssl, "_ssub(%s,%s)")
-BINARY_UL(subusl, "ORC_CLAMP_UL((int64_t)(uint32_t)%s - (int64_t)(uint32_t)%s)")
-BINARY_SL(xorl, "%s ^ %s")
-
-UNARY_BW(convsbw, "%s")
-UNARY_BW(convubw, "_unpklu4(%s)")
-UNARY_WL(convswl, "(int16_t)%s")
-UNARY_WL(convuwl, "(uint16_t)%s")
-UNARY_WB(convwb, "_packl4(0,%s)")
-UNARY_WB(convsuswb, "_spacku4(0,%s)")
-UNARY_LW(convlw, "_pack2(0,%s)")
-UNARY_LW(convssslw, "_spack2(0,%s)")
-
-BINARY_BW(mulsbw, "%s * %s")
-BINARY_BW(mulubw, "(uint8_t)%s * (uint8_t)%s")
-BINARY_WL(mulswl, "%s * %s")
-BINARY_WL(muluwl, "(uint16_t)%s * (uint16_t)%s")
-
-BINARY_WL(mergewl, "_pack2(%s, %s)")
-BINARY_BW(mergebw, "_packl4(%s, %s)")
-UNARY_WB(select0wb, "_packl4(0,%s)")
-UNARY_WB(select1wb, "_packh4(0,%s)")
-UNARY_LW(select0lw, "_pack2(0,%s)")
-UNARY_LW(select1lw, "_packh2(0,%s)")
-UNARY_UW(swapw, "_swap4(%s)")
-
+BINARY_SB (addb, "_add4(%s,%s)")
+ BINARY_SB (addssb, "0x80808080^_saddu4(0x80808080^%s,0x80808080^%s)")
+ BINARY_SB (addusb, "_saddu4(%s,%s)")
+ BINARY_SB (andb, "%s & %s")
+ BINARY_SB (andnb, "(~%s) & %s")
+ BINARY_SB (avgsb, "0x7f7f7f7f^_avgu4(0x7f7f7f7f^%s,0x7f7f7f7f^%s)")
+ BINARY_UB (avgub, "_avgu4(%s,%s)")
+ BINARY_SB (cmpeqb, "_cmpeq4(%s,%s)")
+ BINARY_SB (cmpgtsb, "_cmpgtu4(0x80808080^%s,0x80808080^%s)")
+ UNARY_SB (copyb, "%s")
+ BINARY_SB (maxsb, "0x80808080^_maxu4(0x80808080^%s,0x80808080^%s)")
+ BINARY_UB (maxub, "_maxu4(%s,%s)")
+ BINARY_SB (minsb, "0x80808080^_minu4(0x80808080^%s,0x80808080^%s)")
+ BINARY_UB (minub, "_minu4(%s,%s)")
+ BINARY_SB (orb, "%s | %s")
+ UNARY_SB (signb,
+ "0x80808080^_maxu4(0x7f7f7f7f,_minu4(0x81818181,0x80808080^%s))")
+ BINARY_SB (subb, "_sub4(%s,%s)")
+ BINARY_SB (xorb, "%s ^ %s")
+
+ UNARY_SW (absw, "_abs2(%s)")
+ BINARY_SW (addw, "_add2(%s,%s)")
+ BINARY_SW (addssw, "_sadd2(%s,%s)")
+ BINARY_SW (addusw, "0x80008000^_sadd2(0x80008000^%s,0x80008000^%s)")
+ BINARY_SW (andw, "%s & %s")
+ BINARY_SW (andnw, "(~%s) & %s")
+ BINARY_SW (avgsw, "_avg2(%s,%s)")
+ BINARY_UW (avguw, "0x7fff7fff^_avg2(0x7fff7fff^%s,0x7fff7fff^%s)")
+ BINARY_SW (cmpeqw, "_cmpeq2(%s,%s)")
+ BINARY_SW (cmpgtsw, "_cmpgt2(%s,%s)")
+ UNARY_SW (copyw, "%s")
+ BINARY_SW (maxsw, "_max2(%s,%s)")
+ BINARY_SW (maxuw, "_max2(0x80008000^%s,0x80008000^%s)")
+ BINARY_SW (minsw, "_min2(%s,%s)")
+ BINARY_SW (minuw, "_min2(0x80008000^%s,0x80008000^%s)")
+ BINARY_SW (orw, "%s | %s")
+ BINARY_SW (shrsw, "_shr2(%s,%s)")
+ BINARY_UW (shruw, "_shru2(%s,%s)")
+ UNARY_SW (signw, "_max2(-1,_min2(1,%s))")
+ BINARY_SW (subw, "_sub2(%s,%s)")
+ BINARY_SW (subssw, "_ssub2(%s,%s)")
+ BINARY_SW (subusw, "0x80008000^_ssub2(0x80008000^%s,0x80008000^%s)")
+ BINARY_SW (xorw, "%s ^ %s")
+
+ UNARY_SL (absl, "_abs(%s)")
+ BINARY_SL (addl, "%s + %s")
+ BINARY_SL (addssl, "_sadd(%s,%s)")
+ BINARY_UL (addusl,
+ "ORC_CLAMP_UL((int64_t)(uint32_t)%s + (int64_t)(uint32_t)%s)")
+ BINARY_SL (andl, "%s & %s")
+ BINARY_SL (andnl, "(~%s) & %s")
+ BINARY_SL (avgsl, "((int64_t)%s + (int64_t)%s + 1)>>1")
+ BINARY_UL (avgul, "((uint64_t)(uint32_t)%s + (uint64_t)(uint32_t)%s + 1)>>1")
+ BINARY_SL (cmpeql, "(%s == %s) ? (~0) : 0")
+ BINARY_SL (cmpgtsl, "(%s > %s) ? (~0) : 0")
+ UNARY_SL (copyl, "%s")
+ BINARY_SL (maxsl, "ORC_MAX(%s, %s)")
+ BINARY_UL (maxul, "ORC_MAX((uint32_t)%s, (uint32_t)%s)")
+ BINARY_SL (minsl, "ORC_MIN(%s, %s)")
+ BINARY_UL (minul, "ORC_MIN((uint32_t)%s, (uint32_t)%s)")
+ BINARY_SL (mulll, "_loll(_mpy32ll(%s,%s))")
+ BINARY_SL (mulhsl, "_hill(_mpy32ll(%s,%s))")
+ BINARY_UL (mulhul, "_hill(_mpy32u(%s,%s))")
+ BINARY_SL (orl, "%s | %s")
+ BINARY_SL (shll, "%s << %s")
+ BINARY_SL (shrsl, "%s >> %s")
+ BINARY_UL (shrul, "((uint32_t)%s) >> %s")
+ UNARY_SL (signl, "ORC_CLAMP((int)%s,-1,1)")
+ BINARY_SL (subl, "%s - %s")
+ BINARY_SL (subssl, "_ssub(%s,%s)")
+ BINARY_UL (subusl,
+ "ORC_CLAMP_UL((int64_t)(uint32_t)%s - (int64_t)(uint32_t)%s)")
+ BINARY_SL (xorl, "%s ^ %s")
+
+ UNARY_BW (convsbw, "%s")
+ UNARY_BW (convubw, "_unpklu4(%s)")
+ UNARY_WL (convswl, "(int16_t)%s")
+ UNARY_WL (convuwl, "(uint16_t)%s")
+ UNARY_WB (convwb, "_packl4(0,%s)")
+ UNARY_WB (convsuswb, "_spacku4(0,%s)")
+ UNARY_LW (convlw, "_pack2(0,%s)")
+ UNARY_LW (convssslw, "_spack2(0,%s)")
+
+ BINARY_BW (mulsbw, "%s * %s")
+ BINARY_BW (mulubw, "(uint8_t)%s * (uint8_t)%s")
+ BINARY_WL (mulswl, "%s * %s")
+ BINARY_WL (muluwl, "(uint16_t)%s * (uint16_t)%s")
+
+ BINARY_WL (mergewl, "_pack2(%s, %s)")
+ BINARY_BW (mergebw, "_packl4(%s, %s)")
+ UNARY_WB (select0wb, "_packl4(0,%s)")
+ UNARY_WB (select1wb, "_packh4(0,%s)")
+ UNARY_LW (select0lw, "_pack2(0,%s)")
+ UNARY_LW (select1lw, "_packh2(0,%s)")
+ UNARY_UW (swapw, "_swap4(%s)")
#if 0
-BINARY_F(addf, "%s + %s")
-BINARY_F(subf, "%s - %s")
-BINARY_F(mulf, "%s * %s")
-BINARY_F(divf, "%s / %s")
-UNARY_F(sqrtf, "sqrt(%s)")
-BINARY_F(maxf, "ORC_MAX(%s,%s)")
-BINARY_F(minf, "ORC_MIN(%s,%s)")
-BINARY_FL(cmpeqf, "(%s == %s) ? (~0) : 0")
-BINARY_FL(cmpltf, "(%s < %s) ? (~0) : 0")
-BINARY_FL(cmplef, "(%s <= %s) ? (~0) : 0")
-UNARY_FL(convfl, "rintf(%s)")
-UNARY_LF(convlf, "%s")
+ BINARY_F (addf, "%s + %s")
+ BINARY_F (subf, "%s - %s")
+ BINARY_F (mulf, "%s * %s")
+ BINARY_F (divf, "%s / %s")
+ UNARY_F (sqrtf, "sqrt(%s)")
+ BINARY_F (maxf, "ORC_MAX(%s,%s)")
+ BINARY_F (minf, "ORC_MIN(%s,%s)")
+ BINARY_FL (cmpeqf, "(%s == %s) ? (~0) : 0")
+ BINARY_FL (cmpltf, "(%s < %s) ? (~0) : 0")
+ BINARY_FL (cmplef, "(%s <= %s) ? (~0) : 0")
+ UNARY_FL (convfl, "rintf(%s)")
+ UNARY_LF (convlf, "%s")
#else
-BINARY_F(addf, "0 /* float disabled %s %s */")
-BINARY_F(subf, "0 /* float disabled %s %s */")
-BINARY_F(mulf, "0 /* float disabled %s %s */")
-BINARY_F(divf, "0 /* float disabled %s %s */")
-UNARY_F(sqrtf, "0 /* float disabled %s */")
-BINARY_F(maxf, "0 /* float disabled %s %s */")
-BINARY_F(minf, "0 /* float disabled %s %s */")
-BINARY_FL(cmpeqf, "0 /* float disabled %s %s */")
-BINARY_FL(cmpltf, "0 /* float disabled %s %s */")
-BINARY_FL(cmplef, "0 /* float disabled %s %s */")
-UNARY_FL(convfl, "0 /* float disabled %s */")
-UNARY_LF(convlf, "0 /* float disabled %s */")
+ BINARY_F (addf, "0 /* float disabled %s %s */")
+ BINARY_F (subf, "0 /* float disabled %s %s */")
+ BINARY_F (mulf, "0 /* float disabled %s %s */")
+ BINARY_F (divf, "0 /* float disabled %s %s */")
+ UNARY_F (sqrtf, "0 /* float disabled %s */")
+ BINARY_F (maxf, "0 /* float disabled %s %s */")
+ BINARY_F (minf, "0 /* float disabled %s %s */")
+ BINARY_FL (cmpeqf, "0 /* float disabled %s %s */")
+ BINARY_FL (cmpltf, "0 /* float disabled %s %s */")
+ BINARY_FL (cmplef, "0 /* float disabled %s %s */")
+ UNARY_FL (convfl, "0 /* float disabled %s */")
+ UNARY_LF (convlf, "0 /* float disabled %s */")
#endif
-
-
-static void
-c_rule_absb (OrcCompiler *p, void *user, OrcInstruction *insn)
+ static void
+ c_rule_absb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src1[40];
c_get_name (dest, p, insn->dest_args[0]);
c_get_name (src1, p, insn->src_args[0]);
- ORC_ASM_CODE(p," %s = _subabs4(0x80808080,0x80808080^%s);\n", dest, src1);
+ ORC_ASM_CODE (p, " %s = _subabs4(0x80808080,0x80808080^%s);\n", dest,
+ src1);
}
static void
-c_rule_mullw (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_mullw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src1[40], src2[40];
@@ -831,14 +853,14 @@ c_rule_mullw (OrcCompiler *p, void *user, OrcInstruction *insn)
c_get_name (src1, p, insn->src_args[0]);
c_get_name (src2, p, insn->src_args[1]);
- ORC_ASM_CODE(p," {\n");
- ORC_ASM_CODE(p," long long x = _mpy2ll(%s,%s);\n", src1, src2);
- ORC_ASM_CODE(p," %s = _pack2(_hill(x),_loll(x));\n", dest);
- ORC_ASM_CODE(p," }\n");
+ ORC_ASM_CODE (p, " {\n");
+ ORC_ASM_CODE (p, " long long x = _mpy2ll(%s,%s);\n", src1, src2);
+ ORC_ASM_CODE (p, " %s = _pack2(_hill(x),_loll(x));\n", dest);
+ ORC_ASM_CODE (p, " }\n");
}
static void
-c_rule_mulhsw (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_mulhsw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src1[40], src2[40];
@@ -846,14 +868,14 @@ c_rule_mulhsw (OrcCompiler *p, void *user, OrcInstruction *insn)
c_get_name (src1, p, insn->src_args[0]);
c_get_name (src2, p, insn->src_args[1]);
- ORC_ASM_CODE(p," {\n");
- ORC_ASM_CODE(p," long long x = _mpy2ll(%s,%s);\n", src1, src2);
- ORC_ASM_CODE(p," %s = _packh2(_hill(x),_loll(x));\n", dest);
- ORC_ASM_CODE(p," }\n");
+ ORC_ASM_CODE (p, " {\n");
+ ORC_ASM_CODE (p, " long long x = _mpy2ll(%s,%s);\n", src1, src2);
+ ORC_ASM_CODE (p, " %s = _packh2(_hill(x),_loll(x));\n", dest);
+ ORC_ASM_CODE (p, " }\n");
}
static void
-c_rule_mulhuw (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_mulhuw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src1[40], src2[40];
@@ -861,14 +883,14 @@ c_rule_mulhuw (OrcCompiler *p, void *user, OrcInstruction *insn)
c_get_name (src1, p, insn->src_args[0]);
c_get_name (src2, p, insn->src_args[1]);
- ORC_ASM_CODE(p," {\n");
- ORC_ASM_CODE(p," long long x = _mpy2ll(%s,%s);\n", src1, src2);
- ORC_ASM_CODE(p," %s = _packh2(_hill(x),_loll(x));\n", dest);
- ORC_ASM_CODE(p," }\n");
+ ORC_ASM_CODE (p, " {\n");
+ ORC_ASM_CODE (p, " long long x = _mpy2ll(%s,%s);\n", src1, src2);
+ ORC_ASM_CODE (p, " %s = _packh2(_hill(x),_loll(x));\n", dest);
+ ORC_ASM_CODE (p, " }\n");
}
static void
-c_rule_shlw (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_shlw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src1[40], src2[40];
@@ -876,24 +898,25 @@ c_rule_shlw (OrcCompiler *p, void *user, OrcInstruction *insn)
c_get_name (src1, p, insn->src_args[0]);
c_get_name (src2, p, insn->src_args[1]);
- ORC_ASM_CODE(p," %s = (%s<<%s) & (~(((1<<%s)-1)<<16 | ((1<<%s)-1)));\n",
+ ORC_ASM_CODE (p, " %s = (%s<<%s) & (~(((1<<%s)-1)<<16 | ((1<<%s)-1)));\n",
dest, src1, src2, src2, src2);
}
static void
-c_rule_convssswb (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_convssswb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src1[40];
c_get_name (dest, p, insn->dest_args[0]);
c_get_name (src1, p, insn->src_args[0]);
- ORC_ASM_CODE(p," %s = _packl4(0,_max2(0xff80ff80,_min2(0x007f007f,%s)));\n",
- dest, src1);
+ ORC_ASM_CODE (p,
+ " %s = _packl4(0,_max2(0xff80ff80,_min2(0x007f007f,%s)));\n", dest,
+ src1);
}
static void
-c_rule_swapl (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_swapl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src1[40], src2[40];
@@ -901,34 +924,34 @@ c_rule_swapl (OrcCompiler *p, void *user, OrcInstruction *insn)
c_get_name (src1, p, insn->src_args[0]);
c_get_name (src2, p, insn->src_args[1]);
- ORC_ASM_CODE(p," %s = _packlh2(_swap4(%s),_swap4(%s));\n",
+ ORC_ASM_CODE (p, " %s = _packlh2(_swap4(%s),_swap4(%s));\n",
dest, src1, src2);
}
static void
-c_rule_accw (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_accw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src1[40];
c_get_name (dest, p, insn->dest_args[0]);
c_get_name (src1, p, insn->src_args[0]);
- ORC_ASM_CODE(p," %s = %s + %s;\n", dest, dest, src1);
+ ORC_ASM_CODE (p, " %s = %s + %s;\n", dest, dest, src1);
}
static void
-c_rule_accl (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_accl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src1[40];
c_get_name (dest, p, insn->dest_args[0]);
c_get_name (src1, p, insn->src_args[0]);
- ORC_ASM_CODE(p," %s = %s + %s;\n", dest, dest, src1);
+ ORC_ASM_CODE (p, " %s = %s + %s;\n", dest, dest, src1);
}
static void
-c_rule_accsadubl (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_accsadubl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
char dest[40], src1[40], src2[40];
@@ -936,22 +959,22 @@ c_rule_accsadubl (OrcCompiler *p, void *user, OrcInstruction *insn)
c_get_name (src1, p, insn->src_args[0]);
c_get_name (src2, p, insn->src_args[1]);
- ORC_ASM_CODE(p,
+ ORC_ASM_CODE (p,
" %s = %s + ORC_ABS((int32_t)(uint8_t)%s - (int32_t)(uint8_t)%s);\n",
dest, dest, src1, src2);
}
static void
-c_rule_loadX (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_loadX (OrcCompiler * p, void *user, OrcInstruction * insn)
{
- ORC_ASM_CODE(p," var%d = ptr%d[i];\n", insn->dest_args[0],
+ ORC_ASM_CODE (p, " var%d = ptr%d[i];\n", insn->dest_args[0],
insn->src_args[0]);
}
static void
-c_rule_storeX (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_storeX (OrcCompiler * p, void *user, OrcInstruction * insn)
{
- ORC_ASM_CODE(p," ptr%d[i] = var%d;\n", insn->dest_args[0],
+ ORC_ASM_CODE (p, " ptr%d[i] = var%d;\n", insn->dest_args[0],
insn->src_args[0]);
}
@@ -963,7 +986,7 @@ static OrcTarget c64x_c_target = {
orc_compiler_c64x_c_get_default_flags,
orc_compiler_c64x_c_init,
orc_compiler_c64x_c_assemble,
- { { 0 } },
+ {{0}},
0,
orc_target_c64x_c_get_asm_preamble,
};
@@ -976,7 +999,7 @@ orc_c64x_c_init (void)
orc_target_register (&c64x_c_target);
- rule_set = orc_rule_set_new (orc_opcode_set_get("sys"), &c64x_c_target, 0);
+ rule_set = orc_rule_set_new (orc_opcode_set_get ("sys"), &c64x_c_target, 0);
#define REG(a) orc_rule_register (rule_set, #a , c_rule_ ## a, NULL);
@@ -990,122 +1013,121 @@ orc_c64x_c_init (void)
orc_rule_register (rule_set, "storel", c_rule_storeX, NULL);
orc_rule_register (rule_set, "storeq", c_rule_storeX, NULL);
- REG(absb);
- REG(addb);
- REG(addssb);
- REG(addusb);
- REG(andb);
- REG(andnb);
- REG(avgsb);
- REG(avgub);
- REG(cmpeqb);
- REG(cmpgtsb);
- REG(copyb);
- REG(maxsb);
- REG(maxub);
- REG(minsb);
- REG(minub);
- REG(orb);
- REG(signb);
- REG(subb);
- REG(xorb);
-
- REG(absw);
- REG(addw);
- REG(addssw);
- REG(addusw);
- REG(andw);
- REG(andnw);
- REG(avgsw);
- REG(avguw);
- REG(cmpeqw);
- REG(cmpgtsw);
- REG(copyw);
- REG(maxsw);
- REG(maxuw);
- REG(minsw);
- REG(minuw);
- REG(mullw);
- REG(mulhsw);
- REG(mulhuw);
- REG(orw);
- REG(shlw);
- REG(shrsw);
- REG(shruw);
- REG(signw);
- REG(subssw);
- REG(subusw);
- REG(subw);
- REG(xorw);
-
- REG(absl);
- REG(addl);
- REG(addssl);
- REG(addusl);
- REG(andl);
- REG(andnl);
- REG(avgsl);
- REG(avgul);
- REG(cmpeql);
- REG(cmpgtsl);
- REG(copyl);
- REG(maxsl);
- REG(maxul);
- REG(minsl);
- REG(minul);
- REG(mulll);
- REG(mulhsl);
- REG(mulhul);
- REG(orl);
- REG(shll);
- REG(shrsl);
- REG(shrul);
- REG(signl);
- REG(subl);
- REG(subssl);
- REG(subusl);
- REG(xorl);
-
- REG(convsbw);
- REG(convubw);
- REG(convswl);
- REG(convuwl);
- REG(convwb);
- REG(convssswb);
- REG(convsuswb);
- REG(convlw);
- REG(convssslw);
-
- REG(mulsbw);
- REG(mulubw);
- REG(mulswl);
- REG(muluwl);
-
- REG(mergewl);
- REG(mergebw);
- REG(select0wb);
- REG(select1wb);
- REG(select0lw);
- REG(select1lw);
- REG(swapw);
- REG(swapl);
-
- REG(addf);
- REG(subf);
- REG(mulf);
- REG(divf);
- REG(sqrtf);
- REG(maxf);
- REG(minf);
- REG(cmpeqf);
- REG(cmpltf);
- REG(cmplef);
- REG(convfl);
- REG(convlf);
-
- REG(accw);
- REG(accl);
- REG(accsadubl);
+ REG (absb);
+ REG (addb);
+ REG (addssb);
+ REG (addusb);
+ REG (andb);
+ REG (andnb);
+ REG (avgsb);
+ REG (avgub);
+ REG (cmpeqb);
+ REG (cmpgtsb);
+ REG (copyb);
+ REG (maxsb);
+ REG (maxub);
+ REG (minsb);
+ REG (minub);
+ REG (orb);
+ REG (signb);
+ REG (subb);
+ REG (xorb);
+
+ REG (absw);
+ REG (addw);
+ REG (addssw);
+ REG (addusw);
+ REG (andw);
+ REG (andnw);
+ REG (avgsw);
+ REG (avguw);
+ REG (cmpeqw);
+ REG (cmpgtsw);
+ REG (copyw);
+ REG (maxsw);
+ REG (maxuw);
+ REG (minsw);
+ REG (minuw);
+ REG (mullw);
+ REG (mulhsw);
+ REG (mulhuw);
+ REG (orw);
+ REG (shlw);
+ REG (shrsw);
+ REG (shruw);
+ REG (signw);
+ REG (subssw);
+ REG (subusw);
+ REG (subw);
+ REG (xorw);
+
+ REG (absl);
+ REG (addl);
+ REG (addssl);
+ REG (addusl);
+ REG (andl);
+ REG (andnl);
+ REG (avgsl);
+ REG (avgul);
+ REG (cmpeql);
+ REG (cmpgtsl);
+ REG (copyl);
+ REG (maxsl);
+ REG (maxul);
+ REG (minsl);
+ REG (minul);
+ REG (mulll);
+ REG (mulhsl);
+ REG (mulhul);
+ REG (orl);
+ REG (shll);
+ REG (shrsl);
+ REG (shrul);
+ REG (signl);
+ REG (subl);
+ REG (subssl);
+ REG (subusl);
+ REG (xorl);
+
+ REG (convsbw);
+ REG (convubw);
+ REG (convswl);
+ REG (convuwl);
+ REG (convwb);
+ REG (convssswb);
+ REG (convsuswb);
+ REG (convlw);
+ REG (convssslw);
+
+ REG (mulsbw);
+ REG (mulubw);
+ REG (mulswl);
+ REG (muluwl);
+
+ REG (mergewl);
+ REG (mergebw);
+ REG (select0wb);
+ REG (select1wb);
+ REG (select0lw);
+ REG (select1lw);
+ REG (swapw);
+ REG (swapl);
+
+ REG (addf);
+ REG (subf);
+ REG (mulf);
+ REG (divf);
+ REG (sqrtf);
+ REG (maxf);
+ REG (minf);
+ REG (cmpeqf);
+ REG (cmpltf);
+ REG (cmplef);
+ REG (convfl);
+ REG (convlf);
+
+ REG (accw);
+ REG (accl);
+ REG (accsadubl);
}
-
diff --git a/orc/orcprogram-mmx.c b/orc/orcprogram-mmx.c
index c921b60..0ecad29 100644
--- a/orc/orcprogram-mmx.c
+++ b/orc/orcprogram-mmx.c
@@ -18,21 +18,21 @@
#define ORC_MMX_ALIGNED_DEST_CUTOFF 64
-void orc_mmx_emit_loop (OrcCompiler *compiler, int offset, int update);
+void orc_mmx_emit_loop (OrcCompiler * compiler, int offset, int update);
-void orc_compiler_mmx_init (OrcCompiler *compiler);
+void orc_compiler_mmx_init (OrcCompiler * compiler);
unsigned int orc_compiler_mmx_get_default_flags (void);
-void orc_compiler_mmx_assemble (OrcCompiler *compiler);
-void orc_compiler_mmx_register_rules (OrcTarget *target);
-void orc_mmx_emit_invariants (OrcCompiler *compiler);
+void orc_compiler_mmx_assemble (OrcCompiler * compiler);
+void orc_compiler_mmx_register_rules (OrcTarget * target);
+void orc_mmx_emit_invariants (OrcCompiler * compiler);
-void orc_compiler_rewrite_vars (OrcCompiler *compiler);
-void orc_compiler_dump (OrcCompiler *compiler);
-void mmx_load_constant (OrcCompiler *compiler, int reg, int size, int value);
-void mmx_load_constant_long (OrcCompiler *compiler, int reg,
- OrcConstant *constant);
-static const char * mmx_get_flag_name (int shift);
+void orc_compiler_rewrite_vars (OrcCompiler * compiler);
+void orc_compiler_dump (OrcCompiler * compiler);
+void mmx_load_constant (OrcCompiler * compiler, int reg, int size, int value);
+void mmx_load_constant_long (OrcCompiler * compiler, int reg,
+ OrcConstant * constant);
+static const char *mmx_get_flag_name (int shift);
static OrcTarget mmx_target = {
"mmx",
@@ -45,7 +45,7 @@ static OrcTarget mmx_target = {
orc_compiler_mmx_get_default_flags,
orc_compiler_mmx_init,
orc_compiler_mmx_assemble,
- { { 0 } },
+ {{0}},
0,
NULL,
mmx_load_constant,
@@ -94,7 +94,6 @@ orc_compiler_mmx_get_default_flags (void)
if (_orc_compiler_flag_debug) {
flags |= ORC_TARGET_MMX_FRAME_POINTER;
}
-
#if defined(HAVE_AMD64) || defined(HAVE_I386)
#ifndef MMX
flags |= orc_x86_mmx_flags;
@@ -128,7 +127,7 @@ mmx_get_flag_name (int shift)
#endif
};
- if (shift >= 0 && shift < sizeof(flags)/sizeof(flags[0])) {
+ if (shift >= 0 && shift < sizeof (flags) / sizeof (flags[0])) {
return flags[shift];
}
@@ -136,7 +135,7 @@ mmx_get_flag_name (int shift)
}
void
-orc_compiler_mmx_init (OrcCompiler *compiler)
+orc_compiler_mmx_init (OrcCompiler * compiler)
{
int i;
@@ -149,19 +148,19 @@ orc_compiler_mmx_init (OrcCompiler *compiler)
if (!(compiler->target_flags & ORC_TARGET_MMX_SHORT_JUMPS)) {
compiler->long_jumps = TRUE;
}
-
+
if (compiler->is_64bit) {
- for(i=ORC_GP_REG_BASE;i<ORC_GP_REG_BASE+16;i++){
+ for (i = ORC_GP_REG_BASE; i < ORC_GP_REG_BASE + 16; i++) {
compiler->valid_regs[i] = 1;
}
compiler->valid_regs[X86_ESP] = 0;
#ifndef MMX
- for(i=X86_MM0;i<X86_MM0+16;i++){
+ for (i = X86_MM0; i < X86_MM0 + 16; i++) {
compiler->valid_regs[i] = 1;
}
#else
- for(i=X86_MM0;i<X86_MM0+8;i++){
+ for (i = X86_MM0; i < X86_MM0 + 8; i++) {
compiler->valid_regs[i] = 1;
}
#endif
@@ -174,26 +173,26 @@ orc_compiler_mmx_init (OrcCompiler *compiler)
#ifdef HAVE_OS_WIN32
compiler->save_regs[X86_EDI] = 1;
compiler->save_regs[X86_ESI] = 1;
- for(i=X86_MM0+6;i<X86_MM0+16;i++){
+ for (i = X86_MM0 + 6; i < X86_MM0 + 16; i++) {
compiler->save_regs[i] = 1;
}
#endif
} else {
- for(i=ORC_GP_REG_BASE;i<ORC_GP_REG_BASE+8;i++){
+ for (i = ORC_GP_REG_BASE; i < ORC_GP_REG_BASE + 8; i++) {
compiler->valid_regs[i] = 1;
}
compiler->valid_regs[X86_ESP] = 0;
if (compiler->use_frame_pointer) {
compiler->valid_regs[X86_EBP] = 0;
}
- for(i=X86_MM0;i<X86_MM0+8;i++){
+ for (i = X86_MM0; i < X86_MM0 + 8; i++) {
compiler->valid_regs[i] = 1;
}
compiler->save_regs[X86_EBX] = 1;
compiler->save_regs[X86_EDI] = 1;
compiler->save_regs[X86_EBP] = 1;
}
- for(i=0;i<128;i++){
+ for (i = 0; i < 128; i++) {
compiler->alloc_regs[i] = 0;
compiler->used_regs[i] = 0;
}
@@ -231,7 +230,7 @@ orc_compiler_mmx_init (OrcCompiler *compiler)
compiler->loop_shift = 1;
break;
default:
- ORC_ERROR("unhandled max var size %d", compiler->max_var_size);
+ ORC_ERROR ("unhandled max var size %d", compiler->max_var_size);
break;
}
#ifdef MMX
@@ -255,7 +254,7 @@ orc_compiler_mmx_init (OrcCompiler *compiler)
compiler->allow_gp_on_stack = TRUE;
{
- for(i=0;i<compiler->n_insns;i++){
+ for (i = 0; i < compiler->n_insns; i++) {
OrcInstruction *insn = compiler->insns + i;
OrcStaticOpcode *opcode = insn->opcode;
@@ -270,25 +269,26 @@ orc_compiler_mmx_init (OrcCompiler *compiler)
}
void
-mmx_save_accumulators (OrcCompiler *compiler)
+mmx_save_accumulators (OrcCompiler * compiler)
{
int i;
int src;
int tmp;
- for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
+ for (i = 0; i < ORC_N_COMPILER_VARIABLES; i++) {
OrcVariable *var = compiler->vars + i;
- if (compiler->vars[i].name == NULL) continue;
+ if (compiler->vars[i].name == NULL)
+ continue;
switch (compiler->vars[i].vartype) {
case ORC_VAR_TYPE_ACCUMULATOR:
src = compiler->vars[i].alloc;
tmp = orc_compiler_get_temp_reg (compiler);
#ifndef MMX
- orc_mmx_emit_pshufd (compiler, ORC_MMX_SHUF(3,2,3,2), src, tmp);
+ orc_mmx_emit_pshufd (compiler, ORC_MMX_SHUF (3, 2, 3, 2), src, tmp);
#else
- orc_mmx_emit_pshufw (compiler, ORC_MMX_SHUF(3,2,3,2), src, tmp);
+ orc_mmx_emit_pshufw (compiler, ORC_MMX_SHUF (3, 2, 3, 2), src, tmp);
#endif
if (compiler->vars[i].size == 2) {
@@ -298,7 +298,7 @@ mmx_save_accumulators (OrcCompiler *compiler)
}
#ifndef MMX
- orc_mmx_emit_pshufd (compiler, ORC_MMX_SHUF(1,1,1,1), src, tmp);
+ orc_mmx_emit_pshufd (compiler, ORC_MMX_SHUF (1, 1, 1, 1), src, tmp);
if (compiler->vars[i].size == 2) {
orc_mmx_emit_paddw (compiler, tmp, src);
@@ -309,9 +309,9 @@ mmx_save_accumulators (OrcCompiler *compiler)
if (compiler->vars[i].size == 2) {
#ifndef MMX
- orc_mmx_emit_pshuflw (compiler, ORC_MMX_SHUF(1,1,1,1), src, tmp);
+ orc_mmx_emit_pshuflw (compiler, ORC_MMX_SHUF (1, 1, 1, 1), src, tmp);
#else
- orc_mmx_emit_pshufw (compiler, ORC_MMX_SHUF(1,1,1,1), src, tmp);
+ orc_mmx_emit_pshufw (compiler, ORC_MMX_SHUF (1, 1, 1, 1), src, tmp);
#endif
orc_mmx_emit_paddw (compiler, tmp, src);
@@ -321,12 +321,12 @@ mmx_save_accumulators (OrcCompiler *compiler)
orc_mmx_emit_movd_store_register (compiler, src, compiler->gp_tmpreg);
orc_x86_emit_and_imm_reg (compiler, 4, 0xffff, compiler->gp_tmpreg);
orc_x86_emit_mov_reg_memoffset (compiler, 4, compiler->gp_tmpreg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, accumulators[i-ORC_VAR_A1]),
- compiler->exec_reg);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor,
+ accumulators[i - ORC_VAR_A1]), compiler->exec_reg);
} else {
orc_x86_emit_mov_mmx_memoffset (compiler, 4, src,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, accumulators[i-ORC_VAR_A1]),
- compiler->exec_reg,
+ (int) ORC_STRUCT_OFFSET (OrcExecutor,
+ accumulators[i - ORC_VAR_A1]), compiler->exec_reg,
var->is_aligned, var->is_uncached);
}
@@ -338,34 +338,33 @@ mmx_save_accumulators (OrcCompiler *compiler)
}
void
-mmx_load_constant (OrcCompiler *compiler, int reg, int size, int value)
+mmx_load_constant (OrcCompiler * compiler, int reg, int size, int value)
{
orc_mmx_load_constant (compiler, reg, size, value);
}
void
-orc_mmx_load_constant (OrcCompiler *compiler, int reg, int size, orc_uint64 value)
+orc_mmx_load_constant (OrcCompiler * compiler, int reg, int size,
+ orc_uint64 value)
{
int i;
if (size == 8) {
- int offset = ORC_STRUCT_OFFSET(OrcExecutor,arrays[ORC_VAR_T1]);
+ int offset = ORC_STRUCT_OFFSET (OrcExecutor, arrays[ORC_VAR_T1]);
/* FIXME how ugly and slow! */
- orc_x86_emit_mov_imm_reg (compiler, 4, value>>0,
- compiler->gp_tmpreg);
+ orc_x86_emit_mov_imm_reg (compiler, 4, value >> 0, compiler->gp_tmpreg);
orc_x86_emit_mov_reg_memoffset (compiler, 4, compiler->gp_tmpreg,
offset + 0, compiler->exec_reg);
- orc_x86_emit_mov_imm_reg (compiler, 4, value>>32,
- compiler->gp_tmpreg);
+ orc_x86_emit_mov_imm_reg (compiler, 4, value >> 32, compiler->gp_tmpreg);
orc_x86_emit_mov_reg_memoffset (compiler, 4, compiler->gp_tmpreg,
offset + 4, compiler->exec_reg);
orc_x86_emit_mov_memoffset_mmx (compiler, 8, offset, compiler->exec_reg,
reg, FALSE);
#ifndef MMX
- orc_mmx_emit_pshufd (compiler, ORC_MMX_SHUF(1,0,1,0), reg, reg);
+ orc_mmx_emit_pshufd (compiler, ORC_MMX_SHUF (1, 0, 1, 0), reg, reg);
#endif
return;
}
@@ -380,9 +379,10 @@ orc_mmx_load_constant (OrcCompiler *compiler, int reg, int size, orc_uint64 valu
value |= (value << 16);
}
- ORC_ASM_CODE(compiler, "# loading constant %d 0x%08x\n", (int)value, (int)value);
+ ORC_ASM_CODE (compiler, "# loading constant %d 0x%08x\n", (int) value,
+ (int) value);
if (value == 0) {
- orc_mmx_emit_pxor(compiler, reg, reg);
+ orc_mmx_emit_pxor (compiler, reg, reg);
return;
}
if (value == 0xffffffff) {
@@ -397,30 +397,30 @@ orc_mmx_load_constant (OrcCompiler *compiler, int reg, int size, orc_uint64 valu
}
}
- for(i=1;i<32;i++){
+ for (i = 1; i < 32; i++) {
orc_uint32 v;
- v = (0xffffffff<<i);
+ v = (0xffffffff << i);
if (value == v) {
orc_mmx_emit_pcmpeqb (compiler, reg, reg);
orc_mmx_emit_pslld_imm (compiler, i, reg);
return;
}
- v = (0xffffffff>>i);
+ v = (0xffffffff >> i);
if (value == v) {
orc_mmx_emit_pcmpeqb (compiler, reg, reg);
orc_mmx_emit_psrld_imm (compiler, i, reg);
return;
}
}
- for(i=1;i<16;i++){
+ for (i = 1; i < 16; i++) {
orc_uint32 v;
- v = (0xffff & (0xffff<<i)) | (0xffff0000 & (0xffff0000<<i));
+ v = (0xffff & (0xffff << i)) | (0xffff0000 & (0xffff0000 << i));
if (value == v) {
orc_mmx_emit_pcmpeqb (compiler, reg, reg);
orc_mmx_emit_psllw_imm (compiler, i, reg);
return;
}
- v = (0xffff & (0xffff>>i)) | (0xffff0000 & (0xffff0000>>i));
+ v = (0xffff & (0xffff >> i)) | (0xffff0000 & (0xffff0000 >> i));
if (value == v) {
orc_mmx_emit_pcmpeqb (compiler, reg, reg);
orc_mmx_emit_psrlw_imm (compiler, i, reg);
@@ -431,30 +431,29 @@ orc_mmx_load_constant (OrcCompiler *compiler, int reg, int size, orc_uint64 valu
orc_x86_emit_mov_imm_reg (compiler, 4, value, compiler->gp_tmpreg);
orc_mmx_emit_movd_load_register (compiler, compiler->gp_tmpreg, reg);
#ifndef MMX
- orc_mmx_emit_pshufd (compiler, ORC_MMX_SHUF(0,0,0,0), reg, reg);
+ orc_mmx_emit_pshufd (compiler, ORC_MMX_SHUF (0, 0, 0, 0), reg, reg);
#else
- orc_mmx_emit_pshufw (compiler, ORC_MMX_SHUF(1,0,1,0), reg, reg);
+ orc_mmx_emit_pshufw (compiler, ORC_MMX_SHUF (1, 0, 1, 0), reg, reg);
#endif
}
void
-mmx_load_constant_long (OrcCompiler *compiler, int reg,
- OrcConstant *constant)
+mmx_load_constant_long (OrcCompiler * compiler, int reg, OrcConstant * constant)
{
int i;
- int offset = ORC_STRUCT_OFFSET(OrcExecutor,arrays[ORC_VAR_T1]);
+ int offset = ORC_STRUCT_OFFSET (OrcExecutor, arrays[ORC_VAR_T1]);
/* FIXME this is slower than it could be */
- ORC_ASM_CODE(compiler, "# loading constant %08x %08x %08x %08x\n",
+ ORC_ASM_CODE (compiler, "# loading constant %08x %08x %08x %08x\n",
constant->full_value[0], constant->full_value[1],
constant->full_value[2], constant->full_value[3]);
- for(i=0;i<4;i++){
+ for (i = 0; i < 4; i++) {
orc_x86_emit_mov_imm_reg (compiler, 4, constant->full_value[i],
compiler->gp_tmpreg);
orc_x86_emit_mov_reg_memoffset (compiler, 4, compiler->gp_tmpreg,
- offset + 4*i, compiler->exec_reg);
+ offset + 4 * i, compiler->exec_reg);
}
orc_x86_emit_mov_memoffset_mmx (compiler, 16, offset, compiler->exec_reg,
reg, FALSE);
@@ -462,11 +461,12 @@ mmx_load_constant_long (OrcCompiler *compiler, int reg,
}
void
-mmx_load_constants_outer (OrcCompiler *compiler)
+mmx_load_constants_outer (OrcCompiler * compiler)
{
int i;
- for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
- if (compiler->vars[i].name == NULL) continue;
+ for (i = 0; i < ORC_N_COMPILER_VARIABLES; i++) {
+ if (compiler->vars[i].name == NULL)
+ continue;
switch (compiler->vars[i].vartype) {
case ORC_VAR_TYPE_CONST:
break;
@@ -482,7 +482,7 @@ mmx_load_constants_outer (OrcCompiler *compiler)
case ORC_VAR_TYPE_TEMP:
break;
default:
- orc_compiler_error(compiler,"bad vartype");
+ orc_compiler_error (compiler, "bad vartype");
break;
}
}
@@ -490,12 +490,11 @@ mmx_load_constants_outer (OrcCompiler *compiler)
orc_mmx_emit_invariants (compiler);
/* FIXME move to a better place */
- for(i=0;i<compiler->n_constants;i++){
- compiler->constants[i].alloc_reg =
- orc_compiler_get_constant_reg (compiler);
+ for (i = 0; i < compiler->n_constants; i++) {
+ compiler->constants[i].alloc_reg = orc_compiler_get_constant_reg (compiler);
}
- for(i=0;i<compiler->n_constants;i++){
+ for (i = 0; i < compiler->n_constants; i++) {
if (compiler->constants[i].alloc_reg) {
if (compiler->constants[i].is_long) {
mmx_load_constant_long (compiler, compiler->constants[i].alloc_reg,
@@ -508,7 +507,7 @@ mmx_load_constants_outer (OrcCompiler *compiler)
}
{
- for(i=0;i<compiler->n_insns;i++){
+ for (i = 0; i < compiler->n_insns; i++) {
OrcInstruction *insn = compiler->insns + i;
OrcStaticOpcode *opcode = insn->opcode;
@@ -518,9 +517,8 @@ mmx_load_constants_outer (OrcCompiler *compiler)
strcmp (opcode->name, "ldresnearl") == 0) {
if (compiler->vars[insn->src_args[1]].vartype == ORC_VAR_TYPE_PARAM) {
orc_x86_emit_mov_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[insn->src_args[1]]),
- compiler->exec_reg,
- compiler->vars[insn->src_args[0]].ptr_offset);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[insn->src_args[1]]),
+ compiler->exec_reg, compiler->vars[insn->src_args[0]].ptr_offset);
} else {
orc_x86_emit_mov_imm_reg (compiler, 4,
compiler->vars[insn->src_args[1]].value.i,
@@ -532,11 +530,12 @@ mmx_load_constants_outer (OrcCompiler *compiler)
}
void
-mmx_load_constants_inner (OrcCompiler *compiler)
+mmx_load_constants_inner (OrcCompiler * compiler)
{
int i;
- for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
- if (compiler->vars[i].name == NULL) continue;
+ for (i = 0; i < ORC_N_COMPILER_VARIABLES; i++) {
+ if (compiler->vars[i].name == NULL)
+ continue;
switch (compiler->vars[i].vartype) {
case ORC_VAR_TYPE_CONST:
break;
@@ -546,8 +545,8 @@ mmx_load_constants_inner (OrcCompiler *compiler)
case ORC_VAR_TYPE_DEST:
if (compiler->vars[i].ptr_register) {
orc_x86_emit_mov_memoffset_reg (compiler, compiler->is_64bit ? 8 : 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, arrays[i]), compiler->exec_reg,
- compiler->vars[i].ptr_register);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, arrays[i]),
+ compiler->exec_reg, compiler->vars[i].ptr_register);
}
break;
case ORC_VAR_TYPE_ACCUMULATOR:
@@ -555,19 +554,20 @@ mmx_load_constants_inner (OrcCompiler *compiler)
case ORC_VAR_TYPE_TEMP:
break;
default:
- orc_compiler_error(compiler,"bad vartype");
+ orc_compiler_error (compiler, "bad vartype");
break;
}
}
}
void
-mmx_add_strides (OrcCompiler *compiler)
+mmx_add_strides (OrcCompiler * compiler)
{
int i;
- for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
- if (compiler->vars[i].name == NULL) continue;
+ for (i = 0; i < ORC_N_COMPILER_VARIABLES; i++) {
+ if (compiler->vars[i].name == NULL)
+ continue;
switch (compiler->vars[i].vartype) {
case ORC_VAR_TYPE_CONST:
break;
@@ -576,14 +576,15 @@ mmx_add_strides (OrcCompiler *compiler)
case ORC_VAR_TYPE_SRC:
case ORC_VAR_TYPE_DEST:
orc_x86_emit_mov_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[i]), compiler->exec_reg,
- compiler->gp_tmpreg);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[i]),
+ compiler->exec_reg, compiler->gp_tmpreg);
orc_x86_emit_add_reg_memoffset (compiler, compiler->is_64bit ? 8 : 4,
- compiler->gp_tmpreg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, arrays[i]), compiler->exec_reg);
+ compiler->gp_tmpreg, (int) ORC_STRUCT_OFFSET (OrcExecutor,
+ arrays[i]), compiler->exec_reg);
if (compiler->vars[i].ptr_register == 0) {
- orc_compiler_error (compiler, "unimplemented: stride on pointer stored in memory");
+ orc_compiler_error (compiler,
+ "unimplemented: stride on pointer stored in memory");
}
break;
case ORC_VAR_TYPE_ACCUMULATOR:
@@ -591,34 +592,37 @@ mmx_add_strides (OrcCompiler *compiler)
case ORC_VAR_TYPE_TEMP:
break;
default:
- orc_compiler_error(compiler,"bad vartype");
+ orc_compiler_error (compiler, "bad vartype");
break;
}
}
}
static int
-get_align_var (OrcCompiler *compiler)
+get_align_var (OrcCompiler * compiler)
{
int i;
- for(i=ORC_VAR_D1;i<=ORC_VAR_S8;i++){
- if (compiler->vars[i].size == 0) continue;
+ for (i = ORC_VAR_D1; i <= ORC_VAR_S8; i++) {
+ if (compiler->vars[i].size == 0)
+ continue;
if ((compiler->vars[i].size << compiler->loop_shift) >= 16) {
return i;
}
}
- for(i=ORC_VAR_D1;i<=ORC_VAR_S8;i++){
- if (compiler->vars[i].size == 0) continue;
+ for (i = ORC_VAR_D1; i <= ORC_VAR_S8; i++) {
+ if (compiler->vars[i].size == 0)
+ continue;
if ((compiler->vars[i].size << compiler->loop_shift) >= 8) {
return i;
}
}
- for(i=ORC_VAR_D1;i<=ORC_VAR_S8;i++){
- if (compiler->vars[i].size == 0) continue;
+ for (i = ORC_VAR_D1; i <= ORC_VAR_S8; i++) {
+ if (compiler->vars[i].size == 0)
+ continue;
return i;
}
- orc_compiler_error(compiler, "could not find alignment variable");
+ orc_compiler_error (compiler, "could not find alignment variable");
return -1;
}
@@ -636,14 +640,14 @@ get_shift (int size)
case 8:
return 3;
default:
- ORC_ERROR("bad size %d", size);
+ ORC_ERROR ("bad size %d", size);
}
return -1;
}
static void
-orc_emit_split_3_regions (OrcCompiler *compiler)
+orc_emit_split_3_regions (OrcCompiler * compiler)
{
int align_var;
int align_shift;
@@ -656,40 +660,39 @@ orc_emit_split_3_regions (OrcCompiler *compiler)
/* determine how many iterations until align array is aligned (n1) */
orc_x86_emit_mov_imm_reg (compiler, 4, 16, X86_EAX);
orc_x86_emit_sub_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, arrays[align_var]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, arrays[align_var]),
compiler->exec_reg, X86_EAX);
- orc_x86_emit_and_imm_reg (compiler, 4, (1<<align_shift) - 1, X86_EAX);
+ orc_x86_emit_and_imm_reg (compiler, 4, (1 << align_shift) - 1, X86_EAX);
orc_x86_emit_sar_imm_reg (compiler, 4, var_size_shift, X86_EAX);
/* check if n1 is greater than n. */
orc_x86_emit_cmp_reg_memoffset (compiler, 4, X86_EAX,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,n), compiler->exec_reg);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, n), compiler->exec_reg);
orc_x86_emit_jle (compiler, 6);
/* If so, we have a standard 3-region split. */
orc_x86_emit_mov_reg_memoffset (compiler, 4, X86_EAX,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter1), compiler->exec_reg);
-
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter1), compiler->exec_reg);
+
/* Calculate n2 */
orc_x86_emit_mov_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,n), compiler->exec_reg,
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, n), compiler->exec_reg,
compiler->gp_tmpreg);
orc_x86_emit_sub_reg_reg (compiler, 4, X86_EAX, compiler->gp_tmpreg);
orc_x86_emit_mov_reg_reg (compiler, 4, compiler->gp_tmpreg, X86_EAX);
orc_x86_emit_sar_imm_reg (compiler, 4,
- compiler->loop_shift + compiler->unroll_shift,
- compiler->gp_tmpreg);
+ compiler->loop_shift + compiler->unroll_shift, compiler->gp_tmpreg);
orc_x86_emit_mov_reg_memoffset (compiler, 4, compiler->gp_tmpreg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter2), compiler->exec_reg);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter2), compiler->exec_reg);
/* Calculate n3 */
orc_x86_emit_and_imm_reg (compiler, 4,
- (1<<(compiler->loop_shift + compiler->unroll_shift))-1, X86_EAX);
+ (1 << (compiler->loop_shift + compiler->unroll_shift)) - 1, X86_EAX);
orc_x86_emit_mov_reg_memoffset (compiler, 4, X86_EAX,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter3), compiler->exec_reg);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter3), compiler->exec_reg);
orc_x86_emit_jmp (compiler, 7);
@@ -697,20 +700,20 @@ orc_emit_split_3_regions (OrcCompiler *compiler)
orc_x86_emit_label (compiler, 6);
orc_x86_emit_mov_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,n), compiler->exec_reg, X86_EAX);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, n), compiler->exec_reg, X86_EAX);
orc_x86_emit_mov_reg_memoffset (compiler, 4, X86_EAX,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter1), compiler->exec_reg);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter1), compiler->exec_reg);
orc_x86_emit_mov_imm_reg (compiler, 4, 0, X86_EAX);
orc_x86_emit_mov_reg_memoffset (compiler, 4, X86_EAX,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter2), compiler->exec_reg);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter2), compiler->exec_reg);
orc_x86_emit_mov_reg_memoffset (compiler, 4, X86_EAX,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter3), compiler->exec_reg);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter3), compiler->exec_reg);
orc_x86_emit_label (compiler, 7);
}
static void
-orc_emit_split_2_regions (OrcCompiler *compiler)
+orc_emit_split_2_regions (OrcCompiler * compiler)
{
int align_var;
int align_shift ORC_GNUC_UNUSED;
@@ -722,31 +725,31 @@ orc_emit_split_2_regions (OrcCompiler *compiler)
/* Calculate n2 */
orc_x86_emit_mov_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,n), compiler->exec_reg,
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, n), compiler->exec_reg,
compiler->gp_tmpreg);
orc_x86_emit_mov_reg_reg (compiler, 4, compiler->gp_tmpreg, X86_EAX);
orc_x86_emit_sar_imm_reg (compiler, 4,
- compiler->loop_shift + compiler->unroll_shift,
- compiler->gp_tmpreg);
+ compiler->loop_shift + compiler->unroll_shift, compiler->gp_tmpreg);
orc_x86_emit_mov_reg_memoffset (compiler, 4, compiler->gp_tmpreg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter2), compiler->exec_reg);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter2), compiler->exec_reg);
/* Calculate n3 */
orc_x86_emit_and_imm_reg (compiler, 4,
- (1<<(compiler->loop_shift + compiler->unroll_shift))-1, X86_EAX);
+ (1 << (compiler->loop_shift + compiler->unroll_shift)) - 1, X86_EAX);
orc_x86_emit_mov_reg_memoffset (compiler, 4, X86_EAX,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter3), compiler->exec_reg);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter3), compiler->exec_reg);
}
#ifndef MMX
static int
-orc_program_has_float (OrcCompiler *compiler)
+orc_program_has_float (OrcCompiler * compiler)
{
int j;
- for(j=0;j<compiler->n_insns;j++){
+ for (j = 0; j < compiler->n_insns; j++) {
OrcInstruction *insn = compiler->insns + j;
OrcStaticOpcode *opcode = insn->opcode;
- if (opcode->flags & ORC_STATIC_OPCODE_FLOAT) return TRUE;
+ if (opcode->flags & ORC_STATIC_OPCODE_FLOAT)
+ return TRUE;
}
return FALSE;
}
@@ -762,7 +765,7 @@ orc_program_has_float (OrcCompiler *compiler)
void
-orc_compiler_mmx_assemble (OrcCompiler *compiler)
+orc_compiler_mmx_assemble (OrcCompiler * compiler)
{
#ifndef MMX
int set_mxcsr = FALSE;
@@ -792,7 +795,8 @@ orc_compiler_mmx_assemble (OrcCompiler *compiler)
compiler->n_output_insns = 0;
}
- if (compiler->error) return;
+ if (compiler->error)
+ return;
orc_x86_emit_prologue (compiler);
@@ -810,16 +814,16 @@ orc_compiler_mmx_assemble (OrcCompiler *compiler)
orc_x86_emit_mov_imm_reg (compiler, 4, compiler->program->constant_m,
X86_EAX);
orc_x86_emit_mov_reg_memoffset (compiler, 4, X86_EAX,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[ORC_VAR_A2]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[ORC_VAR_A2]),
compiler->exec_reg);
} else {
orc_x86_emit_mov_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[ORC_VAR_A1]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[ORC_VAR_A1]),
compiler->exec_reg, X86_EAX);
orc_x86_emit_test_reg_reg (compiler, 4, X86_EAX, X86_EAX);
orc_x86_emit_jle (compiler, LABEL_OUTER_LOOP_SKIP);
orc_x86_emit_mov_reg_memoffset (compiler, 4, X86_EAX,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[ORC_VAR_A2]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[ORC_VAR_A2]),
compiler->exec_reg);
}
@@ -839,10 +843,10 @@ orc_compiler_mmx_assemble (OrcCompiler *compiler)
} else {
/* loop shift is 0, no need to split */
orc_x86_emit_mov_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,n), compiler->exec_reg,
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, n), compiler->exec_reg,
compiler->gp_tmpreg);
orc_x86_emit_mov_reg_memoffset (compiler, 4, compiler->gp_tmpreg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter2), compiler->exec_reg);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter2), compiler->exec_reg);
}
mmx_load_constants_inner (compiler);
@@ -856,20 +860,20 @@ orc_compiler_mmx_assemble (OrcCompiler *compiler)
compiler->offset = 0;
save_loop_shift = compiler->loop_shift;
- while (n_left >= (1<<compiler->loop_shift)) {
- ORC_ASM_CODE(compiler, "# LOOP SHIFT %d\n", compiler->loop_shift);
+ while (n_left >= (1 << compiler->loop_shift)) {
+ ORC_ASM_CODE (compiler, "# LOOP SHIFT %d\n", compiler->loop_shift);
orc_mmx_emit_loop (compiler, compiler->offset, 0);
- n_left -= 1<<compiler->loop_shift;
- compiler->offset += 1<<compiler->loop_shift;
+ n_left -= 1 << compiler->loop_shift;
+ compiler->offset += 1 << compiler->loop_shift;
}
- for(loop_shift = compiler->loop_shift-1; loop_shift>=0; loop_shift--) {
- if (n_left >= (1<<loop_shift)) {
+ for (loop_shift = compiler->loop_shift - 1; loop_shift >= 0; loop_shift--) {
+ if (n_left >= (1 << loop_shift)) {
compiler->loop_shift = loop_shift;
- ORC_ASM_CODE(compiler, "# LOOP SHIFT %d\n", loop_shift);
+ ORC_ASM_CODE (compiler, "# LOOP SHIFT %d\n", loop_shift);
orc_mmx_emit_loop (compiler, compiler->offset, 0);
- n_left -= 1<<loop_shift;
- compiler->offset += 1<<loop_shift;
+ n_left -= 1 << loop_shift;
+ compiler->offset += 1 << loop_shift;
}
}
compiler->loop_shift = save_loop_shift;
@@ -894,15 +898,16 @@ orc_compiler_mmx_assemble (OrcCompiler *compiler)
save_loop_shift = compiler->loop_shift;
compiler->vars[align_var].is_aligned = FALSE;
- for (l=0;l<save_loop_shift;l++){
+ for (l = 0; l < save_loop_shift; l++) {
compiler->loop_shift = l;
- ORC_ASM_CODE(compiler, "# LOOP SHIFT %d\n", compiler->loop_shift);
-
- orc_x86_emit_test_imm_memoffset (compiler, 4, 1<<compiler->loop_shift,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter1), compiler->exec_reg);
- orc_x86_emit_je (compiler, LABEL_STEP_UP(compiler->loop_shift));
- orc_mmx_emit_loop (compiler, 0, 1<<compiler->loop_shift);
- orc_x86_emit_label (compiler, LABEL_STEP_UP(compiler->loop_shift));
+ ORC_ASM_CODE (compiler, "# LOOP SHIFT %d\n", compiler->loop_shift);
+
+ orc_x86_emit_test_imm_memoffset (compiler, 4, 1 << compiler->loop_shift,
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter1),
+ compiler->exec_reg);
+ orc_x86_emit_je (compiler, LABEL_STEP_UP (compiler->loop_shift));
+ orc_mmx_emit_loop (compiler, 0, 1 << compiler->loop_shift);
+ orc_x86_emit_label (compiler, LABEL_STEP_UP (compiler->loop_shift));
}
compiler->loop_shift = save_loop_shift;
@@ -912,31 +917,31 @@ orc_compiler_mmx_assemble (OrcCompiler *compiler)
orc_x86_emit_label (compiler, LABEL_REGION1_SKIP);
orc_x86_emit_cmp_imm_memoffset (compiler, 4, 0,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter2), compiler->exec_reg);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter2), compiler->exec_reg);
orc_x86_emit_je (compiler, LABEL_REGION2_SKIP);
if (compiler->loop_counter != ORC_REG_INVALID) {
orc_x86_emit_mov_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, counter2), compiler->exec_reg,
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter2), compiler->exec_reg,
compiler->loop_counter);
}
- ORC_ASM_CODE(compiler, "# LOOP SHIFT %d\n", compiler->loop_shift);
+ ORC_ASM_CODE (compiler, "# LOOP SHIFT %d\n", compiler->loop_shift);
orc_x86_emit_align (compiler, 4);
orc_x86_emit_label (compiler, LABEL_INNER_LOOP_START);
- ui_max = 1<<compiler->unroll_shift;
- for(ui=0;ui<ui_max;ui++) {
- compiler->offset = ui<<compiler->loop_shift;
+ ui_max = 1 << compiler->unroll_shift;
+ for (ui = 0; ui < ui_max; ui++) {
+ compiler->offset = ui << compiler->loop_shift;
orc_mmx_emit_loop (compiler, compiler->offset,
- (ui==ui_max-1) << (compiler->loop_shift + compiler->unroll_shift));
+ (ui ==
+ ui_max - 1) << (compiler->loop_shift + compiler->unroll_shift));
}
compiler->offset = 0;
if (compiler->loop_counter != ORC_REG_INVALID) {
orc_x86_emit_add_imm_reg (compiler, 4, -1, compiler->loop_counter, TRUE);
} else {
orc_x86_emit_dec_memoffset (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter2),
- compiler->exec_reg);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter2), compiler->exec_reg);
}
orc_x86_emit_jne (compiler, LABEL_INNER_LOOP_START);
orc_x86_emit_label (compiler, LABEL_REGION2_SKIP);
@@ -948,15 +953,16 @@ orc_compiler_mmx_assemble (OrcCompiler *compiler)
save_loop_shift = compiler->loop_shift + compiler->unroll_shift;
compiler->vars[align_var].is_aligned = FALSE;
- for(l=save_loop_shift - 1; l >= 0; l--) {
+ for (l = save_loop_shift - 1; l >= 0; l--) {
compiler->loop_shift = l;
- ORC_ASM_CODE(compiler, "# LOOP SHIFT %d\n", compiler->loop_shift);
-
- orc_x86_emit_test_imm_memoffset (compiler, 4, 1<<compiler->loop_shift,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter3), compiler->exec_reg);
- orc_x86_emit_je (compiler, LABEL_STEP_DOWN(compiler->loop_shift));
- orc_mmx_emit_loop (compiler, 0, 1<<compiler->loop_shift);
- orc_x86_emit_label (compiler, LABEL_STEP_DOWN(compiler->loop_shift));
+ ORC_ASM_CODE (compiler, "# LOOP SHIFT %d\n", compiler->loop_shift);
+
+ orc_x86_emit_test_imm_memoffset (compiler, 4, 1 << compiler->loop_shift,
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter3),
+ compiler->exec_reg);
+ orc_x86_emit_je (compiler, LABEL_STEP_DOWN (compiler->loop_shift));
+ orc_mmx_emit_loop (compiler, 0, 1 << compiler->loop_shift);
+ orc_x86_emit_label (compiler, LABEL_STEP_DOWN (compiler->loop_shift));
}
compiler->loop_shift = save_loop_shift;
@@ -967,7 +973,7 @@ orc_compiler_mmx_assemble (OrcCompiler *compiler)
mmx_add_strides (compiler);
orc_x86_emit_add_imm_memoffset (compiler, 4, -1,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,params[ORC_VAR_A2]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[ORC_VAR_A2]),
compiler->exec_reg);
orc_x86_emit_jne (compiler, LABEL_OUTER_LOOP);
orc_x86_emit_label (compiler, LABEL_OUTER_LOOP_SKIP);
@@ -991,7 +997,7 @@ orc_compiler_mmx_assemble (OrcCompiler *compiler)
}
void
-orc_mmx_emit_loop (OrcCompiler *compiler, int offset, int update)
+orc_mmx_emit_loop (OrcCompiler * compiler, int offset, int update)
{
int j;
int k;
@@ -999,15 +1005,16 @@ orc_mmx_emit_loop (OrcCompiler *compiler, int offset, int update)
OrcStaticOpcode *opcode;
OrcRule *rule;
- for(j=0;j<compiler->n_insns;j++){
+ for (j = 0; j < compiler->n_insns; j++) {
insn = compiler->insns + j;
opcode = insn->opcode;
compiler->insn_index = j;
- if (insn->flags & ORC_INSN_FLAG_INVARIANT) continue;
+ if (insn->flags & ORC_INSN_FLAG_INVARIANT)
+ continue;
- ORC_ASM_CODE(compiler,"# %d: %s\n", j, insn->opcode->name);
+ ORC_ASM_CODE (compiler, "# %d: %s\n", j, insn->opcode->name);
compiler->min_temp_reg = ORC_VEC_REG_BASE;
@@ -1021,8 +1028,9 @@ orc_mmx_emit_loop (OrcCompiler *compiler, int offset, int update)
rule = insn->rule;
if (rule && rule->emit) {
- if (!(insn->opcode->flags & (ORC_STATIC_OPCODE_ACCUMULATOR|ORC_STATIC_OPCODE_LOAD|ORC_STATIC_OPCODE_STORE)) &&
- compiler->vars[insn->dest_args[0]].alloc !=
+ if (!(insn->opcode->flags & (ORC_STATIC_OPCODE_ACCUMULATOR |
+ ORC_STATIC_OPCODE_LOAD | ORC_STATIC_OPCODE_STORE))
+ && compiler->vars[insn->dest_args[0]].alloc !=
compiler->vars[insn->src_args[0]].alloc) {
#ifdef MMX
orc_mmx_emit_movq (compiler,
@@ -1042,12 +1050,12 @@ orc_mmx_emit_loop (OrcCompiler *compiler, int offset, int update)
}
if (update) {
- for(k=0;k<ORC_N_COMPILER_VARIABLES;k++){
+ for (k = 0; k < ORC_N_COMPILER_VARIABLES; k++) {
OrcVariable *var = compiler->vars + k;
- if (var->name == NULL) continue;
- if (var->vartype == ORC_VAR_TYPE_SRC ||
- var->vartype == ORC_VAR_TYPE_DEST) {
+ if (var->name == NULL)
+ continue;
+ if (var->vartype == ORC_VAR_TYPE_SRC || var->vartype == ORC_VAR_TYPE_DEST) {
int offset;
if (var->update_type == 0) {
offset = 0;
@@ -1060,12 +1068,11 @@ orc_mmx_emit_loop (OrcCompiler *compiler, int offset, int update)
if (offset != 0) {
if (compiler->vars[k].ptr_register) {
orc_x86_emit_add_imm_reg (compiler, compiler->is_64bit ? 8 : 4,
- offset,
- compiler->vars[k].ptr_register, FALSE);
+ offset, compiler->vars[k].ptr_register, FALSE);
} else {
- orc_x86_emit_add_imm_memoffset (compiler, compiler->is_64bit ? 8 : 4,
- offset,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, arrays[k]),
+ orc_x86_emit_add_imm_memoffset (compiler,
+ compiler->is_64bit ? 8 : 4, offset,
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, arrays[k]),
compiler->exec_reg);
}
}
@@ -1075,20 +1082,21 @@ orc_mmx_emit_loop (OrcCompiler *compiler, int offset, int update)
}
void
-orc_mmx_emit_invariants (OrcCompiler *compiler)
+orc_mmx_emit_invariants (OrcCompiler * compiler)
{
int j;
OrcInstruction *insn;
OrcStaticOpcode *opcode;
OrcRule *rule;
- for(j=0;j<compiler->n_insns;j++){
+ for (j = 0; j < compiler->n_insns; j++) {
insn = compiler->insns + j;
opcode = insn->opcode;
- if (!(insn->flags & ORC_INSN_FLAG_INVARIANT)) continue;
+ if (!(insn->flags & ORC_INSN_FLAG_INVARIANT))
+ continue;
- ORC_ASM_CODE(compiler,"# %d: %s\n", j, insn->opcode->name);
+ ORC_ASM_CODE (compiler, "# %d: %s\n", j, insn->opcode->name);
compiler->insn_shift = compiler->loop_shift;
if (insn->flags & ORC_INSTRUCTION_FLAG_X2) {
@@ -1107,4 +1115,3 @@ orc_mmx_emit_invariants (OrcCompiler *compiler)
}
}
}
-
diff --git a/orc/orcprogram-neon.c b/orc/orcprogram-neon.c
index 5bea613..29e971a 100644
--- a/orc/orcprogram-neon.c
+++ b/orc/orcprogram-neon.c
@@ -16,41 +16,42 @@
#define SIZE 65536
-void orc_neon_emit_loop (OrcCompiler *compiler, int unroll_index);
+void orc_neon_emit_loop (OrcCompiler * compiler, int unroll_index);
-void orc_compiler_neon_register_rules (OrcTarget *target);
+void orc_compiler_neon_register_rules (OrcTarget * target);
unsigned int orc_compiler_neon_get_default_flags (void);
-void orc_compiler_neon_init (OrcCompiler *compiler);
-void orc_compiler_neon_assemble (OrcCompiler *compiler);
+void orc_compiler_neon_init (OrcCompiler * compiler);
+void orc_compiler_neon_assemble (OrcCompiler * compiler);
-void orc_compiler_rewrite_vars (OrcCompiler *compiler);
-void orc_compiler_dump (OrcCompiler *compiler);
-void orc_neon_save_accumulators (OrcCompiler *compiler);
-void neon_add_strides (OrcCompiler *compiler);
+void orc_compiler_rewrite_vars (OrcCompiler * compiler);
+void orc_compiler_dump (OrcCompiler * compiler);
+void orc_neon_save_accumulators (OrcCompiler * compiler);
+void neon_add_strides (OrcCompiler * compiler);
void
-orc_neon_emit_prologue (OrcCompiler *compiler)
+orc_neon_emit_prologue (OrcCompiler * compiler)
{
unsigned int regs = 0;
int i;
- orc_compiler_append_code(compiler,".global %s\n", compiler->program->name);
- orc_compiler_append_code(compiler,"%s:\n", compiler->program->name);
+ orc_compiler_append_code (compiler, ".global %s\n", compiler->program->name);
+ orc_compiler_append_code (compiler, "%s:\n", compiler->program->name);
- for(i=0;i<16;i++){
+ for (i = 0; i < 16; i++) {
if (compiler->used_regs[ORC_GP_REG_BASE + i] &&
compiler->save_regs[ORC_GP_REG_BASE + i]) {
- regs |= (1<<i);
+ regs |= (1 << i);
}
}
- if (regs) orc_arm_emit_push (compiler, regs);
+ if (regs)
+ orc_arm_emit_push (compiler, regs);
}
void
-orc_neon_dump_insns (OrcCompiler *compiler)
+orc_neon_dump_insns (OrcCompiler * compiler)
{
orc_arm_emit_label (compiler, 0);
@@ -69,18 +70,19 @@ orc_neon_dump_insns (OrcCompiler *compiler)
}
void
-orc_neon_emit_epilogue (OrcCompiler *compiler)
+orc_neon_emit_epilogue (OrcCompiler * compiler)
{
int i;
unsigned int regs = 0;
- for(i=0;i<16;i++){
+ for (i = 0; i < 16; i++) {
if (compiler->used_regs[ORC_GP_REG_BASE + i] &&
compiler->save_regs[ORC_GP_REG_BASE + i]) {
- regs |= (1<<i);
+ regs |= (1 << i);
}
}
- if (regs) orc_arm_emit_pop (compiler, regs);
+ if (regs)
+ orc_arm_emit_pop (compiler, regs);
orc_arm_emit_bx_lr (compiler);
//arm_dump_insns (compiler);
@@ -97,7 +99,7 @@ static OrcTarget neon_target = {
orc_compiler_neon_get_default_flags,
orc_compiler_neon_init,
orc_compiler_neon_assemble,
- { { 0 } }, 0,
+ {{0}}, 0,
NULL,
NULL,
NULL,
@@ -109,7 +111,7 @@ orc_neon_init (void)
{
#if defined(HAVE_ARM)
if (!(orc_arm_get_cpu_flags () & ORC_TARGET_NEON_NEON)) {
- ORC_INFO("marking neon backend non-executable");
+ ORC_INFO ("marking neon backend non-executable");
neon_target.executable = FALSE;
}
#endif
@@ -126,15 +128,15 @@ orc_compiler_neon_get_default_flags (void)
}
void
-orc_compiler_neon_init (OrcCompiler *compiler)
+orc_compiler_neon_init (OrcCompiler * compiler)
{
int i;
int loop_shift;
- for(i=ORC_GP_REG_BASE;i<ORC_GP_REG_BASE+16;i++){
+ for (i = ORC_GP_REG_BASE; i < ORC_GP_REG_BASE + 16; i++) {
compiler->valid_regs[i] = 1;
}
- for(i=ORC_VEC_REG_BASE+0;i<ORC_VEC_REG_BASE+32;i+=2){
+ for (i = ORC_VEC_REG_BASE + 0; i < ORC_VEC_REG_BASE + 32; i += 2) {
compiler->valid_regs[i] = 1;
}
//compiler->valid_regs[ORC_ARM_SB] = 0;
@@ -142,11 +144,11 @@ orc_compiler_neon_init (OrcCompiler *compiler)
compiler->valid_regs[ORC_ARM_SP] = 0;
compiler->valid_regs[ORC_ARM_LR] = 0;
compiler->valid_regs[ORC_ARM_PC] = 0;
- for(i=4;i<12;i++) {
- compiler->save_regs[ORC_GP_REG_BASE+i] = 1;
+ for (i = 4; i < 12; i++) {
+ compiler->save_regs[ORC_GP_REG_BASE + i] = 1;
}
-
- for(i=0;i<ORC_N_REGS;i++){
+
+ for (i = 0; i < ORC_N_REGS; i++) {
compiler->alloc_regs[i] = 0;
compiler->used_regs[i] = 0;
}
@@ -175,7 +177,7 @@ orc_compiler_neon_init (OrcCompiler *compiler)
compiler->loop_shift = 1;
break;
default:
- ORC_ERROR("unhandled max var size %d", compiler->max_var_size);
+ ORC_ERROR ("unhandled max var size %d", compiler->max_var_size);
break;
}
@@ -194,7 +196,7 @@ orc_compiler_neon_init (OrcCompiler *compiler)
loop_shift = 1;
break;
default:
- ORC_ERROR("unhandled max array size %d",
+ ORC_ERROR ("unhandled max array size %d",
orc_program_get_max_array_size (compiler->program));
break;
}
@@ -219,7 +221,7 @@ orc_compiler_neon_init (OrcCompiler *compiler)
loop_shift = 0;
break;
default:
- ORC_ERROR("unhandled max accumulator size %d",
+ ORC_ERROR ("unhandled max accumulator size %d",
orc_program_get_max_accumulator_size (compiler->program));
break;
}
@@ -240,11 +242,12 @@ orc_compiler_neon_init (OrcCompiler *compiler)
}
void
-orc_neon_load_constants_outer (OrcCompiler *compiler)
+orc_neon_load_constants_outer (OrcCompiler * compiler)
{
int i;
- for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
- if (compiler->vars[i].name == NULL) continue;
+ for (i = 0; i < ORC_N_COMPILER_VARIABLES; i++) {
+ if (compiler->vars[i].name == NULL)
+ continue;
switch (compiler->vars[i].vartype) {
case ORC_VAR_TYPE_CONST:
@@ -260,19 +263,20 @@ orc_neon_load_constants_outer (OrcCompiler *compiler)
case ORC_VAR_TYPE_TEMP:
break;
default:
- ORC_PROGRAM_ERROR(compiler,"bad vartype");
+ ORC_PROGRAM_ERROR (compiler, "bad vartype");
break;
}
}
- for(i=0;i<compiler->n_insns;i++){
+ for (i = 0; i < compiler->n_insns; i++) {
OrcInstruction *insn = compiler->insns + i;
OrcStaticOpcode *opcode = insn->opcode;
OrcRule *rule;
- if (!(insn->flags & ORC_INSN_FLAG_INVARIANT)) continue;
+ if (!(insn->flags & ORC_INSN_FLAG_INVARIANT))
+ continue;
- ORC_ASM_CODE(compiler,"# %d: %s\n", i, insn->opcode->name);
+ ORC_ASM_CODE (compiler, "# %d: %s\n", i, insn->opcode->name);
compiler->insn_shift = compiler->loop_shift;
if (insn->flags & ORC_INSTRUCTION_FLAG_X2) {
@@ -286,17 +290,18 @@ orc_neon_load_constants_outer (OrcCompiler *compiler)
if (rule && rule->emit) {
rule->emit (compiler, rule->emit_user, insn);
} else {
- ORC_COMPILER_ERROR(compiler,"No rule for: %s", opcode->name);
+ ORC_COMPILER_ERROR (compiler, "No rule for: %s", opcode->name);
}
}
}
void
-orc_neon_load_constants_inner (OrcCompiler *compiler)
+orc_neon_load_constants_inner (OrcCompiler * compiler)
{
int i;
- for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
- if (compiler->vars[i].name == NULL) continue;
+ for (i = 0; i < ORC_N_COMPILER_VARIABLES; i++) {
+ if (compiler->vars[i].name == NULL)
+ continue;
switch (compiler->vars[i].vartype) {
case ORC_VAR_TYPE_CONST:
@@ -305,16 +310,16 @@ orc_neon_load_constants_inner (OrcCompiler *compiler)
break;
case ORC_VAR_TYPE_SRC:
case ORC_VAR_TYPE_DEST:
- orc_arm_emit_load_reg (compiler,
+ orc_arm_emit_load_reg (compiler,
compiler->vars[i].ptr_register,
- compiler->exec_reg, ORC_STRUCT_OFFSET(OrcExecutor, arrays[i]));
+ compiler->exec_reg, ORC_STRUCT_OFFSET (OrcExecutor, arrays[i]));
break;
case ORC_VAR_TYPE_ACCUMULATOR:
break;
case ORC_VAR_TYPE_TEMP:
break;
default:
- ORC_PROGRAM_ERROR(compiler,"bad vartype");
+ ORC_PROGRAM_ERROR (compiler, "bad vartype");
break;
}
}
@@ -322,7 +327,8 @@ orc_neon_load_constants_inner (OrcCompiler *compiler)
#if 0
void
-orc_neon_emit_load_src (OrcCompiler *compiler, OrcVariable *var, int unroll_index)
+orc_neon_emit_load_src (OrcCompiler * compiler, OrcVariable * var,
+ int unroll_index)
{
int ptr_reg;
int update;
@@ -356,25 +362,25 @@ orc_neon_emit_load_src (OrcCompiler *compiler, OrcVariable *var, int unroll_inde
orc_neon_loadq (compiler, var->alloc, ptr_reg, update, var->is_aligned);
break;
default:
- ORC_ERROR("bad size");
+ ORC_ERROR ("bad size");
}
-
+
if (unroll_index == 0) {
- switch (compiler->size_region) {
- case 0:
- case 1:
- orc_neon_preload (compiler, var, FALSE, 208);
- break;
- case 2:
- case 3:
- orc_neon_preload (compiler, var, FALSE, 208);
- break;
- }
+ switch (compiler->size_region) {
+ case 0:
+ case 1:
+ orc_neon_preload (compiler, var, FALSE, 208);
+ break;
+ case 2:
+ case 3:
+ orc_neon_preload (compiler, var, FALSE, 208);
+ break;
+ }
}
}
void
-orc_neon_emit_store_dest (OrcCompiler *compiler, OrcVariable *var)
+orc_neon_emit_store_dest (OrcCompiler * compiler, OrcVariable * var)
{
int ptr_reg;
if (var->ptr_register == 0) {
@@ -398,7 +404,7 @@ orc_neon_emit_store_dest (OrcCompiler *compiler, OrcVariable *var)
orc_neon_storeq (compiler, ptr_reg, TRUE, var->alloc, var->is_aligned);
break;
default:
- ORC_ERROR("bad size");
+ ORC_ERROR ("bad size");
}
switch (compiler->size_region) {
@@ -434,23 +440,26 @@ get_shift (int size)
case 8:
return 3;
default:
- ORC_ERROR("bad size %d", size);
+ ORC_ERROR ("bad size %d", size);
}
return -1;
}
static int
-get_align_var (OrcCompiler *compiler)
+get_align_var (OrcCompiler * compiler)
{
- if (compiler->vars[ORC_VAR_D1].size) return ORC_VAR_D1;
- if (compiler->vars[ORC_VAR_S1].size) return ORC_VAR_S1;
+ if (compiler->vars[ORC_VAR_D1].size)
+ return ORC_VAR_D1;
+ if (compiler->vars[ORC_VAR_S1].size)
+ return ORC_VAR_S1;
- ORC_PROGRAM_ERROR(compiler, "could not find alignment variable");
+ ORC_PROGRAM_ERROR (compiler, "could not find alignment variable");
return -1;
}
-enum {
+enum
+{
LABEL_ONE_REGION = 1,
LABEL_ONE_REGION_AFTER,
LABEL_REGION0_LOOP,
@@ -471,15 +480,16 @@ enum {
};
void
-orc_compiler_neon_assemble (OrcCompiler *compiler)
+orc_compiler_neon_assemble (OrcCompiler * compiler)
{
int align_var;
int align_shift;
int var_size_shift;
int i;
-
+
align_var = get_align_var (compiler);
- if (compiler->error) return;
+ if (compiler->error)
+ return;
var_size_shift = get_shift (compiler->vars[align_var].size);
align_shift = 4;
@@ -492,40 +502,40 @@ orc_compiler_neon_assemble (OrcCompiler *compiler)
if (compiler->program->is_2d) {
if (compiler->program->constant_m > 0) {
- orc_arm_emit_load_imm (compiler, ORC_ARM_A3, compiler->program->constant_m);
+ orc_arm_emit_load_imm (compiler, ORC_ARM_A3,
+ compiler->program->constant_m);
orc_arm_emit_store_reg (compiler, ORC_ARM_A3, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,params[ORC_VAR_A2]));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[ORC_VAR_A2]));
} else {
orc_arm_emit_load_reg (compiler, ORC_ARM_A3, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[ORC_VAR_A1]));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[ORC_VAR_A1]));
orc_arm_emit_store_reg (compiler, ORC_ARM_A3, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,params[ORC_VAR_A2]));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[ORC_VAR_A2]));
}
orc_arm_emit_label (compiler, LABEL_OUTER_LOOP);
}
-
#define ORC_NEON_ALIGNED_DEST_CUTOFF 64
if (compiler->loop_shift > 0 && compiler->n_insns < 5) {
orc_arm_emit_load_reg (compiler, ORC_ARM_A3, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,n));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, n));
orc_arm_emit_cmp_imm (compiler, ORC_ARM_A3, ORC_NEON_ALIGNED_DEST_CUTOFF);
orc_arm_emit_branch (compiler, ORC_ARM_COND_GT, LABEL_REGION0_SKIP);
orc_arm_emit_asr_imm (compiler, ORC_ARM_A2, ORC_ARM_A3,
compiler->loop_shift);
orc_arm_emit_store_reg (compiler, ORC_ARM_A2, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter2));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter2));
orc_arm_emit_and_imm (compiler, ORC_ARM_A3, ORC_ARM_A3,
- (1<<compiler->loop_shift)-1);
+ (1 << compiler->loop_shift) - 1);
orc_arm_emit_store_reg (compiler, ORC_ARM_A3, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter3));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter3));
orc_neon_load_constants_inner (compiler);
orc_arm_emit_load_reg (compiler, ORC_ARM_IP, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter2));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter2));
orc_arm_emit_cmp_imm (compiler, ORC_ARM_IP, 0);
orc_arm_emit_branch (compiler, ORC_ARM_COND_EQ, LABEL_REGION2_SKIP);
@@ -534,7 +544,7 @@ orc_compiler_neon_assemble (OrcCompiler *compiler)
orc_arm_emit_sub_imm (compiler, ORC_ARM_IP, ORC_ARM_IP, 1, TRUE);
orc_neon_emit_loop (compiler, -1);
orc_arm_emit_branch (compiler, ORC_ARM_COND_NE, LABEL_REGION0_LOOP);
-
+
orc_arm_emit_branch (compiler, ORC_ARM_COND_AL, LABEL_REGION2_SKIP);
@@ -542,47 +552,47 @@ orc_compiler_neon_assemble (OrcCompiler *compiler)
}
if (compiler->loop_shift > 0) {
- orc_arm_emit_load_imm (compiler, ORC_ARM_IP, 1<<align_shift);
+ orc_arm_emit_load_imm (compiler, ORC_ARM_IP, 1 << align_shift);
orc_arm_emit_load_reg (compiler, ORC_ARM_A2, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,arrays[align_var]));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, arrays[align_var]));
orc_arm_emit_sub (compiler, ORC_ARM_IP, ORC_ARM_IP, ORC_ARM_A2);
orc_arm_emit_and_imm (compiler, ORC_ARM_IP, ORC_ARM_IP,
- (1<<align_shift)-1);
+ (1 << align_shift) - 1);
if (var_size_shift > 0) {
orc_arm_emit_asr_imm (compiler, ORC_ARM_IP, ORC_ARM_IP, var_size_shift);
}
orc_arm_emit_load_reg (compiler, ORC_ARM_A3, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,n));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, n));
orc_arm_emit_cmp (compiler, ORC_ARM_A3, ORC_ARM_IP);
orc_arm_emit_branch (compiler, ORC_ARM_COND_LE, LABEL_ONE_REGION);
orc_arm_emit_store_reg (compiler, ORC_ARM_IP, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter1));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter1));
orc_arm_emit_sub (compiler, ORC_ARM_A2, ORC_ARM_A3, ORC_ARM_IP);
orc_arm_emit_asr_imm (compiler, ORC_ARM_A3, ORC_ARM_A2,
compiler->loop_shift + compiler->unroll_shift);
orc_arm_emit_store_reg (compiler, ORC_ARM_A3, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter2));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter2));
orc_arm_emit_and_imm (compiler, ORC_ARM_A3, ORC_ARM_A2,
- (1<<(compiler->loop_shift + compiler->unroll_shift))-1);
+ (1 << (compiler->loop_shift + compiler->unroll_shift)) - 1);
orc_arm_emit_store_reg (compiler, ORC_ARM_A3, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter3));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter3));
orc_arm_emit_branch (compiler, ORC_ARM_COND_AL, LABEL_ONE_REGION_AFTER);
orc_arm_emit_label (compiler, LABEL_ONE_REGION);
orc_arm_emit_store_reg (compiler, ORC_ARM_A3, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter1));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter1));
orc_arm_emit_load_imm (compiler, ORC_ARM_A3, 0);
orc_arm_emit_store_reg (compiler, ORC_ARM_A3, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter2));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter2));
orc_arm_emit_store_reg (compiler, ORC_ARM_A3, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter3));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter3));
orc_arm_emit_label (compiler, LABEL_ONE_REGION_AFTER);
}
@@ -594,7 +604,7 @@ orc_compiler_neon_assemble (OrcCompiler *compiler)
compiler->loop_shift = 0;
orc_arm_emit_load_reg (compiler, ORC_ARM_IP, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter1));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter1));
orc_arm_emit_cmp_imm (compiler, ORC_ARM_IP, 0);
orc_arm_emit_branch (compiler, ORC_ARM_COND_EQ, LABEL_REGION1_SKIP);
@@ -611,10 +621,10 @@ orc_compiler_neon_assemble (OrcCompiler *compiler)
if (compiler->loop_shift > 0) {
orc_arm_emit_load_reg (compiler, ORC_ARM_IP, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter2));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter2));
} else {
orc_arm_emit_load_reg (compiler, ORC_ARM_IP, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,n));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, n));
}
orc_arm_emit_cmp_imm (compiler, ORC_ARM_IP, 0);
@@ -629,7 +639,7 @@ orc_compiler_neon_assemble (OrcCompiler *compiler)
compiler->size_region = 3;
orc_arm_emit_label (compiler, LABEL_REGION2_LOOP_LARGE);
orc_arm_emit_sub_imm (compiler, ORC_ARM_IP, ORC_ARM_IP, 1, TRUE);
- for(i=0;i<(1<<compiler->unroll_shift);i++){
+ for (i = 0; i < (1 << compiler->unroll_shift); i++) {
orc_neon_emit_loop (compiler, i);
}
orc_arm_emit_branch (compiler, ORC_ARM_COND_NE, LABEL_REGION2_LOOP_LARGE);
@@ -645,7 +655,7 @@ orc_compiler_neon_assemble (OrcCompiler *compiler)
compiler->size_region = 2;
orc_arm_emit_label (compiler, LABEL_REGION2_LOOP_MEDIUM);
orc_arm_emit_sub_imm (compiler, ORC_ARM_IP, ORC_ARM_IP, 1, TRUE);
- for(i=0;i<(1<<compiler->unroll_shift);i++){
+ for (i = 0; i < (1 << compiler->unroll_shift); i++) {
orc_neon_emit_loop (compiler, i);
}
orc_arm_emit_branch (compiler, ORC_ARM_COND_NE, LABEL_REGION2_LOOP_MEDIUM);
@@ -656,7 +666,7 @@ orc_compiler_neon_assemble (OrcCompiler *compiler)
compiler->size_region = 1;
orc_arm_emit_label (compiler, LABEL_REGION2_LOOP_SMALL);
orc_arm_emit_sub_imm (compiler, ORC_ARM_IP, ORC_ARM_IP, 1, TRUE);
- for(i=0;i<(1<<compiler->unroll_shift);i++){
+ for (i = 0; i < (1 << compiler->unroll_shift); i++) {
orc_neon_emit_loop (compiler, i);
}
orc_arm_emit_branch (compiler, ORC_ARM_COND_NE, LABEL_REGION2_LOOP_SMALL);
@@ -671,7 +681,7 @@ orc_compiler_neon_assemble (OrcCompiler *compiler)
compiler->vars[align_var].is_aligned = FALSE;
orc_arm_emit_load_reg (compiler, ORC_ARM_IP, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter3));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter3));
orc_arm_emit_cmp_imm (compiler, ORC_ARM_IP, 0);
orc_arm_emit_branch (compiler, ORC_ARM_COND_EQ, LABEL_REGION3_SKIP);
@@ -689,10 +699,10 @@ orc_compiler_neon_assemble (OrcCompiler *compiler)
neon_add_strides (compiler);
orc_arm_emit_load_reg (compiler, ORC_ARM_A3, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[ORC_VAR_A2]));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[ORC_VAR_A2]));
orc_arm_emit_sub_imm (compiler, ORC_ARM_A3, ORC_ARM_A3, 1, TRUE);
orc_arm_emit_store_reg (compiler, ORC_ARM_A3, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,params[ORC_VAR_A2]));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[ORC_VAR_A2]));
orc_arm_emit_branch (compiler, ORC_ARM_COND_NE, LABEL_OUTER_LOOP);
}
@@ -712,7 +722,7 @@ orc_compiler_neon_assemble (OrcCompiler *compiler)
}
void
-orc_neon_emit_loop (OrcCompiler *compiler, int unroll_index)
+orc_neon_emit_loop (OrcCompiler * compiler, int unroll_index)
{
int j;
int k;
@@ -720,30 +730,33 @@ orc_neon_emit_loop (OrcCompiler *compiler, int unroll_index)
OrcStaticOpcode *opcode;
OrcRule *rule;
- orc_compiler_append_code(compiler,"# LOOP shift %d\n", compiler->loop_shift);
- for(j=0;j<compiler->n_insns;j++){
+ orc_compiler_append_code (compiler, "# LOOP shift %d\n",
+ compiler->loop_shift);
+ for (j = 0; j < compiler->n_insns; j++) {
compiler->insn_index = j;
insn = compiler->insns + j;
opcode = insn->opcode;
- if (insn->flags & ORC_INSN_FLAG_INVARIANT) continue;
+ if (insn->flags & ORC_INSN_FLAG_INVARIANT)
+ continue;
- orc_compiler_append_code(compiler,"# %d: %s", j, insn->opcode->name);
+ orc_compiler_append_code (compiler, "# %d: %s", j, insn->opcode->name);
/* set up args */
#if 0
- for(k=0;k<opcode->n_src + opcode->n_dest;k++){
+ for (k = 0; k < opcode->n_src + opcode->n_dest; k++) {
args[k] = compiler->vars + insn->args[k];
- orc_compiler_append_code(compiler," %d", args[k]->alloc);
+ orc_compiler_append_code (compiler, " %d", args[k]->alloc);
if (args[k]->is_chained) {
- orc_compiler_append_code(compiler," (chained)");
+ orc_compiler_append_code (compiler, " (chained)");
}
}
#endif
- orc_compiler_append_code(compiler,"\n");
+ orc_compiler_append_code (compiler, "\n");
- for(k=0;k<ORC_STATIC_OPCODE_N_SRC;k++){
- if (opcode->src_size[k] == 0) continue;
+ for (k = 0; k < ORC_STATIC_OPCODE_N_SRC; k++) {
+ if (opcode->src_size[k] == 0)
+ continue;
switch (compiler->vars[insn->src_args[k]].vartype) {
case ORC_VAR_TYPE_SRC:
@@ -780,11 +793,12 @@ orc_neon_emit_loop (OrcCompiler *compiler, int unroll_index)
#endif
rule->emit (compiler, rule->emit_user, insn);
} else {
- orc_compiler_append_code(compiler,"No rule for: %s\n", opcode->name);
+ orc_compiler_append_code (compiler, "No rule for: %s\n", opcode->name);
}
- for(k=0;k<ORC_STATIC_OPCODE_N_DEST;k++){
- if (opcode->dest_size[k] == 0) continue;
+ for (k = 0; k < ORC_STATIC_OPCODE_N_DEST; k++) {
+ if (opcode->dest_size[k] == 0)
+ continue;
switch (compiler->vars[insn->dest_args[k]].vartype) {
case ORC_VAR_TYPE_DEST:
@@ -798,8 +812,9 @@ orc_neon_emit_loop (OrcCompiler *compiler, int unroll_index)
}
}
- for(k=0;k<ORC_N_COMPILER_VARIABLES;k++){
- if (compiler->vars[k].name == NULL) continue;
+ for (k = 0; k < ORC_N_COMPILER_VARIABLES; k++) {
+ if (compiler->vars[k].name == NULL)
+ continue;
if (compiler->vars[k].vartype == ORC_VAR_TYPE_SRC ||
compiler->vars[k].vartype == ORC_VAR_TYPE_DEST) {
if (compiler->vars[k].ptr_register) {
@@ -827,76 +842,74 @@ orc_neon_emit_loop (OrcCompiler *compiler, int unroll_index)
((((c)>>4)&0x1)<<5))
void
-orc_neon_save_accumulators (OrcCompiler *compiler)
+orc_neon_save_accumulators (OrcCompiler * compiler)
{
int i;
int src;
unsigned int code;
- for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
+ for (i = 0; i < ORC_N_COMPILER_VARIABLES; i++) {
OrcVariable *var = compiler->vars + i;
- if (compiler->vars[i].name == NULL) continue;
+ if (compiler->vars[i].name == NULL)
+ continue;
switch (compiler->vars[i].vartype) {
case ORC_VAR_TYPE_ACCUMULATOR:
src = compiler->vars[i].alloc;
orc_arm_emit_load_imm (compiler, compiler->gp_tmpreg,
- ORC_STRUCT_OFFSET(OrcExecutor, accumulators[i-ORC_VAR_A1]));
+ ORC_STRUCT_OFFSET (OrcExecutor, accumulators[i - ORC_VAR_A1]));
orc_arm_emit_add (compiler, compiler->gp_tmpreg,
compiler->gp_tmpreg, compiler->exec_reg);
switch (var->size) {
case 2:
if (compiler->loop_shift > 0) {
- ORC_ASM_CODE(compiler," vpaddl.u16 %s, %s\n",
- orc_neon_reg_name (src),
- orc_neon_reg_name (src));
+ ORC_ASM_CODE (compiler, " vpaddl.u16 %s, %s\n",
+ orc_neon_reg_name (src), orc_neon_reg_name (src));
code = 0xf3b40280;
- code |= (src&0xf) << 12;
- code |= ((src>>4)&0x1) << 22;
- code |= (src&0xf) << 0;
+ code |= (src & 0xf) << 12;
+ code |= ((src >> 4) & 0x1) << 22;
+ code |= (src & 0xf) << 0;
orc_arm_emit (compiler, code);
- ORC_ASM_CODE(compiler," vpaddl.u32 %s, %s\n",
- orc_neon_reg_name (src),
- orc_neon_reg_name (src));
+ ORC_ASM_CODE (compiler, " vpaddl.u32 %s, %s\n",
+ orc_neon_reg_name (src), orc_neon_reg_name (src));
code = 0xf3b80280;
- code |= (src&0xf) << 12;
- code |= ((src>>4)&0x1) << 22;
- code |= (src&0xf) << 0;
+ code |= (src & 0xf) << 12;
+ code |= ((src >> 4) & 0x1) << 22;
+ code |= (src & 0xf) << 0;
orc_arm_emit (compiler, code);
}
- ORC_ASM_CODE(compiler," vst1.16 %s[%d], [%s]\n",
+ ORC_ASM_CODE (compiler, " vst1.16 %s[%d], [%s]\n",
orc_neon_reg_name (src), 0,
orc_arm_reg_name (compiler->gp_tmpreg));
code = 0xf480040f;
- code |= (compiler->gp_tmpreg&0xf) << 16;
- code |= (src&0xf) << 12;
- code |= ((src>>4)&0x1) << 22;
+ code |= (compiler->gp_tmpreg & 0xf) << 16;
+ code |= (src & 0xf) << 12;
+ code |= ((src >> 4) & 0x1) << 22;
orc_arm_emit (compiler, code);
break;
case 4:
if (compiler->loop_shift > 0) {
- ORC_ASM_CODE(compiler," vpadd.u32 %s, %s, %s\n",
+ ORC_ASM_CODE (compiler, " vpadd.u32 %s, %s, %s\n",
orc_neon_reg_name (src),
- orc_neon_reg_name (src),
- orc_neon_reg_name (src));
- code = NEON_BINARY(0xf2200b10, src, src, src);
+ orc_neon_reg_name (src), orc_neon_reg_name (src));
+ code = NEON_BINARY (0xf2200b10, src, src, src);
orc_arm_emit (compiler, code);
}
- ORC_ASM_CODE(compiler," vst1.32 %s[%d], [%s]\n",
+ ORC_ASM_CODE (compiler, " vst1.32 %s[%d], [%s]\n",
orc_neon_reg_name (src), 0,
orc_arm_reg_name (compiler->gp_tmpreg));
code = 0xf480080f;
- code |= (compiler->gp_tmpreg&0xf) << 16;
- code |= (src&0xf) << 12;
- code |= ((src>>4)&0x1) << 22;
+ code |= (compiler->gp_tmpreg & 0xf) << 16;
+ code |= (src & 0xf) << 12;
+ code |= ((src >> 4) & 0x1) << 22;
orc_arm_emit (compiler, code);
break;
default:
- ORC_ERROR("bad size");
+ ORC_ERROR ("bad size");
}
break;
@@ -907,12 +920,13 @@ orc_neon_save_accumulators (OrcCompiler *compiler)
}
void
-neon_add_strides (OrcCompiler *compiler)
+neon_add_strides (OrcCompiler * compiler)
{
int i;
- for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
- if (compiler->vars[i].name == NULL) continue;
+ for (i = 0; i < ORC_N_COMPILER_VARIABLES; i++) {
+ if (compiler->vars[i].name == NULL)
+ continue;
switch (compiler->vars[i].vartype) {
case ORC_VAR_TYPE_CONST:
break;
@@ -921,21 +935,20 @@ neon_add_strides (OrcCompiler *compiler)
case ORC_VAR_TYPE_SRC:
case ORC_VAR_TYPE_DEST:
orc_arm_emit_load_reg (compiler, ORC_ARM_A3, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, arrays[i]));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, arrays[i]));
orc_arm_emit_load_reg (compiler, ORC_ARM_A2, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[i]));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[i]));
orc_arm_emit_add (compiler, ORC_ARM_A3, ORC_ARM_A3, ORC_ARM_A2);
orc_arm_emit_store_reg (compiler, ORC_ARM_A3, compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, arrays[i]));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, arrays[i]));
break;
case ORC_VAR_TYPE_ACCUMULATOR:
break;
case ORC_VAR_TYPE_TEMP:
break;
default:
- ORC_COMPILER_ERROR(compiler,"bad vartype");
+ ORC_COMPILER_ERROR (compiler, "bad vartype");
break;
}
}
}
-
diff --git a/orc/orcprogram-sse.c b/orc/orcprogram-sse.c
index 2ed9062..4616524 100644
--- a/orc/orcprogram-sse.c
+++ b/orc/orcprogram-sse.c
@@ -18,21 +18,21 @@
#define ORC_SSE_ALIGNED_DEST_CUTOFF 64
-void orc_sse_emit_loop (OrcCompiler *compiler, int offset, int update);
+void orc_sse_emit_loop (OrcCompiler * compiler, int offset, int update);
-void orc_compiler_sse_init (OrcCompiler *compiler);
+void orc_compiler_sse_init (OrcCompiler * compiler);
unsigned int orc_compiler_sse_get_default_flags (void);
-void orc_compiler_sse_assemble (OrcCompiler *compiler);
-void orc_compiler_sse_register_rules (OrcTarget *target);
-void orc_sse_emit_invariants (OrcCompiler *compiler);
+void orc_compiler_sse_assemble (OrcCompiler * compiler);
+void orc_compiler_sse_register_rules (OrcTarget * target);
+void orc_sse_emit_invariants (OrcCompiler * compiler);
-void orc_compiler_rewrite_vars (OrcCompiler *compiler);
-void orc_compiler_dump (OrcCompiler *compiler);
-void sse_load_constant (OrcCompiler *compiler, int reg, int size, int value);
-void sse_load_constant_long (OrcCompiler *compiler, int reg,
- OrcConstant *constant);
-static const char * sse_get_flag_name (int shift);
+void orc_compiler_rewrite_vars (OrcCompiler * compiler);
+void orc_compiler_dump (OrcCompiler * compiler);
+void sse_load_constant (OrcCompiler * compiler, int reg, int size, int value);
+void sse_load_constant_long (OrcCompiler * compiler, int reg,
+ OrcConstant * constant);
+static const char *sse_get_flag_name (int shift);
static OrcTarget sse_target = {
"sse",
@@ -45,7 +45,7 @@ static OrcTarget sse_target = {
orc_compiler_sse_get_default_flags,
orc_compiler_sse_init,
orc_compiler_sse_assemble,
- { { 0 } },
+ {{0}},
0,
NULL,
sse_load_constant,
@@ -94,7 +94,6 @@ orc_compiler_sse_get_default_flags (void)
if (_orc_compiler_flag_debug) {
flags |= ORC_TARGET_SSE_FRAME_POINTER;
}
-
#if defined(HAVE_AMD64) || defined(HAVE_I386)
#ifndef MMX
flags |= orc_x86_sse_flags;
@@ -128,7 +127,7 @@ sse_get_flag_name (int shift)
#endif
};
- if (shift >= 0 && shift < sizeof(flags)/sizeof(flags[0])) {
+ if (shift >= 0 && shift < sizeof (flags) / sizeof (flags[0])) {
return flags[shift];
}
@@ -136,7 +135,7 @@ sse_get_flag_name (int shift)
}
void
-orc_compiler_sse_init (OrcCompiler *compiler)
+orc_compiler_sse_init (OrcCompiler * compiler)
{
int i;
@@ -149,19 +148,19 @@ orc_compiler_sse_init (OrcCompiler *compiler)
if (!(compiler->target_flags & ORC_TARGET_SSE_SHORT_JUMPS)) {
compiler->long_jumps = TRUE;
}
-
+
if (compiler->is_64bit) {
- for(i=ORC_GP_REG_BASE;i<ORC_GP_REG_BASE+16;i++){
+ for (i = ORC_GP_REG_BASE; i < ORC_GP_REG_BASE + 16; i++) {
compiler->valid_regs[i] = 1;
}
compiler->valid_regs[X86_ESP] = 0;
#ifndef MMX
- for(i=X86_XMM0;i<X86_XMM0+16;i++){
+ for (i = X86_XMM0; i < X86_XMM0 + 16; i++) {
compiler->valid_regs[i] = 1;
}
#else
- for(i=X86_XMM0;i<X86_XMM0+8;i++){
+ for (i = X86_XMM0; i < X86_XMM0 + 8; i++) {
compiler->valid_regs[i] = 1;
}
#endif
@@ -174,26 +173,26 @@ orc_compiler_sse_init (OrcCompiler *compiler)
#ifdef HAVE_OS_WIN32
compiler->save_regs[X86_EDI] = 1;
compiler->save_regs[X86_ESI] = 1;
- for(i=X86_XMM0+6;i<X86_XMM0+16;i++){
+ for (i = X86_XMM0 + 6; i < X86_XMM0 + 16; i++) {
compiler->save_regs[i] = 1;
}
#endif
} else {
- for(i=ORC_GP_REG_BASE;i<ORC_GP_REG_BASE+8;i++){
+ for (i = ORC_GP_REG_BASE; i < ORC_GP_REG_BASE + 8; i++) {
compiler->valid_regs[i] = 1;
}
compiler->valid_regs[X86_ESP] = 0;
if (compiler->use_frame_pointer) {
compiler->valid_regs[X86_EBP] = 0;
}
- for(i=X86_XMM0;i<X86_XMM0+8;i++){
+ for (i = X86_XMM0; i < X86_XMM0 + 8; i++) {
compiler->valid_regs[i] = 1;
}
compiler->save_regs[X86_EBX] = 1;
compiler->save_regs[X86_EDI] = 1;
compiler->save_regs[X86_EBP] = 1;
}
- for(i=0;i<128;i++){
+ for (i = 0; i < 128; i++) {
compiler->alloc_regs[i] = 0;
compiler->used_regs[i] = 0;
}
@@ -231,7 +230,7 @@ orc_compiler_sse_init (OrcCompiler *compiler)
compiler->loop_shift = 1;
break;
default:
- ORC_ERROR("unhandled max var size %d", compiler->max_var_size);
+ ORC_ERROR ("unhandled max var size %d", compiler->max_var_size);
break;
}
#ifdef MMX
@@ -255,7 +254,7 @@ orc_compiler_sse_init (OrcCompiler *compiler)
compiler->allow_gp_on_stack = TRUE;
{
- for(i=0;i<compiler->n_insns;i++){
+ for (i = 0; i < compiler->n_insns; i++) {
OrcInstruction *insn = compiler->insns + i;
OrcStaticOpcode *opcode = insn->opcode;
@@ -270,25 +269,26 @@ orc_compiler_sse_init (OrcCompiler *compiler)
}
void
-sse_save_accumulators (OrcCompiler *compiler)
+sse_save_accumulators (OrcCompiler * compiler)
{
int i;
int src;
int tmp;
- for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
+ for (i = 0; i < ORC_N_COMPILER_VARIABLES; i++) {
OrcVariable *var = compiler->vars + i;
- if (compiler->vars[i].name == NULL) continue;
+ if (compiler->vars[i].name == NULL)
+ continue;
switch (compiler->vars[i].vartype) {
case ORC_VAR_TYPE_ACCUMULATOR:
src = compiler->vars[i].alloc;
tmp = orc_compiler_get_temp_reg (compiler);
#ifndef MMX
- orc_sse_emit_pshufd (compiler, ORC_SSE_SHUF(3,2,3,2), src, tmp);
+ orc_sse_emit_pshufd (compiler, ORC_SSE_SHUF (3, 2, 3, 2), src, tmp);
#else
- orc_mmx_emit_pshufw (compiler, ORC_MMX_SHUF(3,2,3,2), src, tmp);
+ orc_mmx_emit_pshufw (compiler, ORC_MMX_SHUF (3, 2, 3, 2), src, tmp);
#endif
if (compiler->vars[i].size == 2) {
@@ -298,7 +298,7 @@ sse_save_accumulators (OrcCompiler *compiler)
}
#ifndef MMX
- orc_sse_emit_pshufd (compiler, ORC_SSE_SHUF(1,1,1,1), src, tmp);
+ orc_sse_emit_pshufd (compiler, ORC_SSE_SHUF (1, 1, 1, 1), src, tmp);
if (compiler->vars[i].size == 2) {
orc_sse_emit_paddw (compiler, tmp, src);
@@ -309,9 +309,9 @@ sse_save_accumulators (OrcCompiler *compiler)
if (compiler->vars[i].size == 2) {
#ifndef MMX
- orc_sse_emit_pshuflw (compiler, ORC_SSE_SHUF(1,1,1,1), src, tmp);
+ orc_sse_emit_pshuflw (compiler, ORC_SSE_SHUF (1, 1, 1, 1), src, tmp);
#else
- orc_mmx_emit_pshufw (compiler, ORC_MMX_SHUF(1,1,1,1), src, tmp);
+ orc_mmx_emit_pshufw (compiler, ORC_MMX_SHUF (1, 1, 1, 1), src, tmp);
#endif
orc_sse_emit_paddw (compiler, tmp, src);
@@ -321,12 +321,12 @@ sse_save_accumulators (OrcCompiler *compiler)
orc_sse_emit_movd_store_register (compiler, src, compiler->gp_tmpreg);
orc_x86_emit_and_imm_reg (compiler, 4, 0xffff, compiler->gp_tmpreg);
orc_x86_emit_mov_reg_memoffset (compiler, 4, compiler->gp_tmpreg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, accumulators[i-ORC_VAR_A1]),
- compiler->exec_reg);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor,
+ accumulators[i - ORC_VAR_A1]), compiler->exec_reg);
} else {
orc_x86_emit_mov_sse_memoffset (compiler, 4, src,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, accumulators[i-ORC_VAR_A1]),
- compiler->exec_reg,
+ (int) ORC_STRUCT_OFFSET (OrcExecutor,
+ accumulators[i - ORC_VAR_A1]), compiler->exec_reg,
var->is_aligned, var->is_uncached);
}
@@ -338,34 +338,33 @@ sse_save_accumulators (OrcCompiler *compiler)
}
void
-sse_load_constant (OrcCompiler *compiler, int reg, int size, int value)
+sse_load_constant (OrcCompiler * compiler, int reg, int size, int value)
{
orc_sse_load_constant (compiler, reg, size, value);
}
void
-orc_sse_load_constant (OrcCompiler *compiler, int reg, int size, orc_uint64 value)
+orc_sse_load_constant (OrcCompiler * compiler, int reg, int size,
+ orc_uint64 value)
{
int i;
if (size == 8) {
- int offset = ORC_STRUCT_OFFSET(OrcExecutor,arrays[ORC_VAR_T1]);
+ int offset = ORC_STRUCT_OFFSET (OrcExecutor, arrays[ORC_VAR_T1]);
/* FIXME how ugly and slow! */
- orc_x86_emit_mov_imm_reg (compiler, 4, value>>0,
- compiler->gp_tmpreg);
+ orc_x86_emit_mov_imm_reg (compiler, 4, value >> 0, compiler->gp_tmpreg);
orc_x86_emit_mov_reg_memoffset (compiler, 4, compiler->gp_tmpreg,
offset + 0, compiler->exec_reg);
- orc_x86_emit_mov_imm_reg (compiler, 4, value>>32,
- compiler->gp_tmpreg);
+ orc_x86_emit_mov_imm_reg (compiler, 4, value >> 32, compiler->gp_tmpreg);
orc_x86_emit_mov_reg_memoffset (compiler, 4, compiler->gp_tmpreg,
offset + 4, compiler->exec_reg);
orc_x86_emit_mov_memoffset_sse (compiler, 8, offset, compiler->exec_reg,
reg, FALSE);
#ifndef MMX
- orc_sse_emit_pshufd (compiler, ORC_SSE_SHUF(1,0,1,0), reg, reg);
+ orc_sse_emit_pshufd (compiler, ORC_SSE_SHUF (1, 0, 1, 0), reg, reg);
#endif
return;
}
@@ -380,9 +379,10 @@ orc_sse_load_constant (OrcCompiler *compiler, int reg, int size, orc_uint64 valu
value |= (value << 16);
}
- ORC_ASM_CODE(compiler, "# loading constant %d 0x%08x\n", (int)value, (int)value);
+ ORC_ASM_CODE (compiler, "# loading constant %d 0x%08x\n", (int) value,
+ (int) value);
if (value == 0) {
- orc_sse_emit_pxor(compiler, reg, reg);
+ orc_sse_emit_pxor (compiler, reg, reg);
return;
}
if (value == 0xffffffff) {
@@ -397,30 +397,30 @@ orc_sse_load_constant (OrcCompiler *compiler, int reg, int size, orc_uint64 valu
}
}
- for(i=1;i<32;i++){
+ for (i = 1; i < 32; i++) {
orc_uint32 v;
- v = (0xffffffff<<i);
+ v = (0xffffffff << i);
if (value == v) {
orc_sse_emit_pcmpeqb (compiler, reg, reg);
orc_sse_emit_pslld_imm (compiler, i, reg);
return;
}
- v = (0xffffffff>>i);
+ v = (0xffffffff >> i);
if (value == v) {
orc_sse_emit_pcmpeqb (compiler, reg, reg);
orc_sse_emit_psrld_imm (compiler, i, reg);
return;
}
}
- for(i=1;i<16;i++){
+ for (i = 1; i < 16; i++) {
orc_uint32 v;
- v = (0xffff & (0xffff<<i)) | (0xffff0000 & (0xffff0000<<i));
+ v = (0xffff & (0xffff << i)) | (0xffff0000 & (0xffff0000 << i));
if (value == v) {
orc_sse_emit_pcmpeqb (compiler, reg, reg);
orc_sse_emit_psllw_imm (compiler, i, reg);
return;
}
- v = (0xffff & (0xffff>>i)) | (0xffff0000 & (0xffff0000>>i));
+ v = (0xffff & (0xffff >> i)) | (0xffff0000 & (0xffff0000 >> i));
if (value == v) {
orc_sse_emit_pcmpeqb (compiler, reg, reg);
orc_sse_emit_psrlw_imm (compiler, i, reg);
@@ -431,30 +431,29 @@ orc_sse_load_constant (OrcCompiler *compiler, int reg, int size, orc_uint64 valu
orc_x86_emit_mov_imm_reg (compiler, 4, value, compiler->gp_tmpreg);
orc_sse_emit_movd_load_register (compiler, compiler->gp_tmpreg, reg);
#ifndef MMX
- orc_sse_emit_pshufd (compiler, ORC_SSE_SHUF(0,0,0,0), reg, reg);
+ orc_sse_emit_pshufd (compiler, ORC_SSE_SHUF (0, 0, 0, 0), reg, reg);
#else
- orc_mmx_emit_pshufw (compiler, ORC_MMX_SHUF(1,0,1,0), reg, reg);
+ orc_mmx_emit_pshufw (compiler, ORC_MMX_SHUF (1, 0, 1, 0), reg, reg);
#endif
}
void
-sse_load_constant_long (OrcCompiler *compiler, int reg,
- OrcConstant *constant)
+sse_load_constant_long (OrcCompiler * compiler, int reg, OrcConstant * constant)
{
int i;
- int offset = ORC_STRUCT_OFFSET(OrcExecutor,arrays[ORC_VAR_T1]);
+ int offset = ORC_STRUCT_OFFSET (OrcExecutor, arrays[ORC_VAR_T1]);
/* FIXME this is slower than it could be */
- ORC_ASM_CODE(compiler, "# loading constant %08x %08x %08x %08x\n",
+ ORC_ASM_CODE (compiler, "# loading constant %08x %08x %08x %08x\n",
constant->full_value[0], constant->full_value[1],
constant->full_value[2], constant->full_value[3]);
- for(i=0;i<4;i++){
+ for (i = 0; i < 4; i++) {
orc_x86_emit_mov_imm_reg (compiler, 4, constant->full_value[i],
compiler->gp_tmpreg);
orc_x86_emit_mov_reg_memoffset (compiler, 4, compiler->gp_tmpreg,
- offset + 4*i, compiler->exec_reg);
+ offset + 4 * i, compiler->exec_reg);
}
orc_x86_emit_mov_memoffset_sse (compiler, 16, offset, compiler->exec_reg,
reg, FALSE);
@@ -462,11 +461,12 @@ sse_load_constant_long (OrcCompiler *compiler, int reg,
}
void
-sse_load_constants_outer (OrcCompiler *compiler)
+sse_load_constants_outer (OrcCompiler * compiler)
{
int i;
- for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
- if (compiler->vars[i].name == NULL) continue;
+ for (i = 0; i < ORC_N_COMPILER_VARIABLES; i++) {
+ if (compiler->vars[i].name == NULL)
+ continue;
switch (compiler->vars[i].vartype) {
case ORC_VAR_TYPE_CONST:
break;
@@ -482,7 +482,7 @@ sse_load_constants_outer (OrcCompiler *compiler)
case ORC_VAR_TYPE_TEMP:
break;
default:
- orc_compiler_error(compiler,"bad vartype");
+ orc_compiler_error (compiler, "bad vartype");
break;
}
}
@@ -490,12 +490,11 @@ sse_load_constants_outer (OrcCompiler *compiler)
orc_sse_emit_invariants (compiler);
/* FIXME move to a better place */
- for(i=0;i<compiler->n_constants;i++){
- compiler->constants[i].alloc_reg =
- orc_compiler_get_constant_reg (compiler);
+ for (i = 0; i < compiler->n_constants; i++) {
+ compiler->constants[i].alloc_reg = orc_compiler_get_constant_reg (compiler);
}
- for(i=0;i<compiler->n_constants;i++){
+ for (i = 0; i < compiler->n_constants; i++) {
if (compiler->constants[i].alloc_reg) {
if (compiler->constants[i].is_long) {
sse_load_constant_long (compiler, compiler->constants[i].alloc_reg,
@@ -508,7 +507,7 @@ sse_load_constants_outer (OrcCompiler *compiler)
}
{
- for(i=0;i<compiler->n_insns;i++){
+ for (i = 0; i < compiler->n_insns; i++) {
OrcInstruction *insn = compiler->insns + i;
OrcStaticOpcode *opcode = insn->opcode;
@@ -518,9 +517,8 @@ sse_load_constants_outer (OrcCompiler *compiler)
strcmp (opcode->name, "ldresnearl") == 0) {
if (compiler->vars[insn->src_args[1]].vartype == ORC_VAR_TYPE_PARAM) {
orc_x86_emit_mov_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[insn->src_args[1]]),
- compiler->exec_reg,
- compiler->vars[insn->src_args[0]].ptr_offset);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[insn->src_args[1]]),
+ compiler->exec_reg, compiler->vars[insn->src_args[0]].ptr_offset);
} else {
orc_x86_emit_mov_imm_reg (compiler, 4,
compiler->vars[insn->src_args[1]].value.i,
@@ -532,11 +530,12 @@ sse_load_constants_outer (OrcCompiler *compiler)
}
void
-sse_load_constants_inner (OrcCompiler *compiler)
+sse_load_constants_inner (OrcCompiler * compiler)
{
int i;
- for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
- if (compiler->vars[i].name == NULL) continue;
+ for (i = 0; i < ORC_N_COMPILER_VARIABLES; i++) {
+ if (compiler->vars[i].name == NULL)
+ continue;
switch (compiler->vars[i].vartype) {
case ORC_VAR_TYPE_CONST:
break;
@@ -546,8 +545,8 @@ sse_load_constants_inner (OrcCompiler *compiler)
case ORC_VAR_TYPE_DEST:
if (compiler->vars[i].ptr_register) {
orc_x86_emit_mov_memoffset_reg (compiler, compiler->is_64bit ? 8 : 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, arrays[i]), compiler->exec_reg,
- compiler->vars[i].ptr_register);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, arrays[i]),
+ compiler->exec_reg, compiler->vars[i].ptr_register);
}
break;
case ORC_VAR_TYPE_ACCUMULATOR:
@@ -555,19 +554,20 @@ sse_load_constants_inner (OrcCompiler *compiler)
case ORC_VAR_TYPE_TEMP:
break;
default:
- orc_compiler_error(compiler,"bad vartype");
+ orc_compiler_error (compiler, "bad vartype");
break;
}
}
}
void
-sse_add_strides (OrcCompiler *compiler)
+sse_add_strides (OrcCompiler * compiler)
{
int i;
- for(i=0;i<ORC_N_COMPILER_VARIABLES;i++){
- if (compiler->vars[i].name == NULL) continue;
+ for (i = 0; i < ORC_N_COMPILER_VARIABLES; i++) {
+ if (compiler->vars[i].name == NULL)
+ continue;
switch (compiler->vars[i].vartype) {
case ORC_VAR_TYPE_CONST:
break;
@@ -576,14 +576,15 @@ sse_add_strides (OrcCompiler *compiler)
case ORC_VAR_TYPE_SRC:
case ORC_VAR_TYPE_DEST:
orc_x86_emit_mov_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[i]), compiler->exec_reg,
- compiler->gp_tmpreg);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[i]),
+ compiler->exec_reg, compiler->gp_tmpreg);
orc_x86_emit_add_reg_memoffset (compiler, compiler->is_64bit ? 8 : 4,
- compiler->gp_tmpreg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, arrays[i]), compiler->exec_reg);
+ compiler->gp_tmpreg, (int) ORC_STRUCT_OFFSET (OrcExecutor,
+ arrays[i]), compiler->exec_reg);
if (compiler->vars[i].ptr_register == 0) {
- orc_compiler_error (compiler, "unimplemented: stride on pointer stored in memory");
+ orc_compiler_error (compiler,
+ "unimplemented: stride on pointer stored in memory");
}
break;
case ORC_VAR_TYPE_ACCUMULATOR:
@@ -591,34 +592,37 @@ sse_add_strides (OrcCompiler *compiler)
case ORC_VAR_TYPE_TEMP:
break;
default:
- orc_compiler_error(compiler,"bad vartype");
+ orc_compiler_error (compiler, "bad vartype");
break;
}
}
}
static int
-get_align_var (OrcCompiler *compiler)
+get_align_var (OrcCompiler * compiler)
{
int i;
- for(i=ORC_VAR_D1;i<=ORC_VAR_S8;i++){
- if (compiler->vars[i].size == 0) continue;
+ for (i = ORC_VAR_D1; i <= ORC_VAR_S8; i++) {
+ if (compiler->vars[i].size == 0)
+ continue;
if ((compiler->vars[i].size << compiler->loop_shift) >= 16) {
return i;
}
}
- for(i=ORC_VAR_D1;i<=ORC_VAR_S8;i++){
- if (compiler->vars[i].size == 0) continue;
+ for (i = ORC_VAR_D1; i <= ORC_VAR_S8; i++) {
+ if (compiler->vars[i].size == 0)
+ continue;
if ((compiler->vars[i].size << compiler->loop_shift) >= 8) {
return i;
}
}
- for(i=ORC_VAR_D1;i<=ORC_VAR_S8;i++){
- if (compiler->vars[i].size == 0) continue;
+ for (i = ORC_VAR_D1; i <= ORC_VAR_S8; i++) {
+ if (compiler->vars[i].size == 0)
+ continue;
return i;
}
- orc_compiler_error(compiler, "could not find alignment variable");
+ orc_compiler_error (compiler, "could not find alignment variable");
return -1;
}
@@ -636,14 +640,14 @@ get_shift (int size)
case 8:
return 3;
default:
- ORC_ERROR("bad size %d", size);
+ ORC_ERROR ("bad size %d", size);
}
return -1;
}
static void
-orc_emit_split_3_regions (OrcCompiler *compiler)
+orc_emit_split_3_regions (OrcCompiler * compiler)
{
int align_var;
int align_shift;
@@ -656,40 +660,39 @@ orc_emit_split_3_regions (OrcCompiler *compiler)
/* determine how many iterations until align array is aligned (n1) */
orc_x86_emit_mov_imm_reg (compiler, 4, 16, X86_EAX);
orc_x86_emit_sub_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, arrays[align_var]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, arrays[align_var]),
compiler->exec_reg, X86_EAX);
- orc_x86_emit_and_imm_reg (compiler, 4, (1<<align_shift) - 1, X86_EAX);
+ orc_x86_emit_and_imm_reg (compiler, 4, (1 << align_shift) - 1, X86_EAX);
orc_x86_emit_sar_imm_reg (compiler, 4, var_size_shift, X86_EAX);
/* check if n1 is greater than n. */
orc_x86_emit_cmp_reg_memoffset (compiler, 4, X86_EAX,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,n), compiler->exec_reg);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, n), compiler->exec_reg);
orc_x86_emit_jle (compiler, 6);
/* If so, we have a standard 3-region split. */
orc_x86_emit_mov_reg_memoffset (compiler, 4, X86_EAX,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter1), compiler->exec_reg);
-
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter1), compiler->exec_reg);
+
/* Calculate n2 */
orc_x86_emit_mov_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,n), compiler->exec_reg,
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, n), compiler->exec_reg,
compiler->gp_tmpreg);
orc_x86_emit_sub_reg_reg (compiler, 4, X86_EAX, compiler->gp_tmpreg);
orc_x86_emit_mov_reg_reg (compiler, 4, compiler->gp_tmpreg, X86_EAX);
orc_x86_emit_sar_imm_reg (compiler, 4,
- compiler->loop_shift + compiler->unroll_shift,
- compiler->gp_tmpreg);
+ compiler->loop_shift + compiler->unroll_shift, compiler->gp_tmpreg);
orc_x86_emit_mov_reg_memoffset (compiler, 4, compiler->gp_tmpreg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter2), compiler->exec_reg);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter2), compiler->exec_reg);
/* Calculate n3 */
orc_x86_emit_and_imm_reg (compiler, 4,
- (1<<(compiler->loop_shift + compiler->unroll_shift))-1, X86_EAX);
+ (1 << (compiler->loop_shift + compiler->unroll_shift)) - 1, X86_EAX);
orc_x86_emit_mov_reg_memoffset (compiler, 4, X86_EAX,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter3), compiler->exec_reg);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter3), compiler->exec_reg);
orc_x86_emit_jmp (compiler, 7);
@@ -697,20 +700,20 @@ orc_emit_split_3_regions (OrcCompiler *compiler)
orc_x86_emit_label (compiler, 6);
orc_x86_emit_mov_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,n), compiler->exec_reg, X86_EAX);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, n), compiler->exec_reg, X86_EAX);
orc_x86_emit_mov_reg_memoffset (compiler, 4, X86_EAX,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter1), compiler->exec_reg);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter1), compiler->exec_reg);
orc_x86_emit_mov_imm_reg (compiler, 4, 0, X86_EAX);
orc_x86_emit_mov_reg_memoffset (compiler, 4, X86_EAX,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter2), compiler->exec_reg);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter2), compiler->exec_reg);
orc_x86_emit_mov_reg_memoffset (compiler, 4, X86_EAX,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter3), compiler->exec_reg);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter3), compiler->exec_reg);
orc_x86_emit_label (compiler, 7);
}
static void
-orc_emit_split_2_regions (OrcCompiler *compiler)
+orc_emit_split_2_regions (OrcCompiler * compiler)
{
int align_var;
int align_shift ORC_GNUC_UNUSED;
@@ -722,31 +725,31 @@ orc_emit_split_2_regions (OrcCompiler *compiler)
/* Calculate n2 */
orc_x86_emit_mov_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,n), compiler->exec_reg,
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, n), compiler->exec_reg,
compiler->gp_tmpreg);
orc_x86_emit_mov_reg_reg (compiler, 4, compiler->gp_tmpreg, X86_EAX);
orc_x86_emit_sar_imm_reg (compiler, 4,
- compiler->loop_shift + compiler->unroll_shift,
- compiler->gp_tmpreg);
+ compiler->loop_shift + compiler->unroll_shift, compiler->gp_tmpreg);
orc_x86_emit_mov_reg_memoffset (compiler, 4, compiler->gp_tmpreg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter2), compiler->exec_reg);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter2), compiler->exec_reg);
/* Calculate n3 */
orc_x86_emit_and_imm_reg (compiler, 4,
- (1<<(compiler->loop_shift + compiler->unroll_shift))-1, X86_EAX);
+ (1 << (compiler->loop_shift + compiler->unroll_shift)) - 1, X86_EAX);
orc_x86_emit_mov_reg_memoffset (compiler, 4, X86_EAX,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter3), compiler->exec_reg);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter3), compiler->exec_reg);
}
#ifndef MMX
static int
-orc_program_has_float (OrcCompiler *compiler)
+orc_program_has_float (OrcCompiler * compiler)
{
int j;
- for(j=0;j<compiler->n_insns;j++){
+ for (j = 0; j < compiler->n_insns; j++) {
OrcInstruction *insn = compiler->insns + j;
OrcStaticOpcode *opcode = insn->opcode;
- if (opcode->flags & ORC_STATIC_OPCODE_FLOAT) return TRUE;
+ if (opcode->flags & ORC_STATIC_OPCODE_FLOAT)
+ return TRUE;
}
return FALSE;
}
@@ -762,7 +765,7 @@ orc_program_has_float (OrcCompiler *compiler)
void
-orc_compiler_sse_assemble (OrcCompiler *compiler)
+orc_compiler_sse_assemble (OrcCompiler * compiler)
{
#ifndef MMX
int set_mxcsr = FALSE;
@@ -792,7 +795,8 @@ orc_compiler_sse_assemble (OrcCompiler *compiler)
compiler->n_output_insns = 0;
}
- if (compiler->error) return;
+ if (compiler->error)
+ return;
orc_x86_emit_prologue (compiler);
@@ -810,16 +814,16 @@ orc_compiler_sse_assemble (OrcCompiler *compiler)
orc_x86_emit_mov_imm_reg (compiler, 4, compiler->program->constant_m,
X86_EAX);
orc_x86_emit_mov_reg_memoffset (compiler, 4, X86_EAX,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[ORC_VAR_A2]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[ORC_VAR_A2]),
compiler->exec_reg);
} else {
orc_x86_emit_mov_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[ORC_VAR_A1]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[ORC_VAR_A1]),
compiler->exec_reg, X86_EAX);
orc_x86_emit_test_reg_reg (compiler, 4, X86_EAX, X86_EAX);
orc_x86_emit_jle (compiler, LABEL_OUTER_LOOP_SKIP);
orc_x86_emit_mov_reg_memoffset (compiler, 4, X86_EAX,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[ORC_VAR_A2]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[ORC_VAR_A2]),
compiler->exec_reg);
}
@@ -839,10 +843,10 @@ orc_compiler_sse_assemble (OrcCompiler *compiler)
} else {
/* loop shift is 0, no need to split */
orc_x86_emit_mov_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,n), compiler->exec_reg,
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, n), compiler->exec_reg,
compiler->gp_tmpreg);
orc_x86_emit_mov_reg_memoffset (compiler, 4, compiler->gp_tmpreg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter2), compiler->exec_reg);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter2), compiler->exec_reg);
}
sse_load_constants_inner (compiler);
@@ -856,20 +860,20 @@ orc_compiler_sse_assemble (OrcCompiler *compiler)
compiler->offset = 0;
save_loop_shift = compiler->loop_shift;
- while (n_left >= (1<<compiler->loop_shift)) {
- ORC_ASM_CODE(compiler, "# LOOP SHIFT %d\n", compiler->loop_shift);
+ while (n_left >= (1 << compiler->loop_shift)) {
+ ORC_ASM_CODE (compiler, "# LOOP SHIFT %d\n", compiler->loop_shift);
orc_sse_emit_loop (compiler, compiler->offset, 0);
- n_left -= 1<<compiler->loop_shift;
- compiler->offset += 1<<compiler->loop_shift;
+ n_left -= 1 << compiler->loop_shift;
+ compiler->offset += 1 << compiler->loop_shift;
}
- for(loop_shift = compiler->loop_shift-1; loop_shift>=0; loop_shift--) {
- if (n_left >= (1<<loop_shift)) {
+ for (loop_shift = compiler->loop_shift - 1; loop_shift >= 0; loop_shift--) {
+ if (n_left >= (1 << loop_shift)) {
compiler->loop_shift = loop_shift;
- ORC_ASM_CODE(compiler, "# LOOP SHIFT %d\n", loop_shift);
+ ORC_ASM_CODE (compiler, "# LOOP SHIFT %d\n", loop_shift);
orc_sse_emit_loop (compiler, compiler->offset, 0);
- n_left -= 1<<loop_shift;
- compiler->offset += 1<<loop_shift;
+ n_left -= 1 << loop_shift;
+ compiler->offset += 1 << loop_shift;
}
}
compiler->loop_shift = save_loop_shift;
@@ -894,15 +898,16 @@ orc_compiler_sse_assemble (OrcCompiler *compiler)
save_loop_shift = compiler->loop_shift;
compiler->vars[align_var].is_aligned = FALSE;
- for (l=0;l<save_loop_shift;l++){
+ for (l = 0; l < save_loop_shift; l++) {
compiler->loop_shift = l;
- ORC_ASM_CODE(compiler, "# LOOP SHIFT %d\n", compiler->loop_shift);
-
- orc_x86_emit_test_imm_memoffset (compiler, 4, 1<<compiler->loop_shift,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter1), compiler->exec_reg);
- orc_x86_emit_je (compiler, LABEL_STEP_UP(compiler->loop_shift));
- orc_sse_emit_loop (compiler, 0, 1<<compiler->loop_shift);
- orc_x86_emit_label (compiler, LABEL_STEP_UP(compiler->loop_shift));
+ ORC_ASM_CODE (compiler, "# LOOP SHIFT %d\n", compiler->loop_shift);
+
+ orc_x86_emit_test_imm_memoffset (compiler, 4, 1 << compiler->loop_shift,
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter1),
+ compiler->exec_reg);
+ orc_x86_emit_je (compiler, LABEL_STEP_UP (compiler->loop_shift));
+ orc_sse_emit_loop (compiler, 0, 1 << compiler->loop_shift);
+ orc_x86_emit_label (compiler, LABEL_STEP_UP (compiler->loop_shift));
}
compiler->loop_shift = save_loop_shift;
@@ -912,31 +917,31 @@ orc_compiler_sse_assemble (OrcCompiler *compiler)
orc_x86_emit_label (compiler, LABEL_REGION1_SKIP);
orc_x86_emit_cmp_imm_memoffset (compiler, 4, 0,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter2), compiler->exec_reg);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter2), compiler->exec_reg);
orc_x86_emit_je (compiler, LABEL_REGION2_SKIP);
if (compiler->loop_counter != ORC_REG_INVALID) {
orc_x86_emit_mov_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, counter2), compiler->exec_reg,
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter2), compiler->exec_reg,
compiler->loop_counter);
}
- ORC_ASM_CODE(compiler, "# LOOP SHIFT %d\n", compiler->loop_shift);
+ ORC_ASM_CODE (compiler, "# LOOP SHIFT %d\n", compiler->loop_shift);
orc_x86_emit_align (compiler, 4);
orc_x86_emit_label (compiler, LABEL_INNER_LOOP_START);
- ui_max = 1<<compiler->unroll_shift;
- for(ui=0;ui<ui_max;ui++) {
- compiler->offset = ui<<compiler->loop_shift;
+ ui_max = 1 << compiler->unroll_shift;
+ for (ui = 0; ui < ui_max; ui++) {
+ compiler->offset = ui << compiler->loop_shift;
orc_sse_emit_loop (compiler, compiler->offset,
- (ui==ui_max-1) << (compiler->loop_shift + compiler->unroll_shift));
+ (ui ==
+ ui_max - 1) << (compiler->loop_shift + compiler->unroll_shift));
}
compiler->offset = 0;
if (compiler->loop_counter != ORC_REG_INVALID) {
orc_x86_emit_add_imm_reg (compiler, 4, -1, compiler->loop_counter, TRUE);
} else {
orc_x86_emit_dec_memoffset (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter2),
- compiler->exec_reg);
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter2), compiler->exec_reg);
}
orc_x86_emit_jne (compiler, LABEL_INNER_LOOP_START);
orc_x86_emit_label (compiler, LABEL_REGION2_SKIP);
@@ -948,15 +953,16 @@ orc_compiler_sse_assemble (OrcCompiler *compiler)
save_loop_shift = compiler->loop_shift + compiler->unroll_shift;
compiler->vars[align_var].is_aligned = FALSE;
- for(l=save_loop_shift - 1; l >= 0; l--) {
+ for (l = save_loop_shift - 1; l >= 0; l--) {
compiler->loop_shift = l;
- ORC_ASM_CODE(compiler, "# LOOP SHIFT %d\n", compiler->loop_shift);
-
- orc_x86_emit_test_imm_memoffset (compiler, 4, 1<<compiler->loop_shift,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,counter3), compiler->exec_reg);
- orc_x86_emit_je (compiler, LABEL_STEP_DOWN(compiler->loop_shift));
- orc_sse_emit_loop (compiler, 0, 1<<compiler->loop_shift);
- orc_x86_emit_label (compiler, LABEL_STEP_DOWN(compiler->loop_shift));
+ ORC_ASM_CODE (compiler, "# LOOP SHIFT %d\n", compiler->loop_shift);
+
+ orc_x86_emit_test_imm_memoffset (compiler, 4, 1 << compiler->loop_shift,
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, counter3),
+ compiler->exec_reg);
+ orc_x86_emit_je (compiler, LABEL_STEP_DOWN (compiler->loop_shift));
+ orc_sse_emit_loop (compiler, 0, 1 << compiler->loop_shift);
+ orc_x86_emit_label (compiler, LABEL_STEP_DOWN (compiler->loop_shift));
}
compiler->loop_shift = save_loop_shift;
@@ -967,7 +973,7 @@ orc_compiler_sse_assemble (OrcCompiler *compiler)
sse_add_strides (compiler);
orc_x86_emit_add_imm_memoffset (compiler, 4, -1,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,params[ORC_VAR_A2]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[ORC_VAR_A2]),
compiler->exec_reg);
orc_x86_emit_jne (compiler, LABEL_OUTER_LOOP);
orc_x86_emit_label (compiler, LABEL_OUTER_LOOP_SKIP);
@@ -991,7 +997,7 @@ orc_compiler_sse_assemble (OrcCompiler *compiler)
}
void
-orc_sse_emit_loop (OrcCompiler *compiler, int offset, int update)
+orc_sse_emit_loop (OrcCompiler * compiler, int offset, int update)
{
int j;
int k;
@@ -999,15 +1005,16 @@ orc_sse_emit_loop (OrcCompiler *compiler, int offset, int update)
OrcStaticOpcode *opcode;
OrcRule *rule;
- for(j=0;j<compiler->n_insns;j++){
+ for (j = 0; j < compiler->n_insns; j++) {
insn = compiler->insns + j;
opcode = insn->opcode;
compiler->insn_index = j;
- if (insn->flags & ORC_INSN_FLAG_INVARIANT) continue;
+ if (insn->flags & ORC_INSN_FLAG_INVARIANT)
+ continue;
- ORC_ASM_CODE(compiler,"# %d: %s\n", j, insn->opcode->name);
+ ORC_ASM_CODE (compiler, "# %d: %s\n", j, insn->opcode->name);
compiler->min_temp_reg = ORC_VEC_REG_BASE;
@@ -1021,8 +1028,9 @@ orc_sse_emit_loop (OrcCompiler *compiler, int offset, int update)
rule = insn->rule;
if (rule && rule->emit) {
- if (!(insn->opcode->flags & (ORC_STATIC_OPCODE_ACCUMULATOR|ORC_STATIC_OPCODE_LOAD|ORC_STATIC_OPCODE_STORE)) &&
- compiler->vars[insn->dest_args[0]].alloc !=
+ if (!(insn->opcode->flags & (ORC_STATIC_OPCODE_ACCUMULATOR |
+ ORC_STATIC_OPCODE_LOAD | ORC_STATIC_OPCODE_STORE))
+ && compiler->vars[insn->dest_args[0]].alloc !=
compiler->vars[insn->src_args[0]].alloc) {
#ifdef MMX
orc_sse_emit_movq (compiler,
@@ -1042,12 +1050,12 @@ orc_sse_emit_loop (OrcCompiler *compiler, int offset, int update)
}
if (update) {
- for(k=0;k<ORC_N_COMPILER_VARIABLES;k++){
+ for (k = 0; k < ORC_N_COMPILER_VARIABLES; k++) {
OrcVariable *var = compiler->vars + k;
- if (var->name == NULL) continue;
- if (var->vartype == ORC_VAR_TYPE_SRC ||
- var->vartype == ORC_VAR_TYPE_DEST) {
+ if (var->name == NULL)
+ continue;
+ if (var->vartype == ORC_VAR_TYPE_SRC || var->vartype == ORC_VAR_TYPE_DEST) {
int offset;
if (var->update_type == 0) {
offset = 0;
@@ -1060,12 +1068,11 @@ orc_sse_emit_loop (OrcCompiler *compiler, int offset, int update)
if (offset != 0) {
if (compiler->vars[k].ptr_register) {
orc_x86_emit_add_imm_reg (compiler, compiler->is_64bit ? 8 : 4,
- offset,
- compiler->vars[k].ptr_register, FALSE);
+ offset, compiler->vars[k].ptr_register, FALSE);
} else {
- orc_x86_emit_add_imm_memoffset (compiler, compiler->is_64bit ? 8 : 4,
- offset,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, arrays[k]),
+ orc_x86_emit_add_imm_memoffset (compiler,
+ compiler->is_64bit ? 8 : 4, offset,
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, arrays[k]),
compiler->exec_reg);
}
}
@@ -1075,20 +1082,21 @@ orc_sse_emit_loop (OrcCompiler *compiler, int offset, int update)
}
void
-orc_sse_emit_invariants (OrcCompiler *compiler)
+orc_sse_emit_invariants (OrcCompiler * compiler)
{
int j;
OrcInstruction *insn;
OrcStaticOpcode *opcode;
OrcRule *rule;
- for(j=0;j<compiler->n_insns;j++){
+ for (j = 0; j < compiler->n_insns; j++) {
insn = compiler->insns + j;
opcode = insn->opcode;
- if (!(insn->flags & ORC_INSN_FLAG_INVARIANT)) continue;
+ if (!(insn->flags & ORC_INSN_FLAG_INVARIANT))
+ continue;
- ORC_ASM_CODE(compiler,"# %d: %s\n", j, insn->opcode->name);
+ ORC_ASM_CODE (compiler, "# %d: %s\n", j, insn->opcode->name);
compiler->insn_shift = compiler->loop_shift;
if (insn->flags & ORC_INSTRUCTION_FLAG_X2) {
@@ -1107,4 +1115,3 @@ orc_sse_emit_invariants (OrcCompiler *compiler)
}
}
}
-
diff --git a/orc/orcprogram.c b/orc/orcprogram.c
index 653220f..ccd1946 100644
--- a/orc/orcprogram.c
+++ b/orc/orcprogram.c
@@ -31,11 +31,11 @@ orc_program_new (void)
orc_init ();
- p = malloc(sizeof(OrcProgram));
- memset (p, 0, sizeof(OrcProgram));
+ p = malloc (sizeof (OrcProgram));
+ memset (p, 0, sizeof (OrcProgram));
p->name = malloc (40);
- sprintf(p->name, "func_%p", p);
+ sprintf (p->name, "func_%p", p);
return p;
}
@@ -137,7 +137,7 @@ orc_program_new_as (int size1, int size2)
}
OrcProgram *
-orc_program_new_from_static_bytecode (const orc_uint8 *bytecode)
+orc_program_new_from_static_bytecode (const orc_uint8 * bytecode)
{
OrcProgram *p;
@@ -154,10 +154,10 @@ orc_program_new_from_static_bytecode (const orc_uint8 *bytecode)
* Frees an OrcProgram.
*/
void
-orc_program_free (OrcProgram *program)
+orc_program_free (OrcProgram * program)
{
int i;
- for(i=0;i<ORC_N_VARIABLES;i++){
+ for (i = 0; i < ORC_N_VARIABLES; i++) {
if (program->vars[i].name) {
free (program->vars[i].name);
program->vars[i].name = NULL;
@@ -186,7 +186,7 @@ orc_program_free (OrcProgram *program)
* Sets the name of the program. The string is copied.
*/
void
-orc_program_set_name (OrcProgram *program, const char *name)
+orc_program_set_name (OrcProgram * program, const char *name)
{
if (program->name) {
free (program->name);
@@ -202,7 +202,7 @@ orc_program_set_name (OrcProgram *program, const char *name)
* Sets the current line of the program.
*/
void
-orc_program_set_line (OrcProgram *program, unsigned int line)
+orc_program_set_line (OrcProgram * program, unsigned int line)
{
program->current_line = line;
}
@@ -216,32 +216,37 @@ orc_program_set_line (OrcProgram *program, unsigned int line)
* an OrcExec2D executor.
*/
void
-orc_program_set_2d (OrcProgram *program)
+orc_program_set_2d (OrcProgram * program)
{
program->is_2d = TRUE;
}
-void orc_program_set_constant_n (OrcProgram *program, int n)
+void
+orc_program_set_constant_n (OrcProgram * program, int n)
{
program->constant_n = n;
}
-void orc_program_set_n_multiple (OrcProgram *program, int n)
+void
+orc_program_set_n_multiple (OrcProgram * program, int n)
{
program->n_multiple = n;
}
-void orc_program_set_n_minimum (OrcProgram *program, int n)
+void
+orc_program_set_n_minimum (OrcProgram * program, int n)
{
program->n_minimum = n;
}
-void orc_program_set_n_maximum (OrcProgram *program, int n)
+void
+orc_program_set_n_maximum (OrcProgram * program, int n)
{
program->n_maximum = n;
}
-void orc_program_set_constant_m (OrcProgram *program, int m)
+void
+orc_program_set_constant_m (OrcProgram * program, int m)
{
program->constant_m = m;
}
@@ -257,7 +262,7 @@ void orc_program_set_constant_m (OrcProgram *program, int m)
* instead of resorting to emulation.
*/
void
-orc_program_set_backup_function (OrcProgram *program, OrcExecutorFunc func)
+orc_program_set_backup_function (OrcProgram * program, OrcExecutorFunc func)
{
program->backup_func = func;
}
@@ -272,7 +277,7 @@ orc_program_set_backup_function (OrcProgram *program, OrcExecutorFunc func)
* Returns: a character string
*/
const char *
-orc_program_get_name (OrcProgram *program)
+orc_program_get_name (OrcProgram * program)
{
return program->name;
}
@@ -288,13 +293,13 @@ orc_program_get_name (OrcProgram *program)
* Returns: the index of the new variable
*/
int
-orc_program_add_temporary (OrcProgram *program, int size, const char *name)
+orc_program_add_temporary (OrcProgram * program, int size, const char *name)
{
int i = ORC_VAR_T1 + program->n_temp_vars;
program->vars[i].vartype = ORC_VAR_TYPE_TEMP;
program->vars[i].size = size;
- program->vars[i].name = strdup(name);
+ program->vars[i].name = strdup (name);
program->n_temp_vars++;
return i;
@@ -311,14 +316,14 @@ orc_program_add_temporary (OrcProgram *program, int size, const char *name)
* Returns: the index of the new variable
*/
int
-orc_program_dup_temporary (OrcProgram *program, int var, int j)
+orc_program_dup_temporary (OrcProgram * program, int var, int j)
{
int i = ORC_VAR_T1 + program->n_temp_vars;
program->vars[i].vartype = ORC_VAR_TYPE_TEMP;
program->vars[i].size = program->vars[var].size;
- program->vars[i].name = malloc (strlen(program->vars[var].name) + 10);
- sprintf(program->vars[i].name, "%s.dup%d", program->vars[var].name, j);
+ program->vars[i].name = malloc (strlen (program->vars[var].name) + 10);
+ sprintf (program->vars[i].name, "%s.dup%d", program->vars[var].name, j);
program->n_temp_vars++;
return i;
@@ -337,18 +342,19 @@ orc_program_dup_temporary (OrcProgram *program, int var, int j)
* Returns: the index of the new variable
*/
int
-orc_program_add_source_full (OrcProgram *program, int size, const char *name,
+orc_program_add_source_full (OrcProgram * program, int size, const char *name,
const char *type_name, int alignment)
{
int i = ORC_VAR_S1 + program->n_src_vars;
program->vars[i].vartype = ORC_VAR_TYPE_SRC;
program->vars[i].size = size;
- if (alignment == 0) alignment = size;
+ if (alignment == 0)
+ alignment = size;
program->vars[i].alignment = alignment;
- program->vars[i].name = strdup(name);
+ program->vars[i].name = strdup (name);
if (type_name) {
- program->vars[i].type_name = strdup(type_name);
+ program->vars[i].type_name = strdup (type_name);
}
program->n_src_vars++;
@@ -366,7 +372,7 @@ orc_program_add_source_full (OrcProgram *program, int size, const char *name,
* Returns: the index of the new variable
*/
int
-orc_program_add_source (OrcProgram *program, int size, const char *name)
+orc_program_add_source (OrcProgram * program, int size, const char *name)
{
return orc_program_add_source_full (program, size, name, NULL, 0);
}
@@ -382,18 +388,19 @@ orc_program_add_source (OrcProgram *program, int size, const char *name)
* Returns: the index of the new variable
*/
int
-orc_program_add_destination_full (OrcProgram *program, int size, const char *name,
- const char *type_name, int alignment)
+orc_program_add_destination_full (OrcProgram * program, int size,
+ const char *name, const char *type_name, int alignment)
{
int i = ORC_VAR_D1 + program->n_dest_vars;
program->vars[i].vartype = ORC_VAR_TYPE_DEST;
program->vars[i].size = size;
- if (alignment == 0) alignment = size;
+ if (alignment == 0)
+ alignment = size;
program->vars[i].alignment = alignment;
- program->vars[i].name = strdup(name);
+ program->vars[i].name = strdup (name);
if (type_name) {
- program->vars[i].type_name = strdup(type_name);
+ program->vars[i].type_name = strdup (type_name);
}
program->n_dest_vars++;
@@ -411,7 +418,7 @@ orc_program_add_destination_full (OrcProgram *program, int size, const char *nam
* Returns: the index of the new variable
*/
int
-orc_program_add_destination (OrcProgram *program, int size, const char *name)
+orc_program_add_destination (OrcProgram * program, int size, const char *name)
{
return orc_program_add_destination_full (program, size, name, NULL, 0);
}
@@ -428,40 +435,41 @@ orc_program_add_destination (OrcProgram *program, int size, const char *name)
* Returns: the index of the new variable
*/
int
-orc_program_add_constant (OrcProgram *program, int size, int value, const char *name)
+orc_program_add_constant (OrcProgram * program, int size, int value,
+ const char *name)
{
int i;
-
+
i = ORC_VAR_C1 + program->n_const_vars;
program->vars[i].vartype = ORC_VAR_TYPE_CONST;
program->vars[i].size = size;
program->vars[i].value.i = value;
- program->vars[i].name = strdup(name);
+ program->vars[i].name = strdup (name);
program->n_const_vars++;
return i;
}
int
-orc_program_add_constant_int64 (OrcProgram *program, int size,
+orc_program_add_constant_int64 (OrcProgram * program, int size,
orc_int64 value, const char *name)
{
int i;
-
+
i = ORC_VAR_C1 + program->n_const_vars;
program->vars[i].vartype = ORC_VAR_TYPE_CONST;
program->vars[i].size = size;
program->vars[i].value.i = value;
- program->vars[i].name = strdup(name);
+ program->vars[i].name = strdup (name);
program->n_const_vars++;
return i;
}
int
-orc_program_add_constant_float (OrcProgram *program, int size,
+orc_program_add_constant_float (OrcProgram * program, int size,
float value, const char *name)
{
orc_union32 u;
@@ -470,7 +478,7 @@ orc_program_add_constant_float (OrcProgram *program, int size,
}
int
-orc_program_add_constant_double (OrcProgram *program, int size,
+orc_program_add_constant_double (OrcProgram * program, int size,
double value, const char *name)
{
orc_union64 u;
@@ -479,7 +487,7 @@ orc_program_add_constant_double (OrcProgram *program, int size,
}
int
-orc_program_add_constant_str (OrcProgram *program, int size,
+orc_program_add_constant_str (OrcProgram * program, int size,
const char *value, const char *name)
{
int i;
@@ -517,7 +525,7 @@ orc_program_add_constant_str (OrcProgram *program, int size,
}
}
- for(j=0;j<program->n_const_vars;j++){
+ for (j = 0; j < program->n_const_vars; j++) {
if (program->vars[ORC_VAR_C1 + j].value.i == program->vars[i].value.i) {
return ORC_VAR_C1 + j;
}
@@ -525,7 +533,7 @@ orc_program_add_constant_str (OrcProgram *program, int size,
program->vars[i].vartype = ORC_VAR_TYPE_CONST;
program->vars[i].size = size;
- program->vars[i].name = strdup(name);
+ program->vars[i].name = strdup (name);
program->n_const_vars++;
return i;
@@ -542,14 +550,14 @@ orc_program_add_constant_str (OrcProgram *program, int size,
* Returns: the index of the new variable
*/
int
-orc_program_add_parameter (OrcProgram *program, int size, const char *name)
+orc_program_add_parameter (OrcProgram * program, int size, const char *name)
{
int i = ORC_VAR_P1 + program->n_param_vars;
program->vars[i].vartype = ORC_VAR_TYPE_PARAM;
program->vars[i].param_type = ORC_PARAM_TYPE_INT;
program->vars[i].size = size;
- program->vars[i].name = strdup(name);
+ program->vars[i].name = strdup (name);
program->n_param_vars++;
return i;
@@ -566,21 +574,22 @@ orc_program_add_parameter (OrcProgram *program, int size, const char *name)
* Returns: the index of the new variable
*/
int
-orc_program_add_parameter_float (OrcProgram *program, int size, const char *name)
+orc_program_add_parameter_float (OrcProgram * program, int size,
+ const char *name)
{
int i = ORC_VAR_P1 + program->n_param_vars;
program->vars[i].vartype = ORC_VAR_TYPE_PARAM;
program->vars[i].param_type = ORC_PARAM_TYPE_FLOAT;
program->vars[i].size = size;
- program->vars[i].name = strdup(name);
+ program->vars[i].name = strdup (name);
program->n_param_vars++;
return i;
}
int
-orc_program_add_parameter_double (OrcProgram *program, int size,
+orc_program_add_parameter_double (OrcProgram * program, int size,
const char *name)
{
int i = ORC_VAR_P1 + program->n_param_vars;
@@ -588,14 +597,14 @@ orc_program_add_parameter_double (OrcProgram *program, int size,
program->vars[i].vartype = ORC_VAR_TYPE_PARAM;
program->vars[i].param_type = ORC_PARAM_TYPE_DOUBLE;
program->vars[i].size = size;
- program->vars[i].name = strdup(name);
+ program->vars[i].name = strdup (name);
program->n_param_vars++;
return i;
}
int
-orc_program_add_parameter_int64 (OrcProgram *program, int size,
+orc_program_add_parameter_int64 (OrcProgram * program, int size,
const char *name)
{
int i = ORC_VAR_P1 + program->n_param_vars;
@@ -603,7 +612,7 @@ orc_program_add_parameter_int64 (OrcProgram *program, int size,
program->vars[i].vartype = ORC_VAR_TYPE_PARAM;
program->vars[i].param_type = ORC_PARAM_TYPE_INT64;
program->vars[i].size = size;
- program->vars[i].name = strdup(name);
+ program->vars[i].name = strdup (name);
program->n_param_vars++;
return i;
@@ -620,26 +629,26 @@ orc_program_add_parameter_int64 (OrcProgram *program, int size,
* Returns: the index of the new variable
*/
int
-orc_program_add_accumulator (OrcProgram *program, int size, const char *name)
+orc_program_add_accumulator (OrcProgram * program, int size, const char *name)
{
int i = ORC_VAR_A1 + program->n_accum_vars;
program->vars[i].vartype = ORC_VAR_TYPE_ACCUMULATOR;
program->vars[i].size = size;
- program->vars[i].name = strdup(name);
+ program->vars[i].name = strdup (name);
program->n_param_vars++;
return i;
}
void
-orc_program_set_type_name (OrcProgram *program, int var, const char *type_name)
+orc_program_set_type_name (OrcProgram * program, int var, const char *type_name)
{
- program->vars[var].type_name = strdup(type_name);
+ program->vars[var].type_name = strdup (type_name);
}
void
-orc_program_set_var_alignment (OrcProgram *program, int var, int alignment)
+orc_program_set_var_alignment (OrcProgram * program, int var, int alignment)
{
program->vars[var].alignment = alignment;
if (alignment >= 16) {
@@ -648,8 +657,7 @@ orc_program_set_var_alignment (OrcProgram *program, int var, int alignment)
}
void
-orc_program_set_sampling_type (OrcProgram *program, int var,
- int sampling_type)
+orc_program_set_sampling_type (OrcProgram * program, int var, int sampling_type)
{
/* This doesn't do anything yet */
}
@@ -665,7 +673,7 @@ orc_program_set_sampling_type (OrcProgram *program, int var,
* @arg1. The instruction must take 2 operands.
*/
void
-orc_program_append_ds (OrcProgram *program, const char *name, int arg0,
+orc_program_append_ds (OrcProgram * program, const char *name, int arg0,
int arg1)
{
OrcInstruction *insn;
@@ -678,7 +686,7 @@ orc_program_append_ds (OrcProgram *program, const char *name, int arg0,
}
insn->dest_args[0] = arg0;
insn->src_args[0] = arg1;
-
+
program->n_insns++;
}
@@ -694,7 +702,7 @@ orc_program_append_ds (OrcProgram *program, const char *name, int arg0,
* @arg1, and @arg2. The instruction must take 3 operands.
*/
void
-orc_program_append (OrcProgram *program, const char *name, int arg0,
+orc_program_append (OrcProgram * program, const char *name, int arg0,
int arg1, int arg2)
{
OrcInstruction *insn;
@@ -708,7 +716,7 @@ orc_program_append (OrcProgram *program, const char *name, int arg0,
insn->dest_args[0] = arg0;
insn->src_args[0] = arg1;
insn->src_args[1] = arg2;
-
+
program->n_insns++;
}
@@ -725,8 +733,8 @@ orc_program_append (OrcProgram *program, const char *name, int arg0,
* @arg1, @arg2, and @arg3.
*/
void
-orc_program_append_2 (OrcProgram *program, const char *name, unsigned int flags,
- int arg0, int arg1, int arg2, int arg3)
+orc_program_append_2 (OrcProgram * program, const char *name,
+ unsigned int flags, int arg0, int arg1, int arg2, int arg3)
{
OrcInstruction *insn;
int args[4];
@@ -774,13 +782,14 @@ orc_program_append_2 (OrcProgram *program, const char *name, unsigned int flags,
* Returns: the index of the variable
*/
int
-orc_program_find_var_by_name (OrcProgram *program, const char *name)
+orc_program_find_var_by_name (OrcProgram * program, const char *name)
{
int i;
- if (name == NULL) return -1;
+ if (name == NULL)
+ return -1;
- for(i=0;i<ORC_N_VARIABLES;i++){
+ for (i = 0; i < ORC_N_VARIABLES; i++) {
if (program->vars[i].name && strcmp (program->vars[i].name, name) == 0) {
return i;
}
@@ -801,7 +810,7 @@ orc_program_find_var_by_name (OrcProgram *program, const char *name)
* @arg1, and @arg2. The instruction must take 3 operands.
*/
void
-orc_program_append_str (OrcProgram *program, const char *name,
+orc_program_append_str (OrcProgram * program, const char *name,
const char *arg1, const char *arg2, const char *arg3)
{
OrcInstruction *insn;
@@ -820,7 +829,7 @@ orc_program_append_str (OrcProgram *program, const char *name,
insn->src_args[0] = orc_program_find_var_by_name (program, arg2);
insn->src_args[1] = orc_program_find_var_by_name (program, arg3);
}
-
+
program->n_insns++;
}
@@ -838,7 +847,7 @@ orc_program_append_str (OrcProgram *program, const char *name,
* @arg1, @arg2, and @arg3.
*/
void
-orc_program_append_str_2 (OrcProgram *program, const char *name,
+orc_program_append_str_2 (OrcProgram * program, const char *name,
unsigned int flags, const char *arg1, const char *arg2, const char *arg3,
const char *arg4)
{
@@ -888,7 +897,7 @@ orc_program_append_str_2 (OrcProgram *program, const char *name,
* @arg2. The instruction must take 2 operands.
*/
void
-orc_program_append_ds_str (OrcProgram *program, const char *name,
+orc_program_append_ds_str (OrcProgram * program, const char *name,
const char *arg1, const char *arg2)
{
OrcInstruction *insn;
@@ -901,12 +910,12 @@ orc_program_append_ds_str (OrcProgram *program, const char *name,
}
insn->dest_args[0] = orc_program_find_var_by_name (program, arg1);
insn->src_args[0] = orc_program_find_var_by_name (program, arg2);
-
+
program->n_insns++;
}
void
-orc_program_append_dds_str (OrcProgram *program, const char *name,
+orc_program_append_dds_str (OrcProgram * program, const char *name,
const char *arg1, const char *arg2, const char *arg3)
{
OrcInstruction *insn;
@@ -920,7 +929,7 @@ orc_program_append_dds_str (OrcProgram *program, const char *name,
insn->dest_args[0] = orc_program_find_var_by_name (program, arg1);
insn->dest_args[1] = orc_program_find_var_by_name (program, arg2);
insn->src_args[0] = orc_program_find_var_by_name (program, arg3);
-
+
program->n_insns++;
}
@@ -935,7 +944,7 @@ orc_program_append_dds_str (OrcProgram *program, const char *name,
* Returns: a character string
*/
const char *
-orc_program_get_asm_code (OrcProgram *program)
+orc_program_get_asm_code (OrcProgram * program)
{
return program->asm_code;
}
@@ -951,9 +960,10 @@ orc_program_get_asm_code (OrcProgram *program)
* Returns: a character string
*/
const char *
-orc_program_get_error (OrcProgram *program)
+orc_program_get_error (OrcProgram * program)
{
- if (program->error_msg) return program->error_msg;
+ if (program->error_msg)
+ return program->error_msg;
return "";
}
@@ -966,17 +976,17 @@ orc_program_get_error (OrcProgram *program)
* Returns: the number of bytes
*/
int
-orc_program_get_max_array_size (OrcProgram *program)
+orc_program_get_max_array_size (OrcProgram * program)
{
int i;
int max;
max = 0;
- for(i=0;i<ORC_N_VARIABLES;i++){
+ for (i = 0; i < ORC_N_VARIABLES; i++) {
if (program->vars[i].size) {
if (program->vars[i].vartype == ORC_VAR_TYPE_SRC ||
program->vars[i].vartype == ORC_VAR_TYPE_DEST) {
- max = MAX(max, program->vars[i].size);
+ max = MAX (max, program->vars[i].size);
}
}
}
@@ -993,16 +1003,16 @@ orc_program_get_max_array_size (OrcProgram *program)
* Returns: the number of bytes
*/
int
-orc_program_get_max_accumulator_size (OrcProgram *program)
+orc_program_get_max_accumulator_size (OrcProgram * program)
{
int i;
int max;
max = 0;
- for(i=0;i<ORC_N_VARIABLES;i++){
+ for (i = 0; i < ORC_N_VARIABLES; i++) {
if (program->vars[i].size) {
if (program->vars[i].vartype == ORC_VAR_TYPE_ACCUMULATOR) {
- max = MAX(max, program->vars[i].size);
+ max = MAX (max, program->vars[i].size);
}
}
}
@@ -1054,23 +1064,22 @@ orc_get_cpu_name (void)
}
void
-orc_program_reset (OrcProgram *program)
+orc_program_reset (OrcProgram * program)
{
if (program->orccode) {
orc_code_free (program->orccode);
program->orccode = NULL;
}
if (program->asm_code) {
- free(program->asm_code);
+ free (program->asm_code);
program->asm_code = NULL;
}
}
OrcCode *
-orc_program_take_code (OrcProgram *program)
+orc_program_take_code (OrcProgram * program)
{
OrcCode *code = program->orccode;
program->orccode = NULL;
return code;
}
-
diff --git a/orc/orcrule.c b/orc/orcrule.c
index 4cd9910..58dd719 100644
--- a/orc/orcrule.c
+++ b/orc/orcrule.c
@@ -16,9 +16,8 @@
void
-orc_rule_register (OrcRuleSet *rule_set,
- const char *opcode_name,
- OrcRuleEmitFunc emit, void *emit_user)
+orc_rule_register (OrcRuleSet * rule_set,
+ const char *opcode_name, OrcRuleEmitFunc emit, void *emit_user)
{
int i;
OrcOpcodeSet *opcode_set;
@@ -27,11 +26,10 @@ orc_rule_register (OrcRuleSet *rule_set,
i = orc_opcode_set_find_by_name (opcode_set, opcode_name);
if (i == -1) {
- ORC_ERROR("failed to find opcode \"%s\"", opcode_name);
+ ORC_ERROR ("failed to find opcode \"%s\"", opcode_name);
return;
}
rule_set->rules[i].emit = emit;
rule_set->rules[i].emit_user = emit_user;
}
-
diff --git a/orc/orcrules-altivec.c b/orc/orcrules-altivec.c
index 69876e3..51c3bd1 100644
--- a/orc/orcrules-altivec.c
+++ b/orc/orcrules-altivec.c
@@ -16,53 +16,51 @@
/* rules */
static void
-powerpc_rule_loadpX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
+powerpc_rule_loadpX (OrcCompiler * compiler, void *user, OrcInstruction * insn)
{
OrcVariable *src = compiler->vars + insn->src_args[0];
OrcVariable *dest = compiler->vars + insn->dest_args[0];
- int size = ORC_PTR_TO_INT(user);
+ int size = ORC_PTR_TO_INT (user);
if (src->vartype == ORC_VAR_TYPE_PARAM) {
int greg = compiler->gp_tmpreg;
powerpc_emit_addi (compiler,
greg, POWERPC_R3,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[insn->src_args[0]]));
- ORC_ASM_CODE(compiler," lvewx %s, 0, %s\n",
- powerpc_get_regname (dest->alloc),
- powerpc_get_regname (greg));
- powerpc_emit_X (compiler, 0x7c00008e, powerpc_regnum(dest->alloc),
- 0, powerpc_regnum(greg));
-
- ORC_ASM_CODE(compiler," lvsl %s, 0, %s\n",
- powerpc_get_regname (POWERPC_V0),
- powerpc_get_regname (greg));
- powerpc_emit_X (compiler, 0x7c00000c, powerpc_regnum(POWERPC_V0),
- 0, powerpc_regnum(greg));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[insn->src_args[0]]));
+ ORC_ASM_CODE (compiler, " lvewx %s, 0, %s\n",
+ powerpc_get_regname (dest->alloc), powerpc_get_regname (greg));
+ powerpc_emit_X (compiler, 0x7c00008e, powerpc_regnum (dest->alloc),
+ 0, powerpc_regnum (greg));
+
+ ORC_ASM_CODE (compiler, " lvsl %s, 0, %s\n",
+ powerpc_get_regname (POWERPC_V0), powerpc_get_regname (greg));
+ powerpc_emit_X (compiler, 0x7c00000c, powerpc_regnum (POWERPC_V0),
+ 0, powerpc_regnum (greg));
powerpc_emit_vperm (compiler, dest->alloc, dest->alloc, dest->alloc,
POWERPC_V0);
switch (size) {
case 1:
- ORC_ASM_CODE(compiler," vspltb %s, %s, 3\n",
+ ORC_ASM_CODE (compiler, " vspltb %s, %s, 3\n",
powerpc_get_regname (dest->alloc),
powerpc_get_regname (dest->alloc));
powerpc_emit_VX (compiler, 0x1000020c,
- powerpc_regnum(dest->alloc), 3, powerpc_regnum(dest->alloc));
+ powerpc_regnum (dest->alloc), 3, powerpc_regnum (dest->alloc));
break;
case 2:
- ORC_ASM_CODE(compiler," vsplth %s, %s, 1\n",
+ ORC_ASM_CODE (compiler, " vsplth %s, %s, 1\n",
powerpc_get_regname (dest->alloc),
powerpc_get_regname (dest->alloc));
powerpc_emit_VX (compiler, 0x1000024c,
- powerpc_regnum(dest->alloc), 1, powerpc_regnum(dest->alloc));
+ powerpc_regnum (dest->alloc), 1, powerpc_regnum (dest->alloc));
break;
case 4:
- ORC_ASM_CODE(compiler," vspltw %s, %s, 0\n",
+ ORC_ASM_CODE (compiler, " vspltw %s, %s, 0\n",
powerpc_get_regname (dest->alloc),
powerpc_get_regname (dest->alloc));
powerpc_emit_VX (compiler, 0x1000028c,
- powerpc_regnum(dest->alloc), 0, powerpc_regnum(dest->alloc));
+ powerpc_regnum (dest->alloc), 0, powerpc_regnum (dest->alloc));
break;
}
} else {
@@ -71,10 +69,10 @@ powerpc_rule_loadpX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
switch (size) {
case 1:
if (value < 16 && value >= -16) {
- ORC_ASM_CODE(compiler," vspltisb %s, %d\n",
- powerpc_get_regname(dest->alloc), value&0x1f);
- powerpc_emit_VX(compiler, 0x1000030c,
- powerpc_regnum(dest->alloc), value & 0x1f, 0);
+ ORC_ASM_CODE (compiler, " vspltisb %s, %d\n",
+ powerpc_get_regname (dest->alloc), value & 0x1f);
+ powerpc_emit_VX (compiler, 0x1000030c,
+ powerpc_regnum (dest->alloc), value & 0x1f, 0);
} else {
value &= 0xff;
value |= value << 8;
@@ -85,10 +83,10 @@ powerpc_rule_loadpX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
break;
case 2:
if (value < 16 && value >= -16) {
- ORC_ASM_CODE(compiler," vspltish %s, %d\n",
- powerpc_get_regname(dest->alloc), value&0x1f);
- powerpc_emit_VX(compiler, 0x1000034c,
- powerpc_regnum(dest->alloc), value & 0x1f, 0);
+ ORC_ASM_CODE (compiler, " vspltish %s, %d\n",
+ powerpc_get_regname (dest->alloc), value & 0x1f);
+ powerpc_emit_VX (compiler, 0x1000034c,
+ powerpc_regnum (dest->alloc), value & 0x1f, 0);
} else {
value &= 0xffff;
value |= value << 16;
@@ -98,10 +96,10 @@ powerpc_rule_loadpX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
break;
case 4:
if (value < 16 && value >= -16) {
- ORC_ASM_CODE(compiler," vspltisw %s, %d\n",
- powerpc_get_regname(dest->alloc), value&0x1f);
- powerpc_emit_VX(compiler, 0x1000038c,
- powerpc_regnum(dest->alloc), value & 0x1f, 0);
+ ORC_ASM_CODE (compiler, " vspltisw %s, %d\n",
+ powerpc_get_regname (dest->alloc), value & 0x1f);
+ powerpc_emit_VX (compiler, 0x1000038c,
+ powerpc_regnum (dest->alloc), value & 0x1f, 0);
} else {
powerpc_load_long_constant (compiler, dest->alloc, value, value,
value, value);
@@ -113,7 +111,7 @@ powerpc_rule_loadpX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_loadX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
+powerpc_rule_loadX (OrcCompiler * compiler, void *user, OrcInstruction * insn)
{
OrcVariable *src = compiler->vars + insn->src_args[0];
OrcVariable *dest = compiler->vars + insn->dest_args[0];
@@ -122,49 +120,49 @@ powerpc_rule_loadX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
switch (size) {
case 1:
- ORC_ASM_CODE(compiler," lvebx %s, 0, %s\n",
+ ORC_ASM_CODE (compiler, " lvebx %s, 0, %s\n",
powerpc_get_regname (dest->alloc),
powerpc_get_regname (src->ptr_register));
- powerpc_emit_X (compiler, 0x7c00000e, powerpc_regnum(dest->alloc),
- 0, powerpc_regnum(src->ptr_register));
+ powerpc_emit_X (compiler, 0x7c00000e, powerpc_regnum (dest->alloc),
+ 0, powerpc_regnum (src->ptr_register));
break;
case 2:
- ORC_ASM_CODE(compiler," lvehx %s, 0, %s\n",
+ ORC_ASM_CODE (compiler, " lvehx %s, 0, %s\n",
powerpc_get_regname (dest->alloc),
powerpc_get_regname (src->ptr_register));
- powerpc_emit_X (compiler, 0x7c00004e, powerpc_regnum(dest->alloc),
- 0, powerpc_regnum(src->ptr_register));
+ powerpc_emit_X (compiler, 0x7c00004e, powerpc_regnum (dest->alloc),
+ 0, powerpc_regnum (src->ptr_register));
break;
case 4:
- ORC_ASM_CODE(compiler," lvewx %s, 0, %s\n",
+ ORC_ASM_CODE (compiler, " lvewx %s, 0, %s\n",
powerpc_get_regname (dest->alloc),
powerpc_get_regname (src->ptr_register));
- powerpc_emit_X (compiler, 0x7c00008e, powerpc_regnum(dest->alloc),
- 0, powerpc_regnum(src->ptr_register));
+ powerpc_emit_X (compiler, 0x7c00008e, powerpc_regnum (dest->alloc),
+ 0, powerpc_regnum (src->ptr_register));
break;
case 8:
case 16:
- ORC_ASM_CODE(compiler," lvx %s, 0, %s\n",
+ ORC_ASM_CODE (compiler, " lvx %s, 0, %s\n",
powerpc_get_regname (dest->alloc),
powerpc_get_regname (src->ptr_register));
- powerpc_emit_X (compiler, 0x7c0000ce, powerpc_regnum(dest->alloc),
- 0, powerpc_regnum(src->ptr_register));
+ powerpc_emit_X (compiler, 0x7c0000ce, powerpc_regnum (dest->alloc),
+ 0, powerpc_regnum (src->ptr_register));
break;
default:
- ORC_COMPILER_ERROR(compiler,"bad load size %d",
+ ORC_COMPILER_ERROR (compiler, "bad load size %d",
src->size << compiler->loop_shift);
break;
}
- ORC_ASM_CODE(compiler," lvsl %s, 0, %s\n",
- powerpc_get_regname (perm),
- powerpc_get_regname (src->ptr_register));
- powerpc_emit_X (compiler, 0x7c00000c, powerpc_regnum(perm),
- 0, powerpc_regnum(src->ptr_register));
+ ORC_ASM_CODE (compiler, " lvsl %s, 0, %s\n",
+ powerpc_get_regname (perm), powerpc_get_regname (src->ptr_register));
+ powerpc_emit_X (compiler, 0x7c00000c, powerpc_regnum (perm),
+ 0, powerpc_regnum (src->ptr_register));
powerpc_emit_vperm (compiler, dest->alloc, dest->alloc, dest->alloc, perm);
}
static void
-powerpc_rule_loadoffX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
+powerpc_rule_loadoffX (OrcCompiler * compiler, void *user,
+ OrcInstruction * insn)
{
OrcVariable *src = compiler->vars + insn->src_args[0];
OrcVariable *dest = compiler->vars + insn->dest_args[0];
@@ -173,7 +171,7 @@ powerpc_rule_loadoffX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
int offset;
if (compiler->vars[insn->src_args[1]].vartype != ORC_VAR_TYPE_CONST) {
- ORC_COMPILER_ERROR(compiler, "Rule only works with consts");
+ ORC_COMPILER_ERROR (compiler, "Rule only works with consts");
return;
}
@@ -181,59 +179,58 @@ powerpc_rule_loadoffX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
powerpc_emit_addi (compiler, compiler->gp_tmpreg, POWERPC_R0, offset);
switch (size) {
case 1:
- ORC_ASM_CODE(compiler," lvebx %s, %s, %s\n",
+ ORC_ASM_CODE (compiler, " lvebx %s, %s, %s\n",
powerpc_get_regname (dest->alloc),
powerpc_get_regname (compiler->gp_tmpreg),
powerpc_get_regname (src->ptr_register));
- powerpc_emit_X (compiler, 0x7c00000e, powerpc_regnum(dest->alloc),
- powerpc_regnum(compiler->gp_tmpreg),
- powerpc_regnum(src->ptr_register));
+ powerpc_emit_X (compiler, 0x7c00000e, powerpc_regnum (dest->alloc),
+ powerpc_regnum (compiler->gp_tmpreg),
+ powerpc_regnum (src->ptr_register));
break;
case 2:
- ORC_ASM_CODE(compiler," lvehx %s, %s, %s\n",
+ ORC_ASM_CODE (compiler, " lvehx %s, %s, %s\n",
powerpc_get_regname (dest->alloc),
powerpc_get_regname (compiler->gp_tmpreg),
powerpc_get_regname (src->ptr_register));
- powerpc_emit_X (compiler, 0x7c00004e, powerpc_regnum(dest->alloc),
- powerpc_regnum(compiler->gp_tmpreg),
- powerpc_regnum(src->ptr_register));
+ powerpc_emit_X (compiler, 0x7c00004e, powerpc_regnum (dest->alloc),
+ powerpc_regnum (compiler->gp_tmpreg),
+ powerpc_regnum (src->ptr_register));
break;
case 4:
- ORC_ASM_CODE(compiler," lvewx %s, %s, %s\n",
+ ORC_ASM_CODE (compiler, " lvewx %s, %s, %s\n",
powerpc_get_regname (dest->alloc),
powerpc_get_regname (compiler->gp_tmpreg),
powerpc_get_regname (src->ptr_register));
- powerpc_emit_X (compiler, 0x7c00008e, powerpc_regnum(dest->alloc),
- powerpc_regnum(compiler->gp_tmpreg),
- powerpc_regnum(src->ptr_register));
+ powerpc_emit_X (compiler, 0x7c00008e, powerpc_regnum (dest->alloc),
+ powerpc_regnum (compiler->gp_tmpreg),
+ powerpc_regnum (src->ptr_register));
break;
case 8:
case 16:
- ORC_ASM_CODE(compiler," lvx %s, %s, %s\n",
+ ORC_ASM_CODE (compiler, " lvx %s, %s, %s\n",
powerpc_get_regname (dest->alloc),
powerpc_get_regname (compiler->gp_tmpreg),
powerpc_get_regname (src->ptr_register));
- powerpc_emit_X (compiler, 0x7c0000ce, powerpc_regnum(dest->alloc),
- powerpc_regnum(compiler->gp_tmpreg),
- powerpc_regnum(src->ptr_register));
+ powerpc_emit_X (compiler, 0x7c0000ce, powerpc_regnum (dest->alloc),
+ powerpc_regnum (compiler->gp_tmpreg),
+ powerpc_regnum (src->ptr_register));
break;
default:
- ORC_COMPILER_ERROR(compiler,"bad load size %d",
+ ORC_COMPILER_ERROR (compiler, "bad load size %d",
src->size << compiler->loop_shift);
break;
}
- ORC_ASM_CODE(compiler," lvsl %s, %s, %s\n",
+ ORC_ASM_CODE (compiler, " lvsl %s, %s, %s\n",
powerpc_get_regname (perm),
powerpc_get_regname (compiler->gp_tmpreg),
powerpc_get_regname (src->ptr_register));
- powerpc_emit_X (compiler, 0x7c00000c, powerpc_regnum(perm),
- powerpc_regnum(compiler->gp_tmpreg),
- powerpc_regnum(src->ptr_register));
+ powerpc_emit_X (compiler, 0x7c00000c, powerpc_regnum (perm),
+ powerpc_regnum (compiler->gp_tmpreg), powerpc_regnum (src->ptr_register));
powerpc_emit_vperm (compiler, dest->alloc, dest->alloc, dest->alloc, perm);
}
static void
-powerpc_rule_storeX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
+powerpc_rule_storeX (OrcCompiler * compiler, void *user, OrcInstruction * insn)
{
OrcVariable *src = compiler->vars + insn->src_args[0];
OrcVariable *dest = compiler->vars + insn->dest_args[0];
@@ -241,69 +238,58 @@ powerpc_rule_storeX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
int perm = orc_compiler_get_temp_reg (compiler);
int tmp = orc_compiler_get_temp_reg (compiler);
- ORC_ASM_CODE(compiler," lvsr %s, 0, %s\n",
- powerpc_get_regname (perm),
- powerpc_get_regname (dest->ptr_register));
- powerpc_emit_X (compiler, 0x7c00004c, powerpc_regnum(perm),
- 0, powerpc_regnum(dest->ptr_register));
+ ORC_ASM_CODE (compiler, " lvsr %s, 0, %s\n",
+ powerpc_get_regname (perm), powerpc_get_regname (dest->ptr_register));
+ powerpc_emit_X (compiler, 0x7c00004c, powerpc_regnum (perm),
+ 0, powerpc_regnum (dest->ptr_register));
powerpc_emit_vperm (compiler, tmp, src->alloc, src->alloc, perm);
switch (size) {
case 1:
- ORC_ASM_CODE(compiler," stvebx %s, 0, %s\n",
- powerpc_get_regname (tmp),
- powerpc_get_regname (dest->ptr_register));
+ ORC_ASM_CODE (compiler, " stvebx %s, 0, %s\n",
+ powerpc_get_regname (tmp), powerpc_get_regname (dest->ptr_register));
powerpc_emit_X (compiler, 0x7c00010e,
- powerpc_regnum(tmp),
- 0, powerpc_regnum(dest->ptr_register));
+ powerpc_regnum (tmp), 0, powerpc_regnum (dest->ptr_register));
break;
case 2:
- ORC_ASM_CODE(compiler," stvehx %s, 0, %s\n",
- powerpc_get_regname (tmp),
- powerpc_get_regname (dest->ptr_register));
+ ORC_ASM_CODE (compiler, " stvehx %s, 0, %s\n",
+ powerpc_get_regname (tmp), powerpc_get_regname (dest->ptr_register));
powerpc_emit_X (compiler, 0x7c00014e,
- powerpc_regnum(tmp),
- 0, powerpc_regnum(dest->ptr_register));
+ powerpc_regnum (tmp), 0, powerpc_regnum (dest->ptr_register));
break;
case 4:
- ORC_ASM_CODE(compiler," stvewx %s, 0, %s\n",
- powerpc_get_regname (tmp),
- powerpc_get_regname (dest->ptr_register));
+ ORC_ASM_CODE (compiler, " stvewx %s, 0, %s\n",
+ powerpc_get_regname (tmp), powerpc_get_regname (dest->ptr_register));
powerpc_emit_X (compiler, 0x7c00018e,
- powerpc_regnum(tmp),
- 0, powerpc_regnum(dest->ptr_register));
+ powerpc_regnum (tmp), 0, powerpc_regnum (dest->ptr_register));
break;
case 8:
- ORC_ASM_CODE(compiler," stvewx %s, 0, %s\n",
- powerpc_get_regname (tmp),
- powerpc_get_regname (dest->ptr_register));
+ ORC_ASM_CODE (compiler, " stvewx %s, 0, %s\n",
+ powerpc_get_regname (tmp), powerpc_get_regname (dest->ptr_register));
powerpc_emit_X (compiler, 0x7c00018e,
- powerpc_regnum(tmp),
- 0, powerpc_regnum(dest->ptr_register));
+ powerpc_regnum (tmp), 0, powerpc_regnum (dest->ptr_register));
powerpc_emit_D (compiler, "addi", 0x38000000, compiler->gp_tmpreg,
POWERPC_R0, 4);
- ORC_ASM_CODE(compiler," stvewx %s, %s, %s\n",
+ ORC_ASM_CODE (compiler, " stvewx %s, %s, %s\n",
powerpc_get_regname (tmp),
powerpc_get_regname (compiler->gp_tmpreg),
powerpc_get_regname (dest->ptr_register));
powerpc_emit_X (compiler, 0x7c00018e,
- powerpc_regnum(tmp),
- powerpc_regnum(compiler->gp_tmpreg),
- powerpc_regnum(dest->ptr_register));
+ powerpc_regnum (tmp),
+ powerpc_regnum (compiler->gp_tmpreg),
+ powerpc_regnum (dest->ptr_register));
break;
case 16:
- ORC_ASM_CODE(compiler," stvx %s, 0, %s\n",
- powerpc_get_regname (tmp),
- powerpc_get_regname (dest->ptr_register));
+ ORC_ASM_CODE (compiler, " stvx %s, 0, %s\n",
+ powerpc_get_regname (tmp), powerpc_get_regname (dest->ptr_register));
powerpc_emit_X (compiler, 0x7c0001ce,
- powerpc_regnum(tmp),
- 0, powerpc_regnum(dest->ptr_register));
+ powerpc_regnum (tmp), 0, powerpc_regnum (dest->ptr_register));
break;
default:
- ORC_COMPILER_ERROR(compiler,"bad store size %d",
+ ORC_COMPILER_ERROR (compiler, "bad store size %d",
dest->size << compiler->loop_shift);
break;
}
@@ -339,84 +325,84 @@ powerpc_rule_ ## name (OrcCompiler *p, void *user, OrcInstruction *insn) \
} \
}
-RULE(addb, "vaddubm", 0x10000000)
-RULE(addssb, "vaddsbs", 0x10000300)
-RULE(addusb, "vaddubs", 0x10000200)
-RULE(andb, "vand", 0x10000404)
+RULE (addb, "vaddubm", 0x10000000)
+ RULE (addssb, "vaddsbs", 0x10000300)
+ RULE (addusb, "vaddubs", 0x10000200)
+ RULE (andb, "vand", 0x10000404)
//RULE(andnb, "vandc", 0x10000444)
-RULE(avgsb, "vavgsb", 0x10000502)
-RULE(avgub, "vavgub", 0x10000402)
-RULE(cmpeqb, "vcmpequb", 0x10000006)
-RULE(cmpgtsb, "vcmpgtsb", 0x10000306)
-RULE(maxsb, "vmaxsb", 0x10000102)
-RULE(maxub, "vmaxub", 0x10000002)
-RULE(minsb, "vminsb", 0x10000302)
-RULE(minub, "vminub", 0x10000202)
-RULE(orb, "vor", 0x10000484)
-RULE_SHIFT(shlb, "vslb", 0x10000104)
-RULE_SHIFT(shrsb, "vsrab", 0x10000304)
-RULE_SHIFT(shrub, "vsrb", 0x10000204)
-RULE(subb, "vsububm", 0x10000400)
-RULE(subssb, "vsubsbs", 0x10000700)
-RULE(subusb, "vsububs", 0x10000600)
-RULE(xorb, "vxor", 0x100004c4)
-
-RULE(addw, "vadduhm", 0x10000040)
-RULE(addssw, "vaddshs", 0x10000340)
-RULE(addusw, "vadduhs", 0x10000240)
-RULE(andw, "vand", 0x10000404)
+ RULE (avgsb, "vavgsb", 0x10000502)
+ RULE (avgub, "vavgub", 0x10000402)
+ RULE (cmpeqb, "vcmpequb", 0x10000006)
+ RULE (cmpgtsb, "vcmpgtsb", 0x10000306)
+ RULE (maxsb, "vmaxsb", 0x10000102)
+ RULE (maxub, "vmaxub", 0x10000002)
+ RULE (minsb, "vminsb", 0x10000302)
+ RULE (minub, "vminub", 0x10000202)
+ RULE (orb, "vor", 0x10000484)
+ RULE_SHIFT (shlb, "vslb", 0x10000104)
+ RULE_SHIFT (shrsb, "vsrab", 0x10000304)
+ RULE_SHIFT (shrub, "vsrb", 0x10000204)
+ RULE (subb, "vsububm", 0x10000400)
+ RULE (subssb, "vsubsbs", 0x10000700)
+ RULE (subusb, "vsububs", 0x10000600)
+ RULE (xorb, "vxor", 0x100004c4)
+
+ RULE (addw, "vadduhm", 0x10000040)
+ RULE (addssw, "vaddshs", 0x10000340)
+ RULE (addusw, "vadduhs", 0x10000240)
+ RULE (andw, "vand", 0x10000404)
//RULE(andnw, "vandc", 0x10000444)
-RULE(avgsw, "vavgsh", 0x10000542)
-RULE(avguw, "vavguh", 0x10000442)
-RULE(cmpeqw, "vcmpequh", 0x10000046)
-RULE(cmpgtsw, "vcmpgtsh", 0x10000346)
-RULE(maxsw, "vmaxsh", 0x10000142)
-RULE(maxuw, "vmaxuh", 0x10000042)
-RULE(minsw, "vminsh", 0x10000342)
-RULE(minuw, "vminuh", 0x10000242)
-RULE(orw, "vor", 0x10000484)
-RULE_SHIFT(shlw, "vslh", 0x10000144)
-RULE_SHIFT(shrsw, "vsrah", 0x10000344)
-RULE_SHIFT(shruw, "vsrh", 0x10000244)
-RULE(subw, "vsubuhm", 0x10000440)
-RULE(subssw, "vsubshs", 0x10000740)
-RULE(subusw, "vsubuhs", 0x10000640)
-RULE(xorw, "vxor", 0x100004c4)
-
-RULE(addl, "vadduwm", 0x10000080)
-RULE(addssl, "vaddsws", 0x10000380)
-RULE(addusl, "vadduws", 0x10000280)
-RULE(andl, "vand", 0x10000404)
+ RULE (avgsw, "vavgsh", 0x10000542)
+ RULE (avguw, "vavguh", 0x10000442)
+ RULE (cmpeqw, "vcmpequh", 0x10000046)
+ RULE (cmpgtsw, "vcmpgtsh", 0x10000346)
+ RULE (maxsw, "vmaxsh", 0x10000142)
+ RULE (maxuw, "vmaxuh", 0x10000042)
+ RULE (minsw, "vminsh", 0x10000342)
+ RULE (minuw, "vminuh", 0x10000242)
+ RULE (orw, "vor", 0x10000484)
+ RULE_SHIFT (shlw, "vslh", 0x10000144)
+ RULE_SHIFT (shrsw, "vsrah", 0x10000344)
+ RULE_SHIFT (shruw, "vsrh", 0x10000244)
+ RULE (subw, "vsubuhm", 0x10000440)
+ RULE (subssw, "vsubshs", 0x10000740)
+ RULE (subusw, "vsubuhs", 0x10000640)
+ RULE (xorw, "vxor", 0x100004c4)
+
+ RULE (addl, "vadduwm", 0x10000080)
+ RULE (addssl, "vaddsws", 0x10000380)
+ RULE (addusl, "vadduws", 0x10000280)
+ RULE (andl, "vand", 0x10000404)
//RULE(andnl, "vandc", 0x10000444)
-RULE(avgsl, "vavgsw", 0x10000582)
-RULE(avgul, "vavguw", 0x10000482)
-RULE(cmpeql, "vcmpequw", 0x10000086)
-RULE(cmpgtsl, "vcmpgtsw", 0x10000386)
-RULE(maxsl, "vmaxsw", 0x10000182)
-RULE(maxul, "vmaxuw", 0x10000082)
-RULE(minsl, "vminsw", 0x10000382)
-RULE(minul, "vminuw", 0x10000282)
-RULE(orl, "vor", 0x10000484)
-RULE_SHIFT(shll, "vslw", 0x10000184)
-RULE_SHIFT(shrsl, "vsraw", 0x10000384)
-RULE_SHIFT(shrul, "vsrw", 0x10000284)
-RULE(subl, "vsubuwm", 0x10000480)
-RULE(subssl, "vsubsws", 0x10000780)
-RULE(subusl, "vsubuws", 0x10000680)
-RULE(xorl, "vxor", 0x100004c4)
-
-RULE(andq, "vand", 0x10000404)
-RULE(orq, "vor", 0x10000484)
-RULE(xorq, "vxor", 0x100004c4)
-
-RULE(addf, "vaddfp", 0x1000000a)
-RULE(subf, "vsubfp", 0x1000004a)
-RULE(maxf, "vmaxfp", 0x1000040a)
-RULE(minf, "vminfp", 0x1000044a)
-RULE(cmpeqf, "vcmpeqfp", 0x100000c6)
-
-static void
-powerpc_rule_andnX (OrcCompiler *p, void *user, OrcInstruction *insn)
+ RULE (avgsl, "vavgsw", 0x10000582)
+ RULE (avgul, "vavguw", 0x10000482)
+ RULE (cmpeql, "vcmpequw", 0x10000086)
+ RULE (cmpgtsl, "vcmpgtsw", 0x10000386)
+ RULE (maxsl, "vmaxsw", 0x10000182)
+ RULE (maxul, "vmaxuw", 0x10000082)
+ RULE (minsl, "vminsw", 0x10000382)
+ RULE (minul, "vminuw", 0x10000282)
+ RULE (orl, "vor", 0x10000484)
+ RULE_SHIFT (shll, "vslw", 0x10000184)
+ RULE_SHIFT (shrsl, "vsraw", 0x10000384)
+ RULE_SHIFT (shrul, "vsrw", 0x10000284)
+ RULE (subl, "vsubuwm", 0x10000480)
+ RULE (subssl, "vsubsws", 0x10000780)
+ RULE (subusl, "vsubuws", 0x10000680)
+ RULE (xorl, "vxor", 0x100004c4)
+
+ RULE (andq, "vand", 0x10000404)
+ RULE (orq, "vor", 0x10000484)
+ RULE (xorq, "vxor", 0x100004c4)
+
+ RULE (addf, "vaddfp", 0x1000000a)
+ RULE (subf, "vsubfp", 0x1000004a)
+ RULE (maxf, "vmaxfp", 0x1000040a)
+ RULE (minf, "vminfp", 0x1000044a)
+ RULE (cmpeqf, "vcmpeqfp", 0x100000c6)
+
+ static void
+ powerpc_rule_andnX (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -426,7 +412,7 @@ powerpc_rule_andnX (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_copyX (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_copyX (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -435,7 +421,7 @@ powerpc_rule_copyX (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_mullb (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_mullb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -446,7 +432,7 @@ powerpc_rule_mullb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_mulhsb (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_mulhsb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -456,7 +442,7 @@ powerpc_rule_mulhsb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_mulhub (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_mulhub (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -466,7 +452,7 @@ powerpc_rule_mulhub (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_mulhsw (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_mulhsw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -476,7 +462,7 @@ powerpc_rule_mulhsw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_mulhuw (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_mulhuw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -486,7 +472,7 @@ powerpc_rule_mulhuw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_mullw (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_mullw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -498,7 +484,7 @@ powerpc_rule_mullw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_convsbw (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_convsbw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -507,7 +493,7 @@ powerpc_rule_convsbw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_convswl (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_convswl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -516,7 +502,7 @@ powerpc_rule_convswl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_convubw (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_convubw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int reg = powerpc_get_constant (p, ORC_CONST_ZERO, 0);
int src1 = ORC_SRC_ARG (p, insn, 0);
@@ -526,7 +512,7 @@ powerpc_rule_convubw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_convuwl (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_convuwl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int reg = powerpc_get_constant (p, ORC_CONST_ZERO, 0);
int src1 = ORC_SRC_ARG (p, insn, 0);
@@ -536,7 +522,7 @@ powerpc_rule_convuwl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_convssswb (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_convssswb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -545,7 +531,7 @@ powerpc_rule_convssswb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_convssslw (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_convssslw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -554,7 +540,7 @@ powerpc_rule_convssslw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_convsuswb (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_convsuswb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -563,7 +549,7 @@ powerpc_rule_convsuswb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_convsuslw (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_convsuslw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -572,7 +558,7 @@ powerpc_rule_convsuslw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_convuuswb (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_convuuswb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -581,7 +567,7 @@ powerpc_rule_convuuswb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_convuuslw (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_convuuslw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -590,7 +576,7 @@ powerpc_rule_convuuslw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_convwb (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_convwb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -599,7 +585,7 @@ powerpc_rule_convwb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_convlw (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_convlw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -608,7 +594,7 @@ powerpc_rule_convlw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_mulsbw (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_mulsbw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -618,7 +604,7 @@ powerpc_rule_mulsbw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_mulubw (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_mulubw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -628,7 +614,7 @@ powerpc_rule_mulubw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_mulswl (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_mulswl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -638,7 +624,7 @@ powerpc_rule_mulswl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_muluwl (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_muluwl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -648,7 +634,7 @@ powerpc_rule_muluwl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_accw (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_accw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -657,7 +643,7 @@ powerpc_rule_accw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_accl (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_accl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -666,7 +652,7 @@ powerpc_rule_accl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_accsadubl (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_accsadubl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int tmp1 = p->tmpreg;
int tmp2 = POWERPC_V31;
@@ -693,7 +679,7 @@ powerpc_rule_accsadubl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_signb (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_signb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int reg;
int src1 = ORC_SRC_ARG (p, insn, 0);
@@ -706,20 +692,20 @@ powerpc_rule_signb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_signw (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_signw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int reg;
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
reg = powerpc_get_constant (p, ORC_CONST_SPLAT_W, 1);
- powerpc_emit_vminsh(p, dest, src1, reg);
+ powerpc_emit_vminsh (p, dest, src1, reg);
reg = powerpc_get_constant (p, ORC_CONST_SPLAT_W, -1);
- powerpc_emit_vmaxsh(p, dest, dest, reg);
+ powerpc_emit_vmaxsh (p, dest, dest, reg);
}
static void
-powerpc_rule_signl (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_signl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int reg;
int src1 = ORC_SRC_ARG (p, insn, 0);
@@ -732,7 +718,7 @@ powerpc_rule_signl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_select1wb (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_select1wb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -741,7 +727,7 @@ powerpc_rule_select1wb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_select0wb (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_select0wb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -753,7 +739,7 @@ powerpc_rule_select0wb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_select1lw (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_select1lw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -762,7 +748,7 @@ powerpc_rule_select1lw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_select0lw (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_select0lw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -774,31 +760,31 @@ powerpc_rule_select0lw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_select1ql (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_select1ql (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
int perm;
perm = powerpc_get_constant_full (p, 0x04050607, 0x0c0d0e0f,
- 0x14151617, 0x1c1d1e1f);
+ 0x14151617, 0x1c1d1e1f);
powerpc_emit_vperm (p, dest, src1, src1, perm);
}
static void
-powerpc_rule_select0ql (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_select0ql (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
int perm;
perm = powerpc_get_constant_full (p, 0x00010203, 0x08090a0b,
- 0x10111213, 0x18191a1b);
+ 0x10111213, 0x18191a1b);
powerpc_emit_vperm (p, dest, src1, src1, perm);
}
static void
-powerpc_rule_mergebw (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_mergebw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -811,7 +797,7 @@ powerpc_rule_mergebw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_mergewl (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_mergewl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -824,7 +810,7 @@ powerpc_rule_mergewl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_mergelq (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_mergelq (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -837,7 +823,7 @@ powerpc_rule_mergelq (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_absb (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_absb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int tmpc;
int src1 = ORC_SRC_ARG (p, insn, 0);
@@ -855,7 +841,7 @@ powerpc_rule_absb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_absw (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_absw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int tmp;
int tmpc;
@@ -873,7 +859,7 @@ powerpc_rule_absw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_absl (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_absl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int tmp;
int tmpc;
@@ -891,7 +877,7 @@ powerpc_rule_absl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_splatw3q (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_splatw3q (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -903,7 +889,7 @@ powerpc_rule_splatw3q (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_splatbw (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_splatbw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -912,7 +898,7 @@ powerpc_rule_splatbw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_splatbl (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_splatbl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -929,7 +915,7 @@ powerpc_rule_splatbl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_convulq (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_convulq (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -943,15 +929,15 @@ powerpc_rule_convulq (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_convslq (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_convslq (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
int perm;
int tmp = orc_compiler_get_temp_reg (p);
- ORC_ASM_CODE(p," vspltisb %s, -1\n", powerpc_get_regname(tmp));
- powerpc_emit_VX(p, 0x1000030c, powerpc_regnum(tmp), 0x1f, 0);
+ ORC_ASM_CODE (p, " vspltisb %s, -1\n", powerpc_get_regname (tmp));
+ powerpc_emit_VX (p, 0x1000030c, powerpc_regnum (tmp), 0x1f, 0);
powerpc_emit_VX_2 (p, "vsraw", 0x10000384, tmp, src1, tmp);
@@ -961,7 +947,7 @@ powerpc_rule_convslq (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_convhwb (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_convhwb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -973,7 +959,7 @@ powerpc_rule_convhwb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_convhlw (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_convhlw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -985,7 +971,7 @@ powerpc_rule_convhlw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_convql (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_convql (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -997,7 +983,7 @@ powerpc_rule_convql (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_swapw (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_swapw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -1009,7 +995,7 @@ powerpc_rule_swapw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_swapl (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_swapl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -1021,7 +1007,7 @@ powerpc_rule_swapl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_swapwl (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_swapwl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -1033,7 +1019,7 @@ powerpc_rule_swapwl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_swaplq (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_swaplq (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -1045,7 +1031,7 @@ powerpc_rule_swaplq (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_swapq (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_swapq (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -1057,7 +1043,7 @@ powerpc_rule_swapq (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_splitql (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_splitql (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest1 = ORC_DEST_ARG (p, insn, 0);
@@ -1065,15 +1051,15 @@ powerpc_rule_splitql (OrcCompiler *p, void *user, OrcInstruction *insn)
int perm;
perm = powerpc_get_constant_full (p, 0x04050607, 0x0c0d0e0f,
- 0x14151617, 0x1c1d1e1f);
+ 0x14151617, 0x1c1d1e1f);
powerpc_emit_vperm (p, dest1, src1, src1, perm);
perm = powerpc_get_constant_full (p, 0x00010203, 0x08090a0b,
- 0x10111213, 0x18191a1b);
+ 0x10111213, 0x18191a1b);
powerpc_emit_vperm (p, dest2, src1, src1, perm);
}
static void
-powerpc_rule_splitlw (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_splitlw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest1 = ORC_DEST_ARG (p, insn, 0);
@@ -1082,12 +1068,12 @@ powerpc_rule_splitlw (OrcCompiler *p, void *user, OrcInstruction *insn)
powerpc_emit_vpkuwum (p, dest1, src1, src1);
perm = powerpc_get_constant_full (p, 0x00010405, 0x08090c0d,
- 0x10111415, 0x18191c1d);
+ 0x10111415, 0x18191c1d);
powerpc_emit_vperm (p, dest2, src1, src1, perm);
}
static void
-powerpc_rule_splitwb (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_splitwb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest1 = ORC_DEST_ARG (p, insn, 0);
@@ -1096,12 +1082,12 @@ powerpc_rule_splitwb (OrcCompiler *p, void *user, OrcInstruction *insn)
powerpc_emit_vpkuhum (p, dest1, src1, src1);
perm = powerpc_get_constant_full (p, 0x00020406, 0x080a0c0e,
- 0x10121416, 0x181a1c1e);
+ 0x10121416, 0x181a1c1e);
powerpc_emit_vperm (p, dest2, src1, src1, perm);
}
static void
-powerpc_rule_mulf (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_mulf (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -1113,7 +1099,7 @@ powerpc_rule_mulf (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_divf (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_divf (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -1135,7 +1121,7 @@ powerpc_rule_divf (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_cmpltf (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_cmpltf (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -1145,7 +1131,7 @@ powerpc_rule_cmpltf (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_cmplef (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_cmplef (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -1155,7 +1141,7 @@ powerpc_rule_cmplef (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_convfl (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_convfl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -1178,7 +1164,7 @@ powerpc_rule_convfl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_convlf (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_convlf (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -1187,7 +1173,7 @@ powerpc_rule_convlf (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-powerpc_rule_div255w (OrcCompiler *p, void *user, OrcInstruction *insn)
+powerpc_rule_div255w (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -1198,8 +1184,8 @@ powerpc_rule_div255w (OrcCompiler *p, void *user, OrcInstruction *insn)
tmpc = powerpc_get_constant (p, ORC_CONST_SPLAT_W, 0x0080);
powerpc_emit_VX_2 (p, "vadduhm", 0x10000040, dest, src1, tmpc);
- ORC_ASM_CODE(p," vspltish %s, 8\n", powerpc_get_regname(tmp2));
- powerpc_emit_VX(p, 0x1000034c, powerpc_regnum(tmp2), 8, 0);
+ ORC_ASM_CODE (p, " vspltish %s, 8\n", powerpc_get_regname (tmp2));
+ powerpc_emit_VX (p, 0x1000034c, powerpc_regnum (tmp2), 8, 0);
powerpc_emit_VX_2 (p, "vsrh", 0x10000244, tmp, dest, tmp2);
powerpc_emit_VX_2 (p, "vadduhm", 0x10000040, dest, dest, tmp);
@@ -1207,161 +1193,163 @@ powerpc_rule_div255w (OrcCompiler *p, void *user, OrcInstruction *insn)
}
void
-orc_compiler_powerpc_register_rules (OrcTarget *target)
+orc_compiler_powerpc_register_rules (OrcTarget * target)
{
OrcRuleSet *rule_set;
- rule_set = orc_rule_set_new (orc_opcode_set_get("sys"), target, 0);
+ rule_set = orc_rule_set_new (orc_opcode_set_get ("sys"), target, 0);
#define REG(name) \
orc_rule_register (rule_set, #name , powerpc_rule_ ## name , NULL);
- REG(addb);
- REG(addssb);
- REG(addusb);
- REG(andb);
- REG(avgsb);
- REG(avgub);
- REG(cmpeqb);
- REG(cmpgtsb);
- REG(maxsb);
- REG(maxub);
- REG(minsb);
- REG(minub);
- REG(orb);
- REG(shlb);
- REG(shrsb);
- REG(shrub);
- REG(subb);
- REG(subssb);
- REG(subusb);
- REG(xorb);
-
- REG(addw);
- REG(addssw);
- REG(addusw);
- REG(andw);
- REG(avgsw);
- REG(avguw);
- REG(cmpeqw);
- REG(cmpgtsw);
- REG(maxsw);
- REG(maxuw);
- REG(minsw);
- REG(minuw);
- REG(orw);
- REG(shlw);
- REG(shrsw);
- REG(shruw);
- REG(subw);
- REG(subssw);
- REG(subusw);
- REG(xorw);
-
- REG(addl);
- REG(addssl);
- REG(addusl);
- REG(andl);
- REG(avgsl);
- REG(avgul);
- REG(cmpeql);
- REG(cmpgtsl);
- REG(maxsl);
- REG(maxul);
- REG(minsl);
- REG(minul);
- REG(orl);
- REG(shll);
- REG(shrsl);
- REG(shrul);
- REG(subl);
- REG(subssl);
- REG(subusl);
- REG(xorl);
-
- REG(andq);
- REG(orq);
- REG(xorq);
-
- REG(mullb);
- REG(mulhsb);
- REG(mulhub);
- REG(mullw);
- REG(mulhsw);
- REG(mulhuw);
-
- REG(convsbw);
- REG(convswl);
- REG(convubw);
- REG(convuwl);
- REG(convssswb);
- REG(convssslw);
- REG(convsuswb);
- REG(convsuslw);
- REG(convuuswb);
- REG(convuuslw);
- REG(convwb);
- REG(convlw);
-
- REG(mulsbw);
- REG(mulubw);
- REG(mulswl);
- REG(muluwl);
-
- REG(accw);
- REG(accl);
- REG(accsadubl);
-
- REG(signb);
- REG(signw);
- REG(signl);
-
- REG(select0wb);
- REG(select1wb);
- REG(select0lw);
- REG(select1lw);
- REG(select0ql);
- REG(select1ql);
- REG(mergebw);
- REG(mergewl);
- REG(mergelq);
-
- REG(absb);
- REG(absw);
- REG(absl);
- REG(splatw3q);
- REG(splatbw);
- REG(splatbl);
- REG(convslq);
- REG(convulq);
- REG(convhwb);
- REG(convhlw);
- REG(convql);
- REG(swapw);
- REG(swapl);
- REG(swapwl);
- REG(swapq);
- REG(swaplq);
- if (0) REG(splitql);
- REG(splitlw);
- REG(splitwb);
- REG(div255w);
-
- REG(addf);
- REG(subf);
- REG(minf);
- REG(maxf);
- REG(cmpeqf);
- REG(cmplef);
- REG(cmpltf);
- REG(mulf);
- if (0) REG(divf); /* not accurate enough */
- REG(convfl);
- REG(convlf);
-
- orc_rule_register (rule_set, "loadpb", powerpc_rule_loadpX, (void *)1);
- orc_rule_register (rule_set, "loadpw", powerpc_rule_loadpX, (void *)2);
- orc_rule_register (rule_set, "loadpl", powerpc_rule_loadpX, (void *)4);
+ REG (addb);
+ REG (addssb);
+ REG (addusb);
+ REG (andb);
+ REG (avgsb);
+ REG (avgub);
+ REG (cmpeqb);
+ REG (cmpgtsb);
+ REG (maxsb);
+ REG (maxub);
+ REG (minsb);
+ REG (minub);
+ REG (orb);
+ REG (shlb);
+ REG (shrsb);
+ REG (shrub);
+ REG (subb);
+ REG (subssb);
+ REG (subusb);
+ REG (xorb);
+
+ REG (addw);
+ REG (addssw);
+ REG (addusw);
+ REG (andw);
+ REG (avgsw);
+ REG (avguw);
+ REG (cmpeqw);
+ REG (cmpgtsw);
+ REG (maxsw);
+ REG (maxuw);
+ REG (minsw);
+ REG (minuw);
+ REG (orw);
+ REG (shlw);
+ REG (shrsw);
+ REG (shruw);
+ REG (subw);
+ REG (subssw);
+ REG (subusw);
+ REG (xorw);
+
+ REG (addl);
+ REG (addssl);
+ REG (addusl);
+ REG (andl);
+ REG (avgsl);
+ REG (avgul);
+ REG (cmpeql);
+ REG (cmpgtsl);
+ REG (maxsl);
+ REG (maxul);
+ REG (minsl);
+ REG (minul);
+ REG (orl);
+ REG (shll);
+ REG (shrsl);
+ REG (shrul);
+ REG (subl);
+ REG (subssl);
+ REG (subusl);
+ REG (xorl);
+
+ REG (andq);
+ REG (orq);
+ REG (xorq);
+
+ REG (mullb);
+ REG (mulhsb);
+ REG (mulhub);
+ REG (mullw);
+ REG (mulhsw);
+ REG (mulhuw);
+
+ REG (convsbw);
+ REG (convswl);
+ REG (convubw);
+ REG (convuwl);
+ REG (convssswb);
+ REG (convssslw);
+ REG (convsuswb);
+ REG (convsuslw);
+ REG (convuuswb);
+ REG (convuuslw);
+ REG (convwb);
+ REG (convlw);
+
+ REG (mulsbw);
+ REG (mulubw);
+ REG (mulswl);
+ REG (muluwl);
+
+ REG (accw);
+ REG (accl);
+ REG (accsadubl);
+
+ REG (signb);
+ REG (signw);
+ REG (signl);
+
+ REG (select0wb);
+ REG (select1wb);
+ REG (select0lw);
+ REG (select1lw);
+ REG (select0ql);
+ REG (select1ql);
+ REG (mergebw);
+ REG (mergewl);
+ REG (mergelq);
+
+ REG (absb);
+ REG (absw);
+ REG (absl);
+ REG (splatw3q);
+ REG (splatbw);
+ REG (splatbl);
+ REG (convslq);
+ REG (convulq);
+ REG (convhwb);
+ REG (convhlw);
+ REG (convql);
+ REG (swapw);
+ REG (swapl);
+ REG (swapwl);
+ REG (swapq);
+ REG (swaplq);
+ if (0)
+ REG (splitql);
+ REG (splitlw);
+ REG (splitwb);
+ REG (div255w);
+
+ REG (addf);
+ REG (subf);
+ REG (minf);
+ REG (maxf);
+ REG (cmpeqf);
+ REG (cmplef);
+ REG (cmpltf);
+ REG (mulf);
+ if (0)
+ REG (divf); /* not accurate enough */
+ REG (convfl);
+ REG (convlf);
+
+ orc_rule_register (rule_set, "loadpb", powerpc_rule_loadpX, (void *) 1);
+ orc_rule_register (rule_set, "loadpw", powerpc_rule_loadpX, (void *) 2);
+ orc_rule_register (rule_set, "loadpl", powerpc_rule_loadpX, (void *) 4);
orc_rule_register (rule_set, "loadb", powerpc_rule_loadX, NULL);
orc_rule_register (rule_set, "loadw", powerpc_rule_loadX, NULL);
orc_rule_register (rule_set, "loadl", powerpc_rule_loadX, NULL);
@@ -1385,4 +1373,3 @@ orc_compiler_powerpc_register_rules (OrcTarget *target)
orc_rule_register (rule_set, "copyq", powerpc_rule_copyX, NULL);
}
-
diff --git a/orc/orcrules-arm.c b/orc/orcrules-arm.c
index b5b0e76..36453d7 100644
--- a/orc/orcrules-arm.c
+++ b/orc/orcrules-arm.c
@@ -79,20 +79,20 @@ arm_rule_ ## opcode (OrcCompiler *p, void *user, OrcInstruction *insn) \
} while (0)
static void
-arm_rule_loadpX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
+arm_rule_loadpX (OrcCompiler * compiler, void *user, OrcInstruction * insn)
{
if (compiler->vars[insn->src_args[0]].vartype == ORC_VAR_TYPE_CONST) {
orc_arm_emit_load_imm (compiler, compiler->vars[insn->dest_args[0]].alloc,
- (int)compiler->vars[insn->src_args[0]].value.i);
+ (int) compiler->vars[insn->src_args[0]].value.i);
} else {
orc_arm_loadw (compiler, compiler->vars[insn->dest_args[0]].alloc,
compiler->exec_reg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[insn->src_args[0]]));
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[insn->src_args[0]]));
}
}
static void
-arm_rule_loadX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
+arm_rule_loadX (OrcCompiler * compiler, void *user, OrcInstruction * insn)
{
int src = compiler->vars[insn->src_args[0]].ptr_register;
int dest = compiler->vars[insn->dest_args[0]].alloc;
@@ -104,29 +104,26 @@ arm_rule_loadX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
if (size == 4) {
code = 0xe5900000;
- ORC_ASM_CODE(compiler," ldr %s, [%s, #%d]\n",
- orc_arm_reg_name (dest),
- orc_arm_reg_name (src), offset);
+ ORC_ASM_CODE (compiler, " ldr %s, [%s, #%d]\n",
+ orc_arm_reg_name (dest), orc_arm_reg_name (src), offset);
} else if (size == 2) {
code = 0xe1d000b0;
- ORC_ASM_CODE(compiler," ldrh %s, [%s, #%d]\n",
- orc_arm_reg_name (dest),
- orc_arm_reg_name (src), offset);
+ ORC_ASM_CODE (compiler, " ldrh %s, [%s, #%d]\n",
+ orc_arm_reg_name (dest), orc_arm_reg_name (src), offset);
} else {
code = 0xe5d00000;
- ORC_ASM_CODE(compiler," ldrb %s, [%s, #%d]\n",
- orc_arm_reg_name (dest),
- orc_arm_reg_name (src), offset);
+ ORC_ASM_CODE (compiler, " ldrb %s, [%s, #%d]\n",
+ orc_arm_reg_name (dest), orc_arm_reg_name (src), offset);
}
- code |= (src&0xf) << 16;
- code |= (dest&0xf) << 12;
- code |= (offset&0xf0) << 4;
- code |= offset&0x0f;
+ code |= (src & 0xf) << 16;
+ code |= (dest & 0xf) << 12;
+ code |= (offset & 0xf0) << 4;
+ code |= offset & 0x0f;
orc_arm_emit (compiler, code);
}
static void
-arm_rule_storeX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
+arm_rule_storeX (OrcCompiler * compiler, void *user, OrcInstruction * insn)
{
int src = compiler->vars[insn->src_args[0]].alloc;
int dest = compiler->vars[insn->dest_args[0]].ptr_register;
@@ -138,131 +135,122 @@ arm_rule_storeX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
if (size == 4) {
code = 0xe5800000;
- ORC_ASM_CODE(compiler," str %s, [%s, #%d]\n",
- orc_arm_reg_name (src),
- orc_arm_reg_name (dest), offset);
+ ORC_ASM_CODE (compiler, " str %s, [%s, #%d]\n",
+ orc_arm_reg_name (src), orc_arm_reg_name (dest), offset);
} else if (size == 2) {
code = 0xe1c000b0;
- ORC_ASM_CODE(compiler," strh %s, [%s, #%d]\n",
- orc_arm_reg_name (src),
- orc_arm_reg_name (dest), offset);
+ ORC_ASM_CODE (compiler, " strh %s, [%s, #%d]\n",
+ orc_arm_reg_name (src), orc_arm_reg_name (dest), offset);
} else {
code = 0xe5c00000;
- ORC_ASM_CODE(compiler," strb %s, [%s, #%d]\n",
- orc_arm_reg_name (src),
- orc_arm_reg_name (dest), offset);
+ ORC_ASM_CODE (compiler, " strb %s, [%s, #%d]\n",
+ orc_arm_reg_name (src), orc_arm_reg_name (dest), offset);
}
- code |= (dest&0xf) << 16;
- code |= (src&0xf) << 12;
- code |= (offset&0xf0) << 4;
- code |= offset&0x0f;
+ code |= (dest & 0xf) << 16;
+ code |= (src & 0xf) << 12;
+ code |= (offset & 0xf0) << 4;
+ code |= offset & 0x0f;
orc_arm_emit (compiler, code);
}
void
-orc_arm_loadb (OrcCompiler *compiler, int dest, int src1, int offset)
+orc_arm_loadb (OrcCompiler * compiler, int dest, int src1, int offset)
{
orc_uint32 code;
code = 0xe5d00000;
- code |= (src1&0xf) << 16;
- code |= (dest&0xf) << 12;
- code |= (offset&0xf0) << 4;
- code |= offset&0x0f;
-
- ORC_ASM_CODE(compiler," ldrb %s, [%s, #%d]\n",
- orc_arm_reg_name (dest),
- orc_arm_reg_name (src1), offset);
+ code |= (src1 & 0xf) << 16;
+ code |= (dest & 0xf) << 12;
+ code |= (offset & 0xf0) << 4;
+ code |= offset & 0x0f;
+
+ ORC_ASM_CODE (compiler, " ldrb %s, [%s, #%d]\n",
+ orc_arm_reg_name (dest), orc_arm_reg_name (src1), offset);
orc_arm_emit (compiler, code);
}
void
-orc_arm_storeb (OrcCompiler *compiler, int dest, int offset, int src1)
+orc_arm_storeb (OrcCompiler * compiler, int dest, int offset, int src1)
{
orc_uint32 code;
code = 0xe5c00000;
- code |= (dest&0xf) << 16;
- code |= (src1&0xf) << 12;
- code |= (offset&0xf0) << 4;
- code |= offset&0x0f;
-
- ORC_ASM_CODE(compiler," strb %s, [%s, #%d]\n",
- orc_arm_reg_name (src1),
- orc_arm_reg_name (dest), offset);
+ code |= (dest & 0xf) << 16;
+ code |= (src1 & 0xf) << 12;
+ code |= (offset & 0xf0) << 4;
+ code |= offset & 0x0f;
+
+ ORC_ASM_CODE (compiler, " strb %s, [%s, #%d]\n",
+ orc_arm_reg_name (src1), orc_arm_reg_name (dest), offset);
orc_arm_emit (compiler, code);
}
void
-orc_arm_loadl (OrcCompiler *compiler, int dest, int src1, int offset)
+orc_arm_loadl (OrcCompiler * compiler, int dest, int src1, int offset)
{
orc_uint32 code;
code = 0xe5900000;
- code |= (src1&0xf) << 16;
- code |= (dest&0xf) << 12;
- code |= (offset&0xf0) << 4;
- code |= offset&0x0f;
-
- ORC_ASM_CODE(compiler," ldr %s, [%s, #%d]\n",
- orc_arm_reg_name (dest),
- orc_arm_reg_name (src1), offset);
+ code |= (src1 & 0xf) << 16;
+ code |= (dest & 0xf) << 12;
+ code |= (offset & 0xf0) << 4;
+ code |= offset & 0x0f;
+
+ ORC_ASM_CODE (compiler, " ldr %s, [%s, #%d]\n",
+ orc_arm_reg_name (dest), orc_arm_reg_name (src1), offset);
orc_arm_emit (compiler, code);
}
void
-orc_arm_storel (OrcCompiler *compiler, int dest, int offset, int src1)
+orc_arm_storel (OrcCompiler * compiler, int dest, int offset, int src1)
{
orc_uint32 code;
code = 0xe5800000;
- code |= (dest&0xf) << 16;
- code |= (src1&0xf) << 12;
- code |= (offset&0xf0) << 4;
- code |= offset&0x0f;
-
- ORC_ASM_CODE(compiler," str %s, [%s, #%d]\n",
- orc_arm_reg_name (src1),
- orc_arm_reg_name (dest), offset);
+ code |= (dest & 0xf) << 16;
+ code |= (src1 & 0xf) << 12;
+ code |= (offset & 0xf0) << 4;
+ code |= offset & 0x0f;
+
+ ORC_ASM_CODE (compiler, " str %s, [%s, #%d]\n",
+ orc_arm_reg_name (src1), orc_arm_reg_name (dest), offset);
orc_arm_emit (compiler, code);
}
void
-orc_arm_loadw (OrcCompiler *compiler, int dest, int src1, int offset)
+orc_arm_loadw (OrcCompiler * compiler, int dest, int src1, int offset)
{
orc_uint32 code;
code = 0xe1d000b0;
- code |= (src1&0xf) << 16;
- code |= (dest&0xf) << 12;
- code |= (offset&0xf0) << 4;
- code |= offset&0x0f;
-
- ORC_ASM_CODE(compiler," ldrh %s, [%s, #%d]\n",
- orc_arm_reg_name (dest),
- orc_arm_reg_name (src1), offset);
+ code |= (src1 & 0xf) << 16;
+ code |= (dest & 0xf) << 12;
+ code |= (offset & 0xf0) << 4;
+ code |= offset & 0x0f;
+
+ ORC_ASM_CODE (compiler, " ldrh %s, [%s, #%d]\n",
+ orc_arm_reg_name (dest), orc_arm_reg_name (src1), offset);
orc_arm_emit (compiler, code);
}
void
-orc_arm_storew (OrcCompiler *compiler, int dest, int offset, int src1)
+orc_arm_storew (OrcCompiler * compiler, int dest, int offset, int src1)
{
orc_uint32 code;
code = 0xe1c000b0;
- code |= (dest&0xf) << 16;
- code |= (src1&0xf) << 12;
- code |= (offset&0xf0) << 4;
- code |= offset&0x0f;
-
- ORC_ASM_CODE(compiler," strh %s, [%s, #%d]\n",
- orc_arm_reg_name (src1),
- orc_arm_reg_name (dest), offset);
+ code |= (dest & 0xf) << 16;
+ code |= (src1 & 0xf) << 12;
+ code |= (offset & 0xf0) << 4;
+ code |= offset & 0x0f;
+
+ ORC_ASM_CODE (compiler, " strh %s, [%s, #%d]\n",
+ orc_arm_reg_name (src1), orc_arm_reg_name (dest), offset);
orc_arm_emit (compiler, code);
}
void
-orc_arm_emit_mov_iw (OrcCompiler *p, int cond, int dest, int val, int loop)
+orc_arm_emit_mov_iw (OrcCompiler * p, int cond, int dest, int val, int loop)
{
/* dest = val */
orc_arm_emit_mov_i (p, cond, 0, dest, val);
@@ -272,7 +260,7 @@ orc_arm_emit_mov_iw (OrcCompiler *p, int cond, int dest, int val, int loop)
}
void
-orc_arm_emit_mov_ib (OrcCompiler *p, int cond, int dest, int val, int loop)
+orc_arm_emit_mov_ib (OrcCompiler * p, int cond, int dest, int val, int loop)
{
/* 1 byte */
orc_arm_emit_mov_i (p, cond, 0, dest, val);
@@ -286,12 +274,12 @@ orc_arm_emit_mov_ib (OrcCompiler *p, int cond, int dest, int val, int loop)
/* byte instructions */
static void
-arm_rule_absX (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_absX (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
int tmp = p->tmpreg;
- int type = ORC_PTR_TO_INT(user);
+ int type = ORC_PTR_TO_INT (user);
orc_arm_emit_mov_i (p, ORC_ARM_COND_AL, 0, dest, 0);
@@ -309,40 +297,43 @@ arm_rule_absX (OrcCompiler *p, void *user, OrcInstruction *insn)
/* take positive or negative values */
orc_arm_emit_sel (p, ORC_ARM_COND_AL, dest, src1, tmp);
}
+
BINARY_MM (addb, sadd8);
BINARY_MM (addssb, qadd8);
BINARY_MM (addusb, uqadd8);
BINARY_DP (andX, and);
static void
-arm_rule_andnX (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_andnX (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
int dest = ORC_DEST_ARG (p, insn, 0);
- orc_arm_emit_bic_r (p, ORC_ARM_COND_AL, 0, dest, src2, src1);
+ orc_arm_emit_bic_r (p, ORC_ARM_COND_AL, 0, dest, src2, src1);
}
static void
-arm_rule_avgX (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_avgX (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
int mask = p->tmpreg;
int tmp = p->gp_tmpreg;
int dest = ORC_DEST_ARG (p, insn, 0);
- int type = ORC_PTR_TO_INT(user);
+ int type = ORC_PTR_TO_INT (user);
/* signed variant, make a mask, FIXME, instruction constants */
if (type >= 2) {
/* mask for word 0x80008000 */
orc_arm_emit_mov_i (p, ORC_ARM_COND_AL, 0, mask, 0x80000000);
- orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, mask, mask, mask, ORC_ARM_LSR, 16);
+ orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, mask, mask, mask, ORC_ARM_LSR,
+ 16);
if (type >= 3) {
/* mask for byte 0x80808080 */
- orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, mask, mask, mask, ORC_ARM_LSR, 8);
+ orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, mask, mask, mask,
+ ORC_ARM_LSR, 8);
}
/* signed variant, bias the inputs */
@@ -369,7 +360,8 @@ arm_rule_avgX (OrcCompiler *p, void *user, OrcInstruction *insn)
}
} else if (type >= 2) {
/* already have a mask, use it here */
- orc_arm_emit_bic_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, mask, ORC_ARM_LSR, 7);
+ orc_arm_emit_bic_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, mask, ORC_ARM_LSR,
+ 7);
}
/* do final right shift and subtraction */
@@ -381,14 +373,15 @@ arm_rule_avgX (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_arm_emit_eor_r (p, ORC_ARM_COND_AL, 0, src2, src2, mask);
}
}
+
static void
-arm_rule_cmpeqX (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_cmpeqX (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
int dest = ORC_DEST_ARG (p, insn, 0);
int tmp = p->tmpreg;
- int size = ORC_PTR_TO_INT(user);
+ int size = ORC_PTR_TO_INT (user);
/* bytes that are equal will have all bits 0 */
orc_arm_emit_eor_r (p, ORC_ARM_COND_AL, 0, tmp, src1, src2);
@@ -409,14 +402,15 @@ arm_rule_cmpeqX (OrcCompiler *p, void *user, OrcInstruction *insn)
/* set 0xff for 0 bytes, 0x00 otherwise */
orc_arm_emit_sel (p, ORC_ARM_COND_AL, dest, tmp, dest);
}
+
static void
-arm_rule_cmpgtsX (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_cmpgtsX (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
int dest = ORC_DEST_ARG (p, insn, 0);
int tmp = p->tmpreg;
- int size = ORC_PTR_TO_INT(user);
+ int size = ORC_PTR_TO_INT (user);
/* dest = src2 - src1, set GE flags for src2 >= src1 */
if (size == 1) {
@@ -433,8 +427,9 @@ arm_rule_cmpgtsX (OrcCompiler *p, void *user, OrcInstruction *insn)
/* set 0x00 for src2 >= src1 bytes, 0xff if src2 < src1 */
orc_arm_emit_sel (p, ORC_ARM_COND_AL, dest, dest, tmp);
}
+
static void
-arm_rule_copyX (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_copyX (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -443,7 +438,7 @@ arm_rule_copyX (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-arm_rule_maxsb (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_maxsb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -452,8 +447,9 @@ arm_rule_maxsb (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_arm_emit_ssub8 (p, ORC_ARM_COND_AL, dest, src1, src2);
orc_arm_emit_sel (p, ORC_ARM_COND_AL, dest, src1, src2);
}
+
static void
-arm_rule_maxub (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_maxub (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -462,8 +458,9 @@ arm_rule_maxub (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_arm_emit_usub8 (p, ORC_ARM_COND_AL, dest, src1, src2);
orc_arm_emit_sel (p, ORC_ARM_COND_AL, dest, src1, src2);
}
+
static void
-arm_rule_minsb (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_minsb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -472,8 +469,9 @@ arm_rule_minsb (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_arm_emit_ssub8 (p, ORC_ARM_COND_AL, dest, src1, src2);
orc_arm_emit_sel (p, ORC_ARM_COND_AL, dest, src2, src1);
}
+
static void
-arm_rule_minub (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_minub (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -484,7 +482,7 @@ arm_rule_minub (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-arm_rule_mullb (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_mullb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -524,12 +522,13 @@ arm_rule_mullb (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_arm_emit_uxtb16 (p, ORC_ARM_COND_AL, tmp3, tmp3);
/* merge results */
- orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, tmp3, ORC_ARM_LSL, 8);
+ orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, tmp3, ORC_ARM_LSL,
+ 8);
}
}
static void
-arm_rule_mulhsb (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_mulhsb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
/* BINARY_SB(mulhsb, "(%s * %s) >> 8") */
int src1 = ORC_SRC_ARG (p, insn, 0);
@@ -570,7 +569,8 @@ arm_rule_mulhsb (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_arm_emit_uxtb16_r8 (p, ORC_ARM_COND_AL, tmp3, tmp3, 8);
/* merge tmp3 */
- orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, tmp3, ORC_ARM_LSL, 8);
+ orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, tmp3, ORC_ARM_LSL,
+ 8);
} else {
/* bring upper bits in position */
orc_arm_emit_mov_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, ORC_ARM_LSR, 8);
@@ -578,7 +578,7 @@ arm_rule_mulhsb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-arm_rule_mulhub (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_mulhub (OrcCompiler * p, void *user, OrcInstruction * insn)
{
/* BINARY_UB(mulhub, "((orc_uint32)(uint8_t)%s * (orc_uint32)(uint8_t)%s) >> 8") */
int src1 = ORC_SRC_ARG (p, insn, 0);
@@ -619,7 +619,8 @@ arm_rule_mulhub (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_arm_emit_uxtb16_r8 (p, ORC_ARM_COND_AL, tmp3, tmp3, 8);
/* merge tmp3 */
- orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, tmp3, ORC_ARM_LSL, 8);
+ orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, tmp3, ORC_ARM_LSL,
+ 8);
} else {
/* bring upper bits in position */
orc_arm_emit_mov_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, ORC_ARM_LSR, 8);
@@ -628,21 +629,21 @@ arm_rule_mulhub (OrcCompiler *p, void *user, OrcInstruction *insn)
BINARY_DP (orX, orr);
static void
-arm_rule_shlX (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_shlX (OrcCompiler * p, void *user, OrcInstruction * insn)
{
/* degrades nicely to trivial shift when not doing parallel shifts */
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
int mask = p->tmpreg;
int src2type = ORC_SRC_TYPE (p, insn, 1);
- int size = ORC_PTR_TO_INT(user);
- int loop = 4 / size; /* number of items in one register */
+ int size = ORC_PTR_TO_INT (user);
+ int loop = 4 / size; /* number of items in one register */
if (src2type == ORC_VAR_TYPE_CONST) {
int val = ORC_SRC_VAL (p, insn, 1);
if (loop > 1 && size != 4 && val < 5) {
- for (;val; val--) {
+ for (; val; val--) {
/* small values, do a series of additions, we need at least 5
* instructions for the generic case below. */
if (size == 1)
@@ -650,8 +651,7 @@ arm_rule_shlX (OrcCompiler *p, void *user, OrcInstruction *insn)
else
orc_arm_emit_uadd16 (p, ORC_ARM_COND_AL, dest, src1, src1);
}
- }
- else {
+ } else {
/* bigger values, shift and mask out excess bits */
if (val >= size) {
/* too big, clear all */
@@ -659,7 +659,8 @@ arm_rule_shlX (OrcCompiler *p, void *user, OrcInstruction *insn)
} else if (val > 0) {
if (loop > 1 && size < 4) {
/* shift, note that we skip the next instructions when 0 */
- orc_arm_emit_mov_rsi (p, ORC_ARM_COND_AL, 1, dest, src1, ORC_ARM_LSL, val);
+ orc_arm_emit_mov_rsi (p, ORC_ARM_COND_AL, 1, dest, src1, ORC_ARM_LSL,
+ val);
if (size == 1)
/* make loop * 0x80 */
orc_arm_emit_mov_ib (p, ORC_ARM_COND_NE, mask, 0x80, loop);
@@ -667,11 +668,14 @@ arm_rule_shlX (OrcCompiler *p, void *user, OrcInstruction *insn)
/* make loop * 0x8000 */
orc_arm_emit_mov_iw (p, ORC_ARM_COND_NE, mask, 0x8000, loop);
/* make mask, this mask has enough bits but is shifted one position to the right */
- orc_arm_emit_sub_rsi (p, ORC_ARM_COND_NE, 0, mask, mask, mask, ORC_ARM_LSR, val);
+ orc_arm_emit_sub_rsi (p, ORC_ARM_COND_NE, 0, mask, mask, mask,
+ ORC_ARM_LSR, val);
/* clear upper bits */
- orc_arm_emit_bic_rsi (p, ORC_ARM_COND_NE, 0, dest, dest, mask, ORC_ARM_LSL, 1);
+ orc_arm_emit_bic_rsi (p, ORC_ARM_COND_NE, 0, dest, dest, mask,
+ ORC_ARM_LSL, 1);
} else {
- orc_arm_emit_mov_rsi (p, ORC_ARM_COND_AL, 0, dest, src1, ORC_ARM_LSL, val);
+ orc_arm_emit_mov_rsi (p, ORC_ARM_COND_AL, 0, dest, src1, ORC_ARM_LSL,
+ val);
}
}
}
@@ -680,7 +684,8 @@ arm_rule_shlX (OrcCompiler *p, void *user, OrcInstruction *insn)
if (loop > 1 && size < 4) {
/* shift with register value, note that we skip the next instructions when 0 */
- orc_arm_emit_mov_rsr (p, ORC_ARM_COND_AL, 1, dest, src1, ORC_ARM_LSL, src2);
+ orc_arm_emit_mov_rsr (p, ORC_ARM_COND_AL, 1, dest, src1, ORC_ARM_LSL,
+ src2);
if (size == 1)
/* make loop * 0x80 */
orc_arm_emit_mov_ib (p, ORC_ARM_COND_NE, mask, 0x80, loop);
@@ -688,19 +693,22 @@ arm_rule_shlX (OrcCompiler *p, void *user, OrcInstruction *insn)
/* make loop * 0x8000 */
orc_arm_emit_mov_iw (p, ORC_ARM_COND_NE, mask, 0x8000, loop);
/* make mask */
- orc_arm_emit_sub_rsr (p, ORC_ARM_COND_NE, 0, mask, mask, mask, ORC_ARM_LSR, src2);
+ orc_arm_emit_sub_rsr (p, ORC_ARM_COND_NE, 0, mask, mask, mask,
+ ORC_ARM_LSR, src2);
/* clear bits */
- orc_arm_emit_bic_rsi (p, ORC_ARM_COND_NE, 0, dest, dest, mask, ORC_ARM_LSL, 1);
+ orc_arm_emit_bic_rsi (p, ORC_ARM_COND_NE, 0, dest, dest, mask,
+ ORC_ARM_LSL, 1);
} else {
- orc_arm_emit_mov_rsr (p, ORC_ARM_COND_AL, 0, dest, src1, ORC_ARM_LSL, src2);
+ orc_arm_emit_mov_rsr (p, ORC_ARM_COND_AL, 0, dest, src1, ORC_ARM_LSL,
+ src2);
}
} else {
- ORC_COMPILER_ERROR(p,"rule only works with constants or parameters");
+ ORC_COMPILER_ERROR (p, "rule only works with constants or parameters");
}
}
static void
-arm_rule_shrsX (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_shrsX (OrcCompiler * p, void *user, OrcInstruction * insn)
{
/* degrades nicely to trivial shift when not doing parallel shifts */
int src1 = ORC_SRC_ARG (p, insn, 0);
@@ -708,8 +716,8 @@ arm_rule_shrsX (OrcCompiler *p, void *user, OrcInstruction *insn)
int mask = p->tmpreg;
int tmp = p->gp_tmpreg;
int src2type = ORC_SRC_TYPE (p, insn, 1);
- int size = ORC_PTR_TO_INT(user);
- int loop = 4 / size; /* number of items in one register */
+ int size = ORC_PTR_TO_INT (user);
+ int loop = 4 / size; /* number of items in one register */
if (src2type == ORC_VAR_TYPE_CONST) {
int val = ORC_SRC_VAL (p, insn, 1);
@@ -732,12 +740,15 @@ arm_rule_shrsX (OrcCompiler *p, void *user, OrcInstruction *insn)
/* make loop * 8000 */
orc_arm_emit_mov_iw (p, ORC_ARM_COND_AL, mask, 0x8000, loop);
/* make mask, save in tmp, we need the original mask */
- orc_arm_emit_sub_rsi (p, ORC_ARM_COND_AL, 0, tmp, mask, mask, ORC_ARM_LSR, val);
+ orc_arm_emit_sub_rsi (p, ORC_ARM_COND_AL, 0, tmp, mask, mask,
+ ORC_ARM_LSR, val);
/* do the shift */
- orc_arm_emit_mov_rsi (p, ORC_ARM_COND_AL, 1, dest, src1, ORC_ARM_LSR, val);
+ orc_arm_emit_mov_rsi (p, ORC_ARM_COND_AL, 1, dest, src1, ORC_ARM_LSR,
+ val);
/* clear upper bits */
- orc_arm_emit_bic_rsi (p, ORC_ARM_COND_NE, 0, dest, dest, tmp, ORC_ARM_LSL, 1);
+ orc_arm_emit_bic_rsi (p, ORC_ARM_COND_NE, 0, dest, dest, tmp,
+ ORC_ARM_LSL, 1);
/* flip sign bit */
orc_arm_emit_eor_r (p, ORC_ARM_COND_NE, 0, dest, dest, mask);
@@ -749,7 +760,8 @@ arm_rule_shrsX (OrcCompiler *p, void *user, OrcInstruction *insn)
}
} else {
/* full word shift */
- orc_arm_emit_mov_rsi (p, ORC_ARM_COND_AL, 0, dest, src1, ORC_ARM_ASR, val);
+ orc_arm_emit_mov_rsi (p, ORC_ARM_COND_AL, 0, dest, src1, ORC_ARM_ASR,
+ val);
}
}
} else if (src2type == ORC_VAR_TYPE_PARAM) {
@@ -763,12 +775,15 @@ arm_rule_shrsX (OrcCompiler *p, void *user, OrcInstruction *insn)
/* make loop * 0x8000 */
orc_arm_emit_mov_iw (p, ORC_ARM_COND_AL, mask, 0x8000, loop);
/* make mask */
- orc_arm_emit_sub_rsr (p, ORC_ARM_COND_AL, 0, tmp, mask, mask, ORC_ARM_LSR, src2);
+ orc_arm_emit_sub_rsr (p, ORC_ARM_COND_AL, 0, tmp, mask, mask, ORC_ARM_LSR,
+ src2);
/* do the shift */
- orc_arm_emit_mov_rsr (p, ORC_ARM_COND_AL, 1, dest, src1, ORC_ARM_LSR, src2);
+ orc_arm_emit_mov_rsr (p, ORC_ARM_COND_AL, 1, dest, src1, ORC_ARM_LSR,
+ src2);
/* clear upper bits */
- orc_arm_emit_bic_rsi (p, ORC_ARM_COND_NE, 0, dest, dest, tmp, ORC_ARM_LSL, 1);
+ orc_arm_emit_bic_rsi (p, ORC_ARM_COND_NE, 0, dest, dest, tmp, ORC_ARM_LSL,
+ 1);
/* flip sign bit */
orc_arm_emit_eor_r (p, ORC_ARM_COND_NE, 0, dest, dest, mask);
@@ -779,23 +794,24 @@ arm_rule_shrsX (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_arm_emit_usub16 (p, ORC_ARM_COND_NE, dest, dest, mask);
} else {
/* full word shift with register value */
- orc_arm_emit_mov_rsr (p, ORC_ARM_COND_AL, 0, dest, dest, ORC_ARM_ASR, src2);
+ orc_arm_emit_mov_rsr (p, ORC_ARM_COND_AL, 0, dest, dest, ORC_ARM_ASR,
+ src2);
}
} else {
- ORC_COMPILER_ERROR(p,"rule only works with constants or parameters");
+ ORC_COMPILER_ERROR (p, "rule only works with constants or parameters");
}
}
static void
-arm_rule_shruX (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_shruX (OrcCompiler * p, void *user, OrcInstruction * insn)
{
/* degrades nicely to trivial shift when not doing parallel shifts */
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
int mask = p->tmpreg;
int src2type = ORC_SRC_TYPE (p, insn, 1);
- int size = ORC_PTR_TO_INT(user);
- int loop = 4 / size; /* number of items in one register */
+ int size = ORC_PTR_TO_INT (user);
+ int loop = 4 / size; /* number of items in one register */
if (src2type == ORC_VAR_TYPE_CONST) {
int val = ORC_SRC_VAL (p, insn, 1);
@@ -811,7 +827,8 @@ arm_rule_shruX (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_arm_emit_uxtb16_r8 (p, ORC_ARM_COND_AL, dest, src1, 8);
} else {
/* do the shift, set S flags */
- orc_arm_emit_mov_rsi (p, ORC_ARM_COND_AL, 1, dest, src1, ORC_ARM_LSR, val);
+ orc_arm_emit_mov_rsi (p, ORC_ARM_COND_AL, 1, dest, src1, ORC_ARM_LSR,
+ val);
if (size == 1)
/* make loop * 0x80 */
@@ -820,14 +837,17 @@ arm_rule_shruX (OrcCompiler *p, void *user, OrcInstruction *insn)
/* make loop * 0x8000 */
orc_arm_emit_mov_iw (p, ORC_ARM_COND_NE, mask, 0x8000, loop);
/* make mask */
- orc_arm_emit_sub_rsi (p, ORC_ARM_COND_NE, 0, mask, mask, mask, ORC_ARM_LSR, val);
+ orc_arm_emit_sub_rsi (p, ORC_ARM_COND_NE, 0, mask, mask, mask,
+ ORC_ARM_LSR, val);
/* clear upper bits */
- orc_arm_emit_bic_rsi (p, ORC_ARM_COND_NE, 0, dest, dest, mask, ORC_ARM_LSL, 1);
+ orc_arm_emit_bic_rsi (p, ORC_ARM_COND_NE, 0, dest, dest, mask,
+ ORC_ARM_LSL, 1);
}
} else {
/* one 4 byte shift, no need for the S flag */
- orc_arm_emit_mov_rsi (p, ORC_ARM_COND_AL, 0, dest, src1, ORC_ARM_LSR, val);
+ orc_arm_emit_mov_rsi (p, ORC_ARM_COND_AL, 0, dest, src1, ORC_ARM_LSR,
+ val);
}
}
} else if (src2type == ORC_VAR_TYPE_PARAM) {
@@ -835,7 +855,8 @@ arm_rule_shruX (OrcCompiler *p, void *user, OrcInstruction *insn)
if (size < 4) {
/* shift with register value */
- orc_arm_emit_mov_rsr (p, ORC_ARM_COND_AL, 1, dest, src1, ORC_ARM_LSR, src2);
+ orc_arm_emit_mov_rsr (p, ORC_ARM_COND_AL, 1, dest, src1, ORC_ARM_LSR,
+ src2);
if (size == 1)
/* make loop * 0x80 */
@@ -844,28 +865,31 @@ arm_rule_shruX (OrcCompiler *p, void *user, OrcInstruction *insn)
/* make loop * 0x8000 */
orc_arm_emit_mov_iw (p, ORC_ARM_COND_NE, mask, 0x8000, loop);
/* make mask */
- orc_arm_emit_sub_rsr (p, ORC_ARM_COND_NE, 0, mask, mask, mask, ORC_ARM_LSR, src2);
+ orc_arm_emit_sub_rsr (p, ORC_ARM_COND_NE, 0, mask, mask, mask,
+ ORC_ARM_LSR, src2);
/* clear bits */
- orc_arm_emit_bic_rsi (p, ORC_ARM_COND_NE, 0, dest, dest, mask, ORC_ARM_LSL, 1);
+ orc_arm_emit_bic_rsi (p, ORC_ARM_COND_NE, 0, dest, dest, mask,
+ ORC_ARM_LSL, 1);
} else {
/* shift with register value */
- orc_arm_emit_mov_rsr (p, ORC_ARM_COND_AL, 0, dest, src1, ORC_ARM_LSR, src2);
+ orc_arm_emit_mov_rsr (p, ORC_ARM_COND_AL, 0, dest, src1, ORC_ARM_LSR,
+ src2);
}
} else {
- ORC_COMPILER_ERROR(p,"rule only works with constants or parameters");
+ ORC_COMPILER_ERROR (p, "rule only works with constants or parameters");
}
}
static void
-arm_rule_signX (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_signX (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
int zero = p->tmpreg;
int ones = p->gp_tmpreg;
int tmp = ORC_ARM_V8;
- int type = ORC_PTR_TO_INT(user);
+ int type = ORC_PTR_TO_INT (user);
/* make 0 */
orc_arm_emit_mov_i (p, ORC_ARM_COND_AL, 0, zero, 0);
@@ -905,7 +929,7 @@ BINARY_MM (addssw, qadd16);
BINARY_MM (addusw, uqadd16);
static void
-arm_rule_maxsw (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_maxsw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -914,8 +938,9 @@ arm_rule_maxsw (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_arm_emit_ssub16 (p, ORC_ARM_COND_AL, dest, src1, src2);
orc_arm_emit_sel (p, ORC_ARM_COND_AL, dest, src1, src2);
}
+
static void
-arm_rule_maxuw (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_maxuw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -924,8 +949,9 @@ arm_rule_maxuw (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_arm_emit_usub16 (p, ORC_ARM_COND_AL, dest, src1, src2);
orc_arm_emit_sel (p, ORC_ARM_COND_AL, dest, src1, src2);
}
+
static void
-arm_rule_minsw (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_minsw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -934,8 +960,9 @@ arm_rule_minsw (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_arm_emit_ssub16 (p, ORC_ARM_COND_AL, dest, src1, src2);
orc_arm_emit_sel (p, ORC_ARM_COND_AL, dest, src2, src1);
}
+
static void
-arm_rule_minuw (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_minuw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -946,7 +973,7 @@ arm_rule_minuw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-arm_rule_mullw (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_mullw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -961,8 +988,9 @@ arm_rule_mullw (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_arm_emit_pkhbt_s (p, ORC_ARM_COND_AL, dest, dest, tmp, 16);
}
}
+
static void
-arm_rule_mulhsw (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_mulhsw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -978,8 +1006,9 @@ arm_rule_mulhsw (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_arm_emit_pkhtb_s (p, ORC_ARM_COND_AL, dest, tmp, dest, 16);
}
}
+
static void
-arm_rule_mulhuw (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_mulhuw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
/* BINARY_UW(mulhuw, "((orc_uint32)((uint16_t)%s) * (orc_uint32)((uint16_t)%s)) >> 16") */
int src1 = ORC_SRC_ARG (p, insn, 0);
@@ -1006,12 +1035,13 @@ arm_rule_mulhuw (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_arm_emit_pkhtb_s (p, ORC_ARM_COND_AL, dest, tmp1, dest, 16);
}
}
+
BINARY_MM (subw, ssub16);
BINARY_MM (subssw, qsub16);
BINARY_MM (subusw, uqsub16);
static void
-arm_rule_absl (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_absl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -1026,7 +1056,7 @@ arm_rule_absl (OrcCompiler *p, void *user, OrcInstruction *insn)
BINARY_DP (addl, add);
BINARY_MM (addssl, qadd);
static void
-arm_rule_addusl (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_addusl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -1038,8 +1068,9 @@ arm_rule_addusl (OrcCompiler *p, void *user, OrcInstruction *insn)
/* on overflow, move ffffffff */
orc_arm_emit_mvn_i (p, ORC_ARM_COND_CS, 0, dest, 0);
}
+
static void
-arm_rule_avgXl (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_avgXl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -1054,8 +1085,9 @@ arm_rule_avgXl (OrcCompiler *p, void *user, OrcInstruction *insn)
/* rotate right, top bit is the carry */
orc_arm_emit_mov_rrx (p, ORC_ARM_COND_AL, 0, dest, dest);
}
+
static void
-arm_rule_cmpeql (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_cmpeql (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -1070,8 +1102,9 @@ arm_rule_cmpeql (OrcCompiler *p, void *user, OrcInstruction *insn)
/* set to all ff when equal */
orc_arm_emit_mvn_i (p, ORC_ARM_COND_EQ, 0, dest, 0);
}
+
static void
-arm_rule_cmpgtsl (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_cmpgtsl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -1088,7 +1121,7 @@ arm_rule_cmpgtsl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-arm_rule_maxsl (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_maxsl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -1101,8 +1134,9 @@ arm_rule_maxsl (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_arm_emit_mov_r (p, ORC_ARM_COND_GE, 0, dest, src1);
orc_arm_emit_mov_r (p, ORC_ARM_COND_LT, 0, dest, src2);
}
+
static void
-arm_rule_maxul (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_maxul (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -1115,8 +1149,9 @@ arm_rule_maxul (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_arm_emit_mov_r (p, ORC_ARM_COND_CS, 0, dest, src1);
orc_arm_emit_mov_r (p, ORC_ARM_COND_CC, 0, dest, src2);
}
+
static void
-arm_rule_minsl (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_minsl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -1129,8 +1164,9 @@ arm_rule_minsl (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_arm_emit_mov_r (p, ORC_ARM_COND_GE, 0, dest, src2);
orc_arm_emit_mov_r (p, ORC_ARM_COND_LT, 0, dest, src1);
}
+
static void
-arm_rule_minul (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_minul (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -1145,7 +1181,7 @@ arm_rule_minul (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-arm_rule_mulll (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_mulll (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -1153,8 +1189,9 @@ arm_rule_mulll (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_arm_emit_mul (p, ORC_ARM_COND_AL, 0, dest, src1, src2);
}
+
static void
-arm_rule_mulhsl (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_mulhsl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -1163,8 +1200,9 @@ arm_rule_mulhsl (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_arm_emit_smull (p, ORC_ARM_COND_AL, 0, tmp, dest, src1, src2);
}
+
static void
-arm_rule_mulhul (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_mulhul (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -1173,8 +1211,9 @@ arm_rule_mulhul (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_arm_emit_umull (p, ORC_ARM_COND_AL, 0, tmp, dest, src1, src2);
}
+
static void
-arm_rule_signl (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_signl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -1187,12 +1226,14 @@ arm_rule_signl (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_arm_emit_mov_rsi (p, ORC_ARM_COND_AL, 0, tmp, src1, ORC_ARM_ASR, 31);
/* dest = tmp - (dest >> 31) */
- orc_arm_emit_sub_rsi (p, ORC_ARM_COND_AL, 0, dest, tmp, dest, ORC_ARM_ASR, 31);
+ orc_arm_emit_sub_rsi (p, ORC_ARM_COND_AL, 0, dest, tmp, dest, ORC_ARM_ASR,
+ 31);
}
+
BINARY_DP (subl, sub);
BINARY_MM (subssl, qsub);
static void
-arm_rule_subusl (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_subusl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -1206,7 +1247,7 @@ arm_rule_subusl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-arm_rule_convsbw (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_convsbw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -1223,7 +1264,7 @@ arm_rule_convsbw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-arm_rule_convubw (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_convubw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -1240,15 +1281,16 @@ arm_rule_convubw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-arm_rule_convswl (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_convswl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
orc_arm_emit_sxth (p, ORC_ARM_COND_AL, dest, src1);
}
+
static void
-arm_rule_convuwl (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_convuwl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -1257,7 +1299,7 @@ arm_rule_convuwl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-arm_rule_convwb (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_convwb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -1266,12 +1308,13 @@ arm_rule_convwb (OrcCompiler *p, void *user, OrcInstruction *insn)
if (loop == 2) {
/* two words */
orc_arm_emit_uxtb16 (p, ORC_ARM_COND_AL, dest, src1);
- orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, dest, ORC_ARM_LSR, 8);
+ orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, dest, ORC_ARM_LSR,
+ 8);
}
}
static void
-arm_rule_convssswb (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_convssswb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -1282,11 +1325,13 @@ arm_rule_convssswb (OrcCompiler *p, void *user, OrcInstruction *insn)
if (loop == 2) {
/* two words */
orc_arm_emit_uxtb16 (p, ORC_ARM_COND_AL, dest, dest);
- orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, dest, ORC_ARM_LSR, 8);
+ orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, dest, ORC_ARM_LSR,
+ 8);
}
}
+
static void
-arm_rule_convsuswb (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_convsuswb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -1297,11 +1342,13 @@ arm_rule_convsuswb (OrcCompiler *p, void *user, OrcInstruction *insn)
if (loop == 2) {
/* two words */
orc_arm_emit_uxtb16 (p, ORC_ARM_COND_AL, dest, dest);
- orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, dest, ORC_ARM_LSR, 8);
+ orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, dest, ORC_ARM_LSR,
+ 8);
}
}
+
static void
-arm_rule_convusswb (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_convusswb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -1318,11 +1365,13 @@ arm_rule_convusswb (OrcCompiler *p, void *user, OrcInstruction *insn)
if (loop == 2) {
/* pack two words */
orc_arm_emit_uxtb16 (p, ORC_ARM_COND_AL, dest, dest);
- orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, dest, ORC_ARM_LSR, 8);
+ orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, dest, ORC_ARM_LSR,
+ 8);
}
}
+
static void
-arm_rule_convuuswb (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_convuuswb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -1339,33 +1388,37 @@ arm_rule_convuuswb (OrcCompiler *p, void *user, OrcInstruction *insn)
if (loop == 2) {
/* pack two words */
orc_arm_emit_uxtb16 (p, ORC_ARM_COND_AL, dest, dest);
- orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, dest, ORC_ARM_LSR, 8);
+ orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, dest, ORC_ARM_LSR,
+ 8);
}
}
+
static void
-arm_rule_convlw (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_convlw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
/* NOP */
}
static void
-arm_rule_convssslw (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_convssslw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
orc_arm_emit_ssat (p, ORC_ARM_COND_AL, dest, 16, src1);
}
+
static void
-arm_rule_convsuslw (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_convsuslw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
orc_arm_emit_usat (p, ORC_ARM_COND_AL, dest, 16, src1);
}
+
static void
-arm_rule_convusslw (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_convusslw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -1375,8 +1428,9 @@ arm_rule_convusslw (OrcCompiler *p, void *user, OrcInstruction *insn)
/* saturate to signed region */
orc_arm_emit_usat (p, ORC_ARM_COND_AL, dest, 15, dest);
}
+
static void
-arm_rule_convuuslw (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_convuuslw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -1388,7 +1442,7 @@ arm_rule_convuuslw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-arm_rule_mulsbw (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_mulsbw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
/* BINARY_BW(mulsbw, "%s * %s") */
int src1 = ORC_SRC_ARG (p, insn, 0);
@@ -1410,12 +1464,13 @@ arm_rule_mulsbw (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_arm_emit_smulbb (p, ORC_ARM_COND_AL, tmp1, tmp1, tmp2);
/* merge results */
- orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, tmp1, ORC_ARM_LSL, 16);
+ orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, tmp1, ORC_ARM_LSL,
+ 16);
}
}
static void
-arm_rule_mulubw (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_mulubw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
/* BINARY_BW(mulubw, "(uint8_t)%s * (uint8_t)%s") */
int src1 = ORC_SRC_ARG (p, insn, 0);
@@ -1437,12 +1492,13 @@ arm_rule_mulubw (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_arm_emit_smulbb (p, ORC_ARM_COND_AL, tmp1, tmp1, tmp2);
/* merge results */
- orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, tmp1, ORC_ARM_LSL, 16);
+ orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, tmp1, ORC_ARM_LSL,
+ 16);
}
}
static void
-arm_rule_mulswl (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_mulswl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
/* BINARY_WL(mulswl, "%s * %s") */
int src1 = ORC_SRC_ARG (p, insn, 0);
@@ -1456,7 +1512,7 @@ arm_rule_mulswl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-arm_rule_muluwl (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_muluwl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
/* BINARY_WL(muluwl, "(uint16_t)%s * (uint16_t)%s") */
int src1 = ORC_SRC_ARG (p, insn, 0);
@@ -1470,7 +1526,7 @@ arm_rule_muluwl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-arm_rule_mergewl (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_mergewl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int src2 = ORC_SRC_ARG (p, insn, 1);
@@ -1478,8 +1534,9 @@ arm_rule_mergewl (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_arm_emit_pkhbt_s (p, ORC_ARM_COND_AL, dest, src1, src2, 16);
}
+
static void
-arm_rule_mergebw (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_mergebw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
/* BINARY_BW(mergebw, "((uint8_t)%s) | ((uint8_t)%s << 8)") */
int src1 = ORC_SRC_ARG (p, insn, 0);
@@ -1491,19 +1548,21 @@ arm_rule_mergebw (OrcCompiler *p, void *user, OrcInstruction *insn)
if (loop == 1) {
/* 1 word */
orc_arm_emit_uxtb (p, ORC_ARM_COND_AL, dest, src1);
- orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, src2, ORC_ARM_LSL, 8);
+ orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, src2, ORC_ARM_LSL,
+ 8);
} else {
/* 2 words */
orc_arm_emit_pkhbt_s (p, ORC_ARM_COND_AL, dest, src1, src1, 8);
orc_arm_emit_uxtb16 (p, ORC_ARM_COND_AL, dest, dest);
orc_arm_emit_pkhbt_s (p, ORC_ARM_COND_AL, tmp, src2, src2, 8);
orc_arm_emit_uxtb16 (p, ORC_ARM_COND_AL, tmp, tmp);
- orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, tmp, ORC_ARM_LSL, 8);
+ orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, tmp, ORC_ARM_LSL,
+ 8);
}
}
static void
-arm_rule_select0wb (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_select0wb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
/* UNARY_WB(select0wb, "(uint16_t)%s & 0xff") */
int src1 = ORC_SRC_ARG (p, insn, 0);
@@ -1516,12 +1575,13 @@ arm_rule_select0wb (OrcCompiler *p, void *user, OrcInstruction *insn)
} else {
/* 2 words */
orc_arm_emit_uxtb16 (p, ORC_ARM_COND_AL, dest, src1);
- orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, dest, ORC_ARM_LSR, 8);
+ orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, dest, ORC_ARM_LSR,
+ 8);
}
}
static void
-arm_rule_select1wb (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_select1wb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
/* UNARY_WB(select1wb, "((uint16_t)%s >> 8)&0xff") */
int src1 = ORC_SRC_ARG (p, insn, 0);
@@ -1534,17 +1594,20 @@ arm_rule_select1wb (OrcCompiler *p, void *user, OrcInstruction *insn)
} else {
/* 2 words */
orc_arm_emit_uxtb16_r8 (p, ORC_ARM_COND_AL, dest, src1, 8);
- orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, dest, ORC_ARM_LSR, 8);
+ orc_arm_emit_orr_rsi (p, ORC_ARM_COND_AL, 0, dest, dest, dest, ORC_ARM_LSR,
+ 8);
}
}
+
static void
-arm_rule_select0lw (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_select0lw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
/* UNARY_LW(select0lw, "(orc_uint32)%s & 0xffff") */
/* NOP */
}
+
static void
-arm_rule_select1lw (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_select1lw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
/* UNARY_LW(select1lw, "((orc_uint32)%s >> 16)&0xffff") */
int src1 = ORC_SRC_ARG (p, insn, 0);
@@ -1554,7 +1617,7 @@ arm_rule_select1lw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-arm_rule_swapw (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_swapw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -1563,7 +1626,7 @@ arm_rule_swapw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-arm_rule_swapl (OrcCompiler *p, void *user, OrcInstruction *insn)
+arm_rule_swapl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = ORC_SRC_ARG (p, insn, 0);
int dest = ORC_DEST_ARG (p, insn, 0);
@@ -1574,11 +1637,11 @@ arm_rule_swapl (OrcCompiler *p, void *user, OrcInstruction *insn)
#define FAIL if (0)
void
-orc_compiler_orc_arm_register_rules (OrcTarget *target)
+orc_compiler_orc_arm_register_rules (OrcTarget * target)
{
OrcRuleSet *rule_set;
- rule_set = orc_rule_set_new (orc_opcode_set_get("sys"), target, 0);
+ rule_set = orc_rule_set_new (orc_opcode_set_get ("sys"), target, 0);
orc_rule_register (rule_set, "loadpb", arm_rule_loadpX, NULL);
orc_rule_register (rule_set, "loadpw", arm_rule_loadpX, NULL);
@@ -1592,16 +1655,16 @@ orc_compiler_orc_arm_register_rules (OrcTarget *target)
orc_rule_register (rule_set, "andb", arm_rule_andX, NULL);
orc_rule_register (rule_set, "andnb", arm_rule_andnX, NULL);
- orc_rule_register (rule_set, "avgsb", arm_rule_avgX, (void *)3);
- orc_rule_register (rule_set, "avgub", arm_rule_avgX, (void *)0);
+ orc_rule_register (rule_set, "avgsb", arm_rule_avgX, (void *) 3);
+ orc_rule_register (rule_set, "avgub", arm_rule_avgX, (void *) 0);
orc_rule_register (rule_set, "copyb", arm_rule_copyX, NULL);
orc_rule_register (rule_set, "orb", arm_rule_orX, NULL);
orc_rule_register (rule_set, "xorb", arm_rule_xorX, NULL);
orc_rule_register (rule_set, "andw", arm_rule_andX, NULL);
orc_rule_register (rule_set, "andnw", arm_rule_andnX, NULL);
- FAIL orc_rule_register (rule_set, "avgsw", arm_rule_avgX, (void *)2);
- orc_rule_register (rule_set, "avguw", arm_rule_avgX, (void *)1);
+ FAIL orc_rule_register (rule_set, "avgsw", arm_rule_avgX, (void *) 2);
+ orc_rule_register (rule_set, "avguw", arm_rule_avgX, (void *) 1);
orc_rule_register (rule_set, "copyw", arm_rule_copyX, NULL);
orc_rule_register (rule_set, "orw", arm_rule_orX, NULL);
orc_rule_register (rule_set, "xorw", arm_rule_xorX, NULL);
@@ -1640,41 +1703,41 @@ orc_compiler_orc_arm_register_rules (OrcTarget *target)
FAIL orc_rule_register (rule_set, "mulswl", arm_rule_mulswl, NULL);
FAIL orc_rule_register (rule_set, "muluwl", arm_rule_muluwl, NULL);
- rule_set = orc_rule_set_new (orc_opcode_set_get("sys"), target,
+ rule_set = orc_rule_set_new (orc_opcode_set_get ("sys"), target,
ORC_TARGET_ARM_EDSP);
- FAIL orc_rule_register (rule_set, "absb", arm_rule_absX, (void *)0);
- orc_rule_register (rule_set, "cmpeqb", arm_rule_cmpeqX, (void *)1);
- orc_rule_register (rule_set, "cmpgtsb", arm_rule_cmpgtsX, (void *)1);
+ FAIL orc_rule_register (rule_set, "absb", arm_rule_absX, (void *) 0);
+ orc_rule_register (rule_set, "cmpeqb", arm_rule_cmpeqX, (void *) 1);
+ orc_rule_register (rule_set, "cmpgtsb", arm_rule_cmpgtsX, (void *) 1);
FAIL orc_rule_register (rule_set, "maxsb", arm_rule_maxsb, NULL);
FAIL orc_rule_register (rule_set, "maxub", arm_rule_maxub, NULL);
FAIL orc_rule_register (rule_set, "minsb", arm_rule_minsb, NULL);
FAIL orc_rule_register (rule_set, "minub", arm_rule_minub, NULL);
- orc_rule_register (rule_set, "shlb", arm_rule_shlX, (void *)1);
- FAIL orc_rule_register (rule_set, "shrsb", arm_rule_shrsX, (void *)1);
- FAIL orc_rule_register (rule_set, "shrub", arm_rule_shruX, (void *)1);
- FAIL orc_rule_register (rule_set, "signb", arm_rule_signX, (void *)0);
-
- FAIL orc_rule_register (rule_set, "absw", arm_rule_absX, (void *)1);
- orc_rule_register (rule_set, "cmpeqw", arm_rule_cmpeqX, (void *)2);
- orc_rule_register (rule_set, "cmpgtsw", arm_rule_cmpgtsX, (void *)2);
+ orc_rule_register (rule_set, "shlb", arm_rule_shlX, (void *) 1);
+ FAIL orc_rule_register (rule_set, "shrsb", arm_rule_shrsX, (void *) 1);
+ FAIL orc_rule_register (rule_set, "shrub", arm_rule_shruX, (void *) 1);
+ FAIL orc_rule_register (rule_set, "signb", arm_rule_signX, (void *) 0);
+
+ FAIL orc_rule_register (rule_set, "absw", arm_rule_absX, (void *) 1);
+ orc_rule_register (rule_set, "cmpeqw", arm_rule_cmpeqX, (void *) 2);
+ orc_rule_register (rule_set, "cmpgtsw", arm_rule_cmpgtsX, (void *) 2);
FAIL orc_rule_register (rule_set, "maxsw", arm_rule_maxsw, NULL);
FAIL orc_rule_register (rule_set, "maxuw", arm_rule_maxuw, NULL);
FAIL orc_rule_register (rule_set, "minsw", arm_rule_minsw, NULL);
FAIL orc_rule_register (rule_set, "minuw", arm_rule_minuw, NULL);
orc_rule_register (rule_set, "mulsbw", arm_rule_mulsbw, NULL);
- orc_rule_register (rule_set, "shlw", arm_rule_shlX, (void *)2);
- FAIL orc_rule_register (rule_set, "shrsw", arm_rule_shrsX, (void *)2);
- orc_rule_register (rule_set, "shruw", arm_rule_shruX, (void *)2);
- FAIL orc_rule_register (rule_set, "signw", arm_rule_signX, (void *)1);
+ orc_rule_register (rule_set, "shlw", arm_rule_shlX, (void *) 2);
+ FAIL orc_rule_register (rule_set, "shrsw", arm_rule_shrsX, (void *) 2);
+ orc_rule_register (rule_set, "shruw", arm_rule_shruX, (void *) 2);
+ FAIL orc_rule_register (rule_set, "signw", arm_rule_signX, (void *) 1);
orc_rule_register (rule_set, "mulhsw", arm_rule_mulhsw, NULL);
FAIL orc_rule_register (rule_set, "mulhuw", arm_rule_mulhuw, NULL);
orc_rule_register (rule_set, "cmpeql", arm_rule_cmpeql, NULL);
orc_rule_register (rule_set, "cmpgtsl", arm_rule_cmpgtsl, NULL);
- orc_rule_register (rule_set, "shll", arm_rule_shlX, (void *)4);
- orc_rule_register (rule_set, "shrsl", arm_rule_shrsX, (void *)4);
- orc_rule_register (rule_set, "shrul", arm_rule_shruX, (void *)4);
+ orc_rule_register (rule_set, "shll", arm_rule_shlX, (void *) 4);
+ orc_rule_register (rule_set, "shrsl", arm_rule_shrsX, (void *) 4);
+ orc_rule_register (rule_set, "shrul", arm_rule_shruX, (void *) 4);
orc_rule_register (rule_set, "convsbw", arm_rule_convsbw, NULL);
@@ -1685,7 +1748,7 @@ orc_compiler_orc_arm_register_rules (OrcTarget *target)
orc_rule_register (rule_set, "select0lw", arm_rule_select0lw, NULL);
orc_rule_register (rule_set, "select1lw", arm_rule_select1lw, NULL);
- rule_set = orc_rule_set_new (orc_opcode_set_get("sys"), target,
+ rule_set = orc_rule_set_new (orc_opcode_set_get ("sys"), target,
ORC_TARGET_ARM_ARM6);
orc_rule_register (rule_set, "addb", arm_rule_addb, NULL);
@@ -1715,4 +1778,3 @@ orc_compiler_orc_arm_register_rules (OrcTarget *target)
orc_rule_register (rule_set, "swapl", arm_rule_swapl, NULL);
}
-
diff --git a/orc/orcrules-mmx.c b/orc/orcrules-mmx.c
index 4875410..6255043 100644
--- a/orc/orcrules-mmx.c
+++ b/orc/orcrules-mmx.c
@@ -17,43 +17,43 @@
/* sse rules */
static void
-mmx_rule_loadpX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
+mmx_rule_loadpX (OrcCompiler * compiler, void *user, OrcInstruction * insn)
{
OrcVariable *src = compiler->vars + insn->src_args[0];
OrcVariable *dest = compiler->vars + insn->dest_args[0];
int reg;
- int size = ORC_PTR_TO_INT(user);
+ int size = ORC_PTR_TO_INT (user);
if (src->vartype == ORC_VAR_TYPE_PARAM) {
reg = dest->alloc;
if (size == 8 && src->size == 8) {
orc_x86_emit_mov_memoffset_mmx (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[insn->src_args[0]]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[insn->src_args[0]]),
compiler->exec_reg, reg, FALSE);
#ifndef MMX
orc_mmx_emit_movhps_load_memoffset (compiler,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,
- params[insn->src_args[0] + (ORC_VAR_T1 - ORC_VAR_P1)]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor,
+ params[insn->src_args[0] + (ORC_VAR_T1 - ORC_VAR_P1)]),
compiler->exec_reg, reg);
- orc_mmx_emit_pshufd (compiler, ORC_MMX_SHUF(2,0,2,0), reg, reg);
+ orc_mmx_emit_pshufd (compiler, ORC_MMX_SHUF (2, 0, 2, 0), reg, reg);
#else
/* FIXME yes, I understand this is terrible */
orc_mmx_emit_pinsrw_memoffset (compiler, 2,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,
- params[insn->src_args[0] + (ORC_VAR_T1 - ORC_VAR_P1)]) + 0,
+ (int) ORC_STRUCT_OFFSET (OrcExecutor,
+ params[insn->src_args[0] + (ORC_VAR_T1 - ORC_VAR_P1)]) + 0,
compiler->exec_reg, reg);
orc_mmx_emit_pinsrw_memoffset (compiler, 3,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,
- params[insn->src_args[0] + (ORC_VAR_T1 - ORC_VAR_P1)]) + 2,
+ (int) ORC_STRUCT_OFFSET (OrcExecutor,
+ params[insn->src_args[0] + (ORC_VAR_T1 - ORC_VAR_P1)]) + 2,
compiler->exec_reg, reg);
#ifndef MMX
- orc_mmx_emit_pshufd (compiler, ORC_MMX_SHUF(1,0,1,0), reg, reg);
+ orc_mmx_emit_pshufd (compiler, ORC_MMX_SHUF (1, 0, 1, 0), reg, reg);
#endif
#endif
} else {
orc_x86_emit_mov_memoffset_mmx (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[insn->src_args[0]]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[insn->src_args[0]]),
compiler->exec_reg, reg, FALSE);
if (size < 8) {
if (size == 1) {
@@ -66,26 +66,26 @@ mmx_rule_loadpX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
orc_mmx_emit_pshufd (compiler, 0, reg, reg);
#else
if (size <= 2) {
- orc_mmx_emit_pshufw (compiler, ORC_MMX_SHUF(0,0,0,0), reg, reg);
+ orc_mmx_emit_pshufw (compiler, ORC_MMX_SHUF (0, 0, 0, 0), reg, reg);
} else {
- orc_mmx_emit_pshufw (compiler, ORC_MMX_SHUF(1,0,1,0), reg, reg);
+ orc_mmx_emit_pshufw (compiler, ORC_MMX_SHUF (1, 0, 1, 0), reg, reg);
}
#endif
} else {
#ifndef MMX
- orc_mmx_emit_pshufd (compiler, ORC_MMX_SHUF(1,0,1,0), reg, reg);
+ orc_mmx_emit_pshufd (compiler, ORC_MMX_SHUF (1, 0, 1, 0), reg, reg);
#endif
}
}
} else if (src->vartype == ORC_VAR_TYPE_CONST) {
orc_mmx_load_constant (compiler, dest->alloc, size, src->value.i);
} else {
- ORC_ASSERT(0);
+ ORC_ASSERT (0);
}
}
static void
-mmx_rule_loadX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
+mmx_rule_loadX (OrcCompiler * compiler, void *user, OrcInstruction * insn)
{
OrcVariable *src = compiler->vars + insn->src_args[0];
OrcVariable *dest = compiler->vars + insn->dest_args[0];
@@ -96,17 +96,18 @@ mmx_rule_loadX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
if (src->ptr_register == 0) {
int i = insn->src_args[0];
orc_x86_emit_mov_memoffset_reg (compiler, compiler->is_64bit ? 8 : 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, arrays[i]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, arrays[i]),
compiler->exec_reg, compiler->gp_tmpreg);
ptr_reg = compiler->gp_tmpreg;
} else {
ptr_reg = src->ptr_register;
- }
+ }
switch (src->size << compiler->loop_shift) {
case 1:
orc_x86_emit_mov_memoffset_reg (compiler, 1, offset, ptr_reg,
compiler->gp_tmpreg);
- orc_mmx_emit_movd_load_register (compiler, compiler->gp_tmpreg, dest->alloc);
+ orc_mmx_emit_movd_load_register (compiler, compiler->gp_tmpreg,
+ dest->alloc);
break;
case 2:
orc_mmx_emit_pxor (compiler, dest->alloc, dest->alloc);
@@ -134,7 +135,7 @@ mmx_rule_loadX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_loadoffX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
+mmx_rule_loadoffX (OrcCompiler * compiler, void *user, OrcInstruction * insn)
{
OrcVariable *src = compiler->vars + insn->src_args[0];
OrcVariable *dest = compiler->vars + insn->dest_args[0];
@@ -142,27 +143,29 @@ mmx_rule_loadoffX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
int offset = 0;
if (compiler->vars[insn->src_args[1]].vartype != ORC_VAR_TYPE_CONST) {
- orc_compiler_error (compiler, "code generation rule for %s only works with constant offset",
+ orc_compiler_error (compiler,
+ "code generation rule for %s only works with constant offset",
insn->opcode->name);
return;
}
offset = (compiler->offset + compiler->vars[insn->src_args[1]].value.i) *
- src->size;
+ src->size;
if (src->ptr_register == 0) {
int i = insn->src_args[0];
orc_x86_emit_mov_memoffset_reg (compiler, compiler->is_64bit ? 8 : 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, arrays[i]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, arrays[i]),
compiler->exec_reg, compiler->gp_tmpreg);
ptr_reg = compiler->gp_tmpreg;
} else {
ptr_reg = src->ptr_register;
- }
+ }
switch (src->size << compiler->loop_shift) {
case 1:
orc_x86_emit_mov_memoffset_reg (compiler, 1, offset, ptr_reg,
compiler->gp_tmpreg);
- orc_mmx_emit_movd_load_register (compiler, compiler->gp_tmpreg, dest->alloc);
+ orc_mmx_emit_movd_load_register (compiler, compiler->gp_tmpreg,
+ dest->alloc);
break;
case 2:
orc_mmx_emit_pxor (compiler, dest->alloc, dest->alloc);
@@ -181,7 +184,7 @@ mmx_rule_loadoffX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
dest->alloc, src->is_aligned);
break;
default:
- orc_compiler_error (compiler,"bad load size %d",
+ orc_compiler_error (compiler, "bad load size %d",
src->size << compiler->loop_shift);
break;
}
@@ -190,7 +193,7 @@ mmx_rule_loadoffX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_loadupib (OrcCompiler *compiler, void *user, OrcInstruction *insn)
+mmx_rule_loadupib (OrcCompiler * compiler, void *user, OrcInstruction * insn)
{
OrcVariable *src = compiler->vars + insn->src_args[0];
OrcVariable *dest = compiler->vars + insn->dest_args[0];
@@ -202,12 +205,12 @@ mmx_rule_loadupib (OrcCompiler *compiler, void *user, OrcInstruction *insn)
if (src->ptr_register == 0) {
int i = insn->src_args[0];
orc_x86_emit_mov_memoffset_reg (compiler, compiler->is_64bit ? 8 : 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, arrays[i]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, arrays[i]),
compiler->exec_reg, compiler->gp_tmpreg);
ptr_reg = compiler->gp_tmpreg;
} else {
ptr_reg = src->ptr_register;
- }
+ }
switch (src->size << compiler->loop_shift) {
case 1:
case 2:
@@ -238,7 +241,7 @@ mmx_rule_loadupib (OrcCompiler *compiler, void *user, OrcInstruction *insn)
tmp, FALSE);
break;
default:
- orc_compiler_error(compiler,"bad load size %d",
+ orc_compiler_error (compiler, "bad load size %d",
src->size << compiler->loop_shift);
break;
}
@@ -250,7 +253,7 @@ mmx_rule_loadupib (OrcCompiler *compiler, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_loadupdb (OrcCompiler *compiler, void *user, OrcInstruction *insn)
+mmx_rule_loadupdb (OrcCompiler * compiler, void *user, OrcInstruction * insn)
{
OrcVariable *src = compiler->vars + insn->src_args[0];
OrcVariable *dest = compiler->vars + insn->dest_args[0];
@@ -261,18 +264,19 @@ mmx_rule_loadupdb (OrcCompiler *compiler, void *user, OrcInstruction *insn)
if (src->ptr_register == 0) {
int i = insn->src_args[0];
orc_x86_emit_mov_memoffset_reg (compiler, compiler->is_64bit ? 8 : 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, arrays[i]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, arrays[i]),
compiler->exec_reg, compiler->gp_tmpreg);
ptr_reg = compiler->gp_tmpreg;
} else {
ptr_reg = src->ptr_register;
- }
+ }
switch (src->size << compiler->loop_shift) {
case 1:
case 2:
orc_x86_emit_mov_memoffset_reg (compiler, 1, offset, ptr_reg,
compiler->gp_tmpreg);
- orc_mmx_emit_movd_load_register (compiler, compiler->gp_tmpreg, dest->alloc);
+ orc_mmx_emit_movd_load_register (compiler, compiler->gp_tmpreg,
+ dest->alloc);
break;
case 4:
orc_mmx_emit_pinsrw_memoffset (compiler, 0, offset, ptr_reg, dest->alloc);
@@ -290,7 +294,7 @@ mmx_rule_loadupdb (OrcCompiler *compiler, void *user, OrcInstruction *insn)
dest->alloc, src->is_aligned);
break;
default:
- orc_compiler_error(compiler,"bad load size %d",
+ orc_compiler_error (compiler, "bad load size %d",
src->size << compiler->loop_shift);
break;
}
@@ -310,7 +314,7 @@ mmx_rule_loadupdb (OrcCompiler *compiler, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_storeX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
+mmx_rule_storeX (OrcCompiler * compiler, void *user, OrcInstruction * insn)
{
OrcVariable *src = compiler->vars + insn->src_args[0];
OrcVariable *dest = compiler->vars + insn->dest_args[0];
@@ -321,10 +325,10 @@ mmx_rule_storeX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
if (dest->ptr_register == 0) {
orc_x86_emit_mov_memoffset_reg (compiler, compiler->is_64bit ? 8 : 4,
dest->ptr_offset, compiler->exec_reg, compiler->gp_tmpreg);
- ptr_reg = compiler->gp_tmpreg;
+ ptr_reg = compiler->gp_tmpreg;
} else {
ptr_reg = dest->ptr_register;
- }
+ }
switch (dest->size << compiler->loop_shift) {
case 1:
/* FIXME we might be using ecx twice here */
@@ -332,9 +336,10 @@ mmx_rule_storeX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
orc_compiler_error (compiler, "unimplemented corner case in %s",
insn->opcode->name);
}
- orc_mmx_emit_movd_store_register (compiler, src->alloc, compiler->gp_tmpreg);
- orc_x86_emit_mov_reg_memoffset (compiler, 1, compiler->gp_tmpreg,
- offset, ptr_reg);
+ orc_mmx_emit_movd_store_register (compiler, src->alloc,
+ compiler->gp_tmpreg);
+ orc_x86_emit_mov_reg_memoffset (compiler, 1, compiler->gp_tmpreg, offset,
+ ptr_reg);
break;
case 2:
if (compiler->target_flags & ORC_TARGET_MMX_SSE4_1) {
@@ -343,10 +348,11 @@ mmx_rule_storeX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
} else {
/* FIXME we might be using ecx twice here */
if (ptr_reg == compiler->gp_tmpreg) {
- orc_compiler_error(compiler, "unimplemented corner case in %s",
+ orc_compiler_error (compiler, "unimplemented corner case in %s",
insn->opcode->name);
- }
- orc_mmx_emit_movd_store_register (compiler, src->alloc, compiler->gp_tmpreg);
+ }
+ orc_mmx_emit_movd_store_register (compiler, src->alloc,
+ compiler->gp_tmpreg);
orc_x86_emit_mov_reg_memoffset (compiler, 2, compiler->gp_tmpreg,
offset, ptr_reg);
}
@@ -373,7 +379,7 @@ mmx_rule_storeX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
#if try1
static void
-mmx_rule_ldresnearl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
+mmx_rule_ldresnearl (OrcCompiler * compiler, void *user, OrcInstruction * insn)
{
OrcVariable *src = compiler->vars + insn->src_args[0];
OrcVariable *dest = compiler->vars + insn->dest_args[0];
@@ -408,7 +414,7 @@ mmx_rule_ldresnearl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
orc_mmx_emit_paddb (compiler, tmp, tmp);
#endif
- orc_mmx_emit_pshufd (compiler, ORC_MMX_SHUF(0,0,0,0), tmp, tmp2);
+ orc_mmx_emit_pshufd (compiler, ORC_MMX_SHUF (0, 0, 0, 0), tmp, tmp2);
orc_mmx_emit_psubd (compiler, tmp2, tmp);
tmpc = orc_compiler_get_constant (compiler, 4, 0x03020100);
orc_mmx_emit_paddd (compiler, tmpc, tmp);
@@ -425,7 +431,7 @@ mmx_rule_ldresnearl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
#endif
static void
-mmx_rule_ldresnearl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
+mmx_rule_ldresnearl (OrcCompiler * compiler, void *user, OrcInstruction * insn)
{
OrcVariable *src = compiler->vars + insn->src_args[0];
int increment_var = insn->src_args[2];
@@ -433,7 +439,7 @@ mmx_rule_ldresnearl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
int tmp = orc_compiler_get_temp_reg (compiler);
int i;
- for(i=0;i<(1<<compiler->loop_shift);i++){
+ for (i = 0; i < (1 << compiler->loop_shift); i++) {
if (i == 0) {
orc_x86_emit_mov_memoffset_mmx (compiler, 4, 0,
src->ptr_register, dest->alloc, FALSE);
@@ -442,31 +448,30 @@ mmx_rule_ldresnearl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
src->ptr_register, compiler->gp_tmpreg, 2, tmp, FALSE);
#ifdef MMX
//orc_mmx_emit_punpckldq (compiler, tmp, dest->alloc);
- orc_mmx_emit_psllq_imm (compiler, 8*4*i, tmp);
+ orc_mmx_emit_psllq_imm (compiler, 8 * 4 * i, tmp);
orc_mmx_emit_por (compiler, tmp, dest->alloc);
#else
- orc_mmx_emit_pslldq_imm (compiler, 4*i, tmp);
+ orc_mmx_emit_pslldq_imm (compiler, 4 * i, tmp);
orc_mmx_emit_por (compiler, tmp, dest->alloc);
#endif
}
if (compiler->vars[increment_var].vartype == ORC_VAR_TYPE_PARAM) {
orc_x86_emit_add_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[increment_var]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[increment_var]),
compiler->exec_reg, src->ptr_offset);
} else {
orc_x86_emit_add_imm_reg (compiler, 4,
- compiler->vars[increment_var].value.i,
- src->ptr_offset, FALSE);
+ compiler->vars[increment_var].value.i, src->ptr_offset, FALSE);
}
- orc_x86_emit_mov_reg_reg (compiler, 4, src->ptr_offset, compiler->gp_tmpreg);
+ orc_x86_emit_mov_reg_reg (compiler, 4, src->ptr_offset,
+ compiler->gp_tmpreg);
orc_x86_emit_sar_imm_reg (compiler, 4, 16, compiler->gp_tmpreg);
}
orc_x86_emit_add_reg_reg_shift (compiler, compiler->is_64bit ? 8 : 4,
- compiler->gp_tmpreg,
- src->ptr_register, 2);
+ compiler->gp_tmpreg, src->ptr_register, 2);
orc_x86_emit_and_imm_reg (compiler, 4, 0xffff, src->ptr_offset);
src->update_type = 0;
@@ -474,7 +479,7 @@ mmx_rule_ldresnearl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
#ifndef MMX
static void
-mmx_rule_ldreslinl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
+mmx_rule_ldreslinl (OrcCompiler * compiler, void *user, OrcInstruction * insn)
{
OrcVariable *src = compiler->vars + insn->src_args[0];
int increment_var = insn->src_args[2];
@@ -490,11 +495,11 @@ mmx_rule_ldreslinl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
orc_mmx_emit_pxor (compiler, tmp2, tmp2);
orc_mmx_emit_punpcklbw (compiler, tmp2, tmp);
- orc_mmx_emit_pshufd (compiler, ORC_MMX_SHUF(3,2,3,2), tmp, tmp2);
+ orc_mmx_emit_pshufd (compiler, ORC_MMX_SHUF (3, 2, 3, 2), tmp, tmp2);
orc_mmx_emit_psubw (compiler, tmp, tmp2);
orc_mmx_emit_movd_load_register (compiler, src->ptr_offset, tmp);
- orc_mmx_emit_pshuflw (compiler, ORC_MMX_SHUF(0,0,0,0), tmp, tmp);
+ orc_mmx_emit_pshuflw (compiler, ORC_MMX_SHUF (0, 0, 0, 0), tmp, tmp);
orc_mmx_emit_psrlw_imm (compiler, 8, tmp);
orc_mmx_emit_pmullw (compiler, tmp2, tmp);
orc_mmx_emit_psraw_imm (compiler, 8, tmp);
@@ -507,15 +512,15 @@ mmx_rule_ldreslinl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
if (compiler->vars[increment_var].vartype == ORC_VAR_TYPE_PARAM) {
orc_x86_emit_add_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[increment_var]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[increment_var]),
compiler->exec_reg, src->ptr_offset);
} else {
orc_x86_emit_add_imm_reg (compiler, regsize,
- compiler->vars[increment_var].value.i,
- src->ptr_offset, FALSE);
+ compiler->vars[increment_var].value.i, src->ptr_offset, FALSE);
}
- orc_x86_emit_mov_reg_reg (compiler, 4, src->ptr_offset, compiler->gp_tmpreg);
+ orc_x86_emit_mov_reg_reg (compiler, 4, src->ptr_offset,
+ compiler->gp_tmpreg);
orc_x86_emit_sar_imm_reg (compiler, 4, 16, compiler->gp_tmpreg);
orc_x86_emit_add_reg_reg_shift (compiler, regsize, compiler->gp_tmpreg,
@@ -525,21 +530,21 @@ mmx_rule_ldreslinl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
int tmp3 = orc_compiler_get_temp_reg (compiler);
int tmp4 = orc_compiler_get_temp_reg (compiler);
- for(i=0;i<(1<<compiler->loop_shift);i+=2){
+ for (i = 0; i < (1 << compiler->loop_shift); i += 2) {
orc_x86_emit_mov_memoffset_mmx (compiler, 8, 0,
src->ptr_register, tmp, FALSE);
orc_mmx_emit_movd_load_register (compiler, src->ptr_offset, tmp4);
if (compiler->vars[increment_var].vartype == ORC_VAR_TYPE_PARAM) {
orc_x86_emit_add_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[increment_var]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[increment_var]),
compiler->exec_reg, src->ptr_offset);
} else {
orc_x86_emit_add_imm_reg (compiler, 4,
- compiler->vars[increment_var].value.i,
- src->ptr_offset, FALSE);
+ compiler->vars[increment_var].value.i, src->ptr_offset, FALSE);
}
- orc_x86_emit_mov_reg_reg (compiler, 4, src->ptr_offset, compiler->gp_tmpreg);
+ orc_x86_emit_mov_reg_reg (compiler, 4, src->ptr_offset,
+ compiler->gp_tmpreg);
orc_x86_emit_sar_imm_reg (compiler, 4, 16, compiler->gp_tmpreg);
orc_x86_emit_mov_memindex_mmx (compiler, 8, 0,
@@ -565,8 +570,8 @@ mmx_rule_ldreslinl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
orc_mmx_emit_punpcklwd (compiler, tmp4, tmp4);
orc_mmx_emit_punpckldq (compiler, tmp4, tmp4);
#else
- orc_mmx_emit_pshuflw (compiler, ORC_MMX_SHUF(1,1,0,0), tmp4, tmp4);
- orc_mmx_emit_pshufd (compiler, ORC_MMX_SHUF(1,1,0,0), tmp4, tmp4);
+ orc_mmx_emit_pshuflw (compiler, ORC_MMX_SHUF (1, 1, 0, 0), tmp4, tmp4);
+ orc_mmx_emit_pshufd (compiler, ORC_MMX_SHUF (1, 1, 0, 0), tmp4, tmp4);
#endif
orc_mmx_emit_psrlw_imm (compiler, 8, tmp4);
orc_mmx_emit_pmullw (compiler, tmp4, tmp2);
@@ -581,15 +586,15 @@ mmx_rule_ldreslinl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
if (compiler->vars[increment_var].vartype == ORC_VAR_TYPE_PARAM) {
orc_x86_emit_add_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[increment_var]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[increment_var]),
compiler->exec_reg, src->ptr_offset);
} else {
orc_x86_emit_add_imm_reg (compiler, 4,
- compiler->vars[increment_var].value.i,
- src->ptr_offset, FALSE);
+ compiler->vars[increment_var].value.i, src->ptr_offset, FALSE);
}
- orc_x86_emit_mov_reg_reg (compiler, 4, src->ptr_offset, compiler->gp_tmpreg);
+ orc_x86_emit_mov_reg_reg (compiler, 4, src->ptr_offset,
+ compiler->gp_tmpreg);
orc_x86_emit_sar_imm_reg (compiler, 4, 16, compiler->gp_tmpreg);
orc_x86_emit_add_reg_reg_shift (compiler, 8, compiler->gp_tmpreg,
@@ -602,7 +607,7 @@ mmx_rule_ldreslinl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
}
#else
static void
-mmx_rule_ldreslinl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
+mmx_rule_ldreslinl (OrcCompiler * compiler, void *user, OrcInstruction * insn)
{
OrcVariable *src = compiler->vars + insn->src_args[0];
int increment_var = insn->src_args[2];
@@ -614,7 +619,7 @@ mmx_rule_ldreslinl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
int i;
zero = orc_compiler_get_constant (compiler, 1, 0);
- for(i=0;i<(1<<compiler->loop_shift);i++){
+ for (i = 0; i < (1 << compiler->loop_shift); i++) {
orc_x86_emit_mov_memoffset_mmx (compiler, 4, 0,
src->ptr_register, tmp, FALSE);
orc_x86_emit_mov_memoffset_mmx (compiler, 4, 4,
@@ -625,7 +630,7 @@ mmx_rule_ldreslinl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
orc_mmx_emit_psubw (compiler, tmp, tmp2);
orc_mmx_emit_movd_load_register (compiler, src->ptr_offset, tmp);
- orc_mmx_emit_pshufw (compiler, ORC_MMX_SHUF(0,0,0,0), tmp, tmp);
+ orc_mmx_emit_pshufw (compiler, ORC_MMX_SHUF (0, 0, 0, 0), tmp, tmp);
orc_mmx_emit_psrlw_imm (compiler, 8, tmp);
orc_mmx_emit_pmullw (compiler, tmp2, tmp);
orc_mmx_emit_psraw_imm (compiler, 8, tmp);
@@ -646,15 +651,15 @@ mmx_rule_ldreslinl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
if (compiler->vars[increment_var].vartype == ORC_VAR_TYPE_PARAM) {
orc_x86_emit_add_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[increment_var]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[increment_var]),
compiler->exec_reg, src->ptr_offset);
} else {
orc_x86_emit_add_imm_reg (compiler, regsize,
- compiler->vars[increment_var].value.i,
- src->ptr_offset, FALSE);
+ compiler->vars[increment_var].value.i, src->ptr_offset, FALSE);
}
- orc_x86_emit_mov_reg_reg (compiler, 4, src->ptr_offset, compiler->gp_tmpreg);
+ orc_x86_emit_mov_reg_reg (compiler, 4, src->ptr_offset,
+ compiler->gp_tmpreg);
orc_x86_emit_sar_imm_reg (compiler, 4, 16, compiler->gp_tmpreg);
orc_x86_emit_add_reg_reg_shift (compiler, regsize, compiler->gp_tmpreg,
@@ -667,15 +672,14 @@ mmx_rule_ldreslinl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
#endif
static void
-mmx_rule_copyx (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_copyx (OrcCompiler * p, void *user, OrcInstruction * insn)
{
if (p->vars[insn->src_args[0]].alloc == p->vars[insn->dest_args[0]].alloc) {
return;
}
orc_mmx_emit_movq (p,
- p->vars[insn->src_args[0]].alloc,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[0]].alloc, p->vars[insn->dest_args[0]].alloc);
}
#define UNARY(opcode,insn_name,code) \
@@ -697,89 +701,87 @@ mmx_rule_ ## opcode (OrcCompiler *p, void *user, OrcInstruction *insn) \
}
-UNARY(absb,pabsb,0x381c)
-BINARY(addb,paddb,0xfc)
-BINARY(addssb,paddsb,0xec)
-BINARY(addusb,paddusb,0xdc)
-BINARY(andb,pand,0xdb)
-BINARY(andnb,pandn,0xdf)
-BINARY(avgub,pavgb,0xe0)
-BINARY(cmpeqb,pcmpeqb,0x74)
-BINARY(cmpgtsb,pcmpgtb,0x64)
-BINARY(maxsb,pmaxsb,0x383c)
-BINARY(maxub,pmaxub,0xde)
-BINARY(minsb,pminsb,0x3838)
-BINARY(minub,pminub,0xda)
+UNARY (absb, pabsb, 0x381c)
+ BINARY (addb, paddb, 0xfc)
+ BINARY (addssb, paddsb, 0xec)
+ BINARY (addusb, paddusb, 0xdc)
+ BINARY (andb, pand, 0xdb)
+ BINARY (andnb, pandn, 0xdf)
+ BINARY (avgub, pavgb, 0xe0)
+ BINARY (cmpeqb, pcmpeqb, 0x74)
+ BINARY (cmpgtsb, pcmpgtb, 0x64)
+ BINARY (maxsb, pmaxsb, 0x383c)
+ BINARY (maxub, pmaxub, 0xde)
+ BINARY (minsb, pminsb, 0x3838)
+ BINARY (minub, pminub, 0xda)
//BINARY(mullb,pmullb,0xd5)
//BINARY(mulhsb,pmulhb,0xe5)
//BINARY(mulhub,pmulhub,0xe4)
-BINARY(orb,por,0xeb)
+ BINARY (orb, por, 0xeb)
//UNARY(signb,psignb,0x3808)
-BINARY(subb,psubb,0xf8)
-BINARY(subssb,psubsb,0xe8)
-BINARY(subusb,psubusb,0xd8)
-BINARY(xorb,pxor,0xef)
-
-UNARY(absw,pabsw,0x381d)
-BINARY(addw,paddw,0xfd)
-BINARY(addssw,paddsw,0xed)
-BINARY(addusw,paddusw,0xdd)
-BINARY(andw,pand,0xdb)
-BINARY(andnw,pandn,0xdf)
-BINARY(avguw,pavgw,0xe3)
-BINARY(cmpeqw,pcmpeqw,0x75)
-BINARY(cmpgtsw,pcmpgtw,0x65)
-BINARY(maxsw,pmaxsw,0xee)
-BINARY(maxuw,pmaxuw,0x383e)
-BINARY(minsw,pminsw,0xea)
-BINARY(minuw,pminuw,0x383a)
-BINARY(mullw,pmullw,0xd5)
-BINARY(mulhsw,pmulhw,0xe5)
-BINARY(mulhuw,pmulhuw,0xe4)
-BINARY(orw,por,0xeb)
+ BINARY (subb, psubb, 0xf8)
+ BINARY (subssb, psubsb, 0xe8)
+ BINARY (subusb, psubusb, 0xd8)
+ BINARY (xorb, pxor, 0xef)
+
+ UNARY (absw, pabsw, 0x381d)
+ BINARY (addw, paddw, 0xfd)
+ BINARY (addssw, paddsw, 0xed)
+ BINARY (addusw, paddusw, 0xdd)
+ BINARY (andw, pand, 0xdb)
+ BINARY (andnw, pandn, 0xdf)
+ BINARY (avguw, pavgw, 0xe3)
+ BINARY (cmpeqw, pcmpeqw, 0x75)
+ BINARY (cmpgtsw, pcmpgtw, 0x65)
+ BINARY (maxsw, pmaxsw, 0xee)
+ BINARY (maxuw, pmaxuw, 0x383e)
+ BINARY (minsw, pminsw, 0xea)
+ BINARY (minuw, pminuw, 0x383a)
+ BINARY (mullw, pmullw, 0xd5)
+ BINARY (mulhsw, pmulhw, 0xe5)
+ BINARY (mulhuw, pmulhuw, 0xe4)
+ BINARY (orw, por, 0xeb)
//UNARY(signw,psignw,0x3809)
-BINARY(subw,psubw,0xf9)
-BINARY(subssw,psubsw,0xe9)
-BINARY(subusw,psubusw,0xd9)
-BINARY(xorw,pxor,0xef)
+ BINARY (subw, psubw, 0xf9)
+ BINARY (subssw, psubsw, 0xe9)
+ BINARY (subusw, psubusw, 0xd9)
+ BINARY (xorw, pxor, 0xef)
-UNARY(absl,pabsd,0x381e)
-BINARY(addl,paddd,0xfe)
+ UNARY (absl, pabsd, 0x381e)
+ BINARY (addl, paddd, 0xfe)
//BINARY(addssl,paddsd,0xed)
//BINARY(addusl,paddusd,0xdd)
-BINARY(andl,pand,0xdb)
-BINARY(andnl,pandn,0xdf)
+ BINARY (andl, pand, 0xdb)
+ BINARY (andnl, pandn, 0xdf)
//BINARY(avgul,pavgd,0xe3)
-BINARY(cmpeql,pcmpeqd,0x76)
-BINARY(cmpgtsl,pcmpgtd,0x66)
-BINARY(maxsl,pmaxsd,0x383d)
-BINARY(maxul,pmaxud,0x383f)
-BINARY(minsl,pminsd,0x3839)
-BINARY(minul,pminud,0x383b)
-BINARY(mulll,pmulld,0x3840)
+ BINARY (cmpeql, pcmpeqd, 0x76)
+ BINARY (cmpgtsl, pcmpgtd, 0x66)
+ BINARY (maxsl, pmaxsd, 0x383d)
+ BINARY (maxul, pmaxud, 0x383f)
+ BINARY (minsl, pminsd, 0x3839)
+ BINARY (minul, pminud, 0x383b)
+ BINARY (mulll, pmulld, 0x3840)
//BINARY(mulhsl,pmulhd,0xe5)
//BINARY(mulhul,pmulhud,0xe4)
-BINARY(orl,por,0xeb)
+ BINARY (orl, por, 0xeb)
//UNARY(signl,psignd,0x380a)
-BINARY(subl,psubd,0xfa)
+ BINARY (subl, psubd, 0xfa)
//BINARY(subssl,psubsd,0xe9)
//BINARY(subusl,psubusd,0xd9)
-BINARY(xorl,pxor,0xef)
-
-BINARY(andq,pand,0xdb)
-BINARY(andnq,pandn,0xdf)
-BINARY(orq,por,0xeb)
-BINARY(xorq,pxor,0xef)
-BINARY(cmpeqq,pcmpeqq,0x3829)
-BINARY(cmpgtsq,pcmpgtq,0x3837)
-
+ BINARY (xorl, pxor, 0xef)
+
+ BINARY (andq, pand, 0xdb)
+ BINARY (andnq, pandn, 0xdf)
+ BINARY (orq, por, 0xeb)
+ BINARY (xorq, pxor, 0xef)
+ BINARY (cmpeqq, pcmpeqq, 0x3829)
+ BINARY (cmpgtsq, pcmpgtq, 0x3837)
#ifndef MMX
-BINARY(addq,paddq,0xd4)
-BINARY(subq,psubq,0xfb)
+ BINARY (addq, paddq, 0xd4)
+ BINARY (subq, psubq, 0xfb)
#endif
-
-static void
-mmx_rule_accw (OrcCompiler *p, void *user, OrcInstruction *insn)
+ static void
+ mmx_rule_accw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -788,7 +790,7 @@ mmx_rule_accw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_accl (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_accl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -802,7 +804,7 @@ mmx_rule_accl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_accsadubl (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_accsadubl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = p->vars[insn->src_args[0]].alloc;
int src2 = p->vars[insn->src_args[1]].alloc;
@@ -813,9 +815,9 @@ mmx_rule_accsadubl (OrcCompiler *p, void *user, OrcInstruction *insn)
#ifndef MMX
if (p->loop_shift <= 2) {
orc_mmx_emit_movq (p, src1, tmp);
- orc_mmx_emit_pslldq_imm (p, 16 - (1<<p->loop_shift), tmp);
+ orc_mmx_emit_pslldq_imm (p, 16 - (1 << p->loop_shift), tmp);
orc_mmx_emit_movq (p, src2, tmp2);
- orc_mmx_emit_pslldq_imm (p, 16 - (1<<p->loop_shift), tmp2);
+ orc_mmx_emit_pslldq_imm (p, 16 - (1 << p->loop_shift), tmp2);
orc_mmx_emit_psadbw (p, tmp2, tmp);
} else if (p->loop_shift == 3) {
orc_mmx_emit_movq (p, src1, tmp);
@@ -828,9 +830,9 @@ mmx_rule_accsadubl (OrcCompiler *p, void *user, OrcInstruction *insn)
#else
if (p->loop_shift <= 2) {
orc_mmx_emit_movq (p, src1, tmp);
- orc_mmx_emit_psllq_imm (p, 8*(8 - (1<<p->loop_shift)), tmp);
+ orc_mmx_emit_psllq_imm (p, 8 * (8 - (1 << p->loop_shift)), tmp);
orc_mmx_emit_movq (p, src2, tmp2);
- orc_mmx_emit_psllq_imm (p, 8*(8 - (1<<p->loop_shift)), tmp2);
+ orc_mmx_emit_psllq_imm (p, 8 * (8 - (1 << p->loop_shift)), tmp2);
orc_mmx_emit_psadbw (p, tmp2, tmp);
} else {
orc_mmx_emit_movq (p, src1, tmp);
@@ -842,15 +844,15 @@ mmx_rule_accsadubl (OrcCompiler *p, void *user, OrcInstruction *insn)
#ifndef MMX
static void
-mmx_rule_signX_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_signX_ssse3 (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
int opcodes[] = { ORC_X86_psignb, ORC_X86_psignw, ORC_X86_psignd };
- int type = ORC_PTR_TO_INT(user);
+ int type = ORC_PTR_TO_INT (user);
int tmpc;
- tmpc = orc_compiler_get_temp_constant (p, 1<<type, 1);
+ tmpc = orc_compiler_get_temp_constant (p, 1 << type, 1);
if (src == dest) {
orc_x86_emit_cpuinsn_size (p, opcodes[type], 16, src, tmpc);
orc_mmx_emit_movq (p, tmpc, dest);
@@ -863,7 +865,7 @@ mmx_rule_signX_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
#endif
static void
-mmx_rule_signw_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_signw_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp;
@@ -876,7 +878,7 @@ mmx_rule_signw_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_absb_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_absb_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -889,7 +891,7 @@ mmx_rule_absb_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_absw_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_absw_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -909,7 +911,7 @@ mmx_rule_absw_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_absl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_absl_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -929,19 +931,21 @@ mmx_rule_absl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_shift (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_shift (OrcCompiler * p, void *user, OrcInstruction * insn)
{
- int type = ORC_PTR_TO_INT(user);
+ int type = ORC_PTR_TO_INT (user);
//int imm_code1[] = { 0x71, 0x71, 0x71, 0x72, 0x72, 0x72, 0x73, 0x73 };
//int imm_code2[] = { 6, 2, 4, 6, 2, 4, 6, 2 };
//int reg_code[] = { 0xf1, 0xd1, 0xe1, 0xf2, 0xd2, 0xe2, 0xf3, 0xd3 };
//const char *code[] = { "psllw", "psrlw", "psraw", "pslld", "psrld", "psrad", "psllq", "psrlq" };
const int opcodes[] = { ORC_X86_psllw, ORC_X86_psrlw, ORC_X86_psraw,
ORC_X86_pslld, ORC_X86_psrld, ORC_X86_psrad, ORC_X86_psllq,
- ORC_X86_psrlq };
+ ORC_X86_psrlq
+ };
const int opcodes_imm[] = { ORC_X86_psllw_imm, ORC_X86_psrlw_imm,
ORC_X86_psraw_imm, ORC_X86_pslld_imm, ORC_X86_psrld_imm,
- ORC_X86_psrad_imm, ORC_X86_psllq_imm, ORC_X86_psrlq_imm };
+ ORC_X86_psrad_imm, ORC_X86_psllq_imm, ORC_X86_psrlq_imm
+ };
if (p->vars[insn->src_args[1]].vartype == ORC_VAR_TYPE_CONST) {
orc_x86_emit_cpuinsn_imm (p, opcodes_imm[type],
@@ -953,7 +957,7 @@ mmx_rule_shift (OrcCompiler *p, void *user, OrcInstruction *insn)
/* FIXME this is a gross hack to reload the register with a
* 64-bit version of the parameter. */
orc_x86_emit_mov_memoffset_mmx (p, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[insn->src_args[1]]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[insn->src_args[1]]),
p->exec_reg, tmp, FALSE);
orc_x86_emit_cpuinsn_size (p, opcodes[type], 16, tmp,
@@ -966,7 +970,7 @@ mmx_rule_shift (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_shlb (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_shlb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp;
@@ -974,7 +978,7 @@ mmx_rule_shlb (OrcCompiler *p, void *user, OrcInstruction *insn)
if (p->vars[insn->src_args[1]].vartype == ORC_VAR_TYPE_CONST) {
orc_mmx_emit_psllw_imm (p, p->vars[insn->src_args[1]].value.i, dest);
tmp = orc_compiler_get_constant (p, 1,
- 0xff&(0xff<<p->vars[insn->src_args[1]].value.i));
+ 0xff & (0xff << p->vars[insn->src_args[1]].value.i));
orc_mmx_emit_pand (p, tmp, dest);
} else {
orc_compiler_error (p, "code generation rule for %s only works with "
@@ -984,7 +988,7 @@ mmx_rule_shlb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_shrsb (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_shrsb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1008,7 +1012,7 @@ mmx_rule_shrsb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_shrub (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_shrub (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp;
@@ -1016,7 +1020,7 @@ mmx_rule_shrub (OrcCompiler *p, void *user, OrcInstruction *insn)
if (p->vars[insn->src_args[1]].vartype == ORC_VAR_TYPE_CONST) {
orc_mmx_emit_psrlw_imm (p, p->vars[insn->src_args[1]].value.i, dest);
tmp = orc_compiler_get_constant (p, 1,
- (0xff>>p->vars[insn->src_args[1]].value.i));
+ (0xff >> p->vars[insn->src_args[1]].value.i));
orc_mmx_emit_pand (p, tmp, dest);
} else {
orc_compiler_error (p, "code generation rule for %s only works with "
@@ -1026,7 +1030,7 @@ mmx_rule_shrub (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_shrsq (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_shrsq (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1034,12 +1038,12 @@ mmx_rule_shrsq (OrcCompiler *p, void *user, OrcInstruction *insn)
if (p->vars[insn->src_args[1]].vartype == ORC_VAR_TYPE_CONST) {
#ifndef MMX
- orc_mmx_emit_pshufd (p, ORC_MMX_SHUF(3,3,1,1), src, tmp);
+ orc_mmx_emit_pshufd (p, ORC_MMX_SHUF (3, 3, 1, 1), src, tmp);
#else
- orc_mmx_emit_pshufw (p, ORC_MMX_SHUF(3,2,3,2), src, tmp);
+ orc_mmx_emit_pshufw (p, ORC_MMX_SHUF (3, 2, 3, 2), src, tmp);
#endif
orc_mmx_emit_psrad_imm (p, 31, tmp);
- orc_mmx_emit_psllq_imm (p, 64-p->vars[insn->src_args[1]].value.i, tmp);
+ orc_mmx_emit_psllq_imm (p, 64 - p->vars[insn->src_args[1]].value.i, tmp);
orc_mmx_emit_psrlq_imm (p, p->vars[insn->src_args[1]].value.i, dest);
orc_mmx_emit_por (p, tmp, dest);
@@ -1051,7 +1055,7 @@ mmx_rule_shrsq (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_convsbw (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_convsbw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1061,7 +1065,7 @@ mmx_rule_convsbw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_convubw (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_convubw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1072,13 +1076,13 @@ mmx_rule_convubw (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_mmx_emit_punpcklbw (p, src, dest);
orc_mmx_emit_psrlw_imm (p, 8, dest);
} else {
- orc_mmx_emit_pxor(p, tmp, tmp);
+ orc_mmx_emit_pxor (p, tmp, tmp);
orc_mmx_emit_punpcklbw (p, tmp, dest);
}
}
static void
-mmx_rule_convssswb (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_convssswb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1087,7 +1091,7 @@ mmx_rule_convssswb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_convsuswb (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_convsuswb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1096,7 +1100,7 @@ mmx_rule_convsuswb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_convuuswb (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_convuuswb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1113,7 +1117,7 @@ mmx_rule_convuuswb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_convwb (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_convwb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1123,7 +1127,7 @@ mmx_rule_convwb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_convhwb (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_convhwb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1132,7 +1136,7 @@ mmx_rule_convhwb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_convswl (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_convswl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1142,7 +1146,7 @@ mmx_rule_convswl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_convuwl (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_convuwl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1153,13 +1157,13 @@ mmx_rule_convuwl (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_mmx_emit_punpcklwd (p, src, dest);
orc_mmx_emit_psrld_imm (p, 16, dest);
} else {
- orc_mmx_emit_pxor(p, tmp, tmp);
+ orc_mmx_emit_pxor (p, tmp, tmp);
orc_mmx_emit_punpcklwd (p, tmp, dest);
}
}
static void
-mmx_rule_convlw (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_convlw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1169,7 +1173,7 @@ mmx_rule_convlw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_convhlw (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_convhlw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1178,7 +1182,7 @@ mmx_rule_convhlw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_convssslw (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_convssslw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1187,7 +1191,7 @@ mmx_rule_convssslw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_convsuslw (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_convsuslw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1196,7 +1200,7 @@ mmx_rule_convsuslw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_convslq (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_convslq (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1208,7 +1212,7 @@ mmx_rule_convslq (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_convulq (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_convulq (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp;
@@ -1218,33 +1222,33 @@ mmx_rule_convulq (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_convql (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_convql (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
#ifndef MMX
- orc_mmx_emit_pshufd (p, ORC_MMX_SHUF(2,0,2,0), src, dest);
+ orc_mmx_emit_pshufd (p, ORC_MMX_SHUF (2, 0, 2, 0), src, dest);
#else
orc_mmx_emit_movq (p, src, dest);
#endif
}
static void
-mmx_rule_splatw3q (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_splatw3q (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
#ifndef MMX
- orc_mmx_emit_pshuflw (p, ORC_MMX_SHUF(3,3,3,3), dest, dest);
- orc_mmx_emit_pshufhw (p, ORC_MMX_SHUF(3,3,3,3), dest, dest);
+ orc_mmx_emit_pshuflw (p, ORC_MMX_SHUF (3, 3, 3, 3), dest, dest);
+ orc_mmx_emit_pshufhw (p, ORC_MMX_SHUF (3, 3, 3, 3), dest, dest);
#else
- orc_mmx_emit_pshufw (p, ORC_MMX_SHUF(3,3,3,3), dest, dest);
+ orc_mmx_emit_pshufw (p, ORC_MMX_SHUF (3, 3, 3, 3), dest, dest);
#endif
}
static void
-mmx_rule_splatbw (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_splatbw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1252,7 +1256,7 @@ mmx_rule_splatbw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_splatbl (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_splatbl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1261,7 +1265,7 @@ mmx_rule_splatbl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_div255w (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_div255w (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp = orc_compiler_get_temp_reg (p);
@@ -1277,7 +1281,7 @@ mmx_rule_div255w (OrcCompiler *p, void *user, OrcInstruction *insn)
#if 1
static void
-mmx_rule_divluw (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_divluw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
/* About 5.2 cycles per array member on ginger */
int src = p->vars[insn->src_args[1]].alloc;
@@ -1301,7 +1305,7 @@ mmx_rule_divluw (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_mmx_emit_pxor (p, tmp, dest);
- for(i=0;i<7;i++){
+ for (i = 0; i < 7; i++) {
orc_mmx_emit_movq (p, divisor, l);
orc_mmx_emit_pxor (p, tmp, l);
orc_mmx_emit_pcmpgtw (p, dest, l);
@@ -1310,11 +1314,11 @@ mmx_rule_divluw (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_mmx_emit_psubw (p, l, dest);
orc_mmx_emit_psrlw_imm (p, 1, divisor);
- orc_mmx_emit_pand (p, j, j2);
- orc_mmx_emit_pxor (p, j2, a);
- orc_mmx_emit_psrlw_imm (p, 1, j);
+ orc_mmx_emit_pand (p, j, j2);
+ orc_mmx_emit_pxor (p, j2, a);
+ orc_mmx_emit_psrlw_imm (p, 1, j);
}
-
+
orc_mmx_emit_movq (p, divisor, l);
orc_mmx_emit_pxor (p, tmp, l);
orc_mmx_emit_pcmpgtw (p, dest, l);
@@ -1325,7 +1329,7 @@ mmx_rule_divluw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
#else
static void
-mmx_rule_divluw (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_divluw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
/* About 8.4 cycles per array member on ginger */
int src = p->vars[insn->src_args[1]].alloc;
@@ -1348,7 +1352,7 @@ mmx_rule_divluw (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_mmx_emit_movq (p, tmp, j);
orc_mmx_emit_psrlw_imm (p, 8, j);
- for(i=0;i<8;i++){
+ for (i = 0; i < 8; i++) {
orc_mmx_emit_por (p, j, a);
orc_mmx_emit_movq (p, a, k);
orc_mmx_emit_pmullw (p, src, k);
@@ -1364,7 +1368,7 @@ mmx_rule_divluw (OrcCompiler *p, void *user, OrcInstruction *insn)
#endif
static void
-mmx_rule_mulsbw (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_mulsbw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1378,7 +1382,7 @@ mmx_rule_mulsbw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_mulubw (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_mulubw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1392,7 +1396,7 @@ mmx_rule_mulubw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_mullb (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_mullb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1415,7 +1419,7 @@ mmx_rule_mullb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_mulhsb (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_mulhsb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1443,7 +1447,7 @@ mmx_rule_mulhsb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_mulhub (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_mulhub (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1471,7 +1475,7 @@ mmx_rule_mulhub (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_mulswl (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_mulswl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1484,7 +1488,7 @@ mmx_rule_mulswl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_muluwl (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_muluwl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1497,22 +1501,22 @@ mmx_rule_muluwl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_mulll_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_mulll_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int i;
- int offset = ORC_STRUCT_OFFSET(OrcExecutor,arrays[ORC_VAR_T1]);
+ int offset = ORC_STRUCT_OFFSET (OrcExecutor, arrays[ORC_VAR_T1]);
orc_x86_emit_mov_mmx_memoffset (p, 16, p->vars[insn->src_args[0]].alloc,
offset, p->exec_reg, FALSE, FALSE);
orc_x86_emit_mov_mmx_memoffset (p, 16, p->vars[insn->src_args[1]].alloc,
offset + 16, p->exec_reg, FALSE, FALSE);
- for(i=0;i<(1<<p->insn_shift);i++) {
- orc_x86_emit_mov_memoffset_reg (p, 4, offset + 4*i, p->exec_reg,
+ for (i = 0; i < (1 << p->insn_shift); i++) {
+ orc_x86_emit_mov_memoffset_reg (p, 4, offset + 4 * i, p->exec_reg,
p->gp_tmpreg);
- orc_x86_emit_imul_memoffset_reg (p, 4, offset + 16+4*i, p->exec_reg,
+ orc_x86_emit_imul_memoffset_reg (p, 4, offset + 16 + 4 * i, p->exec_reg,
p->gp_tmpreg);
- orc_x86_emit_mov_reg_memoffset (p, 4, p->gp_tmpreg, offset + 4*i,
+ orc_x86_emit_mov_reg_memoffset (p, 4, p->gp_tmpreg, offset + 4 * i,
p->exec_reg);
}
@@ -1522,30 +1526,30 @@ mmx_rule_mulll_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
#ifndef MMX
static void
-mmx_rule_mulhsl (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_mulhsl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp = orc_compiler_get_temp_reg (p);
int tmp2 = orc_compiler_get_temp_reg (p);
- orc_mmx_emit_pshufd (p, ORC_MMX_SHUF(2,3,0,1), dest, tmp);
- orc_mmx_emit_pshufd (p, ORC_MMX_SHUF(2,3,0,1), src, tmp2);
+ orc_mmx_emit_pshufd (p, ORC_MMX_SHUF (2, 3, 0, 1), dest, tmp);
+ orc_mmx_emit_pshufd (p, ORC_MMX_SHUF (2, 3, 0, 1), src, tmp2);
orc_mmx_emit_pmuldq (p, src, dest);
orc_mmx_emit_pmuldq (p, tmp, tmp2);
- orc_mmx_emit_pshufd (p, ORC_MMX_SHUF(2,0,3,1), dest, dest);
- orc_mmx_emit_pshufd (p, ORC_MMX_SHUF(2,0,3,1), tmp2, tmp2);
+ orc_mmx_emit_pshufd (p, ORC_MMX_SHUF (2, 0, 3, 1), dest, dest);
+ orc_mmx_emit_pshufd (p, ORC_MMX_SHUF (2, 0, 3, 1), tmp2, tmp2);
orc_mmx_emit_punpckldq (p, tmp2, dest);
}
#endif
#ifndef MMX
static void
-mmx_rule_mulhsl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_mulhsl_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int i;
int regsize = p->is_64bit ? 8 : 4;
- int offset = ORC_STRUCT_OFFSET(OrcExecutor,arrays[ORC_VAR_T1]);
+ int offset = ORC_STRUCT_OFFSET (OrcExecutor, arrays[ORC_VAR_T1]);
orc_x86_emit_mov_mmx_memoffset (p, 16, p->vars[insn->src_args[0]].alloc,
offset, p->exec_reg, FALSE, FALSE);
@@ -1556,41 +1560,43 @@ mmx_rule_mulhsl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_x86_emit_mov_reg_memoffset (p, regsize, X86_EDX, offset + 40,
p->exec_reg);
- for(i=0;i<(1<<p->insn_shift);i++) {
- orc_x86_emit_mov_memoffset_reg (p, 4, offset + 4*i, p->exec_reg, X86_EAX);
+ for (i = 0; i < (1 << p->insn_shift); i++) {
+ orc_x86_emit_mov_memoffset_reg (p, 4, offset + 4 * i, p->exec_reg, X86_EAX);
orc_x86_emit_cpuinsn_memoffset (p, ORC_X86_imul_rm, 4,
- offset + 16 + 4*i, p->exec_reg);
- orc_x86_emit_mov_reg_memoffset (p, 4, X86_EDX, offset + 4*i, p->exec_reg);
+ offset + 16 + 4 * i, p->exec_reg);
+ orc_x86_emit_mov_reg_memoffset (p, 4, X86_EDX, offset + 4 * i, p->exec_reg);
}
orc_x86_emit_mov_memoffset_mmx (p, 16, offset, p->exec_reg,
p->vars[insn->dest_args[0]].alloc, FALSE);
- orc_x86_emit_mov_memoffset_reg (p, regsize, offset + 32, p->exec_reg, X86_EAX);
- orc_x86_emit_mov_memoffset_reg (p, regsize, offset + 40, p->exec_reg, X86_EDX);
+ orc_x86_emit_mov_memoffset_reg (p, regsize, offset + 32, p->exec_reg,
+ X86_EAX);
+ orc_x86_emit_mov_memoffset_reg (p, regsize, offset + 40, p->exec_reg,
+ X86_EDX);
}
#endif
#ifndef MMX
static void
-mmx_rule_mulhul (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_mulhul (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp = orc_compiler_get_temp_reg (p);
int tmp2 = orc_compiler_get_temp_reg (p);
- orc_mmx_emit_pshufd (p, ORC_MMX_SHUF(2,3,0,1), dest, tmp);
- orc_mmx_emit_pshufd (p, ORC_MMX_SHUF(2,3,0,1), src, tmp2);
+ orc_mmx_emit_pshufd (p, ORC_MMX_SHUF (2, 3, 0, 1), dest, tmp);
+ orc_mmx_emit_pshufd (p, ORC_MMX_SHUF (2, 3, 0, 1), src, tmp2);
orc_mmx_emit_pmuludq (p, src, dest);
orc_mmx_emit_pmuludq (p, tmp, tmp2);
- orc_mmx_emit_pshufd (p, ORC_MMX_SHUF(2,0,3,1), dest, dest);
- orc_mmx_emit_pshufd (p, ORC_MMX_SHUF(2,0,3,1), tmp2, tmp2);
+ orc_mmx_emit_pshufd (p, ORC_MMX_SHUF (2, 0, 3, 1), dest, dest);
+ orc_mmx_emit_pshufd (p, ORC_MMX_SHUF (2, 0, 3, 1), tmp2, tmp2);
orc_mmx_emit_punpckldq (p, tmp2, dest);
}
#endif
static void
-mmx_rule_mulslq (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_mulslq (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1604,11 +1610,11 @@ mmx_rule_mulslq (OrcCompiler *p, void *user, OrcInstruction *insn)
#ifndef MMX
static void
-mmx_rule_mulslq_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_mulslq_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int i;
int regsize = p->is_64bit ? 8 : 4;
- int offset = ORC_STRUCT_OFFSET(OrcExecutor,arrays[ORC_VAR_T1]);
+ int offset = ORC_STRUCT_OFFSET (OrcExecutor, arrays[ORC_VAR_T1]);
orc_x86_emit_mov_mmx_memoffset (p, 8, p->vars[insn->src_args[0]].alloc,
offset, p->exec_reg, FALSE, FALSE);
@@ -1619,24 +1625,28 @@ mmx_rule_mulslq_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_x86_emit_mov_reg_memoffset (p, regsize, X86_EDX, offset + 40,
p->exec_reg);
- for(i=0;i<(1<<p->insn_shift);i++) {
- orc_x86_emit_mov_memoffset_reg (p, 4, offset + 4*i, p->exec_reg, X86_EAX);
+ for (i = 0; i < (1 << p->insn_shift); i++) {
+ orc_x86_emit_mov_memoffset_reg (p, 4, offset + 4 * i, p->exec_reg, X86_EAX);
orc_x86_emit_cpuinsn_memoffset (p, ORC_X86_imul_rm, 4,
- offset + 8 + 4*i, p->exec_reg);
- orc_x86_emit_mov_reg_memoffset (p, 4, X86_EAX, offset + 16 + 8*i, p->exec_reg);
- orc_x86_emit_mov_reg_memoffset (p, 4, X86_EDX, offset + 16 + 8*i + 4, p->exec_reg);
+ offset + 8 + 4 * i, p->exec_reg);
+ orc_x86_emit_mov_reg_memoffset (p, 4, X86_EAX, offset + 16 + 8 * i,
+ p->exec_reg);
+ orc_x86_emit_mov_reg_memoffset (p, 4, X86_EDX, offset + 16 + 8 * i + 4,
+ p->exec_reg);
}
orc_x86_emit_mov_memoffset_mmx (p, 16, offset + 16, p->exec_reg,
p->vars[insn->dest_args[0]].alloc, FALSE);
- orc_x86_emit_mov_memoffset_reg (p, regsize, offset + 32, p->exec_reg, X86_EAX);
- orc_x86_emit_mov_memoffset_reg (p, regsize, offset + 40, p->exec_reg, X86_EDX);
+ orc_x86_emit_mov_memoffset_reg (p, regsize, offset + 32, p->exec_reg,
+ X86_EAX);
+ orc_x86_emit_mov_memoffset_reg (p, regsize, offset + 40, p->exec_reg,
+ X86_EDX);
}
#endif
#ifndef MMX
static void
-mmx_rule_mululq (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_mululq (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1650,7 +1660,7 @@ mmx_rule_mululq (OrcCompiler *p, void *user, OrcInstruction *insn)
#endif
static void
-mmx_rule_select0lw (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_select0lw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
//int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1664,7 +1674,7 @@ mmx_rule_select0lw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_select1lw (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_select1lw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
//int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1676,35 +1686,35 @@ mmx_rule_select1lw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_select0ql (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_select0ql (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
/* same as convql */
#ifndef MMX
- orc_mmx_emit_pshufd (p, ORC_MMX_SHUF(2,0,2,0), src, dest);
+ orc_mmx_emit_pshufd (p, ORC_MMX_SHUF (2, 0, 2, 0), src, dest);
#else
orc_mmx_emit_movq (p, src, dest);
#endif
}
static void
-mmx_rule_select1ql (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_select1ql (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
orc_mmx_emit_psrlq_imm (p, 32, dest);
#ifndef MMX
- orc_mmx_emit_pshufd (p, ORC_MMX_SHUF(2,0,2,0), src, dest);
+ orc_mmx_emit_pshufd (p, ORC_MMX_SHUF (2, 0, 2, 0), src, dest);
#else
orc_mmx_emit_movq (p, src, dest);
#endif
}
static void
-mmx_rule_select0wb (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_select0wb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
//int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1718,7 +1728,7 @@ mmx_rule_select0wb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_select1wb (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_select1wb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
//int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1730,23 +1740,23 @@ mmx_rule_select1wb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_splitql (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_splitql (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest1 = p->vars[insn->dest_args[0]].alloc;
int dest2 = p->vars[insn->dest_args[1]].alloc;
#ifndef MMX
- orc_mmx_emit_pshufd (p, ORC_MMX_SHUF(2,0,2,0), src, dest2);
- orc_mmx_emit_pshufd (p, ORC_MMX_SHUF(3,1,3,1), src, dest1);
+ orc_mmx_emit_pshufd (p, ORC_MMX_SHUF (2, 0, 2, 0), src, dest2);
+ orc_mmx_emit_pshufd (p, ORC_MMX_SHUF (3, 1, 3, 1), src, dest1);
#else
orc_mmx_emit_movq (p, src, dest2);
- orc_mmx_emit_pshufw (p, ORC_MMX_SHUF(3,2,3,2), src, dest1);
+ orc_mmx_emit_pshufw (p, ORC_MMX_SHUF (3, 2, 3, 2), src, dest1);
#endif
}
static void
-mmx_rule_splitlw (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_splitlw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest1 = p->vars[insn->dest_args[0]].alloc;
@@ -1767,7 +1777,7 @@ mmx_rule_splitlw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_splitwb (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_splitwb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest1 = p->vars[insn->dest_args[0]].alloc;
@@ -1782,7 +1792,6 @@ mmx_rule_splitwb (OrcCompiler *p, void *user, OrcInstruction *insn)
if (dest2 != src) {
orc_mmx_emit_movq (p, src, dest2);
}
-
#if 0
orc_mmx_emit_psllw_imm (p, 8, dest2);
orc_mmx_emit_psraw_imm (p, 8, dest2);
@@ -1794,7 +1803,7 @@ mmx_rule_splitwb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_mergebw (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_mergebw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1803,7 +1812,7 @@ mmx_rule_mergebw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_mergewl (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_mergewl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1812,7 +1821,7 @@ mmx_rule_mergewl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_mergelq (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_mergelq (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1821,7 +1830,7 @@ mmx_rule_mergelq (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_swapw (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_swapw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1834,7 +1843,7 @@ mmx_rule_swapw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_swapl (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_swapl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1851,7 +1860,7 @@ mmx_rule_swapl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_swapwl (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_swapwl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1864,7 +1873,7 @@ mmx_rule_swapwl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_swapq (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_swapq (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1885,20 +1894,20 @@ mmx_rule_swapq (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_swaplq (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_swaplq (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
#ifndef MMX
- orc_mmx_emit_pshufd (p, ORC_MMX_SHUF(2,3,0,1), dest, dest);
+ orc_mmx_emit_pshufd (p, ORC_MMX_SHUF (2, 3, 0, 1), dest, dest);
#else
- orc_mmx_emit_pshufw (p, ORC_MMX_SHUF(1,0,3,2), dest, dest);
+ orc_mmx_emit_pshufw (p, ORC_MMX_SHUF (1, 0, 3, 2), dest, dest);
#endif
}
#ifndef MMX
static void
-mmx_rule_swapw_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_swapw_ssse3 (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp;
@@ -1913,7 +1922,7 @@ mmx_rule_swapw_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_swapl_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_swapl_ssse3 (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp;
@@ -1928,7 +1937,7 @@ mmx_rule_swapl_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_swapwl_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_swapwl_ssse3 (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp;
@@ -1943,7 +1952,7 @@ mmx_rule_swapwl_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_swapq_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_swapq_ssse3 (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp;
@@ -1958,7 +1967,7 @@ mmx_rule_swapq_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_select0lw_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_select0lw_ssse3 (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp;
@@ -1973,7 +1982,7 @@ mmx_rule_select0lw_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_select1lw_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_select1lw_ssse3 (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp;
@@ -1988,7 +1997,7 @@ mmx_rule_select1lw_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_select0wb_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_select0wb_ssse3 (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp;
@@ -2003,7 +2012,7 @@ mmx_rule_select0wb_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_select1wb_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_select1wb_ssse3 (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp;
@@ -2021,22 +2030,22 @@ mmx_rule_select1wb_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
/* slow rules */
static void
-mmx_rule_maxuw_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_maxuw_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp = orc_compiler_get_temp_reg (p);
tmp = orc_compiler_get_constant (p, 2, 0x8000);
- orc_mmx_emit_pxor(p, tmp, src);
- orc_mmx_emit_pxor(p, tmp, dest);
+ orc_mmx_emit_pxor (p, tmp, src);
+ orc_mmx_emit_pxor (p, tmp, dest);
orc_mmx_emit_pmaxsw (p, src, dest);
- orc_mmx_emit_pxor(p, tmp, src);
- orc_mmx_emit_pxor(p, tmp, dest);
+ orc_mmx_emit_pxor (p, tmp, src);
+ orc_mmx_emit_pxor (p, tmp, dest);
}
static void
-mmx_rule_minuw_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_minuw_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -2044,15 +2053,15 @@ mmx_rule_minuw_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
tmp = orc_compiler_get_constant (p, 2, 0x8000);
- orc_mmx_emit_pxor(p, tmp, src);
- orc_mmx_emit_pxor(p, tmp, dest);
+ orc_mmx_emit_pxor (p, tmp, src);
+ orc_mmx_emit_pxor (p, tmp, dest);
orc_mmx_emit_pminsw (p, src, dest);
- orc_mmx_emit_pxor(p, tmp, src);
- orc_mmx_emit_pxor(p, tmp, dest);
+ orc_mmx_emit_pxor (p, tmp, src);
+ orc_mmx_emit_pxor (p, tmp, dest);
}
static void
-mmx_rule_avgsb_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_avgsb_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -2060,15 +2069,15 @@ mmx_rule_avgsb_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
tmp = orc_compiler_get_constant (p, 1, 0x80);
- orc_mmx_emit_pxor(p, tmp, src);
- orc_mmx_emit_pxor(p, tmp, dest);
+ orc_mmx_emit_pxor (p, tmp, src);
+ orc_mmx_emit_pxor (p, tmp, dest);
orc_mmx_emit_pavgb (p, src, dest);
- orc_mmx_emit_pxor(p, tmp, src);
- orc_mmx_emit_pxor(p, tmp, dest);
+ orc_mmx_emit_pxor (p, tmp, src);
+ orc_mmx_emit_pxor (p, tmp, dest);
}
static void
-mmx_rule_avgsw_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_avgsw_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -2076,15 +2085,15 @@ mmx_rule_avgsw_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
tmp = orc_compiler_get_constant (p, 2, 0x8000);
- orc_mmx_emit_pxor(p, tmp, src);
- orc_mmx_emit_pxor(p, tmp, dest);
+ orc_mmx_emit_pxor (p, tmp, src);
+ orc_mmx_emit_pxor (p, tmp, dest);
orc_mmx_emit_pavgw (p, src, dest);
- orc_mmx_emit_pxor(p, tmp, src);
- orc_mmx_emit_pxor(p, tmp, dest);
+ orc_mmx_emit_pxor (p, tmp, src);
+ orc_mmx_emit_pxor (p, tmp, dest);
}
static void
-mmx_rule_maxsb_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_maxsb_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -2098,7 +2107,7 @@ mmx_rule_maxsb_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_minsb_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_minsb_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -2112,7 +2121,7 @@ mmx_rule_minsb_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_maxsl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_maxsl_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -2126,7 +2135,7 @@ mmx_rule_maxsl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_minsl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_minsl_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -2140,7 +2149,7 @@ mmx_rule_minsl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_maxul_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_maxul_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -2148,8 +2157,8 @@ mmx_rule_maxul_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
int tmpc;
tmpc = orc_compiler_get_constant (p, 4, 0x80000000);
- orc_mmx_emit_pxor(p, tmpc, src);
- orc_mmx_emit_pxor(p, tmpc, dest);
+ orc_mmx_emit_pxor (p, tmpc, src);
+ orc_mmx_emit_pxor (p, tmpc, dest);
orc_mmx_emit_movq (p, dest, tmp);
orc_mmx_emit_pcmpgtd (p, src, tmp);
@@ -2157,12 +2166,12 @@ mmx_rule_maxul_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_mmx_emit_pandn (p, src, tmp);
orc_mmx_emit_por (p, tmp, dest);
- orc_mmx_emit_pxor(p, tmpc, src);
- orc_mmx_emit_pxor(p, tmpc, dest);
+ orc_mmx_emit_pxor (p, tmpc, src);
+ orc_mmx_emit_pxor (p, tmpc, dest);
}
static void
-mmx_rule_minul_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_minul_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -2170,8 +2179,8 @@ mmx_rule_minul_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
int tmpc;
tmpc = orc_compiler_get_constant (p, 4, 0x80000000);
- orc_mmx_emit_pxor(p, tmpc, src);
- orc_mmx_emit_pxor(p, tmpc, dest);
+ orc_mmx_emit_pxor (p, tmpc, src);
+ orc_mmx_emit_pxor (p, tmpc, dest);
orc_mmx_emit_movq (p, src, tmp);
orc_mmx_emit_pcmpgtd (p, dest, tmp);
@@ -2179,12 +2188,12 @@ mmx_rule_minul_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_mmx_emit_pandn (p, src, tmp);
orc_mmx_emit_por (p, tmp, dest);
- orc_mmx_emit_pxor(p, tmpc, src);
- orc_mmx_emit_pxor(p, tmpc, dest);
+ orc_mmx_emit_pxor (p, tmpc, src);
+ orc_mmx_emit_pxor (p, tmpc, dest);
}
static void
-mmx_rule_avgsl (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_avgsl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -2193,15 +2202,15 @@ mmx_rule_avgsl (OrcCompiler *p, void *user, OrcInstruction *insn)
/* (a+b+1) >> 1 = (a|b) - ((a^b)>>1) */
orc_mmx_emit_movq (p, dest, tmp);
- orc_mmx_emit_pxor(p, src, tmp);
- orc_mmx_emit_psrad_imm(p, 1, tmp);
+ orc_mmx_emit_pxor (p, src, tmp);
+ orc_mmx_emit_psrad_imm (p, 1, tmp);
- orc_mmx_emit_por(p, src, dest);
- orc_mmx_emit_psubd(p, tmp, dest);
+ orc_mmx_emit_por (p, src, dest);
+ orc_mmx_emit_psubd (p, tmp, dest);
}
static void
-mmx_rule_avgul (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_avgul (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -2210,15 +2219,15 @@ mmx_rule_avgul (OrcCompiler *p, void *user, OrcInstruction *insn)
/* (a+b+1) >> 1 = (a|b) - ((a^b)>>1) */
orc_mmx_emit_movq (p, dest, tmp);
- orc_mmx_emit_pxor(p, src, tmp);
- orc_mmx_emit_psrld_imm(p, 1, tmp);
+ orc_mmx_emit_pxor (p, src, tmp);
+ orc_mmx_emit_psrld_imm (p, 1, tmp);
- orc_mmx_emit_por(p, src, dest);
- orc_mmx_emit_psubd(p, tmp, dest);
+ orc_mmx_emit_por (p, src, dest);
+ orc_mmx_emit_psubd (p, tmp, dest);
}
static void
-mmx_rule_addssl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_addssl_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -2245,11 +2254,11 @@ mmx_rule_addssl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_mmx_emit_psrad_imm (p, 31, tmp2);
tmp = orc_compiler_get_constant (p, 4, 0x80000000);
- orc_mmx_emit_pxor (p, tmp, tmp2); // clamped value
+ orc_mmx_emit_pxor (p, tmp, tmp2); // clamped value
orc_mmx_emit_pand (p, tmp3, tmp2);
orc_mmx_emit_paddd (p, src, dest);
- orc_mmx_emit_pandn (p, dest, tmp3); // tmp is mask: ~0 is for clamping
+ orc_mmx_emit_pandn (p, dest, tmp3); // tmp is mask: ~0 is for clamping
orc_mmx_emit_movq (p, tmp3, dest);
orc_mmx_emit_por (p, tmp2, dest);
@@ -2277,7 +2286,7 @@ mmx_rule_addssl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
t^=m;
s=~s&t;
_a|=s;
- */
+ */
orc_mmx_emit_movq (p, dest, s);
orc_mmx_emit_movq (p, dest, t);
@@ -2298,7 +2307,7 @@ mmx_rule_addssl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_subssl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_subssl_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -2325,7 +2334,7 @@ mmx_rule_subssl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_mmx_emit_psrad_imm (p, 31, tmp2);
tmp = orc_compiler_get_constant (p, 4, 0x80000000);
- orc_mmx_emit_pxor (p, tmp, tmp2); // clamped value
+ orc_mmx_emit_pxor (p, tmp, tmp2); // clamped value
orc_mmx_emit_pand (p, tmp3, tmp2);
orc_mmx_emit_psubd (p, src, dest);
@@ -2337,7 +2346,7 @@ mmx_rule_subssl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_addusl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_addusl_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -2384,7 +2393,7 @@ mmx_rule_addusl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_subusl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_subusl_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -2428,12 +2437,11 @@ mmx_rule_ ## opcode (OrcCompiler *p, void *user, OrcInstruction *insn) \
p->vars[insn->dest_args[0]].alloc); \
}
-BINARY_F(addf, addps, 0x58)
-BINARY_F(subf, subps, 0x5c)
-BINARY_F(mulf, mulps, 0x59)
-BINARY_F(divf, divps, 0x5e)
-UNARY_F(sqrtf, sqrtps, 0x51)
-
+BINARY_F (addf, addps, 0x58)
+ BINARY_F (subf, subps, 0x5c)
+ BINARY_F (mulf, mulps, 0x59)
+ BINARY_F (divf, divps, 0x5e)
+ UNARY_F (sqrtf, sqrtps, 0x51)
#define UNARY_D(opcode,insn_name,code) \
static void \
mmx_rule_ ## opcode (OrcCompiler *p, void *user, OrcInstruction *insn) \
@@ -2442,7 +2450,6 @@ mmx_rule_ ## opcode (OrcCompiler *p, void *user, OrcInstruction *insn) \
p->vars[insn->src_args[0]].alloc, \
p->vars[insn->dest_args[0]].alloc); \
}
-
#define BINARY_D(opcode,insn_name,code) \
static void \
mmx_rule_ ## opcode (OrcCompiler *p, void *user, OrcInstruction *insn) \
@@ -2451,168 +2458,129 @@ mmx_rule_ ## opcode (OrcCompiler *p, void *user, OrcInstruction *insn) \
p->vars[insn->src_args[1]].alloc, \
p->vars[insn->dest_args[0]].alloc); \
}
+ BINARY_D (addd, addpd, 0x58)
+ BINARY_D (subd, subpd, 0x5c)
+ BINARY_D (muld, mulpd, 0x59)
+ BINARY_D (divd, divpd, 0x5e)
+ UNARY_D (sqrtd, sqrtpd, 0x51)
-BINARY_D(addd, addpd, 0x58)
-BINARY_D(subd, subpd, 0x5c)
-BINARY_D(muld, mulpd, 0x59)
-BINARY_D(divd, divpd, 0x5e)
-UNARY_D(sqrtd, sqrtpd, 0x51)
-
-static void
-mmx_rule_minf (OrcCompiler *p, void *user, OrcInstruction *insn)
+ static void
+ mmx_rule_minf (OrcCompiler * p, void *user, OrcInstruction * insn)
{
if (p->target_flags & ORC_TARGET_FAST_NAN) {
orc_mmx_emit_minps (p,
- p->vars[insn->src_args[1]].alloc,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[1]].alloc, p->vars[insn->dest_args[0]].alloc);
} else {
int tmp = orc_compiler_get_temp_reg (p);
- orc_mmx_emit_movq (p,
- p->vars[insn->src_args[1]].alloc,
- tmp);
- orc_mmx_emit_minps (p,
- p->vars[insn->dest_args[0]].alloc,
- tmp);
+ orc_mmx_emit_movq (p, p->vars[insn->src_args[1]].alloc, tmp);
+ orc_mmx_emit_minps (p, p->vars[insn->dest_args[0]].alloc, tmp);
orc_mmx_emit_minps (p,
- p->vars[insn->src_args[1]].alloc,
- p->vars[insn->dest_args[0]].alloc);
- orc_mmx_emit_por (p,
- tmp,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[1]].alloc, p->vars[insn->dest_args[0]].alloc);
+ orc_mmx_emit_por (p, tmp, p->vars[insn->dest_args[0]].alloc);
}
}
static void
-mmx_rule_mind (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_mind (OrcCompiler * p, void *user, OrcInstruction * insn)
{
if (p->target_flags & ORC_TARGET_FAST_NAN) {
orc_mmx_emit_minpd (p,
- p->vars[insn->src_args[1]].alloc,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[1]].alloc, p->vars[insn->dest_args[0]].alloc);
} else {
int tmp = orc_compiler_get_temp_reg (p);
- orc_mmx_emit_movq (p,
- p->vars[insn->src_args[1]].alloc,
- tmp);
+ orc_mmx_emit_movq (p, p->vars[insn->src_args[1]].alloc, tmp);
+ orc_mmx_emit_minpd (p, p->vars[insn->dest_args[0]].alloc, tmp);
orc_mmx_emit_minpd (p,
- p->vars[insn->dest_args[0]].alloc,
- tmp);
- orc_mmx_emit_minpd (p,
- p->vars[insn->src_args[1]].alloc,
- p->vars[insn->dest_args[0]].alloc);
- orc_mmx_emit_por (p,
- tmp,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[1]].alloc, p->vars[insn->dest_args[0]].alloc);
+ orc_mmx_emit_por (p, tmp, p->vars[insn->dest_args[0]].alloc);
}
}
static void
-mmx_rule_maxf (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_maxf (OrcCompiler * p, void *user, OrcInstruction * insn)
{
if (p->target_flags & ORC_TARGET_FAST_NAN) {
orc_mmx_emit_maxps (p,
- p->vars[insn->src_args[1]].alloc,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[1]].alloc, p->vars[insn->dest_args[0]].alloc);
} else {
int tmp = orc_compiler_get_temp_reg (p);
- orc_mmx_emit_movq (p,
- p->vars[insn->src_args[1]].alloc,
- tmp);
+ orc_mmx_emit_movq (p, p->vars[insn->src_args[1]].alloc, tmp);
+ orc_mmx_emit_maxps (p, p->vars[insn->dest_args[0]].alloc, tmp);
orc_mmx_emit_maxps (p,
- p->vars[insn->dest_args[0]].alloc,
- tmp);
- orc_mmx_emit_maxps (p,
- p->vars[insn->src_args[1]].alloc,
- p->vars[insn->dest_args[0]].alloc);
- orc_mmx_emit_por (p,
- tmp,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[1]].alloc, p->vars[insn->dest_args[0]].alloc);
+ orc_mmx_emit_por (p, tmp, p->vars[insn->dest_args[0]].alloc);
}
}
static void
-mmx_rule_maxd (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_maxd (OrcCompiler * p, void *user, OrcInstruction * insn)
{
if (p->target_flags & ORC_TARGET_FAST_NAN) {
orc_mmx_emit_maxpd (p,
- p->vars[insn->src_args[1]].alloc,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[1]].alloc, p->vars[insn->dest_args[0]].alloc);
} else {
int tmp = orc_compiler_get_temp_reg (p);
- orc_mmx_emit_movq (p,
- p->vars[insn->src_args[1]].alloc,
- tmp);
- orc_mmx_emit_maxpd (p,
- p->vars[insn->dest_args[0]].alloc,
- tmp);
+ orc_mmx_emit_movq (p, p->vars[insn->src_args[1]].alloc, tmp);
+ orc_mmx_emit_maxpd (p, p->vars[insn->dest_args[0]].alloc, tmp);
orc_mmx_emit_maxpd (p,
- p->vars[insn->src_args[1]].alloc,
- p->vars[insn->dest_args[0]].alloc);
- orc_mmx_emit_por (p,
- tmp,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[1]].alloc, p->vars[insn->dest_args[0]].alloc);
+ orc_mmx_emit_por (p, tmp, p->vars[insn->dest_args[0]].alloc);
}
}
static void
-mmx_rule_cmpeqf (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_cmpeqf (OrcCompiler * p, void *user, OrcInstruction * insn)
{
orc_mmx_emit_cmpeqps (p,
- p->vars[insn->src_args[1]].alloc,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[1]].alloc, p->vars[insn->dest_args[0]].alloc);
}
static void
-mmx_rule_cmpeqd (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_cmpeqd (OrcCompiler * p, void *user, OrcInstruction * insn)
{
orc_mmx_emit_cmpeqpd (p,
- p->vars[insn->src_args[1]].alloc,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[1]].alloc, p->vars[insn->dest_args[0]].alloc);
}
static void
-mmx_rule_cmpltf (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_cmpltf (OrcCompiler * p, void *user, OrcInstruction * insn)
{
orc_mmx_emit_cmpltps (p,
- p->vars[insn->src_args[1]].alloc,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[1]].alloc, p->vars[insn->dest_args[0]].alloc);
}
static void
-mmx_rule_cmpltd (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_cmpltd (OrcCompiler * p, void *user, OrcInstruction * insn)
{
orc_mmx_emit_cmpltpd (p,
- p->vars[insn->src_args[1]].alloc,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[1]].alloc, p->vars[insn->dest_args[0]].alloc);
}
static void
-mmx_rule_cmplef (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_cmplef (OrcCompiler * p, void *user, OrcInstruction * insn)
{
orc_mmx_emit_cmpleps (p,
- p->vars[insn->src_args[1]].alloc,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[1]].alloc, p->vars[insn->dest_args[0]].alloc);
}
static void
-mmx_rule_cmpled (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_cmpled (OrcCompiler * p, void *user, OrcInstruction * insn)
{
orc_mmx_emit_cmplepd (p,
- p->vars[insn->src_args[1]].alloc,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[1]].alloc, p->vars[insn->dest_args[0]].alloc);
}
static void
-mmx_rule_convfl (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_convfl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
int tmpc;
int tmp = orc_compiler_get_temp_reg (p);
-
+
tmpc = orc_compiler_get_temp_constant (p, 4, 0x80000000);
orc_mmx_emit_movq (p, src, tmp);
orc_mmx_emit_cvttps2dq (p, src, dest);
@@ -2624,15 +2592,15 @@ mmx_rule_convfl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_convdl (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_convdl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
int tmpc;
int tmp = orc_compiler_get_temp_reg (p);
-
+
tmpc = orc_compiler_get_temp_constant (p, 4, 0x80000000);
- orc_mmx_emit_pshufd (p, ORC_MMX_SHUF(3,1,3,1), src, tmp);
+ orc_mmx_emit_pshufd (p, ORC_MMX_SHUF (3, 1, 3, 1), src, tmp);
orc_mmx_emit_cvttpd2dq (p, src, dest);
orc_mmx_emit_psrad_imm (p, 31, tmp);
orc_mmx_emit_pcmpeqd (p, dest, tmpc);
@@ -2641,35 +2609,31 @@ mmx_rule_convdl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-mmx_rule_convlf (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_convlf (OrcCompiler * p, void *user, OrcInstruction * insn)
{
orc_mmx_emit_cvtdq2ps (p,
- p->vars[insn->src_args[0]].alloc,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[0]].alloc, p->vars[insn->dest_args[0]].alloc);
}
static void
-mmx_rule_convld (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_convld (OrcCompiler * p, void *user, OrcInstruction * insn)
{
orc_mmx_emit_cvtdq2pd (p,
- p->vars[insn->src_args[0]].alloc,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[0]].alloc, p->vars[insn->dest_args[0]].alloc);
}
static void
-mmx_rule_convfd (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_convfd (OrcCompiler * p, void *user, OrcInstruction * insn)
{
orc_mmx_emit_cvtps2pd (p,
- p->vars[insn->src_args[0]].alloc,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[0]].alloc, p->vars[insn->dest_args[0]].alloc);
}
static void
-mmx_rule_convdf (OrcCompiler *p, void *user, OrcInstruction *insn)
+mmx_rule_convdf (OrcCompiler * p, void *user, OrcInstruction * insn)
{
orc_mmx_emit_cvtpd2ps (p,
- p->vars[insn->src_args[0]].alloc,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[0]].alloc, p->vars[insn->dest_args[0]].alloc);
}
#endif
@@ -2682,16 +2646,16 @@ mmx_rule_ ## opcode ## _mmx41 (OrcCompiler *p, void *user, OrcInstruction *insn)
p->vars[insn->dest_args[0]].alloc); \
}
-UNARY_SSE41(convsbw,pmovsxbw);
-UNARY_SSE41(convswl,pmovsxwd);
-UNARY_SSE41(convslq,pmovsxdq);
-UNARY_SSE41(convubw,pmovzxbw);
-UNARY_SSE41(convuwl,pmovzxwd);
-UNARY_SSE41(convulq,pmovzxdq);
+UNARY_SSE41 (convsbw, pmovsxbw);
+UNARY_SSE41 (convswl, pmovsxwd);
+UNARY_SSE41 (convslq, pmovsxdq);
+UNARY_SSE41 (convubw, pmovzxbw);
+UNARY_SSE41 (convuwl, pmovzxwd);
+UNARY_SSE41 (convulq, pmovzxdq);
void
-orc_compiler_mmx_register_rules (OrcTarget *target)
+orc_compiler_mmx_register_rules (OrcTarget * target)
{
OrcRuleSet *rule_set;
@@ -2700,10 +2664,10 @@ orc_compiler_mmx_register_rules (OrcTarget *target)
/* SSE 2 */
#ifndef MMX
- rule_set = orc_rule_set_new (orc_opcode_set_get("sys"), target,
+ rule_set = orc_rule_set_new (orc_opcode_set_get ("sys"), target,
ORC_TARGET_MMX_MMXEXT);
#else
- rule_set = orc_rule_set_new (orc_opcode_set_get("sys"), target,
+ rule_set = orc_rule_set_new (orc_opcode_set_get ("sys"), target,
ORC_TARGET_MMX_MMX);
#endif
@@ -2716,10 +2680,10 @@ orc_compiler_mmx_register_rules (OrcTarget *target)
orc_rule_register (rule_set, "loadoffl", mmx_rule_loadoffX, NULL);
orc_rule_register (rule_set, "loadupdb", mmx_rule_loadupdb, NULL);
orc_rule_register (rule_set, "loadupib", mmx_rule_loadupib, NULL);
- orc_rule_register (rule_set, "loadpb", mmx_rule_loadpX, (void *)1);
- orc_rule_register (rule_set, "loadpw", mmx_rule_loadpX, (void *)2);
- orc_rule_register (rule_set, "loadpl", mmx_rule_loadpX, (void *)4);
- orc_rule_register (rule_set, "loadpq", mmx_rule_loadpX, (void *)8);
+ orc_rule_register (rule_set, "loadpb", mmx_rule_loadpX, (void *) 1);
+ orc_rule_register (rule_set, "loadpw", mmx_rule_loadpX, (void *) 2);
+ orc_rule_register (rule_set, "loadpl", mmx_rule_loadpX, (void *) 4);
+ orc_rule_register (rule_set, "loadpq", mmx_rule_loadpX, (void *) 8);
orc_rule_register (rule_set, "ldresnearl", mmx_rule_ldresnearl, NULL);
orc_rule_register (rule_set, "ldreslinl", mmx_rule_ldreslinl, NULL);
@@ -2728,78 +2692,78 @@ orc_compiler_mmx_register_rules (OrcTarget *target)
orc_rule_register (rule_set, "storel", mmx_rule_storeX, NULL);
orc_rule_register (rule_set, "storeq", mmx_rule_storeX, NULL);
- REG(addb);
- REG(addssb);
- REG(addusb);
- REG(andb);
- REG(andnb);
- REG(avgub);
- REG(cmpeqb);
- REG(cmpgtsb);
- REG(maxub);
- REG(minub);
- REG(orb);
- REG(subb);
- REG(subssb);
- REG(subusb);
- REG(xorb);
-
- REG(addw);
- REG(addssw);
- REG(addusw);
- REG(andw);
- REG(andnw);
- REG(avguw);
- REG(cmpeqw);
- REG(cmpgtsw);
- REG(maxsw);
- REG(minsw);
- REG(mullw);
- REG(mulhsw);
- REG(mulhuw);
- REG(orw);
- REG(subw);
- REG(subssw);
- REG(subusw);
- REG(xorw);
-
- REG(addl);
- REG(andl);
- REG(andnl);
- REG(cmpeql);
- REG(cmpgtsl);
- REG(orl);
- REG(subl);
- REG(xorl);
-
- REG(andq);
- REG(andnq);
- REG(orq);
- REG(xorq);
-
- REG(select0ql);
- REG(select1ql);
- REG(select0lw);
- REG(select1lw);
- REG(select0wb);
- REG(select1wb);
- REG(mergebw);
- REG(mergewl);
- REG(mergelq);
+ REG (addb);
+ REG (addssb);
+ REG (addusb);
+ REG (andb);
+ REG (andnb);
+ REG (avgub);
+ REG (cmpeqb);
+ REG (cmpgtsb);
+ REG (maxub);
+ REG (minub);
+ REG (orb);
+ REG (subb);
+ REG (subssb);
+ REG (subusb);
+ REG (xorb);
+
+ REG (addw);
+ REG (addssw);
+ REG (addusw);
+ REG (andw);
+ REG (andnw);
+ REG (avguw);
+ REG (cmpeqw);
+ REG (cmpgtsw);
+ REG (maxsw);
+ REG (minsw);
+ REG (mullw);
+ REG (mulhsw);
+ REG (mulhuw);
+ REG (orw);
+ REG (subw);
+ REG (subssw);
+ REG (subusw);
+ REG (xorw);
+
+ REG (addl);
+ REG (andl);
+ REG (andnl);
+ REG (cmpeql);
+ REG (cmpgtsl);
+ REG (orl);
+ REG (subl);
+ REG (xorl);
+
+ REG (andq);
+ REG (andnq);
+ REG (orq);
+ REG (xorq);
+
+ REG (select0ql);
+ REG (select1ql);
+ REG (select0lw);
+ REG (select1lw);
+ REG (select0wb);
+ REG (select1wb);
+ REG (mergebw);
+ REG (mergewl);
+ REG (mergelq);
orc_rule_register (rule_set, "copyb", mmx_rule_copyx, NULL);
orc_rule_register (rule_set, "copyw", mmx_rule_copyx, NULL);
orc_rule_register (rule_set, "copyl", mmx_rule_copyx, NULL);
orc_rule_register (rule_set, "copyq", mmx_rule_copyx, NULL);
- orc_rule_register (rule_set, "shlw", mmx_rule_shift, (void *)0);
- orc_rule_register (rule_set, "shruw", mmx_rule_shift, (void *)1);
- orc_rule_register (rule_set, "shrsw", mmx_rule_shift, (void *)2);
- orc_rule_register (rule_set, "shll", mmx_rule_shift, (void *)3);
- orc_rule_register (rule_set, "shrul", mmx_rule_shift, (void *)4);
- orc_rule_register (rule_set, "shrsl", mmx_rule_shift, (void *)5);
- orc_rule_register (rule_set, "shlq", mmx_rule_shift, (void *)6);
- orc_rule_register (rule_set, "shruq", mmx_rule_shift, (void *)7);
+ orc_rule_register (rule_set, "shlw", mmx_rule_shift, (void *) 0);
+ orc_rule_register (rule_set, "shruw", mmx_rule_shift, (void *) 1);
+ orc_rule_register (rule_set, "shrsw", mmx_rule_shift, (void *) 2);
+ orc_rule_register (rule_set, "shll", mmx_rule_shift, (void *) 3);
+ orc_rule_register (rule_set, "shrul", mmx_rule_shift, (void *) 4);
+ orc_rule_register (rule_set, "shrsl", mmx_rule_shift, (void *) 5);
+ orc_rule_register (rule_set, "shlq", mmx_rule_shift, (void *) 6);
+ orc_rule_register (rule_set, "shruq", mmx_rule_shift, (void *) 7);
orc_rule_register (rule_set, "shrsq", mmx_rule_shrsq, NULL);
orc_rule_register (rule_set, "convsbw", mmx_rule_convsbw, NULL);
@@ -2831,8 +2795,8 @@ orc_compiler_mmx_register_rules (OrcTarget *target)
/* These require the SSE2 flag, although could be used with MMX.
That flag is not yet handled. */
orc_rule_register (rule_set, "mululq", mmx_rule_mululq, NULL);
- REG(addq);
- REG(subq);
+ REG (addq);
+ REG (subq);
orc_rule_register (rule_set, "addf", mmx_rule_addf, NULL);
orc_rule_register (rule_set, "subf", mmx_rule_subf, NULL);
@@ -2917,17 +2881,17 @@ orc_compiler_mmx_register_rules (OrcTarget *target)
/* SSE 3 -- no rules */
/* SSSE 3 */
- rule_set = orc_rule_set_new (orc_opcode_set_get("sys"), target,
+ rule_set = orc_rule_set_new (orc_opcode_set_get ("sys"), target,
ORC_TARGET_MMX_SSSE3);
#ifndef MMX
- orc_rule_register (rule_set, "signb", mmx_rule_signX_ssse3, (void *)0);
- orc_rule_register (rule_set, "signw", mmx_rule_signX_ssse3, (void *)1);
- orc_rule_register (rule_set, "signl", mmx_rule_signX_ssse3, (void *)2);
+ orc_rule_register (rule_set, "signb", mmx_rule_signX_ssse3, (void *) 0);
+ orc_rule_register (rule_set, "signw", mmx_rule_signX_ssse3, (void *) 1);
+ orc_rule_register (rule_set, "signl", mmx_rule_signX_ssse3, (void *) 2);
#endif
- REG(absb);
- REG(absw);
- REG(absl);
+ REG (absb);
+ REG (absw);
+ REG (absl);
#ifndef MMX
orc_rule_register (rule_set, "swapw", mmx_rule_swapw_ssse3, NULL);
orc_rule_register (rule_set, "swapl", mmx_rule_swapl_ssse3, NULL);
@@ -2940,18 +2904,18 @@ orc_compiler_mmx_register_rules (OrcTarget *target)
#endif
/* SSE 4.1 */
- rule_set = orc_rule_set_new (orc_opcode_set_get("sys"), target,
+ rule_set = orc_rule_set_new (orc_opcode_set_get ("sys"), target,
ORC_TARGET_MMX_SSE4_1);
- REG(maxsb);
- REG(minsb);
- REG(maxuw);
- REG(minuw);
- REG(maxsl);
- REG(maxul);
- REG(minsl);
- REG(minul);
- REG(mulll);
+ REG (maxsb);
+ REG (minsb);
+ REG (maxuw);
+ REG (minuw);
+ REG (maxsl);
+ REG (maxul);
+ REG (minsl);
+ REG (minul);
+ REG (mulll);
orc_rule_register (rule_set, "convsbw", mmx_rule_convsbw_mmx41, NULL);
orc_rule_register (rule_set, "convswl", mmx_rule_convswl_mmx41, NULL);
orc_rule_register (rule_set, "convslq", mmx_rule_convslq_mmx41, NULL);
@@ -2963,14 +2927,13 @@ orc_compiler_mmx_register_rules (OrcTarget *target)
#ifndef MMX
orc_rule_register (rule_set, "mulhsl", mmx_rule_mulhsl, NULL);
#endif
- REG(cmpeqq);
+ REG (cmpeqq);
/* SSE 4.2 -- no rules */
- rule_set = orc_rule_set_new (orc_opcode_set_get("sys"), target,
+ rule_set = orc_rule_set_new (orc_opcode_set_get ("sys"), target,
ORC_TARGET_MMX_SSE4_2);
- REG(cmpgtsq);
+ REG (cmpgtsq);
/* SSE 4a -- no rules */
}
-
diff --git a/orc/orcrules-neon.c b/orc/orcrules-neon.c
index 8d26dea..4a3b14e 100644
--- a/orc/orcrules-neon.c
+++ b/orc/orcrules-neon.c
@@ -13,14 +13,15 @@
#include <orc/orcneon.h>
-void orc_neon_emit_loadiq (OrcCompiler *compiler, int dest, int param);
-void orc_neon_emit_loadpq (OrcCompiler *compiler, int dest, int param);
+void orc_neon_emit_loadiq (OrcCompiler * compiler, int dest, int param);
+void orc_neon_emit_loadpq (OrcCompiler * compiler, int dest, int param);
static const orc_uint32 orc_neon_constants[][4] = {
- { 0x03030303, 0x07070707, 0x0b0b0b0b, 0x0f0f0f0f },
+ {0x03030303, 0x07070707, 0x0b0b0b0b, 0x0f0f0f0f},
};
-const char *orc_neon_reg_name (int reg)
+const char *
+orc_neon_reg_name (int reg)
{
static const char *vec_regs[] = {
"d0", "d1", "d2", "d3",
@@ -33,14 +34,15 @@ const char *orc_neon_reg_name (int reg)
"d28", "d29", "d30", "d31",
};
- if (reg < ORC_VEC_REG_BASE || reg >= ORC_VEC_REG_BASE+32) {
+ if (reg < ORC_VEC_REG_BASE || reg >= ORC_VEC_REG_BASE + 32) {
return "ERROR";
}
- return vec_regs[reg&0x1f];
+ return vec_regs[reg & 0x1f];
}
-const char *orc_neon_reg_name_quad (int reg)
+const char *
+orc_neon_reg_name_quad (int reg)
{
static const char *vec_regs[] = {
"q0", "ERROR", "q1", "ERROR",
@@ -53,28 +55,28 @@ const char *orc_neon_reg_name_quad (int reg)
"q14", "ERROR", "q15", "ERROR",
};
- if (reg < ORC_VEC_REG_BASE || reg >= ORC_VEC_REG_BASE+32) {
+ if (reg < ORC_VEC_REG_BASE || reg >= ORC_VEC_REG_BASE + 32) {
return "ERROR";
}
- return vec_regs[reg&0x1f];
+ return vec_regs[reg & 0x1f];
}
static void
-orc_neon_emit_binary (OrcCompiler *p, const char *name, unsigned int code,
+orc_neon_emit_binary (OrcCompiler * p, const char *name, unsigned int code,
int dest, int src1, int src2)
{
- ORC_ASSERT((code & 0x004ff0af) == 0);
+ ORC_ASSERT ((code & 0x004ff0af) == 0);
- ORC_ASM_CODE(p," %s %s, %s, %s\n", name,
+ ORC_ASM_CODE (p, " %s %s, %s, %s\n", name,
orc_neon_reg_name (dest), orc_neon_reg_name (src1),
orc_neon_reg_name (src2));
- code |= (dest&0xf)<<12;
- code |= ((dest>>4)&0x1)<<22;
- code |= (src1&0xf)<<16;
- code |= ((src1>>4)&0x1)<<7;
- code |= (src2&0xf)<<0;
- code |= ((src2>>4)&0x1)<<5;
+ code |= (dest & 0xf) << 12;
+ code |= ((dest >> 4) & 0x1) << 22;
+ code |= (src1 & 0xf) << 16;
+ code |= ((src1 >> 4) & 0x1) << 7;
+ code |= (src2 & 0xf) << 0;
+ code |= ((src2 >> 4) & 0x1) << 5;
orc_arm_emit (p, code);
}
@@ -88,139 +90,137 @@ orc_neon_emit_binary (OrcCompiler *p, const char *name, unsigned int code,
((((c)>>4)&0x1)<<5))
static void
-orc_neon_emit_binary_long (OrcCompiler *p, const char *name, unsigned int code,
+orc_neon_emit_binary_long (OrcCompiler * p, const char *name, unsigned int code,
int dest, int src1, int src2)
{
- ORC_ASSERT((code & 0x004ff0af) == 0);
+ ORC_ASSERT ((code & 0x004ff0af) == 0);
- ORC_ASM_CODE(p," %s %s, %s, %s\n", name,
+ ORC_ASM_CODE (p, " %s %s, %s, %s\n", name,
orc_neon_reg_name_quad (dest), orc_neon_reg_name (src1),
orc_neon_reg_name (src2));
- code |= (dest&0xf)<<12;
- code |= ((dest>>4)&0x1)<<22;
- code |= (src1&0xf)<<16;
- code |= ((src1>>4)&0x1)<<7;
- code |= (src2&0xf)<<0;
- code |= ((src2>>4)&0x1)<<5;
+ code |= (dest & 0xf) << 12;
+ code |= ((dest >> 4) & 0x1) << 22;
+ code |= (src1 & 0xf) << 16;
+ code |= ((src1 >> 4) & 0x1) << 7;
+ code |= (src2 & 0xf) << 0;
+ code |= ((src2 >> 4) & 0x1) << 5;
orc_arm_emit (p, code);
}
#if 0
static void
-orc_neon_emit_binary_narrow (OrcCompiler *p, const char *name, unsigned int code,
- int dest, int src1, int src2)
+orc_neon_emit_binary_narrow (OrcCompiler * p, const char *name,
+ unsigned int code, int dest, int src1, int src2)
{
- ORC_ASSERT((code & 0x004ff0af) == 0);
+ ORC_ASSERT ((code & 0x004ff0af) == 0);
- ORC_ASM_CODE(p," %s %s, %s, %s\n", name,
+ ORC_ASM_CODE (p, " %s %s, %s, %s\n", name,
orc_neon_reg_name (dest), orc_neon_reg_name_quad (src1),
orc_neon_reg_name_quad (src2));
- code |= (dest&0xf)<<12;
- code |= ((dest>>4)&0x1)<<22;
- code |= (src1&0xf)<<16;
- code |= ((src1>>4)&0x1)<<7;
- code |= (src2&0xf)<<0;
- code |= ((src2>>4)&0x1)<<5;
+ code |= (dest & 0xf) << 12;
+ code |= ((dest >> 4) & 0x1) << 22;
+ code |= (src1 & 0xf) << 16;
+ code |= ((src1 >> 4) & 0x1) << 7;
+ code |= (src2 & 0xf) << 0;
+ code |= ((src2 >> 4) & 0x1) << 5;
orc_arm_emit (p, code);
}
#endif
static void
-orc_neon_emit_binary_quad (OrcCompiler *p, const char *name, unsigned int code,
+orc_neon_emit_binary_quad (OrcCompiler * p, const char *name, unsigned int code,
int dest, int src1, int src2)
{
- ORC_ASSERT((code & 0x004ff0af) == 0);
+ ORC_ASSERT ((code & 0x004ff0af) == 0);
- ORC_ASM_CODE(p," %s %s, %s, %s\n", name,
+ ORC_ASM_CODE (p, " %s %s, %s, %s\n", name,
orc_neon_reg_name_quad (dest), orc_neon_reg_name_quad (src1),
orc_neon_reg_name_quad (src2));
- code |= (dest&0xf)<<12;
- code |= ((dest>>4)&0x1)<<22;
- code |= (src1&0xf)<<16;
- code |= ((src1>>4)&0x1)<<7;
- code |= (src2&0xf)<<0;
- code |= ((src2>>4)&0x1)<<5;
+ code |= (dest & 0xf) << 12;
+ code |= ((dest >> 4) & 0x1) << 22;
+ code |= (src1 & 0xf) << 16;
+ code |= ((src1 >> 4) & 0x1) << 7;
+ code |= (src2 & 0xf) << 0;
+ code |= ((src2 >> 4) & 0x1) << 5;
code |= 0x40;
orc_arm_emit (p, code);
}
static void
-orc_neon_emit_unary (OrcCompiler *p, const char *name, unsigned int code,
+orc_neon_emit_unary (OrcCompiler * p, const char *name, unsigned int code,
int dest, int src1)
{
- ORC_ASSERT((code & 0x0040f02f) == 0);
+ ORC_ASSERT ((code & 0x0040f02f) == 0);
- ORC_ASM_CODE(p," %s %s, %s\n", name,
+ ORC_ASM_CODE (p, " %s %s, %s\n", name,
orc_neon_reg_name (dest), orc_neon_reg_name (src1));
- code |= (dest&0xf)<<12;
- code |= ((dest>>4)&0x1)<<22;
- code |= (src1&0xf)<<0;
- code |= ((src1>>4)&0x1)<<5;
+ code |= (dest & 0xf) << 12;
+ code |= ((dest >> 4) & 0x1) << 22;
+ code |= (src1 & 0xf) << 0;
+ code |= ((src1 >> 4) & 0x1) << 5;
orc_arm_emit (p, code);
}
static void
-orc_neon_emit_unary_long (OrcCompiler *p, const char *name, unsigned int code,
+orc_neon_emit_unary_long (OrcCompiler * p, const char *name, unsigned int code,
int dest, int src1)
{
- ORC_ASSERT((code & 0x0040f02f) == 0);
+ ORC_ASSERT ((code & 0x0040f02f) == 0);
- ORC_ASM_CODE(p," %s %s, %s\n", name,
+ ORC_ASM_CODE (p, " %s %s, %s\n", name,
orc_neon_reg_name_quad (dest), orc_neon_reg_name (src1));
- code |= (dest&0xf)<<12;
- code |= ((dest>>4)&0x1)<<22;
- code |= (src1&0xf)<<0;
- code |= ((src1>>4)&0x1)<<5;
+ code |= (dest & 0xf) << 12;
+ code |= ((dest >> 4) & 0x1) << 22;
+ code |= (src1 & 0xf) << 0;
+ code |= ((src1 >> 4) & 0x1) << 5;
orc_arm_emit (p, code);
}
static void
-orc_neon_emit_unary_narrow (OrcCompiler *p, const char *name, unsigned int code,
- int dest, int src1)
+orc_neon_emit_unary_narrow (OrcCompiler * p, const char *name,
+ unsigned int code, int dest, int src1)
{
- ORC_ASSERT((code & 0x0040f02f) == 0);
+ ORC_ASSERT ((code & 0x0040f02f) == 0);
- ORC_ASM_CODE(p," %s %s, %s\n", name,
+ ORC_ASM_CODE (p, " %s %s, %s\n", name,
orc_neon_reg_name (dest), orc_neon_reg_name_quad (src1));
- code |= (dest&0xf)<<12;
- code |= ((dest>>4)&0x1)<<22;
- code |= (src1&0xf)<<0;
- code |= ((src1>>4)&0x1)<<5;
+ code |= (dest & 0xf) << 12;
+ code |= ((dest >> 4) & 0x1) << 22;
+ code |= (src1 & 0xf) << 0;
+ code |= ((src1 >> 4) & 0x1) << 5;
orc_arm_emit (p, code);
}
static void
-orc_neon_emit_unary_quad (OrcCompiler *p, const char *name, unsigned int code,
+orc_neon_emit_unary_quad (OrcCompiler * p, const char *name, unsigned int code,
int dest, int src1)
{
- ORC_ASSERT((code & 0x0040f02f) == 0);
+ ORC_ASSERT ((code & 0x0040f02f) == 0);
- ORC_ASM_CODE(p," %s %s, %s\n", name,
+ ORC_ASM_CODE (p, " %s %s, %s\n", name,
orc_neon_reg_name_quad (dest), orc_neon_reg_name_quad (src1));
- code |= (dest&0xf)<<12;
- code |= ((dest>>4)&0x1)<<22;
- code |= (src1&0xf)<<0;
- code |= ((src1>>4)&0x1)<<5;
+ code |= (dest & 0xf) << 12;
+ code |= ((dest >> 4) & 0x1) << 22;
+ code |= (src1 & 0xf) << 0;
+ code |= ((src1 >> 4) & 0x1) << 5;
code |= 0x40;
orc_arm_emit (p, code);
}
void
-orc_neon_emit_mov (OrcCompiler *compiler, int dest, int src)
+orc_neon_emit_mov (OrcCompiler * compiler, int dest, int src)
{
- orc_neon_emit_binary (compiler, "vorr", 0xf2200110,
- dest, src, src);
+ orc_neon_emit_binary (compiler, "vorr", 0xf2200110, dest, src, src);
}
void
-orc_neon_emit_mov_quad (OrcCompiler *compiler, int dest, int src)
+orc_neon_emit_mov_quad (OrcCompiler * compiler, int dest, int src)
{
- orc_neon_emit_binary_quad (compiler, "vorr", 0xf2200110,
- dest, src, src);
+ orc_neon_emit_binary_quad (compiler, "vorr", 0xf2200110, dest, src, src);
}
void
-orc_neon_preload (OrcCompiler *compiler, OrcVariable *var, int write,
+orc_neon_preload (OrcCompiler * compiler, OrcVariable * var, int write,
int offset)
{
orc_uint32 code;
@@ -228,91 +228,89 @@ orc_neon_preload (OrcCompiler *compiler, OrcVariable *var, int write,
/* Don't use multiprocessing extensions */
write = FALSE;
- ORC_ASM_CODE(compiler," pld%s [%s, #%d]\n",
- write ? "w" : "",
- orc_arm_reg_name (var->ptr_register), offset);
+ ORC_ASM_CODE (compiler, " pld%s [%s, #%d]\n",
+ write ? "w" : "", orc_arm_reg_name (var->ptr_register), offset);
code = 0xf510f000;
- if (!write) code |= (1<<22);
- code |= (var->ptr_register&0xf) << 16;
+ if (!write)
+ code |= (1 << 22);
+ code |= (var->ptr_register & 0xf) << 16;
if (offset < 0) {
- code |= ((-offset)&0xfff) << 0;
+ code |= ((-offset) & 0xfff) << 0;
} else {
- code |= (offset&0xfff) << 0;
- code |= (1<<23);
+ code |= (offset & 0xfff) << 0;
+ code |= (1 << 23);
}
orc_arm_emit (compiler, code);
}
#if 0
void
-orc_neon_load_halfvec_aligned (OrcCompiler *compiler, OrcVariable *var, int update)
+orc_neon_load_halfvec_aligned (OrcCompiler * compiler, OrcVariable * var,
+ int update)
{
orc_uint32 code;
- ORC_ASM_CODE(compiler," vld1.32 %s[0], [%s]%s\n",
+ ORC_ASM_CODE (compiler, " vld1.32 %s[0], [%s]%s\n",
orc_neon_reg_name (var->alloc),
- orc_arm_reg_name (var->ptr_register),
- update ? "!" : "");
+ orc_arm_reg_name (var->ptr_register), update ? "!" : "");
code = 0xf4a0080d;
- code |= (var->ptr_register&0xf) << 16;
- code |= (var->alloc&0xf) << 12;
- code |= ((var->alloc>>4)&0x1) << 22;
+ code |= (var->ptr_register & 0xf) << 16;
+ code |= (var->alloc & 0xf) << 12;
+ code |= ((var->alloc >> 4) & 0x1) << 22;
code |= (!update) << 1;
orc_arm_emit (compiler, code);
}
void
-orc_neon_load_vec_aligned (OrcCompiler *compiler, OrcVariable *var, int update)
+orc_neon_load_vec_aligned (OrcCompiler * compiler, OrcVariable * var,
+ int update)
{
orc_uint32 code;
- ORC_ASM_CODE(compiler," vld1.64 %s, [%s]%s\n",
+ ORC_ASM_CODE (compiler, " vld1.64 %s, [%s]%s\n",
orc_neon_reg_name (var->alloc),
- orc_arm_reg_name (var->ptr_register),
- update ? "!" : "");
+ orc_arm_reg_name (var->ptr_register), update ? "!" : "");
code = 0xf42007cd;
- code |= (var->ptr_register&0xf) << 16;
- code |= (var->alloc&0xf) << 12;
- code |= ((var->alloc>>4)&0x1) << 22;
+ code |= (var->ptr_register & 0xf) << 16;
+ code |= (var->alloc & 0xf) << 12;
+ code |= ((var->alloc >> 4) & 0x1) << 22;
code |= (!update) << 1;
orc_arm_emit (compiler, code);
}
void
-orc_neon_load_vec_unaligned (OrcCompiler *compiler, OrcVariable *var,
+orc_neon_load_vec_unaligned (OrcCompiler * compiler, OrcVariable * var,
int update)
{
orc_uint32 code;
- ORC_ASM_CODE(compiler," vld1.8 %s, [%s]%s\n",
+ ORC_ASM_CODE (compiler, " vld1.8 %s, [%s]%s\n",
orc_neon_reg_name (var->alloc),
- orc_arm_reg_name (var->ptr_register),
- update ? "!" : "");
+ orc_arm_reg_name (var->ptr_register), update ? "!" : "");
code = 0xf420070d;
- code |= (var->ptr_register&0xf) << 16;
- code |= ((var->alloc)&0xf) << 12;
- code |= (((var->alloc)>>4)&0x1) << 22;
+ code |= (var->ptr_register & 0xf) << 16;
+ code |= ((var->alloc) & 0xf) << 12;
+ code |= (((var->alloc) >> 4) & 0x1) << 22;
code |= (!update) << 1;
orc_arm_emit (compiler, code);
#if 0
/* used with need_mask_regs */
- ORC_ASM_CODE(compiler," vld1.64 %s, [%s]%s\n",
+ ORC_ASM_CODE (compiler, " vld1.64 %s, [%s]%s\n",
orc_neon_reg_name (var->aligned_data + 1),
- orc_arm_reg_name (var->ptr_register),
- update ? "!" : "");
+ orc_arm_reg_name (var->ptr_register), update ? "!" : "");
code = 0xf42007cd;
- code |= (var->ptr_register&0xf) << 16;
- code |= ((var->aligned_data+1)&0xf) << 12;
- code |= (((var->aligned_data+1)>>4)&0x1) << 22;
+ code |= (var->ptr_register & 0xf) << 16;
+ code |= ((var->aligned_data + 1) & 0xf) << 12;
+ code |= (((var->aligned_data + 1) >> 4) & 0x1) << 22;
code |= (!update) << 1;
orc_arm_emit (compiler, code);
- ORC_ASM_CODE(compiler," vtbl.8 %s, {%s,%s}, %s\n",
+ ORC_ASM_CODE (compiler, " vtbl.8 %s, {%s,%s}, %s\n",
orc_neon_reg_name (var->alloc),
orc_neon_reg_name (var->aligned_data),
- orc_neon_reg_name (var->aligned_data+1),
+ orc_neon_reg_name (var->aligned_data + 1),
orc_neon_reg_name (var->mask_alloc));
- code = NEON_BINARY(0xf3b00900, var->alloc, var->aligned_data,
+ code = NEON_BINARY (0xf3b00900, var->alloc, var->aligned_data,
var->mask_alloc);
orc_arm_emit (compiler, code);
//orc_neon_emit_mov (compiler, var->alloc, var->mask_alloc);
@@ -322,45 +320,43 @@ orc_neon_load_vec_unaligned (OrcCompiler *compiler, OrcVariable *var,
}
void
-orc_neon_load_halfvec_unaligned (OrcCompiler *compiler, OrcVariable *var,
+orc_neon_load_halfvec_unaligned (OrcCompiler * compiler, OrcVariable * var,
int update)
{
orc_uint32 code;
- ORC_ASM_CODE(compiler," vld1.8 %s, [%s]\n",
- orc_neon_reg_name (var->alloc),
- orc_arm_reg_name (var->ptr_register));
+ ORC_ASM_CODE (compiler, " vld1.8 %s, [%s]\n",
+ orc_neon_reg_name (var->alloc), orc_arm_reg_name (var->ptr_register));
code = 0xf420070d;
- code |= (var->ptr_register&0xf) << 16;
- code |= ((var->alloc)&0xf) << 12;
- code |= (((var->alloc)>>4)&0x1) << 22;
+ code |= (var->ptr_register & 0xf) << 16;
+ code |= ((var->alloc) & 0xf) << 12;
+ code |= (((var->alloc) >> 4) & 0x1) << 22;
//code |= (!update) << 1;
code |= (1) << 1;
orc_arm_emit (compiler, code);
if (update) {
- orc_arm_emit_add_imm (compiler, var->ptr_register,
- var->ptr_register, 4);
+ orc_arm_emit_add_imm (compiler, var->ptr_register, var->ptr_register, 4);
}
#if 0
/* used with need_mask_regs */
- ORC_ASM_CODE(compiler," vld1.32 %s[1], [%s]%s\n",
+ ORC_ASM_CODE (compiler, " vld1.32 %s[1], [%s]%s\n",
orc_neon_reg_name (var->aligned_data),
- orc_arm_reg_name (var->ptr_register),
- update ? "!" : "");
+ orc_arm_reg_name (var->ptr_register), update ? "!" : "");
code = 0xf4a0088d;
- code |= (var->ptr_register&0xf) << 16;
- code |= ((var->aligned_data)&0xf) << 12;
- code |= (((var->aligned_data)>>4)&0x1) << 22;
+ code |= (var->ptr_register & 0xf) << 16;
+ code |= ((var->aligned_data) & 0xf) << 12;
+ code |= (((var->aligned_data) >> 4) & 0x1) << 22;
code |= (!update) << 1;
orc_arm_emit (compiler, code);
- ORC_ASM_CODE(compiler," vtbl.8 %s, {%s,%s}, %s\n",
+ ORC_ASM_CODE (compiler, " vtbl.8 %s, {%s,%s}, %s\n",
orc_neon_reg_name (var->alloc),
orc_neon_reg_name (var->aligned_data),
orc_neon_reg_name (var->aligned_data + 1),
orc_neon_reg_name (var->mask_alloc));
- code = NEON_BINARY(0xf3b00900, var->alloc, var->aligned_data, var->mask_alloc);
+ code =
+ NEON_BINARY (0xf3b00900, var->alloc, var->aligned_data, var->mask_alloc);
orc_arm_emit (compiler, code);
orc_neon_emit_unary (compiler, "vrev64.i32", 0xf3b80000,
@@ -369,85 +365,83 @@ orc_neon_load_halfvec_unaligned (OrcCompiler *compiler, OrcVariable *var,
}
void
-orc_neon_load_fourvec_aligned (OrcCompiler *compiler, OrcVariable *var, int update)
+orc_neon_load_fourvec_aligned (OrcCompiler * compiler, OrcVariable * var,
+ int update)
{
orc_uint32 code;
- ORC_ASM_CODE(compiler," vld1.64 { %s, %s, %s, %s }, [%s,:256]%s\n",
+ ORC_ASM_CODE (compiler, " vld1.64 { %s, %s, %s, %s }, [%s,:256]%s\n",
orc_neon_reg_name (var->alloc),
orc_neon_reg_name (var->alloc + 1),
orc_neon_reg_name (var->alloc + 2),
orc_neon_reg_name (var->alloc + 3),
- orc_arm_reg_name (var->ptr_register),
- update ? "!" : "");
+ orc_arm_reg_name (var->ptr_register), update ? "!" : "");
code = 0xf42002dd;
- code |= (var->ptr_register&0xf) << 16;
- code |= (var->alloc&0xf) << 12;
- code |= ((var->alloc>>4)&0x1) << 22;
+ code |= (var->ptr_register & 0xf) << 16;
+ code |= (var->alloc & 0xf) << 12;
+ code |= ((var->alloc >> 4) & 0x1) << 22;
code |= (!update) << 1;
orc_arm_emit (compiler, code);
}
void
-orc_neon_load_fourvec_unaligned (OrcCompiler *compiler, OrcVariable *var,
+orc_neon_load_fourvec_unaligned (OrcCompiler * compiler, OrcVariable * var,
int update)
{
orc_uint32 code;
- ORC_ASM_CODE(compiler," vld1.8 { %s, %s, %s, %s }, [%s]%s\n",
+ ORC_ASM_CODE (compiler, " vld1.8 { %s, %s, %s, %s }, [%s]%s\n",
orc_neon_reg_name (var->alloc),
orc_neon_reg_name (var->alloc + 1),
orc_neon_reg_name (var->alloc + 2),
orc_neon_reg_name (var->alloc + 3),
- orc_arm_reg_name (var->ptr_register),
- update ? "!" : "");
+ orc_arm_reg_name (var->ptr_register), update ? "!" : "");
code = 0xf420020d;
- code |= (var->ptr_register&0xf) << 16;
- code |= ((var->alloc)&0xf) << 12;
- code |= (((var->alloc)>>4)&0x1) << 22;
+ code |= (var->ptr_register & 0xf) << 16;
+ code |= ((var->alloc) & 0xf) << 12;
+ code |= (((var->alloc) >> 4) & 0x1) << 22;
code |= (!update) << 1;
orc_arm_emit (compiler, code);
}
void
-orc_neon_load_twovec_aligned (OrcCompiler *compiler, OrcVariable *var, int update)
+orc_neon_load_twovec_aligned (OrcCompiler * compiler, OrcVariable * var,
+ int update)
{
orc_uint32 code;
- ORC_ASM_CODE(compiler," vld1.64 { %s, %s }, [%s,:128]%s\n",
+ ORC_ASM_CODE (compiler, " vld1.64 { %s, %s }, [%s,:128]%s\n",
orc_neon_reg_name (var->alloc),
orc_neon_reg_name (var->alloc + 1),
- orc_arm_reg_name (var->ptr_register),
- update ? "!" : "");
+ orc_arm_reg_name (var->ptr_register), update ? "!" : "");
code = 0xf4200aed;
- code |= (var->ptr_register&0xf) << 16;
- code |= (var->alloc&0xf) << 12;
- code |= ((var->alloc>>4)&0x1) << 22;
+ code |= (var->ptr_register & 0xf) << 16;
+ code |= (var->alloc & 0xf) << 12;
+ code |= ((var->alloc >> 4) & 0x1) << 22;
code |= (!update) << 1;
orc_arm_emit (compiler, code);
}
void
-orc_neon_load_twovec_unaligned (OrcCompiler *compiler, OrcVariable *var,
+orc_neon_load_twovec_unaligned (OrcCompiler * compiler, OrcVariable * var,
int update)
{
orc_uint32 code;
- ORC_ASM_CODE(compiler," vld1.8 { %s, %s }, [%s]%s\n",
+ ORC_ASM_CODE (compiler, " vld1.8 { %s, %s }, [%s]%s\n",
orc_neon_reg_name (var->alloc),
orc_neon_reg_name (var->alloc + 1),
- orc_arm_reg_name (var->ptr_register),
- update ? "!" : "");
+ orc_arm_reg_name (var->ptr_register), update ? "!" : "");
code = 0xf4200a0d;
- code |= (var->ptr_register&0xf) << 16;
- code |= ((var->alloc)&0xf) << 12;
- code |= (((var->alloc)>>4)&0x1) << 22;
+ code |= (var->ptr_register & 0xf) << 16;
+ code |= ((var->alloc) & 0xf) << 12;
+ code |= (((var->alloc) >> 4) & 0x1) << 22;
code |= (!update) << 1;
orc_arm_emit (compiler, code);
}
void
-orc_neon_loadb (OrcCompiler *compiler, OrcVariable *var, int update)
+orc_neon_loadb (OrcCompiler * compiler, OrcVariable * var, int update)
{
orc_uint32 code;
int i;
@@ -470,16 +464,15 @@ orc_neon_loadb (OrcCompiler *compiler, OrcVariable *var, int update)
orc_neon_load_halfvec_unaligned (compiler, var, update);
} else {
if (compiler->insn_shift > 1) {
- ORC_ERROR("slow load");
+ ORC_ERROR ("slow load");
}
- for(i=0;i<(1<<compiler->insn_shift);i++){
- ORC_ASM_CODE(compiler," vld1.8 %s[%d], [%s]%s\n",
- orc_neon_reg_name (var->alloc + (i>>3)), i&7,
- orc_arm_reg_name (var->ptr_register),
- update ? "!" : "");
- code = NEON_BINARY(0xf4a0000d, var->alloc + (i>>3),
+ for (i = 0; i < (1 << compiler->insn_shift); i++) {
+ ORC_ASM_CODE (compiler, " vld1.8 %s[%d], [%s]%s\n",
+ orc_neon_reg_name (var->alloc + (i >> 3)), i & 7,
+ orc_arm_reg_name (var->ptr_register), update ? "!" : "");
+ code = NEON_BINARY (0xf4a0000d, var->alloc + (i >> 3),
var->ptr_register, 0);
- code |= (i&7) << 5;
+ code |= (i & 7) << 5;
code |= (!update) << 1;
orc_arm_emit (compiler, code);
}
@@ -487,7 +480,7 @@ orc_neon_loadb (OrcCompiler *compiler, OrcVariable *var, int update)
}
void
-orc_neon_loadw (OrcCompiler *compiler, OrcVariable *var, int update)
+orc_neon_loadw (OrcCompiler * compiler, OrcVariable * var, int update)
{
if (var->is_aligned && compiler->insn_shift == 3) {
orc_neon_load_twovec_aligned (compiler, var, update);
@@ -513,16 +506,15 @@ orc_neon_loadw (OrcCompiler *compiler, OrcVariable *var, int update)
return;
}
if (compiler->insn_shift > 1) {
- ORC_ERROR("slow load");
+ ORC_ERROR ("slow load");
}
- for(i=0;i<(1<<compiler->insn_shift);i++){
- ORC_ASM_CODE(compiler," vld1.16 %s[%d], [%s]%s\n",
- orc_neon_reg_name (var->alloc + (i>>2)), i&3,
- orc_arm_reg_name (var->ptr_register),
- update ? "!" : "");
- code = NEON_BINARY(0xf4a0040d, var->alloc + (i>>2),
+ for (i = 0; i < (1 << compiler->insn_shift); i++) {
+ ORC_ASM_CODE (compiler, " vld1.16 %s[%d], [%s]%s\n",
+ orc_neon_reg_name (var->alloc + (i >> 2)), i & 3,
+ orc_arm_reg_name (var->ptr_register), update ? "!" : "");
+ code = NEON_BINARY (0xf4a0040d, var->alloc + (i >> 2),
var->ptr_register, 0);
- code |= (i&3) << 6;
+ code |= (i & 3) << 6;
code |= (!update) << 1;
orc_arm_emit (compiler, code);
}
@@ -530,7 +522,7 @@ orc_neon_loadw (OrcCompiler *compiler, OrcVariable *var, int update)
}
void
-orc_neon_loadl (OrcCompiler *compiler, OrcVariable *var, int update)
+orc_neon_loadl (OrcCompiler * compiler, OrcVariable * var, int update)
{
orc_uint32 code;
int i;
@@ -547,14 +539,13 @@ orc_neon_loadl (OrcCompiler *compiler, OrcVariable *var, int update)
if (compiler->insn_shift > 0) {
//ORC_ERROR("slow load");
}
- for(i=0;i<(1<<compiler->insn_shift);i++){
- ORC_ASM_CODE(compiler," vld1.32 %s[%d], [%s]%s\n",
- orc_neon_reg_name (var->alloc + (i>>1)), i & 1,
- orc_arm_reg_name (var->ptr_register),
- update ? "!" : "");
- code = NEON_BINARY(0xf4a0080d, var->alloc + (i>>1),
+ for (i = 0; i < (1 << compiler->insn_shift); i++) {
+ ORC_ASM_CODE (compiler, " vld1.32 %s[%d], [%s]%s\n",
+ orc_neon_reg_name (var->alloc + (i >> 1)), i & 1,
+ orc_arm_reg_name (var->ptr_register), update ? "!" : "");
+ code = NEON_BINARY (0xf4a0080d, var->alloc + (i >> 1),
var->ptr_register, 0);
- code |= (i&1)<<7;
+ code |= (i & 1) << 7;
code |= (!update) << 1;
orc_arm_emit (compiler, code);
}
@@ -562,103 +553,96 @@ orc_neon_loadl (OrcCompiler *compiler, OrcVariable *var, int update)
}
void
-orc_neon_loadq (OrcCompiler *compiler, int dest, int src1, int update, int is_aligned)
+orc_neon_loadq (OrcCompiler * compiler, int dest, int src1, int update,
+ int is_aligned)
{
orc_uint32 code;
- ORC_ASM_CODE(compiler," vld1.64 %s, [%s]%s\n",
- orc_neon_reg_name (dest),
- orc_arm_reg_name (src1),
- update ? "!" : "");
+ ORC_ASM_CODE (compiler, " vld1.64 %s, [%s]%s\n",
+ orc_neon_reg_name (dest), orc_arm_reg_name (src1), update ? "!" : "");
code = 0xf42007cd;
- code |= (src1&0xf) << 16;
- code |= (dest&0xf) << 12;
- code |= ((dest>>4)&0x1) << 22;
+ code |= (src1 & 0xf) << 16;
+ code |= (dest & 0xf) << 12;
+ code |= ((dest >> 4) & 0x1) << 22;
code |= (!update) << 1;
orc_arm_emit (compiler, code);
}
void
-orc_neon_storeb (OrcCompiler *compiler, int dest, int update, int src1, int is_aligned)
+orc_neon_storeb (OrcCompiler * compiler, int dest, int update, int src1,
+ int is_aligned)
{
orc_uint32 code;
int i;
if (is_aligned && compiler->insn_shift == 5) {
- ORC_ASM_CODE(compiler," vst1.8 { %s, %s, %s, %s }, [%s,:256]%s\n",
+ ORC_ASM_CODE (compiler, " vst1.8 { %s, %s, %s, %s }, [%s,:256]%s\n",
orc_neon_reg_name (src1),
- orc_neon_reg_name (src1+1),
- orc_neon_reg_name (src1+2),
- orc_neon_reg_name (src1+3),
- orc_arm_reg_name (dest),
- update ? "!" : "");
+ orc_neon_reg_name (src1 + 1),
+ orc_neon_reg_name (src1 + 2),
+ orc_neon_reg_name (src1 + 3),
+ orc_arm_reg_name (dest), update ? "!" : "");
code = 0xf400023d;
- code |= (dest&0xf) << 16;
- code |= (src1&0xf) << 12;
- code |= ((src1>>4)&0x1) << 22;
+ code |= (dest & 0xf) << 16;
+ code |= (src1 & 0xf) << 12;
+ code |= ((src1 >> 4) & 0x1) << 22;
code |= (!update) << 1;
orc_arm_emit (compiler, code);
} else if (compiler->insn_shift == 5) {
- ORC_ASM_CODE(compiler," vst1.8 { %s, %s, %s, %s }, [%s]%s\n",
+ ORC_ASM_CODE (compiler, " vst1.8 { %s, %s, %s, %s }, [%s]%s\n",
orc_neon_reg_name (src1),
- orc_neon_reg_name (src1+1),
- orc_neon_reg_name (src1+2),
- orc_neon_reg_name (src1+3),
- orc_arm_reg_name (dest),
- update ? "!" : "");
+ orc_neon_reg_name (src1 + 1),
+ orc_neon_reg_name (src1 + 2),
+ orc_neon_reg_name (src1 + 3),
+ orc_arm_reg_name (dest), update ? "!" : "");
code = 0xf400020d;
- code |= (dest&0xf) << 16;
- code |= (src1&0xf) << 12;
- code |= ((src1>>4)&0x1) << 22;
+ code |= (dest & 0xf) << 16;
+ code |= (src1 & 0xf) << 12;
+ code |= ((src1 >> 4) & 0x1) << 22;
code |= (!update) << 1;
orc_arm_emit (compiler, code);
} else if (is_aligned && compiler->insn_shift == 4) {
- ORC_ASM_CODE(compiler," vst1.8 { %s, %s }, [%s,:128]%s\n",
+ ORC_ASM_CODE (compiler, " vst1.8 { %s, %s }, [%s,:128]%s\n",
orc_neon_reg_name (src1),
- orc_neon_reg_name (src1+1),
- orc_arm_reg_name (dest),
- update ? "!" : "");
+ orc_neon_reg_name (src1 + 1),
+ orc_arm_reg_name (dest), update ? "!" : "");
code = 0xf4000a2d;
- code |= (dest&0xf) << 16;
- code |= (src1&0xf) << 12;
- code |= ((src1>>4)&0x1) << 22;
+ code |= (dest & 0xf) << 16;
+ code |= (src1 & 0xf) << 12;
+ code |= ((src1 >> 4) & 0x1) << 22;
code |= (!update) << 1;
orc_arm_emit (compiler, code);
} else if (compiler->insn_shift == 4) {
- ORC_ASM_CODE(compiler," vst1.8 { %s, %s }, [%s]%s\n",
+ ORC_ASM_CODE (compiler, " vst1.8 { %s, %s }, [%s]%s\n",
orc_neon_reg_name (src1),
- orc_neon_reg_name (src1+1),
- orc_arm_reg_name (dest),
- update ? "!" : "");
+ orc_neon_reg_name (src1 + 1),
+ orc_arm_reg_name (dest), update ? "!" : "");
code = 0xf4000a0d;
- code |= (dest&0xf) << 16;
- code |= (src1&0xf) << 12;
- code |= ((src1>>4)&0x1) << 22;
+ code |= (dest & 0xf) << 16;
+ code |= (src1 & 0xf) << 12;
+ code |= ((src1 >> 4) & 0x1) << 22;
code |= (!update) << 1;
orc_arm_emit (compiler, code);
} else if (is_aligned && compiler->insn_shift == 3) {
- ORC_ASM_CODE(compiler," vst1.8 %s, [%s,:64]%s\n",
- orc_neon_reg_name (src1),
- orc_arm_reg_name (dest),
- update ? "!" : "");
+ ORC_ASM_CODE (compiler, " vst1.8 %s, [%s,:64]%s\n",
+ orc_neon_reg_name (src1), orc_arm_reg_name (dest), update ? "!" : "");
code = 0xf400071d;
- code |= (dest&0xf) << 16;
- code |= (src1&0xf) << 12;
- code |= ((src1>>4)&0x1) << 22;
+ code |= (dest & 0xf) << 16;
+ code |= (src1 & 0xf) << 12;
+ code |= ((src1 >> 4) & 0x1) << 22;
code |= (!update) << 1;
orc_arm_emit (compiler, code);
} else {
- for(i=0;i<(1<<compiler->insn_shift);i++){
- ORC_ASM_CODE(compiler," vst1.8 %s[%d], [%s]%s\n",
- orc_neon_reg_name (src1 + (i>>3)), i&7,
- orc_arm_reg_name (dest),
- update ? "!" : "");
+ for (i = 0; i < (1 << compiler->insn_shift); i++) {
+ ORC_ASM_CODE (compiler, " vst1.8 %s[%d], [%s]%s\n",
+ orc_neon_reg_name (src1 + (i >> 3)), i & 7,
+ orc_arm_reg_name (dest), update ? "!" : "");
code = 0xf480000d;
- code |= (dest&0xf) << 16;
- code |= ((src1 + (i>>3))&0xf) << 12;
- code |= ((src1>>4)&0x1) << 22;
- code |= (i&7)<<5;
+ code |= (dest & 0xf) << 16;
+ code |= ((src1 + (i >> 3)) & 0xf) << 12;
+ code |= ((src1 >> 4) & 0x1) << 22;
+ code |= (i & 7) << 5;
code |= (!update) << 1;
orc_arm_emit (compiler, code);
}
@@ -666,45 +650,42 @@ orc_neon_storeb (OrcCompiler *compiler, int dest, int update, int src1, int is_a
}
void
-orc_neon_storew (OrcCompiler *compiler, int dest, int update, int src1, int is_aligned)
+orc_neon_storew (OrcCompiler * compiler, int dest, int update, int src1,
+ int is_aligned)
{
orc_uint32 code;
int i;
if (is_aligned && compiler->insn_shift == 3) {
- ORC_ASM_CODE(compiler," vst1.16 { %s, %s }, [%s,:128]%s\n",
+ ORC_ASM_CODE (compiler, " vst1.16 { %s, %s }, [%s,:128]%s\n",
orc_neon_reg_name (src1),
orc_neon_reg_name (src1 + 1),
- orc_arm_reg_name (dest),
- update ? "!" : "");
+ orc_arm_reg_name (dest), update ? "!" : "");
code = 0xf4000a6d;
- code |= (dest&0xf) << 16;
- code |= (src1&0xf) << 12;
- code |= ((src1>>4)&0x1) << 22;
+ code |= (dest & 0xf) << 16;
+ code |= (src1 & 0xf) << 12;
+ code |= ((src1 >> 4) & 0x1) << 22;
code |= (!update) << 1;
orc_arm_emit (compiler, code);
} else if (is_aligned && compiler->insn_shift == 2) {
- ORC_ASM_CODE(compiler," vst1.16 %s, [%s,:64]%s\n",
- orc_neon_reg_name (src1),
- orc_arm_reg_name (dest),
- update ? "!" : "");
+ ORC_ASM_CODE (compiler, " vst1.16 %s, [%s,:64]%s\n",
+ orc_neon_reg_name (src1), orc_arm_reg_name (dest), update ? "!" : "");
code = 0xf400075d;
- code |= (dest&0xf) << 16;
- code |= (src1&0xf) << 12;
- code |= ((src1>>4)&0x1) << 22;
+ code |= (dest & 0xf) << 16;
+ code |= (src1 & 0xf) << 12;
+ code |= ((src1 >> 4) & 0x1) << 22;
code |= (!update) << 1;
orc_arm_emit (compiler, code);
} else {
- for(i=0;i<(1<<compiler->insn_shift);i++){
- ORC_ASM_CODE(compiler," vst1.16 %s[%d], [%s]%s\n",
- orc_neon_reg_name (src1 + (i>>2)), i&3,
- orc_arm_reg_name (dest),
- update ? "!" : "");
+ for (i = 0; i < (1 << compiler->insn_shift); i++) {
+ ORC_ASM_CODE (compiler, " vst1.16 %s[%d], [%s]%s\n",
+ orc_neon_reg_name (src1 + (i >> 2)), i & 3,
+ orc_arm_reg_name (dest), update ? "!" : "");
code = 0xf480040d;
- code |= (dest&0xf) << 16;
- code |= ((src1 + (i>>2))&0xf) << 12;
- code |= ((src1>>4)&0x1) << 22;
- code |= (i&3)<<6;
+ code |= (dest & 0xf) << 16;
+ code |= ((src1 + (i >> 2)) & 0xf) << 12;
+ code |= ((src1 >> 4) & 0x1) << 22;
+ code |= (i & 3) << 6;
code |= (!update) << 1;
orc_arm_emit (compiler, code);
}
@@ -712,45 +693,42 @@ orc_neon_storew (OrcCompiler *compiler, int dest, int update, int src1, int is_a
}
void
-orc_neon_storel (OrcCompiler *compiler, int dest, int update, int src1, int is_aligned)
+orc_neon_storel (OrcCompiler * compiler, int dest, int update, int src1,
+ int is_aligned)
{
orc_uint32 code;
int i;
if (is_aligned && compiler->insn_shift == 2) {
- ORC_ASM_CODE(compiler," vst1.32 { %s, %s }, [%s,:128]%s\n",
+ ORC_ASM_CODE (compiler, " vst1.32 { %s, %s }, [%s,:128]%s\n",
orc_neon_reg_name (src1),
orc_neon_reg_name (src1 + 1),
- orc_arm_reg_name (dest),
- update ? "!" : "");
+ orc_arm_reg_name (dest), update ? "!" : "");
code = 0xf4000aad;
- code |= (dest&0xf) << 16;
- code |= (src1&0xf) << 12;
- code |= ((src1>>4)&0x1) << 22;
+ code |= (dest & 0xf) << 16;
+ code |= (src1 & 0xf) << 12;
+ code |= ((src1 >> 4) & 0x1) << 22;
code |= (!update) << 1;
orc_arm_emit (compiler, code);
} else if (is_aligned && compiler->insn_shift == 1) {
- ORC_ASM_CODE(compiler," vst1.32 %s, [%s,:64]%s\n",
- orc_neon_reg_name (src1),
- orc_arm_reg_name (dest),
- update ? "!" : "");
+ ORC_ASM_CODE (compiler, " vst1.32 %s, [%s,:64]%s\n",
+ orc_neon_reg_name (src1), orc_arm_reg_name (dest), update ? "!" : "");
code = 0xf400079d;
- code |= (dest&0xf) << 16;
- code |= (src1&0xf) << 12;
- code |= ((src1>>4)&0x1) << 22;
+ code |= (dest & 0xf) << 16;
+ code |= (src1 & 0xf) << 12;
+ code |= ((src1 >> 4) & 0x1) << 22;
code |= (!update) << 1;
orc_arm_emit (compiler, code);
} else {
- for(i=0;i<(1<<compiler->insn_shift);i++){
- ORC_ASM_CODE(compiler," vst1.32 %s[%d], [%s]%s\n",
- orc_neon_reg_name (src1 + (i>>1)), i&1,
- orc_arm_reg_name (dest),
- update ? "!" : "");
+ for (i = 0; i < (1 << compiler->insn_shift); i++) {
+ ORC_ASM_CODE (compiler, " vst1.32 %s[%d], [%s]%s\n",
+ orc_neon_reg_name (src1 + (i >> 1)), i & 1,
+ orc_arm_reg_name (dest), update ? "!" : "");
code = 0xf480080d;
- code |= (dest&0xf) << 16;
- code |= ((src1 + (i>>1))&0xf) << 12;
- code |= ((src1>>4)&0x1) << 22;
- code |= (i&1)<<7;
+ code |= (dest & 0xf) << 16;
+ code |= ((src1 + (i >> 1)) & 0xf) << 12;
+ code |= ((src1 >> 4) & 0x1) << 22;
+ code |= (i & 1) << 7;
code |= (!update) << 1;
orc_arm_emit (compiler, code);
}
@@ -758,25 +736,24 @@ orc_neon_storel (OrcCompiler *compiler, int dest, int update, int src1, int is_a
}
void
-orc_neon_storeq (OrcCompiler *compiler, int dest, int update, int src1, int is_aligned)
+orc_neon_storeq (OrcCompiler * compiler, int dest, int update, int src1,
+ int is_aligned)
{
orc_uint32 code;
- ORC_ASM_CODE(compiler," vst1.64 %s, [%s]%s\n",
- orc_neon_reg_name (src1),
- orc_arm_reg_name (dest),
- update ? "!" : "");
+ ORC_ASM_CODE (compiler, " vst1.64 %s, [%s]%s\n",
+ orc_neon_reg_name (src1), orc_arm_reg_name (dest), update ? "!" : "");
code = 0xf40007cd;
- code |= (dest&0xf) << 16;
- code |= (src1&0xf) << 12;
- code |= ((src1>>4)&0x1) << 22;
+ code |= (dest & 0xf) << 16;
+ code |= (src1 & 0xf) << 12;
+ code |= ((src1 >> 4) & 0x1) << 22;
code |= (!update) << 1;
orc_arm_emit (compiler, code);
}
#endif
static void
-neon_rule_loadpX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
+neon_rule_loadpX (OrcCompiler * compiler, void *user, OrcInstruction * insn)
{
OrcVariable *src = compiler->vars + insn->src_args[0];
OrcVariable *dest = compiler->vars + insn->dest_args[0];
@@ -791,11 +768,11 @@ neon_rule_loadpX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
orc_neon_emit_loadil (compiler, dest->alloc, src->value.i);
} else if (size == 8) {
if (src->size == 8) {
- ORC_COMPILER_ERROR(compiler,"64-bit constants not implemented");
+ ORC_COMPILER_ERROR (compiler, "64-bit constants not implemented");
}
orc_neon_emit_loadiq (compiler, dest->alloc, src->value.i);
} else {
- ORC_PROGRAM_ERROR(compiler,"unimplemented");
+ ORC_PROGRAM_ERROR (compiler, "unimplemented");
}
} else {
if (size == 1) {
@@ -806,38 +783,39 @@ neon_rule_loadpX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
orc_neon_emit_loadpl (compiler, dest->alloc, insn->src_args[0]);
} else if (size == 8) {
if (src->size == 8) {
- ORC_COMPILER_ERROR(compiler,"64-bit parameters not implemented");
+ ORC_COMPILER_ERROR (compiler, "64-bit parameters not implemented");
}
orc_neon_emit_loadpq (compiler, dest->alloc, insn->src_args[0]);
} else {
- ORC_PROGRAM_ERROR(compiler,"unimplemented");
+ ORC_PROGRAM_ERROR (compiler, "unimplemented");
}
}
}
static void
-neon_rule_loadX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
+neon_rule_loadX (OrcCompiler * compiler, void *user, OrcInstruction * insn)
{
OrcVariable *src = compiler->vars + insn->src_args[0];
OrcVariable *dest = compiler->vars + insn->dest_args[0];
int update = FALSE;
unsigned int code = 0;
int size = src->size << compiler->insn_shift;
- int type = ORC_PTR_TO_INT(user);
+ int type = ORC_PTR_TO_INT (user);
int ptr_register;
int is_aligned = src->is_aligned;
/* FIXME this should be fixed at a higher level */
if (src->vartype != ORC_VAR_TYPE_SRC && src->vartype != ORC_VAR_TYPE_DEST) {
- ORC_COMPILER_ERROR(compiler, "loadX used with non src/dest");
+ ORC_COMPILER_ERROR (compiler, "loadX used with non src/dest");
return;
}
- if (src->vartype == ORC_VAR_TYPE_DEST) update = FALSE;
+ if (src->vartype == ORC_VAR_TYPE_DEST)
+ update = FALSE;
if (type == 1) {
if (compiler->vars[insn->src_args[1]].vartype != ORC_VAR_TYPE_CONST) {
- ORC_PROGRAM_ERROR(compiler,"unimplemented");
+ ORC_PROGRAM_ERROR (compiler, "unimplemented");
return;
}
@@ -855,56 +833,50 @@ neon_rule_loadX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
if (size >= 8) {
if (is_aligned) {
if (size == 32) {
- ORC_ASM_CODE(compiler," vld1.64 { %s, %s, %s, %s }, [%s,:256]%s\n",
+ ORC_ASM_CODE (compiler, " vld1.64 { %s, %s, %s, %s }, [%s,:256]%s\n",
orc_neon_reg_name (dest->alloc),
orc_neon_reg_name (dest->alloc + 1),
orc_neon_reg_name (dest->alloc + 2),
orc_neon_reg_name (dest->alloc + 3),
- orc_arm_reg_name (ptr_register),
- update ? "!" : "");
+ orc_arm_reg_name (ptr_register), update ? "!" : "");
code = 0xf42002dd;
} else if (size == 16) {
- ORC_ASM_CODE(compiler," vld1.64 { %s, %s }, [%s,:128]%s\n",
+ ORC_ASM_CODE (compiler, " vld1.64 { %s, %s }, [%s,:128]%s\n",
orc_neon_reg_name (dest->alloc),
orc_neon_reg_name (dest->alloc + 1),
- orc_arm_reg_name (ptr_register),
- update ? "!" : "");
+ orc_arm_reg_name (ptr_register), update ? "!" : "");
code = 0xf4200aed;
} else if (size == 8) {
- ORC_ASM_CODE(compiler," vld1.64 %s, [%s]%s\n",
+ ORC_ASM_CODE (compiler, " vld1.64 %s, [%s]%s\n",
orc_neon_reg_name (dest->alloc),
- orc_arm_reg_name (ptr_register),
- update ? "!" : "");
+ orc_arm_reg_name (ptr_register), update ? "!" : "");
code = 0xf42007cd;
} else {
- ORC_COMPILER_ERROR(compiler,"bad aligned load size %d",
+ ORC_COMPILER_ERROR (compiler, "bad aligned load size %d",
src->size << compiler->insn_shift);
}
} else {
if (size == 32) {
- ORC_ASM_CODE(compiler," vld1.8 { %s, %s, %s, %s }, [%s]%s\n",
+ ORC_ASM_CODE (compiler, " vld1.8 { %s, %s, %s, %s }, [%s]%s\n",
orc_neon_reg_name (dest->alloc),
orc_neon_reg_name (dest->alloc + 1),
orc_neon_reg_name (dest->alloc + 2),
orc_neon_reg_name (dest->alloc + 3),
- orc_arm_reg_name (ptr_register),
- update ? "!" : "");
+ orc_arm_reg_name (ptr_register), update ? "!" : "");
code = 0xf420020d;
} else if (size == 16) {
- ORC_ASM_CODE(compiler," vld1.8 { %s, %s }, [%s]%s\n",
+ ORC_ASM_CODE (compiler, " vld1.8 { %s, %s }, [%s]%s\n",
orc_neon_reg_name (dest->alloc),
orc_neon_reg_name (dest->alloc + 1),
- orc_arm_reg_name (ptr_register),
- update ? "!" : "");
+ orc_arm_reg_name (ptr_register), update ? "!" : "");
code = 0xf4200a0d;
} else if (size == 8) {
- ORC_ASM_CODE(compiler," vld1.8 %s, [%s]%s\n",
+ ORC_ASM_CODE (compiler, " vld1.8 %s, [%s]%s\n",
orc_neon_reg_name (dest->alloc),
- orc_arm_reg_name (ptr_register),
- update ? "!" : "");
+ orc_arm_reg_name (ptr_register), update ? "!" : "");
code = 0xf420070d;
} else {
- ORC_COMPILER_ERROR(compiler,"bad unaligned load size %d",
+ ORC_COMPILER_ERROR (compiler, "bad unaligned load size %d",
src->size << compiler->insn_shift);
}
}
@@ -917,24 +889,23 @@ neon_rule_loadX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
} else {
shift = 0;
}
- ORC_ASM_CODE(compiler," vld1.%d %s[0], [%s]%s\n",
- 8<<shift,
+ ORC_ASM_CODE (compiler, " vld1.%d %s[0], [%s]%s\n",
+ 8 << shift,
orc_neon_reg_name (dest->alloc),
- orc_arm_reg_name (ptr_register),
- update ? "!" : "");
+ orc_arm_reg_name (ptr_register), update ? "!" : "");
code = 0xf4a0000d;
- code |= shift<<10;
- code |= (0&7)<<5;
+ code |= shift << 10;
+ code |= (0 & 7) << 5;
}
- code |= (ptr_register&0xf) << 16;
- code |= (dest->alloc&0xf) << 12;
- code |= ((dest->alloc>>4)&0x1) << 22;
+ code |= (ptr_register & 0xf) << 16;
+ code |= (dest->alloc & 0xf) << 12;
+ code |= ((dest->alloc >> 4) & 0x1) << 22;
code |= (!update) << 1;
orc_arm_emit (compiler, code);
}
static void
-neon_rule_storeX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
+neon_rule_storeX (OrcCompiler * compiler, void *user, OrcInstruction * insn)
{
OrcVariable *src = compiler->vars + insn->src_args[0];
OrcVariable *dest = compiler->vars + insn->dest_args[0];
@@ -945,55 +916,49 @@ neon_rule_storeX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
if (size >= 8) {
if (dest->is_aligned) {
if (size == 32) {
- ORC_ASM_CODE(compiler," vst1.64 { %s, %s, %s, %s }, [%s,:256]%s\n",
+ ORC_ASM_CODE (compiler, " vst1.64 { %s, %s, %s, %s }, [%s,:256]%s\n",
orc_neon_reg_name (src->alloc),
orc_neon_reg_name (src->alloc + 1),
orc_neon_reg_name (src->alloc + 2),
orc_neon_reg_name (src->alloc + 3),
- orc_arm_reg_name (dest->ptr_register),
- update ? "!" : "");
+ orc_arm_reg_name (dest->ptr_register), update ? "!" : "");
code = 0xf40002dd;
} else if (size == 16) {
- ORC_ASM_CODE(compiler," vst1.64 { %s, %s }, [%s,:128]%s\n",
+ ORC_ASM_CODE (compiler, " vst1.64 { %s, %s }, [%s,:128]%s\n",
orc_neon_reg_name (src->alloc),
orc_neon_reg_name (src->alloc + 1),
- orc_arm_reg_name (dest->ptr_register),
- update ? "!" : "");
+ orc_arm_reg_name (dest->ptr_register), update ? "!" : "");
code = 0xf4000aed;
} else if (size == 8) {
- ORC_ASM_CODE(compiler," vst1.64 %s, [%s]%s\n",
+ ORC_ASM_CODE (compiler, " vst1.64 %s, [%s]%s\n",
orc_neon_reg_name (src->alloc),
- orc_arm_reg_name (dest->ptr_register),
- update ? "!" : "");
+ orc_arm_reg_name (dest->ptr_register), update ? "!" : "");
code = 0xf40007cd;
} else {
- ORC_COMPILER_ERROR(compiler,"bad aligned store size %d", size);
+ ORC_COMPILER_ERROR (compiler, "bad aligned store size %d", size);
}
} else {
if (size == 32) {
- ORC_ASM_CODE(compiler," vst1.8 { %s, %s, %s, %s }, [%s]%s\n",
+ ORC_ASM_CODE (compiler, " vst1.8 { %s, %s, %s, %s }, [%s]%s\n",
orc_neon_reg_name (src->alloc),
orc_neon_reg_name (src->alloc + 1),
orc_neon_reg_name (src->alloc + 2),
orc_neon_reg_name (src->alloc + 3),
- orc_arm_reg_name (dest->ptr_register),
- update ? "!" : "");
+ orc_arm_reg_name (dest->ptr_register), update ? "!" : "");
code = 0xf400020d;
} else if (size == 16) {
- ORC_ASM_CODE(compiler," vst1.8 { %s, %s }, [%s]%s\n",
+ ORC_ASM_CODE (compiler, " vst1.8 { %s, %s }, [%s]%s\n",
orc_neon_reg_name (src->alloc),
orc_neon_reg_name (src->alloc + 1),
- orc_arm_reg_name (dest->ptr_register),
- update ? "!" : "");
+ orc_arm_reg_name (dest->ptr_register), update ? "!" : "");
code = 0xf4000a0d;
} else if (size == 8) {
- ORC_ASM_CODE(compiler," vst1.8 %s, [%s]%s\n",
+ ORC_ASM_CODE (compiler, " vst1.8 %s, [%s]%s\n",
orc_neon_reg_name (src->alloc),
- orc_arm_reg_name (dest->ptr_register),
- update ? "!" : "");
+ orc_arm_reg_name (dest->ptr_register), update ? "!" : "");
code = 0xf400070d;
} else {
- ORC_COMPILER_ERROR(compiler,"bad aligned store size %d", size);
+ ORC_COMPILER_ERROR (compiler, "bad aligned store size %d", size);
}
}
} else {
@@ -1005,18 +970,17 @@ neon_rule_storeX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
} else {
shift = 0;
}
- ORC_ASM_CODE(compiler," vst1.%d %s[0], [%s]%s\n",
- 8<<shift,
+ ORC_ASM_CODE (compiler, " vst1.%d %s[0], [%s]%s\n",
+ 8 << shift,
orc_neon_reg_name (src->alloc),
- orc_arm_reg_name (dest->ptr_register),
- update ? "!" : "");
+ orc_arm_reg_name (dest->ptr_register), update ? "!" : "");
code = 0xf480000d;
- code |= shift<<10;
- code |= (0&7)<<5;
+ code |= shift << 10;
+ code |= (0 & 7) << 5;
}
- code |= (dest->ptr_register&0xf) << 16;
- code |= (src->alloc&0xf) << 12;
- code |= ((src->alloc>>4)&0x1) << 22;
+ code |= (dest->ptr_register & 0xf) << 16;
+ code |= (src->alloc & 0xf) << 12;
+ code |= ((src->alloc >> 4) & 0x1) << 22;
code |= (!update) << 1;
orc_arm_emit (compiler, code);
}
@@ -1027,7 +991,7 @@ orc_neon_get_const_shift (unsigned int value)
{
int shift = 0;
- while((value & 0xff) != value) {
+ while ((value & 0xff) != value) {
shift++;
value >>= 1;
}
@@ -1035,7 +999,7 @@ orc_neon_get_const_shift (unsigned int value)
}
void
-orc_neon_emit_loadib (OrcCompiler *compiler, int reg, int value)
+orc_neon_emit_loadib (OrcCompiler * compiler, int reg, int value)
{
orc_uint32 code;
@@ -1045,20 +1009,20 @@ orc_neon_emit_loadib (OrcCompiler *compiler, int reg, int value)
}
value &= 0xff;
- ORC_ASM_CODE(compiler," vmov.i8 %s, #%d\n",
+ ORC_ASM_CODE (compiler, " vmov.i8 %s, #%d\n",
orc_neon_reg_name_quad (reg), value);
code = 0xf2800e10;
- code |= (reg&0xf) << 12;
- code |= ((reg>>4)&0x1) << 22;
- code |= (value&0xf) << 0;
- code |= (value&0x70) << 12;
- code |= (value&0x80) << 17;
+ code |= (reg & 0xf) << 12;
+ code |= ((reg >> 4) & 0x1) << 22;
+ code |= (value & 0xf) << 0;
+ code |= (value & 0x70) << 12;
+ code |= (value & 0x80) << 17;
code |= 0x40;
orc_arm_emit (compiler, code);
}
void
-orc_neon_emit_loadiw (OrcCompiler *compiler, int reg, int value)
+orc_neon_emit_loadiw (OrcCompiler * compiler, int reg, int value)
{
orc_uint32 code;
int shift;
@@ -1074,34 +1038,34 @@ orc_neon_emit_loadiw (OrcCompiler *compiler, int reg, int value)
value = ~value;
}
shift = orc_neon_get_const_shift (value);
- if ((value & (0xff<<shift)) == value) {
+ if ((value & (0xff << shift)) == value) {
value >>= shift;
if (neg) {
- ORC_ASM_CODE(compiler," vmvn.i16 %s, #%d\n",
+ ORC_ASM_CODE (compiler, " vmvn.i16 %s, #%d\n",
orc_neon_reg_name_quad (reg), value);
code = 0xf2800830;
} else {
- ORC_ASM_CODE(compiler," vmov.i16 %s, #%d\n",
+ ORC_ASM_CODE (compiler, " vmov.i16 %s, #%d\n",
orc_neon_reg_name_quad (reg), value);
code = 0xf2800810;
}
- code |= (reg&0xf) << 12;
- code |= ((reg>>4)&0x1) << 22;
- code |= (value&0xf) << 0;
- code |= (value&0x70) << 12;
- code |= (value&0x80) << 17;
+ code |= (reg & 0xf) << 12;
+ code |= ((reg >> 4) & 0x1) << 22;
+ code |= (value & 0xf) << 0;
+ code |= (value & 0x70) << 12;
+ code |= (value & 0x80) << 17;
code |= 0x40;
orc_arm_emit (compiler, code);
if (shift > 0) {
- ORC_ASM_CODE(compiler," vshl.i16 %s, %s, #%d\n",
+ ORC_ASM_CODE (compiler, " vshl.i16 %s, %s, #%d\n",
orc_neon_reg_name_quad (reg), orc_neon_reg_name_quad (reg), shift);
code = 0xf2900510;
- code |= (reg&0xf) << 12;
- code |= ((reg>>4)&0x1) << 22;
- code |= (reg&0xf) << 0;
- code |= ((reg>>4)&0x1) << 5;
- code |= (shift&0xf) << 16;
+ code |= (reg & 0xf) << 12;
+ code |= ((reg >> 4) & 0x1) << 22;
+ code |= (reg & 0xf) << 0;
+ code |= ((reg >> 4) & 0x1) << 5;
+ code |= (shift & 0xf) << 16;
code |= 0x40;
orc_arm_emit (compiler, code);
}
@@ -1109,11 +1073,11 @@ orc_neon_emit_loadiw (OrcCompiler *compiler, int reg, int value)
return;
}
- ORC_COMPILER_ERROR(compiler, "unimplemented load of constant %d", value);
+ ORC_COMPILER_ERROR (compiler, "unimplemented load of constant %d", value);
}
void
-orc_neon_emit_loadil (OrcCompiler *compiler, int reg, int value)
+orc_neon_emit_loadil (OrcCompiler * compiler, int reg, int value)
{
orc_uint32 code;
int shift;
@@ -1129,34 +1093,34 @@ orc_neon_emit_loadil (OrcCompiler *compiler, int reg, int value)
value = ~value;
}
shift = orc_neon_get_const_shift (value);
- if ((value & (0xff<<shift)) == value) {
+ if ((value & (0xff << shift)) == value) {
value >>= shift;
if (neg) {
- ORC_ASM_CODE(compiler," vmvn.i32 %s, #%d\n",
+ ORC_ASM_CODE (compiler, " vmvn.i32 %s, #%d\n",
orc_neon_reg_name_quad (reg), value);
code = 0xf2800030;
} else {
- ORC_ASM_CODE(compiler," vmov.i32 %s, #%d\n",
+ ORC_ASM_CODE (compiler, " vmov.i32 %s, #%d\n",
orc_neon_reg_name_quad (reg), value);
code = 0xf2800010;
}
- code |= (reg&0xf) << 12;
- code |= ((reg>>4)&0x1) << 22;
- code |= (value&0xf) << 0;
- code |= (value&0x70) << 12;
- code |= (value&0x80) << 17;
+ code |= (reg & 0xf) << 12;
+ code |= ((reg >> 4) & 0x1) << 22;
+ code |= (value & 0xf) << 0;
+ code |= (value & 0x70) << 12;
+ code |= (value & 0x80) << 17;
code |= 0x40;
orc_arm_emit (compiler, code);
if (shift > 0) {
- ORC_ASM_CODE(compiler," vshl.i32 %s, %s, #%d\n",
+ ORC_ASM_CODE (compiler, " vshl.i32 %s, %s, #%d\n",
orc_neon_reg_name_quad (reg), orc_neon_reg_name_quad (reg), shift);
code = 0xf2a00510;
- code |= (reg&0xf) << 12;
- code |= ((reg>>4)&0x1) << 22;
- code |= (reg&0xf) << 0;
- code |= ((reg>>4)&0x1) << 5;
- code |= (shift&0x1f) << 16;
+ code |= (reg & 0xf) << 12;
+ code |= ((reg >> 4) & 0x1) << 22;
+ code |= (reg & 0xf) << 0;
+ code |= ((reg >> 4) & 0x1) << 5;
+ code |= (shift & 0x1f) << 16;
code |= 0x40;
orc_arm_emit (compiler, code);
}
@@ -1164,11 +1128,11 @@ orc_neon_emit_loadil (OrcCompiler *compiler, int reg, int value)
return;
}
- ORC_COMPILER_ERROR(compiler, "unimplemented load of constant %d", value);
+ ORC_COMPILER_ERROR (compiler, "unimplemented load of constant %d", value);
}
void
-orc_neon_emit_loadiq (OrcCompiler *compiler, int reg, int value)
+orc_neon_emit_loadiq (OrcCompiler * compiler, int reg, int value)
{
//orc_uint32 code;
//int shift;
@@ -1185,34 +1149,34 @@ orc_neon_emit_loadiq (OrcCompiler *compiler, int reg, int value)
}
#if 0
shift = orc_neon_get_const_shift (value);
- if ((value & (0xff<<shift)) == value) {
+ if ((value & (0xff << shift)) == value) {
value >>= shift;
if (neg) {
- ORC_ASM_CODE(compiler," vmvn.i64 %s, #%d\n",
+ ORC_ASM_CODE (compiler, " vmvn.i64 %s, #%d\n",
orc_neon_reg_name_quad (reg), value);
code = 0xf2800030;
} else {
- ORC_ASM_CODE(compiler," vmov.i64 %s, #%d\n",
+ ORC_ASM_CODE (compiler, " vmov.i64 %s, #%d\n",
orc_neon_reg_name_quad (reg), value);
code = 0xf2800010;
}
- code |= (reg&0xf) << 12;
- code |= ((reg>>4)&0x1) << 22;
- code |= (value&0xf) << 0;
- code |= (value&0x70) << 12;
- code |= (value&0x80) << 17;
+ code |= (reg & 0xf) << 12;
+ code |= ((reg >> 4) & 0x1) << 22;
+ code |= (value & 0xf) << 0;
+ code |= (value & 0x70) << 12;
+ code |= (value & 0x80) << 17;
code |= 0x40;
orc_arm_emit (compiler, code);
if (shift > 0) {
- ORC_ASM_CODE(compiler," vshl.i64 %s, %s, #%d\n",
+ ORC_ASM_CODE (compiler, " vshl.i64 %s, %s, #%d\n",
orc_neon_reg_name_quad (reg), orc_neon_reg_name_quad (reg), shift);
code = 0xf2a00510;
- code |= (reg&0xf) << 12;
- code |= ((reg>>4)&0x1) << 22;
- code |= (reg&0xf) << 0;
- code |= ((reg>>4)&0x1) << 5;
- code |= (shift&0xf) << 16;
+ code |= (reg & 0xf) << 12;
+ code |= ((reg >> 4) & 0x1) << 22;
+ code |= (reg & 0xf) << 0;
+ code |= ((reg >> 4) & 0x1) << 5;
+ code |= (shift & 0xf) << 16;
code |= 0x40;
orc_arm_emit (compiler, code);
}
@@ -1221,92 +1185,90 @@ orc_neon_emit_loadiq (OrcCompiler *compiler, int reg, int value)
}
#endif
- ORC_COMPILER_ERROR(compiler, "unimplemented load of constant %d", value);
+ ORC_COMPILER_ERROR (compiler, "unimplemented load of constant %d", value);
}
void
-orc_neon_emit_loadpb (OrcCompiler *compiler, int dest, int param)
+orc_neon_emit_loadpb (OrcCompiler * compiler, int dest, int param)
{
orc_uint32 code;
orc_arm_emit_add_imm (compiler, compiler->gp_tmpreg,
- compiler->exec_reg, ORC_STRUCT_OFFSET(OrcExecutor, params[param]));
+ compiler->exec_reg, ORC_STRUCT_OFFSET (OrcExecutor, params[param]));
- ORC_ASM_CODE(compiler," vld1.8 {%s[],%s[]}, [%s]\n",
- orc_neon_reg_name (dest), orc_neon_reg_name (dest+1),
+ ORC_ASM_CODE (compiler, " vld1.8 {%s[],%s[]}, [%s]\n",
+ orc_neon_reg_name (dest), orc_neon_reg_name (dest + 1),
orc_arm_reg_name (compiler->gp_tmpreg));
code = 0xf4a00c2f;
- code |= (compiler->gp_tmpreg&0xf) << 16;
- code |= (dest&0xf) << 12;
- code |= ((dest>>4)&0x1) << 22;
+ code |= (compiler->gp_tmpreg & 0xf) << 16;
+ code |= (dest & 0xf) << 12;
+ code |= ((dest >> 4) & 0x1) << 22;
orc_arm_emit (compiler, code);
}
void
-orc_neon_emit_loadpw (OrcCompiler *compiler, int dest, int param)
+orc_neon_emit_loadpw (OrcCompiler * compiler, int dest, int param)
{
orc_uint32 code;
orc_arm_emit_add_imm (compiler, compiler->gp_tmpreg,
- compiler->exec_reg, ORC_STRUCT_OFFSET(OrcExecutor, params[param]));
+ compiler->exec_reg, ORC_STRUCT_OFFSET (OrcExecutor, params[param]));
- ORC_ASM_CODE(compiler," vld1.16 {%s[],%s[]}, [%s]\n",
- orc_neon_reg_name (dest), orc_neon_reg_name (dest+1),
+ ORC_ASM_CODE (compiler, " vld1.16 {%s[],%s[]}, [%s]\n",
+ orc_neon_reg_name (dest), orc_neon_reg_name (dest + 1),
orc_arm_reg_name (compiler->gp_tmpreg));
code = 0xf4a00c6f;
- code |= (compiler->gp_tmpreg&0xf) << 16;
- code |= (dest&0xf) << 12;
- code |= ((dest>>4)&0x1) << 22;
+ code |= (compiler->gp_tmpreg & 0xf) << 16;
+ code |= (dest & 0xf) << 12;
+ code |= ((dest >> 4) & 0x1) << 22;
orc_arm_emit (compiler, code);
}
void
-orc_neon_emit_loadpl (OrcCompiler *compiler, int dest, int param)
+orc_neon_emit_loadpl (OrcCompiler * compiler, int dest, int param)
{
orc_uint32 code;
orc_arm_emit_add_imm (compiler, compiler->gp_tmpreg,
- compiler->exec_reg, ORC_STRUCT_OFFSET(OrcExecutor, params[param]));
+ compiler->exec_reg, ORC_STRUCT_OFFSET (OrcExecutor, params[param]));
- ORC_ASM_CODE(compiler," vld1.32 {%s[],%s[]}, [%s]\n",
- orc_neon_reg_name (dest), orc_neon_reg_name (dest+1),
+ ORC_ASM_CODE (compiler, " vld1.32 {%s[],%s[]}, [%s]\n",
+ orc_neon_reg_name (dest), orc_neon_reg_name (dest + 1),
orc_arm_reg_name (compiler->gp_tmpreg));
code = 0xf4a00caf;
- code |= (compiler->gp_tmpreg&0xf) << 16;
- code |= (dest&0xf) << 12;
- code |= ((dest>>4)&0x1) << 22;
+ code |= (compiler->gp_tmpreg & 0xf) << 16;
+ code |= (dest & 0xf) << 12;
+ code |= ((dest >> 4) & 0x1) << 22;
orc_arm_emit (compiler, code);
}
void
-orc_neon_emit_loadpq (OrcCompiler *compiler, int dest, int param)
+orc_neon_emit_loadpq (OrcCompiler * compiler, int dest, int param)
{
orc_uint32 code;
int update = FALSE;
orc_arm_emit_add_imm (compiler, compiler->gp_tmpreg,
- compiler->exec_reg, ORC_STRUCT_OFFSET(OrcExecutor, params[param]));
+ compiler->exec_reg, ORC_STRUCT_OFFSET (OrcExecutor, params[param]));
- ORC_ASM_CODE(compiler," vld1.32 %s[0], [%s]%s\n",
+ ORC_ASM_CODE (compiler, " vld1.32 %s[0], [%s]%s\n",
orc_neon_reg_name (dest),
- orc_arm_reg_name (compiler->gp_tmpreg),
- update ? "!" : "");
+ orc_arm_reg_name (compiler->gp_tmpreg), update ? "!" : "");
code = 0xf4a0000d;
- code |= 2<<10;
- code |= (0&7)<<5;
+ code |= 2 << 10;
+ code |= (0 & 7) << 5;
orc_arm_emit (compiler, code);
orc_arm_emit_add_imm (compiler, compiler->gp_tmpreg,
- compiler->exec_reg, ORC_STRUCT_OFFSET(OrcExecutor,
- params[param + (ORC_VAR_T1-ORC_VAR_P1)]));
+ compiler->exec_reg, ORC_STRUCT_OFFSET (OrcExecutor,
+ params[param + (ORC_VAR_T1 - ORC_VAR_P1)]));
- ORC_ASM_CODE(compiler," vld1.32 %s[1], [%s]%s\n",
+ ORC_ASM_CODE (compiler, " vld1.32 %s[1], [%s]%s\n",
orc_neon_reg_name (dest),
- orc_arm_reg_name (compiler->gp_tmpreg),
- update ? "!" : "");
+ orc_arm_reg_name (compiler->gp_tmpreg), update ? "!" : "");
code = 0xf4a0000d;
- code |= 2<<10;
- code |= (1&7)<<5;
+ code |= 2 << 10;
+ code |= (1 & 7) << 5;
orc_arm_emit (compiler, code);
}
@@ -1423,7 +1385,8 @@ orc_neon_rule_ ## opcode (OrcCompiler *p, void *user, OrcInstruction *insn) \
}
-typedef struct {
+typedef struct
+{
orc_uint32 code;
char *name;
int negate;
@@ -1431,336 +1394,332 @@ typedef struct {
int vec_shift;
} ShiftInfo;
ShiftInfo immshift_info[] = {
- { 0xf2880510, "vshl.i8", FALSE, 8, 3 }, /* shlb */
- { 0xf2880010, "vshr.s8", TRUE, 8, 3 }, /* shrsb */
- { 0xf3880010, "vshr.u8", TRUE, 8, 3 }, /* shrub */
- { 0xf2900510, "vshl.i16", FALSE, 16, 2 },
- { 0xf2900010, "vshr.s16", TRUE, 16, 2 },
- { 0xf3900010, "vshr.u16", TRUE, 16, 2 },
- { 0xf2a00510, "vshl.i32", FALSE, 32, 1 },
- { 0xf2a00010, "vshr.s32", TRUE, 32, 1 },
- { 0xf3a00010, "vshr.u32", TRUE, 32, 1 }
+ {0xf2880510, "vshl.i8", FALSE, 8, 3}, /* shlb */
+ {0xf2880010, "vshr.s8", TRUE, 8, 3}, /* shrsb */
+ {0xf3880010, "vshr.u8", TRUE, 8, 3}, /* shrub */
+ {0xf2900510, "vshl.i16", FALSE, 16, 2},
+ {0xf2900010, "vshr.s16", TRUE, 16, 2},
+ {0xf3900010, "vshr.u16", TRUE, 16, 2},
+ {0xf2a00510, "vshl.i32", FALSE, 32, 1},
+ {0xf2a00010, "vshr.s32", TRUE, 32, 1},
+ {0xf3a00010, "vshr.u32", TRUE, 32, 1}
};
+
ShiftInfo regshift_info[] = {
- { 0xf3000400, "vshl.u8", FALSE, 0, 3 }, /* shlb */
- { 0xf2000400, "vshl.s8", TRUE, 0, 3 }, /* shrsb */
- { 0xf3000400, "vshl.u8", TRUE, 0, 3 }, /* shrub */
- { 0xf3100400, "vshl.u16", FALSE, 0, 2 },
- { 0xf2100400, "vshl.s16", TRUE, 0, 2 },
- { 0xf3100400, "vshl.u16", TRUE, 0, 2 },
- { 0xf3200400, "vshl.u32", FALSE, 0, 1 },
- { 0xf2200400, "vshl.s32", TRUE, 0, 1 },
- { 0xf3200400, "vshl.u32", TRUE, 0, 1 }
+ {0xf3000400, "vshl.u8", FALSE, 0, 3}, /* shlb */
+ {0xf2000400, "vshl.s8", TRUE, 0, 3}, /* shrsb */
+ {0xf3000400, "vshl.u8", TRUE, 0, 3}, /* shrub */
+ {0xf3100400, "vshl.u16", FALSE, 0, 2},
+ {0xf2100400, "vshl.s16", TRUE, 0, 2},
+ {0xf3100400, "vshl.u16", TRUE, 0, 2},
+ {0xf3200400, "vshl.u32", FALSE, 0, 1},
+ {0xf2200400, "vshl.s32", TRUE, 0, 1},
+ {0xf3200400, "vshl.u32", TRUE, 0, 1}
};
static void
-orc_neon_rule_shift (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_shift (OrcCompiler * p, void *user, OrcInstruction * insn)
{
- int type = ORC_PTR_TO_INT(user);
+ int type = ORC_PTR_TO_INT (user);
orc_uint32 code;
if (p->vars[insn->src_args[1]].vartype == ORC_VAR_TYPE_CONST) {
int shift = p->vars[insn->src_args[1]].value.i;
if (shift < 0) {
- ORC_COMPILER_ERROR(p, "shift negative");
+ ORC_COMPILER_ERROR (p, "shift negative");
return;
}
if (shift >= immshift_info[type].bits) {
- ORC_COMPILER_ERROR(p, "shift too large");
+ ORC_COMPILER_ERROR (p, "shift too large");
return;
}
code = immshift_info[type].code;
if (p->insn_shift <= immshift_info[type].vec_shift) {
- ORC_ASM_CODE(p," %s %s, %s, #%d\n",
+ ORC_ASM_CODE (p, " %s %s, %s, #%d\n",
immshift_info[type].name,
orc_neon_reg_name (p->vars[insn->dest_args[0]].alloc),
orc_neon_reg_name (p->vars[insn->src_args[0]].alloc),
- (int)p->vars[insn->src_args[1]].value.i);
+ (int) p->vars[insn->src_args[1]].value.i);
} else {
- ORC_ASM_CODE(p," %s %s, %s, #%d\n",
+ ORC_ASM_CODE (p, " %s %s, %s, #%d\n",
immshift_info[type].name,
orc_neon_reg_name_quad (p->vars[insn->dest_args[0]].alloc),
orc_neon_reg_name_quad (p->vars[insn->src_args[0]].alloc),
- (int)p->vars[insn->src_args[1]].value.i);
+ (int) p->vars[insn->src_args[1]].value.i);
code |= 0x40;
}
- code |= (p->vars[insn->dest_args[0]].alloc&0xf)<<12;
- code |= ((p->vars[insn->dest_args[0]].alloc>>4)&0x1)<<22;
- code |= (p->vars[insn->src_args[0]].alloc&0xf)<<0;
- code |= ((p->vars[insn->src_args[0]].alloc>>4)&0x1)<<5;
+ code |= (p->vars[insn->dest_args[0]].alloc & 0xf) << 12;
+ code |= ((p->vars[insn->dest_args[0]].alloc >> 4) & 0x1) << 22;
+ code |= (p->vars[insn->src_args[0]].alloc & 0xf) << 0;
+ code |= ((p->vars[insn->src_args[0]].alloc >> 4) & 0x1) << 5;
if (immshift_info[type].negate) {
shift = immshift_info[type].bits - shift;
}
- code |= shift<<16;
+ code |= shift << 16;
orc_arm_emit (p, code);
} else if (p->vars[insn->src_args[1]].vartype == ORC_VAR_TYPE_PARAM) {
orc_neon_emit_loadpb (p, p->tmpreg, insn->src_args[1]);
if (regshift_info[type].negate) {
- orc_neon_emit_unary_quad (p, "vneg.s8", 0xf3b10380,
- p->tmpreg, p->tmpreg);
+ orc_neon_emit_unary_quad (p, "vneg.s8", 0xf3b10380, p->tmpreg, p->tmpreg);
}
code = regshift_info[type].code;
if (p->insn_shift <= regshift_info[type].vec_shift) {
- ORC_ASM_CODE(p," %s %s, %s, %s\n",
+ ORC_ASM_CODE (p, " %s %s, %s, %s\n",
regshift_info[type].name,
orc_neon_reg_name (p->vars[insn->dest_args[0]].alloc),
orc_neon_reg_name (p->vars[insn->src_args[0]].alloc),
orc_neon_reg_name (p->tmpreg));
} else {
- ORC_ASM_CODE(p," %s %s, %s, %s\n",
+ ORC_ASM_CODE (p, " %s %s, %s, %s\n",
regshift_info[type].name,
orc_neon_reg_name_quad (p->vars[insn->dest_args[0]].alloc),
orc_neon_reg_name_quad (p->vars[insn->src_args[0]].alloc),
orc_neon_reg_name_quad (p->tmpreg));
code |= 0x40;
}
- code |= (p->vars[insn->dest_args[0]].alloc&0xf)<<12;
- code |= ((p->vars[insn->dest_args[0]].alloc>>4)&0x1)<<22;
- code |= (p->vars[insn->src_args[0]].alloc&0xf)<<0;
- code |= ((p->vars[insn->src_args[0]].alloc>>4)&0x1)<<5;
- code |= (p->tmpreg&0xf)<<16;
- code |= ((p->tmpreg>>4)&0x1)<<7;
+ code |= (p->vars[insn->dest_args[0]].alloc & 0xf) << 12;
+ code |= ((p->vars[insn->dest_args[0]].alloc >> 4) & 0x1) << 22;
+ code |= (p->vars[insn->src_args[0]].alloc & 0xf) << 0;
+ code |= ((p->vars[insn->src_args[0]].alloc >> 4) & 0x1) << 5;
+ code |= (p->tmpreg & 0xf) << 16;
+ code |= ((p->tmpreg >> 4) & 0x1) << 7;
orc_arm_emit (p, code);
} else {
- ORC_PROGRAM_ERROR(p,"shift rule only works with constants and params");
+ ORC_PROGRAM_ERROR (p, "shift rule only works with constants and params");
}
}
#if 0
static void
-orc_neon_rule_shrsw (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_shrsw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
orc_uint32 code;
if (p->vars[insn->src_args[1]].vartype == ORC_VAR_TYPE_CONST) {
code = 0xf2900010;
- ORC_ASM_CODE(p," vshr.s16 %s, %s, #%d\n",
+ ORC_ASM_CODE (p, " vshr.s16 %s, %s, #%d\n",
orc_neon_reg_name (p->vars[insn->dest_args[0]].alloc),
orc_neon_reg_name (p->vars[insn->src_args[0]].alloc),
p->vars[insn->src_args[1]].value);
- code |= (p->vars[insn->dest_args[0]].alloc&0xf)<<12;
- code |= ((p->vars[insn->dest_args[0]].alloc>>4)&0x1)<<22;
- code |= (p->vars[insn->src_args[0]].alloc&0xf)<<0;
- code |= ((p->vars[insn->src_args[0]].alloc>>4)&0x1)<<5;
- code |= ((16 - p->vars[insn->src_args[1]].value)&0xf)<<16;
+ code |= (p->vars[insn->dest_args[0]].alloc & 0xf) << 12;
+ code |= ((p->vars[insn->dest_args[0]].alloc >> 4) & 0x1) << 22;
+ code |= (p->vars[insn->src_args[0]].alloc & 0xf) << 0;
+ code |= ((p->vars[insn->src_args[0]].alloc >> 4) & 0x1) << 5;
+ code |= ((16 - p->vars[insn->src_args[1]].value) & 0xf) << 16;
orc_arm_emit (p, code);
} else if (p->vars[insn->src_args[1]].vartype == ORC_VAR_TYPE_PARAM) {
code = 0xf2100400;
- ORC_ASM_CODE(p," vshl.s16 %s, %s, %s\n",
+ ORC_ASM_CODE (p, " vshl.s16 %s, %s, %s\n",
orc_neon_reg_name (p->vars[insn->dest_args[0]].alloc),
orc_neon_reg_name (p->vars[insn->src_args[0]].alloc),
orc_neon_reg_name (p->vars[insn->src_args[1]].alloc));
- code |= (p->vars[insn->dest_args[0]].alloc&0xf)<<12;
- code |= ((p->vars[insn->dest_args[0]].alloc>>4)&0x1)<<22;
- code |= (p->vars[insn->src_args[0]].alloc&0xf)<<0;
- code |= ((p->vars[insn->src_args[0]].alloc>>4)&0x1)<<5;
- code |= (p->vars[insn->src_args[1]].alloc&0xf)<<16;
- code |= ((p->vars[insn->src_args[1]].alloc>>4)&0x1)<<7;
+ code |= (p->vars[insn->dest_args[0]].alloc & 0xf) << 12;
+ code |= ((p->vars[insn->dest_args[0]].alloc >> 4) & 0x1) << 22;
+ code |= (p->vars[insn->src_args[0]].alloc & 0xf) << 0;
+ code |= ((p->vars[insn->src_args[0]].alloc >> 4) & 0x1) << 5;
+ code |= (p->vars[insn->src_args[1]].alloc & 0xf) << 16;
+ code |= ((p->vars[insn->src_args[1]].alloc >> 4) & 0x1) << 7;
orc_arm_emit (p, code);
} else {
- ORC_PROGRAM_ERROR(p,"shift rule only works with constants and params");
+ ORC_PROGRAM_ERROR (p, "shift rule only works with constants and params");
}
}
static void
-orc_neon_rule_shrsl (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_shrsl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
orc_uint32 code;
if (p->vars[insn->src_args[1]].vartype == ORC_VAR_TYPE_CONST) {
code = 0xf2900010;
- ORC_ASM_CODE(p," vshr.s32 %s, %s, #%d\n",
+ ORC_ASM_CODE (p, " vshr.s32 %s, %s, #%d\n",
orc_neon_reg_name (p->vars[insn->dest_args[0]].alloc),
orc_neon_reg_name (p->vars[insn->src_args[0]].alloc),
p->vars[insn->src_args[1]].value);
- code |= (p->vars[insn->dest_args[0]].alloc&0xf)<<12;
- code |= ((p->vars[insn->dest_args[0]].alloc>>4)&0x1)<<22;
- code |= (p->vars[insn->src_args[0]].alloc&0xf)<<0;
- code |= ((p->vars[insn->src_args[0]].alloc>>4)&0x1)<<5;
- code |= ((16 - p->vars[insn->src_args[1]].value)&0xf)<<16;
+ code |= (p->vars[insn->dest_args[0]].alloc & 0xf) << 12;
+ code |= ((p->vars[insn->dest_args[0]].alloc >> 4) & 0x1) << 22;
+ code |= (p->vars[insn->src_args[0]].alloc & 0xf) << 0;
+ code |= ((p->vars[insn->src_args[0]].alloc >> 4) & 0x1) << 5;
+ code |= ((16 - p->vars[insn->src_args[1]].value) & 0xf) << 16;
orc_arm_emit (p, code);
} else if (p->vars[insn->src_args[1]].vartype == ORC_VAR_TYPE_PARAM) {
code = 0xf2100400;
- ORC_ASM_CODE(p," vshl.s32 %s, %s, %s\n",
+ ORC_ASM_CODE (p, " vshl.s32 %s, %s, %s\n",
orc_neon_reg_name (p->vars[insn->dest_args[0]].alloc),
orc_neon_reg_name (p->vars[insn->src_args[0]].alloc),
orc_neon_reg_name (p->vars[insn->src_args[1]].alloc));
- code |= (p->vars[insn->dest_args[0]].alloc&0xf)<<12;
- code |= ((p->vars[insn->dest_args[0]].alloc>>4)&0x1)<<22;
- code |= (p->vars[insn->src_args[0]].alloc&0xf)<<0;
- code |= ((p->vars[insn->src_args[0]].alloc>>4)&0x1)<<5;
- code |= (p->vars[insn->src_args[1]].alloc&0xf)<<16;
- code |= ((p->vars[insn->src_args[1]].alloc>>4)&0x1)<<7;
+ code |= (p->vars[insn->dest_args[0]].alloc & 0xf) << 12;
+ code |= ((p->vars[insn->dest_args[0]].alloc >> 4) & 0x1) << 22;
+ code |= (p->vars[insn->src_args[0]].alloc & 0xf) << 0;
+ code |= ((p->vars[insn->src_args[0]].alloc >> 4) & 0x1) << 5;
+ code |= (p->vars[insn->src_args[1]].alloc & 0xf) << 16;
+ code |= ((p->vars[insn->src_args[1]].alloc >> 4) & 0x1) << 7;
orc_arm_emit (p, code);
} else {
- ORC_PROGRAM_ERROR(p,"shift rule only works with constants and params");
+ ORC_PROGRAM_ERROR (p, "shift rule only works with constants and params");
}
}
#endif
static void
-orc_neon_rule_andn (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_andn (OrcCompiler * p, void *user, OrcInstruction * insn)
{
- int max_shift = ORC_PTR_TO_INT(user);
+ int max_shift = ORC_PTR_TO_INT (user);
/* this is special because the operand order is reversed */
- if (p->insn_shift <= max_shift) { \
+ if (p->insn_shift <= max_shift) {
orc_neon_emit_binary (p, "vbic", 0xf2100110,
p->vars[insn->dest_args[0]].alloc,
- p->vars[insn->src_args[1]].alloc,
- p->vars[insn->src_args[0]].alloc);
+ p->vars[insn->src_args[1]].alloc, p->vars[insn->src_args[0]].alloc);
} else {
orc_neon_emit_binary_quad (p, "vbic", 0xf2100110,
p->vars[insn->dest_args[0]].alloc,
- p->vars[insn->src_args[1]].alloc,
- p->vars[insn->src_args[0]].alloc);
+ p->vars[insn->src_args[1]].alloc, p->vars[insn->src_args[0]].alloc);
}
}
-UNARY(absb,"vabs.s8",0xf3b10300, 3)
-BINARY(addb,"vadd.i8",0xf2000800, 3)
-BINARY(addssb,"vqadd.s8",0xf2000010, 3)
-BINARY(addusb,"vqadd.u8",0xf3000010, 3)
-BINARY(andb,"vand",0xf2000110, 3)
+UNARY (absb, "vabs.s8", 0xf3b10300, 3)
+ BINARY (addb, "vadd.i8", 0xf2000800, 3)
+ BINARY (addssb, "vqadd.s8", 0xf2000010, 3)
+ BINARY (addusb, "vqadd.u8", 0xf3000010, 3)
+ BINARY (andb, "vand", 0xf2000110, 3)
//BINARY(andnb,"vbic",0xf2100110, 3)
-BINARY(avgsb,"vrhadd.s8",0xf2000100, 3)
-BINARY(avgub,"vrhadd.u8",0xf3000100, 3)
-BINARY(cmpeqb,"vceq.i8",0xf3000810, 3)
-BINARY(cmpgtsb,"vcgt.s8",0xf2000300, 3)
-MOVE(copyb,"vmov",0xf2200110, 3)
-BINARY(maxsb,"vmax.s8",0xf2000600, 3)
-BINARY(maxub,"vmax.u8",0xf3000600, 3)
-BINARY(minsb,"vmin.s8",0xf2000610, 3)
-BINARY(minub,"vmin.u8",0xf3000610, 3)
-BINARY(mullb,"vmul.i8",0xf2000910, 3)
-BINARY(orb,"vorr",0xf2200110, 3)
+ BINARY (avgsb, "vrhadd.s8", 0xf2000100, 3)
+ BINARY (avgub, "vrhadd.u8", 0xf3000100, 3)
+ BINARY (cmpeqb, "vceq.i8", 0xf3000810, 3)
+ BINARY (cmpgtsb, "vcgt.s8", 0xf2000300, 3)
+ MOVE (copyb, "vmov", 0xf2200110, 3)
+ BINARY (maxsb, "vmax.s8", 0xf2000600, 3)
+ BINARY (maxub, "vmax.u8", 0xf3000600, 3)
+ BINARY (minsb, "vmin.s8", 0xf2000610, 3)
+ BINARY (minub, "vmin.u8", 0xf3000610, 3)
+ BINARY (mullb, "vmul.i8", 0xf2000910, 3)
+ BINARY (orb, "vorr", 0xf2200110, 3)
//LSHIFT(shlb,"vshl.i8",0xf2880510, 3)
//RSHIFT(shrsb,"vshr.s8",0xf2880010,8, 3)
//RSHIFT(shrub,"vshr.u8",0xf3880010,8, 3)
-BINARY(subb,"vsub.i8",0xf3000800, 3)
-BINARY(subssb,"vqsub.s8",0xf2000210, 3)
-BINARY(subusb,"vqsub.u8",0xf3000210, 3)
-BINARY(xorb,"veor",0xf3000110, 3)
-
-UNARY(absw,"vabs.s16",0xf3b50300, 2)
-BINARY(addw,"vadd.i16",0xf2100800, 2)
-BINARY(addssw,"vqadd.s16",0xf2100010, 2)
-BINARY(addusw,"vqadd.u16",0xf3100010, 2)
-BINARY(andw,"vand",0xf2000110, 2)
+ BINARY (subb, "vsub.i8", 0xf3000800, 3)
+ BINARY (subssb, "vqsub.s8", 0xf2000210, 3)
+ BINARY (subusb, "vqsub.u8", 0xf3000210, 3)
+ BINARY (xorb, "veor", 0xf3000110, 3)
+
+ UNARY (absw, "vabs.s16", 0xf3b50300, 2)
+ BINARY (addw, "vadd.i16", 0xf2100800, 2)
+ BINARY (addssw, "vqadd.s16", 0xf2100010, 2)
+ BINARY (addusw, "vqadd.u16", 0xf3100010, 2)
+ BINARY (andw, "vand", 0xf2000110, 2)
//BINARY(andnw,"vbic",0xf2100110, 2)
-BINARY(avgsw,"vrhadd.s16",0xf2100100, 2)
-BINARY(avguw,"vrhadd.u16",0xf3100100, 2)
-BINARY(cmpeqw,"vceq.i16",0xf3100810, 2)
-BINARY(cmpgtsw,"vcgt.s16",0xf2100300, 2)
-MOVE(copyw,"vmov",0xf2200110, 2)
-BINARY(maxsw,"vmax.s16",0xf2100600, 2)
-BINARY(maxuw,"vmax.u16",0xf3100600, 2)
-BINARY(minsw,"vmin.s16",0xf2100610, 2)
-BINARY(minuw,"vmin.u16",0xf3100610, 2)
-BINARY(mullw,"vmul.i16",0xf2100910, 2)
-BINARY(orw,"vorr",0xf2200110, 2)
+ BINARY (avgsw, "vrhadd.s16", 0xf2100100, 2)
+ BINARY (avguw, "vrhadd.u16", 0xf3100100, 2)
+ BINARY (cmpeqw, "vceq.i16", 0xf3100810, 2)
+ BINARY (cmpgtsw, "vcgt.s16", 0xf2100300, 2)
+ MOVE (copyw, "vmov", 0xf2200110, 2)
+ BINARY (maxsw, "vmax.s16", 0xf2100600, 2)
+ BINARY (maxuw, "vmax.u16", 0xf3100600, 2)
+ BINARY (minsw, "vmin.s16", 0xf2100610, 2)
+ BINARY (minuw, "vmin.u16", 0xf3100610, 2)
+ BINARY (mullw, "vmul.i16", 0xf2100910, 2)
+ BINARY (orw, "vorr", 0xf2200110, 2)
//LSHIFT(shlw,"vshl.i16",0xf2900510, 2)
//RSHIFT(shrsw,"vshr.s16",0xf2900010,16, 2)
//RSHIFT(shruw,"vshr.u16",0xf3900010,16, 2)
-BINARY(subw,"vsub.i16",0xf3100800, 2)
-BINARY(subssw,"vqsub.s16",0xf2100210, 2)
-BINARY(subusw,"vqsub.u16",0xf3100210, 2)
-BINARY(xorw,"veor",0xf3000110, 2)
-
-UNARY(absl,"vabs.s32",0xf3b90300, 1)
-BINARY(addl,"vadd.i32",0xf2200800, 1)
-BINARY(addssl,"vqadd.s32",0xf2200010, 1)
-BINARY(addusl,"vqadd.u32",0xf3200010, 1)
-BINARY(andl,"vand",0xf2000110, 1)
+ BINARY (subw, "vsub.i16", 0xf3100800, 2)
+ BINARY (subssw, "vqsub.s16", 0xf2100210, 2)
+ BINARY (subusw, "vqsub.u16", 0xf3100210, 2)
+ BINARY (xorw, "veor", 0xf3000110, 2)
+
+ UNARY (absl, "vabs.s32", 0xf3b90300, 1)
+ BINARY (addl, "vadd.i32", 0xf2200800, 1)
+ BINARY (addssl, "vqadd.s32", 0xf2200010, 1)
+ BINARY (addusl, "vqadd.u32", 0xf3200010, 1)
+ BINARY (andl, "vand", 0xf2000110, 1)
//BINARY(andnl,"vbic",0xf2100110, 1)
-BINARY(avgsl,"vrhadd.s32",0xf2200100, 1)
-BINARY(avgul,"vrhadd.u32",0xf3200100, 1)
-BINARY(cmpeql,"vceq.i32",0xf3200810, 1)
-BINARY(cmpgtsl,"vcgt.s32",0xf2200300, 1)
-MOVE(copyl,"vmov",0xf2200110, 1)
-BINARY(maxsl,"vmax.s32",0xf2200600, 1)
-BINARY(maxul,"vmax.u32",0xf3200600, 1)
-BINARY(minsl,"vmin.s32",0xf2200610, 1)
-BINARY(minul,"vmin.u32",0xf3200610, 1)
-BINARY(mulll,"vmul.i32",0xf2200910, 1)
-BINARY(orl,"vorr",0xf2200110, 1)
+ BINARY (avgsl, "vrhadd.s32", 0xf2200100, 1)
+ BINARY (avgul, "vrhadd.u32", 0xf3200100, 1)
+ BINARY (cmpeql, "vceq.i32", 0xf3200810, 1)
+ BINARY (cmpgtsl, "vcgt.s32", 0xf2200300, 1)
+ MOVE (copyl, "vmov", 0xf2200110, 1)
+ BINARY (maxsl, "vmax.s32", 0xf2200600, 1)
+ BINARY (maxul, "vmax.u32", 0xf3200600, 1)
+ BINARY (minsl, "vmin.s32", 0xf2200610, 1)
+ BINARY (minul, "vmin.u32", 0xf3200610, 1)
+ BINARY (mulll, "vmul.i32", 0xf2200910, 1)
+ BINARY (orl, "vorr", 0xf2200110, 1)
//LSHIFT(shll,"vshl.i32",0xf2a00510, 1)
//RSHIFT(shrsl,"vshr.s32",0xf2a00010,32, 1)
//RSHIFT(shrul,"vshr.u32",0xf3a00010,32, 1)
-BINARY(subl,"vsub.i32",0xf3200800, 1)
-BINARY(subssl,"vqsub.s32",0xf2200210, 1)
-BINARY(subusl,"vqsub.u32",0xf3200210, 1)
-BINARY(xorl,"veor",0xf3000110, 1)
-
+ BINARY (subl, "vsub.i32", 0xf3200800, 1)
+ BINARY (subssl, "vqsub.s32", 0xf2200210, 1)
+ BINARY (subusl, "vqsub.u32", 0xf3200210, 1)
+ BINARY (xorl, "veor", 0xf3000110, 1)
//UNARY(absq,"vabs.s64",0xf3b10300, 0)
-BINARY(addq,"vadd.i64",0xf2300800, 0)
+ BINARY (addq, "vadd.i64", 0xf2300800, 0)
//BINARY(addssq,"vqadd.s64",0xf2000010, 0)
//BINARY(addusq,"vqadd.u64",0xf3000010, 0)
-BINARY(andq,"vand",0xf2000110, 0)
+ BINARY (andq, "vand", 0xf2000110, 0)
//BINARY(avgsq,"vrhadd.s64",0xf2000100, 0)
//BINARY(avguq,"vrhadd.u64",0xf3000100, 0)
//BINARY(cmpeqq,"vceq.i64",0xf3000810, 0)
//BINARY(cmpgtsq,"vcgt.s64",0xf2000300, 0)
-MOVE(copyq,"vmov",0xf2200110, 0)
+ MOVE (copyq, "vmov", 0xf2200110, 0)
//BINARY(maxsq,"vmax.s64",0xf2000600, 0)
//BINARY(maxuq,"vmax.u64",0xf3000600, 0)
//BINARY(minsq,"vmin.s64",0xf2000610, 0)
//BINARY(minuq,"vmin.u64",0xf3000610, 0)
//BINARY(mullq,"vmul.i64",0xf2000910, 0)
-BINARY(orq,"vorr",0xf2200110, 0)
-BINARY(subq,"vsub.i64",0xf3300800, 0)
+ BINARY (orq, "vorr", 0xf2200110, 0)
+ BINARY (subq, "vsub.i64", 0xf3300800, 0)
//BINARY(subssq,"vqsub.s64",0xf2000210, 0)
//BINARY(subusq,"vqsub.u64",0xf3000210, 0)
-BINARY(xorq,"veor",0xf3000110, 0)
-
-UNARY_LONG(convsbw,"vmovl.s8",0xf2880a10, 3)
-UNARY_LONG(convubw,"vmovl.u8",0xf3880a10, 3)
-UNARY_LONG(convswl,"vmovl.s16",0xf2900a10, 2)
-UNARY_LONG(convuwl,"vmovl.u16",0xf3900a10, 2)
-UNARY_LONG(convslq,"vmovl.s32",0xf2a00a10, 1)
-UNARY_LONG(convulq,"vmovl.u32",0xf3a00a10, 1)
-UNARY_NARROW(convwb,"vmovn.i16",0xf3b20200, 3)
-UNARY_NARROW(convssswb,"vqmovn.s16",0xf3b20280, 3)
-UNARY_NARROW(convsuswb,"vqmovun.s16",0xf3b20240, 3)
-UNARY_NARROW(convuuswb,"vqmovn.u16",0xf3b202c0, 3)
-UNARY_NARROW(convlw,"vmovn.i32",0xf3b60200, 2)
-UNARY_NARROW(convql,"vmovn.i64",0xf3ba0200, 1)
-UNARY_NARROW(convssslw,"vqmovn.s32",0xf3b60280, 2)
-UNARY_NARROW(convsuslw,"vqmovun.s32",0xf3b60240, 2)
-UNARY_NARROW(convuuslw,"vqmovn.u32",0xf3b602c0, 2)
-UNARY_NARROW(convsssql,"vqmovn.s64",0xf3ba0280, 1)
-UNARY_NARROW(convsusql,"vqmovun.s64",0xf3ba0240, 1)
-UNARY_NARROW(convuusql,"vqmovn.u64",0xf3ba02c0, 1)
-
-BINARY_LONG(mulsbw,"vmull.s8",0xf2800c00, 3)
-BINARY_LONG(mulubw,"vmull.u8",0xf3800c00, 3)
-BINARY_LONG(mulswl,"vmull.s16",0xf2900c00, 2)
-BINARY_LONG(muluwl,"vmull.u16",0xf3900c00, 2)
-
-UNARY(swapw,"vrev16.i8",0xf3b00100, 2)
-UNARY(swapl,"vrev32.i8",0xf3b00080, 1)
-UNARY(swapq,"vrev64.i8",0xf3b00000, 0)
-UNARY(swapwl,"vrev32.i16",0xf3b40080, 1)
-UNARY(swaplq,"vrev64.i32",0xf3b80000, 0)
-
-UNARY_NARROW(select0ql,"vmovn.i64",0xf3ba0200, 1)
-UNARY_NARROW(select0lw,"vmovn.i32",0xf3b60200, 2)
-UNARY_NARROW(select0wb,"vmovn.i16",0xf3b20200, 3)
-
-BINARY(addf,"vadd.f32",0xf2000d00, 1)
-BINARY(subf,"vsub.f32",0xf2200d00, 1)
-BINARY(mulf,"vmul.f32",0xf3000d10, 1)
-BINARY(maxf,"vmax.f32",0xf2000f00, 1)
-BINARY(minf,"vmin.f32",0xf2200f00, 1)
-BINARY(cmpeqf,"vceq.f32",0xf2000e00, 1)
+ BINARY (xorq, "veor", 0xf3000110, 0)
+
+ UNARY_LONG (convsbw, "vmovl.s8", 0xf2880a10, 3)
+ UNARY_LONG (convubw, "vmovl.u8", 0xf3880a10, 3)
+ UNARY_LONG (convswl, "vmovl.s16", 0xf2900a10, 2)
+ UNARY_LONG (convuwl, "vmovl.u16", 0xf3900a10, 2)
+ UNARY_LONG (convslq, "vmovl.s32", 0xf2a00a10, 1)
+ UNARY_LONG (convulq, "vmovl.u32", 0xf3a00a10, 1)
+ UNARY_NARROW (convwb, "vmovn.i16", 0xf3b20200, 3)
+ UNARY_NARROW (convssswb, "vqmovn.s16", 0xf3b20280, 3)
+ UNARY_NARROW (convsuswb, "vqmovun.s16", 0xf3b20240, 3)
+ UNARY_NARROW (convuuswb, "vqmovn.u16", 0xf3b202c0, 3)
+ UNARY_NARROW (convlw, "vmovn.i32", 0xf3b60200, 2)
+ UNARY_NARROW (convql, "vmovn.i64", 0xf3ba0200, 1)
+ UNARY_NARROW (convssslw, "vqmovn.s32", 0xf3b60280, 2)
+ UNARY_NARROW (convsuslw, "vqmovun.s32", 0xf3b60240, 2)
+ UNARY_NARROW (convuuslw, "vqmovn.u32", 0xf3b602c0, 2)
+ UNARY_NARROW (convsssql, "vqmovn.s64", 0xf3ba0280, 1)
+ UNARY_NARROW (convsusql, "vqmovun.s64", 0xf3ba0240, 1)
+ UNARY_NARROW (convuusql, "vqmovn.u64", 0xf3ba02c0, 1)
+
+ BINARY_LONG (mulsbw, "vmull.s8", 0xf2800c00, 3)
+ BINARY_LONG (mulubw, "vmull.u8", 0xf3800c00, 3)
+ BINARY_LONG (mulswl, "vmull.s16", 0xf2900c00, 2)
+ BINARY_LONG (muluwl, "vmull.u16", 0xf3900c00, 2)
+
+ UNARY (swapw, "vrev16.i8", 0xf3b00100, 2)
+ UNARY (swapl, "vrev32.i8", 0xf3b00080, 1)
+ UNARY (swapq, "vrev64.i8", 0xf3b00000, 0)
+ UNARY (swapwl, "vrev32.i16", 0xf3b40080, 1)
+ UNARY (swaplq, "vrev64.i32", 0xf3b80000, 0)
+
+ UNARY_NARROW (select0ql, "vmovn.i64", 0xf3ba0200, 1)
+ UNARY_NARROW (select0lw, "vmovn.i32", 0xf3b60200, 2)
+ UNARY_NARROW (select0wb, "vmovn.i16", 0xf3b20200, 3)
+
+ BINARY (addf, "vadd.f32", 0xf2000d00, 1)
+ BINARY (subf, "vsub.f32", 0xf2200d00, 1)
+ BINARY (mulf, "vmul.f32", 0xf3000d10, 1)
+ BINARY (maxf, "vmax.f32", 0xf2000f00, 1)
+ BINARY (minf, "vmin.f32", 0xf2200f00, 1)
+ BINARY (cmpeqf, "vceq.f32", 0xf2000e00, 1)
//BINARY_R(cmpltf,"vclt.f32",0xf3200e00, 1)
//BINARY_R(cmplef,"vcle.f32",0xf3000e00, 1)
-UNARY(convfl,"vcvt.s32.f32",0xf3bb0700, 1)
-UNARY(convlf,"vcvt.f32.s32",0xf3bb0600, 1)
-
+ UNARY (convfl, "vcvt.s32.f32", 0xf3bb0700, 1)
+ UNARY (convlf, "vcvt.f32.s32", 0xf3bb0600, 1)
#define UNARY_VFP(opcode,insn_name,code,vec_shift) \
static void \
orc_neon_rule_ ## opcode (OrcCompiler *p, void *user, OrcInstruction *insn) \
@@ -1776,7 +1735,6 @@ orc_neon_rule_ ## opcode (OrcCompiler *p, void *user, OrcInstruction *insn) \
ORC_COMPILER_ERROR(p, "shift too large"); \
} \
}
-
#define BINARY_VFP(opcode,insn_name,code,vec_shift) \
static void \
orc_neon_rule_ ## opcode (OrcCompiler *p, void *user, OrcInstruction *insn) \
@@ -1794,66 +1752,56 @@ orc_neon_rule_ ## opcode (OrcCompiler *p, void *user, OrcInstruction *insn) \
ORC_COMPILER_ERROR(p, "shift too large"); \
} \
}
-
-BINARY_VFP(addd,"vadd.f64",0xee300b00, 0)
-BINARY_VFP(subd,"vsub.f64",0xee300b40, 0)
-BINARY_VFP(muld,"vmul.f64",0xee200b00, 0)
-BINARY_VFP(divd,"vdiv.f64",0xee800b00, 0)
-UNARY_VFP(sqrtd,"vsqrt.f64",0xeeb10b00, 0)
+ BINARY_VFP (addd, "vadd.f64", 0xee300b00, 0)
+ BINARY_VFP (subd, "vsub.f64", 0xee300b40, 0)
+ BINARY_VFP (muld, "vmul.f64", 0xee200b00, 0)
+ BINARY_VFP (divd, "vdiv.f64", 0xee800b00, 0)
+ UNARY_VFP (sqrtd, "vsqrt.f64", 0xeeb10b00, 0)
//BINARY_VFP(cmpeqd,"vcmpe.f64",0xee000000, 0)
-UNARY_VFP(convdf,"vcvt.f64.f32",0xee200b00, 0)
-UNARY_VFP(convfd,"vcvt.f32.f64",0xee200b00, 0)
-
+ UNARY_VFP (convdf, "vcvt.f64.f32", 0xee200b00, 0)
+ UNARY_VFP (convfd, "vcvt.f32.f64", 0xee200b00, 0)
#if 1
#define NUM_ITERS_DIVF 2
-static void
-orc_neon_rule_divf (OrcCompiler *p, void *user, OrcInstruction *insn)
+ static void
+ orc_neon_rule_divf (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int vec_shift = 1;
if (p->insn_shift <= vec_shift) {
int i;
orc_neon_emit_unary (p, "vrecpe.f32", 0xf3bb0500,
- p->tmpreg,
- p->vars[insn->src_args[1]].alloc);
- for(i = 0; i < NUM_ITERS_DIVF; i++) {
- orc_neon_emit_binary (p, "vrecps.f32", 0xf2000f10,
- p->tmpreg2, //correction factor
- p->tmpreg, //the last estimate
- p->vars[insn->src_args[1]].alloc); //the original number
- orc_neon_emit_binary (p, "vmul.f32", 0xf3000d10,
- p->tmpreg, //revised estimate
- p->tmpreg, //last estimate
- p->tmpreg2); //correction factor
+ p->tmpreg, p->vars[insn->src_args[1]].alloc);
+ for (i = 0; i < NUM_ITERS_DIVF; i++) {
+ orc_neon_emit_binary (p, "vrecps.f32", 0xf2000f10, p->tmpreg2, //correction factor
+ p->tmpreg, //the last estimate
+ p->vars[insn->src_args[1]].alloc); //the original number
+ orc_neon_emit_binary (p, "vmul.f32", 0xf3000d10, p->tmpreg, //revised estimate
+ p->tmpreg, //last estimate
+ p->tmpreg2); //correction factor
}
orc_neon_emit_binary (p, "vmul.f32", 0xf3000d10,
- p->vars[insn->dest_args[0]].alloc,
- p->vars[insn->src_args[0]].alloc,
- p->tmpreg);
+ p->vars[insn->dest_args[0]].alloc,
+ p->vars[insn->src_args[0]].alloc, p->tmpreg);
} else if (p->insn_shift == vec_shift + 1) {
int i;
orc_neon_emit_unary_quad (p, "vrecpe.f32", 0xf3bb0500,
- p->tmpreg,
- p->vars[insn->src_args[1]].alloc);
- for(i = 0; i < NUM_ITERS_DIVF; i++) {
- orc_neon_emit_binary_quad (p, "vrecps.f32", 0xf2000f10,
- p->tmpreg2, //correction factor
- p->tmpreg, //the last estimate
- p->vars[insn->src_args[1]].alloc); //the original number
- orc_neon_emit_binary_quad (p, "vmul.f32", 0xf3000d10,
- p->tmpreg, //revised estimate
- p->tmpreg, //last estimate
- p->tmpreg2); //correction factor
+ p->tmpreg, p->vars[insn->src_args[1]].alloc);
+ for (i = 0; i < NUM_ITERS_DIVF; i++) {
+ orc_neon_emit_binary_quad (p, "vrecps.f32", 0xf2000f10, p->tmpreg2, //correction factor
+ p->tmpreg, //the last estimate
+ p->vars[insn->src_args[1]].alloc); //the original number
+ orc_neon_emit_binary_quad (p, "vmul.f32", 0xf3000d10, p->tmpreg, //revised estimate
+ p->tmpreg, //last estimate
+ p->tmpreg2); //correction factor
}
orc_neon_emit_binary_quad (p, "vmul.f32", 0xf3000d10,
- p->vars[insn->dest_args[0]].alloc,
- p->vars[insn->src_args[0]].alloc,
- p->tmpreg);
+ p->vars[insn->dest_args[0]].alloc,
+ p->vars[insn->src_args[0]].alloc, p->tmpreg);
} else {
- ORC_COMPILER_ERROR(p, "shift too large");
+ ORC_COMPILER_ERROR (p, "shift too large");
}
}
#endif
@@ -1861,204 +1809,175 @@ orc_neon_rule_divf (OrcCompiler *p, void *user, OrcInstruction *insn)
#if 1
#define NUM_ITERS_SQRTF 2
static void
-orc_neon_rule_sqrtf (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_sqrtf (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int vec_shift = 1;
if (p->insn_shift <= vec_shift) {
int i;
orc_neon_emit_unary (p, "vrsqrte.f32", 0xf3bb0580,
- p->tmpreg,
- p->vars[insn->src_args[0]].alloc);
- for(i = 0; i < NUM_ITERS_SQRTF; i++) {
+ p->tmpreg, p->vars[insn->src_args[0]].alloc);
+ for (i = 0; i < NUM_ITERS_SQRTF; i++) {
orc_neon_emit_binary (p, "vmul.f32", 0xf3000d10,
- p->tmpreg2,
- p->tmpreg,
- p->vars[insn->src_args[0]].alloc);
+ p->tmpreg2, p->tmpreg, p->vars[insn->src_args[0]].alloc);
orc_neon_emit_binary (p, "vrsqrts.f32", 0xf2200f10,
- p->tmpreg2,
- p->tmpreg,
- p->tmpreg2);
+ p->tmpreg2, p->tmpreg, p->tmpreg2);
orc_neon_emit_binary (p, "vmul.f32", 0xf3000d10,
- p->tmpreg,
- p->tmpreg,
- p->tmpreg2);
+ p->tmpreg, p->tmpreg, p->tmpreg2);
}
- orc_neon_emit_unary(p, "vrecpe.f32", 0xf3bb0500,
- p->vars[insn->dest_args[0]].alloc,
- p->tmpreg);
-
- for(i=0; i < NUM_ITERS_DIVF; i++) {
- orc_neon_emit_binary (p, "vrecps.f32", 0xf2000f10,
- p->tmpreg2, //correction factor
- p->vars[insn->dest_args[0]].alloc, //the last estimate
- p->tmpreg); //the original number
- orc_neon_emit_binary (p, "vmul.f32", 0xf3000d10,
- p->vars[insn->dest_args[0]].alloc, //revised estimate
- p->vars[insn->dest_args[0]].alloc, //last estimate
- p->tmpreg2); //correction factor
+ orc_neon_emit_unary (p, "vrecpe.f32", 0xf3bb0500,
+ p->vars[insn->dest_args[0]].alloc, p->tmpreg);
+
+ for (i = 0; i < NUM_ITERS_DIVF; i++) {
+ orc_neon_emit_binary (p, "vrecps.f32", 0xf2000f10, p->tmpreg2, //correction factor
+ p->vars[insn->dest_args[0]].alloc, //the last estimate
+ p->tmpreg); //the original number
+ orc_neon_emit_binary (p, "vmul.f32", 0xf3000d10, p->vars[insn->dest_args[0]].alloc, //revised estimate
+ p->vars[insn->dest_args[0]].alloc, //last estimate
+ p->tmpreg2); //correction factor
}
} else if (p->insn_shift == vec_shift + 1) {
int i;
orc_neon_emit_unary_quad (p, "vrsqrte.f32", 0xf3bb0580,
- p->tmpreg,
- p->vars[insn->src_args[0]].alloc);
- for(i = 0; i < NUM_ITERS_SQRTF; i++) {
+ p->tmpreg, p->vars[insn->src_args[0]].alloc);
+ for (i = 0; i < NUM_ITERS_SQRTF; i++) {
orc_neon_emit_binary_quad (p, "vmul.f32", 0xf3000d10,
- p->tmpreg2,
- p->tmpreg,
- p->vars[insn->src_args[0]].alloc);
+ p->tmpreg2, p->tmpreg, p->vars[insn->src_args[0]].alloc);
orc_neon_emit_binary_quad (p, "vrsqrts.f32", 0xf2200f10,
- p->tmpreg2,
- p->tmpreg,
- p->tmpreg2);
+ p->tmpreg2, p->tmpreg, p->tmpreg2);
orc_neon_emit_binary_quad (p, "vmul.f32", 0xf3000d10,
- p->tmpreg,
- p->tmpreg,
- p->tmpreg2);
+ p->tmpreg, p->tmpreg, p->tmpreg2);
}
- orc_neon_emit_unary_quad(p, "vrecpe.f32", 0xf3bb0500,
- p->vars[insn->dest_args[0]].alloc,
- p->tmpreg);
-
- for(i=0; i < NUM_ITERS_DIVF; i++) {
- orc_neon_emit_binary_quad (p, "vrecps.f32", 0xf2000f10,
- p->tmpreg2, //correction factor
- p->vars[insn->dest_args[0]].alloc, //the last estimate
- p->tmpreg); //the original number
- orc_neon_emit_binary_quad (p, "vmul.f32", 0xf3000d10,
- p->vars[insn->dest_args[0]].alloc, //revised estimate
- p->vars[insn->dest_args[0]].alloc, //last estimate
- p->tmpreg2); //correction factor
+ orc_neon_emit_unary_quad (p, "vrecpe.f32", 0xf3bb0500,
+ p->vars[insn->dest_args[0]].alloc, p->tmpreg);
+
+ for (i = 0; i < NUM_ITERS_DIVF; i++) {
+ orc_neon_emit_binary_quad (p, "vrecps.f32", 0xf2000f10, p->tmpreg2, //correction factor
+ p->vars[insn->dest_args[0]].alloc, //the last estimate
+ p->tmpreg); //the original number
+ orc_neon_emit_binary_quad (p, "vmul.f32", 0xf3000d10, p->vars[insn->dest_args[0]].alloc, //revised estimate
+ p->vars[insn->dest_args[0]].alloc, //last estimate
+ p->tmpreg2); //correction factor
}
} else {
- ORC_COMPILER_ERROR(p, "shift too large");
+ ORC_COMPILER_ERROR (p, "shift too large");
}
}
#endif
static void
-orc_neon_rule_accw (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_accw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
unsigned int code;
if (p->insn_shift < 2) {
- ORC_ASM_CODE(p," vshl.i64 %s, %s, #%d\n",
+ ORC_ASM_CODE (p, " vshl.i64 %s, %s, #%d\n",
orc_neon_reg_name (p->tmpreg),
orc_neon_reg_name (p->vars[insn->src_args[0]].alloc), 48);
- code = NEON_BINARY(0xf2a00590, p->tmpreg, 0,
+ code = NEON_BINARY (0xf2a00590, p->tmpreg, 0,
p->vars[insn->src_args[0]].alloc);
code |= (48) << 16;
orc_arm_emit (p, code);
orc_neon_emit_binary (p, "vadd.i16", 0xf2100800,
p->vars[insn->dest_args[0]].alloc,
- p->vars[insn->dest_args[0]].alloc,
- p->tmpreg);
+ p->vars[insn->dest_args[0]].alloc, p->tmpreg);
} else {
orc_neon_emit_binary (p, "vadd.i16", 0xf2100800,
p->vars[insn->dest_args[0]].alloc,
- p->vars[insn->dest_args[0]].alloc,
- p->vars[insn->src_args[0]].alloc);
+ p->vars[insn->dest_args[0]].alloc, p->vars[insn->src_args[0]].alloc);
}
}
static void
-orc_neon_rule_accl (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_accl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
unsigned int code;
if (p->insn_shift < 1) {
- ORC_ASM_CODE(p," vshl.i64 %s, %s, #%d\n",
+ ORC_ASM_CODE (p, " vshl.i64 %s, %s, #%d\n",
orc_neon_reg_name (p->tmpreg),
orc_neon_reg_name (p->vars[insn->src_args[0]].alloc), 32);
- code = NEON_BINARY(0xf2a00590, p->tmpreg, 0,
+ code = NEON_BINARY (0xf2a00590, p->tmpreg, 0,
p->vars[insn->src_args[0]].alloc);
code |= (32) << 16;
orc_arm_emit (p, code);
orc_neon_emit_binary (p, "vadd.i32", 0xf2200800,
p->vars[insn->dest_args[0]].alloc,
- p->vars[insn->dest_args[0]].alloc,
- p->tmpreg);
+ p->vars[insn->dest_args[0]].alloc, p->tmpreg);
} else {
orc_neon_emit_binary (p, "vadd.i32", 0xf2200800,
p->vars[insn->dest_args[0]].alloc,
- p->vars[insn->dest_args[0]].alloc,
- p->vars[insn->src_args[0]].alloc);
+ p->vars[insn->dest_args[0]].alloc, p->vars[insn->src_args[0]].alloc);
}
}
static void
-orc_neon_rule_select1wb (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_select1wb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
unsigned int code;
- ORC_ASM_CODE(p," vshrn.i16 %s, %s, #%d\n",
+ ORC_ASM_CODE (p, " vshrn.i16 %s, %s, #%d\n",
orc_neon_reg_name (p->vars[insn->dest_args[0]].alloc),
orc_neon_reg_name_quad (p->vars[insn->src_args[0]].alloc), 8);
code = NEON_BINARY (0xf2880810,
- p->vars[insn->dest_args[0]].alloc,
- 0, p->vars[insn->src_args[0]].alloc);
+ p->vars[insn->dest_args[0]].alloc, 0, p->vars[insn->src_args[0]].alloc);
orc_arm_emit (p, code);
}
static void
-orc_neon_rule_select1lw (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_select1lw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
unsigned int code;
- ORC_ASM_CODE(p," vshrn.i32 %s, %s, #%d\n",
+ ORC_ASM_CODE (p, " vshrn.i32 %s, %s, #%d\n",
orc_neon_reg_name (p->vars[insn->dest_args[0]].alloc),
orc_neon_reg_name_quad (p->vars[insn->src_args[0]].alloc), 16);
code = NEON_BINARY (0xf2900810,
- p->vars[insn->dest_args[0]].alloc,
- 0, p->vars[insn->src_args[0]].alloc);
+ p->vars[insn->dest_args[0]].alloc, 0, p->vars[insn->src_args[0]].alloc);
orc_arm_emit (p, code);
}
static void
-orc_neon_rule_select1ql (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_select1ql (OrcCompiler * p, void *user, OrcInstruction * insn)
{
unsigned int code;
- ORC_ASM_CODE(p," vtrn.32 %s, %s\n",
+ ORC_ASM_CODE (p, " vtrn.32 %s, %s\n",
orc_neon_reg_name (p->vars[insn->dest_args[0]].alloc),
orc_neon_reg_name_quad (p->vars[insn->src_args[0]].alloc));
code = NEON_BINARY (0xf2a00810,
- p->vars[insn->dest_args[0]].alloc,
- 0, p->vars[insn->src_args[0]].alloc);
+ p->vars[insn->dest_args[0]].alloc, 0, p->vars[insn->src_args[0]].alloc);
orc_arm_emit (p, code);
}
static void
-orc_neon_rule_convhwb (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_convhwb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
unsigned int code;
- ORC_ASM_CODE(p," vshrn.i16 %s, %s, #%d\n",
+ ORC_ASM_CODE (p, " vshrn.i16 %s, %s, #%d\n",
orc_neon_reg_name (p->vars[insn->dest_args[0]].alloc),
orc_neon_reg_name_quad (p->vars[insn->src_args[0]].alloc), 8);
code = NEON_BINARY (0xf2880810,
- p->vars[insn->dest_args[0]].alloc,
- 0, p->vars[insn->src_args[0]].alloc);
+ p->vars[insn->dest_args[0]].alloc, 0, p->vars[insn->src_args[0]].alloc);
orc_arm_emit (p, code);
}
static void
-orc_neon_rule_convhlw (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_convhlw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
unsigned int code;
- ORC_ASM_CODE(p," vshrn.i32 %s, %s, #%d\n",
+ ORC_ASM_CODE (p, " vshrn.i32 %s, %s, #%d\n",
orc_neon_reg_name (p->vars[insn->dest_args[0]].alloc),
orc_neon_reg_name_quad (p->vars[insn->src_args[0]].alloc), 16);
code = NEON_BINARY (0xf2900810,
- p->vars[insn->dest_args[0]].alloc,
- 0, p->vars[insn->src_args[0]].alloc);
+ p->vars[insn->dest_args[0]].alloc, 0, p->vars[insn->src_args[0]].alloc);
orc_arm_emit (p, code);
}
static void
-orc_neon_rule_mergebw (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_mergebw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
if (p->insn_shift <= 2) {
if (p->vars[insn->dest_args[0]].alloc != p->vars[insn->src_args[0]].alloc) {
@@ -2069,12 +1988,10 @@ orc_neon_rule_mergebw (OrcCompiler *p, void *user, OrcInstruction *insn)
if (p->vars[insn->src_args[1]].last_use != p->insn_index) {
orc_neon_emit_mov (p, p->tmpreg, p->vars[insn->src_args[1]].alloc);
orc_neon_emit_unary (p, "vzip.8", 0xf3b20180,
- p->vars[insn->dest_args[0]].alloc,
- p->tmpreg);
+ p->vars[insn->dest_args[0]].alloc, p->tmpreg);
} else {
orc_neon_emit_unary (p, "vzip.8", 0xf3b20180,
- p->vars[insn->dest_args[0]].alloc,
- p->vars[insn->src_args[1]].alloc);
+ p->vars[insn->dest_args[0]].alloc, p->vars[insn->src_args[1]].alloc);
}
} else {
if (p->vars[insn->dest_args[0]].alloc != p->vars[insn->src_args[0]].alloc) {
@@ -2084,13 +2001,12 @@ orc_neon_rule_mergebw (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_neon_emit_mov_quad (p, p->tmpreg, p->vars[insn->src_args[1]].alloc);
orc_neon_emit_unary_quad (p, "vzip.8", 0xf3b20180,
- p->vars[insn->dest_args[0]].alloc,
- p->tmpreg);
+ p->vars[insn->dest_args[0]].alloc, p->tmpreg);
}
}
static void
-orc_neon_rule_mergewl (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_mergewl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
if (p->insn_shift <= 1) {
if (p->vars[insn->dest_args[0]].alloc != p->vars[insn->src_args[0]].alloc) {
@@ -2101,12 +2017,10 @@ orc_neon_rule_mergewl (OrcCompiler *p, void *user, OrcInstruction *insn)
if (p->vars[insn->src_args[1]].last_use != p->insn_index) {
orc_neon_emit_mov (p, p->tmpreg, p->vars[insn->src_args[1]].alloc);
orc_neon_emit_unary (p, "vzip.16", 0xf3b60180,
- p->vars[insn->dest_args[0]].alloc,
- p->tmpreg);
+ p->vars[insn->dest_args[0]].alloc, p->tmpreg);
} else {
orc_neon_emit_unary (p, "vzip.16", 0xf3b60180,
- p->vars[insn->dest_args[0]].alloc,
- p->vars[insn->src_args[1]].alloc);
+ p->vars[insn->dest_args[0]].alloc, p->vars[insn->src_args[1]].alloc);
}
} else {
if (p->vars[insn->dest_args[0]].alloc != p->vars[insn->src_args[0]].alloc) {
@@ -2117,18 +2031,16 @@ orc_neon_rule_mergewl (OrcCompiler *p, void *user, OrcInstruction *insn)
if (p->vars[insn->src_args[1]].last_use != p->insn_index) {
orc_neon_emit_mov_quad (p, p->tmpreg, p->vars[insn->src_args[1]].alloc);
orc_neon_emit_unary_quad (p, "vzip.16", 0xf3b60180,
- p->vars[insn->dest_args[0]].alloc,
- p->tmpreg);
+ p->vars[insn->dest_args[0]].alloc, p->tmpreg);
} else {
orc_neon_emit_unary_quad (p, "vzip.16", 0xf3b60180,
- p->vars[insn->dest_args[0]].alloc,
- p->vars[insn->src_args[1]].alloc);
+ p->vars[insn->dest_args[0]].alloc, p->vars[insn->src_args[1]].alloc);
}
}
}
static void
-orc_neon_rule_mergelq (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_mergelq (OrcCompiler * p, void *user, OrcInstruction * insn)
{
if (p->insn_shift <= 0) {
if (p->vars[insn->dest_args[0]].alloc != p->vars[insn->src_args[0]].alloc) {
@@ -2139,12 +2051,10 @@ orc_neon_rule_mergelq (OrcCompiler *p, void *user, OrcInstruction *insn)
if (p->vars[insn->src_args[1]].last_use != p->insn_index) {
orc_neon_emit_mov (p, p->tmpreg, p->vars[insn->src_args[1]].alloc);
orc_neon_emit_unary (p, "vtrn.32", 0xf3ba0080,
- p->vars[insn->dest_args[0]].alloc,
- p->tmpreg);
+ p->vars[insn->dest_args[0]].alloc, p->tmpreg);
} else {
orc_neon_emit_unary (p, "vtrn.32", 0xf3ba0080,
- p->vars[insn->dest_args[0]].alloc,
- p->vars[insn->src_args[1]].alloc);
+ p->vars[insn->dest_args[0]].alloc, p->vars[insn->src_args[1]].alloc);
}
} else {
if (p->vars[insn->dest_args[0]].alloc != p->vars[insn->src_args[0]].alloc) {
@@ -2155,18 +2065,16 @@ orc_neon_rule_mergelq (OrcCompiler *p, void *user, OrcInstruction *insn)
if (p->vars[insn->src_args[1]].last_use != p->insn_index) {
orc_neon_emit_mov_quad (p, p->tmpreg, p->vars[insn->src_args[1]].alloc);
orc_neon_emit_unary_quad (p, "vzip.32", 0xf3ba0180,
- p->vars[insn->dest_args[0]].alloc,
- p->tmpreg);
+ p->vars[insn->dest_args[0]].alloc, p->tmpreg);
} else {
orc_neon_emit_unary_quad (p, "vzip.32", 0xf3ba0180,
- p->vars[insn->dest_args[0]].alloc,
- p->vars[insn->src_args[1]].alloc);
+ p->vars[insn->dest_args[0]].alloc, p->vars[insn->src_args[1]].alloc);
}
}
}
static void
-orc_neon_rule_splatbw (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_splatbw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
if (p->insn_shift <= 2) {
if (p->vars[insn->dest_args[0]].alloc != p->vars[insn->src_args[0]].alloc) {
@@ -2176,8 +2084,7 @@ orc_neon_rule_splatbw (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_neon_emit_mov (p, p->tmpreg, p->vars[insn->dest_args[0]].alloc);
orc_neon_emit_unary (p, "vzip.8", 0xf3b20180,
- p->vars[insn->dest_args[0]].alloc,
- p->tmpreg);
+ p->vars[insn->dest_args[0]].alloc, p->tmpreg);
} else {
if (p->vars[insn->dest_args[0]].alloc != p->vars[insn->src_args[0]].alloc) {
orc_neon_emit_mov_quad (p, p->vars[insn->dest_args[0]].alloc,
@@ -2186,13 +2093,12 @@ orc_neon_rule_splatbw (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_neon_emit_mov_quad (p, p->tmpreg, p->vars[insn->dest_args[0]].alloc);
orc_neon_emit_unary_quad (p, "vzip.8", 0xf3b20180,
- p->vars[insn->dest_args[0]].alloc,
- p->tmpreg);
+ p->vars[insn->dest_args[0]].alloc, p->tmpreg);
}
}
static void
-orc_neon_rule_splatbl (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_splatbl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
if (p->insn_shift <= 1) {
if (p->vars[insn->dest_args[0]].alloc != p->vars[insn->src_args[0]].alloc) {
@@ -2202,12 +2108,10 @@ orc_neon_rule_splatbl (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_neon_emit_mov (p, p->tmpreg, p->vars[insn->dest_args[0]].alloc);
orc_neon_emit_unary (p, "vzip.8", 0xf3b20180,
- p->vars[insn->dest_args[0]].alloc,
- p->tmpreg);
+ p->vars[insn->dest_args[0]].alloc, p->tmpreg);
orc_neon_emit_mov (p, p->tmpreg, p->vars[insn->dest_args[0]].alloc);
orc_neon_emit_unary (p, "vzip.16", 0xf3b60180,
- p->vars[insn->dest_args[0]].alloc,
- p->tmpreg);
+ p->vars[insn->dest_args[0]].alloc, p->tmpreg);
} else {
if (p->vars[insn->dest_args[0]].alloc != p->vars[insn->src_args[0]].alloc) {
orc_neon_emit_mov_quad (p, p->vars[insn->dest_args[0]].alloc,
@@ -2216,108 +2120,102 @@ orc_neon_rule_splatbl (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_neon_emit_mov (p, p->tmpreg, p->vars[insn->dest_args[0]].alloc);
orc_neon_emit_unary_quad (p, "vzip.8", 0xf3b20180,
- p->vars[insn->dest_args[0]].alloc,
- p->tmpreg);
+ p->vars[insn->dest_args[0]].alloc, p->tmpreg);
orc_neon_emit_mov (p, p->tmpreg, p->vars[insn->dest_args[0]].alloc);
orc_neon_emit_unary_quad (p, "vzip.16", 0xf3b60180,
- p->vars[insn->dest_args[0]].alloc,
- p->tmpreg);
+ p->vars[insn->dest_args[0]].alloc, p->tmpreg);
}
}
static void
-orc_neon_rule_splatw3q (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_splatw3q (OrcCompiler * p, void *user, OrcInstruction * insn)
{
orc_uint32 code;
int offset = 0;
int label = 20;
orc_arm_add_fixup (p, label, 1);
- ORC_ASM_CODE(p," vldr %s, .L%d+%d\n",
+ ORC_ASM_CODE (p, " vldr %s, .L%d+%d\n",
orc_neon_reg_name (p->tmpreg), label, offset);
code = 0xed9f0b00;
- code |= (p->tmpreg&0xf) << 12;
- code |= ((p->tmpreg>>4)&0x1) << 22;
- code |= ((offset - 8) >> 2)&0xff;
+ code |= (p->tmpreg & 0xf) << 12;
+ code |= ((p->tmpreg >> 4) & 0x1) << 22;
+ code |= ((offset - 8) >> 2) & 0xff;
orc_arm_emit (p, code);
- ORC_ASM_CODE(p," vtbl.8 %s, { %s, %s }, %s\n",
+ ORC_ASM_CODE (p, " vtbl.8 %s, { %s, %s }, %s\n",
orc_neon_reg_name (p->vars[insn->dest_args[0]].alloc),
orc_neon_reg_name (p->vars[insn->src_args[0]].alloc),
orc_neon_reg_name (p->vars[insn->src_args[0]].alloc + 1),
orc_neon_reg_name (p->tmpreg));
- code = NEON_BINARY(0xf3b00900,
+ code = NEON_BINARY (0xf3b00900,
p->vars[insn->dest_args[0]].alloc,
- p->vars[insn->src_args[0]].alloc,
- p->tmpreg);
+ p->vars[insn->src_args[0]].alloc, p->tmpreg);
orc_arm_emit (p, code);
if (p->insn_shift > 0) {
- ORC_ASM_CODE(p," vtbl.8 %s, { %s }, %s\n",
- orc_neon_reg_name (p->vars[insn->dest_args[0]].alloc+1),
- orc_neon_reg_name (p->vars[insn->src_args[0]].alloc+1),
+ ORC_ASM_CODE (p, " vtbl.8 %s, { %s }, %s\n",
+ orc_neon_reg_name (p->vars[insn->dest_args[0]].alloc + 1),
+ orc_neon_reg_name (p->vars[insn->src_args[0]].alloc + 1),
orc_neon_reg_name (p->tmpreg));
- code = NEON_BINARY(0xf3b00800,
- p->vars[insn->dest_args[0]].alloc+1,
- p->vars[insn->src_args[0]].alloc+1,
- p->tmpreg);
+ code = NEON_BINARY (0xf3b00800,
+ p->vars[insn->dest_args[0]].alloc + 1,
+ p->vars[insn->src_args[0]].alloc + 1, p->tmpreg);
orc_arm_emit (p, code);
}
}
static void
-orc_neon_rule_accsadubl (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_accsadubl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
orc_uint32 x;
unsigned int code;
if (p->insn_shift < 2) {
x = 0xf3800700;
- ORC_ASM_CODE(p," vabdl.u8 %s, %s, %s\n",
+ ORC_ASM_CODE (p, " vabdl.u8 %s, %s, %s\n",
orc_neon_reg_name_quad (p->tmpreg),
orc_neon_reg_name (p->vars[insn->src_args[0]].alloc),
orc_neon_reg_name (p->vars[insn->src_args[1]].alloc));
- x |= (p->tmpreg&0xf)<<12;
- x |= ((p->tmpreg>>4)&0x1)<<22;
- x |= (p->vars[insn->src_args[0]].alloc&0xf)<<16;
- x |= ((p->vars[insn->src_args[0]].alloc>>4)&0x1)<<7;
- x |= (p->vars[insn->src_args[1]].alloc&0xf)<<0;
- x |= ((p->vars[insn->src_args[1]].alloc>>4)&0x1)<<5;
+ x |= (p->tmpreg & 0xf) << 12;
+ x |= ((p->tmpreg >> 4) & 0x1) << 22;
+ x |= (p->vars[insn->src_args[0]].alloc & 0xf) << 16;
+ x |= ((p->vars[insn->src_args[0]].alloc >> 4) & 0x1) << 7;
+ x |= (p->vars[insn->src_args[1]].alloc & 0xf) << 0;
+ x |= ((p->vars[insn->src_args[1]].alloc >> 4) & 0x1) << 5;
orc_arm_emit (p, x);
- ORC_ASM_CODE(p," vshl.i64 %s, %s, #%d\n",
+ ORC_ASM_CODE (p, " vshl.i64 %s, %s, #%d\n",
orc_neon_reg_name (p->tmpreg),
- orc_neon_reg_name (p->tmpreg), 64 - (16<<p->insn_shift));
- code = NEON_BINARY(0xf2a00590, p->tmpreg, 0, p->tmpreg);
- code |= (64 - (16<<p->insn_shift)) << 16;
+ orc_neon_reg_name (p->tmpreg), 64 - (16 << p->insn_shift));
+ code = NEON_BINARY (0xf2a00590, p->tmpreg, 0, p->tmpreg);
+ code |= (64 - (16 << p->insn_shift)) << 16;
orc_arm_emit (p, code);
orc_neon_emit_unary (p, "vpadal.u16", 0xf3b40680,
- p->vars[insn->dest_args[0]].alloc,
- p->tmpreg);
+ p->vars[insn->dest_args[0]].alloc, p->tmpreg);
} else {
x = 0xf3800700;
- ORC_ASM_CODE(p," vabdl.u8 %s, %s, %s\n",
+ ORC_ASM_CODE (p, " vabdl.u8 %s, %s, %s\n",
orc_neon_reg_name_quad (p->tmpreg),
orc_neon_reg_name (p->vars[insn->src_args[0]].alloc),
orc_neon_reg_name (p->vars[insn->src_args[1]].alloc));
- x |= (p->tmpreg&0xf)<<12;
- x |= ((p->tmpreg>>4)&0x1)<<22;
- x |= (p->vars[insn->src_args[0]].alloc&0xf)<<16;
- x |= ((p->vars[insn->src_args[0]].alloc>>4)&0x1)<<7;
- x |= (p->vars[insn->src_args[1]].alloc&0xf)<<0;
- x |= ((p->vars[insn->src_args[1]].alloc>>4)&0x1)<<5;
+ x |= (p->tmpreg & 0xf) << 12;
+ x |= ((p->tmpreg >> 4) & 0x1) << 22;
+ x |= (p->vars[insn->src_args[0]].alloc & 0xf) << 16;
+ x |= ((p->vars[insn->src_args[0]].alloc >> 4) & 0x1) << 7;
+ x |= (p->vars[insn->src_args[1]].alloc & 0xf) << 0;
+ x |= ((p->vars[insn->src_args[1]].alloc >> 4) & 0x1) << 5;
orc_arm_emit (p, x);
orc_neon_emit_unary (p, "vpadal.u16", 0xf3b40680,
- p->vars[insn->dest_args[0]].alloc,
- p->tmpreg);
+ p->vars[insn->dest_args[0]].alloc, p->tmpreg);
}
}
static void
-orc_neon_rule_signw (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_signw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
/* slow */
@@ -2325,30 +2223,26 @@ orc_neon_rule_signw (OrcCompiler *p, void *user, OrcInstruction *insn)
if (p->insn_shift < 3) {
orc_neon_emit_binary (p, "vmin.s16", 0xf2100610,
p->vars[insn->dest_args[0]].alloc,
- p->tmpreg,
- p->vars[insn->src_args[0]].alloc);
+ p->tmpreg, p->vars[insn->src_args[0]].alloc);
} else {
orc_neon_emit_binary_quad (p, "vmin.s16", 0xf2100610,
p->vars[insn->dest_args[0]].alloc,
- p->tmpreg,
- p->vars[insn->src_args[0]].alloc);
+ p->tmpreg, p->vars[insn->src_args[0]].alloc);
}
orc_neon_emit_loadiw (p, p->tmpreg, -1);
if (p->insn_shift < 3) {
orc_neon_emit_binary (p, "vmax.s16", 0xf2100600,
p->vars[insn->dest_args[0]].alloc,
- p->tmpreg,
- p->vars[insn->dest_args[0]].alloc);
+ p->tmpreg, p->vars[insn->dest_args[0]].alloc);
} else {
orc_neon_emit_binary_quad (p, "vmax.s16", 0xf2100600,
p->vars[insn->dest_args[0]].alloc,
- p->tmpreg,
- p->vars[insn->dest_args[0]].alloc);
+ p->tmpreg, p->vars[insn->dest_args[0]].alloc);
}
}
static void
-orc_neon_rule_signb (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_signb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
/* slow */
@@ -2356,30 +2250,26 @@ orc_neon_rule_signb (OrcCompiler *p, void *user, OrcInstruction *insn)
if (p->insn_shift < 4) {
orc_neon_emit_binary (p, "vmin.s8", 0xf2000610,
p->vars[insn->dest_args[0]].alloc,
- p->tmpreg,
- p->vars[insn->src_args[0]].alloc);
+ p->tmpreg, p->vars[insn->src_args[0]].alloc);
} else {
orc_neon_emit_binary_quad (p, "vmin.s8", 0xf2000610,
p->vars[insn->dest_args[0]].alloc,
- p->tmpreg,
- p->vars[insn->src_args[0]].alloc);
+ p->tmpreg, p->vars[insn->src_args[0]].alloc);
}
orc_neon_emit_loadib (p, p->tmpreg, -1);
if (p->insn_shift < 4) {
orc_neon_emit_binary (p, "vmax.s8", 0xf2000600,
p->vars[insn->dest_args[0]].alloc,
- p->tmpreg,
- p->vars[insn->dest_args[0]].alloc);
+ p->tmpreg, p->vars[insn->dest_args[0]].alloc);
} else {
orc_neon_emit_binary_quad (p, "vmax.s8", 0xf2000600,
p->vars[insn->dest_args[0]].alloc,
- p->tmpreg,
- p->vars[insn->dest_args[0]].alloc);
+ p->tmpreg, p->vars[insn->dest_args[0]].alloc);
}
}
static void
-orc_neon_rule_signl (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_signl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
/* slow */
@@ -2387,222 +2277,200 @@ orc_neon_rule_signl (OrcCompiler *p, void *user, OrcInstruction *insn)
if (p->insn_shift < 2) {
orc_neon_emit_binary (p, "vmin.s32", 0xf2200610,
p->vars[insn->dest_args[0]].alloc,
- p->tmpreg,
- p->vars[insn->src_args[0]].alloc);
+ p->tmpreg, p->vars[insn->src_args[0]].alloc);
} else {
orc_neon_emit_binary_quad (p, "vmin.s32", 0xf2200610,
p->vars[insn->dest_args[0]].alloc,
- p->tmpreg,
- p->vars[insn->src_args[0]].alloc);
+ p->tmpreg, p->vars[insn->src_args[0]].alloc);
}
orc_neon_emit_loadil (p, p->tmpreg, -1);
if (p->insn_shift < 2) {
orc_neon_emit_binary (p, "vmax.s32", 0xf2200600,
p->vars[insn->dest_args[0]].alloc,
- p->tmpreg,
- p->vars[insn->dest_args[0]].alloc);
+ p->tmpreg, p->vars[insn->dest_args[0]].alloc);
} else {
orc_neon_emit_binary_quad (p, "vmax.s32", 0xf2200600,
p->vars[insn->dest_args[0]].alloc,
- p->tmpreg,
- p->vars[insn->dest_args[0]].alloc);
+ p->tmpreg, p->vars[insn->dest_args[0]].alloc);
}
}
static void
-orc_neon_rule_mulhub (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_mulhub (OrcCompiler * p, void *user, OrcInstruction * insn)
{
unsigned int code;
- orc_neon_emit_binary_long (p, "vmull.u8",0xf3800c00,
+ orc_neon_emit_binary_long (p, "vmull.u8", 0xf3800c00,
p->tmpreg,
- p->vars[insn->src_args[0]].alloc,
- p->vars[insn->src_args[1]].alloc);
- ORC_ASM_CODE(p," vshrn.i16 %s, %s, #%d\n",
+ p->vars[insn->src_args[0]].alloc, p->vars[insn->src_args[1]].alloc);
+ ORC_ASM_CODE (p, " vshrn.i16 %s, %s, #%d\n",
orc_neon_reg_name (p->vars[insn->dest_args[0]].alloc),
orc_neon_reg_name_quad (p->tmpreg), 8);
code = NEON_BINARY (0xf2880810,
- p->vars[insn->dest_args[0]].alloc,
- p->tmpreg, 0);
+ p->vars[insn->dest_args[0]].alloc, p->tmpreg, 0);
orc_arm_emit (p, code);
if (p->insn_shift == 4) {
- orc_neon_emit_binary_long (p, "vmull.u8",0xf3800c00,
+ orc_neon_emit_binary_long (p, "vmull.u8", 0xf3800c00,
p->tmpreg,
p->vars[insn->src_args[0]].alloc + 1,
p->vars[insn->src_args[1]].alloc + 1);
- ORC_ASM_CODE(p," vshrn.i16 %s, %s, #%d\n",
+ ORC_ASM_CODE (p, " vshrn.i16 %s, %s, #%d\n",
orc_neon_reg_name (p->vars[insn->dest_args[0]].alloc + 1),
orc_neon_reg_name_quad (p->tmpreg), 8);
code = NEON_BINARY (0xf2880810,
- p->vars[insn->dest_args[0]].alloc + 1,
- p->tmpreg, 0);
+ p->vars[insn->dest_args[0]].alloc + 1, p->tmpreg, 0);
orc_arm_emit (p, code);
}
}
static void
-orc_neon_rule_mulhsb (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_mulhsb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
unsigned int code;
- orc_neon_emit_binary_long (p, "vmull.s8",0xf2800c00,
+ orc_neon_emit_binary_long (p, "vmull.s8", 0xf2800c00,
p->tmpreg,
- p->vars[insn->src_args[0]].alloc,
- p->vars[insn->src_args[1]].alloc);
- ORC_ASM_CODE(p," vshrn.i16 %s, %s, #%d\n",
+ p->vars[insn->src_args[0]].alloc, p->vars[insn->src_args[1]].alloc);
+ ORC_ASM_CODE (p, " vshrn.i16 %s, %s, #%d\n",
orc_neon_reg_name (p->vars[insn->dest_args[0]].alloc),
orc_neon_reg_name_quad (p->tmpreg), 8);
code = NEON_BINARY (0xf2880810,
- p->vars[insn->dest_args[0]].alloc,
- p->tmpreg, 0);
+ p->vars[insn->dest_args[0]].alloc, p->tmpreg, 0);
orc_arm_emit (p, code);
if (p->insn_shift == 4) {
- orc_neon_emit_binary_long (p, "vmull.s8",0xf2800c00,
+ orc_neon_emit_binary_long (p, "vmull.s8", 0xf2800c00,
p->tmpreg,
p->vars[insn->src_args[0]].alloc + 1,
p->vars[insn->src_args[1]].alloc + 1);
- ORC_ASM_CODE(p," vshrn.i16 %s, %s, #%d\n",
+ ORC_ASM_CODE (p, " vshrn.i16 %s, %s, #%d\n",
orc_neon_reg_name (p->vars[insn->dest_args[0]].alloc + 1),
orc_neon_reg_name_quad (p->tmpreg), 8);
code = NEON_BINARY (0xf2880810,
- p->vars[insn->dest_args[0]].alloc + 1,
- p->tmpreg, 0);
+ p->vars[insn->dest_args[0]].alloc + 1, p->tmpreg, 0);
orc_arm_emit (p, code);
}
}
static void
-orc_neon_rule_mulhuw (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_mulhuw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
unsigned int code;
- orc_neon_emit_binary_long (p, "vmull.u16",0xf3900c00,
+ orc_neon_emit_binary_long (p, "vmull.u16", 0xf3900c00,
p->tmpreg,
- p->vars[insn->src_args[0]].alloc,
- p->vars[insn->src_args[1]].alloc);
- ORC_ASM_CODE(p," vshrn.i32 %s, %s, #%d\n",
+ p->vars[insn->src_args[0]].alloc, p->vars[insn->src_args[1]].alloc);
+ ORC_ASM_CODE (p, " vshrn.i32 %s, %s, #%d\n",
orc_neon_reg_name (p->vars[insn->dest_args[0]].alloc),
orc_neon_reg_name_quad (p->tmpreg), 16);
code = NEON_BINARY (0xf2900810,
- p->vars[insn->dest_args[0]].alloc,
- p->tmpreg, 0);
+ p->vars[insn->dest_args[0]].alloc, p->tmpreg, 0);
orc_arm_emit (p, code);
if (p->insn_shift == 3) {
- orc_neon_emit_binary_long (p, "vmull.u16",0xf3900c00,
+ orc_neon_emit_binary_long (p, "vmull.u16", 0xf3900c00,
p->tmpreg,
p->vars[insn->src_args[0]].alloc + 1,
p->vars[insn->src_args[1]].alloc + 1);
- ORC_ASM_CODE(p," vshrn.i32 %s, %s, #%d\n",
+ ORC_ASM_CODE (p, " vshrn.i32 %s, %s, #%d\n",
orc_neon_reg_name (p->vars[insn->dest_args[0]].alloc + 1),
orc_neon_reg_name_quad (p->tmpreg), 16);
code = NEON_BINARY (0xf2900810,
- p->vars[insn->dest_args[0]].alloc + 1,
- p->tmpreg, 0);
+ p->vars[insn->dest_args[0]].alloc + 1, p->tmpreg, 0);
orc_arm_emit (p, code);
}
}
static void
-orc_neon_rule_mulhsw (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_mulhsw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
unsigned int code;
- orc_neon_emit_binary_long (p, "vmull.s16",0xf2900c00,
+ orc_neon_emit_binary_long (p, "vmull.s16", 0xf2900c00,
p->tmpreg,
- p->vars[insn->src_args[0]].alloc,
- p->vars[insn->src_args[1]].alloc);
- ORC_ASM_CODE(p," vshrn.i32 %s, %s, #%d\n",
+ p->vars[insn->src_args[0]].alloc, p->vars[insn->src_args[1]].alloc);
+ ORC_ASM_CODE (p, " vshrn.i32 %s, %s, #%d\n",
orc_neon_reg_name (p->vars[insn->dest_args[0]].alloc),
orc_neon_reg_name_quad (p->tmpreg), 16);
code = NEON_BINARY (0xf2900810,
- p->vars[insn->dest_args[0]].alloc,
- p->tmpreg, 0);
+ p->vars[insn->dest_args[0]].alloc, p->tmpreg, 0);
orc_arm_emit (p, code);
if (p->insn_shift == 3) {
- orc_neon_emit_binary_long (p, "vmull.s16",0xf2900c00,
+ orc_neon_emit_binary_long (p, "vmull.s16", 0xf2900c00,
p->tmpreg,
p->vars[insn->src_args[0]].alloc + 1,
p->vars[insn->src_args[1]].alloc + 1);
- ORC_ASM_CODE(p," vshrn.i32 %s, %s, #%d\n",
+ ORC_ASM_CODE (p, " vshrn.i32 %s, %s, #%d\n",
orc_neon_reg_name (p->vars[insn->dest_args[0]].alloc + 1),
orc_neon_reg_name_quad (p->tmpreg), 16);
code = NEON_BINARY (0xf2900810,
- p->vars[insn->dest_args[0]].alloc + 1,
- p->tmpreg, 0);
+ p->vars[insn->dest_args[0]].alloc + 1, p->tmpreg, 0);
orc_arm_emit (p, code);
}
}
static void
-orc_neon_rule_mulhul (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_mulhul (OrcCompiler * p, void *user, OrcInstruction * insn)
{
unsigned int code;
- orc_neon_emit_binary_long (p, "vmull.u32",0xf3a00c00,
+ orc_neon_emit_binary_long (p, "vmull.u32", 0xf3a00c00,
p->tmpreg,
- p->vars[insn->src_args[0]].alloc,
- p->vars[insn->src_args[1]].alloc);
- ORC_ASM_CODE(p," vshrn.i64 %s, %s, #%d\n",
+ p->vars[insn->src_args[0]].alloc, p->vars[insn->src_args[1]].alloc);
+ ORC_ASM_CODE (p, " vshrn.i64 %s, %s, #%d\n",
orc_neon_reg_name (p->vars[insn->dest_args[0]].alloc),
orc_neon_reg_name_quad (p->tmpreg), 32);
code = NEON_BINARY (0xf2a00810,
- p->vars[insn->dest_args[0]].alloc,
- p->tmpreg, 0);
+ p->vars[insn->dest_args[0]].alloc, p->tmpreg, 0);
orc_arm_emit (p, code);
if (p->insn_shift == 2) {
- orc_neon_emit_binary_long (p, "vmull.u32",0xf3a00c00,
+ orc_neon_emit_binary_long (p, "vmull.u32", 0xf3a00c00,
p->tmpreg,
p->vars[insn->src_args[0]].alloc + 1,
p->vars[insn->src_args[1]].alloc + 1);
- ORC_ASM_CODE(p," vshrn.i64 %s, %s, #%d\n",
+ ORC_ASM_CODE (p, " vshrn.i64 %s, %s, #%d\n",
orc_neon_reg_name (p->vars[insn->dest_args[0]].alloc + 1),
orc_neon_reg_name_quad (p->tmpreg), 32);
code = NEON_BINARY (0xf2a00810,
- p->vars[insn->dest_args[0]].alloc + 1,
- p->tmpreg, 0);
+ p->vars[insn->dest_args[0]].alloc + 1, p->tmpreg, 0);
orc_arm_emit (p, code);
}
}
static void
-orc_neon_rule_mulhsl (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_mulhsl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
unsigned int code;
- orc_neon_emit_binary_long (p, "vmull.s32",0xf2a00c00,
+ orc_neon_emit_binary_long (p, "vmull.s32", 0xf2a00c00,
p->tmpreg,
- p->vars[insn->src_args[0]].alloc,
- p->vars[insn->src_args[1]].alloc);
- ORC_ASM_CODE(p," vshrn.i64 %s, %s, #%d\n",
+ p->vars[insn->src_args[0]].alloc, p->vars[insn->src_args[1]].alloc);
+ ORC_ASM_CODE (p, " vshrn.i64 %s, %s, #%d\n",
orc_neon_reg_name (p->vars[insn->dest_args[0]].alloc),
orc_neon_reg_name_quad (p->tmpreg), 32);
code = NEON_BINARY (0xf2a00810,
- p->vars[insn->dest_args[0]].alloc,
- p->tmpreg, 0);
+ p->vars[insn->dest_args[0]].alloc, p->tmpreg, 0);
orc_arm_emit (p, code);
if (p->insn_shift == 2) {
- orc_neon_emit_binary_long (p, "vmull.s32",0xf2a00c00,
+ orc_neon_emit_binary_long (p, "vmull.s32", 0xf2a00c00,
p->tmpreg,
p->vars[insn->src_args[0]].alloc + 1,
p->vars[insn->src_args[1]].alloc + 1);
- ORC_ASM_CODE(p," vshrn.i64 %s, %s, #%d\n",
+ ORC_ASM_CODE (p, " vshrn.i64 %s, %s, #%d\n",
orc_neon_reg_name (p->vars[insn->dest_args[0]].alloc + 1),
orc_neon_reg_name_quad (p->tmpreg), 32);
code = NEON_BINARY (0xf2a00810,
- p->vars[insn->dest_args[0]].alloc + 1,
- p->tmpreg, 0);
+ p->vars[insn->dest_args[0]].alloc + 1, p->tmpreg, 0);
orc_arm_emit (p, code);
}
}
static void
-orc_neon_rule_splitql (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_splitql (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest0 = p->vars[insn->dest_args[0]].alloc;
int dest1 = p->vars[insn->dest_args[1]].alloc;
@@ -2628,7 +2496,7 @@ orc_neon_rule_splitql (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-orc_neon_rule_splitlw (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_splitlw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest0 = p->vars[insn->dest_args[0]].alloc;
int dest1 = p->vars[insn->dest_args[1]].alloc;
@@ -2654,7 +2522,7 @@ orc_neon_rule_splitlw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-orc_neon_rule_splitwb (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_splitwb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest0 = p->vars[insn->dest_args[0]].alloc;
int dest1 = p->vars[insn->dest_args[1]].alloc;
@@ -2680,239 +2548,239 @@ orc_neon_rule_splitwb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-orc_neon_rule_div255w (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_div255w (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
int src = p->vars[insn->src_args[0]].alloc;
int tmp = p->tmpreg;
if (p->insn_shift < 3) {
- ORC_ASM_CODE(p," vrshrn.u16 %s, %s, #%d\n", orc_neon_reg_name(tmp),
- orc_neon_reg_name_quad(src), 8);
+ ORC_ASM_CODE (p, " vrshrn.u16 %s, %s, #%d\n", orc_neon_reg_name (tmp),
+ orc_neon_reg_name_quad (src), 8);
orc_arm_emit (p, NEON_BINARY (0xf2880850, tmp, 0, src));
- orc_neon_emit_unary_long (p, "vmovl.u8",0xf3880a10, tmp, tmp);
+ orc_neon_emit_unary_long (p, "vmovl.u8", 0xf3880a10, tmp, tmp);
orc_neon_emit_binary (p, "vadd.i16", 0xf2100800, tmp, tmp, src);
- ORC_ASM_CODE(p," vrshrn.u16 %s, %s, #%d\n", orc_neon_reg_name(dest),
- orc_neon_reg_name_quad(tmp), 8);
+ ORC_ASM_CODE (p, " vrshrn.u16 %s, %s, #%d\n", orc_neon_reg_name (dest),
+ orc_neon_reg_name_quad (tmp), 8);
orc_arm_emit (p, NEON_BINARY (0xf2880850, dest, 0, tmp));
- orc_neon_emit_unary_long (p, "vmovl.u8",0xf3880a10, dest, dest);
+ orc_neon_emit_unary_long (p, "vmovl.u8", 0xf3880a10, dest, dest);
} else {
- ORC_ASM_CODE(p," vrshrn.u16 %s, %s, #%d\n", orc_neon_reg_name(tmp),
- orc_neon_reg_name_quad(src), 8);
+ ORC_ASM_CODE (p, " vrshrn.u16 %s, %s, #%d\n", orc_neon_reg_name (tmp),
+ orc_neon_reg_name_quad (src), 8);
orc_arm_emit (p, NEON_BINARY (0xf2880850, tmp, 0, src));
- orc_neon_emit_unary_long (p, "vmovl.u8",0xf3880a10, tmp, tmp);
+ orc_neon_emit_unary_long (p, "vmovl.u8", 0xf3880a10, tmp, tmp);
orc_neon_emit_binary_quad (p, "vadd.i16", 0xf2100800, tmp, tmp, src);
- ORC_ASM_CODE(p," vrshrn.u16 %s, %s, #%d\n", orc_neon_reg_name(dest),
- orc_neon_reg_name_quad(tmp), 8);
+ ORC_ASM_CODE (p, " vrshrn.u16 %s, %s, #%d\n", orc_neon_reg_name (dest),
+ orc_neon_reg_name_quad (tmp), 8);
orc_arm_emit (p, NEON_BINARY (0xf2880850, dest, 0, tmp));
- orc_neon_emit_unary_long (p, "vmovl.u8",0xf3880a10, dest, dest);
+ orc_neon_emit_unary_long (p, "vmovl.u8", 0xf3880a10, dest, dest);
}
}
void
-orc_compiler_neon_register_rules (OrcTarget *target)
+orc_compiler_neon_register_rules (OrcTarget * target)
{
OrcRuleSet *rule_set;
- rule_set = orc_rule_set_new (orc_opcode_set_get("sys"), target, 0);
+ rule_set = orc_rule_set_new (orc_opcode_set_get ("sys"), target, 0);
#define REG(x) \
orc_rule_register (rule_set, #x , orc_neon_rule_ ## x, NULL)
- REG(absb);
- REG(addb);
- REG(addssb);
- REG(addusb);
- REG(andb);
+ REG (absb);
+ REG (addb);
+ REG (addssb);
+ REG (addusb);
+ REG (andb);
//REG(andnb);
- REG(avgsb);
- REG(avgub);
- REG(cmpeqb);
- REG(cmpgtsb);
- REG(copyb);
- REG(maxsb);
- REG(maxub);
- REG(minsb);
- REG(minub);
- REG(mullb);
- REG(mulhsb);
- REG(mulhub);
- REG(orb);
+ REG (avgsb);
+ REG (avgub);
+ REG (cmpeqb);
+ REG (cmpgtsb);
+ REG (copyb);
+ REG (maxsb);
+ REG (maxub);
+ REG (minsb);
+ REG (minub);
+ REG (mullb);
+ REG (mulhsb);
+ REG (mulhub);
+ REG (orb);
//REG(shlb);
//REG(shrsb);
//REG(shrub);
- REG(signb);
- REG(subb);
- REG(subssb);
- REG(subusb);
- REG(xorb);
-
- REG(absw);
- REG(addw);
- REG(addssw);
- REG(addusw);
- REG(andw);
+ REG (signb);
+ REG (subb);
+ REG (subssb);
+ REG (subusb);
+ REG (xorb);
+
+ REG (absw);
+ REG (addw);
+ REG (addssw);
+ REG (addusw);
+ REG (andw);
//REG(andnw);
- REG(avgsw);
- REG(avguw);
- REG(cmpeqw);
- REG(cmpgtsw);
- REG(copyw);
- REG(maxsw);
- REG(maxuw);
- REG(minsw);
- REG(minuw);
- REG(mullw);
- REG(mulhsw);
- REG(mulhuw);
- REG(orw);
+ REG (avgsw);
+ REG (avguw);
+ REG (cmpeqw);
+ REG (cmpgtsw);
+ REG (copyw);
+ REG (maxsw);
+ REG (maxuw);
+ REG (minsw);
+ REG (minuw);
+ REG (mullw);
+ REG (mulhsw);
+ REG (mulhuw);
+ REG (orw);
//REG(shlw);
//REG(shrsw);
//REG(shruw);
- REG(signw);
- REG(subw);
- REG(subssw);
- REG(subusw);
- REG(xorw);
-
- REG(absl);
- REG(addl);
- REG(addssl);
- REG(addusl);
- REG(andl);
+ REG (signw);
+ REG (subw);
+ REG (subssw);
+ REG (subusw);
+ REG (xorw);
+
+ REG (absl);
+ REG (addl);
+ REG (addssl);
+ REG (addusl);
+ REG (andl);
//REG(andnl);
- REG(avgsl);
- REG(avgul);
- REG(cmpeql);
- REG(cmpgtsl);
- REG(copyl);
- REG(maxsl);
- REG(maxul);
- REG(minsl);
- REG(minul);
- REG(mulll);
- REG(mulhsl);
- REG(mulhul);
- REG(orl);
+ REG (avgsl);
+ REG (avgul);
+ REG (cmpeql);
+ REG (cmpgtsl);
+ REG (copyl);
+ REG (maxsl);
+ REG (maxul);
+ REG (minsl);
+ REG (minul);
+ REG (mulll);
+ REG (mulhsl);
+ REG (mulhul);
+ REG (orl);
//REG(shll);
//REG(shrsl);
//REG(shrul);
- REG(signl);
- REG(subl);
- REG(subssl);
- REG(subusl);
- REG(xorl);
-
- REG(addq);
- REG(andq);
- REG(orq);
- REG(copyq);
- REG(subq);
- REG(xorq);
-
- REG(convsbw);
- REG(convubw);
- REG(convswl);
- REG(convuwl);
- REG(convslq);
- REG(convulq);
- REG(convlw);
- REG(convql);
- REG(convssslw);
- REG(convsuslw);
- REG(convuuslw);
- REG(convsssql);
- REG(convsusql);
- REG(convuusql);
- REG(convwb);
- REG(convhwb);
- REG(convhlw);
- REG(convssswb);
- REG(convsuswb);
- REG(convuuswb);
-
- REG(mulsbw);
- REG(mulubw);
- REG(mulswl);
- REG(muluwl);
-
- REG(accw);
- REG(accl);
- REG(accsadubl);
- REG(swapw);
- REG(swapl);
- REG(swapq);
- REG(swapwl);
- REG(swaplq);
- REG(select0wb);
- REG(select1wb);
- REG(select0lw);
- REG(select1lw);
- REG(select0ql);
- if (0) REG(select1ql);
- REG(mergebw);
- REG(mergewl);
- REG(mergelq);
- REG(splitql);
- REG(splitlw);
- REG(splitwb);
-
- REG(addf);
- REG(subf);
- REG(mulf);
- REG(divf);
- REG(sqrtf);
- REG(maxf);
- REG(minf);
- REG(cmpeqf);
+ REG (signl);
+ REG (subl);
+ REG (subssl);
+ REG (subusl);
+ REG (xorl);
+
+ REG (addq);
+ REG (andq);
+ REG (orq);
+ REG (copyq);
+ REG (subq);
+ REG (xorq);
+
+ REG (convsbw);
+ REG (convubw);
+ REG (convswl);
+ REG (convuwl);
+ REG (convslq);
+ REG (convulq);
+ REG (convlw);
+ REG (convql);
+ REG (convssslw);
+ REG (convsuslw);
+ REG (convuuslw);
+ REG (convsssql);
+ REG (convsusql);
+ REG (convuusql);
+ REG (convwb);
+ REG (convhwb);
+ REG (convhlw);
+ REG (convssswb);
+ REG (convsuswb);
+ REG (convuuswb);
+
+ REG (mulsbw);
+ REG (mulubw);
+ REG (mulswl);
+ REG (muluwl);
+
+ REG (accw);
+ REG (accl);
+ REG (accsadubl);
+ REG (swapw);
+ REG (swapl);
+ REG (swapq);
+ REG (swapwl);
+ REG (swaplq);
+ REG (select0wb);
+ REG (select1wb);
+ REG (select0lw);
+ REG (select1lw);
+ REG (select0ql);
+ if (0)
+ REG (select1ql);
+ REG (mergebw);
+ REG (mergewl);
+ REG (mergelq);
+ REG (splitql);
+ REG (splitlw);
+ REG (splitwb);
+
+ REG (addf);
+ REG (subf);
+ REG (mulf);
+ REG (divf);
+ REG (sqrtf);
+ REG (maxf);
+ REG (minf);
+ REG (cmpeqf);
//REG(cmpltf);
//REG(cmplef);
- REG(convfl);
- REG(convlf);
-
- REG(addd);
- REG(subd);
- REG(muld);
- REG(divd);
- REG(sqrtd);
+ REG (convfl);
+ REG (convlf);
+
+ REG (addd);
+ REG (subd);
+ REG (muld);
+ REG (divd);
+ REG (sqrtd);
//REG(cmpeqd);
- REG(convdf);
- REG(convfd);
-
- REG(splatbw);
- REG(splatbl);
- REG(splatw3q);
- REG(div255w);
-
- orc_rule_register (rule_set, "loadpb", neon_rule_loadpX, (void *)1);
- orc_rule_register (rule_set, "loadpw", neon_rule_loadpX, (void *)2);
- orc_rule_register (rule_set, "loadpl", neon_rule_loadpX, (void *)4);
- orc_rule_register (rule_set, "loadpq", neon_rule_loadpX, (void *)8);
- orc_rule_register (rule_set, "loadb", neon_rule_loadX, (void *)0);
- orc_rule_register (rule_set, "loadw", neon_rule_loadX, (void *)0);
- orc_rule_register (rule_set, "loadl", neon_rule_loadX, (void *)0);
- orc_rule_register (rule_set, "loadq", neon_rule_loadX, (void *)0);
- orc_rule_register (rule_set, "loadoffb", neon_rule_loadX, (void *)1);
- orc_rule_register (rule_set, "loadoffw", neon_rule_loadX, (void *)1);
- orc_rule_register (rule_set, "loadoffl", neon_rule_loadX, (void *)1);
- orc_rule_register (rule_set, "storeb", neon_rule_storeX, (void *)0);
- orc_rule_register (rule_set, "storew", neon_rule_storeX, (void *)0);
- orc_rule_register (rule_set, "storel", neon_rule_storeX, (void *)0);
- orc_rule_register (rule_set, "storeq", neon_rule_storeX, (void *)0);
-
- orc_rule_register (rule_set, "shlb", orc_neon_rule_shift, (void *)0);
- orc_rule_register (rule_set, "shrsb", orc_neon_rule_shift, (void *)1);
- orc_rule_register (rule_set, "shrub", orc_neon_rule_shift, (void *)2);
- orc_rule_register (rule_set, "shlw", orc_neon_rule_shift, (void *)3);
- orc_rule_register (rule_set, "shrsw", orc_neon_rule_shift, (void *)4);
- orc_rule_register (rule_set, "shruw", orc_neon_rule_shift, (void *)5);
- orc_rule_register (rule_set, "shll", orc_neon_rule_shift, (void *)6);
- orc_rule_register (rule_set, "shrsl", orc_neon_rule_shift, (void *)7);
- orc_rule_register (rule_set, "shrul", orc_neon_rule_shift, (void *)8);
-
- orc_rule_register (rule_set, "andnb", orc_neon_rule_andn, (void *)3);
- orc_rule_register (rule_set, "andnw", orc_neon_rule_andn, (void *)2);
- orc_rule_register (rule_set, "andnl", orc_neon_rule_andn, (void *)1);
- orc_rule_register (rule_set, "andnq", orc_neon_rule_andn, (void *)0);
+ REG (convdf);
+ REG (convfd);
+
+ REG (splatbw);
+ REG (splatbl);
+ REG (splatw3q);
+ REG (div255w);
+
+ orc_rule_register (rule_set, "loadpb", neon_rule_loadpX, (void *) 1);
+ orc_rule_register (rule_set, "loadpw", neon_rule_loadpX, (void *) 2);
+ orc_rule_register (rule_set, "loadpl", neon_rule_loadpX, (void *) 4);
+ orc_rule_register (rule_set, "loadpq", neon_rule_loadpX, (void *) 8);
+ orc_rule_register (rule_set, "loadb", neon_rule_loadX, (void *) 0);
+ orc_rule_register (rule_set, "loadw", neon_rule_loadX, (void *) 0);
+ orc_rule_register (rule_set, "loadl", neon_rule_loadX, (void *) 0);
+ orc_rule_register (rule_set, "loadq", neon_rule_loadX, (void *) 0);
+ orc_rule_register (rule_set, "loadoffb", neon_rule_loadX, (void *) 1);
+ orc_rule_register (rule_set, "loadoffw", neon_rule_loadX, (void *) 1);
+ orc_rule_register (rule_set, "loadoffl", neon_rule_loadX, (void *) 1);
+ orc_rule_register (rule_set, "storeb", neon_rule_storeX, (void *) 0);
+ orc_rule_register (rule_set, "storew", neon_rule_storeX, (void *) 0);
+ orc_rule_register (rule_set, "storel", neon_rule_storeX, (void *) 0);
+ orc_rule_register (rule_set, "storeq", neon_rule_storeX, (void *) 0);
+
+ orc_rule_register (rule_set, "shlb", orc_neon_rule_shift, (void *) 0);
+ orc_rule_register (rule_set, "shrsb", orc_neon_rule_shift, (void *) 1);
+ orc_rule_register (rule_set, "shrub", orc_neon_rule_shift, (void *) 2);
+ orc_rule_register (rule_set, "shlw", orc_neon_rule_shift, (void *) 3);
+ orc_rule_register (rule_set, "shrsw", orc_neon_rule_shift, (void *) 4);
+ orc_rule_register (rule_set, "shruw", orc_neon_rule_shift, (void *) 5);
+ orc_rule_register (rule_set, "shll", orc_neon_rule_shift, (void *) 6);
+ orc_rule_register (rule_set, "shrsl", orc_neon_rule_shift, (void *) 7);
+ orc_rule_register (rule_set, "shrul", orc_neon_rule_shift, (void *) 8);
+
+ orc_rule_register (rule_set, "andnb", orc_neon_rule_andn, (void *) 3);
+ orc_rule_register (rule_set, "andnw", orc_neon_rule_andn, (void *) 2);
+ orc_rule_register (rule_set, "andnl", orc_neon_rule_andn, (void *) 1);
+ orc_rule_register (rule_set, "andnq", orc_neon_rule_andn, (void *) 0);
}
-
diff --git a/orc/orcrules-sse.c b/orc/orcrules-sse.c
index 260a4f9..85dea56 100644
--- a/orc/orcrules-sse.c
+++ b/orc/orcrules-sse.c
@@ -17,43 +17,43 @@
/* sse rules */
static void
-sse_rule_loadpX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
+sse_rule_loadpX (OrcCompiler * compiler, void *user, OrcInstruction * insn)
{
OrcVariable *src = compiler->vars + insn->src_args[0];
OrcVariable *dest = compiler->vars + insn->dest_args[0];
int reg;
- int size = ORC_PTR_TO_INT(user);
+ int size = ORC_PTR_TO_INT (user);
if (src->vartype == ORC_VAR_TYPE_PARAM) {
reg = dest->alloc;
if (size == 8 && src->size == 8) {
orc_x86_emit_mov_memoffset_sse (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[insn->src_args[0]]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[insn->src_args[0]]),
compiler->exec_reg, reg, FALSE);
#ifndef MMX
orc_sse_emit_movhps_load_memoffset (compiler,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,
- params[insn->src_args[0] + (ORC_VAR_T1 - ORC_VAR_P1)]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor,
+ params[insn->src_args[0] + (ORC_VAR_T1 - ORC_VAR_P1)]),
compiler->exec_reg, reg);
- orc_sse_emit_pshufd (compiler, ORC_SSE_SHUF(2,0,2,0), reg, reg);
+ orc_sse_emit_pshufd (compiler, ORC_SSE_SHUF (2, 0, 2, 0), reg, reg);
#else
/* FIXME yes, I understand this is terrible */
orc_sse_emit_pinsrw_memoffset (compiler, 2,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,
- params[insn->src_args[0] + (ORC_VAR_T1 - ORC_VAR_P1)]) + 0,
+ (int) ORC_STRUCT_OFFSET (OrcExecutor,
+ params[insn->src_args[0] + (ORC_VAR_T1 - ORC_VAR_P1)]) + 0,
compiler->exec_reg, reg);
orc_sse_emit_pinsrw_memoffset (compiler, 3,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,
- params[insn->src_args[0] + (ORC_VAR_T1 - ORC_VAR_P1)]) + 2,
+ (int) ORC_STRUCT_OFFSET (OrcExecutor,
+ params[insn->src_args[0] + (ORC_VAR_T1 - ORC_VAR_P1)]) + 2,
compiler->exec_reg, reg);
#ifndef MMX
- orc_sse_emit_pshufd (compiler, ORC_SSE_SHUF(1,0,1,0), reg, reg);
+ orc_sse_emit_pshufd (compiler, ORC_SSE_SHUF (1, 0, 1, 0), reg, reg);
#endif
#endif
} else {
orc_x86_emit_mov_memoffset_sse (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[insn->src_args[0]]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[insn->src_args[0]]),
compiler->exec_reg, reg, FALSE);
if (size < 8) {
if (size == 1) {
@@ -66,26 +66,26 @@ sse_rule_loadpX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
orc_sse_emit_pshufd (compiler, 0, reg, reg);
#else
if (size <= 2) {
- orc_mmx_emit_pshufw (compiler, ORC_MMX_SHUF(0,0,0,0), reg, reg);
+ orc_mmx_emit_pshufw (compiler, ORC_MMX_SHUF (0, 0, 0, 0), reg, reg);
} else {
- orc_mmx_emit_pshufw (compiler, ORC_MMX_SHUF(1,0,1,0), reg, reg);
+ orc_mmx_emit_pshufw (compiler, ORC_MMX_SHUF (1, 0, 1, 0), reg, reg);
}
#endif
} else {
#ifndef MMX
- orc_sse_emit_pshufd (compiler, ORC_SSE_SHUF(1,0,1,0), reg, reg);
+ orc_sse_emit_pshufd (compiler, ORC_SSE_SHUF (1, 0, 1, 0), reg, reg);
#endif
}
}
} else if (src->vartype == ORC_VAR_TYPE_CONST) {
orc_sse_load_constant (compiler, dest->alloc, size, src->value.i);
} else {
- ORC_ASSERT(0);
+ ORC_ASSERT (0);
}
}
static void
-sse_rule_loadX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
+sse_rule_loadX (OrcCompiler * compiler, void *user, OrcInstruction * insn)
{
OrcVariable *src = compiler->vars + insn->src_args[0];
OrcVariable *dest = compiler->vars + insn->dest_args[0];
@@ -96,17 +96,18 @@ sse_rule_loadX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
if (src->ptr_register == 0) {
int i = insn->src_args[0];
orc_x86_emit_mov_memoffset_reg (compiler, compiler->is_64bit ? 8 : 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, arrays[i]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, arrays[i]),
compiler->exec_reg, compiler->gp_tmpreg);
ptr_reg = compiler->gp_tmpreg;
} else {
ptr_reg = src->ptr_register;
- }
+ }
switch (src->size << compiler->loop_shift) {
case 1:
orc_x86_emit_mov_memoffset_reg (compiler, 1, offset, ptr_reg,
compiler->gp_tmpreg);
- orc_sse_emit_movd_load_register (compiler, compiler->gp_tmpreg, dest->alloc);
+ orc_sse_emit_movd_load_register (compiler, compiler->gp_tmpreg,
+ dest->alloc);
break;
case 2:
orc_sse_emit_pxor (compiler, dest->alloc, dest->alloc);
@@ -134,7 +135,7 @@ sse_rule_loadX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
}
static void
-sse_rule_loadoffX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
+sse_rule_loadoffX (OrcCompiler * compiler, void *user, OrcInstruction * insn)
{
OrcVariable *src = compiler->vars + insn->src_args[0];
OrcVariable *dest = compiler->vars + insn->dest_args[0];
@@ -142,27 +143,29 @@ sse_rule_loadoffX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
int offset = 0;
if (compiler->vars[insn->src_args[1]].vartype != ORC_VAR_TYPE_CONST) {
- orc_compiler_error (compiler, "code generation rule for %s only works with constant offset",
+ orc_compiler_error (compiler,
+ "code generation rule for %s only works with constant offset",
insn->opcode->name);
return;
}
offset = (compiler->offset + compiler->vars[insn->src_args[1]].value.i) *
- src->size;
+ src->size;
if (src->ptr_register == 0) {
int i = insn->src_args[0];
orc_x86_emit_mov_memoffset_reg (compiler, compiler->is_64bit ? 8 : 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, arrays[i]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, arrays[i]),
compiler->exec_reg, compiler->gp_tmpreg);
ptr_reg = compiler->gp_tmpreg;
} else {
ptr_reg = src->ptr_register;
- }
+ }
switch (src->size << compiler->loop_shift) {
case 1:
orc_x86_emit_mov_memoffset_reg (compiler, 1, offset, ptr_reg,
compiler->gp_tmpreg);
- orc_sse_emit_movd_load_register (compiler, compiler->gp_tmpreg, dest->alloc);
+ orc_sse_emit_movd_load_register (compiler, compiler->gp_tmpreg,
+ dest->alloc);
break;
case 2:
orc_sse_emit_pxor (compiler, dest->alloc, dest->alloc);
@@ -181,7 +184,7 @@ sse_rule_loadoffX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
dest->alloc, src->is_aligned);
break;
default:
- orc_compiler_error (compiler,"bad load size %d",
+ orc_compiler_error (compiler, "bad load size %d",
src->size << compiler->loop_shift);
break;
}
@@ -190,7 +193,7 @@ sse_rule_loadoffX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
}
static void
-sse_rule_loadupib (OrcCompiler *compiler, void *user, OrcInstruction *insn)
+sse_rule_loadupib (OrcCompiler * compiler, void *user, OrcInstruction * insn)
{
OrcVariable *src = compiler->vars + insn->src_args[0];
OrcVariable *dest = compiler->vars + insn->dest_args[0];
@@ -202,12 +205,12 @@ sse_rule_loadupib (OrcCompiler *compiler, void *user, OrcInstruction *insn)
if (src->ptr_register == 0) {
int i = insn->src_args[0];
orc_x86_emit_mov_memoffset_reg (compiler, compiler->is_64bit ? 8 : 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, arrays[i]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, arrays[i]),
compiler->exec_reg, compiler->gp_tmpreg);
ptr_reg = compiler->gp_tmpreg;
} else {
ptr_reg = src->ptr_register;
- }
+ }
switch (src->size << compiler->loop_shift) {
case 1:
case 2:
@@ -238,7 +241,7 @@ sse_rule_loadupib (OrcCompiler *compiler, void *user, OrcInstruction *insn)
tmp, FALSE);
break;
default:
- orc_compiler_error(compiler,"bad load size %d",
+ orc_compiler_error (compiler, "bad load size %d",
src->size << compiler->loop_shift);
break;
}
@@ -250,7 +253,7 @@ sse_rule_loadupib (OrcCompiler *compiler, void *user, OrcInstruction *insn)
}
static void
-sse_rule_loadupdb (OrcCompiler *compiler, void *user, OrcInstruction *insn)
+sse_rule_loadupdb (OrcCompiler * compiler, void *user, OrcInstruction * insn)
{
OrcVariable *src = compiler->vars + insn->src_args[0];
OrcVariable *dest = compiler->vars + insn->dest_args[0];
@@ -261,18 +264,19 @@ sse_rule_loadupdb (OrcCompiler *compiler, void *user, OrcInstruction *insn)
if (src->ptr_register == 0) {
int i = insn->src_args[0];
orc_x86_emit_mov_memoffset_reg (compiler, compiler->is_64bit ? 8 : 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, arrays[i]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, arrays[i]),
compiler->exec_reg, compiler->gp_tmpreg);
ptr_reg = compiler->gp_tmpreg;
} else {
ptr_reg = src->ptr_register;
- }
+ }
switch (src->size << compiler->loop_shift) {
case 1:
case 2:
orc_x86_emit_mov_memoffset_reg (compiler, 1, offset, ptr_reg,
compiler->gp_tmpreg);
- orc_sse_emit_movd_load_register (compiler, compiler->gp_tmpreg, dest->alloc);
+ orc_sse_emit_movd_load_register (compiler, compiler->gp_tmpreg,
+ dest->alloc);
break;
case 4:
orc_sse_emit_pinsrw_memoffset (compiler, 0, offset, ptr_reg, dest->alloc);
@@ -290,7 +294,7 @@ sse_rule_loadupdb (OrcCompiler *compiler, void *user, OrcInstruction *insn)
dest->alloc, src->is_aligned);
break;
default:
- orc_compiler_error(compiler,"bad load size %d",
+ orc_compiler_error (compiler, "bad load size %d",
src->size << compiler->loop_shift);
break;
}
@@ -310,7 +314,7 @@ sse_rule_loadupdb (OrcCompiler *compiler, void *user, OrcInstruction *insn)
}
static void
-sse_rule_storeX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
+sse_rule_storeX (OrcCompiler * compiler, void *user, OrcInstruction * insn)
{
OrcVariable *src = compiler->vars + insn->src_args[0];
OrcVariable *dest = compiler->vars + insn->dest_args[0];
@@ -321,10 +325,10 @@ sse_rule_storeX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
if (dest->ptr_register == 0) {
orc_x86_emit_mov_memoffset_reg (compiler, compiler->is_64bit ? 8 : 4,
dest->ptr_offset, compiler->exec_reg, compiler->gp_tmpreg);
- ptr_reg = compiler->gp_tmpreg;
+ ptr_reg = compiler->gp_tmpreg;
} else {
ptr_reg = dest->ptr_register;
- }
+ }
switch (dest->size << compiler->loop_shift) {
case 1:
/* FIXME we might be using ecx twice here */
@@ -332,9 +336,10 @@ sse_rule_storeX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
orc_compiler_error (compiler, "unimplemented corner case in %s",
insn->opcode->name);
}
- orc_sse_emit_movd_store_register (compiler, src->alloc, compiler->gp_tmpreg);
- orc_x86_emit_mov_reg_memoffset (compiler, 1, compiler->gp_tmpreg,
- offset, ptr_reg);
+ orc_sse_emit_movd_store_register (compiler, src->alloc,
+ compiler->gp_tmpreg);
+ orc_x86_emit_mov_reg_memoffset (compiler, 1, compiler->gp_tmpreg, offset,
+ ptr_reg);
break;
case 2:
if (compiler->target_flags & ORC_TARGET_SSE_SSE4_1) {
@@ -343,10 +348,11 @@ sse_rule_storeX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
} else {
/* FIXME we might be using ecx twice here */
if (ptr_reg == compiler->gp_tmpreg) {
- orc_compiler_error(compiler, "unimplemented corner case in %s",
+ orc_compiler_error (compiler, "unimplemented corner case in %s",
insn->opcode->name);
- }
- orc_sse_emit_movd_store_register (compiler, src->alloc, compiler->gp_tmpreg);
+ }
+ orc_sse_emit_movd_store_register (compiler, src->alloc,
+ compiler->gp_tmpreg);
orc_x86_emit_mov_reg_memoffset (compiler, 2, compiler->gp_tmpreg,
offset, ptr_reg);
}
@@ -373,7 +379,7 @@ sse_rule_storeX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
#if try1
static void
-sse_rule_ldresnearl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
+sse_rule_ldresnearl (OrcCompiler * compiler, void *user, OrcInstruction * insn)
{
OrcVariable *src = compiler->vars + insn->src_args[0];
OrcVariable *dest = compiler->vars + insn->dest_args[0];
@@ -408,7 +414,7 @@ sse_rule_ldresnearl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
orc_sse_emit_paddb (compiler, tmp, tmp);
#endif
- orc_sse_emit_pshufd (compiler, ORC_SSE_SHUF(0,0,0,0), tmp, tmp2);
+ orc_sse_emit_pshufd (compiler, ORC_SSE_SHUF (0, 0, 0, 0), tmp, tmp2);
orc_sse_emit_psubd (compiler, tmp2, tmp);
tmpc = orc_compiler_get_constant (compiler, 4, 0x03020100);
orc_sse_emit_paddd (compiler, tmpc, tmp);
@@ -425,7 +431,7 @@ sse_rule_ldresnearl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
#endif
static void
-sse_rule_ldresnearl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
+sse_rule_ldresnearl (OrcCompiler * compiler, void *user, OrcInstruction * insn)
{
OrcVariable *src = compiler->vars + insn->src_args[0];
int increment_var = insn->src_args[2];
@@ -433,7 +439,7 @@ sse_rule_ldresnearl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
int tmp = orc_compiler_get_temp_reg (compiler);
int i;
- for(i=0;i<(1<<compiler->loop_shift);i++){
+ for (i = 0; i < (1 << compiler->loop_shift); i++) {
if (i == 0) {
orc_x86_emit_mov_memoffset_sse (compiler, 4, 0,
src->ptr_register, dest->alloc, FALSE);
@@ -442,31 +448,30 @@ sse_rule_ldresnearl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
src->ptr_register, compiler->gp_tmpreg, 2, tmp, FALSE);
#ifdef MMX
//orc_mmx_emit_punpckldq (compiler, tmp, dest->alloc);
- orc_sse_emit_psllq_imm (compiler, 8*4*i, tmp);
+ orc_sse_emit_psllq_imm (compiler, 8 * 4 * i, tmp);
orc_sse_emit_por (compiler, tmp, dest->alloc);
#else
- orc_sse_emit_pslldq_imm (compiler, 4*i, tmp);
+ orc_sse_emit_pslldq_imm (compiler, 4 * i, tmp);
orc_sse_emit_por (compiler, tmp, dest->alloc);
#endif
}
if (compiler->vars[increment_var].vartype == ORC_VAR_TYPE_PARAM) {
orc_x86_emit_add_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[increment_var]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[increment_var]),
compiler->exec_reg, src->ptr_offset);
} else {
orc_x86_emit_add_imm_reg (compiler, 4,
- compiler->vars[increment_var].value.i,
- src->ptr_offset, FALSE);
+ compiler->vars[increment_var].value.i, src->ptr_offset, FALSE);
}
- orc_x86_emit_mov_reg_reg (compiler, 4, src->ptr_offset, compiler->gp_tmpreg);
+ orc_x86_emit_mov_reg_reg (compiler, 4, src->ptr_offset,
+ compiler->gp_tmpreg);
orc_x86_emit_sar_imm_reg (compiler, 4, 16, compiler->gp_tmpreg);
}
orc_x86_emit_add_reg_reg_shift (compiler, compiler->is_64bit ? 8 : 4,
- compiler->gp_tmpreg,
- src->ptr_register, 2);
+ compiler->gp_tmpreg, src->ptr_register, 2);
orc_x86_emit_and_imm_reg (compiler, 4, 0xffff, src->ptr_offset);
src->update_type = 0;
@@ -474,7 +479,7 @@ sse_rule_ldresnearl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
#ifndef MMX
static void
-sse_rule_ldreslinl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
+sse_rule_ldreslinl (OrcCompiler * compiler, void *user, OrcInstruction * insn)
{
OrcVariable *src = compiler->vars + insn->src_args[0];
int increment_var = insn->src_args[2];
@@ -490,11 +495,11 @@ sse_rule_ldreslinl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
orc_sse_emit_pxor (compiler, tmp2, tmp2);
orc_sse_emit_punpcklbw (compiler, tmp2, tmp);
- orc_sse_emit_pshufd (compiler, ORC_SSE_SHUF(3,2,3,2), tmp, tmp2);
+ orc_sse_emit_pshufd (compiler, ORC_SSE_SHUF (3, 2, 3, 2), tmp, tmp2);
orc_sse_emit_psubw (compiler, tmp, tmp2);
orc_sse_emit_movd_load_register (compiler, src->ptr_offset, tmp);
- orc_sse_emit_pshuflw (compiler, ORC_SSE_SHUF(0,0,0,0), tmp, tmp);
+ orc_sse_emit_pshuflw (compiler, ORC_SSE_SHUF (0, 0, 0, 0), tmp, tmp);
orc_sse_emit_psrlw_imm (compiler, 8, tmp);
orc_sse_emit_pmullw (compiler, tmp2, tmp);
orc_sse_emit_psraw_imm (compiler, 8, tmp);
@@ -507,15 +512,15 @@ sse_rule_ldreslinl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
if (compiler->vars[increment_var].vartype == ORC_VAR_TYPE_PARAM) {
orc_x86_emit_add_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[increment_var]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[increment_var]),
compiler->exec_reg, src->ptr_offset);
} else {
orc_x86_emit_add_imm_reg (compiler, regsize,
- compiler->vars[increment_var].value.i,
- src->ptr_offset, FALSE);
+ compiler->vars[increment_var].value.i, src->ptr_offset, FALSE);
}
- orc_x86_emit_mov_reg_reg (compiler, 4, src->ptr_offset, compiler->gp_tmpreg);
+ orc_x86_emit_mov_reg_reg (compiler, 4, src->ptr_offset,
+ compiler->gp_tmpreg);
orc_x86_emit_sar_imm_reg (compiler, 4, 16, compiler->gp_tmpreg);
orc_x86_emit_add_reg_reg_shift (compiler, regsize, compiler->gp_tmpreg,
@@ -525,21 +530,21 @@ sse_rule_ldreslinl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
int tmp3 = orc_compiler_get_temp_reg (compiler);
int tmp4 = orc_compiler_get_temp_reg (compiler);
- for(i=0;i<(1<<compiler->loop_shift);i+=2){
+ for (i = 0; i < (1 << compiler->loop_shift); i += 2) {
orc_x86_emit_mov_memoffset_sse (compiler, 8, 0,
src->ptr_register, tmp, FALSE);
orc_sse_emit_movd_load_register (compiler, src->ptr_offset, tmp4);
if (compiler->vars[increment_var].vartype == ORC_VAR_TYPE_PARAM) {
orc_x86_emit_add_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[increment_var]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[increment_var]),
compiler->exec_reg, src->ptr_offset);
} else {
orc_x86_emit_add_imm_reg (compiler, 4,
- compiler->vars[increment_var].value.i,
- src->ptr_offset, FALSE);
+ compiler->vars[increment_var].value.i, src->ptr_offset, FALSE);
}
- orc_x86_emit_mov_reg_reg (compiler, 4, src->ptr_offset, compiler->gp_tmpreg);
+ orc_x86_emit_mov_reg_reg (compiler, 4, src->ptr_offset,
+ compiler->gp_tmpreg);
orc_x86_emit_sar_imm_reg (compiler, 4, 16, compiler->gp_tmpreg);
orc_x86_emit_mov_memindex_sse (compiler, 8, 0,
@@ -565,8 +570,8 @@ sse_rule_ldreslinl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
orc_sse_emit_punpcklwd (compiler, tmp4, tmp4);
orc_sse_emit_punpckldq (compiler, tmp4, tmp4);
#else
- orc_sse_emit_pshuflw (compiler, ORC_SSE_SHUF(1,1,0,0), tmp4, tmp4);
- orc_sse_emit_pshufd (compiler, ORC_SSE_SHUF(1,1,0,0), tmp4, tmp4);
+ orc_sse_emit_pshuflw (compiler, ORC_SSE_SHUF (1, 1, 0, 0), tmp4, tmp4);
+ orc_sse_emit_pshufd (compiler, ORC_SSE_SHUF (1, 1, 0, 0), tmp4, tmp4);
#endif
orc_sse_emit_psrlw_imm (compiler, 8, tmp4);
orc_sse_emit_pmullw (compiler, tmp4, tmp2);
@@ -581,15 +586,15 @@ sse_rule_ldreslinl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
if (compiler->vars[increment_var].vartype == ORC_VAR_TYPE_PARAM) {
orc_x86_emit_add_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[increment_var]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[increment_var]),
compiler->exec_reg, src->ptr_offset);
} else {
orc_x86_emit_add_imm_reg (compiler, 4,
- compiler->vars[increment_var].value.i,
- src->ptr_offset, FALSE);
+ compiler->vars[increment_var].value.i, src->ptr_offset, FALSE);
}
- orc_x86_emit_mov_reg_reg (compiler, 4, src->ptr_offset, compiler->gp_tmpreg);
+ orc_x86_emit_mov_reg_reg (compiler, 4, src->ptr_offset,
+ compiler->gp_tmpreg);
orc_x86_emit_sar_imm_reg (compiler, 4, 16, compiler->gp_tmpreg);
orc_x86_emit_add_reg_reg_shift (compiler, 8, compiler->gp_tmpreg,
@@ -602,7 +607,7 @@ sse_rule_ldreslinl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
}
#else
static void
-mmx_rule_ldreslinl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
+mmx_rule_ldreslinl (OrcCompiler * compiler, void *user, OrcInstruction * insn)
{
OrcVariable *src = compiler->vars + insn->src_args[0];
int increment_var = insn->src_args[2];
@@ -614,7 +619,7 @@ mmx_rule_ldreslinl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
int i;
zero = orc_compiler_get_constant (compiler, 1, 0);
- for(i=0;i<(1<<compiler->loop_shift);i++){
+ for (i = 0; i < (1 << compiler->loop_shift); i++) {
orc_x86_emit_mov_memoffset_mmx (compiler, 4, 0,
src->ptr_register, tmp, FALSE);
orc_x86_emit_mov_memoffset_mmx (compiler, 4, 4,
@@ -625,7 +630,7 @@ mmx_rule_ldreslinl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
orc_mmx_emit_psubw (compiler, tmp, tmp2);
orc_sse_emit_movd_load_register (compiler, src->ptr_offset, tmp);
- orc_mmx_emit_pshufw (compiler, ORC_MMX_SHUF(0,0,0,0), tmp, tmp);
+ orc_mmx_emit_pshufw (compiler, ORC_MMX_SHUF (0, 0, 0, 0), tmp, tmp);
orc_mmx_emit_psrlw_imm (compiler, 8, tmp);
orc_mmx_emit_pmullw (compiler, tmp2, tmp);
orc_mmx_emit_psraw_imm (compiler, 8, tmp);
@@ -646,15 +651,15 @@ mmx_rule_ldreslinl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
if (compiler->vars[increment_var].vartype == ORC_VAR_TYPE_PARAM) {
orc_x86_emit_add_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[increment_var]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[increment_var]),
compiler->exec_reg, src->ptr_offset);
} else {
orc_x86_emit_add_imm_reg (compiler, regsize,
- compiler->vars[increment_var].value.i,
- src->ptr_offset, FALSE);
+ compiler->vars[increment_var].value.i, src->ptr_offset, FALSE);
}
- orc_x86_emit_mov_reg_reg (compiler, 4, src->ptr_offset, compiler->gp_tmpreg);
+ orc_x86_emit_mov_reg_reg (compiler, 4, src->ptr_offset,
+ compiler->gp_tmpreg);
orc_x86_emit_sar_imm_reg (compiler, 4, 16, compiler->gp_tmpreg);
orc_x86_emit_add_reg_reg_shift (compiler, regsize, compiler->gp_tmpreg,
@@ -667,15 +672,14 @@ mmx_rule_ldreslinl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
#endif
static void
-sse_rule_copyx (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_copyx (OrcCompiler * p, void *user, OrcInstruction * insn)
{
if (p->vars[insn->src_args[0]].alloc == p->vars[insn->dest_args[0]].alloc) {
return;
}
orc_sse_emit_movdqa (p,
- p->vars[insn->src_args[0]].alloc,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[0]].alloc, p->vars[insn->dest_args[0]].alloc);
}
#define UNARY(opcode,insn_name,code) \
@@ -697,89 +701,87 @@ sse_rule_ ## opcode (OrcCompiler *p, void *user, OrcInstruction *insn) \
}
-UNARY(absb,pabsb,0x381c)
-BINARY(addb,paddb,0xfc)
-BINARY(addssb,paddsb,0xec)
-BINARY(addusb,paddusb,0xdc)
-BINARY(andb,pand,0xdb)
-BINARY(andnb,pandn,0xdf)
-BINARY(avgub,pavgb,0xe0)
-BINARY(cmpeqb,pcmpeqb,0x74)
-BINARY(cmpgtsb,pcmpgtb,0x64)
-BINARY(maxsb,pmaxsb,0x383c)
-BINARY(maxub,pmaxub,0xde)
-BINARY(minsb,pminsb,0x3838)
-BINARY(minub,pminub,0xda)
+UNARY (absb, pabsb, 0x381c)
+ BINARY (addb, paddb, 0xfc)
+ BINARY (addssb, paddsb, 0xec)
+ BINARY (addusb, paddusb, 0xdc)
+ BINARY (andb, pand, 0xdb)
+ BINARY (andnb, pandn, 0xdf)
+ BINARY (avgub, pavgb, 0xe0)
+ BINARY (cmpeqb, pcmpeqb, 0x74)
+ BINARY (cmpgtsb, pcmpgtb, 0x64)
+ BINARY (maxsb, pmaxsb, 0x383c)
+ BINARY (maxub, pmaxub, 0xde)
+ BINARY (minsb, pminsb, 0x3838)
+ BINARY (minub, pminub, 0xda)
//BINARY(mullb,pmullb,0xd5)
//BINARY(mulhsb,pmulhb,0xe5)
//BINARY(mulhub,pmulhub,0xe4)
-BINARY(orb,por,0xeb)
+ BINARY (orb, por, 0xeb)
//UNARY(signb,psignb,0x3808)
-BINARY(subb,psubb,0xf8)
-BINARY(subssb,psubsb,0xe8)
-BINARY(subusb,psubusb,0xd8)
-BINARY(xorb,pxor,0xef)
-
-UNARY(absw,pabsw,0x381d)
-BINARY(addw,paddw,0xfd)
-BINARY(addssw,paddsw,0xed)
-BINARY(addusw,paddusw,0xdd)
-BINARY(andw,pand,0xdb)
-BINARY(andnw,pandn,0xdf)
-BINARY(avguw,pavgw,0xe3)
-BINARY(cmpeqw,pcmpeqw,0x75)
-BINARY(cmpgtsw,pcmpgtw,0x65)
-BINARY(maxsw,pmaxsw,0xee)
-BINARY(maxuw,pmaxuw,0x383e)
-BINARY(minsw,pminsw,0xea)
-BINARY(minuw,pminuw,0x383a)
-BINARY(mullw,pmullw,0xd5)
-BINARY(mulhsw,pmulhw,0xe5)
-BINARY(mulhuw,pmulhuw,0xe4)
-BINARY(orw,por,0xeb)
+ BINARY (subb, psubb, 0xf8)
+ BINARY (subssb, psubsb, 0xe8)
+ BINARY (subusb, psubusb, 0xd8)
+ BINARY (xorb, pxor, 0xef)
+
+ UNARY (absw, pabsw, 0x381d)
+ BINARY (addw, paddw, 0xfd)
+ BINARY (addssw, paddsw, 0xed)
+ BINARY (addusw, paddusw, 0xdd)
+ BINARY (andw, pand, 0xdb)
+ BINARY (andnw, pandn, 0xdf)
+ BINARY (avguw, pavgw, 0xe3)
+ BINARY (cmpeqw, pcmpeqw, 0x75)
+ BINARY (cmpgtsw, pcmpgtw, 0x65)
+ BINARY (maxsw, pmaxsw, 0xee)
+ BINARY (maxuw, pmaxuw, 0x383e)
+ BINARY (minsw, pminsw, 0xea)
+ BINARY (minuw, pminuw, 0x383a)
+ BINARY (mullw, pmullw, 0xd5)
+ BINARY (mulhsw, pmulhw, 0xe5)
+ BINARY (mulhuw, pmulhuw, 0xe4)
+ BINARY (orw, por, 0xeb)
//UNARY(signw,psignw,0x3809)
-BINARY(subw,psubw,0xf9)
-BINARY(subssw,psubsw,0xe9)
-BINARY(subusw,psubusw,0xd9)
-BINARY(xorw,pxor,0xef)
+ BINARY (subw, psubw, 0xf9)
+ BINARY (subssw, psubsw, 0xe9)
+ BINARY (subusw, psubusw, 0xd9)
+ BINARY (xorw, pxor, 0xef)
-UNARY(absl,pabsd,0x381e)
-BINARY(addl,paddd,0xfe)
+ UNARY (absl, pabsd, 0x381e)
+ BINARY (addl, paddd, 0xfe)
//BINARY(addssl,paddsd,0xed)
//BINARY(addusl,paddusd,0xdd)
-BINARY(andl,pand,0xdb)
-BINARY(andnl,pandn,0xdf)
+ BINARY (andl, pand, 0xdb)
+ BINARY (andnl, pandn, 0xdf)
//BINARY(avgul,pavgd,0xe3)
-BINARY(cmpeql,pcmpeqd,0x76)
-BINARY(cmpgtsl,pcmpgtd,0x66)
-BINARY(maxsl,pmaxsd,0x383d)
-BINARY(maxul,pmaxud,0x383f)
-BINARY(minsl,pminsd,0x3839)
-BINARY(minul,pminud,0x383b)
-BINARY(mulll,pmulld,0x3840)
+ BINARY (cmpeql, pcmpeqd, 0x76)
+ BINARY (cmpgtsl, pcmpgtd, 0x66)
+ BINARY (maxsl, pmaxsd, 0x383d)
+ BINARY (maxul, pmaxud, 0x383f)
+ BINARY (minsl, pminsd, 0x3839)
+ BINARY (minul, pminud, 0x383b)
+ BINARY (mulll, pmulld, 0x3840)
//BINARY(mulhsl,pmulhd,0xe5)
//BINARY(mulhul,pmulhud,0xe4)
-BINARY(orl,por,0xeb)
+ BINARY (orl, por, 0xeb)
//UNARY(signl,psignd,0x380a)
-BINARY(subl,psubd,0xfa)
+ BINARY (subl, psubd, 0xfa)
//BINARY(subssl,psubsd,0xe9)
//BINARY(subusl,psubusd,0xd9)
-BINARY(xorl,pxor,0xef)
-
-BINARY(andq,pand,0xdb)
-BINARY(andnq,pandn,0xdf)
-BINARY(orq,por,0xeb)
-BINARY(xorq,pxor,0xef)
-BINARY(cmpeqq,pcmpeqq,0x3829)
-BINARY(cmpgtsq,pcmpgtq,0x3837)
-
+ BINARY (xorl, pxor, 0xef)
+
+ BINARY (andq, pand, 0xdb)
+ BINARY (andnq, pandn, 0xdf)
+ BINARY (orq, por, 0xeb)
+ BINARY (xorq, pxor, 0xef)
+ BINARY (cmpeqq, pcmpeqq, 0x3829)
+ BINARY (cmpgtsq, pcmpgtq, 0x3837)
#ifndef MMX
-BINARY(addq,paddq,0xd4)
-BINARY(subq,psubq,0xfb)
+ BINARY (addq, paddq, 0xd4)
+ BINARY (subq, psubq, 0xfb)
#endif
-
-static void
-sse_rule_accw (OrcCompiler *p, void *user, OrcInstruction *insn)
+ static void
+ sse_rule_accw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -788,7 +790,7 @@ sse_rule_accw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_accl (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_accl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -802,7 +804,7 @@ sse_rule_accl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_accsadubl (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_accsadubl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src1 = p->vars[insn->src_args[0]].alloc;
int src2 = p->vars[insn->src_args[1]].alloc;
@@ -813,9 +815,9 @@ sse_rule_accsadubl (OrcCompiler *p, void *user, OrcInstruction *insn)
#ifndef MMX
if (p->loop_shift <= 2) {
orc_sse_emit_movdqa (p, src1, tmp);
- orc_sse_emit_pslldq_imm (p, 16 - (1<<p->loop_shift), tmp);
+ orc_sse_emit_pslldq_imm (p, 16 - (1 << p->loop_shift), tmp);
orc_sse_emit_movdqa (p, src2, tmp2);
- orc_sse_emit_pslldq_imm (p, 16 - (1<<p->loop_shift), tmp2);
+ orc_sse_emit_pslldq_imm (p, 16 - (1 << p->loop_shift), tmp2);
orc_sse_emit_psadbw (p, tmp2, tmp);
} else if (p->loop_shift == 3) {
orc_sse_emit_movdqa (p, src1, tmp);
@@ -828,9 +830,9 @@ sse_rule_accsadubl (OrcCompiler *p, void *user, OrcInstruction *insn)
#else
if (p->loop_shift <= 2) {
orc_sse_emit_movdqa (p, src1, tmp);
- orc_sse_emit_psllq_imm (p, 8*(8 - (1<<p->loop_shift)), tmp);
+ orc_sse_emit_psllq_imm (p, 8 * (8 - (1 << p->loop_shift)), tmp);
orc_sse_emit_movdqa (p, src2, tmp2);
- orc_sse_emit_psllq_imm (p, 8*(8 - (1<<p->loop_shift)), tmp2);
+ orc_sse_emit_psllq_imm (p, 8 * (8 - (1 << p->loop_shift)), tmp2);
orc_sse_emit_psadbw (p, tmp2, tmp);
} else {
orc_sse_emit_movdqa (p, src1, tmp);
@@ -842,15 +844,15 @@ sse_rule_accsadubl (OrcCompiler *p, void *user, OrcInstruction *insn)
#ifndef MMX
static void
-sse_rule_signX_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_signX_ssse3 (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
int opcodes[] = { ORC_X86_psignb, ORC_X86_psignw, ORC_X86_psignd };
- int type = ORC_PTR_TO_INT(user);
+ int type = ORC_PTR_TO_INT (user);
int tmpc;
- tmpc = orc_compiler_get_temp_constant (p, 1<<type, 1);
+ tmpc = orc_compiler_get_temp_constant (p, 1 << type, 1);
if (src == dest) {
orc_x86_emit_cpuinsn_size (p, opcodes[type], 16, src, tmpc);
orc_sse_emit_movdqa (p, tmpc, dest);
@@ -863,7 +865,7 @@ sse_rule_signX_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
#endif
static void
-sse_rule_signw_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_signw_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp;
@@ -876,7 +878,7 @@ sse_rule_signw_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_absb_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_absb_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -889,7 +891,7 @@ sse_rule_absb_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_absw_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_absw_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -909,7 +911,7 @@ sse_rule_absw_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_absl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_absl_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -929,19 +931,21 @@ sse_rule_absl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_shift (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_shift (OrcCompiler * p, void *user, OrcInstruction * insn)
{
- int type = ORC_PTR_TO_INT(user);
+ int type = ORC_PTR_TO_INT (user);
//int imm_code1[] = { 0x71, 0x71, 0x71, 0x72, 0x72, 0x72, 0x73, 0x73 };
//int imm_code2[] = { 6, 2, 4, 6, 2, 4, 6, 2 };
//int reg_code[] = { 0xf1, 0xd1, 0xe1, 0xf2, 0xd2, 0xe2, 0xf3, 0xd3 };
//const char *code[] = { "psllw", "psrlw", "psraw", "pslld", "psrld", "psrad", "psllq", "psrlq" };
const int opcodes[] = { ORC_X86_psllw, ORC_X86_psrlw, ORC_X86_psraw,
ORC_X86_pslld, ORC_X86_psrld, ORC_X86_psrad, ORC_X86_psllq,
- ORC_X86_psrlq };
+ ORC_X86_psrlq
+ };
const int opcodes_imm[] = { ORC_X86_psllw_imm, ORC_X86_psrlw_imm,
ORC_X86_psraw_imm, ORC_X86_pslld_imm, ORC_X86_psrld_imm,
- ORC_X86_psrad_imm, ORC_X86_psllq_imm, ORC_X86_psrlq_imm };
+ ORC_X86_psrad_imm, ORC_X86_psllq_imm, ORC_X86_psrlq_imm
+ };
if (p->vars[insn->src_args[1]].vartype == ORC_VAR_TYPE_CONST) {
orc_x86_emit_cpuinsn_imm (p, opcodes_imm[type],
@@ -953,7 +957,7 @@ sse_rule_shift (OrcCompiler *p, void *user, OrcInstruction *insn)
/* FIXME this is a gross hack to reload the register with a
* 64-bit version of the parameter. */
orc_x86_emit_mov_memoffset_sse (p, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor, params[insn->src_args[1]]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[insn->src_args[1]]),
p->exec_reg, tmp, FALSE);
orc_x86_emit_cpuinsn_size (p, opcodes[type], 16, tmp,
@@ -966,7 +970,7 @@ sse_rule_shift (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_shlb (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_shlb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp;
@@ -974,7 +978,7 @@ sse_rule_shlb (OrcCompiler *p, void *user, OrcInstruction *insn)
if (p->vars[insn->src_args[1]].vartype == ORC_VAR_TYPE_CONST) {
orc_sse_emit_psllw_imm (p, p->vars[insn->src_args[1]].value.i, dest);
tmp = orc_compiler_get_constant (p, 1,
- 0xff&(0xff<<p->vars[insn->src_args[1]].value.i));
+ 0xff & (0xff << p->vars[insn->src_args[1]].value.i));
orc_sse_emit_pand (p, tmp, dest);
} else {
orc_compiler_error (p, "code generation rule for %s only works with "
@@ -984,7 +988,7 @@ sse_rule_shlb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_shrsb (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_shrsb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1008,7 +1012,7 @@ sse_rule_shrsb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_shrub (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_shrub (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp;
@@ -1016,7 +1020,7 @@ sse_rule_shrub (OrcCompiler *p, void *user, OrcInstruction *insn)
if (p->vars[insn->src_args[1]].vartype == ORC_VAR_TYPE_CONST) {
orc_sse_emit_psrlw_imm (p, p->vars[insn->src_args[1]].value.i, dest);
tmp = orc_compiler_get_constant (p, 1,
- (0xff>>p->vars[insn->src_args[1]].value.i));
+ (0xff >> p->vars[insn->src_args[1]].value.i));
orc_sse_emit_pand (p, tmp, dest);
} else {
orc_compiler_error (p, "code generation rule for %s only works with "
@@ -1026,7 +1030,7 @@ sse_rule_shrub (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_shrsq (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_shrsq (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1034,12 +1038,12 @@ sse_rule_shrsq (OrcCompiler *p, void *user, OrcInstruction *insn)
if (p->vars[insn->src_args[1]].vartype == ORC_VAR_TYPE_CONST) {
#ifndef MMX
- orc_sse_emit_pshufd (p, ORC_SSE_SHUF(3,3,1,1), src, tmp);
+ orc_sse_emit_pshufd (p, ORC_SSE_SHUF (3, 3, 1, 1), src, tmp);
#else
- orc_mmx_emit_pshufw (p, ORC_MMX_SHUF(3,2,3,2), src, tmp);
+ orc_mmx_emit_pshufw (p, ORC_MMX_SHUF (3, 2, 3, 2), src, tmp);
#endif
orc_sse_emit_psrad_imm (p, 31, tmp);
- orc_sse_emit_psllq_imm (p, 64-p->vars[insn->src_args[1]].value.i, tmp);
+ orc_sse_emit_psllq_imm (p, 64 - p->vars[insn->src_args[1]].value.i, tmp);
orc_sse_emit_psrlq_imm (p, p->vars[insn->src_args[1]].value.i, dest);
orc_sse_emit_por (p, tmp, dest);
@@ -1051,7 +1055,7 @@ sse_rule_shrsq (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_convsbw (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_convsbw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1061,7 +1065,7 @@ sse_rule_convsbw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_convubw (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_convubw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1072,13 +1076,13 @@ sse_rule_convubw (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_sse_emit_punpcklbw (p, src, dest);
orc_sse_emit_psrlw_imm (p, 8, dest);
} else {
- orc_sse_emit_pxor(p, tmp, tmp);
+ orc_sse_emit_pxor (p, tmp, tmp);
orc_sse_emit_punpcklbw (p, tmp, dest);
}
}
static void
-sse_rule_convssswb (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_convssswb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1087,7 +1091,7 @@ sse_rule_convssswb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_convsuswb (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_convsuswb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1096,7 +1100,7 @@ sse_rule_convsuswb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_convuuswb (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_convuuswb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1113,7 +1117,7 @@ sse_rule_convuuswb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_convwb (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_convwb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1123,7 +1127,7 @@ sse_rule_convwb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_convhwb (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_convhwb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1132,7 +1136,7 @@ sse_rule_convhwb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_convswl (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_convswl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1142,7 +1146,7 @@ sse_rule_convswl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_convuwl (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_convuwl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1153,13 +1157,13 @@ sse_rule_convuwl (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_sse_emit_punpcklwd (p, src, dest);
orc_sse_emit_psrld_imm (p, 16, dest);
} else {
- orc_sse_emit_pxor(p, tmp, tmp);
+ orc_sse_emit_pxor (p, tmp, tmp);
orc_sse_emit_punpcklwd (p, tmp, dest);
}
}
static void
-sse_rule_convlw (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_convlw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1169,7 +1173,7 @@ sse_rule_convlw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_convhlw (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_convhlw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1178,7 +1182,7 @@ sse_rule_convhlw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_convssslw (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_convssslw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1187,7 +1191,7 @@ sse_rule_convssslw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_convsuslw (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_convsuslw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1196,7 +1200,7 @@ sse_rule_convsuslw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_convslq (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_convslq (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1208,7 +1212,7 @@ sse_rule_convslq (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_convulq (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_convulq (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp;
@@ -1218,33 +1222,33 @@ sse_rule_convulq (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_convql (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_convql (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
#ifndef MMX
- orc_sse_emit_pshufd (p, ORC_SSE_SHUF(2,0,2,0), src, dest);
+ orc_sse_emit_pshufd (p, ORC_SSE_SHUF (2, 0, 2, 0), src, dest);
#else
orc_sse_emit_movdqa (p, src, dest);
#endif
}
static void
-sse_rule_splatw3q (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_splatw3q (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
#ifndef MMX
- orc_sse_emit_pshuflw (p, ORC_SSE_SHUF(3,3,3,3), dest, dest);
- orc_sse_emit_pshufhw (p, ORC_SSE_SHUF(3,3,3,3), dest, dest);
+ orc_sse_emit_pshuflw (p, ORC_SSE_SHUF (3, 3, 3, 3), dest, dest);
+ orc_sse_emit_pshufhw (p, ORC_SSE_SHUF (3, 3, 3, 3), dest, dest);
#else
- orc_mmx_emit_pshufw (p, ORC_SSE_SHUF(3,3,3,3), dest, dest);
+ orc_mmx_emit_pshufw (p, ORC_SSE_SHUF (3, 3, 3, 3), dest, dest);
#endif
}
static void
-sse_rule_splatbw (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_splatbw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1252,7 +1256,7 @@ sse_rule_splatbw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_splatbl (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_splatbl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1261,7 +1265,7 @@ sse_rule_splatbl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_div255w (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_div255w (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp = orc_compiler_get_temp_reg (p);
@@ -1277,7 +1281,7 @@ sse_rule_div255w (OrcCompiler *p, void *user, OrcInstruction *insn)
#if 1
static void
-sse_rule_divluw (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_divluw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
/* About 5.2 cycles per array member on ginger */
int src = p->vars[insn->src_args[1]].alloc;
@@ -1301,7 +1305,7 @@ sse_rule_divluw (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_sse_emit_pxor (p, tmp, dest);
- for(i=0;i<7;i++){
+ for (i = 0; i < 7; i++) {
orc_sse_emit_movdqa (p, divisor, l);
orc_sse_emit_pxor (p, tmp, l);
orc_sse_emit_pcmpgtw (p, dest, l);
@@ -1310,11 +1314,11 @@ sse_rule_divluw (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_sse_emit_psubw (p, l, dest);
orc_sse_emit_psrlw_imm (p, 1, divisor);
- orc_sse_emit_pand (p, j, j2);
- orc_sse_emit_pxor (p, j2, a);
- orc_sse_emit_psrlw_imm (p, 1, j);
+ orc_sse_emit_pand (p, j, j2);
+ orc_sse_emit_pxor (p, j2, a);
+ orc_sse_emit_psrlw_imm (p, 1, j);
}
-
+
orc_sse_emit_movdqa (p, divisor, l);
orc_sse_emit_pxor (p, tmp, l);
orc_sse_emit_pcmpgtw (p, dest, l);
@@ -1325,7 +1329,7 @@ sse_rule_divluw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
#else
static void
-sse_rule_divluw (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_divluw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
/* About 8.4 cycles per array member on ginger */
int src = p->vars[insn->src_args[1]].alloc;
@@ -1348,7 +1352,7 @@ sse_rule_divluw (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_sse_emit_movdqa (p, tmp, j);
orc_sse_emit_psrlw_imm (p, 8, j);
- for(i=0;i<8;i++){
+ for (i = 0; i < 8; i++) {
orc_sse_emit_por (p, j, a);
orc_sse_emit_movdqa (p, a, k);
orc_sse_emit_pmullw (p, src, k);
@@ -1364,7 +1368,7 @@ sse_rule_divluw (OrcCompiler *p, void *user, OrcInstruction *insn)
#endif
static void
-sse_rule_mulsbw (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_mulsbw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1378,7 +1382,7 @@ sse_rule_mulsbw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_mulubw (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_mulubw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1392,7 +1396,7 @@ sse_rule_mulubw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_mullb (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_mullb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1415,7 +1419,7 @@ sse_rule_mullb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_mulhsb (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_mulhsb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1443,7 +1447,7 @@ sse_rule_mulhsb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_mulhub (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_mulhub (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1471,7 +1475,7 @@ sse_rule_mulhub (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_mulswl (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_mulswl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1484,7 +1488,7 @@ sse_rule_mulswl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_muluwl (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_muluwl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1497,22 +1501,22 @@ sse_rule_muluwl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_mulll_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_mulll_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int i;
- int offset = ORC_STRUCT_OFFSET(OrcExecutor,arrays[ORC_VAR_T1]);
+ int offset = ORC_STRUCT_OFFSET (OrcExecutor, arrays[ORC_VAR_T1]);
orc_x86_emit_mov_sse_memoffset (p, 16, p->vars[insn->src_args[0]].alloc,
offset, p->exec_reg, FALSE, FALSE);
orc_x86_emit_mov_sse_memoffset (p, 16, p->vars[insn->src_args[1]].alloc,
offset + 16, p->exec_reg, FALSE, FALSE);
- for(i=0;i<(1<<p->insn_shift);i++) {
- orc_x86_emit_mov_memoffset_reg (p, 4, offset + 4*i, p->exec_reg,
+ for (i = 0; i < (1 << p->insn_shift); i++) {
+ orc_x86_emit_mov_memoffset_reg (p, 4, offset + 4 * i, p->exec_reg,
p->gp_tmpreg);
- orc_x86_emit_imul_memoffset_reg (p, 4, offset + 16+4*i, p->exec_reg,
+ orc_x86_emit_imul_memoffset_reg (p, 4, offset + 16 + 4 * i, p->exec_reg,
p->gp_tmpreg);
- orc_x86_emit_mov_reg_memoffset (p, 4, p->gp_tmpreg, offset + 4*i,
+ orc_x86_emit_mov_reg_memoffset (p, 4, p->gp_tmpreg, offset + 4 * i,
p->exec_reg);
}
@@ -1522,30 +1526,30 @@ sse_rule_mulll_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
#ifndef MMX
static void
-sse_rule_mulhsl (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_mulhsl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp = orc_compiler_get_temp_reg (p);
int tmp2 = orc_compiler_get_temp_reg (p);
- orc_sse_emit_pshufd (p, ORC_SSE_SHUF(2,3,0,1), dest, tmp);
- orc_sse_emit_pshufd (p, ORC_SSE_SHUF(2,3,0,1), src, tmp2);
+ orc_sse_emit_pshufd (p, ORC_SSE_SHUF (2, 3, 0, 1), dest, tmp);
+ orc_sse_emit_pshufd (p, ORC_SSE_SHUF (2, 3, 0, 1), src, tmp2);
orc_sse_emit_pmuldq (p, src, dest);
orc_sse_emit_pmuldq (p, tmp, tmp2);
- orc_sse_emit_pshufd (p, ORC_SSE_SHUF(2,0,3,1), dest, dest);
- orc_sse_emit_pshufd (p, ORC_SSE_SHUF(2,0,3,1), tmp2, tmp2);
+ orc_sse_emit_pshufd (p, ORC_SSE_SHUF (2, 0, 3, 1), dest, dest);
+ orc_sse_emit_pshufd (p, ORC_SSE_SHUF (2, 0, 3, 1), tmp2, tmp2);
orc_sse_emit_punpckldq (p, tmp2, dest);
}
#endif
#ifndef MMX
static void
-sse_rule_mulhsl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_mulhsl_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int i;
int regsize = p->is_64bit ? 8 : 4;
- int offset = ORC_STRUCT_OFFSET(OrcExecutor,arrays[ORC_VAR_T1]);
+ int offset = ORC_STRUCT_OFFSET (OrcExecutor, arrays[ORC_VAR_T1]);
orc_x86_emit_mov_sse_memoffset (p, 16, p->vars[insn->src_args[0]].alloc,
offset, p->exec_reg, FALSE, FALSE);
@@ -1556,41 +1560,43 @@ sse_rule_mulhsl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_x86_emit_mov_reg_memoffset (p, regsize, X86_EDX, offset + 40,
p->exec_reg);
- for(i=0;i<(1<<p->insn_shift);i++) {
- orc_x86_emit_mov_memoffset_reg (p, 4, offset + 4*i, p->exec_reg, X86_EAX);
+ for (i = 0; i < (1 << p->insn_shift); i++) {
+ orc_x86_emit_mov_memoffset_reg (p, 4, offset + 4 * i, p->exec_reg, X86_EAX);
orc_x86_emit_cpuinsn_memoffset (p, ORC_X86_imul_rm, 4,
- offset + 16 + 4*i, p->exec_reg);
- orc_x86_emit_mov_reg_memoffset (p, 4, X86_EDX, offset + 4*i, p->exec_reg);
+ offset + 16 + 4 * i, p->exec_reg);
+ orc_x86_emit_mov_reg_memoffset (p, 4, X86_EDX, offset + 4 * i, p->exec_reg);
}
orc_x86_emit_mov_memoffset_sse (p, 16, offset, p->exec_reg,
p->vars[insn->dest_args[0]].alloc, FALSE);
- orc_x86_emit_mov_memoffset_reg (p, regsize, offset + 32, p->exec_reg, X86_EAX);
- orc_x86_emit_mov_memoffset_reg (p, regsize, offset + 40, p->exec_reg, X86_EDX);
+ orc_x86_emit_mov_memoffset_reg (p, regsize, offset + 32, p->exec_reg,
+ X86_EAX);
+ orc_x86_emit_mov_memoffset_reg (p, regsize, offset + 40, p->exec_reg,
+ X86_EDX);
}
#endif
#ifndef MMX
static void
-sse_rule_mulhul (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_mulhul (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp = orc_compiler_get_temp_reg (p);
int tmp2 = orc_compiler_get_temp_reg (p);
- orc_sse_emit_pshufd (p, ORC_SSE_SHUF(2,3,0,1), dest, tmp);
- orc_sse_emit_pshufd (p, ORC_SSE_SHUF(2,3,0,1), src, tmp2);
+ orc_sse_emit_pshufd (p, ORC_SSE_SHUF (2, 3, 0, 1), dest, tmp);
+ orc_sse_emit_pshufd (p, ORC_SSE_SHUF (2, 3, 0, 1), src, tmp2);
orc_sse_emit_pmuludq (p, src, dest);
orc_sse_emit_pmuludq (p, tmp, tmp2);
- orc_sse_emit_pshufd (p, ORC_SSE_SHUF(2,0,3,1), dest, dest);
- orc_sse_emit_pshufd (p, ORC_SSE_SHUF(2,0,3,1), tmp2, tmp2);
+ orc_sse_emit_pshufd (p, ORC_SSE_SHUF (2, 0, 3, 1), dest, dest);
+ orc_sse_emit_pshufd (p, ORC_SSE_SHUF (2, 0, 3, 1), tmp2, tmp2);
orc_sse_emit_punpckldq (p, tmp2, dest);
}
#endif
static void
-sse_rule_mulslq (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_mulslq (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1604,11 +1610,11 @@ sse_rule_mulslq (OrcCompiler *p, void *user, OrcInstruction *insn)
#ifndef MMX
static void
-sse_rule_mulslq_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_mulslq_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int i;
int regsize = p->is_64bit ? 8 : 4;
- int offset = ORC_STRUCT_OFFSET(OrcExecutor,arrays[ORC_VAR_T1]);
+ int offset = ORC_STRUCT_OFFSET (OrcExecutor, arrays[ORC_VAR_T1]);
orc_x86_emit_mov_sse_memoffset (p, 8, p->vars[insn->src_args[0]].alloc,
offset, p->exec_reg, FALSE, FALSE);
@@ -1619,24 +1625,28 @@ sse_rule_mulslq_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_x86_emit_mov_reg_memoffset (p, regsize, X86_EDX, offset + 40,
p->exec_reg);
- for(i=0;i<(1<<p->insn_shift);i++) {
- orc_x86_emit_mov_memoffset_reg (p, 4, offset + 4*i, p->exec_reg, X86_EAX);
+ for (i = 0; i < (1 << p->insn_shift); i++) {
+ orc_x86_emit_mov_memoffset_reg (p, 4, offset + 4 * i, p->exec_reg, X86_EAX);
orc_x86_emit_cpuinsn_memoffset (p, ORC_X86_imul_rm, 4,
- offset + 8 + 4*i, p->exec_reg);
- orc_x86_emit_mov_reg_memoffset (p, 4, X86_EAX, offset + 16 + 8*i, p->exec_reg);
- orc_x86_emit_mov_reg_memoffset (p, 4, X86_EDX, offset + 16 + 8*i + 4, p->exec_reg);
+ offset + 8 + 4 * i, p->exec_reg);
+ orc_x86_emit_mov_reg_memoffset (p, 4, X86_EAX, offset + 16 + 8 * i,
+ p->exec_reg);
+ orc_x86_emit_mov_reg_memoffset (p, 4, X86_EDX, offset + 16 + 8 * i + 4,
+ p->exec_reg);
}
orc_x86_emit_mov_memoffset_sse (p, 16, offset + 16, p->exec_reg,
p->vars[insn->dest_args[0]].alloc, FALSE);
- orc_x86_emit_mov_memoffset_reg (p, regsize, offset + 32, p->exec_reg, X86_EAX);
- orc_x86_emit_mov_memoffset_reg (p, regsize, offset + 40, p->exec_reg, X86_EDX);
+ orc_x86_emit_mov_memoffset_reg (p, regsize, offset + 32, p->exec_reg,
+ X86_EAX);
+ orc_x86_emit_mov_memoffset_reg (p, regsize, offset + 40, p->exec_reg,
+ X86_EDX);
}
#endif
#ifndef MMX
static void
-sse_rule_mululq (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_mululq (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1650,7 +1660,7 @@ sse_rule_mululq (OrcCompiler *p, void *user, OrcInstruction *insn)
#endif
static void
-sse_rule_select0lw (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_select0lw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
//int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1664,7 +1674,7 @@ sse_rule_select0lw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_select1lw (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_select1lw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
//int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1676,35 +1686,35 @@ sse_rule_select1lw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_select0ql (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_select0ql (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
/* same as convql */
#ifndef MMX
- orc_sse_emit_pshufd (p, ORC_SSE_SHUF(2,0,2,0), src, dest);
+ orc_sse_emit_pshufd (p, ORC_SSE_SHUF (2, 0, 2, 0), src, dest);
#else
orc_sse_emit_movdqa (p, src, dest);
#endif
}
static void
-sse_rule_select1ql (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_select1ql (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
orc_sse_emit_psrlq_imm (p, 32, dest);
#ifndef MMX
- orc_sse_emit_pshufd (p, ORC_SSE_SHUF(2,0,2,0), src, dest);
+ orc_sse_emit_pshufd (p, ORC_SSE_SHUF (2, 0, 2, 0), src, dest);
#else
orc_sse_emit_movdqa (p, src, dest);
#endif
}
static void
-sse_rule_select0wb (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_select0wb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
//int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1718,7 +1728,7 @@ sse_rule_select0wb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_select1wb (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_select1wb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
//int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1730,23 +1740,23 @@ sse_rule_select1wb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_splitql (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_splitql (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest1 = p->vars[insn->dest_args[0]].alloc;
int dest2 = p->vars[insn->dest_args[1]].alloc;
#ifndef MMX
- orc_sse_emit_pshufd (p, ORC_SSE_SHUF(2,0,2,0), src, dest2);
- orc_sse_emit_pshufd (p, ORC_SSE_SHUF(3,1,3,1), src, dest1);
+ orc_sse_emit_pshufd (p, ORC_SSE_SHUF (2, 0, 2, 0), src, dest2);
+ orc_sse_emit_pshufd (p, ORC_SSE_SHUF (3, 1, 3, 1), src, dest1);
#else
orc_sse_emit_movdqa (p, src, dest2);
- orc_sse_emit_pshufw (p, ORC_SSE_SHUF(3,2,3,2), src, dest1);
+ orc_sse_emit_pshufw (p, ORC_SSE_SHUF (3, 2, 3, 2), src, dest1);
#endif
}
static void
-sse_rule_splitlw (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_splitlw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest1 = p->vars[insn->dest_args[0]].alloc;
@@ -1767,7 +1777,7 @@ sse_rule_splitlw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_splitwb (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_splitwb (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest1 = p->vars[insn->dest_args[0]].alloc;
@@ -1782,7 +1792,6 @@ sse_rule_splitwb (OrcCompiler *p, void *user, OrcInstruction *insn)
if (dest2 != src) {
orc_sse_emit_movdqa (p, src, dest2);
}
-
#if 0
orc_sse_emit_psllw_imm (p, 8, dest2);
orc_sse_emit_psraw_imm (p, 8, dest2);
@@ -1794,7 +1803,7 @@ sse_rule_splitwb (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_mergebw (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_mergebw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1803,7 +1812,7 @@ sse_rule_mergebw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_mergewl (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_mergewl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1812,7 +1821,7 @@ sse_rule_mergewl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_mergelq (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_mergelq (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1821,7 +1830,7 @@ sse_rule_mergelq (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_swapw (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_swapw (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1834,7 +1843,7 @@ sse_rule_swapw (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_swapl (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_swapl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1851,7 +1860,7 @@ sse_rule_swapl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_swapwl (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_swapwl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1864,7 +1873,7 @@ sse_rule_swapwl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_swapq (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_swapq (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -1885,20 +1894,20 @@ sse_rule_swapq (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_swaplq (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_swaplq (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
#ifndef MMX
- orc_sse_emit_pshufd (p, ORC_SSE_SHUF(2,3,0,1), dest, dest);
+ orc_sse_emit_pshufd (p, ORC_SSE_SHUF (2, 3, 0, 1), dest, dest);
#else
- orc_mmx_emit_pshufw (p, ORC_MMX_SHUF(1,0,3,2), dest, dest);
+ orc_mmx_emit_pshufw (p, ORC_MMX_SHUF (1, 0, 3, 2), dest, dest);
#endif
}
#ifndef MMX
static void
-sse_rule_swapw_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_swapw_ssse3 (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp;
@@ -1913,7 +1922,7 @@ sse_rule_swapw_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_swapl_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_swapl_ssse3 (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp;
@@ -1928,7 +1937,7 @@ sse_rule_swapl_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_swapwl_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_swapwl_ssse3 (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp;
@@ -1943,7 +1952,7 @@ sse_rule_swapwl_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_swapq_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_swapq_ssse3 (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp;
@@ -1958,7 +1967,7 @@ sse_rule_swapq_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_select0lw_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_select0lw_ssse3 (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp;
@@ -1973,7 +1982,7 @@ sse_rule_select0lw_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_select1lw_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_select1lw_ssse3 (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp;
@@ -1988,7 +1997,7 @@ sse_rule_select1lw_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_select0wb_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_select0wb_ssse3 (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp;
@@ -2003,7 +2012,7 @@ sse_rule_select0wb_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_select1wb_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_select1wb_ssse3 (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp;
@@ -2021,22 +2030,22 @@ sse_rule_select1wb_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
/* slow rules */
static void
-sse_rule_maxuw_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_maxuw_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
int tmp = orc_compiler_get_temp_reg (p);
tmp = orc_compiler_get_constant (p, 2, 0x8000);
- orc_sse_emit_pxor(p, tmp, src);
- orc_sse_emit_pxor(p, tmp, dest);
+ orc_sse_emit_pxor (p, tmp, src);
+ orc_sse_emit_pxor (p, tmp, dest);
orc_sse_emit_pmaxsw (p, src, dest);
- orc_sse_emit_pxor(p, tmp, src);
- orc_sse_emit_pxor(p, tmp, dest);
+ orc_sse_emit_pxor (p, tmp, src);
+ orc_sse_emit_pxor (p, tmp, dest);
}
static void
-sse_rule_minuw_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_minuw_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -2044,15 +2053,15 @@ sse_rule_minuw_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
tmp = orc_compiler_get_constant (p, 2, 0x8000);
- orc_sse_emit_pxor(p, tmp, src);
- orc_sse_emit_pxor(p, tmp, dest);
+ orc_sse_emit_pxor (p, tmp, src);
+ orc_sse_emit_pxor (p, tmp, dest);
orc_sse_emit_pminsw (p, src, dest);
- orc_sse_emit_pxor(p, tmp, src);
- orc_sse_emit_pxor(p, tmp, dest);
+ orc_sse_emit_pxor (p, tmp, src);
+ orc_sse_emit_pxor (p, tmp, dest);
}
static void
-sse_rule_avgsb_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_avgsb_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -2060,15 +2069,15 @@ sse_rule_avgsb_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
tmp = orc_compiler_get_constant (p, 1, 0x80);
- orc_sse_emit_pxor(p, tmp, src);
- orc_sse_emit_pxor(p, tmp, dest);
+ orc_sse_emit_pxor (p, tmp, src);
+ orc_sse_emit_pxor (p, tmp, dest);
orc_sse_emit_pavgb (p, src, dest);
- orc_sse_emit_pxor(p, tmp, src);
- orc_sse_emit_pxor(p, tmp, dest);
+ orc_sse_emit_pxor (p, tmp, src);
+ orc_sse_emit_pxor (p, tmp, dest);
}
static void
-sse_rule_avgsw_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_avgsw_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -2076,15 +2085,15 @@ sse_rule_avgsw_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
tmp = orc_compiler_get_constant (p, 2, 0x8000);
- orc_sse_emit_pxor(p, tmp, src);
- orc_sse_emit_pxor(p, tmp, dest);
+ orc_sse_emit_pxor (p, tmp, src);
+ orc_sse_emit_pxor (p, tmp, dest);
orc_sse_emit_pavgw (p, src, dest);
- orc_sse_emit_pxor(p, tmp, src);
- orc_sse_emit_pxor(p, tmp, dest);
+ orc_sse_emit_pxor (p, tmp, src);
+ orc_sse_emit_pxor (p, tmp, dest);
}
static void
-sse_rule_maxsb_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_maxsb_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -2098,7 +2107,7 @@ sse_rule_maxsb_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_minsb_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_minsb_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -2112,7 +2121,7 @@ sse_rule_minsb_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_maxsl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_maxsl_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -2126,7 +2135,7 @@ sse_rule_maxsl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_minsl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_minsl_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -2140,7 +2149,7 @@ sse_rule_minsl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_maxul_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_maxul_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -2148,8 +2157,8 @@ sse_rule_maxul_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
int tmpc;
tmpc = orc_compiler_get_constant (p, 4, 0x80000000);
- orc_sse_emit_pxor(p, tmpc, src);
- orc_sse_emit_pxor(p, tmpc, dest);
+ orc_sse_emit_pxor (p, tmpc, src);
+ orc_sse_emit_pxor (p, tmpc, dest);
orc_sse_emit_movdqa (p, dest, tmp);
orc_sse_emit_pcmpgtd (p, src, tmp);
@@ -2157,12 +2166,12 @@ sse_rule_maxul_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_sse_emit_pandn (p, src, tmp);
orc_sse_emit_por (p, tmp, dest);
- orc_sse_emit_pxor(p, tmpc, src);
- orc_sse_emit_pxor(p, tmpc, dest);
+ orc_sse_emit_pxor (p, tmpc, src);
+ orc_sse_emit_pxor (p, tmpc, dest);
}
static void
-sse_rule_minul_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_minul_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -2170,8 +2179,8 @@ sse_rule_minul_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
int tmpc;
tmpc = orc_compiler_get_constant (p, 4, 0x80000000);
- orc_sse_emit_pxor(p, tmpc, src);
- orc_sse_emit_pxor(p, tmpc, dest);
+ orc_sse_emit_pxor (p, tmpc, src);
+ orc_sse_emit_pxor (p, tmpc, dest);
orc_sse_emit_movdqa (p, src, tmp);
orc_sse_emit_pcmpgtd (p, dest, tmp);
@@ -2179,12 +2188,12 @@ sse_rule_minul_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_sse_emit_pandn (p, src, tmp);
orc_sse_emit_por (p, tmp, dest);
- orc_sse_emit_pxor(p, tmpc, src);
- orc_sse_emit_pxor(p, tmpc, dest);
+ orc_sse_emit_pxor (p, tmpc, src);
+ orc_sse_emit_pxor (p, tmpc, dest);
}
static void
-sse_rule_avgsl (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_avgsl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -2193,15 +2202,15 @@ sse_rule_avgsl (OrcCompiler *p, void *user, OrcInstruction *insn)
/* (a+b+1) >> 1 = (a|b) - ((a^b)>>1) */
orc_sse_emit_movdqa (p, dest, tmp);
- orc_sse_emit_pxor(p, src, tmp);
- orc_sse_emit_psrad_imm(p, 1, tmp);
+ orc_sse_emit_pxor (p, src, tmp);
+ orc_sse_emit_psrad_imm (p, 1, tmp);
- orc_sse_emit_por(p, src, dest);
- orc_sse_emit_psubd(p, tmp, dest);
+ orc_sse_emit_por (p, src, dest);
+ orc_sse_emit_psubd (p, tmp, dest);
}
static void
-sse_rule_avgul (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_avgul (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -2210,15 +2219,15 @@ sse_rule_avgul (OrcCompiler *p, void *user, OrcInstruction *insn)
/* (a+b+1) >> 1 = (a|b) - ((a^b)>>1) */
orc_sse_emit_movdqa (p, dest, tmp);
- orc_sse_emit_pxor(p, src, tmp);
- orc_sse_emit_psrld_imm(p, 1, tmp);
+ orc_sse_emit_pxor (p, src, tmp);
+ orc_sse_emit_psrld_imm (p, 1, tmp);
- orc_sse_emit_por(p, src, dest);
- orc_sse_emit_psubd(p, tmp, dest);
+ orc_sse_emit_por (p, src, dest);
+ orc_sse_emit_psubd (p, tmp, dest);
}
static void
-sse_rule_addssl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_addssl_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -2245,11 +2254,11 @@ sse_rule_addssl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_sse_emit_psrad_imm (p, 31, tmp2);
tmp = orc_compiler_get_constant (p, 4, 0x80000000);
- orc_sse_emit_pxor (p, tmp, tmp2); // clamped value
+ orc_sse_emit_pxor (p, tmp, tmp2); // clamped value
orc_sse_emit_pand (p, tmp3, tmp2);
orc_sse_emit_paddd (p, src, dest);
- orc_sse_emit_pandn (p, dest, tmp3); // tmp is mask: ~0 is for clamping
+ orc_sse_emit_pandn (p, dest, tmp3); // tmp is mask: ~0 is for clamping
orc_sse_emit_movdqa (p, tmp3, dest);
orc_sse_emit_por (p, tmp2, dest);
@@ -2277,7 +2286,7 @@ sse_rule_addssl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
t^=m;
s=~s&t;
_a|=s;
- */
+ */
orc_sse_emit_movdqa (p, dest, s);
orc_sse_emit_movdqa (p, dest, t);
@@ -2298,7 +2307,7 @@ sse_rule_addssl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_subssl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_subssl_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -2325,7 +2334,7 @@ sse_rule_subssl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
orc_sse_emit_psrad_imm (p, 31, tmp2);
tmp = orc_compiler_get_constant (p, 4, 0x80000000);
- orc_sse_emit_pxor (p, tmp, tmp2); // clamped value
+ orc_sse_emit_pxor (p, tmp, tmp2); // clamped value
orc_sse_emit_pand (p, tmp3, tmp2);
orc_sse_emit_psubd (p, src, dest);
@@ -2337,7 +2346,7 @@ sse_rule_subssl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_addusl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_addusl_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -2384,7 +2393,7 @@ sse_rule_addusl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_subusl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_subusl_slow (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[1]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
@@ -2428,12 +2437,11 @@ sse_rule_ ## opcode (OrcCompiler *p, void *user, OrcInstruction *insn) \
p->vars[insn->dest_args[0]].alloc); \
}
-BINARY_F(addf, addps, 0x58)
-BINARY_F(subf, subps, 0x5c)
-BINARY_F(mulf, mulps, 0x59)
-BINARY_F(divf, divps, 0x5e)
-UNARY_F(sqrtf, sqrtps, 0x51)
-
+BINARY_F (addf, addps, 0x58)
+ BINARY_F (subf, subps, 0x5c)
+ BINARY_F (mulf, mulps, 0x59)
+ BINARY_F (divf, divps, 0x5e)
+ UNARY_F (sqrtf, sqrtps, 0x51)
#define UNARY_D(opcode,insn_name,code) \
static void \
sse_rule_ ## opcode (OrcCompiler *p, void *user, OrcInstruction *insn) \
@@ -2442,7 +2450,6 @@ sse_rule_ ## opcode (OrcCompiler *p, void *user, OrcInstruction *insn) \
p->vars[insn->src_args[0]].alloc, \
p->vars[insn->dest_args[0]].alloc); \
}
-
#define BINARY_D(opcode,insn_name,code) \
static void \
sse_rule_ ## opcode (OrcCompiler *p, void *user, OrcInstruction *insn) \
@@ -2451,168 +2458,129 @@ sse_rule_ ## opcode (OrcCompiler *p, void *user, OrcInstruction *insn) \
p->vars[insn->src_args[1]].alloc, \
p->vars[insn->dest_args[0]].alloc); \
}
+ BINARY_D (addd, addpd, 0x58)
+ BINARY_D (subd, subpd, 0x5c)
+ BINARY_D (muld, mulpd, 0x59)
+ BINARY_D (divd, divpd, 0x5e)
+ UNARY_D (sqrtd, sqrtpd, 0x51)
-BINARY_D(addd, addpd, 0x58)
-BINARY_D(subd, subpd, 0x5c)
-BINARY_D(muld, mulpd, 0x59)
-BINARY_D(divd, divpd, 0x5e)
-UNARY_D(sqrtd, sqrtpd, 0x51)
-
-static void
-sse_rule_minf (OrcCompiler *p, void *user, OrcInstruction *insn)
+ static void
+ sse_rule_minf (OrcCompiler * p, void *user, OrcInstruction * insn)
{
if (p->target_flags & ORC_TARGET_FAST_NAN) {
orc_sse_emit_minps (p,
- p->vars[insn->src_args[1]].alloc,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[1]].alloc, p->vars[insn->dest_args[0]].alloc);
} else {
int tmp = orc_compiler_get_temp_reg (p);
- orc_sse_emit_movdqa (p,
- p->vars[insn->src_args[1]].alloc,
- tmp);
- orc_sse_emit_minps (p,
- p->vars[insn->dest_args[0]].alloc,
- tmp);
+ orc_sse_emit_movdqa (p, p->vars[insn->src_args[1]].alloc, tmp);
+ orc_sse_emit_minps (p, p->vars[insn->dest_args[0]].alloc, tmp);
orc_sse_emit_minps (p,
- p->vars[insn->src_args[1]].alloc,
- p->vars[insn->dest_args[0]].alloc);
- orc_sse_emit_por (p,
- tmp,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[1]].alloc, p->vars[insn->dest_args[0]].alloc);
+ orc_sse_emit_por (p, tmp, p->vars[insn->dest_args[0]].alloc);
}
}
static void
-sse_rule_mind (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_mind (OrcCompiler * p, void *user, OrcInstruction * insn)
{
if (p->target_flags & ORC_TARGET_FAST_NAN) {
orc_sse_emit_minpd (p,
- p->vars[insn->src_args[1]].alloc,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[1]].alloc, p->vars[insn->dest_args[0]].alloc);
} else {
int tmp = orc_compiler_get_temp_reg (p);
- orc_sse_emit_movdqa (p,
- p->vars[insn->src_args[1]].alloc,
- tmp);
+ orc_sse_emit_movdqa (p, p->vars[insn->src_args[1]].alloc, tmp);
+ orc_sse_emit_minpd (p, p->vars[insn->dest_args[0]].alloc, tmp);
orc_sse_emit_minpd (p,
- p->vars[insn->dest_args[0]].alloc,
- tmp);
- orc_sse_emit_minpd (p,
- p->vars[insn->src_args[1]].alloc,
- p->vars[insn->dest_args[0]].alloc);
- orc_sse_emit_por (p,
- tmp,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[1]].alloc, p->vars[insn->dest_args[0]].alloc);
+ orc_sse_emit_por (p, tmp, p->vars[insn->dest_args[0]].alloc);
}
}
static void
-sse_rule_maxf (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_maxf (OrcCompiler * p, void *user, OrcInstruction * insn)
{
if (p->target_flags & ORC_TARGET_FAST_NAN) {
orc_sse_emit_maxps (p,
- p->vars[insn->src_args[1]].alloc,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[1]].alloc, p->vars[insn->dest_args[0]].alloc);
} else {
int tmp = orc_compiler_get_temp_reg (p);
- orc_sse_emit_movdqa (p,
- p->vars[insn->src_args[1]].alloc,
- tmp);
+ orc_sse_emit_movdqa (p, p->vars[insn->src_args[1]].alloc, tmp);
+ orc_sse_emit_maxps (p, p->vars[insn->dest_args[0]].alloc, tmp);
orc_sse_emit_maxps (p,
- p->vars[insn->dest_args[0]].alloc,
- tmp);
- orc_sse_emit_maxps (p,
- p->vars[insn->src_args[1]].alloc,
- p->vars[insn->dest_args[0]].alloc);
- orc_sse_emit_por (p,
- tmp,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[1]].alloc, p->vars[insn->dest_args[0]].alloc);
+ orc_sse_emit_por (p, tmp, p->vars[insn->dest_args[0]].alloc);
}
}
static void
-sse_rule_maxd (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_maxd (OrcCompiler * p, void *user, OrcInstruction * insn)
{
if (p->target_flags & ORC_TARGET_FAST_NAN) {
orc_sse_emit_maxpd (p,
- p->vars[insn->src_args[1]].alloc,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[1]].alloc, p->vars[insn->dest_args[0]].alloc);
} else {
int tmp = orc_compiler_get_temp_reg (p);
- orc_sse_emit_movdqa (p,
- p->vars[insn->src_args[1]].alloc,
- tmp);
- orc_sse_emit_maxpd (p,
- p->vars[insn->dest_args[0]].alloc,
- tmp);
+ orc_sse_emit_movdqa (p, p->vars[insn->src_args[1]].alloc, tmp);
+ orc_sse_emit_maxpd (p, p->vars[insn->dest_args[0]].alloc, tmp);
orc_sse_emit_maxpd (p,
- p->vars[insn->src_args[1]].alloc,
- p->vars[insn->dest_args[0]].alloc);
- orc_sse_emit_por (p,
- tmp,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[1]].alloc, p->vars[insn->dest_args[0]].alloc);
+ orc_sse_emit_por (p, tmp, p->vars[insn->dest_args[0]].alloc);
}
}
static void
-sse_rule_cmpeqf (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_cmpeqf (OrcCompiler * p, void *user, OrcInstruction * insn)
{
orc_sse_emit_cmpeqps (p,
- p->vars[insn->src_args[1]].alloc,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[1]].alloc, p->vars[insn->dest_args[0]].alloc);
}
static void
-sse_rule_cmpeqd (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_cmpeqd (OrcCompiler * p, void *user, OrcInstruction * insn)
{
orc_sse_emit_cmpeqpd (p,
- p->vars[insn->src_args[1]].alloc,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[1]].alloc, p->vars[insn->dest_args[0]].alloc);
}
static void
-sse_rule_cmpltf (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_cmpltf (OrcCompiler * p, void *user, OrcInstruction * insn)
{
orc_sse_emit_cmpltps (p,
- p->vars[insn->src_args[1]].alloc,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[1]].alloc, p->vars[insn->dest_args[0]].alloc);
}
static void
-sse_rule_cmpltd (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_cmpltd (OrcCompiler * p, void *user, OrcInstruction * insn)
{
orc_sse_emit_cmpltpd (p,
- p->vars[insn->src_args[1]].alloc,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[1]].alloc, p->vars[insn->dest_args[0]].alloc);
}
static void
-sse_rule_cmplef (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_cmplef (OrcCompiler * p, void *user, OrcInstruction * insn)
{
orc_sse_emit_cmpleps (p,
- p->vars[insn->src_args[1]].alloc,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[1]].alloc, p->vars[insn->dest_args[0]].alloc);
}
static void
-sse_rule_cmpled (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_cmpled (OrcCompiler * p, void *user, OrcInstruction * insn)
{
orc_sse_emit_cmplepd (p,
- p->vars[insn->src_args[1]].alloc,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[1]].alloc, p->vars[insn->dest_args[0]].alloc);
}
static void
-sse_rule_convfl (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_convfl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
int tmpc;
int tmp = orc_compiler_get_temp_reg (p);
-
+
tmpc = orc_compiler_get_temp_constant (p, 4, 0x80000000);
orc_sse_emit_movdqa (p, src, tmp);
orc_sse_emit_cvttps2dq (p, src, dest);
@@ -2624,15 +2592,15 @@ sse_rule_convfl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_convdl (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_convdl (OrcCompiler * p, void *user, OrcInstruction * insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
int tmpc;
int tmp = orc_compiler_get_temp_reg (p);
-
+
tmpc = orc_compiler_get_temp_constant (p, 4, 0x80000000);
- orc_sse_emit_pshufd (p, ORC_SSE_SHUF(3,1,3,1), src, tmp);
+ orc_sse_emit_pshufd (p, ORC_SSE_SHUF (3, 1, 3, 1), src, tmp);
orc_sse_emit_cvttpd2dq (p, src, dest);
orc_sse_emit_psrad_imm (p, 31, tmp);
orc_sse_emit_pcmpeqd (p, dest, tmpc);
@@ -2641,35 +2609,31 @@ sse_rule_convdl (OrcCompiler *p, void *user, OrcInstruction *insn)
}
static void
-sse_rule_convlf (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_convlf (OrcCompiler * p, void *user, OrcInstruction * insn)
{
orc_sse_emit_cvtdq2ps (p,
- p->vars[insn->src_args[0]].alloc,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[0]].alloc, p->vars[insn->dest_args[0]].alloc);
}
static void
-sse_rule_convld (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_convld (OrcCompiler * p, void *user, OrcInstruction * insn)
{
orc_sse_emit_cvtdq2pd (p,
- p->vars[insn->src_args[0]].alloc,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[0]].alloc, p->vars[insn->dest_args[0]].alloc);
}
static void
-sse_rule_convfd (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_convfd (OrcCompiler * p, void *user, OrcInstruction * insn)
{
orc_sse_emit_cvtps2pd (p,
- p->vars[insn->src_args[0]].alloc,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[0]].alloc, p->vars[insn->dest_args[0]].alloc);
}
static void
-sse_rule_convdf (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_convdf (OrcCompiler * p, void *user, OrcInstruction * insn)
{
orc_sse_emit_cvtpd2ps (p,
- p->vars[insn->src_args[0]].alloc,
- p->vars[insn->dest_args[0]].alloc);
+ p->vars[insn->src_args[0]].alloc, p->vars[insn->dest_args[0]].alloc);
}
#endif
@@ -2682,16 +2646,16 @@ sse_rule_ ## opcode ## _sse41 (OrcCompiler *p, void *user, OrcInstruction *insn)
p->vars[insn->dest_args[0]].alloc); \
}
-UNARY_SSE41(convsbw,pmovsxbw);
-UNARY_SSE41(convswl,pmovsxwd);
-UNARY_SSE41(convslq,pmovsxdq);
-UNARY_SSE41(convubw,pmovzxbw);
-UNARY_SSE41(convuwl,pmovzxwd);
-UNARY_SSE41(convulq,pmovzxdq);
+UNARY_SSE41 (convsbw, pmovsxbw);
+UNARY_SSE41 (convswl, pmovsxwd);
+UNARY_SSE41 (convslq, pmovsxdq);
+UNARY_SSE41 (convubw, pmovzxbw);
+UNARY_SSE41 (convuwl, pmovzxwd);
+UNARY_SSE41 (convulq, pmovzxdq);
void
-orc_compiler_sse_register_rules (OrcTarget *target)
+orc_compiler_sse_register_rules (OrcTarget * target)
{
OrcRuleSet *rule_set;
@@ -2700,10 +2664,10 @@ orc_compiler_sse_register_rules (OrcTarget *target)
/* SSE 2 */
#ifndef MMX
- rule_set = orc_rule_set_new (orc_opcode_set_get("sys"), target,
+ rule_set = orc_rule_set_new (orc_opcode_set_get ("sys"), target,
ORC_TARGET_SSE_SSE2);
#else
- rule_set = orc_rule_set_new (orc_opcode_set_get("sys"), target,
+ rule_set = orc_rule_set_new (orc_opcode_set_get ("sys"), target,
ORC_TARGET_MMX_MMX);
#endif
@@ -2716,10 +2680,10 @@ orc_compiler_sse_register_rules (OrcTarget *target)
orc_rule_register (rule_set, "loadoffl", sse_rule_loadoffX, NULL);
orc_rule_register (rule_set, "loadupdb", sse_rule_loadupdb, NULL);
orc_rule_register (rule_set, "loadupib", sse_rule_loadupib, NULL);
- orc_rule_register (rule_set, "loadpb", sse_rule_loadpX, (void *)1);
- orc_rule_register (rule_set, "loadpw", sse_rule_loadpX, (void *)2);
- orc_rule_register (rule_set, "loadpl", sse_rule_loadpX, (void *)4);
- orc_rule_register (rule_set, "loadpq", sse_rule_loadpX, (void *)8);
+ orc_rule_register (rule_set, "loadpb", sse_rule_loadpX, (void *) 1);
+ orc_rule_register (rule_set, "loadpw", sse_rule_loadpX, (void *) 2);
+ orc_rule_register (rule_set, "loadpl", sse_rule_loadpX, (void *) 4);
+ orc_rule_register (rule_set, "loadpq", sse_rule_loadpX, (void *) 8);
orc_rule_register (rule_set, "ldresnearl", sse_rule_ldresnearl, NULL);
orc_rule_register (rule_set, "ldreslinl", sse_rule_ldreslinl, NULL);
@@ -2728,78 +2692,78 @@ orc_compiler_sse_register_rules (OrcTarget *target)
orc_rule_register (rule_set, "storel", sse_rule_storeX, NULL);
orc_rule_register (rule_set, "storeq", sse_rule_storeX, NULL);
- REG(addb);
- REG(addssb);
- REG(addusb);
- REG(andb);
- REG(andnb);
- REG(avgub);
- REG(cmpeqb);
- REG(cmpgtsb);
- REG(maxub);
- REG(minub);
- REG(orb);
- REG(subb);
- REG(subssb);
- REG(subusb);
- REG(xorb);
-
- REG(addw);
- REG(addssw);
- REG(addusw);
- REG(andw);
- REG(andnw);
- REG(avguw);
- REG(cmpeqw);
- REG(cmpgtsw);
- REG(maxsw);
- REG(minsw);
- REG(mullw);
- REG(mulhsw);
- REG(mulhuw);
- REG(orw);
- REG(subw);
- REG(subssw);
- REG(subusw);
- REG(xorw);
-
- REG(addl);
- REG(andl);
- REG(andnl);
- REG(cmpeql);
- REG(cmpgtsl);
- REG(orl);
- REG(subl);
- REG(xorl);
-
- REG(andq);
- REG(andnq);
- REG(orq);
- REG(xorq);
-
- REG(select0ql);
- REG(select1ql);
- REG(select0lw);
- REG(select1lw);
- REG(select0wb);
- REG(select1wb);
- REG(mergebw);
- REG(mergewl);
- REG(mergelq);
+ REG (addb);
+ REG (addssb);
+ REG (addusb);
+ REG (andb);
+ REG (andnb);
+ REG (avgub);
+ REG (cmpeqb);
+ REG (cmpgtsb);
+ REG (maxub);
+ REG (minub);
+ REG (orb);
+ REG (subb);
+ REG (subssb);
+ REG (subusb);
+ REG (xorb);
+
+ REG (addw);
+ REG (addssw);
+ REG (addusw);
+ REG (andw);
+ REG (andnw);
+ REG (avguw);
+ REG (cmpeqw);
+ REG (cmpgtsw);
+ REG (maxsw);
+ REG (minsw);
+ REG (mullw);
+ REG (mulhsw);
+ REG (mulhuw);
+ REG (orw);
+ REG (subw);
+ REG (subssw);
+ REG (subusw);
+ REG (xorw);
+
+ REG (addl);
+ REG (andl);
+ REG (andnl);
+ REG (cmpeql);
+ REG (cmpgtsl);
+ REG (orl);
+ REG (subl);
+ REG (xorl);
+
+ REG (andq);
+ REG (andnq);
+ REG (orq);
+ REG (xorq);
+
+ REG (select0ql);
+ REG (select1ql);
+ REG (select0lw);
+ REG (select1lw);
+ REG (select0wb);
+ REG (select1wb);
+ REG (mergebw);
+ REG (mergewl);
+ REG (mergelq);
orc_rule_register (rule_set, "copyb", sse_rule_copyx, NULL);
orc_rule_register (rule_set, "copyw", sse_rule_copyx, NULL);
orc_rule_register (rule_set, "copyl", sse_rule_copyx, NULL);
orc_rule_register (rule_set, "copyq", sse_rule_copyx, NULL);
- orc_rule_register (rule_set, "shlw", sse_rule_shift, (void *)0);
- orc_rule_register (rule_set, "shruw", sse_rule_shift, (void *)1);
- orc_rule_register (rule_set, "shrsw", sse_rule_shift, (void *)2);
- orc_rule_register (rule_set, "shll", sse_rule_shift, (void *)3);
- orc_rule_register (rule_set, "shrul", sse_rule_shift, (void *)4);
- orc_rule_register (rule_set, "shrsl", sse_rule_shift, (void *)5);
- orc_rule_register (rule_set, "shlq", sse_rule_shift, (void *)6);
- orc_rule_register (rule_set, "shruq", sse_rule_shift, (void *)7);
+ orc_rule_register (rule_set, "shlw", sse_rule_shift, (void *) 0);
+ orc_rule_register (rule_set, "shruw", sse_rule_shift, (void *) 1);
+ orc_rule_register (rule_set, "shrsw", sse_rule_shift, (void *) 2);
+ orc_rule_register (rule_set, "shll", sse_rule_shift, (void *) 3);
+ orc_rule_register (rule_set, "shrul", sse_rule_shift, (void *) 4);
+ orc_rule_register (rule_set, "shrsl", sse_rule_shift, (void *) 5);
+ orc_rule_register (rule_set, "shlq", sse_rule_shift, (void *) 6);
+ orc_rule_register (rule_set, "shruq", sse_rule_shift, (void *) 7);
orc_rule_register (rule_set, "shrsq", sse_rule_shrsq, NULL);
orc_rule_register (rule_set, "convsbw", sse_rule_convsbw, NULL);
@@ -2831,8 +2795,8 @@ orc_compiler_sse_register_rules (OrcTarget *target)
/* These require the SSE2 flag, although could be used with MMX.
That flag is not yet handled. */
orc_rule_register (rule_set, "mululq", sse_rule_mululq, NULL);
- REG(addq);
- REG(subq);
+ REG (addq);
+ REG (subq);
orc_rule_register (rule_set, "addf", sse_rule_addf, NULL);
orc_rule_register (rule_set, "subf", sse_rule_subf, NULL);
@@ -2917,17 +2881,17 @@ orc_compiler_sse_register_rules (OrcTarget *target)
/* SSE 3 -- no rules */
/* SSSE 3 */
- rule_set = orc_rule_set_new (orc_opcode_set_get("sys"), target,
+ rule_set = orc_rule_set_new (orc_opcode_set_get ("sys"), target,
ORC_TARGET_SSE_SSSE3);
#ifndef MMX
- orc_rule_register (rule_set, "signb", sse_rule_signX_ssse3, (void *)0);
- orc_rule_register (rule_set, "signw", sse_rule_signX_ssse3, (void *)1);
- orc_rule_register (rule_set, "signl", sse_rule_signX_ssse3, (void *)2);
+ orc_rule_register (rule_set, "signb", sse_rule_signX_ssse3, (void *) 0);
+ orc_rule_register (rule_set, "signw", sse_rule_signX_ssse3, (void *) 1);
+ orc_rule_register (rule_set, "signl", sse_rule_signX_ssse3, (void *) 2);
#endif
- REG(absb);
- REG(absw);
- REG(absl);
+ REG (absb);
+ REG (absw);
+ REG (absl);
#ifndef MMX
orc_rule_register (rule_set, "swapw", sse_rule_swapw_ssse3, NULL);
orc_rule_register (rule_set, "swapl", sse_rule_swapl_ssse3, NULL);
@@ -2940,18 +2904,18 @@ orc_compiler_sse_register_rules (OrcTarget *target)
#endif
/* SSE 4.1 */
- rule_set = orc_rule_set_new (orc_opcode_set_get("sys"), target,
+ rule_set = orc_rule_set_new (orc_opcode_set_get ("sys"), target,
ORC_TARGET_SSE_SSE4_1);
- REG(maxsb);
- REG(minsb);
- REG(maxuw);
- REG(minuw);
- REG(maxsl);
- REG(maxul);
- REG(minsl);
- REG(minul);
- REG(mulll);
+ REG (maxsb);
+ REG (minsb);
+ REG (maxuw);
+ REG (minuw);
+ REG (maxsl);
+ REG (maxul);
+ REG (minsl);
+ REG (minul);
+ REG (mulll);
orc_rule_register (rule_set, "convsbw", sse_rule_convsbw_sse41, NULL);
orc_rule_register (rule_set, "convswl", sse_rule_convswl_sse41, NULL);
orc_rule_register (rule_set, "convslq", sse_rule_convslq_sse41, NULL);
@@ -2963,14 +2927,13 @@ orc_compiler_sse_register_rules (OrcTarget *target)
#ifndef MMX
orc_rule_register (rule_set, "mulhsl", sse_rule_mulhsl, NULL);
#endif
- REG(cmpeqq);
+ REG (cmpeqq);
/* SSE 4.2 -- no rules */
- rule_set = orc_rule_set_new (orc_opcode_set_get("sys"), target,
+ rule_set = orc_rule_set_new (orc_opcode_set_get ("sys"), target,
ORC_TARGET_SSE_SSE4_2);
- REG(cmpgtsq);
+ REG (cmpgtsq);
/* SSE 4a -- no rules */
}
-
diff --git a/orc/orcsse.c b/orc/orcsse.c
index 128654f..427c6b5 100644
--- a/orc/orcsse.c
+++ b/orc/orcsse.c
@@ -21,15 +21,17 @@
const char *
-orc_x86_get_regname_sse(int i)
+orc_x86_get_regname_sse (int i)
{
static const char *x86_regs[] = {
"xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6", "xmm7",
"xmm8", "xmm9", "xmm10", "xmm11", "xmm12", "xmm13", "xmm14", "xmm15"
};
- if (i>=X86_XMM0 && i<X86_XMM0 + 16) return x86_regs[i - X86_XMM0];
- if (i>=X86_MM0 && i<X86_MM0 + 8) return "ERROR_MMX";
+ if (i >= X86_XMM0 && i < X86_XMM0 + 16)
+ return x86_regs[i - X86_XMM0];
+ if (i >= X86_MM0 && i < X86_MM0 + 8)
+ return "ERROR_MMX";
switch (i) {
case 0:
return "UNALLOCATED";
@@ -42,7 +44,7 @@ orc_x86_get_regname_sse(int i)
void
-orc_x86_emit_mov_memoffset_sse (OrcCompiler *compiler, int size, int offset,
+orc_x86_emit_mov_memoffset_sse (OrcCompiler * compiler, int size, int offset,
int reg1, int reg2, int is_aligned)
{
switch (size) {
@@ -60,13 +62,13 @@ orc_x86_emit_mov_memoffset_sse (OrcCompiler *compiler, int size, int offset,
}
break;
default:
- ORC_COMPILER_ERROR(compiler, "bad size");
+ ORC_COMPILER_ERROR (compiler, "bad size");
break;
}
}
void
-orc_x86_emit_mov_memindex_sse (OrcCompiler *compiler, int size, int offset,
+orc_x86_emit_mov_memindex_sse (OrcCompiler * compiler, int size, int offset,
int reg1, int regindex, int shift, int reg2, int is_aligned)
{
switch (size) {
@@ -88,14 +90,14 @@ orc_x86_emit_mov_memindex_sse (OrcCompiler *compiler, int size, int offset,
}
break;
default:
- ORC_COMPILER_ERROR(compiler, "bad size");
+ ORC_COMPILER_ERROR (compiler, "bad size");
break;
}
}
void
-orc_x86_emit_mov_sse_memoffset (OrcCompiler *compiler, int size, int reg1, int offset,
- int reg2, int aligned, int uncached)
+orc_x86_emit_mov_sse_memoffset (OrcCompiler * compiler, int size, int reg1,
+ int offset, int reg2, int aligned, int uncached)
{
switch (size) {
case 4:
@@ -116,44 +118,43 @@ orc_x86_emit_mov_sse_memoffset (OrcCompiler *compiler, int size, int reg1, int o
}
break;
default:
- ORC_COMPILER_ERROR(compiler, "bad size");
+ ORC_COMPILER_ERROR (compiler, "bad size");
break;
}
}
void
-orc_sse_set_mxcsr (OrcCompiler *compiler)
+orc_sse_set_mxcsr (OrcCompiler * compiler)
{
orc_x86_emit_cpuinsn_load_memoffset (compiler, ORC_X86_stmxcsr, 4, 0,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,params[ORC_VAR_A4]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[ORC_VAR_A4]),
compiler->exec_reg, 0);
orc_x86_emit_mov_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,params[ORC_VAR_A4]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[ORC_VAR_A4]),
compiler->exec_reg, compiler->gp_tmpreg);
orc_x86_emit_mov_reg_memoffset (compiler, 4, compiler->gp_tmpreg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,params[ORC_VAR_C1]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[ORC_VAR_C1]),
compiler->exec_reg);
orc_x86_emit_cpuinsn_imm_reg (compiler, ORC_X86_or_imm32_rm, 4,
0x8040, compiler->gp_tmpreg);
orc_x86_emit_mov_reg_memoffset (compiler, 4, compiler->gp_tmpreg,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,params[ORC_VAR_A4]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[ORC_VAR_A4]),
compiler->exec_reg);
orc_x86_emit_cpuinsn_load_memoffset (compiler, ORC_X86_ldmxcsr, 4, 0,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,params[ORC_VAR_A4]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[ORC_VAR_A4]),
compiler->exec_reg, 0);
}
void
-orc_sse_restore_mxcsr (OrcCompiler *compiler)
+orc_sse_restore_mxcsr (OrcCompiler * compiler)
{
orc_x86_emit_cpuinsn_load_memoffset (compiler, ORC_X86_ldmxcsr, 4, 0,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,params[ORC_VAR_A4]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, params[ORC_VAR_A4]),
compiler->exec_reg, 0);
}
-
diff --git a/orc/orcutils.c b/orc/orcutils.c
index a37129d..c24537d 100644
--- a/orc/orcutils.c
+++ b/orc/orcutils.c
@@ -46,9 +46,9 @@ char *
_strndup (const char *s, int n)
{
char *r;
- r = malloc (n+1);
- memcpy(r,s,n);
- r[n]=0;
+ r = malloc (n + 1);
+ memcpy (r, s, n);
+ r[n] = 0;
return r;
}
@@ -60,16 +60,19 @@ strsplit (const char *s, char delimiter)
const char *tok;
int n = 0;
- while (*s == ' ') s++;
+ while (*s == ' ')
+ s++;
- list = malloc (1 * sizeof(char *));
+ list = malloc (1 * sizeof (char *));
while (*s) {
tok = s;
- while (*s && *s != delimiter) s++;
+ while (*s && *s != delimiter)
+ s++;
list[n] = _strndup (tok, s - tok);
- while (*s && *s == delimiter) s++;
- list = realloc (list, (n + 2) * sizeof(char *));
+ while (*s && *s == delimiter)
+ s++;
+ list = realloc (list, (n + 2) * sizeof (char *));
n++;
}
@@ -84,17 +87,21 @@ get_tag_value (char *s, const char *tag)
char *end;
char *colon;
- flags = strstr(s,tag);
- if (flags == NULL) return NULL;
+ flags = strstr (s, tag);
+ if (flags == NULL)
+ return NULL;
- end = strchr(flags, '\n');
- if (end == NULL) return NULL;
+ end = strchr (flags, '\n');
+ if (end == NULL)
+ return NULL;
colon = strchr (flags, ':');
- if (colon == NULL) return NULL;
+ if (colon == NULL)
+ return NULL;
colon++;
- if(colon >= end) return NULL;
+ if (colon >= end)
+ return NULL;
- return _strndup (colon, end-colon);
+ return _strndup (colon, end - colon);
}
orc_int64
@@ -102,7 +109,7 @@ _strtoll (const char *nptr, char **endptr, int base)
{
int neg = 0;
orc_int64 val = 0;
-
+
/* Skip all spaces */
while (isspace (*nptr))
nptr++;
@@ -155,20 +162,19 @@ _strtoll (const char *nptr, char **endptr, int base)
if (c >= base)
break;
- if ((orc_uint64) val > ORC_UINT64_C(0xffffffffffffffff) / base ||
- (orc_uint64) (val * base) > ORC_UINT64_C(0xffffffffffffffff) - c) {
- val = ORC_UINT64_C(0xffffffffffffffff);
+ if ((orc_uint64) val > ORC_UINT64_C (0xffffffffffffffff) / base ||
+ (orc_uint64) (val * base) > ORC_UINT64_C (0xffffffffffffffff) - c) {
+ val = ORC_UINT64_C (0xffffffffffffffff);
break;
}
val = val * base + c;
-
+
nptr++;
}
if (endptr)
*endptr = (char *) nptr;
- return (neg) ? - val : val;
+ return (neg) ? -val : val;
}
-
diff --git a/orc/orcx86.c b/orc/orcx86.c
index c3a22f1..d8f7e55 100644
--- a/orc/orcx86.c
+++ b/orc/orcx86.c
@@ -22,13 +22,15 @@
*/
const char *
-orc_x86_get_regname(int i)
+orc_x86_get_regname (int i)
{
static const char *x86_regs[] = {
"eax", "ecx", "edx", "ebx", "esp", "ebp", "esi", "edi",
- "r8d", "r9d", "r10d", "r11d", "r12d", "r13d", "r14d", "r15d" };
+ "r8d", "r9d", "r10d", "r11d", "r12d", "r13d", "r14d", "r15d"
+ };
- if (i>=ORC_GP_REG_BASE && i<ORC_GP_REG_BASE + 16) return x86_regs[i - ORC_GP_REG_BASE];
+ if (i >= ORC_GP_REG_BASE && i < ORC_GP_REG_BASE + 16)
+ return x86_regs[i - ORC_GP_REG_BASE];
switch (i) {
case 0:
return "UNALLOCATED";
@@ -40,18 +42,20 @@ orc_x86_get_regname(int i)
}
int
-orc_x86_get_regnum(int i)
+orc_x86_get_regnum (int i)
{
- return (i&0xf);
+ return (i & 0xf);
}
const char *
-orc_x86_get_regname_8(int i)
+orc_x86_get_regname_8 (int i)
{
static const char *x86_regs[] = { "al", "cl", "dl", "bl",
- "ah", "ch", "dh", "bh" };
+ "ah", "ch", "dh", "bh"
+ };
- if (i>=ORC_GP_REG_BASE && i<ORC_GP_REG_BASE + 8) return x86_regs[i - ORC_GP_REG_BASE];
+ if (i >= ORC_GP_REG_BASE && i < ORC_GP_REG_BASE + 8)
+ return x86_regs[i - ORC_GP_REG_BASE];
switch (i) {
case 0:
return "UNALLOCATED";
@@ -63,12 +67,14 @@ orc_x86_get_regname_8(int i)
}
const char *
-orc_x86_get_regname_16(int i)
+orc_x86_get_regname_16 (int i)
{
static const char *x86_regs[] = { "ax", "cx", "dx", "bx",
- "sp", "bp", "si", "di" };
+ "sp", "bp", "si", "di"
+ };
- if (i>=ORC_GP_REG_BASE && i<ORC_GP_REG_BASE + 8) return x86_regs[i - ORC_GP_REG_BASE];
+ if (i >= ORC_GP_REG_BASE && i < ORC_GP_REG_BASE + 8)
+ return x86_regs[i - ORC_GP_REG_BASE];
switch (i) {
case 0:
return "UNALLOCATED";
@@ -80,13 +86,15 @@ orc_x86_get_regname_16(int i)
}
const char *
-orc_x86_get_regname_64(int i)
+orc_x86_get_regname_64 (int i)
{
static const char *x86_regs[] = {
"rax", "rcx", "rdx", "rbx", "rsp", "rbp", "rsi", "rdi",
- "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15" };
+ "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15"
+ };
- if (i>=ORC_GP_REG_BASE && i<ORC_GP_REG_BASE + 16) return x86_regs[i - ORC_GP_REG_BASE];
+ if (i >= ORC_GP_REG_BASE && i < ORC_GP_REG_BASE + 16)
+ return x86_regs[i - ORC_GP_REG_BASE];
switch (i) {
case 0:
return "UNALLOCATED";
@@ -98,7 +106,7 @@ orc_x86_get_regname_64(int i)
}
const char *
-orc_x86_get_regname_ptr(OrcCompiler *compiler, int i)
+orc_x86_get_regname_ptr (OrcCompiler * compiler, int i)
{
if (compiler->is_64bit) {
return orc_x86_get_regname_64 (i);
@@ -108,7 +116,7 @@ orc_x86_get_regname_ptr(OrcCompiler *compiler, int i)
}
const char *
-orc_x86_get_regname_size(int i, int size)
+orc_x86_get_regname_size (int i, int size)
{
switch (size) {
case 1:
@@ -124,13 +132,13 @@ orc_x86_get_regname_size(int i, int size)
}
void
-orc_x86_emit_push (OrcCompiler *compiler, int size, int reg)
+orc_x86_emit_push (OrcCompiler * compiler, int size, int reg)
{
orc_x86_emit_cpuinsn_size (compiler, ORC_X86_push, 0, reg, reg);
}
void
-orc_x86_emit_pop (OrcCompiler *compiler, int size, int reg)
+orc_x86_emit_pop (OrcCompiler * compiler, int size, int reg)
{
orc_x86_emit_cpuinsn_size (compiler, ORC_X86_pop, 0, reg, reg);
}
@@ -139,149 +147,163 @@ orc_x86_emit_pop (OrcCompiler *compiler, int size, int reg)
#define X86_SIB(ss, ind, reg) ((((ss)&3)<<6)|(((ind)&7)<<3)|((reg)&7))
void
-orc_x86_emit_modrm_memoffset_old (OrcCompiler *compiler, int reg1, int offset, int reg2)
+orc_x86_emit_modrm_memoffset_old (OrcCompiler * compiler, int reg1, int offset,
+ int reg2)
{
if (offset == 0 && reg2 != compiler->exec_reg) {
if (reg2 == X86_ESP) {
- *compiler->codeptr++ = X86_MODRM(0, 4, reg1);
- *compiler->codeptr++ = X86_SIB(0, 4, reg2);
+ *compiler->codeptr++ = X86_MODRM (0, 4, reg1);
+ *compiler->codeptr++ = X86_SIB (0, 4, reg2);
} else {
- *compiler->codeptr++ = X86_MODRM(0, reg2, reg1);
+ *compiler->codeptr++ = X86_MODRM (0, reg2, reg1);
}
} else if (offset >= -128 && offset < 128) {
- *compiler->codeptr++ = X86_MODRM(1, reg2, reg1);
+ *compiler->codeptr++ = X86_MODRM (1, reg2, reg1);
if (reg2 == X86_ESP) {
- *compiler->codeptr++ = X86_SIB(0, 4, reg2);
+ *compiler->codeptr++ = X86_SIB (0, 4, reg2);
}
*compiler->codeptr++ = (offset & 0xff);
} else {
- *compiler->codeptr++ = X86_MODRM(2, reg2, reg1);
+ *compiler->codeptr++ = X86_MODRM (2, reg2, reg1);
if (reg2 == X86_ESP) {
- *compiler->codeptr++ = X86_SIB(0, 4, reg2);
+ *compiler->codeptr++ = X86_SIB (0, 4, reg2);
}
*compiler->codeptr++ = (offset & 0xff);
- *compiler->codeptr++ = ((offset>>8) & 0xff);
- *compiler->codeptr++ = ((offset>>16) & 0xff);
- *compiler->codeptr++ = ((offset>>24) & 0xff);
+ *compiler->codeptr++ = ((offset >> 8) & 0xff);
+ *compiler->codeptr++ = ((offset >> 16) & 0xff);
+ *compiler->codeptr++ = ((offset >> 24) & 0xff);
}
}
void
-orc_x86_emit_modrm_memoffset (OrcCompiler *compiler, int offset, int src, int dest)
+orc_x86_emit_modrm_memoffset (OrcCompiler * compiler, int offset, int src,
+ int dest)
{
if (offset == 0 && src != compiler->exec_reg) {
if (src == X86_ESP) {
- *compiler->codeptr++ = X86_MODRM(0, 4, dest);
- *compiler->codeptr++ = X86_SIB(0, 4, src);
+ *compiler->codeptr++ = X86_MODRM (0, 4, dest);
+ *compiler->codeptr++ = X86_SIB (0, 4, src);
} else {
- *compiler->codeptr++ = X86_MODRM(0, src, dest);
+ *compiler->codeptr++ = X86_MODRM (0, src, dest);
}
} else if (offset >= -128 && offset < 128) {
- *compiler->codeptr++ = X86_MODRM(1, src, dest);
+ *compiler->codeptr++ = X86_MODRM (1, src, dest);
if (src == X86_ESP) {
- *compiler->codeptr++ = X86_SIB(0, 4, src);
+ *compiler->codeptr++ = X86_SIB (0, 4, src);
}
*compiler->codeptr++ = (offset & 0xff);
} else {
- *compiler->codeptr++ = X86_MODRM(2, src, dest);
+ *compiler->codeptr++ = X86_MODRM (2, src, dest);
if (src == X86_ESP) {
- *compiler->codeptr++ = X86_SIB(0, 4, src);
+ *compiler->codeptr++ = X86_SIB (0, 4, src);
}
*compiler->codeptr++ = (offset & 0xff);
- *compiler->codeptr++ = ((offset>>8) & 0xff);
- *compiler->codeptr++ = ((offset>>16) & 0xff);
- *compiler->codeptr++ = ((offset>>24) & 0xff);
+ *compiler->codeptr++ = ((offset >> 8) & 0xff);
+ *compiler->codeptr++ = ((offset >> 16) & 0xff);
+ *compiler->codeptr++ = ((offset >> 24) & 0xff);
}
}
-void orc_x86_emit_modrm_memindex (OrcCompiler *compiler, int reg1, int offset,
+void
+orc_x86_emit_modrm_memindex (OrcCompiler * compiler, int reg1, int offset,
int reg2, int regindex, int shift)
{
if (offset == 0) {
- *compiler->codeptr++ = X86_MODRM(0, 4, reg1);
- *compiler->codeptr++ = X86_SIB(shift, regindex, reg2);
+ *compiler->codeptr++ = X86_MODRM (0, 4, reg1);
+ *compiler->codeptr++ = X86_SIB (shift, regindex, reg2);
} else if (offset >= -128 && offset < 128) {
- *compiler->codeptr++ = X86_MODRM(1, 4, reg1);
- *compiler->codeptr++ = X86_SIB(shift, regindex, reg2);
+ *compiler->codeptr++ = X86_MODRM (1, 4, reg1);
+ *compiler->codeptr++ = X86_SIB (shift, regindex, reg2);
*compiler->codeptr++ = (offset & 0xff);
} else {
- *compiler->codeptr++ = X86_MODRM(2, 4, reg1);
- *compiler->codeptr++ = X86_SIB(shift, regindex, reg2);
+ *compiler->codeptr++ = X86_MODRM (2, 4, reg1);
+ *compiler->codeptr++ = X86_SIB (shift, regindex, reg2);
*compiler->codeptr++ = (offset & 0xff);
- *compiler->codeptr++ = ((offset>>8) & 0xff);
- *compiler->codeptr++ = ((offset>>16) & 0xff);
- *compiler->codeptr++ = ((offset>>24) & 0xff);
+ *compiler->codeptr++ = ((offset >> 8) & 0xff);
+ *compiler->codeptr++ = ((offset >> 16) & 0xff);
+ *compiler->codeptr++ = ((offset >> 24) & 0xff);
}
}
-void orc_x86_emit_modrm_memindex2 (OrcCompiler *compiler, int offset,
+void
+orc_x86_emit_modrm_memindex2 (OrcCompiler * compiler, int offset,
int src, int src_index, int shift, int dest)
{
if (offset == 0) {
- *compiler->codeptr++ = X86_MODRM(0, 4, dest);
- *compiler->codeptr++ = X86_SIB(shift, src_index, src);
+ *compiler->codeptr++ = X86_MODRM (0, 4, dest);
+ *compiler->codeptr++ = X86_SIB (shift, src_index, src);
} else if (offset >= -128 && offset < 128) {
- *compiler->codeptr++ = X86_MODRM(1, 4, dest);
- *compiler->codeptr++ = X86_SIB(shift, src_index, src);
+ *compiler->codeptr++ = X86_MODRM (1, 4, dest);
+ *compiler->codeptr++ = X86_SIB (shift, src_index, src);
*compiler->codeptr++ = (offset & 0xff);
} else {
- *compiler->codeptr++ = X86_MODRM(2, 4, dest);
- *compiler->codeptr++ = X86_SIB(shift, src_index, src);
+ *compiler->codeptr++ = X86_MODRM (2, 4, dest);
+ *compiler->codeptr++ = X86_SIB (shift, src_index, src);
*compiler->codeptr++ = (offset & 0xff);
- *compiler->codeptr++ = ((offset>>8) & 0xff);
- *compiler->codeptr++ = ((offset>>16) & 0xff);
- *compiler->codeptr++ = ((offset>>24) & 0xff);
+ *compiler->codeptr++ = ((offset >> 8) & 0xff);
+ *compiler->codeptr++ = ((offset >> 16) & 0xff);
+ *compiler->codeptr++ = ((offset >> 24) & 0xff);
}
}
void
-orc_x86_emit_modrm_reg (OrcCompiler *compiler, int reg1, int reg2)
+orc_x86_emit_modrm_reg (OrcCompiler * compiler, int reg1, int reg2)
{
- *compiler->codeptr++ = X86_MODRM(3, reg1, reg2);
+ *compiler->codeptr++ = X86_MODRM (3, reg1, reg2);
}
void
-orc_x86_emit_rex (OrcCompiler *compiler, int size, int reg1, int reg2, int reg3)
+orc_x86_emit_rex (OrcCompiler * compiler, int size, int reg1, int reg2,
+ int reg3)
{
int rex = 0x40;
if (compiler->is_64bit) {
- if (size >= 8) rex |= 0x08;
- if (reg1 & 8) rex |= 0x4;
- if (reg2 & 8) rex |= 0x2;
- if (reg3 & 8) rex |= 0x1;
-
- if (rex != 0x40) *compiler->codeptr++ = rex;
+ if (size >= 8)
+ rex |= 0x08;
+ if (reg1 & 8)
+ rex |= 0x4;
+ if (reg2 & 8)
+ rex |= 0x2;
+ if (reg3 & 8)
+ rex |= 0x1;
+
+ if (rex != 0x40)
+ *compiler->codeptr++ = rex;
}
}
void
-orc_x86_emit_mov_memoffset_reg (OrcCompiler *compiler, int size, int offset,
+orc_x86_emit_mov_memoffset_reg (OrcCompiler * compiler, int size, int offset,
int reg1, int reg2)
{
switch (size) {
case 1:
- orc_x86_emit_cpuinsn_memoffset_reg (compiler, ORC_X86_movzx_rm_r, 4, offset, reg1, reg2);
+ orc_x86_emit_cpuinsn_memoffset_reg (compiler, ORC_X86_movzx_rm_r, 4,
+ offset, reg1, reg2);
return;
case 2:
- orc_x86_emit_cpuinsn_memoffset_reg (compiler, ORC_X86_movw_rm_r, size, offset, reg1, reg2);
+ orc_x86_emit_cpuinsn_memoffset_reg (compiler, ORC_X86_movw_rm_r, size,
+ offset, reg1, reg2);
break;
case 4:
- orc_x86_emit_cpuinsn_memoffset_reg (compiler, ORC_X86_movl_rm_r, size, offset, reg1, reg2);
+ orc_x86_emit_cpuinsn_memoffset_reg (compiler, ORC_X86_movl_rm_r, size,
+ offset, reg1, reg2);
break;
case 8:
- orc_x86_emit_cpuinsn_memoffset_reg (compiler, ORC_X86_mov_rm_r, size, offset, reg1, reg2);
+ orc_x86_emit_cpuinsn_memoffset_reg (compiler, ORC_X86_mov_rm_r, size,
+ offset, reg1, reg2);
break;
default:
- orc_compiler_error(compiler, "bad size");
+ orc_compiler_error (compiler, "bad size");
break;
}
}
void
-orc_x86_emit_mov_reg_memoffset (OrcCompiler *compiler, int size, int reg1, int offset,
- int reg2)
+orc_x86_emit_mov_reg_memoffset (OrcCompiler * compiler, int size, int reg1,
+ int offset, int reg2)
{
switch (size) {
case 1:
@@ -301,14 +323,15 @@ orc_x86_emit_mov_reg_memoffset (OrcCompiler *compiler, int size, int reg1, int o
reg1, offset, reg2);
break;
default:
- orc_compiler_error(compiler, "bad size");
+ orc_compiler_error (compiler, "bad size");
break;
}
}
void
-orc_x86_emit_add_imm_reg (OrcCompiler *compiler, int size, int value, int reg, orc_bool record)
+orc_x86_emit_add_imm_reg (OrcCompiler * compiler, int size, int value, int reg,
+ orc_bool record)
{
if (!record) {
if (size == 4 && !compiler->is_64bit) {
@@ -333,7 +356,7 @@ orc_x86_emit_add_imm_reg (OrcCompiler *compiler, int size, int value, int reg, o
}
void
-orc_x86_emit_add_reg_reg_shift (OrcCompiler *compiler, int size, int reg1,
+orc_x86_emit_add_reg_reg_shift (OrcCompiler * compiler, int size, int reg1,
int reg2, int shift)
{
if (size == 4) {
@@ -346,17 +369,19 @@ orc_x86_emit_add_reg_reg_shift (OrcCompiler *compiler, int size, int reg1,
}
void
-orc_x86_emit_cmp_imm_reg (OrcCompiler *compiler, int size, int value, int reg)
+orc_x86_emit_cmp_imm_reg (OrcCompiler * compiler, int size, int value, int reg)
{
if (value >= -128 && value < 128) {
- orc_x86_emit_cpuinsn_imm_reg (compiler, ORC_X86_cmp_imm8_rm, size, value, reg);
+ orc_x86_emit_cpuinsn_imm_reg (compiler, ORC_X86_cmp_imm8_rm, size, value,
+ reg);
} else {
- orc_x86_emit_cpuinsn_imm_reg (compiler, ORC_X86_cmp_imm32_rm, size, value, reg);
+ orc_x86_emit_cpuinsn_imm_reg (compiler, ORC_X86_cmp_imm32_rm, size, value,
+ reg);
}
}
void
-orc_x86_emit_cmp_imm_memoffset (OrcCompiler *compiler, int size, int value,
+orc_x86_emit_cmp_imm_memoffset (OrcCompiler * compiler, int size, int value,
int offset, int reg)
{
if (value >= -128 && value < 128) {
@@ -369,7 +394,7 @@ orc_x86_emit_cmp_imm_memoffset (OrcCompiler *compiler, int size, int value,
}
void
-orc_x86_emit_dec_memoffset (OrcCompiler *compiler, int size,
+orc_x86_emit_dec_memoffset (OrcCompiler * compiler, int size,
int offset, int reg)
{
if (size == 4) {
@@ -381,7 +406,8 @@ orc_x86_emit_dec_memoffset (OrcCompiler *compiler, int size,
}
}
-void orc_x86_emit_rep_movs (OrcCompiler *compiler, int size)
+void
+orc_x86_emit_rep_movs (OrcCompiler * compiler, int size)
{
switch (size) {
case 1:
@@ -397,7 +423,7 @@ void orc_x86_emit_rep_movs (OrcCompiler *compiler, int size)
}
void
-x86_add_fixup (OrcCompiler *compiler, unsigned char *ptr, int label, int type)
+x86_add_fixup (OrcCompiler * compiler, unsigned char *ptr, int label, int type)
{
compiler->fixups[compiler->n_fixups].ptr = ptr;
compiler->fixups[compiler->n_fixups].label = label;
@@ -406,29 +432,29 @@ x86_add_fixup (OrcCompiler *compiler, unsigned char *ptr, int label, int type)
}
void
-x86_add_label (OrcCompiler *compiler, unsigned char *ptr, int label)
+x86_add_label (OrcCompiler * compiler, unsigned char *ptr, int label)
{
compiler->labels[label] = ptr;
}
void
-x86_add_label2 (OrcCompiler *compiler, int index, int label)
+x86_add_label2 (OrcCompiler * compiler, int index, int label)
{
compiler->labels_int[label] = index;
}
void
-orc_x86_do_fixups (OrcCompiler *compiler)
+orc_x86_do_fixups (OrcCompiler * compiler)
{
int i;
- for(i=0;i<compiler->n_fixups;i++){
+ for (i = 0; i < compiler->n_fixups; i++) {
if (compiler->fixups[i].type == 0) {
unsigned char *label = compiler->labels[compiler->fixups[i].label];
unsigned char *ptr = compiler->fixups[i].ptr;
int diff;
- diff = ((orc_int8)ptr[0]) + (label - ptr);
- if (diff != (orc_int8)diff) {
+ diff = ((orc_int8) ptr[0]) + (label - ptr);
+ if (diff != (orc_int8) diff) {
orc_compiler_error (compiler, "short jump too long %d", diff);
}
@@ -439,23 +465,23 @@ orc_x86_do_fixups (OrcCompiler *compiler)
int diff;
diff = ORC_READ_UINT32_LE (ptr) + (label - ptr);
- ORC_WRITE_UINT32_LE(ptr, diff);
+ ORC_WRITE_UINT32_LE (ptr, diff);
}
}
}
void
-orc_x86_emit_prologue (OrcCompiler *compiler)
+orc_x86_emit_prologue (OrcCompiler * compiler)
{
- orc_compiler_append_code(compiler,".global %s\n", compiler->program->name);
- orc_compiler_append_code(compiler,".p2align 4\n");
- orc_compiler_append_code(compiler,"%s:\n", compiler->program->name);
+ orc_compiler_append_code (compiler, ".global %s\n", compiler->program->name);
+ orc_compiler_append_code (compiler, ".p2align 4\n");
+ orc_compiler_append_code (compiler, "%s:\n", compiler->program->name);
if (compiler->is_64bit) {
int i;
- for(i=0;i<16;i++){
- if (compiler->used_regs[ORC_GP_REG_BASE+i] &&
- compiler->save_regs[ORC_GP_REG_BASE+i]) {
- orc_x86_emit_push (compiler, 8, ORC_GP_REG_BASE+i);
+ for (i = 0; i < 16; i++) {
+ if (compiler->used_regs[ORC_GP_REG_BASE + i] &&
+ compiler->save_regs[ORC_GP_REG_BASE + i]) {
+ orc_x86_emit_push (compiler, 8, ORC_GP_REG_BASE + i);
}
}
} else {
@@ -463,7 +489,8 @@ orc_x86_emit_prologue (OrcCompiler *compiler)
if (compiler->use_frame_pointer) {
orc_x86_emit_mov_reg_reg (compiler, 4, X86_ESP, X86_EBP);
}
- orc_x86_emit_mov_memoffset_reg (compiler, 4, 8, X86_ESP, compiler->exec_reg);
+ orc_x86_emit_mov_memoffset_reg (compiler, 4, 8, X86_ESP,
+ compiler->exec_reg);
if (compiler->used_regs[X86_EDI]) {
orc_x86_emit_push (compiler, 4, X86_EDI);
}
@@ -476,27 +503,27 @@ orc_x86_emit_prologue (OrcCompiler *compiler)
}
#if 0
- orc_x86_emit_rdtsc(compiler);
+ orc_x86_emit_rdtsc (compiler);
orc_x86_emit_mov_reg_memoffset (compiler, 4, X86_EAX,
- ORC_STRUCT_OFFSET(OrcExecutor,params[ORC_VAR_A3]), compiler->exec_reg);
+ ORC_STRUCT_OFFSET (OrcExecutor, params[ORC_VAR_A3]), compiler->exec_reg);
#endif
}
void
-orc_x86_emit_epilogue (OrcCompiler *compiler)
+orc_x86_emit_epilogue (OrcCompiler * compiler)
{
#if 0
- orc_x86_emit_rdtsc(compiler);
+ orc_x86_emit_rdtsc (compiler);
orc_x86_emit_mov_reg_memoffset (compiler, 4, X86_EAX,
- ORC_STRUCT_OFFSET(OrcExecutor,params[ORC_VAR_A4]), compiler->exec_reg);
+ ORC_STRUCT_OFFSET (OrcExecutor, params[ORC_VAR_A4]), compiler->exec_reg);
#endif
if (compiler->is_64bit) {
int i;
- for(i=15;i>=0;i--){
- if (compiler->used_regs[ORC_GP_REG_BASE+i] &&
- compiler->save_regs[ORC_GP_REG_BASE+i]) {
- orc_x86_emit_pop (compiler, 8, ORC_GP_REG_BASE+i);
+ for (i = 15; i >= 0; i--) {
+ if (compiler->used_regs[ORC_GP_REG_BASE + i] &&
+ compiler->save_regs[ORC_GP_REG_BASE + i]) {
+ orc_x86_emit_pop (compiler, 8, ORC_GP_REG_BASE + i);
}
}
} else {
@@ -517,13 +544,13 @@ orc_x86_emit_epilogue (OrcCompiler *compiler)
/* memcpy implementation based on rep movs */
int
-orc_x86_assemble_copy_check (OrcCompiler *compiler)
+orc_x86_assemble_copy_check (OrcCompiler * compiler)
{
if (compiler->program->n_insns == 1 &&
compiler->program->is_2d == FALSE &&
(strcmp (compiler->program->insns[0].opcode->name, "copyb") == 0 ||
- strcmp (compiler->program->insns[0].opcode->name, "copyw") == 0 ||
- strcmp (compiler->program->insns[0].opcode->name, "copyl") == 0)) {
+ strcmp (compiler->program->insns[0].opcode->name, "copyw") == 0 ||
+ strcmp (compiler->program->insns[0].opcode->name, "copyl") == 0)) {
return TRUE;
}
@@ -531,7 +558,7 @@ orc_x86_assemble_copy_check (OrcCompiler *compiler)
}
void
-orc_x86_assemble_copy (OrcCompiler *compiler)
+orc_x86_assemble_copy (OrcCompiler * compiler)
{
OrcInstruction *insn;
int shift = 0;
@@ -550,27 +577,27 @@ orc_x86_assemble_copy (OrcCompiler *compiler)
orc_x86_emit_prologue (compiler);
orc_x86_emit_mov_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,arrays[insn->dest_args[0]]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, arrays[insn->dest_args[0]]),
compiler->exec_reg, X86_EDI);
orc_x86_emit_mov_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,arrays[insn->src_args[0]]),
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, arrays[insn->src_args[0]]),
compiler->exec_reg, X86_ESI);
orc_x86_emit_mov_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,n), compiler->exec_reg,
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, n), compiler->exec_reg,
compiler->gp_tmpreg);
orc_x86_emit_sar_imm_reg (compiler, 4, 2 - shift, compiler->gp_tmpreg);
orc_x86_emit_rep_movs (compiler, 4);
if (shift == 0) {
orc_x86_emit_mov_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,n), compiler->exec_reg,
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, n), compiler->exec_reg,
compiler->gp_tmpreg);
orc_x86_emit_and_imm_reg (compiler, 4, 3, compiler->gp_tmpreg);
orc_x86_emit_rep_movs (compiler, 1);
}
if (shift == 1) {
orc_x86_emit_mov_memoffset_reg (compiler, 4,
- (int)ORC_STRUCT_OFFSET(OrcExecutor,n), compiler->exec_reg,
+ (int) ORC_STRUCT_OFFSET (OrcExecutor, n), compiler->exec_reg,
compiler->gp_tmpreg);
orc_x86_emit_and_imm_reg (compiler, 4, 1, compiler->gp_tmpreg);
orc_x86_emit_rep_movs (compiler, 2);
@@ -580,4 +607,3 @@ orc_x86_assemble_copy (OrcCompiler *compiler)
orc_x86_do_fixups (compiler);
}
-
diff --git a/orc/orcx86insn.c b/orc/orcx86insn.c
index 4675a99..af49d90 100644
--- a/orc/orcx86insn.c
+++ b/orc/orcx86insn.c
@@ -14,253 +14,253 @@
static const OrcSysOpcode orc_x86_opcodes[] = {
- { "punpcklbw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f60 },
- { "punpcklwd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f61 },
- { "punpckldq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f62 },
- { "packsswb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f63 },
- { "pcmpgtb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f64 },
- { "pcmpgtw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f65 },
- { "pcmpgtd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f66 },
- { "packuswb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f67 },
- { "punpckhbw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f68 },
- { "punpckhwd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f69 },
- { "punpckhdq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f6a },
- { "packssdw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f6b },
- { "punpcklqdq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f6c },
- { "punpckhqdq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f6d },
- { "movdqa", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f6f },
- { "psraw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fe1 },
- { "psrlw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fd1 },
- { "psllw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0ff1 },
- { "psrad", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fe2 },
- { "psrld", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fd2 },
- { "pslld", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0ff2 },
- { "psrlq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fd3 },
- { "psllq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0ff3 },
- { "psrldq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f73 },
- { "pslldq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f73 },
- { "psrlq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fd3 },
- { "pcmpeqb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f74 },
- { "pcmpeqw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f75 },
- { "pcmpeqd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f76 },
- { "paddq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fd4 },
- { "pmullw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fd5 },
- { "psubusb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fd8 },
- { "psubusw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fd9 },
- { "pminub", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fda },
- { "pand", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fdb },
- { "paddusb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fdc },
- { "paddusw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fdd },
- { "pmaxub", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fde },
- { "pandn", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fdf },
- { "pavgb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fe0 },
- { "pavgw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fe3 },
- { "pmulhuw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fe4 },
- { "pmulhw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fe5 },
- { "psubsb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fe8 },
- { "psubsw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fe9 },
- { "pminsw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fea },
- { "por", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0feb },
- { "paddsb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fec },
- { "paddsw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fed },
- { "pmaxsw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fee },
- { "pxor", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fef },
- { "pmuludq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0ff4 },
- { "pmaddwd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0ff5 },
- { "psadbw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0ff6 },
- { "psubb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0ff8 },
- { "psubw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0ff9 },
- { "psubd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0ffa },
- { "psubq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0ffb },
- { "paddb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0ffc },
- { "paddw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0ffd },
- { "paddd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0ffe },
- { "pshufb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3800 },
- { "phaddw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3801 },
- { "phaddd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3802 },
- { "phaddsw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3803 },
- { "pmaddubsw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3804 },
- { "phsubw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3805 },
- { "phsubd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3806 },
- { "phsubsw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3807 },
- { "psignb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3808 },
- { "psignw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3809 },
- { "psignd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f380a },
- { "pmulhrsw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f380b },
- { "pabsb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f381c },
- { "pabsw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f381d },
- { "pabsd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f381e },
- { "pmovsxbw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3820 },
- { "pmovsxbd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3821 },
- { "pmovsxbq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3822 },
- { "pmovsxwd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3823 },
- { "pmovsxwq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3824 },
- { "pmovsxdq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3825 },
- { "pmuldq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3828 },
- { "pcmpeqq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3829 },
- { "packusdw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f382b },
- { "pmovzxbw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3830 },
- { "pmovzxbd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3831 },
- { "pmovzxbq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3832 },
- { "pmovzxwd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3833 },
- { "pmovzxwq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3834 },
- { "pmovzxdq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3835 },
- { "pmulld", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3840 },
- { "phminposuw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3841 },
- { "pminsb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3838 },
- { "pminsd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3839 },
- { "pminuw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f383a },
- { "pminud", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f383b },
- { "pmaxsb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f383c },
- { "pmaxsd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f383d },
- { "pmaxuw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f383e },
- { "pmaxud", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f383f },
- { "pcmpgtq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3837 },
- { "addps", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x00, 0x0f58 },
- { "subps", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x00, 0x0f5c },
- { "mulps", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x00, 0x0f59 },
- { "divps", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x00, 0x0f5e },
- { "sqrtps", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x00, 0x0f51 },
- { "addpd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x66, 0x0f58 },
- { "subpd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x66, 0x0f5c },
- { "mulpd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x66, 0x0f59 },
- { "divpd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x66, 0x0f5e },
- { "sqrtpd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x66, 0x0f51 },
- { "cmpeqps", ORC_X86_INSN_TYPE_SSEM_SSE, 0, 0x00, 0x0fc2, 0 },
- { "cmpeqpd", ORC_X86_INSN_TYPE_SSEM_SSE, 0, 0x66, 0x0fc2, 0 },
- { "cmpltps", ORC_X86_INSN_TYPE_SSEM_SSE, 0, 0x00, 0x0fc2, 1 },
- { "cmpltpd", ORC_X86_INSN_TYPE_SSEM_SSE, 0, 0x66, 0x0fc2, 1 },
- { "cmpleps", ORC_X86_INSN_TYPE_SSEM_SSE, 0, 0x00, 0x0fc2, 2 },
- { "cmplepd", ORC_X86_INSN_TYPE_SSEM_SSE, 0, 0x66, 0x0fc2, 2 },
- { "cvttps2dq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0xf3, 0x0f5b },
- { "cvttpd2dq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x66, 0x0fe6 },
- { "cvtdq2ps", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x00, 0x0f5b },
- { "cvtdq2pd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0xf3, 0x0fe6 },
- { "cvtps2pd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x00, 0x0f5a },
- { "cvtpd2ps", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x66, 0x0f5a },
- { "minps", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x00, 0x0f5d },
- { "minpd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x66, 0x0f5d },
- { "maxps", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x00, 0x0f5f },
- { "maxpd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x66, 0x0f5f },
- { "psraw", ORC_X86_INSN_TYPE_IMM8_MMX_SHIFT, 0, 0x01, 0x0f71, 4 },
- { "psrlw", ORC_X86_INSN_TYPE_IMM8_MMX_SHIFT, 0, 0x01, 0x0f71, 2 },
- { "psllw", ORC_X86_INSN_TYPE_IMM8_MMX_SHIFT, 0, 0x01, 0x0f71, 6 },
- { "psrad", ORC_X86_INSN_TYPE_IMM8_MMX_SHIFT, 0, 0x01, 0x0f72, 4 },
- { "psrld", ORC_X86_INSN_TYPE_IMM8_MMX_SHIFT, 0, 0x01, 0x0f72, 2 },
- { "pslld", ORC_X86_INSN_TYPE_IMM8_MMX_SHIFT, 0, 0x01, 0x0f72, 6 },
- { "psrlq", ORC_X86_INSN_TYPE_IMM8_MMX_SHIFT, 0, 0x01, 0x0f73, 2 },
- { "psllq", ORC_X86_INSN_TYPE_IMM8_MMX_SHIFT, 0, 0x01, 0x0f73, 6 },
- { "psrldq", ORC_X86_INSN_TYPE_IMM8_MMX_SHIFT, 0, 0x01, 0x0f73, 3 },
- { "pslldq", ORC_X86_INSN_TYPE_IMM8_MMX_SHIFT, 0, 0x01, 0x0f73, 7 },
- { "pshufd", ORC_X86_INSN_TYPE_IMM8_MMXM_MMX, 0, 0x66, 0x0f70 },
- { "pshuflw", ORC_X86_INSN_TYPE_IMM8_MMXM_MMX, 0, 0xf2, 0x0f70 },
- { "pshufhw", ORC_X86_INSN_TYPE_IMM8_MMXM_MMX, 0, 0xf3, 0x0f70 },
- { "palignr", ORC_X86_INSN_TYPE_IMM8_MMXM_MMX, 0, 0x66, 0x0f3a0f },
- { "pinsrw", ORC_X86_INSN_TYPE_IMM8_REGM_MMX, 0, 0x01, 0x0fc4 },
- { "movd", ORC_X86_INSN_TYPE_REGM_MMX, 0, 0x01, 0x0f6e },
- { "movq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0xf3, 0x0f7e },
- { "movdqa", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x66, 0x0f6f },
- { "movdqu", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0xf3, 0x0f6f },
- { "movhps", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x00, 0x0f16 },
- { "pextrw", ORC_X86_INSN_TYPE_IMM8_MMX_REG_REV, 0, 0x01, 0x0f3a15 },
- { "movd", ORC_X86_INSN_TYPE_MMX_REGM_REV, 0, 0x01, 0x0f7e },
- { "movq", ORC_X86_INSN_TYPE_MMXM_MMX_REV, 0, 0x66, 0x0fd6 },
- { "movdqa", ORC_X86_INSN_TYPE_MMXM_MMX_REV, 0, 0x66, 0x0f7f },
- { "movdqu", ORC_X86_INSN_TYPE_MMXM_MMX_REV, 0, 0xf3, 0x0f7f },
- { "movntdq", ORC_X86_INSN_TYPE_MMXM_MMX_REV, 0, 0x66, 0x0fe7 },
- { "ldmxcsr", ORC_X86_INSN_TYPE_MEM, 0, 0x00, 0x0fae, 2 },
- { "stmxcsr", ORC_X86_INSN_TYPE_MEM, 0, 0x00, 0x0fae, 3 },
- { "add", ORC_X86_INSN_TYPE_IMM8_REGM, 0, 0x00, 0x83, 0 },
- { "add", ORC_X86_INSN_TYPE_IMM32_REGM, 0, 0x00, 0x81, 0 },
- { "add", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x00, 0x03 },
- { "add", ORC_X86_INSN_TYPE_REG_REGM, 0, 0x00, 0x01 },
- { "or", ORC_X86_INSN_TYPE_IMM8_REGM, 0, 0x00, 0x83, 1 },
- { "or", ORC_X86_INSN_TYPE_IMM32_REGM, 0, 0x00, 0x81, 1 },
- { "or", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x00, 0x0b },
- { "or", ORC_X86_INSN_TYPE_REG_REGM, 0, 0x00, 0x09 },
- { "adc", ORC_X86_INSN_TYPE_IMM8_REGM, 0, 0x00, 0x83, 2 },
- { "adc", ORC_X86_INSN_TYPE_IMM32_REGM, 0, 0x00, 0x81, 2 },
- { "adc", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x00, 0x13 },
- { "adc", ORC_X86_INSN_TYPE_REG_REGM, 0, 0x00, 0x11 },
- { "sbb", ORC_X86_INSN_TYPE_IMM8_REGM, 0, 0x00, 0x83, 3 },
- { "sbb", ORC_X86_INSN_TYPE_IMM32_REGM, 0, 0x00, 0x81, 3 },
- { "sbb", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x00, 0x1b },
- { "sbb", ORC_X86_INSN_TYPE_REG_REGM, 0, 0x00, 0x19 },
- { "and", ORC_X86_INSN_TYPE_IMM8_REGM, 0, 0x00, 0x83, 4 },
- { "and", ORC_X86_INSN_TYPE_IMM32_REGM, 0, 0x00, 0x81, 4 },
- { "and", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x00, 0x23 },
- { "and", ORC_X86_INSN_TYPE_REG_REGM, 0, 0x00, 0x21 },
- { "sub", ORC_X86_INSN_TYPE_IMM8_REGM, 0, 0x00, 0x83, 5 },
- { "sub", ORC_X86_INSN_TYPE_IMM32_REGM, 0, 0x00, 0x81, 5 },
- { "sub", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x00, 0x2b },
- { "sub", ORC_X86_INSN_TYPE_REG_REGM, 0, 0x00, 0x29 },
- { "xor", ORC_X86_INSN_TYPE_IMM8_REGM, 0, 0x00, 0x83, 6 },
- { "xor", ORC_X86_INSN_TYPE_IMM32_REGM, 0, 0x00, 0x81, 6 },
- { "xor", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x00, 0x33 },
- { "xor", ORC_X86_INSN_TYPE_REG_REGM, 0, 0x00, 0x31 },
- { "cmp", ORC_X86_INSN_TYPE_IMM8_REGM, 0, 0x00, 0x83, 7 },
- { "cmp", ORC_X86_INSN_TYPE_IMM32_REGM, 0, 0x00, 0x81, 7 },
- { "cmp", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x00, 0x3b },
- { "cmp", ORC_X86_INSN_TYPE_REG_REGM, 0, 0x00, 0x39 },
- { "jo", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x70 },
- { "jno", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x71 },
- { "jc", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x72 },
- { "jnc", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x73 },
- { "jz", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x74 },
- { "jnz", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x75 },
- { "jbe", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x76 },
- { "ja", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x77 },
- { "js", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x78 },
- { "jns", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x79 },
- { "jp", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x7a },
- { "jnp", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x7b },
- { "jl", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x7c },
- { "jge", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x7d },
- { "jle", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x7e },
- { "jg", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x7f },
- { "jmp", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0xeb },
- { "", ORC_X86_INSN_TYPE_LABEL, 0, 0x00, 0x00 },
- { "ret", ORC_X86_INSN_TYPE_NONE, 0, 0x00, 0xc3 },
- { "retq", ORC_X86_INSN_TYPE_NONE, 0, 0x00, 0xc3 },
- { "emms", ORC_X86_INSN_TYPE_NONE, 0, 0x00, 0x0f77 },
- { "rdtsc", ORC_X86_INSN_TYPE_NONE, 0, 0x00, 0x0f31 },
- { "nop", ORC_X86_INSN_TYPE_NONE, 0, 0x00, 0x90 },
- { "rep movsb", ORC_X86_INSN_TYPE_NONE, 0, 0xf3, 0xa4 },
- { "rep movsw", ORC_X86_INSN_TYPE_NONE, 0, 0x66, 0xf3a5 },
- { "rep movsl", ORC_X86_INSN_TYPE_NONE, 0, 0xf3, 0xa5 },
- { "push", ORC_X86_INSN_TYPE_STACK, 0, 0x00, 0x50 },
- { "pop", ORC_X86_INSN_TYPE_STACK, 0, 0x00, 0x58 },
- { "movzx", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x00, 0x0fb6 },
- { "movw", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x66, 0x8b },
- { "movl", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x00, 0x8b },
- { "mov", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x00, 0x8b },
- { "mov", ORC_X86_INSN_TYPE_IMM32_REGM_MOV, 0, 0x00, 0xb8 },
- { "movb", ORC_X86_INSN_TYPE_REG8_REGM, 0, 0x00, 0x88 },
- { "movw", ORC_X86_INSN_TYPE_REG16_REGM, 0, 0x66, 0x89 },
- { "movl", ORC_X86_INSN_TYPE_REG_REGM, 0, 0x00, 0x89 },
- { "mov", ORC_X86_INSN_TYPE_REG_REGM, 0, 0x00, 0x89 },
- { "test", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x00, 0x85 },
- { "testl", ORC_X86_INSN_TYPE_IMM32_REGM, 0, 0x00, 0xf7, 0 },
- { "leal", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x00, 0x8d },
- { "leaq", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x00, 0x8d },
- { "imul", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x00, 0x0faf },
- { "imull", ORC_X86_INSN_TYPE_REGM, 0, 0x00, 0xf7, 5 },
- { "incl", ORC_X86_INSN_TYPE_REGM, 0, 0x00, 0xff, 0 },
- { "decl", ORC_X86_INSN_TYPE_REGM, 0, 0x00, 0xff, 1 },
- { "sar", ORC_X86_INSN_TYPE_IMM8_REGM, 0, 0x00, 0xc1, 7 },
- { "sar", ORC_X86_INSN_TYPE_REGM, 0, 0x00, 0xd1, 7 },
- { "and", ORC_X86_INSN_TYPE_IMM32_A, 0, 0x00, 0x25, 4 },
- { "", ORC_X86_INSN_TYPE_ALIGN, 0, 0x00, 0x00 },
- { "pshufw", ORC_X86_INSN_TYPE_IMM8_MMXM_MMX, 0, 0x00, 0x0f70 },
- { "movq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x00, 0x0f6f },
- { "movq", ORC_X86_INSN_TYPE_MMXM_MMX_REV, 0, 0x00, 0x0f7f },
+ {"punpcklbw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f60},
+ {"punpcklwd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f61},
+ {"punpckldq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f62},
+ {"packsswb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f63},
+ {"pcmpgtb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f64},
+ {"pcmpgtw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f65},
+ {"pcmpgtd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f66},
+ {"packuswb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f67},
+ {"punpckhbw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f68},
+ {"punpckhwd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f69},
+ {"punpckhdq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f6a},
+ {"packssdw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f6b},
+ {"punpcklqdq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f6c},
+ {"punpckhqdq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f6d},
+ {"movdqa", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f6f},
+ {"psraw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fe1},
+ {"psrlw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fd1},
+ {"psllw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0ff1},
+ {"psrad", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fe2},
+ {"psrld", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fd2},
+ {"pslld", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0ff2},
+ {"psrlq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fd3},
+ {"psllq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0ff3},
+ {"psrldq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f73},
+ {"pslldq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f73},
+ {"psrlq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fd3},
+ {"pcmpeqb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f74},
+ {"pcmpeqw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f75},
+ {"pcmpeqd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f76},
+ {"paddq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fd4},
+ {"pmullw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fd5},
+ {"psubusb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fd8},
+ {"psubusw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fd9},
+ {"pminub", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fda},
+ {"pand", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fdb},
+ {"paddusb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fdc},
+ {"paddusw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fdd},
+ {"pmaxub", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fde},
+ {"pandn", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fdf},
+ {"pavgb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fe0},
+ {"pavgw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fe3},
+ {"pmulhuw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fe4},
+ {"pmulhw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fe5},
+ {"psubsb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fe8},
+ {"psubsw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fe9},
+ {"pminsw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fea},
+ {"por", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0feb},
+ {"paddsb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fec},
+ {"paddsw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fed},
+ {"pmaxsw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fee},
+ {"pxor", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0fef},
+ {"pmuludq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0ff4},
+ {"pmaddwd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0ff5},
+ {"psadbw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0ff6},
+ {"psubb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0ff8},
+ {"psubw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0ff9},
+ {"psubd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0ffa},
+ {"psubq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0ffb},
+ {"paddb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0ffc},
+ {"paddw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0ffd},
+ {"paddd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0ffe},
+ {"pshufb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3800},
+ {"phaddw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3801},
+ {"phaddd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3802},
+ {"phaddsw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3803},
+ {"pmaddubsw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3804},
+ {"phsubw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3805},
+ {"phsubd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3806},
+ {"phsubsw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3807},
+ {"psignb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3808},
+ {"psignw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3809},
+ {"psignd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f380a},
+ {"pmulhrsw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f380b},
+ {"pabsb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f381c},
+ {"pabsw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f381d},
+ {"pabsd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f381e},
+ {"pmovsxbw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3820},
+ {"pmovsxbd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3821},
+ {"pmovsxbq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3822},
+ {"pmovsxwd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3823},
+ {"pmovsxwq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3824},
+ {"pmovsxdq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3825},
+ {"pmuldq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3828},
+ {"pcmpeqq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3829},
+ {"packusdw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f382b},
+ {"pmovzxbw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3830},
+ {"pmovzxbd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3831},
+ {"pmovzxbq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3832},
+ {"pmovzxwd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3833},
+ {"pmovzxwq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3834},
+ {"pmovzxdq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3835},
+ {"pmulld", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3840},
+ {"phminposuw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3841},
+ {"pminsb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3838},
+ {"pminsd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3839},
+ {"pminuw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f383a},
+ {"pminud", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f383b},
+ {"pmaxsb", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f383c},
+ {"pmaxsd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f383d},
+ {"pmaxuw", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f383e},
+ {"pmaxud", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f383f},
+ {"pcmpgtq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x01, 0x0f3837},
+ {"addps", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x00, 0x0f58},
+ {"subps", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x00, 0x0f5c},
+ {"mulps", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x00, 0x0f59},
+ {"divps", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x00, 0x0f5e},
+ {"sqrtps", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x00, 0x0f51},
+ {"addpd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x66, 0x0f58},
+ {"subpd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x66, 0x0f5c},
+ {"mulpd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x66, 0x0f59},
+ {"divpd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x66, 0x0f5e},
+ {"sqrtpd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x66, 0x0f51},
+ {"cmpeqps", ORC_X86_INSN_TYPE_SSEM_SSE, 0, 0x00, 0x0fc2, 0},
+ {"cmpeqpd", ORC_X86_INSN_TYPE_SSEM_SSE, 0, 0x66, 0x0fc2, 0},
+ {"cmpltps", ORC_X86_INSN_TYPE_SSEM_SSE, 0, 0x00, 0x0fc2, 1},
+ {"cmpltpd", ORC_X86_INSN_TYPE_SSEM_SSE, 0, 0x66, 0x0fc2, 1},
+ {"cmpleps", ORC_X86_INSN_TYPE_SSEM_SSE, 0, 0x00, 0x0fc2, 2},
+ {"cmplepd", ORC_X86_INSN_TYPE_SSEM_SSE, 0, 0x66, 0x0fc2, 2},
+ {"cvttps2dq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0xf3, 0x0f5b},
+ {"cvttpd2dq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x66, 0x0fe6},
+ {"cvtdq2ps", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x00, 0x0f5b},
+ {"cvtdq2pd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0xf3, 0x0fe6},
+ {"cvtps2pd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x00, 0x0f5a},
+ {"cvtpd2ps", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x66, 0x0f5a},
+ {"minps", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x00, 0x0f5d},
+ {"minpd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x66, 0x0f5d},
+ {"maxps", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x00, 0x0f5f},
+ {"maxpd", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x66, 0x0f5f},
+ {"psraw", ORC_X86_INSN_TYPE_IMM8_MMX_SHIFT, 0, 0x01, 0x0f71, 4},
+ {"psrlw", ORC_X86_INSN_TYPE_IMM8_MMX_SHIFT, 0, 0x01, 0x0f71, 2},
+ {"psllw", ORC_X86_INSN_TYPE_IMM8_MMX_SHIFT, 0, 0x01, 0x0f71, 6},
+ {"psrad", ORC_X86_INSN_TYPE_IMM8_MMX_SHIFT, 0, 0x01, 0x0f72, 4},
+ {"psrld", ORC_X86_INSN_TYPE_IMM8_MMX_SHIFT, 0, 0x01, 0x0f72, 2},
+ {"pslld", ORC_X86_INSN_TYPE_IMM8_MMX_SHIFT, 0, 0x01, 0x0f72, 6},
+ {"psrlq", ORC_X86_INSN_TYPE_IMM8_MMX_SHIFT, 0, 0x01, 0x0f73, 2},
+ {"psllq", ORC_X86_INSN_TYPE_IMM8_MMX_SHIFT, 0, 0x01, 0x0f73, 6},
+ {"psrldq", ORC_X86_INSN_TYPE_IMM8_MMX_SHIFT, 0, 0x01, 0x0f73, 3},
+ {"pslldq", ORC_X86_INSN_TYPE_IMM8_MMX_SHIFT, 0, 0x01, 0x0f73, 7},
+ {"pshufd", ORC_X86_INSN_TYPE_IMM8_MMXM_MMX, 0, 0x66, 0x0f70},
+ {"pshuflw", ORC_X86_INSN_TYPE_IMM8_MMXM_MMX, 0, 0xf2, 0x0f70},
+ {"pshufhw", ORC_X86_INSN_TYPE_IMM8_MMXM_MMX, 0, 0xf3, 0x0f70},
+ {"palignr", ORC_X86_INSN_TYPE_IMM8_MMXM_MMX, 0, 0x66, 0x0f3a0f},
+ {"pinsrw", ORC_X86_INSN_TYPE_IMM8_REGM_MMX, 0, 0x01, 0x0fc4},
+ {"movd", ORC_X86_INSN_TYPE_REGM_MMX, 0, 0x01, 0x0f6e},
+ {"movq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0xf3, 0x0f7e},
+ {"movdqa", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x66, 0x0f6f},
+ {"movdqu", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0xf3, 0x0f6f},
+ {"movhps", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x00, 0x0f16},
+ {"pextrw", ORC_X86_INSN_TYPE_IMM8_MMX_REG_REV, 0, 0x01, 0x0f3a15},
+ {"movd", ORC_X86_INSN_TYPE_MMX_REGM_REV, 0, 0x01, 0x0f7e},
+ {"movq", ORC_X86_INSN_TYPE_MMXM_MMX_REV, 0, 0x66, 0x0fd6},
+ {"movdqa", ORC_X86_INSN_TYPE_MMXM_MMX_REV, 0, 0x66, 0x0f7f},
+ {"movdqu", ORC_X86_INSN_TYPE_MMXM_MMX_REV, 0, 0xf3, 0x0f7f},
+ {"movntdq", ORC_X86_INSN_TYPE_MMXM_MMX_REV, 0, 0x66, 0x0fe7},
+ {"ldmxcsr", ORC_X86_INSN_TYPE_MEM, 0, 0x00, 0x0fae, 2},
+ {"stmxcsr", ORC_X86_INSN_TYPE_MEM, 0, 0x00, 0x0fae, 3},
+ {"add", ORC_X86_INSN_TYPE_IMM8_REGM, 0, 0x00, 0x83, 0},
+ {"add", ORC_X86_INSN_TYPE_IMM32_REGM, 0, 0x00, 0x81, 0},
+ {"add", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x00, 0x03},
+ {"add", ORC_X86_INSN_TYPE_REG_REGM, 0, 0x00, 0x01},
+ {"or", ORC_X86_INSN_TYPE_IMM8_REGM, 0, 0x00, 0x83, 1},
+ {"or", ORC_X86_INSN_TYPE_IMM32_REGM, 0, 0x00, 0x81, 1},
+ {"or", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x00, 0x0b},
+ {"or", ORC_X86_INSN_TYPE_REG_REGM, 0, 0x00, 0x09},
+ {"adc", ORC_X86_INSN_TYPE_IMM8_REGM, 0, 0x00, 0x83, 2},
+ {"adc", ORC_X86_INSN_TYPE_IMM32_REGM, 0, 0x00, 0x81, 2},
+ {"adc", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x00, 0x13},
+ {"adc", ORC_X86_INSN_TYPE_REG_REGM, 0, 0x00, 0x11},
+ {"sbb", ORC_X86_INSN_TYPE_IMM8_REGM, 0, 0x00, 0x83, 3},
+ {"sbb", ORC_X86_INSN_TYPE_IMM32_REGM, 0, 0x00, 0x81, 3},
+ {"sbb", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x00, 0x1b},
+ {"sbb", ORC_X86_INSN_TYPE_REG_REGM, 0, 0x00, 0x19},
+ {"and", ORC_X86_INSN_TYPE_IMM8_REGM, 0, 0x00, 0x83, 4},
+ {"and", ORC_X86_INSN_TYPE_IMM32_REGM, 0, 0x00, 0x81, 4},
+ {"and", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x00, 0x23},
+ {"and", ORC_X86_INSN_TYPE_REG_REGM, 0, 0x00, 0x21},
+ {"sub", ORC_X86_INSN_TYPE_IMM8_REGM, 0, 0x00, 0x83, 5},
+ {"sub", ORC_X86_INSN_TYPE_IMM32_REGM, 0, 0x00, 0x81, 5},
+ {"sub", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x00, 0x2b},
+ {"sub", ORC_X86_INSN_TYPE_REG_REGM, 0, 0x00, 0x29},
+ {"xor", ORC_X86_INSN_TYPE_IMM8_REGM, 0, 0x00, 0x83, 6},
+ {"xor", ORC_X86_INSN_TYPE_IMM32_REGM, 0, 0x00, 0x81, 6},
+ {"xor", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x00, 0x33},
+ {"xor", ORC_X86_INSN_TYPE_REG_REGM, 0, 0x00, 0x31},
+ {"cmp", ORC_X86_INSN_TYPE_IMM8_REGM, 0, 0x00, 0x83, 7},
+ {"cmp", ORC_X86_INSN_TYPE_IMM32_REGM, 0, 0x00, 0x81, 7},
+ {"cmp", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x00, 0x3b},
+ {"cmp", ORC_X86_INSN_TYPE_REG_REGM, 0, 0x00, 0x39},
+ {"jo", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x70},
+ {"jno", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x71},
+ {"jc", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x72},
+ {"jnc", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x73},
+ {"jz", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x74},
+ {"jnz", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x75},
+ {"jbe", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x76},
+ {"ja", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x77},
+ {"js", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x78},
+ {"jns", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x79},
+ {"jp", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x7a},
+ {"jnp", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x7b},
+ {"jl", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x7c},
+ {"jge", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x7d},
+ {"jle", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x7e},
+ {"jg", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0x7f},
+ {"jmp", ORC_X86_INSN_TYPE_BRANCH, 0, 0x00, 0xeb},
+ {"", ORC_X86_INSN_TYPE_LABEL, 0, 0x00, 0x00},
+ {"ret", ORC_X86_INSN_TYPE_NONE, 0, 0x00, 0xc3},
+ {"retq", ORC_X86_INSN_TYPE_NONE, 0, 0x00, 0xc3},
+ {"emms", ORC_X86_INSN_TYPE_NONE, 0, 0x00, 0x0f77},
+ {"rdtsc", ORC_X86_INSN_TYPE_NONE, 0, 0x00, 0x0f31},
+ {"nop", ORC_X86_INSN_TYPE_NONE, 0, 0x00, 0x90},
+ {"rep movsb", ORC_X86_INSN_TYPE_NONE, 0, 0xf3, 0xa4},
+ {"rep movsw", ORC_X86_INSN_TYPE_NONE, 0, 0x66, 0xf3a5},
+ {"rep movsl", ORC_X86_INSN_TYPE_NONE, 0, 0xf3, 0xa5},
+ {"push", ORC_X86_INSN_TYPE_STACK, 0, 0x00, 0x50},
+ {"pop", ORC_X86_INSN_TYPE_STACK, 0, 0x00, 0x58},
+ {"movzx", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x00, 0x0fb6},
+ {"movw", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x66, 0x8b},
+ {"movl", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x00, 0x8b},
+ {"mov", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x00, 0x8b},
+ {"mov", ORC_X86_INSN_TYPE_IMM32_REGM_MOV, 0, 0x00, 0xb8},
+ {"movb", ORC_X86_INSN_TYPE_REG8_REGM, 0, 0x00, 0x88},
+ {"movw", ORC_X86_INSN_TYPE_REG16_REGM, 0, 0x66, 0x89},
+ {"movl", ORC_X86_INSN_TYPE_REG_REGM, 0, 0x00, 0x89},
+ {"mov", ORC_X86_INSN_TYPE_REG_REGM, 0, 0x00, 0x89},
+ {"test", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x00, 0x85},
+ {"testl", ORC_X86_INSN_TYPE_IMM32_REGM, 0, 0x00, 0xf7, 0},
+ {"leal", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x00, 0x8d},
+ {"leaq", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x00, 0x8d},
+ {"imul", ORC_X86_INSN_TYPE_REGM_REG, 0, 0x00, 0x0faf},
+ {"imull", ORC_X86_INSN_TYPE_REGM, 0, 0x00, 0xf7, 5},
+ {"incl", ORC_X86_INSN_TYPE_REGM, 0, 0x00, 0xff, 0},
+ {"decl", ORC_X86_INSN_TYPE_REGM, 0, 0x00, 0xff, 1},
+ {"sar", ORC_X86_INSN_TYPE_IMM8_REGM, 0, 0x00, 0xc1, 7},
+ {"sar", ORC_X86_INSN_TYPE_REGM, 0, 0x00, 0xd1, 7},
+ {"and", ORC_X86_INSN_TYPE_IMM32_A, 0, 0x00, 0x25, 4},
+ {"", ORC_X86_INSN_TYPE_ALIGN, 0, 0x00, 0x00},
+ {"pshufw", ORC_X86_INSN_TYPE_IMM8_MMXM_MMX, 0, 0x00, 0x0f70},
+ {"movq", ORC_X86_INSN_TYPE_MMXM_MMX, 0, 0x00, 0x0f6f},
+ {"movq", ORC_X86_INSN_TYPE_MMXM_MMX_REV, 0, 0x00, 0x0f7f},
};
static void
-output_opcode (OrcCompiler *p, const OrcSysOpcode *opcode, int size,
+output_opcode (OrcCompiler * p, const OrcSysOpcode * opcode, int size,
int src, int dest, int is_sse)
{
- ORC_ASSERT(opcode->code != 0);
+ ORC_ASSERT (opcode->code != 0);
if (opcode->prefix != 0) {
if (opcode->prefix == 0x01) {
@@ -298,7 +298,7 @@ is_sse_reg (int reg)
}
void
-orc_x86_insn_output_asm (OrcCompiler *p, OrcX86Insn *xinsn)
+orc_x86_insn_output_asm (OrcCompiler * p, OrcX86Insn * xinsn)
{
char imm_str[40] = { 0 };
char op1_str[40] = { 0 };
@@ -306,11 +306,12 @@ orc_x86_insn_output_asm (OrcCompiler *p, OrcX86Insn *xinsn)
int is_sse;
if (xinsn->opcode->type == ORC_X86_INSN_TYPE_ALIGN) {
- if (xinsn->size > 0) ORC_ASM_CODE(p,".p2align %d\n", xinsn->size);
+ if (xinsn->size > 0)
+ ORC_ASM_CODE (p, ".p2align %d\n", xinsn->size);
return;
}
if (xinsn->opcode->type == ORC_X86_INSN_TYPE_LABEL) {
- ORC_ASM_CODE(p,"%d:\n", xinsn->label);
+ ORC_ASM_CODE (p, "%d:\n", xinsn->label);
return;
}
@@ -347,11 +348,11 @@ orc_x86_insn_output_asm (OrcCompiler *p, OrcX86Insn *xinsn)
case ORC_X86_INSN_TYPE_IMM32_REGM:
case ORC_X86_INSN_TYPE_IMM32_REGM_MOV:
case ORC_X86_INSN_TYPE_IMM32_A:
- sprintf(imm_str, "$%d, ", xinsn->imm);
+ sprintf (imm_str, "$%d, ", xinsn->imm);
break;
default:
- ORC_ERROR("%d", xinsn->opcode->type);
- ORC_ASSERT(0);
+ ORC_ERROR ("%d", xinsn->opcode->type);
+ ORC_ASSERT (0);
break;
}
@@ -360,43 +361,41 @@ orc_x86_insn_output_asm (OrcCompiler *p, OrcX86Insn *xinsn)
case ORC_X86_INSN_TYPE_SSEM_SSE:
case ORC_X86_INSN_TYPE_IMM8_MMXM_MMX:
if (xinsn->type == ORC_X86_RM_REG) {
- sprintf(op1_str, "%%%s, ",
+ sprintf (op1_str, "%%%s, ",
orc_x86_get_regname_mmxsse (xinsn->src, is_sse));
} else if (xinsn->type == ORC_X86_RM_MEMOFFSET) {
- sprintf(op1_str, "%d(%%%s), ", xinsn->offset,
+ sprintf (op1_str, "%d(%%%s), ", xinsn->offset,
orc_x86_get_regname_ptr (p, xinsn->src));
} else if (xinsn->type == ORC_X86_RM_MEMINDEX) {
- sprintf(op1_str, "%d(%%%s,%%%s,%d), ", xinsn->offset,
+ sprintf (op1_str, "%d(%%%s,%%%s,%d), ", xinsn->offset,
orc_x86_get_regname_ptr (p, xinsn->src),
- orc_x86_get_regname_ptr (p, xinsn->index_reg),
- 1<<xinsn->shift);
+ orc_x86_get_regname_ptr (p, xinsn->index_reg), 1 << xinsn->shift);
} else {
- ORC_ASSERT(0);
+ ORC_ASSERT (0);
}
break;
- case ORC_X86_INSN_TYPE_MMXM_MMX_REV: /* FIXME misnamed */
+ case ORC_X86_INSN_TYPE_MMXM_MMX_REV: /* FIXME misnamed */
case ORC_X86_INSN_TYPE_SSEM_SSE_REV:
case ORC_X86_INSN_TYPE_MMX_REGM_REV:
case ORC_X86_INSN_TYPE_IMM8_MMX_REG_REV:
- sprintf(op1_str, "%%%s, ",
- orc_x86_get_regname_mmxsse (xinsn->src, is_sse));
+ sprintf (op1_str, "%%%s, ",
+ orc_x86_get_regname_mmxsse (xinsn->src, is_sse));
break;
case ORC_X86_INSN_TYPE_REGM_MMX:
case ORC_X86_INSN_TYPE_REGM_REG:
case ORC_X86_INSN_TYPE_IMM8_REGM_MMX:
if (xinsn->type == ORC_X86_RM_REG) {
- sprintf(op1_str, "%%%s, ", orc_x86_get_regname_size (xinsn->src,
- xinsn->size));
+ sprintf (op1_str, "%%%s, ", orc_x86_get_regname_size (xinsn->src,
+ xinsn->size));
} else if (xinsn->type == ORC_X86_RM_MEMOFFSET) {
- sprintf(op1_str, "%d(%%%s), ", xinsn->offset,
+ sprintf (op1_str, "%d(%%%s), ", xinsn->offset,
orc_x86_get_regname_ptr (p, xinsn->src));
} else if (xinsn->type == ORC_X86_RM_MEMINDEX) {
- sprintf(op1_str, "%d(%%%s,%%%s,%d), ", xinsn->offset,
+ sprintf (op1_str, "%d(%%%s,%%%s,%d), ", xinsn->offset,
orc_x86_get_regname_ptr (p, xinsn->src),
- orc_x86_get_regname_ptr (p, xinsn->index_reg),
- 1<<xinsn->shift);
+ orc_x86_get_regname_ptr (p, xinsn->index_reg), 1 << xinsn->shift);
} else {
- ORC_ASSERT(0);
+ ORC_ASSERT (0);
}
break;
case ORC_X86_INSN_TYPE_MEM:
@@ -414,17 +413,17 @@ orc_x86_insn_output_asm (OrcCompiler *p, OrcX86Insn *xinsn)
op1_str[0] = 0;
break;
case ORC_X86_INSN_TYPE_REG_REGM:
- sprintf(op1_str, "%%%s, ", orc_x86_get_regname (xinsn->src));
+ sprintf (op1_str, "%%%s, ", orc_x86_get_regname (xinsn->src));
break;
case ORC_X86_INSN_TYPE_REG8_REGM:
- sprintf(op1_str, "%%%s, ", orc_x86_get_regname_8 (xinsn->src));
+ sprintf (op1_str, "%%%s, ", orc_x86_get_regname_8 (xinsn->src));
break;
case ORC_X86_INSN_TYPE_REG16_REGM:
- sprintf(op1_str, "%%%s, ", orc_x86_get_regname_16 (xinsn->src));
+ sprintf (op1_str, "%%%s, ", orc_x86_get_regname_16 (xinsn->src));
break;
default:
- ORC_ERROR("%d", xinsn->opcode->type);
- ORC_ASSERT(0);
+ ORC_ERROR ("%d", xinsn->opcode->type);
+ ORC_ASSERT (0);
break;
}
@@ -435,24 +434,23 @@ orc_x86_insn_output_asm (OrcCompiler *p, OrcX86Insn *xinsn)
case ORC_X86_INSN_TYPE_IMM8_REGM_MMX:
case ORC_X86_INSN_TYPE_REGM_MMX:
case ORC_X86_INSN_TYPE_IMM8_MMX_SHIFT:
- sprintf(op2_str, "%%%s",
- orc_x86_get_regname_mmxsse (xinsn->dest, is_sse));
+ sprintf (op2_str, "%%%s",
+ orc_x86_get_regname_mmxsse (xinsn->dest, is_sse));
break;
case ORC_X86_INSN_TYPE_MMXM_MMX_REV:
case ORC_X86_INSN_TYPE_SSEM_SSE_REV:
if (xinsn->type == ORC_X86_RM_REG) {
- sprintf(op2_str, "%%%s",
+ sprintf (op2_str, "%%%s",
orc_x86_get_regname_mmxsse (xinsn->dest, is_sse));
} else if (xinsn->type == ORC_X86_RM_MEMOFFSET) {
- sprintf(op2_str, "%d(%%%s)", xinsn->offset,
+ sprintf (op2_str, "%d(%%%s)", xinsn->offset,
orc_x86_get_regname_ptr (p, xinsn->dest));
} else if (xinsn->type == ORC_X86_RM_MEMINDEX) {
- sprintf(op1_str, "%d(%%%s,%%%s,%d), ", xinsn->offset,
+ sprintf (op1_str, "%d(%%%s,%%%s,%d), ", xinsn->offset,
orc_x86_get_regname_ptr (p, xinsn->dest),
- orc_x86_get_regname_ptr (p, xinsn->index_reg),
- 1<<xinsn->shift);
+ orc_x86_get_regname_ptr (p, xinsn->index_reg), 1 << xinsn->shift);
} else {
- ORC_ASSERT(0);
+ ORC_ASSERT (0);
}
break;
case ORC_X86_INSN_TYPE_MMX_REGM_REV:
@@ -465,40 +463,39 @@ orc_x86_insn_output_asm (OrcCompiler *p, OrcX86Insn *xinsn)
case ORC_X86_INSN_TYPE_REG_REGM:
case ORC_X86_INSN_TYPE_IMM8_MMX_REG_REV:
if (xinsn->type == ORC_X86_RM_REG) {
- sprintf(op2_str, "%%%s", orc_x86_get_regname (xinsn->dest));
+ sprintf (op2_str, "%%%s", orc_x86_get_regname (xinsn->dest));
} else if (xinsn->type == ORC_X86_RM_MEMOFFSET) {
- sprintf(op2_str, "%d(%%%s)", xinsn->offset,
+ sprintf (op2_str, "%d(%%%s)", xinsn->offset,
orc_x86_get_regname_ptr (p, xinsn->dest));
} else if (xinsn->type == ORC_X86_RM_MEMINDEX) {
- sprintf(op1_str, "%d(%%%s,%%%s,%d), ", xinsn->offset,
+ sprintf (op1_str, "%d(%%%s,%%%s,%d), ", xinsn->offset,
orc_x86_get_regname_ptr (p, xinsn->dest),
- orc_x86_get_regname_ptr (p, xinsn->index_reg),
- 1<<xinsn->shift);
+ orc_x86_get_regname_ptr (p, xinsn->index_reg), 1 << xinsn->shift);
} else {
- ORC_ASSERT(0);
+ ORC_ASSERT (0);
}
break;
case ORC_X86_INSN_TYPE_REGM_REG:
case ORC_X86_INSN_TYPE_STACK:
- sprintf(op2_str, "%%%s", orc_x86_get_regname_size (xinsn->dest,
- xinsn->size));
+ sprintf (op2_str, "%%%s", orc_x86_get_regname_size (xinsn->dest,
+ xinsn->size));
break;
case ORC_X86_INSN_TYPE_MEM:
if (xinsn->type == ORC_X86_RM_REG) {
- ORC_ERROR("register operand on memory instruction");
- sprintf(op2_str, "ERROR");
+ ORC_ERROR ("register operand on memory instruction");
+ sprintf (op2_str, "ERROR");
} else if (xinsn->type == ORC_X86_RM_MEMOFFSET) {
- /* FIXME: this uses xinsn->src */
- sprintf(op2_str, "%d(%%%s)", xinsn->offset,
+ /* FIXME: this uses xinsn->src */
+ sprintf (op2_str, "%d(%%%s)", xinsn->offset,
orc_x86_get_regname_ptr (p, xinsn->src));
} else {
- ORC_ASSERT(0);
+ ORC_ASSERT (0);
}
break;
case ORC_X86_INSN_TYPE_BRANCH:
sprintf (op2_str, "%d%c", xinsn->label,
(p->labels_int[xinsn->label] <
- xinsn - ((OrcX86Insn *)p->output_insns)) ? 'b' : 'f');
+ xinsn - ((OrcX86Insn *) p->output_insns)) ? 'b' : 'f');
break;
case ORC_X86_INSN_TYPE_LABEL:
case ORC_X86_INSN_TYPE_ALIGN:
@@ -506,63 +503,93 @@ orc_x86_insn_output_asm (OrcCompiler *p, OrcX86Insn *xinsn)
op2_str[0] = 0;
break;
case ORC_X86_INSN_TYPE_IMM32_A:
- sprintf(op2_str, "%%%s", orc_x86_get_regname_size (X86_EAX, xinsn->size));
+ sprintf (op2_str, "%%%s", orc_x86_get_regname_size (X86_EAX,
+ xinsn->size));
break;
default:
- ORC_ERROR("%d", xinsn->opcode->type);
- ORC_ASSERT(0);
+ ORC_ERROR ("%d", xinsn->opcode->type);
+ ORC_ASSERT (0);
break;
}
- ORC_ASM_CODE(p," %s %s%s%s\n", xinsn->opcode->name,
+ ORC_ASM_CODE (p, " %s %s%s%s\n", xinsn->opcode->name,
imm_str, op1_str, op2_str);
}
orc_uint8 nop_codes[][16] = {
- { 0 /* MSVC wants something here */ },
- { 0x90 },
- { 0x66, 0x90 }, /* xchg %ax,%ax */
+ {0 /* MSVC wants something here */ }
+ ,
+ {0x90}
+ ,
+ {0x66, 0x90}
+ , /* xchg %ax,%ax */
#if 0
- { 0x0f, 0x1f, 0x00 }, /* nopl (%rax) */
- { 0x0f, 0x1f, 0x40, 0x00 }, /* nopl 0x0(%rax) */
- { 0x0f, 0x1f, 0x44, 0x00, 0x00 }, /* nopl 0x0(%rax,%rax,1) */
- { 0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00 }, /* nopw 0x0(%rax,%rax,1) */
- { 0x0f, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x00 }, /* nopl 0x0(%rax) */
- { 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* nopl 0x0(%rax,%rax,1) */
- { 0x66, 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* nopw 0x0(%rax,%rax,1) */
+ {0x0f, 0x1f, 0x00}
+ , /* nopl (%rax) */
+ {0x0f, 0x1f, 0x40, 0x00}
+ , /* nopl 0x0(%rax) */
+ {0x0f, 0x1f, 0x44, 0x00, 0x00}
+ , /* nopl 0x0(%rax,%rax,1) */
+ {0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00}
+ , /* nopw 0x0(%rax,%rax,1) */
+ {0x0f, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x00}
+ , /* nopl 0x0(%rax) */
+ {0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}
+ , /* nopl 0x0(%rax,%rax,1) */
+ {0x66, 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}
+ , /* nopw 0x0(%rax,%rax,1) */
/* Forms of nopw %cs:0x0(%rax,%rax,1) */
- { 0x66, 0x2e, 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0x66, 0x66, 0x2e, 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0x66, 0x66, 0x66, 0x2e, 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0x66, 0x66, 0x66, 0x66, 0x2e, 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00,
- 0x00 },
- { 0x66, 0x66, 0x66, 0x66, 0x66, 0x2e, 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00,
- 0x00, 0x00 },
- { 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x2e, 0x0f, 0x1f, 0x84, 0x00, 0x00,
- 0x00, 0x00, 0x00 },
+ {0x66, 0x2e, 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}
+ ,
+ {0x66, 0x66, 0x2e, 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}
+ ,
+ {0x66, 0x66, 0x66, 0x2e, 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}
+ ,
+ {0x66, 0x66, 0x66, 0x66, 0x2e, 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00,
+ 0x00}
+ ,
+ {0x66, 0x66, 0x66, 0x66, 0x66, 0x2e, 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00,
+ 0x00, 0x00}
+ ,
+ {0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x2e, 0x0f, 0x1f, 0x84, 0x00, 0x00,
+ 0x00, 0x00, 0x00}
+ ,
#else
- { 0x90, 0x90, 0x90 },
- { 0x90, 0x90, 0x90, 0x90 },
- { 0x90, 0x90, 0x90, 0x90, 0x90 },
- { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 },
- { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 },
- { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 },
- { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 },
- { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 },
- { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 },
- { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 },
- { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
- 0x90, },
- { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
- 0x90, 0x90, },
- { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
- 0x90, 0x90, 0x90, },
+ {0x90, 0x90, 0x90}
+ ,
+ {0x90, 0x90, 0x90, 0x90}
+ ,
+ {0x90, 0x90, 0x90, 0x90, 0x90}
+ ,
+ {0x90, 0x90, 0x90, 0x90, 0x90, 0x90}
+ ,
+ {0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90}
+ ,
+ {0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90}
+ ,
+ {0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90}
+ ,
+ {0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90}
+ ,
+ {0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90}
+ ,
+ {0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90}
+ ,
+ {0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
+ 0x90,}
+ ,
+ {0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
+ 0x90, 0x90,}
+ ,
+ {0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
+ 0x90, 0x90, 0x90,}
+ ,
#endif
};
void
-orc_x86_insn_output_opcode (OrcCompiler *p, OrcX86Insn *xinsn)
+orc_x86_insn_output_opcode (OrcCompiler * p, OrcX86Insn * xinsn)
{
int is_sse;
@@ -585,7 +612,8 @@ orc_x86_insn_output_opcode (OrcCompiler *p, OrcX86Insn *xinsn)
case ORC_X86_INSN_TYPE_IMM32_REGM:
case ORC_X86_INSN_TYPE_REG8_REGM:
case ORC_X86_INSN_TYPE_REG16_REGM:
- output_opcode (p, xinsn->opcode, xinsn->size, xinsn->dest, xinsn->src, FALSE);
+ output_opcode (p, xinsn->opcode, xinsn->size, xinsn->dest, xinsn->src,
+ FALSE);
break;
case ORC_X86_INSN_TYPE_IMM8_MMXM_MMX:
case ORC_X86_INSN_TYPE_MMXM_MMX:
@@ -598,19 +626,20 @@ orc_x86_insn_output_opcode (OrcCompiler *p, OrcX86Insn *xinsn)
is_sse);
break;
case ORC_X86_INSN_TYPE_IMM8_MMX_REG_REV:
- output_opcode (p, xinsn->opcode, 4, xinsn->dest, xinsn->src,
- is_sse);
+ output_opcode (p, xinsn->opcode, 4, xinsn->dest, xinsn->src, is_sse);
break;
case ORC_X86_INSN_TYPE_MEM:
case ORC_X86_INSN_TYPE_REGM_REG:
- output_opcode (p, xinsn->opcode, xinsn->size, xinsn->src, xinsn->dest, FALSE);
+ output_opcode (p, xinsn->opcode, xinsn->size, xinsn->src, xinsn->dest,
+ FALSE);
break;
case ORC_X86_INSN_TYPE_REGM:
- output_opcode (p, xinsn->opcode, xinsn->size, xinsn->src, xinsn->dest, FALSE);
+ output_opcode (p, xinsn->opcode, xinsn->size, xinsn->src, xinsn->dest,
+ FALSE);
break;
case ORC_X86_INSN_TYPE_IMM32_REGM_MOV:
orc_x86_emit_rex (p, xinsn->size, 0, 0, xinsn->dest);
- *p->codeptr++ = xinsn->opcode->code + (xinsn->dest&7);
+ *p->codeptr++ = xinsn->opcode->code + (xinsn->dest & 7);
break;
case ORC_X86_INSN_TYPE_NONE:
output_opcode (p, xinsn->opcode, 4, 0, 0, FALSE);
@@ -619,28 +648,28 @@ orc_x86_insn_output_opcode (OrcCompiler *p, OrcX86Insn *xinsn)
output_opcode (p, xinsn->opcode, xinsn->size, 0, 0, FALSE);
break;
case ORC_X86_INSN_TYPE_ALIGN:
- {
- int diff;
- int i;
- diff = (p->code - p->codeptr)&((1<<xinsn->size) - 1);
- for(i=0;i<diff;i++){
- *p->codeptr++ = nop_codes[diff][i];
- }
+ {
+ int diff;
+ int i;
+ diff = (p->code - p->codeptr) & ((1 << xinsn->size) - 1);
+ for (i = 0; i < diff; i++) {
+ *p->codeptr++ = nop_codes[diff][i];
}
+ }
break;
case ORC_X86_INSN_TYPE_LABEL:
case ORC_X86_INSN_TYPE_BRANCH:
case ORC_X86_INSN_TYPE_STACK:
break;
default:
- ORC_ERROR("%d", xinsn->opcode->type);
- ORC_ASSERT(0);
+ ORC_ERROR ("%d", xinsn->opcode->type);
+ ORC_ASSERT (0);
break;
}
}
void
-orc_x86_insn_output_modrm (OrcCompiler *p, OrcX86Insn *xinsn)
+orc_x86_insn_output_modrm (OrcCompiler * p, OrcX86Insn * xinsn)
{
switch (xinsn->opcode->type) {
case ORC_X86_INSN_TYPE_REGM_REG:
@@ -657,7 +686,7 @@ orc_x86_insn_output_modrm (OrcCompiler *p, OrcX86Insn *xinsn)
orc_x86_emit_modrm_memindex2 (p, xinsn->offset, xinsn->src,
xinsn->index_reg, xinsn->shift, xinsn->dest);
} else {
- ORC_ASSERT(0);
+ ORC_ASSERT (0);
}
break;
case ORC_X86_INSN_TYPE_REG_REGM:
@@ -676,7 +705,7 @@ orc_x86_insn_output_modrm (OrcCompiler *p, OrcX86Insn *xinsn)
orc_x86_emit_modrm_memindex2 (p, xinsn->offset, xinsn->dest,
xinsn->index_reg, xinsn->shift, xinsn->src);
} else {
- ORC_ASSERT(0);
+ ORC_ASSERT (0);
}
break;
case ORC_X86_INSN_TYPE_MEM:
@@ -689,7 +718,7 @@ orc_x86_insn_output_modrm (OrcCompiler *p, OrcX86Insn *xinsn)
orc_x86_emit_modrm_memindex2 (p, xinsn->offset, xinsn->src,
xinsn->index_reg, xinsn->shift, xinsn->opcode->code2);
} else {
- ORC_ASSERT(0);
+ ORC_ASSERT (0);
}
break;
case ORC_X86_INSN_TYPE_IMM32_REGM_MOV:
@@ -710,7 +739,7 @@ orc_x86_insn_output_modrm (OrcCompiler *p, OrcX86Insn *xinsn)
orc_x86_emit_modrm_memindex2 (p, xinsn->offset, xinsn->dest,
xinsn->index_reg, xinsn->shift, xinsn->opcode->code2);
} else {
- ORC_ASSERT(0);
+ ORC_ASSERT (0);
}
break;
case ORC_X86_INSN_TYPE_SSEM_SSE:
@@ -723,12 +752,12 @@ orc_x86_insn_output_modrm (OrcCompiler *p, OrcX86Insn *xinsn)
orc_x86_emit_modrm_memindex2 (p, xinsn->offset, xinsn->src,
xinsn->index_reg, xinsn->shift, xinsn->dest);
} else {
- ORC_ASSERT(0);
+ ORC_ASSERT (0);
}
*p->codeptr++ = xinsn->opcode->code2;
break;
case ORC_X86_INSN_TYPE_STACK:
- *p->codeptr++ = xinsn->opcode->code + (xinsn->dest&0x7);
+ *p->codeptr++ = xinsn->opcode->code + (xinsn->dest & 0x7);
break;
case ORC_X86_INSN_TYPE_BRANCH:
if (xinsn->size == 4) {
@@ -757,14 +786,14 @@ orc_x86_insn_output_modrm (OrcCompiler *p, OrcX86Insn *xinsn)
x86_add_label (p, p->codeptr, xinsn->label);
break;
default:
- ORC_ERROR("%d", xinsn->opcode->type);
- ORC_ASSERT(0);
+ ORC_ERROR ("%d", xinsn->opcode->type);
+ ORC_ASSERT (0);
break;
}
}
void
-orc_x86_insn_output_immediate (OrcCompiler *p, OrcX86Insn *xinsn)
+orc_x86_insn_output_immediate (OrcCompiler * p, OrcX86Insn * xinsn)
{
switch (xinsn->opcode->type) {
case ORC_X86_INSN_TYPE_REGM_REG:
@@ -787,10 +816,10 @@ orc_x86_insn_output_immediate (OrcCompiler *p, OrcX86Insn *xinsn)
case ORC_X86_INSN_TYPE_IMM32_REGM_MOV:
case ORC_X86_INSN_TYPE_IMM32_REGM:
case ORC_X86_INSN_TYPE_IMM32_A:
- *p->codeptr++ = xinsn->imm&0xff;
- *p->codeptr++ = (xinsn->imm>>8)&0xff;
- *p->codeptr++ = (xinsn->imm>>16)&0xff;
- *p->codeptr++ = (xinsn->imm>>24)&0xff;
+ *p->codeptr++ = xinsn->imm & 0xff;
+ *p->codeptr++ = (xinsn->imm >> 8) & 0xff;
+ *p->codeptr++ = (xinsn->imm >> 16) & 0xff;
+ *p->codeptr++ = (xinsn->imm >> 24) & 0xff;
break;
case ORC_X86_INSN_TYPE_SSEM_SSE:
case ORC_X86_INSN_TYPE_STACK:
@@ -802,30 +831,30 @@ orc_x86_insn_output_immediate (OrcCompiler *p, OrcX86Insn *xinsn)
case ORC_X86_INSN_TYPE_NONE:
break;
default:
- ORC_ERROR("%d", xinsn->opcode->type);
- ORC_ASSERT(0);
+ ORC_ERROR ("%d", xinsn->opcode->type);
+ ORC_ASSERT (0);
break;
}
}
OrcX86Insn *
-orc_x86_get_output_insn (OrcCompiler *p)
+orc_x86_get_output_insn (OrcCompiler * p)
{
OrcX86Insn *xinsn;
if (p->n_output_insns >= p->n_output_insns_alloc) {
p->n_output_insns_alloc += 10;
p->output_insns = realloc (p->output_insns,
- sizeof(OrcX86Insn) * p->n_output_insns_alloc);
+ sizeof (OrcX86Insn) * p->n_output_insns_alloc);
}
- xinsn = ((OrcX86Insn *)p->output_insns) + p->n_output_insns;
- memset (xinsn, 0, sizeof(OrcX86Insn));
+ xinsn = ((OrcX86Insn *) p->output_insns) + p->n_output_insns;
+ memset (xinsn, 0, sizeof (OrcX86Insn));
p->n_output_insns++;
return xinsn;
}
void
-orc_x86_recalc_offsets (OrcCompiler *p)
+orc_x86_recalc_offsets (OrcCompiler * p)
{
OrcX86Insn *xinsn;
int i;
@@ -833,10 +862,10 @@ orc_x86_recalc_offsets (OrcCompiler *p)
minptr = p->code;
p->codeptr = p->code;
- for(i=0;i<p->n_output_insns;i++){
+ for (i = 0; i < p->n_output_insns; i++) {
unsigned char *ptr;
- xinsn = ((OrcX86Insn *)p->output_insns) + i;
+ xinsn = ((OrcX86Insn *) p->output_insns) + i;
xinsn->code_offset = p->codeptr - p->code;
@@ -847,12 +876,13 @@ orc_x86_recalc_offsets (OrcCompiler *p)
if (xinsn->opcode->type == ORC_X86_INSN_TYPE_ALIGN) {
if (xinsn->size > 0) {
- minptr += ((p->code - minptr)&((1<<xinsn->size) - 1));
+ minptr += ((p->code - minptr) & ((1 << xinsn->size) - 1));
}
} else {
minptr += p->codeptr - ptr;
if (xinsn->opcode->type == ORC_X86_INSN_TYPE_BRANCH) {
- if (xinsn->size == 4) minptr -= 4;
+ if (xinsn->size == 4)
+ minptr -= 4;
}
}
@@ -863,7 +893,7 @@ orc_x86_recalc_offsets (OrcCompiler *p)
}
void
-orc_x86_calculate_offsets (OrcCompiler *p)
+orc_x86_calculate_offsets (OrcCompiler * p)
{
OrcX86Insn *xinsn;
int i;
@@ -871,25 +901,25 @@ orc_x86_calculate_offsets (OrcCompiler *p)
orc_x86_recalc_offsets (p);
- for(j=0;j<3;j++){
+ for (j = 0; j < 3; j++) {
int change = FALSE;
- for(i=0;i<p->n_output_insns;i++){
+ for (i = 0; i < p->n_output_insns; i++) {
OrcX86Insn *dinsn;
int diff;
- xinsn = ((OrcX86Insn *)p->output_insns) + i;
+ xinsn = ((OrcX86Insn *) p->output_insns) + i;
if (xinsn->opcode->type != ORC_X86_INSN_TYPE_BRANCH) {
continue;
}
- dinsn = ((OrcX86Insn *)p->output_insns) + p->labels_int[xinsn->label];
+ dinsn = ((OrcX86Insn *) p->output_insns) + p->labels_int[xinsn->label];
if (xinsn->size == 1) {
diff = dinsn->code_offset - (xinsn->code_offset + 2);
if (diff < -128 || diff > 127) {
xinsn->size = 4;
- ORC_DEBUG("%d: relaxing at %d,%04x diff %d",
+ ORC_DEBUG ("%d: relaxing at %d,%04x diff %d",
j, i, xinsn->code_offset, diff);
change = TRUE;
} else {
@@ -897,7 +927,7 @@ orc_x86_calculate_offsets (OrcCompiler *p)
} else {
diff = dinsn->code_offset - (xinsn->code_offset + 2);
if (diff >= -128 && diff <= 127) {
- ORC_DEBUG("%d: unrelaxing at %d,%04x diff %d",
+ ORC_DEBUG ("%d: unrelaxing at %d,%04x diff %d",
j, i, xinsn->code_offset, diff);
xinsn->size = 1;
change = TRUE;
@@ -905,20 +935,21 @@ orc_x86_calculate_offsets (OrcCompiler *p)
}
}
- if (!change) break;
+ if (!change)
+ break;
orc_x86_recalc_offsets (p);
}
}
void
-orc_x86_output_insns (OrcCompiler *p)
+orc_x86_output_insns (OrcCompiler * p)
{
OrcX86Insn *xinsn;
int i;
- for(i=0;i<p->n_output_insns;i++){
- xinsn = ((OrcX86Insn *)p->output_insns) + i;
+ for (i = 0; i < p->n_output_insns; i++) {
+ xinsn = ((OrcX86Insn *) p->output_insns) + i;
orc_x86_insn_output_asm (p, xinsn);
@@ -929,7 +960,8 @@ orc_x86_output_insns (OrcCompiler *p)
}
void
-orc_x86_emit_cpuinsn_size (OrcCompiler *p, int index, int size, int src, int dest)
+orc_x86_emit_cpuinsn_size (OrcCompiler * p, int index, int size, int src,
+ int dest)
{
OrcX86Insn *xinsn = orc_x86_get_output_insn (p);
const OrcSysOpcode *opcode = orc_x86_opcodes + index;
@@ -943,7 +975,8 @@ orc_x86_emit_cpuinsn_size (OrcCompiler *p, int index, int size, int src, int des
}
void
-orc_x86_emit_cpuinsn_imm (OrcCompiler *p, int index, int imm, int src, int dest)
+orc_x86_emit_cpuinsn_imm (OrcCompiler * p, int index, int imm, int src,
+ int dest)
{
OrcX86Insn *xinsn = orc_x86_get_output_insn (p);
const OrcSysOpcode *opcode = orc_x86_opcodes + index;
@@ -958,7 +991,7 @@ orc_x86_emit_cpuinsn_imm (OrcCompiler *p, int index, int imm, int src, int dest)
}
void
-orc_x86_emit_cpuinsn_load_memoffset (OrcCompiler *p, int index, int size,
+orc_x86_emit_cpuinsn_load_memoffset (OrcCompiler * p, int index, int size,
int imm, int offset, int src, int dest)
{
OrcX86Insn *xinsn = orc_x86_get_output_insn (p);
@@ -975,7 +1008,7 @@ orc_x86_emit_cpuinsn_load_memoffset (OrcCompiler *p, int index, int size,
}
void
-orc_x86_emit_cpuinsn_store_memoffset (OrcCompiler *p, int index, int size,
+orc_x86_emit_cpuinsn_store_memoffset (OrcCompiler * p, int index, int size,
int imm, int offset, int src, int dest)
{
OrcX86Insn *xinsn = orc_x86_get_output_insn (p);
@@ -992,7 +1025,7 @@ orc_x86_emit_cpuinsn_store_memoffset (OrcCompiler *p, int index, int size,
}
void
-orc_x86_emit_cpuinsn_load_memindex (OrcCompiler *p, int index, int size,
+orc_x86_emit_cpuinsn_load_memindex (OrcCompiler * p, int index, int size,
int imm, int offset, int src, int src_index, int shift, int dest)
{
OrcX86Insn *xinsn = orc_x86_get_output_insn (p);
@@ -1011,7 +1044,7 @@ orc_x86_emit_cpuinsn_load_memindex (OrcCompiler *p, int index, int size,
}
void
-orc_x86_emit_cpuinsn_imm_reg (OrcCompiler *p, int index, int size, int imm,
+orc_x86_emit_cpuinsn_imm_reg (OrcCompiler * p, int index, int size, int imm,
int dest)
{
OrcX86Insn *xinsn = orc_x86_get_output_insn (p);
@@ -1027,7 +1060,7 @@ orc_x86_emit_cpuinsn_imm_reg (OrcCompiler *p, int index, int size, int imm,
}
void
-orc_x86_emit_cpuinsn_imm_memoffset (OrcCompiler *p, int index, int size,
+orc_x86_emit_cpuinsn_imm_memoffset (OrcCompiler * p, int index, int size,
int imm, int offset, int dest)
{
OrcX86Insn *xinsn = orc_x86_get_output_insn (p);
@@ -1044,7 +1077,7 @@ orc_x86_emit_cpuinsn_imm_memoffset (OrcCompiler *p, int index, int size,
}
void
-orc_x86_emit_cpuinsn_reg_memoffset (OrcCompiler *p, int index, int src,
+orc_x86_emit_cpuinsn_reg_memoffset (OrcCompiler * p, int index, int src,
int offset, int dest)
{
OrcX86Insn *xinsn = orc_x86_get_output_insn (p);
@@ -1061,7 +1094,7 @@ orc_x86_emit_cpuinsn_reg_memoffset (OrcCompiler *p, int index, int src,
}
void
-orc_x86_emit_cpuinsn_reg_memoffset_8 (OrcCompiler *p, int index, int src,
+orc_x86_emit_cpuinsn_reg_memoffset_8 (OrcCompiler * p, int index, int src,
int offset, int dest)
{
OrcX86Insn *xinsn = orc_x86_get_output_insn (p);
@@ -1078,7 +1111,7 @@ orc_x86_emit_cpuinsn_reg_memoffset_8 (OrcCompiler *p, int index, int src,
}
void
-orc_x86_emit_cpuinsn_memoffset_reg (OrcCompiler *p, int index, int size,
+orc_x86_emit_cpuinsn_memoffset_reg (OrcCompiler * p, int index, int size,
int offset, int src, int dest)
{
OrcX86Insn *xinsn = orc_x86_get_output_insn (p);
@@ -1094,7 +1127,7 @@ orc_x86_emit_cpuinsn_memoffset_reg (OrcCompiler *p, int index, int size,
}
void
-orc_x86_emit_cpuinsn_branch (OrcCompiler *p, int index, int label)
+orc_x86_emit_cpuinsn_branch (OrcCompiler * p, int index, int label)
{
OrcX86Insn *xinsn = orc_x86_get_output_insn (p);
const OrcSysOpcode *opcode = orc_x86_opcodes + index;
@@ -1106,7 +1139,7 @@ orc_x86_emit_cpuinsn_branch (OrcCompiler *p, int index, int label)
}
void
-orc_x86_emit_cpuinsn_align (OrcCompiler *p, int index, int align_shift)
+orc_x86_emit_cpuinsn_align (OrcCompiler * p, int index, int align_shift)
{
OrcX86Insn *xinsn = orc_x86_get_output_insn (p);
const OrcSysOpcode *opcode = orc_x86_opcodes + index;
@@ -1117,7 +1150,7 @@ orc_x86_emit_cpuinsn_align (OrcCompiler *p, int index, int align_shift)
}
void
-orc_x86_emit_cpuinsn_label (OrcCompiler *p, int index, int label)
+orc_x86_emit_cpuinsn_label (OrcCompiler * p, int index, int label)
{
OrcX86Insn *xinsn = orc_x86_get_output_insn (p);
const OrcSysOpcode *opcode = orc_x86_opcodes + index;
@@ -1129,7 +1162,7 @@ orc_x86_emit_cpuinsn_label (OrcCompiler *p, int index, int label)
}
void
-orc_x86_emit_cpuinsn_none (OrcCompiler *p, int index)
+orc_x86_emit_cpuinsn_none (OrcCompiler * p, int index)
{
OrcX86Insn *xinsn = orc_x86_get_output_insn (p);
const OrcSysOpcode *opcode = orc_x86_opcodes + index;
@@ -1141,7 +1174,7 @@ orc_x86_emit_cpuinsn_none (OrcCompiler *p, int index)
}
void
-orc_x86_emit_cpuinsn_memoffset (OrcCompiler *p, int index, int size,
+orc_x86_emit_cpuinsn_memoffset (OrcCompiler * p, int index, int size,
int offset, int srcdest)
{
OrcX86Insn *xinsn = orc_x86_get_output_insn (p);
@@ -1155,4 +1188,3 @@ orc_x86_emit_cpuinsn_memoffset (OrcCompiler *p, int index, int size,
xinsn->offset = offset;
xinsn->size = size;
}
-
diff --git a/testsuite/bytecode_parse.c b/testsuite/bytecode_parse.c
index fb1e587..43612af 100644
--- a/testsuite/bytecode_parse.c
+++ b/testsuite/bytecode_parse.c
@@ -7,10 +7,10 @@
#include <stdio.h>
#include <stdlib.h>
-static char * read_file (const char *filename);
-void output_code (OrcProgram *p, FILE *output);
-void output_code_header (OrcProgram *p, FILE *output);
-void output_code_test (OrcProgram *p, FILE *output);
+static char *read_file (const char *filename);
+void output_code (OrcProgram * p, FILE * output);
+void output_code_header (OrcProgram * p, FILE * output);
+void output_code_test (OrcProgram * p, FILE * output);
int error = FALSE;
@@ -38,25 +38,26 @@ main (int argc, char *argv[])
}
code = read_file (filename);
if (!code) {
- printf("compile_parse_test <file.orc>\n");
- exit(1);
+ printf ("compile_parse_test <file.orc>\n");
+ exit (1);
}
n = orc_parse (code, &programs);
- for(i=0;i<n;i++){
+ for (i = 0; i < n; i++) {
OrcBytecode *bytecode;
- printf("%s:\n", programs[i]->name);
+ printf ("%s:\n", programs[i]->name);
bytecode = orc_bytecode_from_program (programs[i]);
- for(j=0;j<bytecode->length;j++) {
- printf("%d, ", bytecode->bytecode[j]);
+ for (j = 0; j < bytecode->length; j++) {
+ printf ("%d, ", bytecode->bytecode[j]);
}
- printf("\n");
+ printf ("\n");
}
- if (error) return 1;
+ if (error)
+ return 1;
return 0;
}
@@ -70,31 +71,38 @@ read_file (const char *filename)
int ret;
file = fopen (filename, "r");
- if (file == NULL) return NULL;
+ if (file == NULL)
+ return NULL;
ret = fseek (file, 0, SEEK_END);
- if (ret < 0) goto bail;
+ if (ret < 0)
+ goto bail;
size = ftell (file);
- if (size < 0) goto bail;
+ if (size < 0)
+ goto bail;
ret = fseek (file, 0, SEEK_SET);
- if (ret < 0) goto bail;
+ if (ret < 0)
+ goto bail;
contents = malloc (size + 1);
- if (contents == NULL) goto bail;
+ if (contents == NULL)
+ goto bail;
ret = fread (contents, size, 1, file);
- if (ret < 0) goto bail;
+ if (ret < 0)
+ goto bail;
contents[size] = 0;
return contents;
bail:
/* something failed */
- if (file) fclose (file);
- if (contents) free (contents);
+ if (file)
+ fclose (file);
+ if (contents)
+ free (contents);
return NULL;
}
-
diff --git a/testsuite/compile_opcodes_float.c b/testsuite/compile_opcodes_float.c
index 77b9127..72e8c89 100644
--- a/testsuite/compile_opcodes_float.c
+++ b/testsuite/compile_opcodes_float.c
@@ -11,9 +11,9 @@
int error = FALSE;
-void test_opcode (OrcStaticOpcode *opcode);
-void test_opcode_const (OrcStaticOpcode *opcode);
-void test_opcode_param (OrcStaticOpcode *opcode);
+void test_opcode (OrcStaticOpcode * opcode);
+void test_opcode_const (OrcStaticOpcode * opcode);
+void test_opcode_param (OrcStaticOpcode * opcode);
int
main (int argc, char *argv[])
@@ -21,56 +21,55 @@ main (int argc, char *argv[])
int i;
OrcOpcodeSet *opcode_set;
- orc_init();
- orc_float_init();
- orc_test_init();
+ orc_init ();
+ orc_float_init ();
+ orc_test_init ();
opcode_set = orc_opcode_set_get ("float");
- for(i=0;i<opcode_set->n_opcodes;i++){
- printf("/* %s %d,%d,%d %p */\n",
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ printf ("/* %s %d,%d,%d %p */\n",
opcode_set->opcodes[i].name,
opcode_set->opcodes[i].dest_size[0],
opcode_set->opcodes[i].src_size[0],
- opcode_set->opcodes[i].src_size[1],
- opcode_set->opcodes[i].emulate);
+ opcode_set->opcodes[i].src_size[1], opcode_set->opcodes[i].emulate);
test_opcode (opcode_set->opcodes + i);
}
- for(i=0;i<opcode_set->n_opcodes;i++){
- printf("/* %s const %d,%d,%d %p */\n",
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ printf ("/* %s const %d,%d,%d %p */\n",
opcode_set->opcodes[i].name,
opcode_set->opcodes[i].dest_size[0],
opcode_set->opcodes[i].src_size[0],
- opcode_set->opcodes[i].src_size[1],
- opcode_set->opcodes[i].emulate);
+ opcode_set->opcodes[i].src_size[1], opcode_set->opcodes[i].emulate);
test_opcode_const (opcode_set->opcodes + i);
}
- for(i=0;i<opcode_set->n_opcodes;i++){
- printf("/* %s param %d,%d,%d %p */\n",
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ printf ("/* %s param %d,%d,%d %p */\n",
opcode_set->opcodes[i].name,
opcode_set->opcodes[i].dest_size[0],
opcode_set->opcodes[i].src_size[0],
- opcode_set->opcodes[i].src_size[1],
- opcode_set->opcodes[i].emulate);
+ opcode_set->opcodes[i].src_size[1], opcode_set->opcodes[i].emulate);
test_opcode_param (opcode_set->opcodes + i);
}
- if (error) return 1;
+ if (error)
+ return 1;
return 0;
}
void
-test_opcode (OrcStaticOpcode *opcode)
+test_opcode (OrcStaticOpcode * opcode)
{
OrcProgram *p;
OrcTestResult ret;
p = orc_test_get_program_for_opcode (opcode);
- if (!p) return;
+ if (!p)
+ return;
ret = orc_test_gcc_compile (p);
if (ret == ORC_TEST_FAILED) {
- printf("%s", orc_program_get_asm_code (p));
+ printf ("%s", orc_program_get_asm_code (p));
error = TRUE;
return;
}
@@ -79,17 +78,18 @@ test_opcode (OrcStaticOpcode *opcode)
}
void
-test_opcode_const (OrcStaticOpcode *opcode)
+test_opcode_const (OrcStaticOpcode * opcode)
{
OrcProgram *p;
OrcTestResult ret;
p = orc_test_get_program_for_opcode_const (opcode);
- if (!p) return;
+ if (!p)
+ return;
ret = orc_test_gcc_compile (p);
if (ret == ORC_TEST_FAILED) {
- printf("%s", orc_program_get_asm_code (p));
+ printf ("%s", orc_program_get_asm_code (p));
error = TRUE;
return;
}
@@ -98,21 +98,21 @@ test_opcode_const (OrcStaticOpcode *opcode)
}
void
-test_opcode_param (OrcStaticOpcode *opcode)
+test_opcode_param (OrcStaticOpcode * opcode)
{
OrcProgram *p;
OrcTestResult ret;
p = orc_test_get_program_for_opcode_param (opcode);
- if (!p) return;
+ if (!p)
+ return;
ret = orc_test_gcc_compile (p);
if (ret == ORC_TEST_FAILED) {
- printf("%s", orc_program_get_asm_code (p));
+ printf ("%s", orc_program_get_asm_code (p));
error = TRUE;
return;
}
orc_program_free (p);
}
-
diff --git a/testsuite/compile_opcodes_float_c.c b/testsuite/compile_opcodes_float_c.c
index f206cc0..3536336 100644
--- a/testsuite/compile_opcodes_float_c.c
+++ b/testsuite/compile_opcodes_float_c.c
@@ -11,9 +11,9 @@
int error = FALSE;
int verbose = FALSE;
-void test_opcode (OrcStaticOpcode *opcode);
-void test_opcode_const (OrcStaticOpcode *opcode);
-void test_opcode_param (OrcStaticOpcode *opcode);
+void test_opcode (OrcStaticOpcode * opcode);
+void test_opcode_const (OrcStaticOpcode * opcode);
+void test_opcode_param (OrcStaticOpcode * opcode);
int
main (int argc, char *argv[])
@@ -21,43 +21,44 @@ main (int argc, char *argv[])
int i;
OrcOpcodeSet *opcode_set;
- orc_init();
- orc_float_init();
- orc_test_init();
+ orc_init ();
+ orc_float_init ();
+ orc_test_init ();
opcode_set = orc_opcode_set_get ("float");
- for(i=0;i<opcode_set->n_opcodes;i++){
- if (verbose) printf("/* %s %d,%d,%d %p */\n",
- opcode_set->opcodes[i].name,
- opcode_set->opcodes[i].dest_size[0],
- opcode_set->opcodes[i].src_size[0],
- opcode_set->opcodes[i].src_size[1],
- opcode_set->opcodes[i].emulate);
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ if (verbose)
+ printf ("/* %s %d,%d,%d %p */\n",
+ opcode_set->opcodes[i].name,
+ opcode_set->opcodes[i].dest_size[0],
+ opcode_set->opcodes[i].src_size[0],
+ opcode_set->opcodes[i].src_size[1], opcode_set->opcodes[i].emulate);
test_opcode (opcode_set->opcodes + i);
}
if (error) {
- printf("test failed\n");
+ printf ("test failed\n");
return 1;
} else {
- printf("test passed\n");
+ printf ("test passed\n");
return 0;
}
}
void
-test_opcode (OrcStaticOpcode *opcode)
+test_opcode (OrcStaticOpcode * opcode)
{
OrcProgram *p;
OrcCompileResult result;
p = orc_test_get_program_for_opcode (opcode);
- if (!p) return;
+ if (!p)
+ return;
- result = orc_program_compile_for_target (p, orc_target_get_by_name("c"));
- if (!ORC_COMPILE_RESULT_IS_SUCCESSFUL(result)) {
- printf("%s", orc_program_get_asm_code (p));
+ result = orc_program_compile_for_target (p, orc_target_get_by_name ("c"));
+ if (!ORC_COMPILE_RESULT_IS_SUCCESSFUL (result)) {
+ printf ("%s", orc_program_get_asm_code (p));
error = TRUE;
return;
}
@@ -66,17 +67,18 @@ test_opcode (OrcStaticOpcode *opcode)
}
void
-test_opcode_const (OrcStaticOpcode *opcode)
+test_opcode_const (OrcStaticOpcode * opcode)
{
OrcProgram *p;
OrcCompileResult result;
p = orc_test_get_program_for_opcode_const (opcode);
- if (!p) return;
+ if (!p)
+ return;
- result = orc_program_compile_for_target (p, orc_target_get_by_name("c"));
- if (!ORC_COMPILE_RESULT_IS_SUCCESSFUL(result)) {
- printf("%s", orc_program_get_asm_code (p));
+ result = orc_program_compile_for_target (p, orc_target_get_by_name ("c"));
+ if (!ORC_COMPILE_RESULT_IS_SUCCESSFUL (result)) {
+ printf ("%s", orc_program_get_asm_code (p));
error = TRUE;
return;
}
@@ -85,24 +87,21 @@ test_opcode_const (OrcStaticOpcode *opcode)
}
void
-test_opcode_param (OrcStaticOpcode *opcode)
+test_opcode_param (OrcStaticOpcode * opcode)
{
OrcProgram *p;
OrcCompileResult result;
p = orc_test_get_program_for_opcode_param (opcode);
- if (!p) return;
+ if (!p)
+ return;
- result = orc_program_compile_for_target (p, orc_target_get_by_name("c"));
- if (!ORC_COMPILE_RESULT_IS_SUCCESSFUL(result)) {
- printf("%s", orc_program_get_asm_code (p));
+ result = orc_program_compile_for_target (p, orc_target_get_by_name ("c"));
+ if (!ORC_COMPILE_RESULT_IS_SUCCESSFUL (result)) {
+ printf ("%s", orc_program_get_asm_code (p));
error = TRUE;
return;
}
orc_program_free (p);
}
-
-
-
-
diff --git a/testsuite/compile_opcodes_float_neon.c b/testsuite/compile_opcodes_float_neon.c
index 60b27fb..5a820da 100644
--- a/testsuite/compile_opcodes_float_neon.c
+++ b/testsuite/compile_opcodes_float_neon.c
@@ -11,9 +11,9 @@
int error = FALSE;
-void test_opcode (OrcStaticOpcode *opcode);
-void test_opcode_const (OrcStaticOpcode *opcode);
-void test_opcode_param (OrcStaticOpcode *opcode);
+void test_opcode (OrcStaticOpcode * opcode);
+void test_opcode_const (OrcStaticOpcode * opcode);
+void test_opcode_param (OrcStaticOpcode * opcode);
int
main (int argc, char *argv[])
@@ -21,56 +21,55 @@ main (int argc, char *argv[])
int i;
OrcOpcodeSet *opcode_set;
- orc_init();
- orc_float_init();
- orc_test_init();
+ orc_init ();
+ orc_float_init ();
+ orc_test_init ();
opcode_set = orc_opcode_set_get ("float");
- for(i=0;i<opcode_set->n_opcodes;i++){
- printf("/* %s %d,%d,%d %p */\n",
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ printf ("/* %s %d,%d,%d %p */\n",
opcode_set->opcodes[i].name,
opcode_set->opcodes[i].dest_size[0],
opcode_set->opcodes[i].src_size[0],
- opcode_set->opcodes[i].src_size[1],
- opcode_set->opcodes[i].emulate);
+ opcode_set->opcodes[i].src_size[1], opcode_set->opcodes[i].emulate);
test_opcode (opcode_set->opcodes + i);
}
- for(i=0;i<opcode_set->n_opcodes;i++){
- printf("/* %s const %d,%d,%d %p */\n",
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ printf ("/* %s const %d,%d,%d %p */\n",
opcode_set->opcodes[i].name,
opcode_set->opcodes[i].dest_size[0],
opcode_set->opcodes[i].src_size[0],
- opcode_set->opcodes[i].src_size[1],
- opcode_set->opcodes[i].emulate);
+ opcode_set->opcodes[i].src_size[1], opcode_set->opcodes[i].emulate);
test_opcode_const (opcode_set->opcodes + i);
}
- for(i=0;i<opcode_set->n_opcodes;i++){
- printf("/* %s param %d,%d,%d %p */\n",
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ printf ("/* %s param %d,%d,%d %p */\n",
opcode_set->opcodes[i].name,
opcode_set->opcodes[i].dest_size[0],
opcode_set->opcodes[i].src_size[0],
- opcode_set->opcodes[i].src_size[1],
- opcode_set->opcodes[i].emulate);
+ opcode_set->opcodes[i].src_size[1], opcode_set->opcodes[i].emulate);
test_opcode_param (opcode_set->opcodes + i);
}
- if (error) return 1;
+ if (error)
+ return 1;
return 0;
}
void
-test_opcode (OrcStaticOpcode *opcode)
+test_opcode (OrcStaticOpcode * opcode)
{
OrcProgram *p;
OrcTestResult ret;
p = orc_test_get_program_for_opcode (opcode);
- if (!p) return;
+ if (!p)
+ return;
ret = orc_test_gcc_compile_neon (p);
if (ret == ORC_TEST_FAILED) {
- printf("%s", orc_program_get_asm_code (p));
+ printf ("%s", orc_program_get_asm_code (p));
error = TRUE;
return;
}
@@ -79,17 +78,18 @@ test_opcode (OrcStaticOpcode *opcode)
}
void
-test_opcode_const (OrcStaticOpcode *opcode)
+test_opcode_const (OrcStaticOpcode * opcode)
{
OrcProgram *p;
OrcTestResult ret;
p = orc_test_get_program_for_opcode_const (opcode);
- if (!p) return;
+ if (!p)
+ return;
ret = orc_test_gcc_compile_neon (p);
if (ret == ORC_TEST_FAILED) {
- printf("%s", orc_program_get_asm_code (p));
+ printf ("%s", orc_program_get_asm_code (p));
error = TRUE;
return;
}
@@ -98,21 +98,21 @@ test_opcode_const (OrcStaticOpcode *opcode)
}
void
-test_opcode_param (OrcStaticOpcode *opcode)
+test_opcode_param (OrcStaticOpcode * opcode)
{
OrcProgram *p;
OrcTestResult ret;
p = orc_test_get_program_for_opcode_param (opcode);
- if (!p) return;
+ if (!p)
+ return;
ret = orc_test_gcc_compile_neon (p);
if (ret == ORC_TEST_FAILED) {
- printf("%s", orc_program_get_asm_code (p));
+ printf ("%s", orc_program_get_asm_code (p));
error = TRUE;
return;
}
orc_program_free (p);
}
-
diff --git a/testsuite/compile_opcodes_pixel_neon.c b/testsuite/compile_opcodes_pixel_neon.c
index e37eca5..456f62b 100644
--- a/testsuite/compile_opcodes_pixel_neon.c
+++ b/testsuite/compile_opcodes_pixel_neon.c
@@ -11,9 +11,9 @@
int error = FALSE;
-void test_opcode (OrcStaticOpcode *opcode);
-void test_opcode_const (OrcStaticOpcode *opcode);
-void test_opcode_param (OrcStaticOpcode *opcode);
+void test_opcode (OrcStaticOpcode * opcode);
+void test_opcode_const (OrcStaticOpcode * opcode);
+void test_opcode_param (OrcStaticOpcode * opcode);
int
main (int argc, char *argv[])
@@ -21,56 +21,55 @@ main (int argc, char *argv[])
int i;
OrcOpcodeSet *opcode_set;
- orc_init();
- orc_pixel_init();
- orc_test_init();
+ orc_init ();
+ orc_pixel_init ();
+ orc_test_init ();
opcode_set = orc_opcode_set_get ("pixel");
- for(i=0;i<opcode_set->n_opcodes;i++){
- printf("/* %s %d,%d,%d %p */\n",
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ printf ("/* %s %d,%d,%d %p */\n",
opcode_set->opcodes[i].name,
opcode_set->opcodes[i].dest_size[0],
opcode_set->opcodes[i].src_size[0],
- opcode_set->opcodes[i].src_size[1],
- opcode_set->opcodes[i].emulate);
+ opcode_set->opcodes[i].src_size[1], opcode_set->opcodes[i].emulate);
test_opcode (opcode_set->opcodes + i);
}
- for(i=0;i<opcode_set->n_opcodes;i++){
- printf("/* %s const %d,%d,%d %p */\n",
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ printf ("/* %s const %d,%d,%d %p */\n",
opcode_set->opcodes[i].name,
opcode_set->opcodes[i].dest_size[0],
opcode_set->opcodes[i].src_size[0],
- opcode_set->opcodes[i].src_size[1],
- opcode_set->opcodes[i].emulate);
+ opcode_set->opcodes[i].src_size[1], opcode_set->opcodes[i].emulate);
test_opcode_const (opcode_set->opcodes + i);
}
- for(i=0;i<opcode_set->n_opcodes;i++){
- printf("/* %s param %d,%d,%d %p */\n",
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ printf ("/* %s param %d,%d,%d %p */\n",
opcode_set->opcodes[i].name,
opcode_set->opcodes[i].dest_size[0],
opcode_set->opcodes[i].src_size[0],
- opcode_set->opcodes[i].src_size[1],
- opcode_set->opcodes[i].emulate);
+ opcode_set->opcodes[i].src_size[1], opcode_set->opcodes[i].emulate);
test_opcode_param (opcode_set->opcodes + i);
}
- if (error) return 1;
+ if (error)
+ return 1;
return 0;
}
void
-test_opcode (OrcStaticOpcode *opcode)
+test_opcode (OrcStaticOpcode * opcode)
{
OrcProgram *p;
OrcTestResult ret;
p = orc_test_get_program_for_opcode (opcode);
- if (!p) return;
+ if (!p)
+ return;
ret = orc_test_gcc_compile_neon (p);
if (ret == ORC_TEST_FAILED) {
- printf("%s", orc_program_get_asm_code (p));
+ printf ("%s", orc_program_get_asm_code (p));
error = TRUE;
return;
}
@@ -79,17 +78,18 @@ test_opcode (OrcStaticOpcode *opcode)
}
void
-test_opcode_const (OrcStaticOpcode *opcode)
+test_opcode_const (OrcStaticOpcode * opcode)
{
OrcProgram *p;
OrcTestResult ret;
p = orc_test_get_program_for_opcode_const (opcode);
- if (!p) return;
+ if (!p)
+ return;
ret = orc_test_gcc_compile_neon (p);
if (ret == ORC_TEST_FAILED) {
- printf("%s", orc_program_get_asm_code (p));
+ printf ("%s", orc_program_get_asm_code (p));
error = TRUE;
return;
}
@@ -98,21 +98,21 @@ test_opcode_const (OrcStaticOpcode *opcode)
}
void
-test_opcode_param (OrcStaticOpcode *opcode)
+test_opcode_param (OrcStaticOpcode * opcode)
{
OrcProgram *p;
OrcTestResult ret;
p = orc_test_get_program_for_opcode_param (opcode);
- if (!p) return;
+ if (!p)
+ return;
ret = orc_test_gcc_compile_neon (p);
if (ret == ORC_TEST_FAILED) {
- printf("%s", orc_program_get_asm_code (p));
+ printf ("%s", orc_program_get_asm_code (p));
error = TRUE;
return;
}
orc_program_free (p);
}
-
diff --git a/testsuite/compile_opcodes_sys.c b/testsuite/compile_opcodes_sys.c
index 8390938..82d5db9 100644
--- a/testsuite/compile_opcodes_sys.c
+++ b/testsuite/compile_opcodes_sys.c
@@ -12,9 +12,9 @@
int error = FALSE;
-void test_opcode (OrcStaticOpcode *opcode);
-void test_opcode_const (OrcStaticOpcode *opcode);
-void test_opcode_param (OrcStaticOpcode *opcode);
+void test_opcode (OrcStaticOpcode * opcode);
+void test_opcode_const (OrcStaticOpcode * opcode);
+void test_opcode_param (OrcStaticOpcode * opcode);
int
main (int argc, char *argv[])
@@ -22,41 +22,43 @@ main (int argc, char *argv[])
int i;
OrcOpcodeSet *opcode_set;
- srand(time(NULL));
- orc_init();
- orc_test_init();
+ srand (time (NULL));
+ orc_init ();
+ orc_test_init ();
opcode_set = orc_opcode_set_get ("sys");
- for(i=0;i<opcode_set->n_opcodes;i++){
- printf("%s:\n", opcode_set->opcodes[i].name);
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ printf ("%s:\n", opcode_set->opcodes[i].name);
test_opcode (opcode_set->opcodes + i);
}
- for(i=0;i<opcode_set->n_opcodes;i++){
- printf("%s_const:\n", opcode_set->opcodes[i].name);
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ printf ("%s_const:\n", opcode_set->opcodes[i].name);
test_opcode_const (opcode_set->opcodes + i);
}
- for(i=0;i<opcode_set->n_opcodes;i++){
- printf("%s_param:\n", opcode_set->opcodes[i].name);
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ printf ("%s_param:\n", opcode_set->opcodes[i].name);
test_opcode_param (opcode_set->opcodes + i);
}
- if (error) return 1;
+ if (error)
+ return 1;
return 0;
}
void
-test_opcode (OrcStaticOpcode *opcode)
+test_opcode (OrcStaticOpcode * opcode)
{
OrcProgram *p;
OrcTestResult ret;
p = orc_test_get_program_for_opcode (opcode);
- if (!p) return;
+ if (!p)
+ return;
ret = orc_test_gcc_compile (p);
if (ret == ORC_TEST_FAILED) {
- printf("%s", orc_program_get_asm_code (p));
+ printf ("%s", orc_program_get_asm_code (p));
error = TRUE;
return;
}
@@ -65,17 +67,18 @@ test_opcode (OrcStaticOpcode *opcode)
}
void
-test_opcode_const (OrcStaticOpcode *opcode)
+test_opcode_const (OrcStaticOpcode * opcode)
{
OrcProgram *p;
OrcTestResult ret;
p = orc_test_get_program_for_opcode_const (opcode);
- if (!p) return;
+ if (!p)
+ return;
ret = orc_test_gcc_compile (p);
if (ret == ORC_TEST_FAILED) {
- printf("%s", orc_program_get_asm_code (p));
+ printf ("%s", orc_program_get_asm_code (p));
error = TRUE;
return;
}
@@ -84,21 +87,21 @@ test_opcode_const (OrcStaticOpcode *opcode)
}
void
-test_opcode_param (OrcStaticOpcode *opcode)
+test_opcode_param (OrcStaticOpcode * opcode)
{
OrcProgram *p;
OrcTestResult ret;
p = orc_test_get_program_for_opcode_param (opcode);
- if (!p) return;
+ if (!p)
+ return;
ret = orc_test_gcc_compile (p);
if (ret == ORC_TEST_FAILED) {
- printf("%s", orc_program_get_asm_code (p));
+ printf ("%s", orc_program_get_asm_code (p));
error = TRUE;
return;
}
orc_program_free (p);
}
-
diff --git a/testsuite/compile_opcodes_sys_c.c b/testsuite/compile_opcodes_sys_c.c
index 8f88235..97972b8 100644
--- a/testsuite/compile_opcodes_sys_c.c
+++ b/testsuite/compile_opcodes_sys_c.c
@@ -11,9 +11,9 @@
int error = FALSE;
int verbose = FALSE;
-void test_opcode (OrcStaticOpcode *opcode);
-void test_opcode_const (OrcStaticOpcode *opcode);
-void test_opcode_param (OrcStaticOpcode *opcode);
+void test_opcode (OrcStaticOpcode * opcode);
+void test_opcode_const (OrcStaticOpcode * opcode);
+void test_opcode_param (OrcStaticOpcode * opcode);
int
main (int argc, char *argv[])
@@ -21,46 +21,48 @@ main (int argc, char *argv[])
int i;
OrcOpcodeSet *opcode_set;
- orc_init();
- orc_test_init();
+ orc_init ();
+ orc_test_init ();
opcode_set = orc_opcode_set_get ("sys");
- for(i=0;i<opcode_set->n_opcodes;i++){
- if (verbose) printf("/* %s %d,%d,%d */\n",
- opcode_set->opcodes[i].name,
- opcode_set->opcodes[i].dest_size[0],
- opcode_set->opcodes[i].src_size[0],
- opcode_set->opcodes[i].src_size[1]);
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ if (verbose)
+ printf ("/* %s %d,%d,%d */\n",
+ opcode_set->opcodes[i].name,
+ opcode_set->opcodes[i].dest_size[0],
+ opcode_set->opcodes[i].src_size[0],
+ opcode_set->opcodes[i].src_size[1]);
test_opcode (opcode_set->opcodes + i);
}
if (error) {
- printf("test failed\n");
+ printf ("test failed\n");
return 1;
} else {
- printf("test passed\n");
+ printf ("test passed\n");
return 0;
}
}
void
-test_opcode (OrcStaticOpcode *opcode)
+test_opcode (OrcStaticOpcode * opcode)
{
OrcProgram *p;
OrcCompileResult result;
const char *s;
p = orc_test_get_program_for_opcode (opcode);
- if (!p) return;
+ if (!p)
+ return;
- result = orc_program_compile_for_target (p, orc_target_get_by_name("c"));
- if (!ORC_COMPILE_RESULT_IS_SUCCESSFUL(result)) {
+ result = orc_program_compile_for_target (p, orc_target_get_by_name ("c"));
+ if (!ORC_COMPILE_RESULT_IS_SUCCESSFUL (result)) {
s = orc_program_get_asm_code (p);
if (s != NULL) {
- printf("%s\n", s);
+ printf ("%s\n", s);
} else {
- printf("no code\n");
+ printf ("no code\n");
}
error = TRUE;
return;
@@ -70,22 +72,23 @@ test_opcode (OrcStaticOpcode *opcode)
}
void
-test_opcode_const (OrcStaticOpcode *opcode)
+test_opcode_const (OrcStaticOpcode * opcode)
{
OrcProgram *p;
OrcCompileResult result;
const char *s;
p = orc_test_get_program_for_opcode_const (opcode);
- if (!p) return;
+ if (!p)
+ return;
- result = orc_program_compile_for_target (p, orc_target_get_by_name("c"));
- if (!ORC_COMPILE_RESULT_IS_SUCCESSFUL(result)) {
+ result = orc_program_compile_for_target (p, orc_target_get_by_name ("c"));
+ if (!ORC_COMPILE_RESULT_IS_SUCCESSFUL (result)) {
s = orc_program_get_asm_code (p);
if (s != NULL) {
- printf("%s\n", s);
+ printf ("%s\n", s);
} else {
- printf("no code\n");
+ printf ("no code\n");
}
error = TRUE;
return;
@@ -95,22 +98,23 @@ test_opcode_const (OrcStaticOpcode *opcode)
}
void
-test_opcode_param (OrcStaticOpcode *opcode)
+test_opcode_param (OrcStaticOpcode * opcode)
{
OrcProgram *p;
OrcCompileResult result;
const char *s;
p = orc_test_get_program_for_opcode_param (opcode);
- if (!p) return;
+ if (!p)
+ return;
- result = orc_program_compile_for_target (p, orc_target_get_by_name("c"));
- if (!ORC_COMPILE_RESULT_IS_SUCCESSFUL(result)) {
+ result = orc_program_compile_for_target (p, orc_target_get_by_name ("c"));
+ if (!ORC_COMPILE_RESULT_IS_SUCCESSFUL (result)) {
s = orc_program_get_asm_code (p);
if (s != NULL) {
- printf("%s\n", s);
+ printf ("%s\n", s);
} else {
- printf("no code\n");
+ printf ("no code\n");
}
error = TRUE;
return;
@@ -118,7 +122,3 @@ test_opcode_param (OrcStaticOpcode *opcode)
orc_program_free (p);
}
-
-
-
-
diff --git a/testsuite/compile_opcodes_sys_c64x.c b/testsuite/compile_opcodes_sys_c64x.c
index 0e64a52..446c70c 100644
--- a/testsuite/compile_opcodes_sys_c64x.c
+++ b/testsuite/compile_opcodes_sys_c64x.c
@@ -10,9 +10,9 @@
int error = FALSE;
-void test_opcode (OrcStaticOpcode *opcode);
-void test_opcode_const (OrcStaticOpcode *opcode);
-void test_opcode_param (OrcStaticOpcode *opcode);
+void test_opcode (OrcStaticOpcode * opcode);
+void test_opcode_const (OrcStaticOpcode * opcode);
+void test_opcode_param (OrcStaticOpcode * opcode);
int
main (int argc, char *argv[])
@@ -20,53 +20,52 @@ main (int argc, char *argv[])
int i;
OrcOpcodeSet *opcode_set;
- orc_init();
- orc_test_init();
+ orc_init ();
+ orc_test_init ();
opcode_set = orc_opcode_set_get ("sys");
- for(i=0;i<opcode_set->n_opcodes;i++){
- printf("/* %s %d,%d,%d */\n",
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ printf ("/* %s %d,%d,%d */\n",
opcode_set->opcodes[i].name,
opcode_set->opcodes[i].dest_size[0],
- opcode_set->opcodes[i].src_size[0],
- opcode_set->opcodes[i].src_size[1]);
+ opcode_set->opcodes[i].src_size[0], opcode_set->opcodes[i].src_size[1]);
test_opcode (opcode_set->opcodes + i);
exit (0);
}
- for(i=0;i<opcode_set->n_opcodes;i++){
- printf("/* %s const %d,%d,%d */\n",
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ printf ("/* %s const %d,%d,%d */\n",
opcode_set->opcodes[i].name,
opcode_set->opcodes[i].dest_size[0],
- opcode_set->opcodes[i].src_size[0],
- opcode_set->opcodes[i].src_size[1]);
+ opcode_set->opcodes[i].src_size[0], opcode_set->opcodes[i].src_size[1]);
test_opcode_const (opcode_set->opcodes + i);
}
- for(i=0;i<opcode_set->n_opcodes;i++){
- printf("/* %s param %d,%d,%d */\n",
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ printf ("/* %s param %d,%d,%d */\n",
opcode_set->opcodes[i].name,
opcode_set->opcodes[i].dest_size[0],
- opcode_set->opcodes[i].src_size[0],
- opcode_set->opcodes[i].src_size[1]);
+ opcode_set->opcodes[i].src_size[0], opcode_set->opcodes[i].src_size[1]);
test_opcode_param (opcode_set->opcodes + i);
}
- if (error) return 1;
+ if (error)
+ return 1;
return 0;
}
void
-test_opcode (OrcStaticOpcode *opcode)
+test_opcode (OrcStaticOpcode * opcode)
{
OrcProgram *p;
OrcTestResult ret;
p = orc_test_get_program_for_opcode (opcode);
- if (!p) return;
+ if (!p)
+ return;
ret = orc_test_gcc_compile_c64x (p);
if (ret == ORC_TEST_FAILED) {
- printf("%s", orc_program_get_asm_code (p));
+ printf ("%s", orc_program_get_asm_code (p));
error = TRUE;
return;
}
@@ -75,17 +74,18 @@ test_opcode (OrcStaticOpcode *opcode)
}
void
-test_opcode_const (OrcStaticOpcode *opcode)
+test_opcode_const (OrcStaticOpcode * opcode)
{
OrcProgram *p;
OrcTestResult ret;
p = orc_test_get_program_for_opcode_const (opcode);
- if (!p) return;
+ if (!p)
+ return;
ret = orc_test_gcc_compile_c64x (p);
if (ret == ORC_TEST_FAILED) {
- printf("%s", orc_program_get_asm_code (p));
+ printf ("%s", orc_program_get_asm_code (p));
error = TRUE;
return;
}
@@ -94,21 +94,21 @@ test_opcode_const (OrcStaticOpcode *opcode)
}
void
-test_opcode_param (OrcStaticOpcode *opcode)
+test_opcode_param (OrcStaticOpcode * opcode)
{
OrcProgram *p;
OrcTestResult ret;
p = orc_test_get_program_for_opcode_param (opcode);
- if (!p) return;
+ if (!p)
+ return;
ret = orc_test_gcc_compile_c64x (p);
if (ret == ORC_TEST_FAILED) {
- printf("%s", orc_program_get_asm_code (p));
+ printf ("%s", orc_program_get_asm_code (p));
error = TRUE;
return;
}
orc_program_free (p);
}
-
diff --git a/testsuite/compile_opcodes_sys_neon.c b/testsuite/compile_opcodes_sys_neon.c
index 16e92a7..59dc1cd 100644
--- a/testsuite/compile_opcodes_sys_neon.c
+++ b/testsuite/compile_opcodes_sys_neon.c
@@ -10,9 +10,9 @@
int error = FALSE;
-void test_opcode (OrcStaticOpcode *opcode);
-void test_opcode_const (OrcStaticOpcode *opcode);
-void test_opcode_param (OrcStaticOpcode *opcode);
+void test_opcode (OrcStaticOpcode * opcode);
+void test_opcode_const (OrcStaticOpcode * opcode);
+void test_opcode_param (OrcStaticOpcode * opcode);
int
main (int argc, char *argv[])
@@ -20,52 +20,51 @@ main (int argc, char *argv[])
int i;
OrcOpcodeSet *opcode_set;
- orc_init();
- orc_test_init();
+ orc_init ();
+ orc_test_init ();
opcode_set = orc_opcode_set_get ("sys");
- for(i=0;i<opcode_set->n_opcodes;i++){
- printf("/* %s %d,%d,%d */\n",
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ printf ("/* %s %d,%d,%d */\n",
opcode_set->opcodes[i].name,
opcode_set->opcodes[i].dest_size[0],
- opcode_set->opcodes[i].src_size[0],
- opcode_set->opcodes[i].src_size[1]);
+ opcode_set->opcodes[i].src_size[0], opcode_set->opcodes[i].src_size[1]);
test_opcode (opcode_set->opcodes + i);
}
- for(i=0;i<opcode_set->n_opcodes;i++){
- printf("/* %s const %d,%d,%d */\n",
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ printf ("/* %s const %d,%d,%d */\n",
opcode_set->opcodes[i].name,
opcode_set->opcodes[i].dest_size[0],
- opcode_set->opcodes[i].src_size[0],
- opcode_set->opcodes[i].src_size[1]);
+ opcode_set->opcodes[i].src_size[0], opcode_set->opcodes[i].src_size[1]);
test_opcode_const (opcode_set->opcodes + i);
}
- for(i=0;i<opcode_set->n_opcodes;i++){
- printf("/* %s param %d,%d,%d */\n",
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ printf ("/* %s param %d,%d,%d */\n",
opcode_set->opcodes[i].name,
opcode_set->opcodes[i].dest_size[0],
- opcode_set->opcodes[i].src_size[0],
- opcode_set->opcodes[i].src_size[1]);
+ opcode_set->opcodes[i].src_size[0], opcode_set->opcodes[i].src_size[1]);
test_opcode_param (opcode_set->opcodes + i);
}
- if (error) return 1;
+ if (error)
+ return 1;
return 0;
}
void
-test_opcode (OrcStaticOpcode *opcode)
+test_opcode (OrcStaticOpcode * opcode)
{
OrcProgram *p;
OrcTestResult ret;
p = orc_test_get_program_for_opcode (opcode);
- if (!p) return;
+ if (!p)
+ return;
ret = orc_test_gcc_compile_neon (p);
if (ret == ORC_TEST_FAILED) {
- printf("%s", orc_program_get_asm_code (p));
+ printf ("%s", orc_program_get_asm_code (p));
error = TRUE;
return;
}
@@ -74,17 +73,18 @@ test_opcode (OrcStaticOpcode *opcode)
}
void
-test_opcode_const (OrcStaticOpcode *opcode)
+test_opcode_const (OrcStaticOpcode * opcode)
{
OrcProgram *p;
OrcTestResult ret;
p = orc_test_get_program_for_opcode_const (opcode);
- if (!p) return;
+ if (!p)
+ return;
ret = orc_test_gcc_compile_neon (p);
if (ret == ORC_TEST_FAILED) {
- printf("%s", orc_program_get_asm_code (p));
+ printf ("%s", orc_program_get_asm_code (p));
error = TRUE;
return;
}
@@ -93,21 +93,21 @@ test_opcode_const (OrcStaticOpcode *opcode)
}
void
-test_opcode_param (OrcStaticOpcode *opcode)
+test_opcode_param (OrcStaticOpcode * opcode)
{
OrcProgram *p;
OrcTestResult ret;
p = orc_test_get_program_for_opcode_param (opcode);
- if (!p) return;
+ if (!p)
+ return;
ret = orc_test_gcc_compile_neon (p);
if (ret == ORC_TEST_FAILED) {
- printf("%s", orc_program_get_asm_code (p));
+ printf ("%s", orc_program_get_asm_code (p));
error = TRUE;
return;
}
orc_program_free (p);
}
-
diff --git a/testsuite/compile_parse.c b/testsuite/compile_parse.c
index 59b144f..4318274 100644
--- a/testsuite/compile_parse.c
+++ b/testsuite/compile_parse.c
@@ -6,10 +6,10 @@
#include <stdio.h>
#include <stdlib.h>
-static char * read_file (const char *filename);
-void output_code (OrcProgram *p, FILE *output);
-void output_code_header (OrcProgram *p, FILE *output);
-void output_code_test (OrcProgram *p, FILE *output);
+static char *read_file (const char *filename);
+void output_code (OrcProgram * p, FILE * output);
+void output_code_header (OrcProgram * p, FILE * output);
+void output_code_test (OrcProgram * p, FILE * output);
int error = FALSE;
@@ -36,23 +36,24 @@ main (int argc, char *argv[])
}
code = read_file (filename);
if (!code) {
- printf("compile_parse_test <file.orc>\n");
- exit(1);
+ printf ("compile_parse_test <file.orc>\n");
+ exit (1);
}
n = orc_parse (code, &programs);
- for(i=0;i<n;i++){
+ for (i = 0; i < n; i++) {
OrcTestResult ret;
- printf("%s:\n", programs[i]->name);
+ printf ("%s:\n", programs[i]->name);
ret = orc_test_gcc_compile (programs[i]);
if (ret == ORC_TEST_FAILED) {
error = TRUE;
}
}
- if (error) return 1;
+ if (error)
+ return 1;
return 0;
}
@@ -66,31 +67,38 @@ read_file (const char *filename)
int ret;
file = fopen (filename, "r");
- if (file == NULL) return NULL;
+ if (file == NULL)
+ return NULL;
ret = fseek (file, 0, SEEK_END);
- if (ret < 0) goto bail;
+ if (ret < 0)
+ goto bail;
size = ftell (file);
- if (size < 0) goto bail;
+ if (size < 0)
+ goto bail;
ret = fseek (file, 0, SEEK_SET);
- if (ret < 0) goto bail;
+ if (ret < 0)
+ goto bail;
contents = malloc (size + 1);
- if (contents == NULL) goto bail;
+ if (contents == NULL)
+ goto bail;
ret = fread (contents, size, 1, file);
- if (ret < 0) goto bail;
+ if (ret < 0)
+ goto bail;
contents[size] = 0;
return contents;
bail:
/* something failed */
- if (file) fclose (file);
- if (contents) free (contents);
+ if (file)
+ fclose (file);
+ if (contents)
+ free (contents);
return NULL;
}
-
diff --git a/testsuite/compile_parse_c.c b/testsuite/compile_parse_c.c
index 8862003..e90a31a 100644
--- a/testsuite/compile_parse_c.c
+++ b/testsuite/compile_parse_c.c
@@ -6,10 +6,10 @@
#include <stdio.h>
#include <stdlib.h>
-static char * read_file (const char *filename);
-void output_code (OrcProgram *p, FILE *output);
-void output_code_header (OrcProgram *p, FILE *output);
-void output_code_test (OrcProgram *p, FILE *output);
+static char *read_file (const char *filename);
+void output_code (OrcProgram * p, FILE * output);
+void output_code_header (OrcProgram * p, FILE * output);
+void output_code_test (OrcProgram * p, FILE * output);
int error = FALSE;
@@ -30,23 +30,24 @@ main (int argc, char *argv[])
}
code = read_file (filename);
if (!code) {
- printf("compile_parse_test <file.orc>\n");
- exit(1);
+ printf ("compile_parse_test <file.orc>\n");
+ exit (1);
}
n = orc_parse (code, &programs);
- for(i=0;i<n;i++){
+ for (i = 0; i < n; i++) {
OrcTestResult ret;
- printf("%s:\n", programs[i]->name);
+ printf ("%s:\n", programs[i]->name);
ret = orc_test_gcc_compile (programs[i]);
if (ret == ORC_TEST_FAILED) {
error = TRUE;
}
}
- if (error) return 1;
+ if (error)
+ return 1;
return 0;
}
@@ -60,31 +61,38 @@ read_file (const char *filename)
int ret;
file = fopen (filename, "r");
- if (file == NULL) return NULL;
+ if (file == NULL)
+ return NULL;
ret = fseek (file, 0, SEEK_END);
- if (ret < 0) goto bail;
+ if (ret < 0)
+ goto bail;
size = ftell (file);
- if (size < 0) goto bail;
+ if (size < 0)
+ goto bail;
ret = fseek (file, 0, SEEK_SET);
- if (ret < 0) goto bail;
+ if (ret < 0)
+ goto bail;
contents = malloc (size + 1);
- if (contents == NULL) goto bail;
+ if (contents == NULL)
+ goto bail;
ret = fread (contents, size, 1, file);
- if (ret < 0) goto bail;
+ if (ret < 0)
+ goto bail;
contents[size] = 0;
return contents;
bail:
/* something failed */
- if (file) fclose (file);
- if (contents) free (contents);
+ if (file)
+ fclose (file);
+ if (contents)
+ free (contents);
return NULL;
}
-
diff --git a/testsuite/compile_parse_neon.c b/testsuite/compile_parse_neon.c
index 730a6e6..ed323e3 100644
--- a/testsuite/compile_parse_neon.c
+++ b/testsuite/compile_parse_neon.c
@@ -6,10 +6,10 @@
#include <stdio.h>
#include <stdlib.h>
-static char * read_file (const char *filename);
-void output_code (OrcProgram *p, FILE *output);
-void output_code_header (OrcProgram *p, FILE *output);
-void output_code_test (OrcProgram *p, FILE *output);
+static char *read_file (const char *filename);
+void output_code (OrcProgram * p, FILE * output);
+void output_code_header (OrcProgram * p, FILE * output);
+void output_code_test (OrcProgram * p, FILE * output);
int error = FALSE;
@@ -36,23 +36,24 @@ main (int argc, char *argv[])
}
code = read_file (filename);
if (!code) {
- printf("compile_parse_test <file.orc>\n");
- exit(1);
+ printf ("compile_parse_test <file.orc>\n");
+ exit (1);
}
n = orc_parse (code, &programs);
- for(i=0;i<n;i++){
+ for (i = 0; i < n; i++) {
OrcTestResult ret;
- printf("%s:\n", programs[i]->name);
+ printf ("%s:\n", programs[i]->name);
ret = orc_test_gcc_compile_neon (programs[i]);
if (ret == ORC_TEST_FAILED) {
error = TRUE;
}
}
- if (error) return 1;
+ if (error)
+ return 1;
return 0;
}
@@ -66,31 +67,38 @@ read_file (const char *filename)
int ret;
file = fopen (filename, "r");
- if (file == NULL) return NULL;
+ if (file == NULL)
+ return NULL;
ret = fseek (file, 0, SEEK_END);
- if (ret < 0) goto bail;
+ if (ret < 0)
+ goto bail;
size = ftell (file);
- if (size < 0) goto bail;
+ if (size < 0)
+ goto bail;
ret = fseek (file, 0, SEEK_SET);
- if (ret < 0) goto bail;
+ if (ret < 0)
+ goto bail;
contents = malloc (size + 1);
- if (contents == NULL) goto bail;
+ if (contents == NULL)
+ goto bail;
ret = fread (contents, size, 1, file);
- if (ret < 0) goto bail;
+ if (ret < 0)
+ goto bail;
contents[size] = 0;
return contents;
bail:
/* something failed */
- if (file) fclose (file);
- if (contents) free (contents);
+ if (file)
+ fclose (file);
+ if (contents)
+ free (contents);
return NULL;
}
-
diff --git a/testsuite/exec_opcodes_float.c b/testsuite/exec_opcodes_float.c
index bd2eefa..7a0597f 100644
--- a/testsuite/exec_opcodes_float.c
+++ b/testsuite/exec_opcodes_float.c
@@ -10,10 +10,10 @@
int error = FALSE;
-void test_opcode_src (OrcStaticOpcode *opcode);
-void test_opcode_const (OrcStaticOpcode *opcode);
-void test_opcode_param (OrcStaticOpcode *opcode);
-void test_opcode_inplace (OrcStaticOpcode *opcode);
+void test_opcode_src (OrcStaticOpcode * opcode);
+void test_opcode_const (OrcStaticOpcode * opcode);
+void test_opcode_param (OrcStaticOpcode * opcode);
+void test_opcode_inplace (OrcStaticOpcode * opcode);
int
main (int argc, char *argv[])
@@ -21,51 +21,48 @@ main (int argc, char *argv[])
int i;
OrcOpcodeSet *opcode_set;
- orc_float_init();
- orc_test_init();
- orc_init();
+ orc_float_init ();
+ orc_test_init ();
+ orc_init ();
opcode_set = orc_opcode_set_get ("float");
- for(i=0;i<opcode_set->n_opcodes;i++){
- printf("/* %s src %d,%d,%d */\n",
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ printf ("/* %s src %d,%d,%d */\n",
opcode_set->opcodes[i].name,
opcode_set->opcodes[i].dest_size[0],
- opcode_set->opcodes[i].src_size[0],
- opcode_set->opcodes[i].src_size[1]);
+ opcode_set->opcodes[i].src_size[0], opcode_set->opcodes[i].src_size[1]);
test_opcode_src (opcode_set->opcodes + i);
}
- for(i=0;i<opcode_set->n_opcodes;i++){
- printf("/* %s const %d,%d,%d */\n",
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ printf ("/* %s const %d,%d,%d */\n",
opcode_set->opcodes[i].name,
opcode_set->opcodes[i].dest_size[0],
- opcode_set->opcodes[i].src_size[0],
- opcode_set->opcodes[i].src_size[1]);
+ opcode_set->opcodes[i].src_size[0], opcode_set->opcodes[i].src_size[1]);
test_opcode_const (opcode_set->opcodes + i);
}
- for(i=0;i<opcode_set->n_opcodes;i++){
- printf("/* %s param %d,%d,%d */\n",
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ printf ("/* %s param %d,%d,%d */\n",
opcode_set->opcodes[i].name,
opcode_set->opcodes[i].dest_size[0],
- opcode_set->opcodes[i].src_size[0],
- opcode_set->opcodes[i].src_size[1]);
+ opcode_set->opcodes[i].src_size[0], opcode_set->opcodes[i].src_size[1]);
test_opcode_param (opcode_set->opcodes + i);
}
- for(i=0;i<opcode_set->n_opcodes;i++){
- printf("/* %s inplace %d,%d,%d */\n",
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ printf ("/* %s inplace %d,%d,%d */\n",
opcode_set->opcodes[i].name,
opcode_set->opcodes[i].dest_size[0],
- opcode_set->opcodes[i].src_size[0],
- opcode_set->opcodes[i].src_size[1]);
+ opcode_set->opcodes[i].src_size[0], opcode_set->opcodes[i].src_size[1]);
test_opcode_inplace (opcode_set->opcodes + i);
}
- if (error) return 1;
+ if (error)
+ return 1;
return 0;
}
void
-test_opcode_src (OrcStaticOpcode *opcode)
+test_opcode_src (OrcStaticOpcode * opcode)
{
OrcProgram *p;
char s[40];
@@ -78,7 +75,7 @@ test_opcode_src (OrcStaticOpcode *opcode)
opcode->src_size[1]);
}
- sprintf(s, "test_s_%s", opcode->name);
+ sprintf (s, "test_s_%s", opcode->name);
orc_program_set_name (p, s);
orc_program_append_str (p, opcode->name, "d1", "s1", "s2");
@@ -92,7 +89,7 @@ test_opcode_src (OrcStaticOpcode *opcode)
}
void
-test_opcode_const (OrcStaticOpcode *opcode)
+test_opcode_const (OrcStaticOpcode * opcode)
{
OrcProgram *p;
char s[40];
@@ -104,7 +101,7 @@ test_opcode_const (OrcStaticOpcode *opcode)
p = orc_program_new_ds (opcode->dest_size[0], opcode->src_size[0]);
orc_program_add_constant (p, opcode->src_size[1], 1, "c1");
- sprintf(s, "test_c_%s", opcode->name);
+ sprintf (s, "test_c_%s", opcode->name);
orc_program_set_name (p, s);
orc_program_append_str (p, opcode->name, "d1", "s1", "c1");
@@ -118,7 +115,7 @@ test_opcode_const (OrcStaticOpcode *opcode)
}
void
-test_opcode_param (OrcStaticOpcode *opcode)
+test_opcode_param (OrcStaticOpcode * opcode)
{
OrcProgram *p;
char s[40];
@@ -130,7 +127,7 @@ test_opcode_param (OrcStaticOpcode *opcode)
p = orc_program_new_ds (opcode->dest_size[0], opcode->src_size[0]);
orc_program_add_parameter (p, opcode->src_size[1], "p1");
- sprintf(s, "test_c_%s", opcode->name);
+ sprintf (s, "test_c_%s", opcode->name);
orc_program_set_name (p, s);
orc_program_append_str (p, opcode->name, "d1", "s1", "p1");
@@ -144,13 +141,14 @@ test_opcode_param (OrcStaticOpcode *opcode)
}
void
-test_opcode_inplace (OrcStaticOpcode *opcode)
+test_opcode_inplace (OrcStaticOpcode * opcode)
{
OrcProgram *p;
char s[40];
int ret;
- if (opcode->dest_size[0] != opcode->src_size[0]) return;
+ if (opcode->dest_size[0] != opcode->src_size[0])
+ return;
if (opcode->src_size[1] == 0) {
p = orc_program_new_ds (opcode->dest_size[0], opcode->src_size[0]);
@@ -159,7 +157,7 @@ test_opcode_inplace (OrcStaticOpcode *opcode)
opcode->src_size[1]);
}
- sprintf(s, "test_inplace_%s", opcode->name);
+ sprintf (s, "test_inplace_%s", opcode->name);
orc_program_set_name (p, s);
orc_program_append_str (p, opcode->name, "d1", "d1", "s2");
@@ -171,4 +169,3 @@ test_opcode_inplace (OrcStaticOpcode *opcode)
orc_program_free (p);
}
-
diff --git a/testsuite/exec_opcodes_sys.c b/testsuite/exec_opcodes_sys.c
index 0a8dec7..c9a8972 100644
--- a/testsuite/exec_opcodes_sys.c
+++ b/testsuite/exec_opcodes_sys.c
@@ -10,13 +10,13 @@
int error = FALSE;
int verbose = FALSE;
-void test_opcode_src (OrcStaticOpcode *opcode);
-void test_opcode_const (OrcStaticOpcode *opcode);
-void test_opcode_param (OrcStaticOpcode *opcode);
-void test_opcode_inplace (OrcStaticOpcode *opcode);
-void test_opcode_src_2d (OrcStaticOpcode *opcode);
-void test_opcode_src_const_n (OrcStaticOpcode *opcode);
-void test_opcode_src_const_n_2d (OrcStaticOpcode *opcode);
+void test_opcode_src (OrcStaticOpcode * opcode);
+void test_opcode_const (OrcStaticOpcode * opcode);
+void test_opcode_param (OrcStaticOpcode * opcode);
+void test_opcode_inplace (OrcStaticOpcode * opcode);
+void test_opcode_src_2d (OrcStaticOpcode * opcode);
+void test_opcode_src_const_n (OrcStaticOpcode * opcode);
+void test_opcode_src_const_n_2d (OrcStaticOpcode * opcode);
int
main (int argc, char *argv[])
@@ -24,75 +24,83 @@ main (int argc, char *argv[])
int i;
OrcOpcodeSet *opcode_set;
- orc_test_init();
- orc_init();
+ orc_test_init ();
+ orc_init ();
opcode_set = orc_opcode_set_get ("sys");
- for(i=0;i<opcode_set->n_opcodes;i++){
- if (verbose) printf("%s src %d,%d,%d,%d\n",
- opcode_set->opcodes[i].name,
- opcode_set->opcodes[i].dest_size[0],
- opcode_set->opcodes[i].dest_size[1],
- opcode_set->opcodes[i].src_size[0],
- opcode_set->opcodes[i].src_size[1]);
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ if (verbose)
+ printf ("%s src %d,%d,%d,%d\n",
+ opcode_set->opcodes[i].name,
+ opcode_set->opcodes[i].dest_size[0],
+ opcode_set->opcodes[i].dest_size[1],
+ opcode_set->opcodes[i].src_size[0],
+ opcode_set->opcodes[i].src_size[1]);
test_opcode_src (opcode_set->opcodes + i);
}
- for(i=0;i<opcode_set->n_opcodes;i++){
- if (verbose) printf("%s const %d,%d,%d\n",
- opcode_set->opcodes[i].name,
- opcode_set->opcodes[i].dest_size[0],
- opcode_set->opcodes[i].src_size[0],
- opcode_set->opcodes[i].src_size[1]);
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ if (verbose)
+ printf ("%s const %d,%d,%d\n",
+ opcode_set->opcodes[i].name,
+ opcode_set->opcodes[i].dest_size[0],
+ opcode_set->opcodes[i].src_size[0],
+ opcode_set->opcodes[i].src_size[1]);
test_opcode_const (opcode_set->opcodes + i);
}
- for(i=0;i<opcode_set->n_opcodes;i++){
- if (verbose) printf("%s param %d,%d,%d\n",
- opcode_set->opcodes[i].name,
- opcode_set->opcodes[i].dest_size[0],
- opcode_set->opcodes[i].src_size[0],
- opcode_set->opcodes[i].src_size[1]);
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ if (verbose)
+ printf ("%s param %d,%d,%d\n",
+ opcode_set->opcodes[i].name,
+ opcode_set->opcodes[i].dest_size[0],
+ opcode_set->opcodes[i].src_size[0],
+ opcode_set->opcodes[i].src_size[1]);
test_opcode_param (opcode_set->opcodes + i);
}
- for(i=0;i<opcode_set->n_opcodes;i++){
- if (verbose) printf("%s inplace %d,%d,%d\n",
- opcode_set->opcodes[i].name,
- opcode_set->opcodes[i].dest_size[0],
- opcode_set->opcodes[i].src_size[0],
- opcode_set->opcodes[i].src_size[1]);
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ if (verbose)
+ printf ("%s inplace %d,%d,%d\n",
+ opcode_set->opcodes[i].name,
+ opcode_set->opcodes[i].dest_size[0],
+ opcode_set->opcodes[i].src_size[0],
+ opcode_set->opcodes[i].src_size[1]);
test_opcode_inplace (opcode_set->opcodes + i);
}
- for(i=0;i<opcode_set->n_opcodes;i++){
- if (verbose) printf("%s src 2d %d,%d,%d\n",
- opcode_set->opcodes[i].name,
- opcode_set->opcodes[i].dest_size[0],
- opcode_set->opcodes[i].src_size[0],
- opcode_set->opcodes[i].src_size[1]);
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ if (verbose)
+ printf ("%s src 2d %d,%d,%d\n",
+ opcode_set->opcodes[i].name,
+ opcode_set->opcodes[i].dest_size[0],
+ opcode_set->opcodes[i].src_size[0],
+ opcode_set->opcodes[i].src_size[1]);
test_opcode_src_2d (opcode_set->opcodes + i);
}
- for(i=0;i<opcode_set->n_opcodes;i++){
- if (verbose) printf("%s src const n %d,%d,%d\n",
- opcode_set->opcodes[i].name,
- opcode_set->opcodes[i].dest_size[0],
- opcode_set->opcodes[i].src_size[0],
- opcode_set->opcodes[i].src_size[1]);
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ if (verbose)
+ printf ("%s src const n %d,%d,%d\n",
+ opcode_set->opcodes[i].name,
+ opcode_set->opcodes[i].dest_size[0],
+ opcode_set->opcodes[i].src_size[0],
+ opcode_set->opcodes[i].src_size[1]);
test_opcode_src_const_n (opcode_set->opcodes + i);
}
- for(i=0;i<opcode_set->n_opcodes;i++){
- if (verbose) printf("%s src const n 2d %d,%d,%d\n",
- opcode_set->opcodes[i].name,
- opcode_set->opcodes[i].dest_size[0],
- opcode_set->opcodes[i].src_size[0],
- opcode_set->opcodes[i].src_size[1]);
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ if (verbose)
+ printf ("%s src const n 2d %d,%d,%d\n",
+ opcode_set->opcodes[i].name,
+ opcode_set->opcodes[i].dest_size[0],
+ opcode_set->opcodes[i].src_size[0],
+ opcode_set->opcodes[i].src_size[1]);
test_opcode_src_const_n_2d (opcode_set->opcodes + i);
}
- if (error) return 1;
+ if (error)
+ return 1;
return 0;
}
void
-test_opcode_src (OrcStaticOpcode *opcode)
+test_opcode_src (OrcStaticOpcode * opcode)
{
OrcProgram *p;
char s[40];
@@ -122,7 +130,7 @@ test_opcode_src (OrcStaticOpcode *opcode)
flags = ORC_TEST_FLAGS_FLOAT;
}
- sprintf(s, "test_s_%s", opcode->name);
+ sprintf (s, "test_s_%s", opcode->name);
orc_program_set_name (p, s);
if (opcode->dest_size[1] != 0) {
@@ -133,7 +141,7 @@ test_opcode_src (OrcStaticOpcode *opcode)
ret = orc_test_compare_output_full (p, flags);
if (!ret) {
- printf("test failed\n");
+ printf ("test failed\n");
error = TRUE;
}
@@ -141,7 +149,7 @@ test_opcode_src (OrcStaticOpcode *opcode)
}
void
-test_opcode_const (OrcStaticOpcode *opcode)
+test_opcode_const (OrcStaticOpcode * opcode)
{
OrcProgram *p;
char s[40];
@@ -156,22 +164,19 @@ test_opcode_const (OrcStaticOpcode *opcode)
p = orc_program_new ();
if (opcode->flags & ORC_STATIC_OPCODE_ACCUMULATOR) {
args[n_args++] =
- orc_program_add_accumulator (p, opcode->dest_size[0], "d1");
+ orc_program_add_accumulator (p, opcode->dest_size[0], "d1");
} else {
args[n_args++] =
- orc_program_add_destination (p, opcode->dest_size[0], "d1");
+ orc_program_add_destination (p, opcode->dest_size[0], "d1");
}
if (opcode->dest_size[1] != 0) {
args[n_args++] =
- orc_program_add_destination (p, opcode->dest_size[1], "d2");
+ orc_program_add_destination (p, opcode->dest_size[1], "d2");
}
- args[n_args++] =
- orc_program_add_source (p, opcode->src_size[0], "s1");
- args[n_args++] =
- orc_program_add_constant (p, opcode->src_size[1], 1, "c1");
+ args[n_args++] = orc_program_add_source (p, opcode->src_size[0], "s1");
+ args[n_args++] = orc_program_add_constant (p, opcode->src_size[1], 1, "c1");
if (opcode->src_size[2]) {
- args[n_args++] =
- orc_program_add_constant (p, opcode->src_size[2], 1, "c2");
+ args[n_args++] = orc_program_add_constant (p, opcode->src_size[2], 1, "c2");
}
if ((opcode->flags & ORC_STATIC_OPCODE_FLOAT_SRC) ||
@@ -179,15 +184,14 @@ test_opcode_const (OrcStaticOpcode *opcode)
flags = ORC_TEST_FLAGS_FLOAT;
}
- sprintf(s, "test_const_%s", opcode->name);
+ sprintf (s, "test_const_%s", opcode->name);
orc_program_set_name (p, s);
- orc_program_append_2 (p, opcode->name, 0, args[0], args[1],
- args[2], args[3]);
+ orc_program_append_2 (p, opcode->name, 0, args[0], args[1], args[2], args[3]);
ret = orc_test_compare_output_full (p, flags);
if (!ret) {
- printf("test failed\n");
+ printf ("test failed\n");
error = TRUE;
}
@@ -195,7 +199,7 @@ test_opcode_const (OrcStaticOpcode *opcode)
}
void
-test_opcode_param (OrcStaticOpcode *opcode)
+test_opcode_param (OrcStaticOpcode * opcode)
{
OrcProgram *p;
char s[40];
@@ -210,22 +214,19 @@ test_opcode_param (OrcStaticOpcode *opcode)
p = orc_program_new ();
if (opcode->flags & ORC_STATIC_OPCODE_ACCUMULATOR) {
args[n_args++] =
- orc_program_add_accumulator (p, opcode->dest_size[0], "d1");
+ orc_program_add_accumulator (p, opcode->dest_size[0], "d1");
} else {
args[n_args++] =
- orc_program_add_destination (p, opcode->dest_size[0], "d1");
+ orc_program_add_destination (p, opcode->dest_size[0], "d1");
}
if (opcode->dest_size[1] != 0) {
args[n_args++] =
- orc_program_add_destination (p, opcode->dest_size[1], "d2");
+ orc_program_add_destination (p, opcode->dest_size[1], "d2");
}
- args[n_args++] =
- orc_program_add_source (p, opcode->src_size[0], "s1");
- args[n_args++] =
- orc_program_add_parameter (p, opcode->src_size[1], "p1");
+ args[n_args++] = orc_program_add_source (p, opcode->src_size[0], "s1");
+ args[n_args++] = orc_program_add_parameter (p, opcode->src_size[1], "p1");
if (opcode->src_size[2]) {
- args[n_args++] =
- orc_program_add_parameter (p, opcode->src_size[2], "p2");
+ args[n_args++] = orc_program_add_parameter (p, opcode->src_size[2], "p2");
}
if ((opcode->flags & ORC_STATIC_OPCODE_FLOAT_SRC) ||
@@ -233,15 +234,14 @@ test_opcode_param (OrcStaticOpcode *opcode)
flags = ORC_TEST_FLAGS_FLOAT;
}
- sprintf(s, "test_p_%s", opcode->name);
+ sprintf (s, "test_p_%s", opcode->name);
orc_program_set_name (p, s);
- orc_program_append_2 (p, opcode->name, 0, args[0], args[1],
- args[2], args[3]);
+ orc_program_append_2 (p, opcode->name, 0, args[0], args[1], args[2], args[3]);
ret = orc_test_compare_output_full (p, flags);
if (!ret) {
- printf("test failed\n");
+ printf ("test failed\n");
error = TRUE;
}
@@ -249,14 +249,15 @@ test_opcode_param (OrcStaticOpcode *opcode)
}
void
-test_opcode_inplace (OrcStaticOpcode *opcode)
+test_opcode_inplace (OrcStaticOpcode * opcode)
{
OrcProgram *p;
char s[40];
int ret;
int flags = 0;
- if (opcode->dest_size[0] != opcode->src_size[0]) return;
+ if (opcode->dest_size[0] != opcode->src_size[0])
+ return;
if (opcode->flags & ORC_STATIC_OPCODE_SCALAR ||
opcode->flags & ORC_STATIC_OPCODE_ACCUMULATOR) {
@@ -277,14 +278,14 @@ test_opcode_inplace (OrcStaticOpcode *opcode)
flags = ORC_TEST_FLAGS_FLOAT;
}
- sprintf(s, "test_inplace_%s", opcode->name);
+ sprintf (s, "test_inplace_%s", opcode->name);
orc_program_set_name (p, s);
orc_program_append_str (p, opcode->name, "d1", "d1", "s2");
ret = orc_test_compare_output_full (p, flags);
if (!ret) {
- printf("test failed\n");
+ printf ("test failed\n");
error = TRUE;
}
@@ -292,7 +293,7 @@ test_opcode_inplace (OrcStaticOpcode *opcode)
}
void
-test_opcode_src_2d (OrcStaticOpcode *opcode)
+test_opcode_src_2d (OrcStaticOpcode * opcode)
{
OrcProgram *p;
char s[40];
@@ -322,7 +323,7 @@ test_opcode_src_2d (OrcStaticOpcode *opcode)
flags = ORC_TEST_FLAGS_FLOAT;
}
- sprintf(s, "test_s_%s", opcode->name);
+ sprintf (s, "test_s_%s", opcode->name);
orc_program_set_name (p, s);
orc_program_set_2d (p);
@@ -334,7 +335,7 @@ test_opcode_src_2d (OrcStaticOpcode *opcode)
ret = orc_test_compare_output_full (p, flags);
if (!ret) {
- printf("test failed\n");
+ printf ("test failed\n");
error = TRUE;
}
@@ -342,7 +343,7 @@ test_opcode_src_2d (OrcStaticOpcode *opcode)
}
void
-test_opcode_src_const_n (OrcStaticOpcode *opcode)
+test_opcode_src_const_n (OrcStaticOpcode * opcode)
{
OrcProgram *p;
char s[40];
@@ -372,7 +373,7 @@ test_opcode_src_const_n (OrcStaticOpcode *opcode)
flags = ORC_TEST_FLAGS_FLOAT;
}
- sprintf(s, "test_s_%s", opcode->name);
+ sprintf (s, "test_s_%s", opcode->name);
orc_program_set_name (p, s);
orc_program_set_constant_n (p, 8);
@@ -384,7 +385,7 @@ test_opcode_src_const_n (OrcStaticOpcode *opcode)
ret = orc_test_compare_output_full (p, flags);
if (!ret) {
- printf("test failed\n");
+ printf ("test failed\n");
error = TRUE;
}
@@ -392,7 +393,7 @@ test_opcode_src_const_n (OrcStaticOpcode *opcode)
}
void
-test_opcode_src_const_n_2d (OrcStaticOpcode *opcode)
+test_opcode_src_const_n_2d (OrcStaticOpcode * opcode)
{
OrcProgram *p;
char s[40];
@@ -422,7 +423,7 @@ test_opcode_src_const_n_2d (OrcStaticOpcode *opcode)
flags = ORC_TEST_FLAGS_FLOAT;
}
- sprintf(s, "test_s_%s", opcode->name);
+ sprintf (s, "test_s_%s", opcode->name);
orc_program_set_name (p, s);
orc_program_set_2d (p);
orc_program_set_constant_n (p, 8);
@@ -435,10 +436,9 @@ test_opcode_src_const_n_2d (OrcStaticOpcode *opcode)
ret = orc_test_compare_output_full (p, flags);
if (!ret) {
- printf("test failed\n");
+ printf ("test failed\n");
error = TRUE;
}
orc_program_free (p);
}
-
diff --git a/testsuite/exec_parse.c b/testsuite/exec_parse.c
index 17ee569..6b9aa36 100644
--- a/testsuite/exec_parse.c
+++ b/testsuite/exec_parse.c
@@ -6,10 +6,10 @@
#include <stdio.h>
#include <stdlib.h>
-static char * read_file (const char *filename);
-void output_code (OrcProgram *p, FILE *output);
-void output_code_header (OrcProgram *p, FILE *output);
-void output_code_test (OrcProgram *p, FILE *output);
+static char *read_file (const char *filename);
+void output_code (OrcProgram * p, FILE * output);
+void output_code_header (OrcProgram * p, FILE * output);
+void output_code_test (OrcProgram * p, FILE * output);
int verbose = FALSE;
int error = FALSE;
@@ -37,18 +37,20 @@ main (int argc, char *argv[])
}
code = read_file (filename);
if (!code) {
- printf("perf_parse <file.orc>\n");
- exit(1);
+ printf ("perf_parse <file.orc>\n");
+ exit (1);
}
n = orc_parse (code, &programs);
- for(i=0;i<n;i++){
- if (verbose) printf("%s\n", programs[i]->name);
+ for (i = 0; i < n; i++) {
+ if (verbose)
+ printf ("%s\n", programs[i]->name);
orc_test_compare_output_full (programs[i], 0);
}
- if (error) return 1;
+ if (error)
+ return 1;
return 0;
}
@@ -62,31 +64,38 @@ read_file (const char *filename)
int ret;
file = fopen (filename, "r");
- if (file == NULL) return NULL;
+ if (file == NULL)
+ return NULL;
ret = fseek (file, 0, SEEK_END);
- if (ret < 0) goto bail;
+ if (ret < 0)
+ goto bail;
size = ftell (file);
- if (size < 0) goto bail;
+ if (size < 0)
+ goto bail;
ret = fseek (file, 0, SEEK_SET);
- if (ret < 0) goto bail;
+ if (ret < 0)
+ goto bail;
contents = malloc (size + 1);
- if (contents == NULL) goto bail;
+ if (contents == NULL)
+ goto bail;
ret = fread (contents, size, 1, file);
- if (ret < 0) goto bail;
+ if (ret < 0)
+ goto bail;
contents[size] = 0;
return contents;
bail:
/* something failed */
- if (file) fclose (file);
- if (contents) free (contents);
+ if (file)
+ fclose (file);
+ if (contents)
+ free (contents);
return NULL;
}
-
diff --git a/testsuite/generate_opcodes_sys.c b/testsuite/generate_opcodes_sys.c
index 2de7e81..7153518 100644
--- a/testsuite/generate_opcodes_sys.c
+++ b/testsuite/generate_opcodes_sys.c
@@ -10,9 +10,9 @@
int error = FALSE;
-void test_opcode (OrcStaticOpcode *opcode);
-void test_opcode_const (OrcStaticOpcode *opcode);
-void test_opcode_param (OrcStaticOpcode *opcode);
+void test_opcode (OrcStaticOpcode * opcode);
+void test_opcode_const (OrcStaticOpcode * opcode);
+void test_opcode_param (OrcStaticOpcode * opcode);
int
main (int argc, char *argv[])
@@ -22,81 +22,81 @@ main (int argc, char *argv[])
OrcStaticOpcode *opcode;
const char *d1;
- orc_init();
- orc_test_init();
+ orc_init ();
+ orc_test_init ();
opcode_set = orc_opcode_set_get ("sys");
- for(i=0;i<opcode_set->n_opcodes;i++){
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
opcode = opcode_set->opcodes + i;
- printf(".function emulate_%s\n", opcode->name);
+ printf (".function emulate_%s\n", opcode->name);
if (opcode->flags & ORC_STATIC_OPCODE_ACCUMULATOR) {
- printf(".accumulator %d a1\n", opcode->dest_size[0]);
+ printf (".accumulator %d a1\n", opcode->dest_size[0]);
d1 = "a1";
} else {
- printf(".dest %d d1\n", opcode->dest_size[0]);
+ printf (".dest %d d1\n", opcode->dest_size[0]);
d1 = "d1";
}
if (opcode->dest_size[1]) {
- printf(".dest %d d2\n", opcode->dest_size[1]);
+ printf (".dest %d d2\n", opcode->dest_size[1]);
}
- printf(".source %d s1\n", opcode->src_size[0]);
+ printf (".source %d s1\n", opcode->src_size[0]);
if (opcode->src_size[1]) {
if (opcode->flags & ORC_STATIC_OPCODE_SCALAR) {
- printf(".param %d s2\n", opcode->src_size[1]);
+ printf (".param %d s2\n", opcode->src_size[1]);
} else {
- printf(".source %d s2\n", opcode->src_size[1]);
+ printf (".source %d s2\n", opcode->src_size[1]);
}
}
- printf("\n");
+ printf ("\n");
if (opcode->src_size[1]) {
- printf("%s %s, s1, s2\n", opcode->name, d1);
+ printf ("%s %s, s1, s2\n", opcode->name, d1);
} else {
if (opcode->dest_size[1]) {
- printf("%s %s, d2, s1\n", opcode->name, d1);
+ printf ("%s %s, d2, s1\n", opcode->name, d1);
} else {
- printf("%s %s, s1\n", opcode->name, d1);
+ printf ("%s %s, s1\n", opcode->name, d1);
}
}
- printf("\n");
- printf("\n");
+ printf ("\n");
+ printf ("\n");
- printf(".function emulate_n16_%s\n", opcode->name);
- printf(".n 16\n");
+ printf (".function emulate_n16_%s\n", opcode->name);
+ printf (".n 16\n");
if (opcode->flags & ORC_STATIC_OPCODE_ACCUMULATOR) {
- printf(".accumulator %d a1\n", opcode->dest_size[0]);
+ printf (".accumulator %d a1\n", opcode->dest_size[0]);
d1 = "a1";
} else {
- printf(".dest %d d1\n", opcode->dest_size[0]);
+ printf (".dest %d d1\n", opcode->dest_size[0]);
d1 = "d1";
}
if (opcode->dest_size[1]) {
- printf(".dest %d d2\n", opcode->dest_size[1]);
+ printf (".dest %d d2\n", opcode->dest_size[1]);
}
- printf(".source %d s1\n", opcode->src_size[0]);
+ printf (".source %d s1\n", opcode->src_size[0]);
if (opcode->src_size[1]) {
if (opcode->flags & ORC_STATIC_OPCODE_SCALAR) {
- printf(".param %d s2\n", opcode->src_size[1]);
+ printf (".param %d s2\n", opcode->src_size[1]);
} else {
- printf(".source %d s2\n", opcode->src_size[1]);
+ printf (".source %d s2\n", opcode->src_size[1]);
}
}
- printf("\n");
+ printf ("\n");
if (opcode->src_size[1]) {
- printf("%s %s, s1, s2\n", opcode->name, d1);
+ printf ("%s %s, s1, s2\n", opcode->name, d1);
} else {
if (opcode->dest_size[1]) {
- printf("%s %s, d2, s1\n", opcode->name, d1);
+ printf ("%s %s, d2, s1\n", opcode->name, d1);
} else {
- printf("%s %s, s1\n", opcode->name, d1);
+ printf ("%s %s, s1\n", opcode->name, d1);
}
}
- printf("\n");
- printf("\n");
+ printf ("\n");
+ printf ("\n");
}
- if (error) return 1;
+ if (error)
+ return 1;
return 0;
}
-
diff --git a/testsuite/generate_xml_table.c b/testsuite/generate_xml_table.c
index fb7fb0c..0308f15 100644
--- a/testsuite/generate_xml_table.c
+++ b/testsuite/generate_xml_table.c
@@ -10,7 +10,7 @@
int error = FALSE;
-char * test_opcode (OrcStaticOpcode *opcode, OrcTarget *target,
+char *test_opcode (OrcStaticOpcode * opcode, OrcTarget * target,
unsigned int target_flags);
int
@@ -23,66 +23,57 @@ main (int argc, char *argv[])
unsigned int target_flags[10];
int n_targets;
- orc_init();
- orc_test_init();
+ orc_init ();
+ orc_test_init ();
- targets[0] = orc_target_get_by_name("sse");
- target_flags[0] = orc_target_get_default_flags(targets[0]);
+ 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[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[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[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[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]);
+ targets[5] = orc_target_get_by_name ("c64x-c");
+ target_flags[5] = orc_target_get_default_flags (targets[5]);
- n_targets=6;
-
- printf(
-"<table frame=\"all\" id=\"table-basictypes\" xreflabel=\"Table of Opcode Rule Coverage\">\n"
-"<title>Table of Opcode Rule Coverage</title>\n"
-"<tgroup cols=\"%d\" align=\"left\" colsep=\"1\" rowsep=\"1\">\n"
-"<thead>\n"
-"<row>\n"
-"<entry>opcode name</entry>\n", n_targets+1);
- for(j=0;j<n_targets;j++){
- printf("<entry>%s</entry>\n",
- orc_target_get_name(targets[j]));
- }
- printf(
-"</row>\n"
-"</thead>\n"
-"<tbody valign=\"top\">\n");
+ n_targets = 6;
+
+ printf
+ ("<table frame=\"all\" id=\"table-basictypes\" xreflabel=\"Table of Opcode Rule Coverage\">\n"
+ "<title>Table of Opcode Rule Coverage</title>\n"
+ "<tgroup cols=\"%d\" align=\"left\" colsep=\"1\" rowsep=\"1\">\n"
+ "<thead>\n" "<row>\n" "<entry>opcode name</entry>\n", n_targets + 1);
+ for (j = 0; j < n_targets; j++) {
+ printf ("<entry>%s</entry>\n", orc_target_get_name (targets[j]));
+ }
+ printf ("</row>\n" "</thead>\n" "<tbody valign=\"top\">\n");
opcode_set = orc_opcode_set_get ("sys");
- for(i=0;i<opcode_set->n_opcodes;i++){
- printf("<row>\n");
- printf("<entry>%s</entry>\n", opcode_set->opcodes[i].name);
- for(j=0;j<n_targets;j++){
- printf("<entry>%s</entry>\n",
- test_opcode (opcode_set->opcodes + i, targets[j], target_flags[j]));
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ printf ("<row>\n");
+ printf ("<entry>%s</entry>\n", opcode_set->opcodes[i].name);
+ for (j = 0; j < n_targets; j++) {
+ printf ("<entry>%s</entry>\n",
+ test_opcode (opcode_set->opcodes + i, targets[j], target_flags[j]));
}
- printf("</row>\n");
+ printf ("</row>\n");
}
- printf(
-"</tbody>\n"
-"</tgroup>\n"
-"</table>\n");
+ printf ("</tbody>\n" "</tgroup>\n" "</table>\n");
return 0;
}
char *
-test_opcode (OrcStaticOpcode *opcode, OrcTarget *target,
+test_opcode (OrcStaticOpcode * opcode, OrcTarget * target,
unsigned int target_flags)
{
OrcProgram *p;
@@ -93,7 +84,7 @@ test_opcode (OrcStaticOpcode *opcode, OrcTarget *target,
ret = orc_program_compile_full (p, target, target_flags);
orc_program_free (p);
- if (ORC_COMPILE_RESULT_IS_SUCCESSFUL(ret)) {
+ if (ORC_COMPILE_RESULT_IS_SUCCESSFUL (ret)) {
return "yes";
}
}
@@ -103,11 +94,10 @@ test_opcode (OrcStaticOpcode *opcode, OrcTarget *target,
ret = orc_program_compile_full (p, target, target_flags);
orc_program_free (p);
- if (ORC_COMPILE_RESULT_IS_SUCCESSFUL(ret)) {
+ if (ORC_COMPILE_RESULT_IS_SUCCESSFUL (ret)) {
return "yes";
}
}
return "no";
}
-
diff --git a/testsuite/generate_xml_table2.c b/testsuite/generate_xml_table2.c
index 3d978c3..3e00aca 100644
--- a/testsuite/generate_xml_table2.c
+++ b/testsuite/generate_xml_table2.c
@@ -11,8 +11,8 @@
int error = FALSE;
-char * get_desc (OrcStaticOpcode *opcode);
-char * get_code (OrcStaticOpcode *opcode);
+char *get_desc (OrcStaticOpcode * opcode);
+char *get_code (OrcStaticOpcode * opcode);
int
main (int argc, char *argv[])
@@ -20,233 +20,226 @@ main (int argc, char *argv[])
int i;
OrcOpcodeSet *opcode_set;
- orc_init();
- orc_test_init();
-
- printf(
-"<table frame=\"all\" id=\"table-basictypes\" xreflabel=\"Table of Opcodes\">\n"
-"<title>Table of Opcodes</title>\n"
-"<tgroup cols=\"3\" align=\"left\" colsep=\"1\" rowsep=\"1\">\n"
-"<thead>\n"
-"<row>\n"
-"<entry>opcode</entry>\n"
-"<entry>destination size</entry>\n"
-"<entry>source 1 size</entry>\n"
-"<entry>source 2 size</entry>\n"
-"<entry>description</entry>\n"
-"<entry>pseudo code</entry>\n"
-"</row>\n"
-"</thead>\n"
-"<tbody valign=\"top\">\n");
+ orc_init ();
+ orc_test_init ();
+
+ printf
+ ("<table frame=\"all\" id=\"table-basictypes\" xreflabel=\"Table of Opcodes\">\n"
+ "<title>Table of Opcodes</title>\n"
+ "<tgroup cols=\"3\" align=\"left\" colsep=\"1\" rowsep=\"1\">\n"
+ "<thead>\n" "<row>\n" "<entry>opcode</entry>\n"
+ "<entry>destination size</entry>\n" "<entry>source 1 size</entry>\n"
+ "<entry>source 2 size</entry>\n" "<entry>description</entry>\n"
+ "<entry>pseudo code</entry>\n" "</row>\n" "</thead>\n"
+ "<tbody valign=\"top\">\n");
opcode_set = orc_opcode_set_get ("sys");
- for(i=0;i<opcode_set->n_opcodes;i++){
- printf("<row>\n");
- printf("<entry>%s</entry>\n", opcode_set->opcodes[i].name);
- printf("<entry>%d</entry>\n", opcode_set->opcodes[i].dest_size[0]);
- printf("<entry>%d</entry>\n", opcode_set->opcodes[i].src_size[0]);
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ printf ("<row>\n");
+ printf ("<entry>%s</entry>\n", opcode_set->opcodes[i].name);
+ printf ("<entry>%d</entry>\n", opcode_set->opcodes[i].dest_size[0]);
+ printf ("<entry>%d</entry>\n", opcode_set->opcodes[i].src_size[0]);
if (opcode_set->opcodes[i].src_size[1]) {
- printf("<entry>%d%s</entry>\n", opcode_set->opcodes[i].src_size[1],
+ printf ("<entry>%d%s</entry>\n", opcode_set->opcodes[i].src_size[1],
(opcode_set->opcodes[i].flags & ORC_STATIC_OPCODE_SCALAR) ? "S" : "");
} else {
- printf("<entry></entry>\n");
+ printf ("<entry></entry>\n");
}
- printf("<entry>%s</entry>\n", get_desc(&opcode_set->opcodes[i]));
- printf("<entry>%s</entry>\n", get_code(&opcode_set->opcodes[i]));
- printf("</row>\n");
+ printf ("<entry>%s</entry>\n", get_desc (&opcode_set->opcodes[i]));
+ printf ("<entry>%s</entry>\n", get_code (&opcode_set->opcodes[i]));
+ printf ("</row>\n");
}
- printf(
-"</tbody>\n"
-"</tgroup>\n"
-"</table>\n");
+ printf ("</tbody>\n" "</tgroup>\n" "</table>\n");
return 0;
}
-struct a {
+struct a
+{
char *name;
char *code;
char *desc;
};
struct a ops[] = {
- { "absb", "(a &lt; 0) ? -a : a", "absolute value" },
- { "addb", "a + b", "add" },
- { "addssb", "clamp(a + b)", "add with signed saturate" },
- { "addusb", "clamp(a + b)", "add with unsigned saturate" },
- { "andb", "a &amp; b", "bitwise AND" },
- { "andnb", "a &amp; (~b)", "bitwise AND NOT" },
- { "avgsb", "(a + b + 1)&gt;&gt;1", "signed average" },
- { "avgub", "(a + b + 1)&gt;&gt;1", "unsigned average" },
- { "cmpeqb", "(a == b) ? (~0) : 0", "compare equal" },
- { "cmpgtsb", "(a &gt; b) ? (~0) : 0", "compare greater than" },
- { "copyb", "a", "copy" },
- { "maxsb", "(a &gt; b) ? a : b", "signed maximum" },
- { "maxub", "(a &gt; b) ? a : b", "unsigned maximum" },
- { "minsb", "(a &lt; b) ? a : b", "signed minimum" },
- { "minub", "(a &lt; b) ? a : b", "unsigned minimum" },
- { "mullb", "a * b", "low bits of multiply" },
- { "mulhsb", "(a * b) &gt;&gt; 8", "high bits of signed multiply" },
- { "mulhub", "(a * b) &gt;&gt; 8", "high bits of unsigned multiply" },
- { "orb", "a | b", "bitwise or" },
- { "shlb", "a &lt;&lt; b", "shift left" },
- { "shrsb", "a &gt;&gt; b", "signed shift right" },
- { "shrub", "a &gt;&gt; b", "unsigned shift right" },
- { "signb", "sign(a)", "sign" },
- { "subb", "a - b", "subtract" },
- { "subssb", "clamp(a - b)", "subtract with signed saturate" },
- { "subusb", "clamp(a - b)", "subtract with unsigned saturate" },
- { "xorb", "a ^ b", "bitwise XOR" },
+ {"absb", "(a &lt; 0) ? -a : a", "absolute value"},
+ {"addb", "a + b", "add"},
+ {"addssb", "clamp(a + b)", "add with signed saturate"},
+ {"addusb", "clamp(a + b)", "add with unsigned saturate"},
+ {"andb", "a &amp; b", "bitwise AND"},
+ {"andnb", "a &amp; (~b)", "bitwise AND NOT"},
+ {"avgsb", "(a + b + 1)&gt;&gt;1", "signed average"},
+ {"avgub", "(a + b + 1)&gt;&gt;1", "unsigned average"},
+ {"cmpeqb", "(a == b) ? (~0) : 0", "compare equal"},
+ {"cmpgtsb", "(a &gt; b) ? (~0) : 0", "compare greater than"},
+ {"copyb", "a", "copy"},
+ {"maxsb", "(a &gt; b) ? a : b", "signed maximum"},
+ {"maxub", "(a &gt; b) ? a : b", "unsigned maximum"},
+ {"minsb", "(a &lt; b) ? a : b", "signed minimum"},
+ {"minub", "(a &lt; b) ? a : b", "unsigned minimum"},
+ {"mullb", "a * b", "low bits of multiply"},
+ {"mulhsb", "(a * b) &gt;&gt; 8", "high bits of signed multiply"},
+ {"mulhub", "(a * b) &gt;&gt; 8", "high bits of unsigned multiply"},
+ {"orb", "a | b", "bitwise or"},
+ {"shlb", "a &lt;&lt; b", "shift left"},
+ {"shrsb", "a &gt;&gt; b", "signed shift right"},
+ {"shrub", "a &gt;&gt; b", "unsigned shift right"},
+ {"signb", "sign(a)", "sign"},
+ {"subb", "a - b", "subtract"},
+ {"subssb", "clamp(a - b)", "subtract with signed saturate"},
+ {"subusb", "clamp(a - b)", "subtract with unsigned saturate"},
+ {"xorb", "a ^ b", "bitwise XOR"},
- { "absw", "(a &lt; 0) ? -a : a", "absolute value" },
- { "addw", "a + b", "add" },
- { "addssw", "clamp(a + b)", "add with signed saturate" },
- { "addusw", "clamp(a + b)", "add with unsigned saturate" },
- { "andw", "a &amp; b", "bitwise AND" },
- { "andnw", "a &amp; (~b)", "bitwise AND NOT" },
- { "avgsw", "(a + b + 1)&gt;&gt;1", "signed average" },
- { "avguw", "(a + b + 1)&gt;&gt;1", "unsigned average" },
- { "cmpeqw", "(a == b) ? (~0) : 0", "compare equal" },
- { "cmpgtsw", "(a &gt; b) ? (~0) : 0", "compare greater than" },
- { "copyw", "a", "copy" },
- { "maxsw", "(a &gt; b) ? a : b", "signed maximum" },
- { "maxuw", "(a &gt; b) ? a : b", "unsigned maximum" },
- { "minsw", "(a &lt; b) ? a : b", "signed minimum" },
- { "minuw", "(a &lt; b) ? a : b", "unsigned minimum" },
- { "mullw", "a * b", "low bits of multiply" },
- { "mulhsw", "(a * b) &gt;&gt; 8", "high bits of signed multiply" },
- { "mulhuw", "(a * b) &gt;&gt; 8", "high bits of unsigned multiply" },
- { "orw", "a | b", "bitwise or" },
- { "shlw", "a &lt;&lt; b", "shift left" },
- { "shrsw", "a &gt;&gt; b", "signed shift right" },
- { "shruw", "a &gt;&gt; b", "unsigned shift right" },
- { "signw", "sign(a)", "sign" },
- { "subw", "a - b", "subtract" },
- { "subssw", "clamp(a - b)", "subtract with signed saturate" },
- { "subusw", "clamp(a - b)", "subtract with unsigned saturate" },
- { "xorw", "a ^ b", "bitwise XOR" },
+ {"absw", "(a &lt; 0) ? -a : a", "absolute value"},
+ {"addw", "a + b", "add"},
+ {"addssw", "clamp(a + b)", "add with signed saturate"},
+ {"addusw", "clamp(a + b)", "add with unsigned saturate"},
+ {"andw", "a &amp; b", "bitwise AND"},
+ {"andnw", "a &amp; (~b)", "bitwise AND NOT"},
+ {"avgsw", "(a + b + 1)&gt;&gt;1", "signed average"},
+ {"avguw", "(a + b + 1)&gt;&gt;1", "unsigned average"},
+ {"cmpeqw", "(a == b) ? (~0) : 0", "compare equal"},
+ {"cmpgtsw", "(a &gt; b) ? (~0) : 0", "compare greater than"},
+ {"copyw", "a", "copy"},
+ {"maxsw", "(a &gt; b) ? a : b", "signed maximum"},
+ {"maxuw", "(a &gt; b) ? a : b", "unsigned maximum"},
+ {"minsw", "(a &lt; b) ? a : b", "signed minimum"},
+ {"minuw", "(a &lt; b) ? a : b", "unsigned minimum"},
+ {"mullw", "a * b", "low bits of multiply"},
+ {"mulhsw", "(a * b) &gt;&gt; 8", "high bits of signed multiply"},
+ {"mulhuw", "(a * b) &gt;&gt; 8", "high bits of unsigned multiply"},
+ {"orw", "a | b", "bitwise or"},
+ {"shlw", "a &lt;&lt; b", "shift left"},
+ {"shrsw", "a &gt;&gt; b", "signed shift right"},
+ {"shruw", "a &gt;&gt; b", "unsigned shift right"},
+ {"signw", "sign(a)", "sign"},
+ {"subw", "a - b", "subtract"},
+ {"subssw", "clamp(a - b)", "subtract with signed saturate"},
+ {"subusw", "clamp(a - b)", "subtract with unsigned saturate"},
+ {"xorw", "a ^ b", "bitwise XOR"},
- { "absl", "(a &lt; 0) ? -a : a", "absolute value" },
- { "addl", "a + b", "add" },
- { "addssl", "clamp(a + b)", "add with signed saturate" },
- { "addusl", "clamp(a + b)", "add with unsigned saturate" },
- { "andl", "a &amp; b", "bitwise AND" },
- { "andnl", "a &amp; (~b)", "bitwise AND NOT" },
- { "avgsl", "(a + b + 1)&gt;&gt;1", "signed average" },
- { "avgul", "(a + b + 1)&gt;&gt;1", "unsigned average" },
- { "cmpeql", "(a == b) ? (~0) : 0", "compare equal" },
- { "cmpgtsl", "(a &gt; b) ? (~0) : 0", "compare greater than" },
- { "copyl", "a", "copy" },
- { "maxsl", "(a &gt; b) ? a : b", "signed maximum" },
- { "maxul", "(a &gt; b) ? a : b", "unsigned maximum" },
- { "minsl", "(a &lt; b) ? a : b", "signed minimum" },
- { "minul", "(a &lt; b) ? a : b", "unsigned minimum" },
- { "mulll", "a * b", "low bits of multiply" },
- { "mulhsl", "(a * b) &gt;&gt; 16", "high bits of signed multiply" },
- { "mulhul", "(a * b) &gt;&gt; 16", "high bits of unsigned multiply" },
- { "orl", "a | b", "bitwise or" },
- { "shll", "a &lt;&lt; b", "shift left" },
- { "shrsl", "a &gt;&gt; b", "signed shift right" },
- { "shrul", "a &gt;&gt; b", "unsigned shift right" },
- { "signl", "sign(a)", "sign" },
- { "subl", "a - b", "subtract" },
- { "subssl", "clamp(a - b)", "subtract with signed saturate" },
- { "subusl", "clamp(a - b)", "subtract with unsigned saturate" },
- { "xorl", "a ^ b", "bitwise XOR" },
+ {"absl", "(a &lt; 0) ? -a : a", "absolute value"},
+ {"addl", "a + b", "add"},
+ {"addssl", "clamp(a + b)", "add with signed saturate"},
+ {"addusl", "clamp(a + b)", "add with unsigned saturate"},
+ {"andl", "a &amp; b", "bitwise AND"},
+ {"andnl", "a &amp; (~b)", "bitwise AND NOT"},
+ {"avgsl", "(a + b + 1)&gt;&gt;1", "signed average"},
+ {"avgul", "(a + b + 1)&gt;&gt;1", "unsigned average"},
+ {"cmpeql", "(a == b) ? (~0) : 0", "compare equal"},
+ {"cmpgtsl", "(a &gt; b) ? (~0) : 0", "compare greater than"},
+ {"copyl", "a", "copy"},
+ {"maxsl", "(a &gt; b) ? a : b", "signed maximum"},
+ {"maxul", "(a &gt; b) ? a : b", "unsigned maximum"},
+ {"minsl", "(a &lt; b) ? a : b", "signed minimum"},
+ {"minul", "(a &lt; b) ? a : b", "unsigned minimum"},
+ {"mulll", "a * b", "low bits of multiply"},
+ {"mulhsl", "(a * b) &gt;&gt; 16", "high bits of signed multiply"},
+ {"mulhul", "(a * b) &gt;&gt; 16", "high bits of unsigned multiply"},
+ {"orl", "a | b", "bitwise or"},
+ {"shll", "a &lt;&lt; b", "shift left"},
+ {"shrsl", "a &gt;&gt; b", "signed shift right"},
+ {"shrul", "a &gt;&gt; b", "unsigned shift right"},
+ {"signl", "sign(a)", "sign"},
+ {"subl", "a - b", "subtract"},
+ {"subssl", "clamp(a - b)", "subtract with signed saturate"},
+ {"subusl", "clamp(a - b)", "subtract with unsigned saturate"},
+ {"xorl", "a ^ b", "bitwise XOR"},
- { "convsbw", "a", "convert signed" },
- { "convubw", "a", "convert unsigned" },
- { "convswl", "a", "convert signed" },
- { "convuwl", "a", "convert unsigned" },
- { "convwb", "a", "convert" },
- { "convssswb", "clamp(a)", "convert signed to signed with saturation" },
- { "convsuswb", "clamp(a)", "convert signed to unsigned with saturation" },
- { "convusswb", "clamp(a)", "convert unsigned to signed with saturation" },
- { "convuuswb", "clamp(a)", "convert unsigned to unsigned with saturation" },
- { "convlw", "a", "convert" },
- { "convssslw", "clamp(a)", "convert signed to signed with saturation" },
- { "convsuslw", "clamp(a)", "convert signed to unsigned with saturation" },
- { "convusslw", "clamp(a)", "convert unsigned to signed with saturation" },
- { "convuuslw", "clamp(a)", "convert unsigned to unsigned with saturation" },
- { "mulsbw", "a * b", "multiply signed" },
- { "mulubw", "a * b", "multiply unsigned" },
- { "mulswl", "a * b", "multiply signed" },
- { "muluwl", "a * b", "multiply unsigned" },
- { "mergewl", "special", "merge halves" },
- { "mergebw", "special", "merge halves" },
- { "select0wb", "special", "select first half" },
- { "select1wb", "special", "select second half" },
- { "select0lw", "special", "select first half" },
- { "select1lw", "special", "select second half" },
- { "swapw", "special", "endianness swap" },
- { "swapl", "special", "endianness swap" },
+ {"convsbw", "a", "convert signed"},
+ {"convubw", "a", "convert unsigned"},
+ {"convswl", "a", "convert signed"},
+ {"convuwl", "a", "convert unsigned"},
+ {"convwb", "a", "convert"},
+ {"convssswb", "clamp(a)", "convert signed to signed with saturation"},
+ {"convsuswb", "clamp(a)", "convert signed to unsigned with saturation"},
+ {"convusswb", "clamp(a)", "convert unsigned to signed with saturation"},
+ {"convuuswb", "clamp(a)", "convert unsigned to unsigned with saturation"},
+ {"convlw", "a", "convert"},
+ {"convssslw", "clamp(a)", "convert signed to signed with saturation"},
+ {"convsuslw", "clamp(a)", "convert signed to unsigned with saturation"},
+ {"convusslw", "clamp(a)", "convert unsigned to signed with saturation"},
+ {"convuuslw", "clamp(a)", "convert unsigned to unsigned with saturation"},
+ {"mulsbw", "a * b", "multiply signed"},
+ {"mulubw", "a * b", "multiply unsigned"},
+ {"mulswl", "a * b", "multiply signed"},
+ {"muluwl", "a * b", "multiply unsigned"},
+ {"mergewl", "special", "merge halves"},
+ {"mergebw", "special", "merge halves"},
+ {"select0wb", "special", "select first half"},
+ {"select1wb", "special", "select second half"},
+ {"select0lw", "special", "select first half"},
+ {"select1lw", "special", "select second half"},
+ {"swapw", "special", "endianness swap"},
+ {"swapl", "special", "endianness swap"},
- { "accw", "+= a", "accumulate" },
- { "accl", "+= a", "accumulate" },
- { "accsadubl", "+= abs(a - b)", "accumulate absolute difference" },
+ {"accw", "+= a", "accumulate"},
+ {"accl", "+= a", "accumulate"},
+ {"accsadubl", "+= abs(a - b)", "accumulate absolute difference"},
- { "splitlw" , "special", "split first/second words" },
- { "splitwb" , "special", "split first/second bytes" },
- { "addf", "a + b", "add" },
- { "subf", "a - b", "subtract" },
- { "mulf", "a * b", "multiply" },
- { "divf", "a / b", "divide" },
- { "sqrtf", "sqrt(a)", "square root" },
- { "maxf", "max(a,b)", "maximum" },
- { "minf", "min(a,b)", "minimum" },
- { "cmpeqf", "(a == b) ? (~0) : 0", "compare equal" },
- { "cmpltf", "(a == b) ? (~0) : 0", "compare less than" },
- { "cmplef", "(a == b) ? (~0) : 0", "compare less than or equal" },
- { "convfl", "a", "convert float point to integer" },
- { "convlf", "a", "convert integer to floating point" },
+ {"splitlw", "special", "split first/second words"},
+ {"splitwb", "special", "split first/second bytes"},
+ {"addf", "a + b", "add"},
+ {"subf", "a - b", "subtract"},
+ {"mulf", "a * b", "multiply"},
+ {"divf", "a / b", "divide"},
+ {"sqrtf", "sqrt(a)", "square root"},
+ {"maxf", "max(a,b)", "maximum"},
+ {"minf", "min(a,b)", "minimum"},
+ {"cmpeqf", "(a == b) ? (~0) : 0", "compare equal"},
+ {"cmpltf", "(a == b) ? (~0) : 0", "compare less than"},
+ {"cmplef", "(a == b) ? (~0) : 0", "compare less than or equal"},
+ {"convfl", "a", "convert float point to integer"},
+ {"convlf", "a", "convert integer to floating point"},
- { "loadb", "array[i]", "load from memory" },
- { "loadw", "array[i]", "load from memory" },
- { "loadl", "array[i]", "load from memory" },
- { "loadq", "array[i]", "load from memory" },
- { "storeb", "special", "store to memory" },
- { "storew", "special", "store to memory" },
- { "storel", "special", "store to memory" },
- { "storeq", "special", "store to memory" },
- { "loadoffb", "array[i+offset]", "load from memory with offset" },
- { "loadoffw", "array[i+offset]", "load from memory with offset" },
- { "loadoffl", "array[i+offset]", "load from memory with offset" },
- { "loadoffq", "array[i+offset]", "load from memory with offset" },
- { "loadpb", "scalar", "load parameter or constant" },
- { "loadpw", "scalar", "load parameter or constant" },
- { "loadpl", "scalar", "load parameter or constant" },
- { "loadpq", "scalar", "load parameter or constant" },
- { "loadupdb", "array[i>>1]", "load upsampled duplicate" },
- { "loadupib", "(array[i>>1] + array[(i+1)>>1] + 1)>>1",
- "load upsampled interpolate" },
- { "ldresnearb", "array[(b+c*i)>>8]", "load, nearest neighbor resampled" },
- { "ldreslinb", "special", "load, bilinear resampled" },
- { "ldresnearl", "array[(b+c*i)>>8]", "load, nearest neighbor resampled" },
- { "ldreslinl", "special", "load, bilinear resampled" },
- { "div255w", "a/255", "divide by 255" },
- { "divluw", "clamp(a/(b &amp; 255),0,255)", "saturated unsigned divide 16-bit by 8-bit" },
- { "splatw3q", "special", "duplicates high 16-bits to lower 48 bits" },
- { "splatbw", "special", "duplicates 8 bits to both halfs of 16 bits" },
- { "splatbl", "special", "duplicates 8 bits to all parts of 32 bits" },
- { "convql", "a", "convert" },
- { "convslq", "a", "signed convert" },
- { "convulq", "a", "unsigned convert" },
- { "convhwb", "a>>8", "shift and convert" },
- { "convhlw", "a>>16", "shift and convert" },
- { "convsssql", "clamp(a)", "convert signed to signed with saturation" },
- { "convsusql", "clamp(a)", "convert signed to unsigned with saturation" },
- { "convussql", "clamp(a)", "convert unsigned to signed with saturation" },
- { "convuusql", "clamp(a)", "convert unsigned to unsigned with saturation" },
+ {"loadb", "array[i]", "load from memory"},
+ {"loadw", "array[i]", "load from memory"},
+ {"loadl", "array[i]", "load from memory"},
+ {"loadq", "array[i]", "load from memory"},
+ {"storeb", "special", "store to memory"},
+ {"storew", "special", "store to memory"},
+ {"storel", "special", "store to memory"},
+ {"storeq", "special", "store to memory"},
+ {"loadoffb", "array[i+offset]", "load from memory with offset"},
+ {"loadoffw", "array[i+offset]", "load from memory with offset"},
+ {"loadoffl", "array[i+offset]", "load from memory with offset"},
+ {"loadoffq", "array[i+offset]", "load from memory with offset"},
+ {"loadpb", "scalar", "load parameter or constant"},
+ {"loadpw", "scalar", "load parameter or constant"},
+ {"loadpl", "scalar", "load parameter or constant"},
+ {"loadpq", "scalar", "load parameter or constant"},
+ {"loadupdb", "array[i>>1]", "load upsampled duplicate"},
+ {"loadupib", "(array[i>>1] + array[(i+1)>>1] + 1)>>1",
+ "load upsampled interpolate"},
+ {"ldresnearb", "array[(b+c*i)>>8]", "load, nearest neighbor resampled"},
+ {"ldreslinb", "special", "load, bilinear resampled"},
+ {"ldresnearl", "array[(b+c*i)>>8]", "load, nearest neighbor resampled"},
+ {"ldreslinl", "special", "load, bilinear resampled"},
+ {"div255w", "a/255", "divide by 255"},
+ {"divluw", "clamp(a/(b &amp; 255),0,255)",
+ "saturated unsigned divide 16-bit by 8-bit"},
+ {"splatw3q", "special", "duplicates high 16-bits to lower 48 bits"},
+ {"splatbw", "special", "duplicates 8 bits to both halfs of 16 bits"},
+ {"splatbl", "special", "duplicates 8 bits to all parts of 32 bits"},
+ {"convql", "a", "convert"},
+ {"convslq", "a", "signed convert"},
+ {"convulq", "a", "unsigned convert"},
+ {"convhwb", "a>>8", "shift and convert"},
+ {"convhlw", "a>>16", "shift and convert"},
+ {"convsssql", "clamp(a)", "convert signed to signed with saturation"},
+ {"convsusql", "clamp(a)", "convert signed to unsigned with saturation"},
+ {"convussql", "clamp(a)", "convert unsigned to signed with saturation"},
+ {"convuusql", "clamp(a)", "convert unsigned to unsigned with saturation"},
};
char *
-get_desc (OrcStaticOpcode *opcode)
+get_desc (OrcStaticOpcode * opcode)
{
int i;
- for(i=0;i<sizeof(ops)/sizeof(ops[0]);i++){
+ for (i = 0; i < sizeof (ops) / sizeof (ops[0]); i++) {
if (strcmp (opcode->name, ops[i].name) == 0) {
return ops[i].desc;
}
@@ -255,14 +248,13 @@ get_desc (OrcStaticOpcode *opcode)
}
char *
-get_code (OrcStaticOpcode *opcode)
+get_code (OrcStaticOpcode * opcode)
{
int i;
- for(i=0;i<sizeof(ops)/sizeof(ops[0]);i++){
+ for (i = 0; i < sizeof (ops) / sizeof (ops[0]); i++) {
if (strcmp (opcode->name, ops[i].name) == 0) {
return ops[i].code;
}
}
return "";
}
-
diff --git a/testsuite/memcpy_speed.c b/testsuite/memcpy_speed.c
index 3ac48da..80ab30f 100644
--- a/testsuite/memcpy_speed.c
+++ b/testsuite/memcpy_speed.c
@@ -23,13 +23,13 @@ touch (unsigned char *ptr, int n)
{
static int sum;
int i;
- for(i=0;i<n;i++){
+ for (i = 0; i < n; i++) {
sum += ptr[i];
}
}
int
-main(int argc, char *argv[])
+main (int argc, char *argv[])
{
char *s, *d;
orc_uint8 *src, *dest;
@@ -38,7 +38,7 @@ main(int argc, char *argv[])
double ave, std;
double ave_libc, std_libc;
double null;
- int i,j;
+ int i, j;
double cpufreq;
int unalign;
OrcProgram *p;
@@ -58,18 +58,18 @@ main(int argc, char *argv[])
unalign = 0;
}
- s = malloc(1024*1024*64+1024);
- d = malloc(1024*1024*64+1024);
- src = ORC_PTR_OFFSET(ALIGN(s,128),unalign);
- dest = ALIGN(d,128);
+ s = malloc (1024 * 1024 * 64 + 1024);
+ d = malloc (1024 * 1024 * 64 + 1024);
+ src = ORC_PTR_OFFSET (ALIGN (s, 128), unalign);
+ dest = ALIGN (d, 128);
orc_profile_init (&prof);
- for(j=0;j<10;j++){
- orc_profile_start(&prof);
- orc_profile_stop(&prof);
+ for (j = 0; j < 10; j++) {
+ orc_profile_start (&prof);
+ orc_profile_stop (&prof);
}
orc_profile_get_ave_std (&prof, &null, &std);
-
+
{
OrcCompileResult result;
@@ -88,7 +88,7 @@ main(int argc, char *argv[])
fprintf (stderr, "Failed to compile orc_memcpy\n");
return -1;
}
-
+
code = orc_program_take_code (p);
}
@@ -97,19 +97,19 @@ main(int argc, char *argv[])
#endif
orc_get_data_cache_sizes (&level1, &level2, &level3);
if (level3 > 0) {
- max = (log(level3)/M_LN2 - 6.0) * 10 + 20;
+ max = (log (level3) / M_LN2 - 6.0) * 10 + 20;
} else if (level2 > 0) {
- max = (log(level2)/M_LN2 - 6.0) * 10 + 20;
+ max = (log (level2) / M_LN2 - 6.0) * 10 + 20;
} else {
max = 140;
}
- for(i=0;i<max;i++){
- double x = i*0.1 + 6.0;
- int size = pow(2.0, x);
+ for (i = 0; i < max; i++) {
+ double x = i * 0.1 + 6.0;
+ int size = pow (2.0, x);
if (flush_cache) {
- touch (src, (1<<18));
+ touch (src, (1 << 18));
}
if (hot_src) {
touch (src, size);
@@ -119,22 +119,22 @@ main(int argc, char *argv[])
}
orc_profile_init (&prof);
- for(j=0;j<10;j++){
+ for (j = 0; j < 10; j++) {
OrcExecutor _ex, *ex = &_ex;
void (*func) (OrcExecutor *);
- orc_profile_start(&prof);
+ orc_profile_start (&prof);
//orc_memcpy (dest, src, size);
ex->n = size;
ex->arrays[ORC_VAR_D1] = dest;
- ex->arrays[ORC_VAR_S1] = (void *)src;
+ ex->arrays[ORC_VAR_S1] = (void *) src;
func = code->exec;
func (ex);
- orc_profile_stop(&prof);
+ orc_profile_stop (&prof);
if (flush_cache) {
- touch (src, (1<<18));
+ touch (src, (1 << 18));
}
if (hot_src) {
touch (src, size);
@@ -145,12 +145,12 @@ main(int argc, char *argv[])
}
orc_profile_init (&prof_libc);
- for(j=0;j<10;j++){
- orc_profile_start(&prof_libc);
+ for (j = 0; j < 10; j++) {
+ orc_profile_start (&prof_libc);
memcpy (dest, src, size);
- orc_profile_stop(&prof_libc);
+ orc_profile_stop (&prof_libc);
if (flush_cache) {
- touch (src, (1<<18));
+ touch (src, (1 << 18));
}
if (hot_src) {
touch (src, size);
@@ -169,8 +169,8 @@ main(int argc, char *argv[])
//printf("%d: %10.4g %10.4g %10.4g %10.4g (libc %10.4g)\n", i, ave, std,
// ave/(1<<i), cpufreq/(ave/(1<<i)),
// cpufreq/(ave_libc/(1<<i)));
- printf("%g %10.4g %10.4g\n", x,
- cpufreq/(ave/size), cpufreq/(ave_libc/size));
+ printf ("%g %10.4g %10.4g\n", x,
+ cpufreq / (ave / size), cpufreq / (ave_libc / size));
//printf("%g %10.4g %10.4g\n", x,
// 32*(ave/(size)), 32*(ave_libc/(size)));
fflush (stdout);
@@ -178,4 +178,3 @@ main(int argc, char *argv[])
return 0;
}
-
diff --git a/testsuite/perf_opcodes_sys.c b/testsuite/perf_opcodes_sys.c
index d077289..e89770f 100644
--- a/testsuite/perf_opcodes_sys.c
+++ b/testsuite/perf_opcodes_sys.c
@@ -9,7 +9,7 @@
int error = FALSE;
-void test_opcode_src (OrcStaticOpcode *opcode);
+void test_opcode_src (OrcStaticOpcode * opcode);
int
main (int argc, char *argv[])
@@ -17,30 +17,30 @@ main (int argc, char *argv[])
int i;
OrcOpcodeSet *opcode_set;
- orc_test_init();
- orc_init();
+ orc_test_init ();
+ orc_init ();
opcode_set = orc_opcode_set_get ("sys");
- for(i=0;i<opcode_set->n_opcodes;i++){
- printf("opcode_%-20s ", opcode_set->opcodes[i].name);
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
+ printf ("opcode_%-20s ", opcode_set->opcodes[i].name);
test_opcode_src (opcode_set->opcodes + i);
}
- if (error) return 1;
+ if (error)
+ return 1;
return 0;
}
void
-test_opcode_src (OrcStaticOpcode *opcode)
+test_opcode_src (OrcStaticOpcode * opcode)
{
OrcProgram *p;
int flags = 0;
p = orc_test_get_program_for_opcode (opcode);
- printf("%g\n", orc_test_performance_full (p, flags, NULL));
+ printf ("%g\n", orc_test_performance_full (p, flags, NULL));
orc_program_free (p);
}
-
diff --git a/testsuite/perf_opcodes_sys_compare.c b/testsuite/perf_opcodes_sys_compare.c
index 1fdf76f..59dbd9b 100644
--- a/testsuite/perf_opcodes_sys_compare.c
+++ b/testsuite/perf_opcodes_sys_compare.c
@@ -9,7 +9,7 @@
int error = FALSE;
-void test_opcode_src (OrcStaticOpcode *opcode);
+void test_opcode_src (OrcStaticOpcode * opcode);
int
main (int argc, char *argv[])
@@ -17,22 +17,23 @@ main (int argc, char *argv[])
int i;
OrcOpcodeSet *opcode_set;
- orc_test_init();
- orc_init();
+ orc_test_init ();
+ orc_init ();
opcode_set = orc_opcode_set_get ("sys");
- for(i=0;i<opcode_set->n_opcodes;i++){
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
//printf("opcode_%-20s ", opcode_set->opcodes[i].name);
test_opcode_src (opcode_set->opcodes + i);
}
- if (error) return 1;
+ if (error)
+ return 1;
return 0;
}
void
-test_opcode_src (OrcStaticOpcode *opcode)
+test_opcode_src (OrcStaticOpcode * opcode)
{
OrcProgram *p;
char s[40];
@@ -62,7 +63,7 @@ test_opcode_src (OrcStaticOpcode *opcode)
flags = ORC_TEST_FLAGS_FLOAT;
}
- sprintf(s, "test_s_%s ", opcode->name);
+ sprintf (s, "test_s_%s ", opcode->name);
orc_program_set_name (p, s);
if (opcode->dest_size[1] != 0) {
@@ -74,8 +75,7 @@ test_opcode_src (OrcStaticOpcode *opcode)
perf_mmx = orc_test_performance_full (p, flags, "mmx");
perf_sse = orc_test_performance_full (p, flags, "sse");
- printf("%g %g\n", perf_mmx, perf_sse);
+ printf ("%g %g\n", perf_mmx, perf_sse);
orc_program_free (p);
}
-
diff --git a/testsuite/perf_parse.c b/testsuite/perf_parse.c
index 731c142..d4e5990 100644
--- a/testsuite/perf_parse.c
+++ b/testsuite/perf_parse.c
@@ -6,10 +6,10 @@
#include <stdio.h>
#include <stdlib.h>
-static char * read_file (const char *filename);
-void output_code (OrcProgram *p, FILE *output);
-void output_code_header (OrcProgram *p, FILE *output);
-void output_code_test (OrcProgram *p, FILE *output);
+static char *read_file (const char *filename);
+void output_code (OrcProgram * p, FILE * output);
+void output_code_header (OrcProgram * p, FILE * output);
+void output_code_test (OrcProgram * p, FILE * output);
int error = FALSE;
@@ -36,18 +36,19 @@ main (int argc, char *argv[])
}
code = read_file (filename);
if (!code) {
- printf("perf_parse <file.orc>\n");
- exit(1);
+ printf ("perf_parse <file.orc>\n");
+ exit (1);
}
n = orc_parse (code, &programs);
- for(i=0;i<n;i++){
- printf("%-30s %g\n", programs[i]->name,
+ for (i = 0; i < n; i++) {
+ printf ("%-30s %g\n", programs[i]->name,
orc_test_performance_full (programs[i], 0, NULL));
}
- if (error) return 1;
+ if (error)
+ return 1;
return 0;
}
@@ -61,31 +62,38 @@ read_file (const char *filename)
int ret;
file = fopen (filename, "r");
- if (file == NULL) return NULL;
+ if (file == NULL)
+ return NULL;
ret = fseek (file, 0, SEEK_END);
- if (ret < 0) goto bail;
+ if (ret < 0)
+ goto bail;
size = ftell (file);
- if (size < 0) goto bail;
+ if (size < 0)
+ goto bail;
ret = fseek (file, 0, SEEK_SET);
- if (ret < 0) goto bail;
+ if (ret < 0)
+ goto bail;
contents = malloc (size + 1);
- if (contents == NULL) goto bail;
+ if (contents == NULL)
+ goto bail;
ret = fread (contents, size, 1, file);
- if (ret < 0) goto bail;
+ if (ret < 0)
+ goto bail;
contents[size] = 0;
return contents;
bail:
/* something failed */
- if (file) fclose (file);
- if (contents) free (contents);
+ if (file)
+ fclose (file);
+ if (contents)
+ free (contents);
return NULL;
}
-
diff --git a/testsuite/perf_parse_compare.c b/testsuite/perf_parse_compare.c
index c0d4d76..b1af503 100644
--- a/testsuite/perf_parse_compare.c
+++ b/testsuite/perf_parse_compare.c
@@ -6,10 +6,10 @@
#include <stdio.h>
#include <stdlib.h>
-static char * read_file (const char *filename);
-void output_code (OrcProgram *p, FILE *output);
-void output_code_header (OrcProgram *p, FILE *output);
-void output_code_test (OrcProgram *p, FILE *output);
+static char *read_file (const char *filename);
+void output_code (OrcProgram * p, FILE * output);
+void output_code_header (OrcProgram * p, FILE * output);
+void output_code_test (OrcProgram * p, FILE * output);
int error = FALSE;
@@ -36,21 +36,22 @@ main (int argc, char *argv[])
}
code = read_file (filename);
if (!code) {
- printf("perf_parse <file.orc>\n");
- exit(1);
+ printf ("perf_parse <file.orc>\n");
+ exit (1);
}
n = orc_parse (code, &programs);
- for(i=0;i<n;i++){
+ for (i = 0; i < n; i++) {
double perf_mmx;
double perf_sse;
perf_mmx = orc_test_performance_full (programs[i], 0, "mmx");
perf_sse = orc_test_performance_full (programs[i], 0, "sse");
- printf("%g %g\n", perf_mmx, perf_sse);
+ printf ("%g %g\n", perf_mmx, perf_sse);
}
- if (error) return 1;
+ if (error)
+ return 1;
return 0;
}
@@ -64,31 +65,38 @@ read_file (const char *filename)
int ret;
file = fopen (filename, "r");
- if (file == NULL) return NULL;
+ if (file == NULL)
+ return NULL;
ret = fseek (file, 0, SEEK_END);
- if (ret < 0) goto bail;
+ if (ret < 0)
+ goto bail;
size = ftell (file);
- if (size < 0) goto bail;
+ if (size < 0)
+ goto bail;
ret = fseek (file, 0, SEEK_SET);
- if (ret < 0) goto bail;
+ if (ret < 0)
+ goto bail;
contents = malloc (size + 1);
- if (contents == NULL) goto bail;
+ if (contents == NULL)
+ goto bail;
ret = fread (contents, size, 1, file);
- if (ret < 0) goto bail;
+ if (ret < 0)
+ goto bail;
contents[size] = 0;
return contents;
bail:
/* something failed */
- if (file) fclose (file);
- if (contents) free (contents);
+ if (file)
+ fclose (file);
+ if (contents)
+ free (contents);
return NULL;
}
-
diff --git a/testsuite/show_parse.c b/testsuite/show_parse.c
index 931ed9b..dd1c718 100644
--- a/testsuite/show_parse.c
+++ b/testsuite/show_parse.c
@@ -15,16 +15,17 @@
#define isnan(x) _isnan(x)
#endif
-static char * read_file (const char *filename);
-void output_code (OrcProgram *p, FILE *output);
-void output_code_header (OrcProgram *p, FILE *output);
-void output_code_test (OrcProgram *p, FILE *output);
+static char *read_file (const char *filename);
+void output_code (OrcProgram * p, FILE * output);
+void output_code_header (OrcProgram * p, FILE * output);
+void output_code_test (OrcProgram * p, FILE * output);
-void show (OrcProgram *p);
+void show (OrcProgram * p);
int error = FALSE;
-enum {
+enum
+{
FORMAT_SIGNED,
FORMAT_UNSIGNED,
FORMAT_HEX,
@@ -46,18 +47,18 @@ main (int argc, char *argv[])
orc_init ();
orc_test_init ();
- for(i=1;i<argc;i++){
- if (strcmp("-x", argv[i]) == 0) {
+ for (i = 1; i < argc; i++) {
+ if (strcmp ("-x", argv[i]) == 0) {
format = FORMAT_HEX;
- } else if (strcmp("-s", argv[i]) == 0) {
+ } else if (strcmp ("-s", argv[i]) == 0) {
format = FORMAT_SIGNED;
- } else if (strcmp("-u", argv[i]) == 0) {
+ } else if (strcmp ("-u", argv[i]) == 0) {
format = FORMAT_UNSIGNED;
- } else if (strcmp("-f", argv[i]) == 0) {
+ } else if (strcmp ("-f", argv[i]) == 0) {
format = FORMAT_FLOAT;
- } else if (strcmp("-n", argv[i]) == 0) {
+ } else if (strcmp ("-n", argv[i]) == 0) {
if (i + 1 < argc) {
- array_n = strtol (argv[i+1], NULL, 0);
+ array_n = strtol (argv[i + 1], NULL, 0);
i++;
}
} else {
@@ -79,20 +80,21 @@ main (int argc, char *argv[])
opcode = orc_opcode_find_by_name (filename);
if (opcode) {
- programs = malloc(sizeof(void *));
+ programs = malloc (sizeof (void *));
programs[0] = orc_test_get_program_for_opcode (opcode);
n = 1;
} else {
- printf("show_parse [-fsux] (<file.orc>|opcode)\n");
- exit(1);
+ printf ("show_parse [-fsux] (<file.orc>|opcode)\n");
+ exit (1);
}
}
- for(i=0;i<n;i++){
+ for (i = 0; i < n; i++) {
show (programs[i]);
}
- if (error) return 1;
+ if (error)
+ return 1;
return 0;
}
@@ -106,137 +108,145 @@ read_file (const char *filename)
int ret;
file = fopen (filename, "r");
- if (file == NULL) return NULL;
+ if (file == NULL)
+ return NULL;
ret = fseek (file, 0, SEEK_END);
- if (ret < 0) goto bail;
+ if (ret < 0)
+ goto bail;
size = ftell (file);
- if (size < 0) goto bail;
+ if (size < 0)
+ goto bail;
ret = fseek (file, 0, SEEK_SET);
- if (ret < 0) goto bail;
+ if (ret < 0)
+ goto bail;
contents = malloc (size + 1);
- if (contents == NULL) goto bail;
+ if (contents == NULL)
+ goto bail;
ret = fread (contents, size, 1, file);
- if (ret < 0) goto bail;
+ if (ret < 0)
+ goto bail;
contents[size] = 0;
return contents;
bail:
/* something failed */
- if (file) fclose (file);
- if (contents) free (contents);
+ if (file)
+ fclose (file);
+ if (contents)
+ free (contents);
return NULL;
}
int
-print_array_val_signed (OrcArray *array, int i, int j)
+print_array_val_signed (OrcArray * array, int i, int j)
{
void *ptr = ORC_PTR_OFFSET (array->data,
- i*array->element_size + j*array->stride);
+ i * array->element_size + j * array->stride);
switch (array->element_size) {
case 1:
- printf(" %4d", *(orc_int8 *)ptr);
- return *(orc_int8 *)ptr;
+ printf (" %4d", *(orc_int8 *) ptr);
+ return *(orc_int8 *) ptr;
case 2:
- printf(" %5d", *(orc_int16 *)ptr);
- return *(orc_int16 *)ptr;
+ printf (" %5d", *(orc_int16 *) ptr);
+ return *(orc_int16 *) ptr;
case 4:
- printf(" %10d", *(orc_int32 *)ptr);
- return *(orc_int32 *)ptr;
+ printf (" %10d", *(orc_int32 *) ptr);
+ return *(orc_int32 *) ptr;
case 8:
- printf(" 0x%08x%08x", (orc_uint32)((*(orc_uint64 *)ptr)>>32),
- (orc_uint32)((*(orc_uint64 *)ptr)));
- return *(orc_int64 *)ptr;
+ printf (" 0x%08x%08x", (orc_uint32) ((*(orc_uint64 *) ptr) >> 32),
+ (orc_uint32) ((*(orc_uint64 *) ptr)));
+ return *(orc_int64 *) ptr;
default:
return -1;
}
}
int
-print_array_val_unsigned (OrcArray *array, int i, int j)
+print_array_val_unsigned (OrcArray * array, int i, int j)
{
void *ptr = ORC_PTR_OFFSET (array->data,
- i*array->element_size + j*array->stride);
+ i * array->element_size + j * array->stride);
switch (array->element_size) {
case 1:
- printf(" %4u", *(orc_uint8 *)ptr);
- return *(orc_int8 *)ptr;
+ printf (" %4u", *(orc_uint8 *) ptr);
+ return *(orc_int8 *) ptr;
case 2:
- printf(" %5u", *(orc_uint16 *)ptr);
- return *(orc_int16 *)ptr;
+ printf (" %5u", *(orc_uint16 *) ptr);
+ return *(orc_int16 *) ptr;
case 4:
- printf(" %10u", *(orc_uint32 *)ptr);
- return *(orc_int32 *)ptr;
+ printf (" %10u", *(orc_uint32 *) ptr);
+ return *(orc_int32 *) ptr;
case 8:
- printf(" 0x%08x%08x", (orc_uint32)((*(orc_uint64 *)ptr)>>32),
- (orc_uint32)((*(orc_uint64 *)ptr)));
- return *(orc_int64 *)ptr;
+ printf (" 0x%08x%08x", (orc_uint32) ((*(orc_uint64 *) ptr) >> 32),
+ (orc_uint32) ((*(orc_uint64 *) ptr)));
+ return *(orc_int64 *) ptr;
default:
return -1;
}
}
int
-print_array_val_hex (OrcArray *array, int i, int j)
+print_array_val_hex (OrcArray * array, int i, int j)
{
void *ptr = ORC_PTR_OFFSET (array->data,
- i*array->element_size + j*array->stride);
+ i * array->element_size + j * array->stride);
switch (array->element_size) {
case 1:
- printf(" %02x", *(orc_uint8 *)ptr);
- return *(orc_int8 *)ptr;
+ printf (" %02x", *(orc_uint8 *) ptr);
+ return *(orc_int8 *) ptr;
case 2:
- printf(" %04x", *(orc_uint16 *)ptr);
- return *(orc_int16 *)ptr;
+ printf (" %04x", *(orc_uint16 *) ptr);
+ return *(orc_int16 *) ptr;
case 4:
- printf(" %08x", *(orc_uint32 *)ptr);
- return *(orc_int32 *)ptr;
+ printf (" %08x", *(orc_uint32 *) ptr);
+ return *(orc_int32 *) ptr;
case 8:
- printf(" 0x%08x%08x", (orc_uint32)((*(orc_uint64 *)ptr)>>32),
- (orc_uint32)((*(orc_uint64 *)ptr)));
- return *(orc_int64 *)ptr;
+ printf (" 0x%08x%08x", (orc_uint32) ((*(orc_uint64 *) ptr) >> 32),
+ (orc_uint32) ((*(orc_uint64 *) ptr)));
+ return *(orc_int64 *) ptr;
default:
return -1;
}
}
int
-print_array_val_float (OrcArray *array, int i, int j)
+print_array_val_float (OrcArray * array, int i, int j)
{
void *ptr = ORC_PTR_OFFSET (array->data,
- i*array->element_size + j*array->stride);
+ i * array->element_size + j * array->stride);
switch (array->element_size) {
case 4:
- if (isnan(*(float *)ptr)) {
- printf(" nan %08x", *(orc_uint32 *)ptr);
+ if (isnan (*(float *) ptr)) {
+ printf (" nan %08x", *(orc_uint32 *) ptr);
/* This is to get around signaling/non-signaling nans in the output */
- return (*(orc_uint32 *)ptr) & 0xffbfffff;
+ return (*(orc_uint32 *) ptr) & 0xffbfffff;
} else {
- printf(" %12.5g", *(float *)ptr);
- return *(orc_int32 *)ptr;
+ printf (" %12.5g", *(float *) ptr);
+ return *(orc_int32 *) ptr;
}
case 8:
- printf(" %12.5g", *(double *)ptr);
- return *(orc_int64 *)ptr;
+ printf (" %12.5g", *(double *) ptr);
+ return *(orc_int64 *) ptr;
default:
- printf(" ERROR");
+ printf (" ERROR");
return -1;
}
}
void
-show (OrcProgram *program)
+show (OrcProgram * program)
{
OrcCompileResult result;
OrcTarget *target;
@@ -246,7 +256,7 @@ show (OrcProgram *program)
OrcExecutor *ex;
OrcArray *dest[4] = { NULL, NULL, NULL, NULL };
OrcArray *src[8] = { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL };
- int i,j;
+ int i, j;
OrcRandomContext rand_context = { 0 };
@@ -256,12 +266,12 @@ show (OrcProgram *program)
target_flags = orc_target_get_default_flags (target);
result = orc_program_compile_full (program, target, target_flags);
- if (!ORC_COMPILE_RESULT_IS_SUCCESSFUL(result)) {
- printf("%s: compile failed\n", program->name);
+ if (!ORC_COMPILE_RESULT_IS_SUCCESSFUL (result)) {
+ printf ("%s: compile failed\n", program->name);
return;
}
- printf("%s:\n", program->name);
+ printf ("%s:\n", program->name);
if (program->constant_n > 0) {
n = program->constant_n;
@@ -282,14 +292,15 @@ show (OrcProgram *program)
}
orc_executor_set_m (ex, m);
- for(i=0;i<ORC_N_VARIABLES;i++){
- if (program->vars[i].name == NULL) continue;
+ for (i = 0; i < ORC_N_VARIABLES; i++) {
+ if (program->vars[i].name == NULL)
+ continue;
if (program->vars[i].vartype == ORC_VAR_TYPE_SRC) {
- src[i-ORC_VAR_S1] = orc_array_new (n, m, program->vars[i].size, 0, 0);
- orc_array_set_random (src[i-ORC_VAR_S1], &rand_context);
+ src[i - ORC_VAR_S1] = orc_array_new (n, m, program->vars[i].size, 0, 0);
+ orc_array_set_random (src[i - ORC_VAR_S1], &rand_context);
} else if (program->vars[i].vartype == ORC_VAR_TYPE_DEST) {
- dest[i-ORC_VAR_D1] = orc_array_new (n, m, program->vars[i].size, 0, 0);
+ dest[i - ORC_VAR_D1] = orc_array_new (n, m, program->vars[i].size, 0, 0);
orc_array_set_pattern (dest[i], ORC_OOB_VALUE);
} else if (program->vars[i].vartype == ORC_VAR_TYPE_PARAM) {
switch (program->vars[i].param_type) {
@@ -306,89 +317,90 @@ show (OrcProgram *program)
orc_executor_set_param_double (ex, i, 2.0);
break;
default:
- ORC_ASSERT(0);
+ ORC_ASSERT (0);
}
}
}
orc_executor_set_n (ex, n);
orc_executor_set_m (ex, m);
- for(j=0;j<ORC_N_VARIABLES;j++){
+ for (j = 0; j < ORC_N_VARIABLES; j++) {
if (program->vars[j].vartype == ORC_VAR_TYPE_DEST) {
- orc_executor_set_array (ex, j, dest[j-ORC_VAR_D1]->data);
- orc_executor_set_stride (ex, j, dest[j-ORC_VAR_D1]->stride);
+ orc_executor_set_array (ex, j, dest[j - ORC_VAR_D1]->data);
+ orc_executor_set_stride (ex, j, dest[j - ORC_VAR_D1]->stride);
}
if (program->vars[j].vartype == ORC_VAR_TYPE_SRC) {
- orc_executor_set_array (ex, j, src[j-ORC_VAR_S1]->data);
- orc_executor_set_stride (ex, j, src[j-ORC_VAR_S1]->stride);
+ orc_executor_set_array (ex, j, src[j - ORC_VAR_S1]->data);
+ orc_executor_set_stride (ex, j, src[j - ORC_VAR_S1]->stride);
}
}
orc_executor_run (ex);
{
- int i,j;
+ int i, j;
- for(j=0;j<m;j++){
- for(i=0;i<n;i++){
+ for (j = 0; j < m; j++) {
+ for (i = 0; i < n; i++) {
int l;
- printf("%2d %2d:", i, j);
+ printf ("%2d %2d:", i, j);
- for(l=ORC_VAR_S1;l<ORC_VAR_S1+8;l++){
+ for (l = ORC_VAR_S1; l < ORC_VAR_S1 + 8; l++) {
if (program->vars[l].size > 0) {
switch (format) {
case FORMAT_FLOAT:
- print_array_val_float (src[l-ORC_VAR_S1], i, j);
+ print_array_val_float (src[l - ORC_VAR_S1], i, j);
break;
case FORMAT_HEX:
- print_array_val_hex (src[l-ORC_VAR_S1], i, j);
+ print_array_val_hex (src[l - ORC_VAR_S1], i, j);
break;
case FORMAT_SIGNED:
- print_array_val_signed (src[l-ORC_VAR_S1], i, j);
+ print_array_val_signed (src[l - ORC_VAR_S1], i, j);
break;
case FORMAT_UNSIGNED:
- print_array_val_unsigned (src[l-ORC_VAR_S1], i, j);
+ print_array_val_unsigned (src[l - ORC_VAR_S1], i, j);
break;
}
}
}
- printf(" ->");
- for(l=ORC_VAR_D1;l<ORC_VAR_D1+4;l++){
+ printf (" ->");
+ for (l = ORC_VAR_D1; l < ORC_VAR_D1 + 4; l++) {
if (program->vars[l].size > 0) {
switch (format) {
case FORMAT_FLOAT:
- print_array_val_float (dest[l-ORC_VAR_D1], i, j);
+ print_array_val_float (dest[l - ORC_VAR_D1], i, j);
break;
case FORMAT_HEX:
- print_array_val_hex (dest[l-ORC_VAR_D1], i, j);
+ print_array_val_hex (dest[l - ORC_VAR_D1], i, j);
break;
case FORMAT_SIGNED:
- print_array_val_signed (dest[l-ORC_VAR_D1], i, j);
+ print_array_val_signed (dest[l - ORC_VAR_D1], i, j);
break;
case FORMAT_UNSIGNED:
- print_array_val_unsigned (dest[l-ORC_VAR_D1], i, j);
+ print_array_val_unsigned (dest[l - ORC_VAR_D1], i, j);
break;
}
}
}
- printf("\n");
+ printf ("\n");
}
}
}
- for(i=0;i<4;i++){
- if (dest[i]) orc_array_free (dest[i]);
+ for (i = 0; i < 4; i++) {
+ if (dest[i])
+ orc_array_free (dest[i]);
}
- for(i=0;i<8;i++){
- if (src[i]) orc_array_free (src[i]);
+ for (i = 0; i < 8; i++) {
+ if (src[i])
+ orc_array_free (src[i]);
}
orc_executor_free (ex);
}
-
diff --git a/testsuite/test-schro.c b/testsuite/test-schro.c
index 148b53d..2409631 100644
--- a/testsuite/test-schro.c
+++ b/testsuite/test-schro.c
@@ -19,188 +19,188 @@ get_program (int type)
OrcProgram *p;
switch (type) {
- case 0:
- p = orc_program_new ();
- orc_program_add_destination (p, 2, "d1");
- orc_program_add_source (p, 2, "s1");
- orc_program_add_source (p, 2, "s2");
- orc_program_add_constant (p, 2, 2, "c1");
- orc_program_add_constant (p, 2, 2, "c2");
- orc_program_add_temporary (p, 2, "t1");
-
- orc_program_append_str (p, "addw", "t1", "s1", "s2");
- orc_program_append_str (p, "addw", "t1", "t1", "c1");
- orc_program_append_str (p, "shrsw", "t1", "t1", "c2");
- orc_program_append_str (p, "addw", "d1", "d1", "t1");
- break;
- case 1:
- p = orc_program_new ();
- orc_program_add_destination (p, 2, "d1");
- orc_program_add_source (p, 2, "s1");
- orc_program_add_source (p, 2, "s2");
- orc_program_add_constant (p, 2, 2, "c1");
- orc_program_add_constant (p, 2, 2, "c2");
- orc_program_add_temporary (p, 2, "t1");
-
- orc_program_append_str (p, "addw", "t1", "s1", "s2");
- orc_program_append_str (p, "addw", "t1", "t1", "c1");
- orc_program_append_str (p, "shrsw", "t1", "t1", "c2");
- orc_program_append_str (p, "subw", "d1", "d1", "t1");
- break;
- case 2:
- p = orc_program_new ();
- orc_program_add_destination (p, 2, "d1");
- orc_program_add_source (p, 2, "s1");
- orc_program_add_source (p, 2, "s2");
- orc_program_add_constant (p, 2, 1, "c1");
- orc_program_add_constant (p, 2, 1, "c2");
- orc_program_add_temporary (p, 2, "t1");
-
- orc_program_append_str (p, "addw", "t1", "s1", "s2");
- orc_program_append_str (p, "addw", "t1", "t1", "c1");
- orc_program_append_str (p, "shrsw", "t1", "t1", "c2");
- orc_program_append_str (p, "addw", "d1", "d1", "t1");
- break;
- case 3:
- p = orc_program_new ();
- orc_program_add_destination (p, 2, "d1");
- orc_program_add_source (p, 2, "s1");
- orc_program_add_source (p, 2, "s2");
- orc_program_add_constant (p, 2, 1, "c1");
- orc_program_add_constant (p, 2, 1, "c2");
- orc_program_add_temporary (p, 2, "t1");
-
- orc_program_append_str (p, "addw", "t1", "s1", "s2");
- orc_program_append_str (p, "addw", "t1", "t1", "c1");
- orc_program_append_str (p, "shrsw", "t1", "t1", "c2");
- orc_program_append_str (p, "subw", "d1", "d1", "t1");
- break;
- case 4:
- p = orc_program_new_dss (2,2,2);
- orc_program_add_constant (p, 2, 1, "c1");
- orc_program_add_temporary (p, 2, "t1");
-
- orc_program_append_str (p, "addw", "t1", "s1", "c1");
- orc_program_append_str (p, "shrsw", "d1", "t1", "c1");
- break;
- case 5:
- p = orc_program_new_dss (2,2,2);
-
- orc_program_append_str (p, "addw", "d1", "s1", "s2");
- break;
- case 6:
- p = orc_program_new_ds (2,2);
- orc_program_add_constant (p, 2, 1, "c1");
-
- orc_program_append_str (p, "shlw", "d1", "s1", "c1");
- break;
- case 7:
- p = orc_program_new_ds (2,2);
- orc_program_add_constant (p, 2, 2, "c1");
-
- orc_program_append_str (p, "shlw", "d1", "s1", "c1");
- break;
- case 8:
- p = orc_program_new_dss (2,2,2);
- orc_program_add_temporary (p, 2, "t1");
- orc_program_add_temporary (p, 4, "t2");
- orc_program_add_parameter (p, 2, "p1");
- orc_program_add_parameter (p, 4, "p2");
- orc_program_add_parameter (p, 4, "p3");
-
- orc_program_append_str (p, "addw", "t1", "s1", "s2");
- orc_program_append_str (p, "mulswl", "t2", "t1", "p1");
- orc_program_append_str (p, "addl", "t2", "t2", "p2");
- orc_program_append_str (p, "shll", "t2", "t2", "p3");
- orc_program_append_ds_str (p, "convlw", "t1", "t2");
- orc_program_append_str (p, "addw", "d1", "d1", "t1");
- break;
- case 9:
- p = orc_program_new ();
- orc_program_add_destination (p, 2, "d1");
- orc_program_add_source (p, 2, "s20");
- orc_program_add_source (p, 2, "s21");
- orc_program_add_source (p, 2, "s22");
- orc_program_add_source (p, 2, "s23");
- orc_program_add_constant (p, 2, 9, "c1");
- orc_program_add_parameter (p, 2, "p1");
- orc_program_add_parameter (p, 2, "p2");
- orc_program_add_temporary (p, 2, "t1");
- orc_program_add_temporary (p, 2, "t2");
-
- orc_program_append_str (p, "addw", "t1", "s21", "s22");
- orc_program_append_str (p, "mullw", "t1", "t1", "c1");
- orc_program_append_str (p, "addw", "t2", "s20", "s23");
- orc_program_append_str (p, "subw", "t1", "t1", "t2");
- orc_program_append_str (p, "addw", "t1", "t1", "p1");
- orc_program_append_str (p, "shrsw", "t1", "t1", "p2");
- orc_program_append_str (p, "addw", "d1", "d1", "t1");
- break;
- case 10:
- p = orc_program_new ();
- orc_program_add_destination (p, 2, "d1");
- orc_program_add_source (p, 2, "s20");
- orc_program_add_source (p, 2, "s21");
- orc_program_add_source (p, 2, "s22");
- orc_program_add_source (p, 2, "s23");
- orc_program_add_constant (p, 2, 9, "c1");
- orc_program_add_parameter (p, 2, "p1");
- orc_program_add_parameter (p, 2, "p2");
- orc_program_add_temporary (p, 2, "t1");
- orc_program_add_temporary (p, 2, "t2");
-
- orc_program_append_str (p, "addw", "t1", "s21", "s22");
- orc_program_append_str (p, "mullw", "t1", "t1", "c1");
- orc_program_append_str (p, "addw", "t2", "s20", "s23");
- orc_program_append_str (p, "subw", "t1", "t1", "t2");
- orc_program_append_str (p, "addw", "t1", "t1", "p1");
- orc_program_append_str (p, "shrsw", "t1", "t1", "p2");
- orc_program_append_str (p, "subw", "d1", "d1", "t1");
- break;
- case 11:
- p = orc_program_new_dss (2,2,2);
-
- orc_program_append_str (p, "subw", "d1", "s1", "s2");
- break;
- case 12:
- p = orc_program_new_ds (1,1);
- orc_program_append_ds_str (p, "copyb", "d1", "s1");
- break;
- case 13:
- p = orc_program_new_dss (2,2,1);
- orc_program_add_temporary (p, 2, "t1");
-
- orc_program_append_ds_str (p, "convubw", "t1", "s2");
- orc_program_append_str (p, "addw", "d1", "t1", "s1");
- break;
- case 14:
- p = orc_program_new_ds (2,1);
-
- orc_program_append_ds_str (p, "convubw", "d1", "s1");
- break;
- case 15:
- p = orc_program_new_ds (1,2);
-
- orc_program_append_ds_str (p, "convsuswb", "d1", "s1");
- break;
- case 16:
- p = orc_program_new_dss (2,2,1);
- orc_program_add_temporary (p, 2, "t1");
-
- orc_program_append_ds_str (p, "convubw", "t1", "s2");
- orc_program_append_str (p, "subw", "d1", "s1", "t1");
- break;
- case 17:
- p = orc_program_new_dss (2,2,2);
- orc_program_add_source (p, 1, "s3");
- orc_program_add_temporary (p, 2, "t1");
-
- orc_program_append_ds_str (p, "convubw", "t1", "s3");
- orc_program_append_str (p, "mullw", "t1", "t1", "s2");
- orc_program_append_str (p, "addw", "d1", "s1", "t1");
- break;
- default:
- return NULL;
+ case 0:
+ p = orc_program_new ();
+ orc_program_add_destination (p, 2, "d1");
+ orc_program_add_source (p, 2, "s1");
+ orc_program_add_source (p, 2, "s2");
+ orc_program_add_constant (p, 2, 2, "c1");
+ orc_program_add_constant (p, 2, 2, "c2");
+ orc_program_add_temporary (p, 2, "t1");
+
+ orc_program_append_str (p, "addw", "t1", "s1", "s2");
+ orc_program_append_str (p, "addw", "t1", "t1", "c1");
+ orc_program_append_str (p, "shrsw", "t1", "t1", "c2");
+ orc_program_append_str (p, "addw", "d1", "d1", "t1");
+ break;
+ case 1:
+ p = orc_program_new ();
+ orc_program_add_destination (p, 2, "d1");
+ orc_program_add_source (p, 2, "s1");
+ orc_program_add_source (p, 2, "s2");
+ orc_program_add_constant (p, 2, 2, "c1");
+ orc_program_add_constant (p, 2, 2, "c2");
+ orc_program_add_temporary (p, 2, "t1");
+
+ orc_program_append_str (p, "addw", "t1", "s1", "s2");
+ orc_program_append_str (p, "addw", "t1", "t1", "c1");
+ orc_program_append_str (p, "shrsw", "t1", "t1", "c2");
+ orc_program_append_str (p, "subw", "d1", "d1", "t1");
+ break;
+ case 2:
+ p = orc_program_new ();
+ orc_program_add_destination (p, 2, "d1");
+ orc_program_add_source (p, 2, "s1");
+ orc_program_add_source (p, 2, "s2");
+ orc_program_add_constant (p, 2, 1, "c1");
+ orc_program_add_constant (p, 2, 1, "c2");
+ orc_program_add_temporary (p, 2, "t1");
+
+ orc_program_append_str (p, "addw", "t1", "s1", "s2");
+ orc_program_append_str (p, "addw", "t1", "t1", "c1");
+ orc_program_append_str (p, "shrsw", "t1", "t1", "c2");
+ orc_program_append_str (p, "addw", "d1", "d1", "t1");
+ break;
+ case 3:
+ p = orc_program_new ();
+ orc_program_add_destination (p, 2, "d1");
+ orc_program_add_source (p, 2, "s1");
+ orc_program_add_source (p, 2, "s2");
+ orc_program_add_constant (p, 2, 1, "c1");
+ orc_program_add_constant (p, 2, 1, "c2");
+ orc_program_add_temporary (p, 2, "t1");
+
+ orc_program_append_str (p, "addw", "t1", "s1", "s2");
+ orc_program_append_str (p, "addw", "t1", "t1", "c1");
+ orc_program_append_str (p, "shrsw", "t1", "t1", "c2");
+ orc_program_append_str (p, "subw", "d1", "d1", "t1");
+ break;
+ case 4:
+ p = orc_program_new_dss (2, 2, 2);
+ orc_program_add_constant (p, 2, 1, "c1");
+ orc_program_add_temporary (p, 2, "t1");
+
+ orc_program_append_str (p, "addw", "t1", "s1", "c1");
+ orc_program_append_str (p, "shrsw", "d1", "t1", "c1");
+ break;
+ case 5:
+ p = orc_program_new_dss (2, 2, 2);
+
+ orc_program_append_str (p, "addw", "d1", "s1", "s2");
+ break;
+ case 6:
+ p = orc_program_new_ds (2, 2);
+ orc_program_add_constant (p, 2, 1, "c1");
+
+ orc_program_append_str (p, "shlw", "d1", "s1", "c1");
+ break;
+ case 7:
+ p = orc_program_new_ds (2, 2);
+ orc_program_add_constant (p, 2, 2, "c1");
+
+ orc_program_append_str (p, "shlw", "d1", "s1", "c1");
+ break;
+ case 8:
+ p = orc_program_new_dss (2, 2, 2);
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 4, "t2");
+ orc_program_add_parameter (p, 2, "p1");
+ orc_program_add_parameter (p, 4, "p2");
+ orc_program_add_parameter (p, 4, "p3");
+
+ orc_program_append_str (p, "addw", "t1", "s1", "s2");
+ orc_program_append_str (p, "mulswl", "t2", "t1", "p1");
+ orc_program_append_str (p, "addl", "t2", "t2", "p2");
+ orc_program_append_str (p, "shll", "t2", "t2", "p3");
+ orc_program_append_ds_str (p, "convlw", "t1", "t2");
+ orc_program_append_str (p, "addw", "d1", "d1", "t1");
+ break;
+ case 9:
+ p = orc_program_new ();
+ orc_program_add_destination (p, 2, "d1");
+ orc_program_add_source (p, 2, "s20");
+ orc_program_add_source (p, 2, "s21");
+ orc_program_add_source (p, 2, "s22");
+ orc_program_add_source (p, 2, "s23");
+ orc_program_add_constant (p, 2, 9, "c1");
+ orc_program_add_parameter (p, 2, "p1");
+ orc_program_add_parameter (p, 2, "p2");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+
+ orc_program_append_str (p, "addw", "t1", "s21", "s22");
+ orc_program_append_str (p, "mullw", "t1", "t1", "c1");
+ orc_program_append_str (p, "addw", "t2", "s20", "s23");
+ orc_program_append_str (p, "subw", "t1", "t1", "t2");
+ orc_program_append_str (p, "addw", "t1", "t1", "p1");
+ orc_program_append_str (p, "shrsw", "t1", "t1", "p2");
+ orc_program_append_str (p, "addw", "d1", "d1", "t1");
+ break;
+ case 10:
+ p = orc_program_new ();
+ orc_program_add_destination (p, 2, "d1");
+ orc_program_add_source (p, 2, "s20");
+ orc_program_add_source (p, 2, "s21");
+ orc_program_add_source (p, 2, "s22");
+ orc_program_add_source (p, 2, "s23");
+ orc_program_add_constant (p, 2, 9, "c1");
+ orc_program_add_parameter (p, 2, "p1");
+ orc_program_add_parameter (p, 2, "p2");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+
+ orc_program_append_str (p, "addw", "t1", "s21", "s22");
+ orc_program_append_str (p, "mullw", "t1", "t1", "c1");
+ orc_program_append_str (p, "addw", "t2", "s20", "s23");
+ orc_program_append_str (p, "subw", "t1", "t1", "t2");
+ orc_program_append_str (p, "addw", "t1", "t1", "p1");
+ orc_program_append_str (p, "shrsw", "t1", "t1", "p2");
+ orc_program_append_str (p, "subw", "d1", "d1", "t1");
+ break;
+ case 11:
+ p = orc_program_new_dss (2, 2, 2);
+
+ orc_program_append_str (p, "subw", "d1", "s1", "s2");
+ break;
+ case 12:
+ p = orc_program_new_ds (1, 1);
+ orc_program_append_ds_str (p, "copyb", "d1", "s1");
+ break;
+ case 13:
+ p = orc_program_new_dss (2, 2, 1);
+ orc_program_add_temporary (p, 2, "t1");
+
+ orc_program_append_ds_str (p, "convubw", "t1", "s2");
+ orc_program_append_str (p, "addw", "d1", "t1", "s1");
+ break;
+ case 14:
+ p = orc_program_new_ds (2, 1);
+
+ orc_program_append_ds_str (p, "convubw", "d1", "s1");
+ break;
+ case 15:
+ p = orc_program_new_ds (1, 2);
+
+ orc_program_append_ds_str (p, "convsuswb", "d1", "s1");
+ break;
+ case 16:
+ p = orc_program_new_dss (2, 2, 1);
+ orc_program_add_temporary (p, 2, "t1");
+
+ orc_program_append_ds_str (p, "convubw", "t1", "s2");
+ orc_program_append_str (p, "subw", "d1", "s1", "t1");
+ break;
+ case 17:
+ p = orc_program_new_dss (2, 2, 2);
+ orc_program_add_source (p, 1, "s3");
+ orc_program_add_temporary (p, 2, "t1");
+
+ orc_program_append_ds_str (p, "convubw", "t1", "s3");
+ orc_program_append_str (p, "mullw", "t1", "t1", "s2");
+ orc_program_append_str (p, "addw", "d1", "s1", "t1");
+ break;
+ default:
+ return NULL;
}
return p;
@@ -215,9 +215,9 @@ test_program (int type)
char s[40];
OrcTestResult ret;
- p = get_program(type);
+ p = get_program (type);
- sprintf(s, "test_schro_%d", type);
+ sprintf (s, "test_schro_%d", type);
orc_program_set_name (p, s);
ret = orc_test_compare_output (p);
@@ -232,15 +232,15 @@ main (int argc, char *argv[])
{
int i;
- orc_init();
- orc_test_init();
+ orc_init ();
+ orc_test_init ();
- for(i=0;i<18;i++){
+ for (i = 0; i < 18; i++) {
//printf("/* %d */\n", i);
test_program (i);
}
- if (error) return 1;
+ if (error)
+ return 1;
return 0;
}
-
diff --git a/testsuite/test_accsadubl.c b/testsuite/test_accsadubl.c
index 1388045..13277e9 100644
--- a/testsuite/test_accsadubl.c
+++ b/testsuite/test_accsadubl.c
@@ -10,12 +10,12 @@
int error = FALSE;
-void test_opcode (OrcStaticOpcode *opcode);
+void test_opcode (OrcStaticOpcode * opcode);
orc_uint8 array1[100];
orc_uint8 array2[100];
-int orc_sad_u8 (orc_uint8 *s1, orc_uint8 *s2, int n);
+int orc_sad_u8 (orc_uint8 * s1, orc_uint8 * s2, int n);
int
main (int argc, char *argv[])
@@ -24,33 +24,34 @@ main (int argc, char *argv[])
int n;
int sum;
- orc_init();
+ orc_init ();
- for(n=0;n<20;n++){
+ for (n = 0; n < 20; n++) {
sum = 0;
- for(i=0;i<n;i++){
- array1[i] = rand();
- array2[i] = rand();
- sum += abs(array1[i] - array2[i]);
+ for (i = 0; i < n; i++) {
+ array1[i] = rand ();
+ array2[i] = rand ();
+ sum += abs (array1[i] - array2[i]);
}
if (sum != orc_sad_u8 (array1, array2, n)) {
- for(i=0;i<n;i++){
- printf("%d: %d %d -> %d\n", i, array1[i], array2[i],
- abs(array1[i] - array2[i]));
+ for (i = 0; i < n; i++) {
+ printf ("%d: %d %d -> %d\n", i, array1[i], array2[i],
+ abs (array1[i] - array2[i]));
}
- printf("sum %d %d\n", sum, orc_sad_u8 (array1, array2, n));
+ printf ("sum %d %d\n", sum, orc_sad_u8 (array1, array2, n));
error = TRUE;
}
}
- if (error) return 1;
+ if (error)
+ return 1;
return 0;
}
int
-orc_sad_u8 (orc_uint8 *s1, orc_uint8 *s2, int n)
+orc_sad_u8 (orc_uint8 * s1, orc_uint8 * s2, int n)
{
static OrcProgram *p = NULL;
OrcExecutor *ex;
@@ -66,10 +67,9 @@ orc_sad_u8 (orc_uint8 *s1, orc_uint8 *s2, int n)
orc_program_append_str (p, "accsadubl", "a1", "s1", "s2");
result = orc_program_compile (p);
- if (!ORC_COMPILE_RESULT_IS_SUCCESSFUL(result)) {
+ if (!ORC_COMPILE_RESULT_IS_SUCCESSFUL (result)) {
return 0;
}
-
//printf("%s\n", orc_program_get_asm_code (p));
}
@@ -87,5 +87,3 @@ orc_sad_u8 (orc_uint8 *s1, orc_uint8 *s2, int n)
return sum;
}
-
-
diff --git a/tools/orc-bugreport.c b/tools/orc-bugreport.c
index 359b3d9..2f939b0 100644
--- a/tools/orc-bugreport.c
+++ b/tools/orc-bugreport.c
@@ -11,7 +11,7 @@
#include <stdlib.h>
#include <string.h>
-static char * read_file (const char *filename);
+static char *read_file (const char *filename);
void test_opcodes (void);
@@ -27,67 +27,68 @@ main (int argc, char *argv[])
orc_init ();
orc_test_init ();
- for(i=1;i<argc;i++){
- if (strcmp(argv[i], "--help") == 0) {
- printf("Usage:\n");
- printf(" orc-bugreport [file.orc]\n");
- printf("\n");
- printf("Options:\n");
- printf(" --help Show help options\n");
- printf(" --verbose Increase debugging messages\n");
- printf("\n");
- printf("Environment Variables:\n");
- printf(" ORC_DEBUG=<LEVEL> Set debugging level\n");
- printf(" ORC_CODE=[KEYWORDS,...] Modify code generation\n");
- printf(" General keywords:\n");
- printf(" backup Always use backup function\n");
- printf(" debug Generate debuggable code (useful for backtraces on i386)\n");
- printf(" SSE keywords:\n");
- printf(" -sse2 Disable SSE2\n");
- printf(" -sse3 Disable SSE3\n");
- printf(" -ssse3 Disable SSEE3\n");
- printf(" -sse41 Disable SSE4.1\n");
- printf(" -sse42 Disable SSE4.2\n");
- printf(" -sse4a Disable SSE4a\n");
- printf(" -sse5 Disable SSE5\n");
- printf("\n");
+ for (i = 1; i < argc; i++) {
+ if (strcmp (argv[i], "--help") == 0) {
+ printf ("Usage:\n");
+ printf (" orc-bugreport [file.orc]\n");
+ printf ("\n");
+ printf ("Options:\n");
+ printf (" --help Show help options\n");
+ printf (" --verbose Increase debugging messages\n");
+ printf ("\n");
+ printf ("Environment Variables:\n");
+ printf (" ORC_DEBUG=<LEVEL> Set debugging level\n");
+ printf (" ORC_CODE=[KEYWORDS,...] Modify code generation\n");
+ printf (" General keywords:\n");
+ printf (" backup Always use backup function\n");
+ printf
+ (" debug Generate debuggable code (useful for backtraces on i386)\n");
+ printf (" SSE keywords:\n");
+ printf (" -sse2 Disable SSE2\n");
+ printf (" -sse3 Disable SSE3\n");
+ printf (" -ssse3 Disable SSEE3\n");
+ printf (" -sse41 Disable SSE4.1\n");
+ printf (" -sse42 Disable SSE4.2\n");
+ printf (" -sse4a Disable SSE4a\n");
+ printf (" -sse5 Disable SSE5\n");
+ printf ("\n");
exit (0);
}
filename = argv[i];
}
- printf("Orc " VERSION " - integrated testing tool\n");
+ printf ("Orc " VERSION " - integrated testing tool\n");
- printf("Active backend: %s\n",
- orc_target_get_name(orc_target_get_default()));
+ printf ("Active backend: %s\n",
+ orc_target_get_name (orc_target_get_default ()));
{
int level1, level2, level3;
- orc_get_data_cache_sizes(&level1, &level2, &level3);
- printf("L1 cache: %d\n", level1);
- printf("L2 cache: %d\n", level2);
- printf("L3 cache: %d\n", level3);
+ orc_get_data_cache_sizes (&level1, &level2, &level3);
+ printf ("L1 cache: %d\n", level1);
+ printf ("L2 cache: %d\n", level2);
+ printf ("L3 cache: %d\n", level3);
}
{
int family, model, stepping;
orc_get_cpu_family_model_stepping (&family, &model, &stepping);
- printf("Family/Model/Stepping: %d/%d/%d\n", family, model, stepping);
- printf("CPU name: %s\n", orc_get_cpu_name ());
+ printf ("Family/Model/Stepping: %d/%d/%d\n", family, model, stepping);
+ printf ("CPU name: %s\n", orc_get_cpu_name ());
}
{
int i;
- int flags = orc_target_get_default_flags (orc_target_get_default());
+ int flags = orc_target_get_default_flags (orc_target_get_default ());
- printf("Compiler options: ");
- for(i=0;i<32;i++){
- if (flags & (1<<i)) {
- printf("%s ", orc_target_get_flag_name (orc_target_get_default(), i));
+ printf ("Compiler options: ");
+ for (i = 0; i < 32; i++) {
+ if (flags & (1 << i)) {
+ printf ("%s ", orc_target_get_flag_name (orc_target_get_default (), i));
}
}
- printf("\n");
+ printf ("\n");
}
if (filename) {
@@ -97,30 +98,30 @@ main (int argc, char *argv[])
code = read_file (filename);
if (!code) {
- printf("orc-bugreport: could not read file %s\n", filename);
- exit(1);
+ printf ("orc-bugreport: could not read file %s\n", filename);
+ exit (1);
}
- printf("Parsing %s\n", filename);
+ printf ("Parsing %s\n", filename);
n = orc_parse (code, &programs);
- for(i=0;i<n;i++){
+ for (i = 0; i < n; i++) {
ret = orc_test_compare_output_full (programs[i], 0);
if (!ret) {
- printf("FAIL: %s\n", programs[i]->name);
+ printf ("FAIL: %s\n", programs[i]->name);
error = TRUE;
}
}
} else {
- printf("Opcode test:\n");
- test_opcodes();
+ printf ("Opcode test:\n");
+ test_opcodes ();
}
if (error) {
- printf("Errors detected. Please send entire output to ds@schleef.org.\n");
+ printf ("Errors detected. Please send entire output to ds@schleef.org.\n");
return 1;
} else {
- printf("No errors detected.\n");
+ printf ("No errors detected.\n");
return 0;
}
}
@@ -135,42 +136,50 @@ read_file (const char *filename)
int ret;
file = fopen (filename, "r");
- if (file == NULL) return NULL;
+ if (file == NULL)
+ return NULL;
ret = fseek (file, 0, SEEK_END);
- if (ret < 0) goto bail;
+ if (ret < 0)
+ goto bail;
size = ftell (file);
- if (size < 0) goto bail;
+ if (size < 0)
+ goto bail;
ret = fseek (file, 0, SEEK_SET);
- if (ret < 0) goto bail;
+ if (ret < 0)
+ goto bail;
contents = malloc (size + 1);
- if (contents == NULL) goto bail;
+ if (contents == NULL)
+ goto bail;
ret = fread (contents, size, 1, file);
- if (ret < 0) goto bail;
+ if (ret < 0)
+ goto bail;
contents[size] = 0;
return contents;
bail:
/* something failed */
- if (file) fclose (file);
- if (contents) free (contents);
+ if (file)
+ fclose (file);
+ if (contents)
+ free (contents);
return NULL;
}
-void test_opcode_src (OrcStaticOpcode *opcode);
-void test_opcode_const (OrcStaticOpcode *opcode);
-void test_opcode_param (OrcStaticOpcode *opcode);
-void test_opcode_inplace (OrcStaticOpcode *opcode);
-void test_opcode_src_2d (OrcStaticOpcode *opcode);
-void test_opcode_src_const_n (OrcStaticOpcode *opcode);
-void test_opcode_src_const_n_2d (OrcStaticOpcode *opcode);
+void test_opcode_src (OrcStaticOpcode * opcode);
+void test_opcode_const (OrcStaticOpcode * opcode);
+void test_opcode_param (OrcStaticOpcode * opcode);
+void test_opcode_inplace (OrcStaticOpcode * opcode);
+void test_opcode_src_2d (OrcStaticOpcode * opcode);
+void test_opcode_src_const_n (OrcStaticOpcode * opcode);
+void test_opcode_src_const_n_2d (OrcStaticOpcode * opcode);
void
test_opcodes (void)
@@ -180,31 +189,31 @@ test_opcodes (void)
opcode_set = orc_opcode_set_get ("sys");
- for(i=0;i<opcode_set->n_opcodes;i++){
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
test_opcode_src (opcode_set->opcodes + i);
}
- for(i=0;i<opcode_set->n_opcodes;i++){
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
test_opcode_const (opcode_set->opcodes + i);
}
- for(i=0;i<opcode_set->n_opcodes;i++){
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
test_opcode_param (opcode_set->opcodes + i);
}
- for(i=0;i<opcode_set->n_opcodes;i++){
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
test_opcode_inplace (opcode_set->opcodes + i);
}
- for(i=0;i<opcode_set->n_opcodes;i++){
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
test_opcode_src_2d (opcode_set->opcodes + i);
}
- for(i=0;i<opcode_set->n_opcodes;i++){
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
test_opcode_src_const_n (opcode_set->opcodes + i);
}
- for(i=0;i<opcode_set->n_opcodes;i++){
+ for (i = 0; i < opcode_set->n_opcodes; i++) {
test_opcode_src_const_n_2d (opcode_set->opcodes + i);
}
}
void
-test_opcode_src (OrcStaticOpcode *opcode)
+test_opcode_src (OrcStaticOpcode * opcode)
{
OrcProgram *p;
char s[40];
@@ -234,7 +243,7 @@ test_opcode_src (OrcStaticOpcode *opcode)
flags = ORC_TEST_FLAGS_FLOAT;
}
- sprintf(s, "test_s_%s", opcode->name);
+ sprintf (s, "test_s_%s", opcode->name);
orc_program_set_name (p, s);
if (opcode->dest_size[1] != 0) {
@@ -245,7 +254,7 @@ test_opcode_src (OrcStaticOpcode *opcode)
ret = orc_test_compare_output_full (p, flags);
if (!ret) {
- printf("FAIL: %s src\n", opcode->name);
+ printf ("FAIL: %s src\n", opcode->name);
error = TRUE;
}
@@ -253,7 +262,7 @@ test_opcode_src (OrcStaticOpcode *opcode)
}
void
-test_opcode_const (OrcStaticOpcode *opcode)
+test_opcode_const (OrcStaticOpcode * opcode)
{
OrcProgram *p;
char s[40];
@@ -269,22 +278,19 @@ test_opcode_const (OrcStaticOpcode *opcode)
p = orc_program_new ();
if (opcode->flags & ORC_STATIC_OPCODE_ACCUMULATOR) {
args[n_args++] =
- orc_program_add_accumulator (p, opcode->dest_size[0], "d1");
+ orc_program_add_accumulator (p, opcode->dest_size[0], "d1");
} else {
args[n_args++] =
- orc_program_add_destination (p, opcode->dest_size[0], "d1");
+ orc_program_add_destination (p, opcode->dest_size[0], "d1");
}
if (opcode->dest_size[1] != 0) {
args[n_args++] =
- orc_program_add_destination (p, opcode->dest_size[1], "d2");
+ orc_program_add_destination (p, opcode->dest_size[1], "d2");
}
- args[n_args++] =
- orc_program_add_source (p, opcode->src_size[0], "s1");
- args[n_args++] =
- orc_program_add_constant (p, opcode->src_size[1], 1, "c1");
+ args[n_args++] = orc_program_add_source (p, opcode->src_size[0], "s1");
+ args[n_args++] = orc_program_add_constant (p, opcode->src_size[1], 1, "c1");
if (opcode->src_size[2]) {
- args[n_args++] =
- orc_program_add_constant (p, opcode->src_size[2], 1, "c2");
+ args[n_args++] = orc_program_add_constant (p, opcode->src_size[2], 1, "c2");
}
if ((opcode->flags & ORC_STATIC_OPCODE_FLOAT_SRC) ||
@@ -292,15 +298,14 @@ test_opcode_const (OrcStaticOpcode *opcode)
flags = ORC_TEST_FLAGS_FLOAT;
}
- sprintf(s, "test_const_%s", opcode->name);
+ sprintf (s, "test_const_%s", opcode->name);
orc_program_set_name (p, s);
- orc_program_append_2 (p, opcode->name, 0, args[0], args[1],
- args[2], args[3]);
+ orc_program_append_2 (p, opcode->name, 0, args[0], args[1], args[2], args[3]);
ret = orc_test_compare_output_full (p, flags);
if (!ret) {
- printf("FAIL: %s const\n", opcode->name);
+ printf ("FAIL: %s const\n", opcode->name);
error = TRUE;
}
@@ -308,7 +313,7 @@ test_opcode_const (OrcStaticOpcode *opcode)
}
void
-test_opcode_param (OrcStaticOpcode *opcode)
+test_opcode_param (OrcStaticOpcode * opcode)
{
OrcProgram *p;
char s[40];
@@ -323,22 +328,19 @@ test_opcode_param (OrcStaticOpcode *opcode)
p = orc_program_new ();
if (opcode->flags & ORC_STATIC_OPCODE_ACCUMULATOR) {
args[n_args++] =
- orc_program_add_accumulator (p, opcode->dest_size[0], "d1");
+ orc_program_add_accumulator (p, opcode->dest_size[0], "d1");
} else {
args[n_args++] =
- orc_program_add_destination (p, opcode->dest_size[0], "d1");
+ orc_program_add_destination (p, opcode->dest_size[0], "d1");
}
if (opcode->dest_size[1] != 0) {
args[n_args++] =
- orc_program_add_destination (p, opcode->dest_size[1], "d2");
+ orc_program_add_destination (p, opcode->dest_size[1], "d2");
}
- args[n_args++] =
- orc_program_add_source (p, opcode->src_size[0], "s1");
- args[n_args++] =
- orc_program_add_parameter (p, opcode->src_size[1], "p1");
+ args[n_args++] = orc_program_add_source (p, opcode->src_size[0], "s1");
+ args[n_args++] = orc_program_add_parameter (p, opcode->src_size[1], "p1");
if (opcode->src_size[2]) {
- args[n_args++] =
- orc_program_add_parameter (p, opcode->src_size[2], "p2");
+ args[n_args++] = orc_program_add_parameter (p, opcode->src_size[2], "p2");
}
if ((opcode->flags & ORC_STATIC_OPCODE_FLOAT_SRC) ||
@@ -346,15 +348,14 @@ test_opcode_param (OrcStaticOpcode *opcode)
flags = ORC_TEST_FLAGS_FLOAT;
}
- sprintf(s, "test_p_%s", opcode->name);
+ sprintf (s, "test_p_%s", opcode->name);
orc_program_set_name (p, s);
- orc_program_append_2 (p, opcode->name, 0, args[0], args[1],
- args[2], args[3]);
+ orc_program_append_2 (p, opcode->name, 0, args[0], args[1], args[2], args[3]);
ret = orc_test_compare_output_full (p, flags);
if (!ret) {
- printf("FAIL: %s param\n", opcode->name);
+ printf ("FAIL: %s param\n", opcode->name);
error = TRUE;
}
@@ -362,14 +363,15 @@ test_opcode_param (OrcStaticOpcode *opcode)
}
void
-test_opcode_inplace (OrcStaticOpcode *opcode)
+test_opcode_inplace (OrcStaticOpcode * opcode)
{
OrcProgram *p;
char s[40];
int ret;
int flags = 0;
- if (opcode->dest_size[0] != opcode->src_size[0]) return;
+ if (opcode->dest_size[0] != opcode->src_size[0])
+ return;
if (opcode->flags & ORC_STATIC_OPCODE_SCALAR ||
opcode->flags & ORC_STATIC_OPCODE_ACCUMULATOR) {
@@ -390,14 +392,14 @@ test_opcode_inplace (OrcStaticOpcode *opcode)
flags = ORC_TEST_FLAGS_FLOAT;
}
- sprintf(s, "test_inplace_%s", opcode->name);
+ sprintf (s, "test_inplace_%s", opcode->name);
orc_program_set_name (p, s);
orc_program_append_str (p, opcode->name, "d1", "d1", "s2");
ret = orc_test_compare_output_full (p, flags);
if (!ret) {
- printf("FAIL: %s inplace\n", opcode->name);
+ printf ("FAIL: %s inplace\n", opcode->name);
error = TRUE;
}
@@ -405,7 +407,7 @@ test_opcode_inplace (OrcStaticOpcode *opcode)
}
void
-test_opcode_src_2d (OrcStaticOpcode *opcode)
+test_opcode_src_2d (OrcStaticOpcode * opcode)
{
OrcProgram *p;
char s[40];
@@ -435,7 +437,7 @@ test_opcode_src_2d (OrcStaticOpcode *opcode)
flags = ORC_TEST_FLAGS_FLOAT;
}
- sprintf(s, "test_s_%s", opcode->name);
+ sprintf (s, "test_s_%s", opcode->name);
orc_program_set_name (p, s);
orc_program_set_2d (p);
@@ -447,7 +449,7 @@ test_opcode_src_2d (OrcStaticOpcode *opcode)
ret = orc_test_compare_output_full (p, flags);
if (!ret) {
- printf("FAIL: %s src_2d\n", opcode->name);
+ printf ("FAIL: %s src_2d\n", opcode->name);
error = TRUE;
}
@@ -455,7 +457,7 @@ test_opcode_src_2d (OrcStaticOpcode *opcode)
}
void
-test_opcode_src_const_n (OrcStaticOpcode *opcode)
+test_opcode_src_const_n (OrcStaticOpcode * opcode)
{
OrcProgram *p;
char s[40];
@@ -485,7 +487,7 @@ test_opcode_src_const_n (OrcStaticOpcode *opcode)
flags = ORC_TEST_FLAGS_FLOAT;
}
- sprintf(s, "test_s_%s", opcode->name);
+ sprintf (s, "test_s_%s", opcode->name);
orc_program_set_name (p, s);
orc_program_set_constant_n (p, 8);
@@ -497,7 +499,7 @@ test_opcode_src_const_n (OrcStaticOpcode *opcode)
ret = orc_test_compare_output_full (p, flags);
if (!ret) {
- printf("FAIL: %s src_const_n\n", opcode->name);
+ printf ("FAIL: %s src_const_n\n", opcode->name);
error = TRUE;
}
@@ -505,7 +507,7 @@ test_opcode_src_const_n (OrcStaticOpcode *opcode)
}
void
-test_opcode_src_const_n_2d (OrcStaticOpcode *opcode)
+test_opcode_src_const_n_2d (OrcStaticOpcode * opcode)
{
OrcProgram *p;
char s[40];
@@ -535,7 +537,7 @@ test_opcode_src_const_n_2d (OrcStaticOpcode *opcode)
flags = ORC_TEST_FLAGS_FLOAT;
}
- sprintf(s, "test_s_%s", opcode->name);
+ sprintf (s, "test_s_%s", opcode->name);
orc_program_set_name (p, s);
orc_program_set_2d (p);
orc_program_set_constant_n (p, 8);
@@ -548,10 +550,9 @@ test_opcode_src_const_n_2d (OrcStaticOpcode *opcode)
ret = orc_test_compare_output_full (p, flags);
if (!ret) {
- printf("FAIL: %s src_const_n_2d\n", opcode->name);
+ printf ("FAIL: %s src_const_n_2d\n", opcode->name);
error = TRUE;
}
orc_program_free (p);
}
-
diff --git a/tools/orcc.c b/tools/orcc.c
index ad4968a..fabd285 100644
--- a/tools/orcc.c
+++ b/tools/orcc.c
@@ -12,18 +12,18 @@
#include <string.h>
#include <ctype.h>
-static char * read_file (const char *filename);
-void output_code (OrcProgram *p, FILE *output);
-void output_code_header (OrcProgram *p, FILE *output);
-void output_code_test (OrcProgram *p, FILE *output);
-void output_code_backup (OrcProgram *p, FILE *output);
-void output_code_no_orc (OrcProgram *p, FILE *output);
-void output_code_assembly (OrcProgram *p, FILE *output);
-void output_code_execute (OrcProgram *p, FILE *output, int is_inline);
-void output_program_generation (OrcProgram *p, FILE *output, int is_inline);
-void output_init_function (FILE *output);
-static char * get_barrier (const char *s);
-static const char * my_basename (const char *s);
+static char *read_file (const char *filename);
+void output_code (OrcProgram * p, FILE * output);
+void output_code_header (OrcProgram * p, FILE * output);
+void output_code_test (OrcProgram * p, FILE * output);
+void output_code_backup (OrcProgram * p, FILE * output);
+void output_code_no_orc (OrcProgram * p, FILE * output);
+void output_code_assembly (OrcProgram * p, FILE * output);
+void output_code_execute (OrcProgram * p, FILE * output, int is_inline);
+void output_program_generation (OrcProgram * p, FILE * output, int is_inline);
+void output_init_function (FILE * output);
+static char *get_barrier (const char *s);
+static const char *my_basename (const char *s);
int verbose = 0;
int error = 0;
@@ -48,7 +48,8 @@ char *target = "sse";
} \
} while (0)
-enum {
+enum
+{
MODE_IMPL,
MODE_HEADER,
MODE_TEST,
@@ -56,30 +57,33 @@ enum {
};
int mode = MODE_IMPL;
-void help (void)
+void
+help (void)
{
- printf("Usage:\n");
- printf(" orcc [OPTION...] INPUT_FILE\n");
- printf("\n");
- printf("Help Options:\n");
- printf(" -h, --help Show help options\n");
- printf("\n");
- printf("Application Options:\n");
- printf(" -v, --verbose Output more information\n");
- printf(" -o, --output FILE Write output to FILE\n");
- printf(" --implementation Produce C code implementing functions\n");
- printf(" --header Produce C header for functions\n");
- printf(" --test Produce test code for functions\n");
- printf(" --assembly Produce assembly code for functions\n");
- printf(" --include FILE Add #include <FILE> to code\n");
- printf(" --target TARGET Generate assembly for TARGET\n");
- printf(" --compat VERSION Generate code compatible with Orc version VERSION\n");
- printf(" --inline Generate inline functions in header\n");
- printf(" --no-inline Do not generate inline functions in header\n");
- printf(" --init-function FUNCTION Generate initialization function\n");
- printf(" --lazy-init Do Orc compile at function execution\n");
- printf(" --no-backup Do not generate backup functions\n");
- printf("\n");
+ printf ("Usage:\n");
+ printf (" orcc [OPTION...] INPUT_FILE\n");
+ printf ("\n");
+ printf ("Help Options:\n");
+ printf (" -h, --help Show help options\n");
+ printf ("\n");
+ printf ("Application Options:\n");
+ printf (" -v, --verbose Output more information\n");
+ printf (" -o, --output FILE Write output to FILE\n");
+ printf (" --implementation Produce C code implementing functions\n");
+ printf (" --header Produce C header for functions\n");
+ printf (" --test Produce test code for functions\n");
+ printf (" --assembly Produce assembly code for functions\n");
+ printf (" --include FILE Add #include <FILE> to code\n");
+ printf (" --target TARGET Generate assembly for TARGET\n");
+ printf
+ (" --compat VERSION Generate code compatible with Orc version VERSION\n");
+ printf (" --inline Generate inline functions in header\n");
+ printf
+ (" --no-inline Do not generate inline functions in header\n");
+ printf (" --init-function FUNCTION Generate initialization function\n");
+ printf (" --lazy-init Do Orc compile at function execution\n");
+ printf (" --no-backup Do not generate backup functions\n");
+ printf ("\n");
exit (0);
}
@@ -99,89 +103,86 @@ main (int argc, char *argv[])
orc_init ();
- for(i=1;i<argc;i++) {
- if (strcmp(argv[i], "--header") == 0) {
+ for (i = 1; i < argc; i++) {
+ if (strcmp (argv[i], "--header") == 0) {
mode = MODE_HEADER;
- } else if (strcmp(argv[i], "--implementation") == 0) {
+ } else if (strcmp (argv[i], "--implementation") == 0) {
mode = MODE_IMPL;
- } else if (strcmp(argv[i], "--test") == 0) {
+ } else if (strcmp (argv[i], "--test") == 0) {
mode = MODE_TEST;
- } else if (strcmp(argv[i], "--assembly") == 0) {
+ } else if (strcmp (argv[i], "--assembly") == 0) {
mode = MODE_ASSEMBLY;
- } else if (strcmp(argv[i], "--include") == 0) {
- if (i+1 < argc) {
- include_file = argv[i+1];
+ } else if (strcmp (argv[i], "--include") == 0) {
+ if (i + 1 < argc) {
+ include_file = argv[i + 1];
i++;
} else {
- help();
+ help ();
}
- } else if (strcmp (argv[i], "--output") == 0 ||
- strcmp(argv[i], "-o") == 0) {
- if (i+1 < argc) {
- output_file = argv[i+1];
+ } else if (strcmp (argv[i], "--output") == 0 || strcmp (argv[i], "-o") == 0) {
+ if (i + 1 < argc) {
+ output_file = argv[i + 1];
i++;
} else {
- help();
+ help ();
}
- } else if (strcmp(argv[i], "--target") == 0 ||
- strcmp(argv[i], "-t") == 0) {
- if (i+1 < argc) {
- target = argv[i+1];
+ } else if (strcmp (argv[i], "--target") == 0 || strcmp (argv[i], "-t") == 0) {
+ if (i + 1 < argc) {
+ target = argv[i + 1];
i++;
} else {
- help();
+ help ();
}
- } else if (strcmp(argv[i], "--inline") == 0) {
+ } else if (strcmp (argv[i], "--inline") == 0) {
use_inline = TRUE;
- } else if (strcmp(argv[i], "--no-inline") == 0) {
+ } else if (strcmp (argv[i], "--no-inline") == 0) {
use_inline = FALSE;
- } else if (strcmp(argv[i], "--init-function") == 0) {
- if (i+1 < argc) {
- init_function = argv[i+1];
+ } else if (strcmp (argv[i], "--init-function") == 0) {
+ if (i + 1 < argc) {
+ init_function = argv[i + 1];
i++;
} else {
- help();
+ help ();
}
- } else if (strcmp(argv[i], "--help") == 0 ||
- strcmp(argv[i], "-h") == 0) {
+ } else if (strcmp (argv[i], "--help") == 0 || strcmp (argv[i], "-h") == 0) {
help ();
- } else if (strcmp(argv[i], "--verbose") == 0 ||
- strcmp(argv[i], "-v") == 0) {
+ } else if (strcmp (argv[i], "--verbose") == 0 ||
+ strcmp (argv[i], "-v") == 0) {
verbose = 1;
- } else if (strcmp(argv[i], "--version") == 0) {
- printf("Orc Compiler " PACKAGE_VERSION "\n");
+ } else if (strcmp (argv[i], "--version") == 0) {
+ printf ("Orc Compiler " PACKAGE_VERSION "\n");
exit (0);
- } else if (strcmp(argv[i], "--compat") == 0) {
- if (i+1 < argc) {
- compat_version = argv[i+1];
+ } else if (strcmp (argv[i], "--compat") == 0) {
+ if (i + 1 < argc) {
+ compat_version = argv[i + 1];
i++;
} else {
- help();
+ help ();
}
- } else if (strcmp(argv[i], "--lazy-init") == 0) {
+ } else if (strcmp (argv[i], "--lazy-init") == 0) {
use_lazy_init = TRUE;
- } else if (strcmp(argv[i], "--no-backup") == 0) {
+ } else if (strcmp (argv[i], "--no-backup") == 0) {
use_backup = FALSE;
- } else if (strncmp(argv[i], "-", 1) == 0) {
- printf("Unknown option: %s\n", argv[i]);
+ } else if (strncmp (argv[i], "-", 1) == 0) {
+ printf ("Unknown option: %s\n", argv[i]);
exit (1);
} else {
if (input_file == NULL) {
input_file = argv[i];
} else {
- printf("More than one input file specified: %s\n", argv[i]);
+ printf ("More than one input file specified: %s\n", argv[i]);
exit (1);
}
}
}
if (input_file == NULL) {
- printf("No input file specified\n");
+ printf ("No input file specified\n");
exit (1);
}
if (mode == MODE_ASSEMBLY && orc_target_get_by_name (target) == NULL) {
- printf("Unknown target \"%s\"\n", target);
+ printf ("Unknown target \"%s\"\n", target);
exit (1);
}
@@ -192,18 +193,18 @@ main (int argc, char *argv[])
n = sscanf (compat_version, "%d.%d.%d.%d", &major, &minor, &micro, &nano);
if (n < 3) {
- printf("Unknown version \"%s\"\n", compat_version);
+ printf ("Unknown version \"%s\"\n", compat_version);
exit (1);
}
- compat = ORC_VERSION(major,minor,micro,nano);
- if (compat < ORC_VERSION(0,4,5,0)) {
- printf("Compatibility version \"%s\" not supported. Minimum 0.4.5\n",
+ compat = ORC_VERSION (major, minor, micro, nano);
+ if (compat < ORC_VERSION (0, 4, 5, 0)) {
+ printf ("Compatibility version \"%s\" not supported. Minimum 0.4.5\n",
compat_version);
exit (1);
}
}
- if (compat >= ORC_VERSION(0,4,11,1)) {
+ if (compat >= ORC_VERSION (0, 4, 11, 1)) {
use_code = TRUE;
}
@@ -226,17 +227,17 @@ main (int argc, char *argv[])
code = read_file (input_file);
if (!code) {
- printf("Could not read input file: %s\n", input_file);
- exit(1);
+ printf ("Could not read input file: %s\n", input_file);
+ exit (1);
}
n = orc_parse_full (code, &programs, &log);
n_programs = n;
- printf("%s", log);
+ printf ("%s", log);
if (programs == NULL) {
- printf("no programs\n");
- exit(1);
+ printf ("no programs\n");
+ exit (1);
}
if (init_function == NULL) {
@@ -249,158 +250,162 @@ main (int argc, char *argv[])
output = fopen (output_file, "w");
if (!output) {
- printf("Could not write output file: %s\n", output_file);
- exit(1);
+ printf ("Could not write output file: %s\n", output_file);
+ exit (1);
}
- fprintf(output, "\n");
- fprintf(output, "/* autogenerated from %s */\n", my_basename(input_file));
- fprintf(output, "\n");
+ fprintf (output, "\n");
+ fprintf (output, "/* autogenerated from %s */\n", my_basename (input_file));
+ fprintf (output, "\n");
if (mode == MODE_IMPL) {
- fprintf(output, "#ifdef HAVE_CONFIG_H\n");
- fprintf(output, "#include \"config.h\"\n");
- fprintf(output, "#endif\n");
+ fprintf (output, "#ifdef HAVE_CONFIG_H\n");
+ fprintf (output, "#include \"config.h\"\n");
+ fprintf (output, "#endif\n");
if (include_file) {
- fprintf(output, "#include <%s>\n", include_file);
+ fprintf (output, "#include <%s>\n", include_file);
}
- fprintf(output, "\n");
- fprintf(output, "%s", orc_target_c_get_typedefs ());
- fprintf(output, "\n");
- fprintf(output, "#ifndef DISABLE_ORC\n");
- fprintf(output, "#include <orc/orc.h>\n");
- fprintf(output, "#endif\n");
- for(i=0;i<n;i++){
+ fprintf (output, "\n");
+ fprintf (output, "%s", orc_target_c_get_typedefs ());
+ fprintf (output, "\n");
+ fprintf (output, "#ifndef DISABLE_ORC\n");
+ fprintf (output, "#include <orc/orc.h>\n");
+ fprintf (output, "#endif\n");
+ for (i = 0; i < n; i++) {
output_code_header (programs[i], output);
}
if (init_function) {
- fprintf(output, "\n");
- fprintf(output, "void %s (void);\n", init_function);
+ fprintf (output, "\n");
+ fprintf (output, "void %s (void);\n", init_function);
}
- fprintf(output, "\n");
- fprintf(output, "%s", orc_target_get_asm_preamble ("c"));
- fprintf(output, "\n");
- for(i=0;i<n;i++){
+ fprintf (output, "\n");
+ fprintf (output, "%s", orc_target_get_asm_preamble ("c"));
+ fprintf (output, "\n");
+ for (i = 0; i < n; i++) {
output_code (programs[i], output);
}
- fprintf(output, "\n");
+ fprintf (output, "\n");
if (init_function) {
output_init_function (output);
- fprintf(output, "\n");
+ fprintf (output, "\n");
}
} else if (mode == MODE_HEADER) {
char *barrier = get_barrier (output_file);
- fprintf(output, "#ifndef _%s_\n", barrier);
- fprintf(output, "#define _%s_\n", barrier);
+ fprintf (output, "#ifndef _%s_\n", barrier);
+ fprintf (output, "#define _%s_\n", barrier);
free (barrier);
- fprintf(output, "\n");
+ fprintf (output, "\n");
if (include_file) {
- fprintf(output, "#include <%s>\n", include_file);
+ fprintf (output, "#include <%s>\n", include_file);
}
- fprintf(output, "\n");
- fprintf(output, "#ifdef __cplusplus\n");
- fprintf(output, "extern \"C\" {\n");
- fprintf(output, "#endif\n");
- fprintf(output, "\n");
+ fprintf (output, "\n");
+ fprintf (output, "#ifdef __cplusplus\n");
+ fprintf (output, "extern \"C\" {\n");
+ fprintf (output, "#endif\n");
+ fprintf (output, "\n");
if (init_function) {
- fprintf(output, "void %s (void);\n", init_function);
- fprintf(output, "\n");
+ fprintf (output, "void %s (void);\n", init_function);
+ fprintf (output, "\n");
}
- fprintf(output, "\n");
+ fprintf (output, "\n");
if (!use_inline) {
- fprintf(output, "\n");
- fprintf(output, "%s", orc_target_c_get_typedefs ());
- for(i=0;i<n;i++){
+ fprintf (output, "\n");
+ fprintf (output, "%s", orc_target_c_get_typedefs ());
+ for (i = 0; i < n; i++) {
output_code_header (programs[i], output);
}
} else {
- fprintf(output, "\n");
- fprintf(output, "#include <orc/orc.h>\n");
- fprintf(output, "\n");
- for(i=0;i<n;i++){
+ fprintf (output, "\n");
+ fprintf (output, "#include <orc/orc.h>\n");
+ fprintf (output, "\n");
+ for (i = 0; i < n; i++) {
output_code_execute (programs[i], output, TRUE);
}
}
- fprintf(output, "\n");
- fprintf(output, "#ifdef __cplusplus\n");
- fprintf(output, "}\n");
- fprintf(output, "#endif\n");
- fprintf(output, "\n");
- fprintf(output, "#endif\n");
- fprintf(output, "\n");
+ fprintf (output, "\n");
+ fprintf (output, "#ifdef __cplusplus\n");
+ fprintf (output, "}\n");
+ fprintf (output, "#endif\n");
+ fprintf (output, "\n");
+ fprintf (output, "#endif\n");
+ fprintf (output, "\n");
} else if (mode == MODE_TEST) {
- fprintf(output, "#include <stdio.h>\n");
- fprintf(output, "#include <string.h>\n");
- fprintf(output, "#include <stdlib.h>\n");
- fprintf(output, "#include <math.h>\n");
+ fprintf (output, "#include <stdio.h>\n");
+ fprintf (output, "#include <string.h>\n");
+ fprintf (output, "#include <stdlib.h>\n");
+ fprintf (output, "#include <math.h>\n");
if (include_file) {
- fprintf(output, "#include <%s>\n", include_file);
+ fprintf (output, "#include <%s>\n", include_file);
}
- fprintf(output, "\n");
- fprintf(output, "%s", orc_target_c_get_typedefs ());
- fprintf(output, "#include <orc/orc.h>\n");
- fprintf(output, "#include <orc-test/orctest.h>\n");
- fprintf(output, "%s", orc_target_get_asm_preamble ("c"));
- fprintf(output, "\n");
+ fprintf (output, "\n");
+ fprintf (output, "%s", orc_target_c_get_typedefs ());
+ fprintf (output, "#include <orc/orc.h>\n");
+ fprintf (output, "#include <orc-test/orctest.h>\n");
+ fprintf (output, "%s", orc_target_get_asm_preamble ("c"));
+ fprintf (output, "\n");
if (use_backup) {
- for(i=0;i<n;i++){
- fprintf(output, "/* %s */\n", programs[i]->name);
+ for (i = 0; i < n; i++) {
+ fprintf (output, "/* %s */\n", programs[i]->name);
output_code_backup (programs[i], output);
}
}
- fprintf(output, "\n");
- fprintf(output, "static int quiet = 0;\n");
- fprintf(output, "static int benchmark = 0;\n");
- fprintf(output, "\n");
- fprintf(output, "static void help (const char *argv0)\n");
- fprintf(output, "{\n");
- fprintf(output, " printf(\"Usage:\\n\");\n");
- fprintf(output, " printf(\" %%s [OPTION]\\n\", argv0);\n");
- fprintf(output, " printf(\"Help Options:\\n\");\n");
- fprintf(output, " printf(\" -h, --help Show help options\\n\");\n");
- fprintf(output, " printf(\"Application Options:\\n\");\n");
- fprintf(output, " printf(\" -b, --benchmark Run benchmark and show results\\n\");\n");
- fprintf(output, " printf(\" -q, --quiet Don't output anything except on failures\\n\");\n");
- fprintf(output, "\n");
- fprintf(output, " exit(0);\n");
- fprintf(output, "}\n");
- fprintf(output, "\n");
- fprintf(output, "int\n");
- fprintf(output, "main (int argc, char *argv[])\n");
- fprintf(output, "{\n");
- fprintf(output, " int error = FALSE;\n");
- fprintf(output, " int i;\n");
- fprintf(output, "\n");
- fprintf(output, " orc_test_init ();\n");
- fprintf(output, "\n");
- fprintf(output, " for(i=1;i<argc;i++) {\n");
- fprintf(output, " if (strcmp(argv[i], \"--help\") == 0 ||\n");
- fprintf(output, " strcmp(argv[i], \"-h\") == 0) {\n");
- fprintf(output, " help(argv[0]);\n");
- fprintf(output, " } else if (strcmp(argv[i], \"--quiet\") == 0 ||\n");
- fprintf(output, " strcmp(argv[i], \"-q\") == 0) {\n");
- fprintf(output, " quiet = 1;\n");
- fprintf(output, " benchmark = 0;\n");
- fprintf(output, " } else if (strcmp(argv[i], \"--benchmark\") == 0 ||\n");
- fprintf(output, " strcmp(argv[i], \"-b\") == 0) {\n");
- fprintf(output, " benchmark = 1;\n");
- fprintf(output, " quiet = 0;\n");
- fprintf(output, " }\n");
- fprintf(output, " }\n");
- fprintf(output, "\n");
- for(i=0;i<n;i++){
+ fprintf (output, "\n");
+ fprintf (output, "static int quiet = 0;\n");
+ fprintf (output, "static int benchmark = 0;\n");
+ fprintf (output, "\n");
+ fprintf (output, "static void help (const char *argv0)\n");
+ fprintf (output, "{\n");
+ fprintf (output, " printf(\"Usage:\\n\");\n");
+ fprintf (output, " printf(\" %%s [OPTION]\\n\", argv0);\n");
+ fprintf (output, " printf(\"Help Options:\\n\");\n");
+ fprintf (output,
+ " printf(\" -h, --help Show help options\\n\");\n");
+ fprintf (output, " printf(\"Application Options:\\n\");\n");
+ fprintf (output,
+ " printf(\" -b, --benchmark Run benchmark and show results\\n\");\n");
+ fprintf (output,
+ " printf(\" -q, --quiet Don't output anything except on failures\\n\");\n");
+ fprintf (output, "\n");
+ fprintf (output, " exit(0);\n");
+ fprintf (output, "}\n");
+ fprintf (output, "\n");
+ fprintf (output, "int\n");
+ fprintf (output, "main (int argc, char *argv[])\n");
+ fprintf (output, "{\n");
+ fprintf (output, " int error = FALSE;\n");
+ fprintf (output, " int i;\n");
+ fprintf (output, "\n");
+ fprintf (output, " orc_test_init ();\n");
+ fprintf (output, "\n");
+ fprintf (output, " for(i=1;i<argc;i++) {\n");
+ fprintf (output, " if (strcmp(argv[i], \"--help\") == 0 ||\n");
+ fprintf (output, " strcmp(argv[i], \"-h\") == 0) {\n");
+ fprintf (output, " help(argv[0]);\n");
+ fprintf (output, " } else if (strcmp(argv[i], \"--quiet\") == 0 ||\n");
+ fprintf (output, " strcmp(argv[i], \"-q\") == 0) {\n");
+ fprintf (output, " quiet = 1;\n");
+ fprintf (output, " benchmark = 0;\n");
+ fprintf (output,
+ " } else if (strcmp(argv[i], \"--benchmark\") == 0 ||\n");
+ fprintf (output, " strcmp(argv[i], \"-b\") == 0) {\n");
+ fprintf (output, " benchmark = 1;\n");
+ fprintf (output, " quiet = 0;\n");
+ fprintf (output, " }\n");
+ fprintf (output, " }\n");
+ fprintf (output, "\n");
+ for (i = 0; i < n; i++) {
output_code_test (programs[i], output);
}
- fprintf(output, "\n");
- fprintf(output, " if (error) {\n");
- fprintf(output, " return 1;\n");
- fprintf(output, " };\n");
- fprintf(output, " return 0;\n");
- fprintf(output, "}\n");
+ fprintf (output, "\n");
+ fprintf (output, " if (error) {\n");
+ fprintf (output, " return 1;\n");
+ fprintf (output, " };\n");
+ fprintf (output, " return 0;\n");
+ fprintf (output, "}\n");
} else if (mode == MODE_ASSEMBLY) {
- fprintf(output, "%s", orc_target_get_asm_preamble (target));
- for(i=0;i<n;i++){
+ fprintf (output, "%s", orc_target_get_asm_preamble (target));
+ for (i = 0; i < n; i++) {
output_code_assembly (programs[i], output);
}
}
@@ -409,7 +414,7 @@ main (int argc, char *argv[])
if (error) {
remove (output_file);
- exit(1);
+ exit (1);
}
return 0;
@@ -423,11 +428,11 @@ get_barrier (const char *s)
int n;
int i;
- n = strlen(s);
+ n = strlen (s);
barrier = malloc (n + 1);
- for(i=0;i<n;i++) {
+ for (i = 0; i < n; i++) {
if (isalnum (s[i])) {
- barrier[i] = toupper(s[i]);
+ barrier[i] = toupper (s[i]);
} else {
barrier[i] = '_';
}
@@ -446,30 +451,38 @@ read_file (const char *filename)
int ret;
file = fopen (filename, "r");
- if (file == NULL) return NULL;
+ if (file == NULL)
+ return NULL;
ret = fseek (file, 0, SEEK_END);
- if (ret < 0) goto bail;
+ if (ret < 0)
+ goto bail;
size = ftell (file);
- if (size < 0) goto bail;
+ if (size < 0)
+ goto bail;
ret = fseek (file, 0, SEEK_SET);
- if (ret < 0) goto bail;
+ if (ret < 0)
+ goto bail;
contents = malloc (size + 1);
- if (contents == NULL) goto bail;
+ if (contents == NULL)
+ goto bail;
ret = fread (contents, size, 1, file);
- if (ret < 0) goto bail;
+ if (ret < 0)
+ goto bail;
contents[size] = 0;
return contents;
bail:
/* something failed */
- if (file) fclose (file);
- if (contents) free (contents);
+ if (file)
+ fclose (file);
+ if (contents)
+ free (contents);
return NULL;
}
@@ -507,193 +520,207 @@ const char *enumnames[] = {
"47"
};
-static const char *orcify_typename (const char *s)
+static const char *
+orcify_typename (const char *s)
{
- if (strcmp (s, "int8_t") == 0) return "orc_int8";
- if (strcmp (s, "int16_t") == 0) return "orc_int16";
- if (strcmp (s, "int32_t") == 0) return "orc_int32";
- if (strcmp (s, "int64_t") == 0) return "orc_int64";
- if (strcmp (s, "uint8_t") == 0) return "orc_uint8";
- if (strcmp (s, "uint16_t") == 0) return "orc_uint16";
- if (strcmp (s, "uint32_t") == 0) return "orc_uint32";
- if (strcmp (s, "uint64_t") == 0) return "orc_uint64";
+ if (strcmp (s, "int8_t") == 0)
+ return "orc_int8";
+ if (strcmp (s, "int16_t") == 0)
+ return "orc_int16";
+ if (strcmp (s, "int32_t") == 0)
+ return "orc_int32";
+ if (strcmp (s, "int64_t") == 0)
+ return "orc_int64";
+ if (strcmp (s, "uint8_t") == 0)
+ return "orc_uint8";
+ if (strcmp (s, "uint16_t") == 0)
+ return "orc_uint16";
+ if (strcmp (s, "uint32_t") == 0)
+ return "orc_uint32";
+ if (strcmp (s, "uint64_t") == 0)
+ return "orc_uint64";
return s;
}
void
-output_prototype (OrcProgram *p, FILE *output)
+output_prototype (OrcProgram * p, FILE * output)
{
OrcVariable *var;
int i;
int need_comma;
- fprintf(output, "%s (", p->name);
+ fprintf (output, "%s (", p->name);
need_comma = FALSE;
- for(i=0;i<4;i++){
+ for (i = 0; i < 4; i++) {
var = &p->vars[ORC_VAR_D1 + i];
if (var->size) {
- if (need_comma) fprintf(output, ", ");
+ if (need_comma)
+ fprintf (output, ", ");
if (var->type_name) {
- fprintf(output, "%s * ORC_RESTRICT %s", orcify_typename(var->type_name),
- varnames[ORC_VAR_D1 + i]);
+ fprintf (output, "%s * ORC_RESTRICT %s",
+ orcify_typename (var->type_name), varnames[ORC_VAR_D1 + i]);
} else {
- fprintf(output, "orc_uint%d * ORC_RESTRICT %s", var->size*8,
+ fprintf (output, "orc_uint%d * ORC_RESTRICT %s", var->size * 8,
varnames[ORC_VAR_D1 + i]);
}
if (p->is_2d) {
- fprintf(output, ", int %s_stride", varnames[ORC_VAR_D1 + i]);
+ fprintf (output, ", int %s_stride", varnames[ORC_VAR_D1 + i]);
}
need_comma = TRUE;
}
}
- for(i=0;i<4;i++){
+ for (i = 0; i < 4; i++) {
var = &p->vars[ORC_VAR_A1 + i];
if (var->size) {
- if (need_comma) fprintf(output, ", ");
+ if (need_comma)
+ fprintf (output, ", ");
if (var->type_name) {
- fprintf(output, "%s * ORC_RESTRICT %s", orcify_typename(var->type_name),
- varnames[ORC_VAR_A1 + i]);
+ fprintf (output, "%s * ORC_RESTRICT %s",
+ orcify_typename (var->type_name), varnames[ORC_VAR_A1 + i]);
} else {
- fprintf(output, "orc_uint%d * ORC_RESTRICT %s", var->size*8,
+ fprintf (output, "orc_uint%d * ORC_RESTRICT %s", var->size * 8,
varnames[ORC_VAR_A1 + i]);
}
need_comma = TRUE;
}
}
- for(i=0;i<8;i++){
+ for (i = 0; i < 8; i++) {
var = &p->vars[ORC_VAR_S1 + i];
if (var->size) {
- if (need_comma) fprintf(output, ", ");
+ if (need_comma)
+ fprintf (output, ", ");
if (var->type_name) {
- fprintf(output, "const %s * ORC_RESTRICT %s",
- orcify_typename(var->type_name),
- varnames[ORC_VAR_S1 + i]);
+ fprintf (output, "const %s * ORC_RESTRICT %s",
+ orcify_typename (var->type_name), varnames[ORC_VAR_S1 + i]);
} else {
- fprintf(output, "const orc_uint%d * ORC_RESTRICT %s", var->size*8,
+ fprintf (output, "const orc_uint%d * ORC_RESTRICT %s", var->size * 8,
varnames[ORC_VAR_S1 + i]);
}
if (p->is_2d) {
- fprintf(output, ", int %s_stride", varnames[ORC_VAR_S1 + i]);
+ fprintf (output, ", int %s_stride", varnames[ORC_VAR_S1 + i]);
}
need_comma = TRUE;
}
}
- for(i=0;i<8;i++){
+ for (i = 0; i < 8; i++) {
var = &p->vars[ORC_VAR_P1 + i];
if (var->size) {
- if (need_comma) fprintf(output, ", ");
+ if (need_comma)
+ fprintf (output, ", ");
switch (var->param_type) {
case ORC_PARAM_TYPE_INT:
- fprintf(output, "int %s", varnames[ORC_VAR_P1 + i]);
+ fprintf (output, "int %s", varnames[ORC_VAR_P1 + i]);
break;
case ORC_PARAM_TYPE_FLOAT:
- REQUIRE(0,4,5,1);
- fprintf(output, "float %s", varnames[ORC_VAR_P1 + i]);
+ REQUIRE (0, 4, 5, 1);
+ fprintf (output, "float %s", varnames[ORC_VAR_P1 + i]);
break;
case ORC_PARAM_TYPE_INT64:
- REQUIRE(0,4,7,1);
- fprintf(output, "orc_int64 %s", varnames[ORC_VAR_P1 + i]);
+ REQUIRE (0, 4, 7, 1);
+ fprintf (output, "orc_int64 %s", varnames[ORC_VAR_P1 + i]);
break;
case ORC_PARAM_TYPE_DOUBLE:
- REQUIRE(0,4,7,1);
- fprintf(output, "double %s", varnames[ORC_VAR_P1 + i]);
+ REQUIRE (0, 4, 7, 1);
+ fprintf (output, "double %s", varnames[ORC_VAR_P1 + i]);
break;
default:
- ORC_ASSERT(0);
+ ORC_ASSERT (0);
}
need_comma = TRUE;
}
}
if (p->constant_n == 0) {
- if (need_comma) fprintf(output, ", ");
- fprintf(output, "int n");
+ if (need_comma)
+ fprintf (output, ", ");
+ fprintf (output, "int n");
need_comma = TRUE;
}
if (p->is_2d && p->constant_m == 0) {
- if (need_comma) fprintf(output, ", ");
- fprintf(output, "int m");
+ if (need_comma)
+ fprintf (output, ", ");
+ fprintf (output, "int m");
}
- fprintf(output, ")");
+ fprintf (output, ")");
}
void
-output_code_header (OrcProgram *p, FILE *output)
+output_code_header (OrcProgram * p, FILE * output)
{
- fprintf(output, "void ");
+ fprintf (output, "void ");
output_prototype (p, output);
- fprintf(output, ";\n");
+ fprintf (output, ";\n");
}
void
-output_code_backup (OrcProgram *p, FILE *output)
+output_code_backup (OrcProgram * p, FILE * output)
{
- fprintf(output, "static void\n");
- if (compat < ORC_VERSION(0,4,7,1)) {
- fprintf(output, "_backup_%s (OrcExecutor * ex)\n", p->name);
+ fprintf (output, "static void\n");
+ if (compat < ORC_VERSION (0, 4, 7, 1)) {
+ fprintf (output, "_backup_%s (OrcExecutor * ex)\n", p->name);
} else {
- fprintf(output, "_backup_%s (OrcExecutor * ORC_RESTRICT ex)\n", p->name);
+ fprintf (output, "_backup_%s (OrcExecutor * ORC_RESTRICT ex)\n", p->name);
}
- fprintf(output, "{\n");
+ fprintf (output, "{\n");
{
OrcCompileResult result;
- result = orc_program_compile_full (p, orc_target_get_by_name("c"),
+ result = orc_program_compile_full (p, orc_target_get_by_name ("c"),
ORC_TARGET_C_BARE);
- if (ORC_COMPILE_RESULT_IS_SUCCESSFUL(result)) {
- fprintf(output, "%s\n", orc_program_get_asm_code (p));
+ if (ORC_COMPILE_RESULT_IS_SUCCESSFUL (result)) {
+ fprintf (output, "%s\n", orc_program_get_asm_code (p));
} else {
- printf("Failed to compile backup code for '%s'\n", p->name);
+ printf ("Failed to compile backup code for '%s'\n", p->name);
error = TRUE;
}
}
- fprintf(output, "}\n");
- fprintf(output, "\n");
+ fprintf (output, "}\n");
+ fprintf (output, "\n");
}
void
-output_code_no_orc (OrcProgram *p, FILE *output)
+output_code_no_orc (OrcProgram * p, FILE * output)
{
- fprintf(output, "void\n");
+ fprintf (output, "void\n");
output_prototype (p, output);
- fprintf(output, "{\n");
+ fprintf (output, "{\n");
{
OrcCompileResult result;
- result = orc_program_compile_full (p, orc_target_get_by_name("c"),
+ result = orc_program_compile_full (p, orc_target_get_by_name ("c"),
ORC_TARGET_C_BARE | ORC_TARGET_C_NOEXEC);
- if (ORC_COMPILE_RESULT_IS_SUCCESSFUL(result)) {
- fprintf(output, "%s\n", orc_program_get_asm_code (p));
+ if (ORC_COMPILE_RESULT_IS_SUCCESSFUL (result)) {
+ fprintf (output, "%s\n", orc_program_get_asm_code (p));
} else {
- printf("Failed to compile no orc for '%s'\n", p->name);
+ printf ("Failed to compile no orc for '%s'\n", p->name);
error = TRUE;
}
}
- fprintf(output, "}\n");
- fprintf(output, "\n");
+ fprintf (output, "}\n");
+ fprintf (output, "\n");
}
void
-output_code (OrcProgram *p, FILE *output)
+output_code (OrcProgram * p, FILE * output)
{
- fprintf(output, "\n");
- fprintf(output, "/* %s */\n", p->name);
- fprintf(output, "#ifdef DISABLE_ORC\n");
+ fprintf (output, "\n");
+ fprintf (output, "/* %s */\n", p->name);
+ fprintf (output, "#ifdef DISABLE_ORC\n");
output_code_no_orc (p, output);
- fprintf(output, "#else\n");
+ fprintf (output, "#else\n");
if (use_backup) {
output_code_backup (p, output);
}
output_code_execute (p, output, FALSE);
- fprintf(output, "#endif\n");
- fprintf(output, "\n");
+ fprintf (output, "#endif\n");
+ fprintf (output, "\n");
}
void
-output_code_execute (OrcProgram *p, FILE *output, int is_inline)
+output_code_execute (OrcProgram * p, FILE * output, int is_inline)
{
OrcVariable *var;
int i;
@@ -710,353 +737,357 @@ output_code_execute (OrcProgram *p, FILE *output, int is_inline)
}
}
if (use_code) {
- fprintf(output, "%sOrcCode *_orc_code_%s;\n", storage, p->name);
+ fprintf (output, "%sOrcCode *_orc_code_%s;\n", storage, p->name);
} else {
- fprintf(output, "%sOrcProgram *_orc_program_%s;\n", storage, p->name);
+ fprintf (output, "%sOrcProgram *_orc_program_%s;\n", storage, p->name);
}
}
if (is_inline) {
- fprintf(output, "static inline void\n");
+ fprintf (output, "static inline void\n");
} else {
- fprintf(output, "void\n");
+ fprintf (output, "void\n");
}
output_prototype (p, output);
- fprintf(output, "\n");
- fprintf(output, "{\n");
- fprintf(output, " OrcExecutor _ex, *ex = &_ex;\n");
+ fprintf (output, "\n");
+ fprintf (output, "{\n");
+ fprintf (output, " OrcExecutor _ex, *ex = &_ex;\n");
if (!use_lazy_init) {
if (use_code) {
- fprintf(output, " OrcCode *c = _orc_code_%s;\n", p->name);
+ fprintf (output, " OrcCode *c = _orc_code_%s;\n", p->name);
} else {
- fprintf(output, " OrcProgram *p = _orc_program_%s;\n", p->name);
+ fprintf (output, " OrcProgram *p = _orc_program_%s;\n", p->name);
}
} else {
- fprintf(output, " static volatile int p_inited = 0;\n");
+ fprintf (output, " static volatile int p_inited = 0;\n");
if (use_code) {
- fprintf(output, " static OrcCode *c = 0;\n");
+ fprintf (output, " static OrcCode *c = 0;\n");
} else {
- fprintf(output, " static OrcProgram *p = 0;\n");
+ fprintf (output, " static OrcProgram *p = 0;\n");
}
}
- fprintf(output, " void (*func) (OrcExecutor *);\n");
- fprintf(output, "\n");
+ fprintf (output, " void (*func) (OrcExecutor *);\n");
+ fprintf (output, "\n");
if (use_lazy_init) {
- fprintf(output, " if (!p_inited) {\n");
- fprintf(output, " orc_once_mutex_lock ();\n");
- fprintf(output, " if (!p_inited) {\n");
+ fprintf (output, " if (!p_inited) {\n");
+ fprintf (output, " orc_once_mutex_lock ();\n");
+ fprintf (output, " if (!p_inited) {\n");
if (use_code) {
- fprintf(output, " OrcProgram *p;\n");
+ fprintf (output, " OrcProgram *p;\n");
}
- fprintf(output, "\n");
+ fprintf (output, "\n");
output_program_generation (p, output, is_inline);
- fprintf(output, "\n");
- fprintf(output, " orc_program_compile (p);\n");
+ fprintf (output, "\n");
+ fprintf (output, " orc_program_compile (p);\n");
if (use_code) {
- fprintf(output, " c = orc_program_take_code (p);\n");
- fprintf(output, " orc_program_free (p);\n");
+ fprintf (output, " c = orc_program_take_code (p);\n");
+ fprintf (output, " orc_program_free (p);\n");
}
- fprintf(output, " }\n");
- fprintf(output, " p_inited = TRUE;\n");
- fprintf(output, " orc_once_mutex_unlock ();\n");
- fprintf(output, " }\n");
+ fprintf (output, " }\n");
+ fprintf (output, " p_inited = TRUE;\n");
+ fprintf (output, " orc_once_mutex_unlock ();\n");
+ fprintf (output, " }\n");
}
if (use_code) {
- fprintf(output, " ex->arrays[ORC_VAR_A2] = c;\n");
- fprintf(output, " ex->program = 0;\n");
+ fprintf (output, " ex->arrays[ORC_VAR_A2] = c;\n");
+ fprintf (output, " ex->program = 0;\n");
} else {
- fprintf(output, " ex->program = p;\n");
+ fprintf (output, " ex->program = p;\n");
}
- fprintf(output, "\n");
+ fprintf (output, "\n");
if (p->constant_n) {
- fprintf(output, " ex->n = %d;\n", p->constant_n);
+ fprintf (output, " ex->n = %d;\n", p->constant_n);
} else {
- fprintf(output, " ex->n = n;\n");
+ fprintf (output, " ex->n = n;\n");
}
if (p->is_2d) {
if (p->constant_m) {
- fprintf(output, " ORC_EXECUTOR_M(ex) = %d;\n", p->constant_m);
+ fprintf (output, " ORC_EXECUTOR_M(ex) = %d;\n", p->constant_m);
} else {
- fprintf(output, " ORC_EXECUTOR_M(ex) = m;\n");
+ fprintf (output, " ORC_EXECUTOR_M(ex) = m;\n");
}
}
- for(i=0;i<4;i++){
+ for (i = 0; i < 4; i++) {
var = &p->vars[ORC_VAR_D1 + i];
if (var->size) {
- fprintf(output, " ex->arrays[%s] = %s;\n",
+ fprintf (output, " ex->arrays[%s] = %s;\n",
enumnames[ORC_VAR_D1 + i], varnames[ORC_VAR_D1 + i]);
if (p->is_2d) {
- fprintf(output, " ex->params[%s] = %s_stride;\n",
+ fprintf (output, " ex->params[%s] = %s_stride;\n",
enumnames[ORC_VAR_D1 + i], varnames[ORC_VAR_D1 + i]);
}
}
}
- for(i=0;i<8;i++){
+ for (i = 0; i < 8; i++) {
var = &p->vars[ORC_VAR_S1 + i];
if (var->size) {
- fprintf(output, " ex->arrays[%s] = (void *)%s;\n",
+ fprintf (output, " ex->arrays[%s] = (void *)%s;\n",
enumnames[ORC_VAR_S1 + i], varnames[ORC_VAR_S1 + i]);
if (p->is_2d) {
- fprintf(output, " ex->params[%s] = %s_stride;\n",
+ fprintf (output, " ex->params[%s] = %s_stride;\n",
enumnames[ORC_VAR_S1 + i], varnames[ORC_VAR_S1 + i]);
}
}
}
- for(i=0;i<8;i++){
+ for (i = 0; i < 8; i++) {
var = &p->vars[ORC_VAR_P1 + i];
if (var->size) {
switch (var->param_type) {
case ORC_PARAM_TYPE_INT:
- fprintf(output, " ex->params[%s] = %s;\n",
+ fprintf (output, " ex->params[%s] = %s;\n",
enumnames[ORC_VAR_P1 + i], varnames[ORC_VAR_P1 + i]);
break;
case ORC_PARAM_TYPE_FLOAT:
- REQUIRE(0,4,5,1);
- fprintf(output, " {\n");
- fprintf(output, " orc_union32 tmp;\n");
- fprintf(output, " tmp.f = %s;\n", varnames[ORC_VAR_P1 + i]);
- fprintf(output, " ex->params[%s] = tmp.i;\n",
+ REQUIRE (0, 4, 5, 1);
+ fprintf (output, " {\n");
+ fprintf (output, " orc_union32 tmp;\n");
+ fprintf (output, " tmp.f = %s;\n", varnames[ORC_VAR_P1 + i]);
+ fprintf (output, " ex->params[%s] = tmp.i;\n",
enumnames[ORC_VAR_P1 + i]);
- fprintf(output, " }\n");
+ fprintf (output, " }\n");
break;
case ORC_PARAM_TYPE_INT64:
- REQUIRE(0,4,7,1);
- fprintf(output, " {\n");
- fprintf(output, " orc_union64 tmp;\n");
- fprintf(output, " tmp.i = %s;\n", varnames[ORC_VAR_P1 + i]);
- fprintf(output, " ex->params[%s] = tmp.x2[0];\n",
+ REQUIRE (0, 4, 7, 1);
+ fprintf (output, " {\n");
+ fprintf (output, " orc_union64 tmp;\n");
+ fprintf (output, " tmp.i = %s;\n", varnames[ORC_VAR_P1 + i]);
+ fprintf (output, " ex->params[%s] = tmp.x2[0];\n",
enumnames[ORC_VAR_P1 + i]);
- fprintf(output, " ex->params[%s] = tmp.x2[1];\n",
+ fprintf (output, " ex->params[%s] = tmp.x2[1];\n",
enumnames[ORC_VAR_T1 + i]);
- fprintf(output, " }\n");
+ fprintf (output, " }\n");
break;
case ORC_PARAM_TYPE_DOUBLE:
- REQUIRE(0,4,5,1);
- fprintf(output, " {\n");
- fprintf(output, " orc_union64 tmp;\n");
- fprintf(output, " tmp.f = %s;\n", varnames[ORC_VAR_P1 + i]);
- fprintf(output, " ex->params[%s] = tmp.x2[0];\n",
+ REQUIRE (0, 4, 5, 1);
+ fprintf (output, " {\n");
+ fprintf (output, " orc_union64 tmp;\n");
+ fprintf (output, " tmp.f = %s;\n", varnames[ORC_VAR_P1 + i]);
+ fprintf (output, " ex->params[%s] = tmp.x2[0];\n",
enumnames[ORC_VAR_P1 + i]);
- fprintf(output, " ex->params[%s] = tmp.x2[1];\n",
+ fprintf (output, " ex->params[%s] = tmp.x2[1];\n",
enumnames[ORC_VAR_T1 + i]);
- fprintf(output, " }\n");
+ fprintf (output, " }\n");
break;
default:
- ORC_ASSERT(0);
+ ORC_ASSERT (0);
}
}
}
- fprintf(output, "\n");
+ fprintf (output, "\n");
if (use_code) {
- fprintf(output, " func = c->exec;\n");
+ fprintf (output, " func = c->exec;\n");
} else {
- fprintf(output, " func = p->code_exec;\n");
+ fprintf (output, " func = p->code_exec;\n");
}
- fprintf(output, " func (ex);\n");
- for(i=0;i<4;i++){
+ fprintf (output, " func (ex);\n");
+ for (i = 0; i < 4; i++) {
var = &p->vars[ORC_VAR_A1 + i];
if (var->size) {
- fprintf(output, " *%s = orc_executor_get_accumulator (ex, %s);\n",
+ fprintf (output, " *%s = orc_executor_get_accumulator (ex, %s);\n",
varnames[ORC_VAR_A1 + i], enumnames[ORC_VAR_A1 + i]);
}
}
- fprintf(output, "}\n");
+ fprintf (output, "}\n");
}
void
-output_program_generation (OrcProgram *p, FILE *output, int is_inline)
+output_program_generation (OrcProgram * p, FILE * output, int is_inline)
{
OrcVariable *var;
int i;
- if (ORC_VERSION(0,4,16,1) <= compat) {
+ if (ORC_VERSION (0, 4, 16, 1) <= compat) {
OrcBytecode *bytecode;
int i;
bytecode = orc_bytecode_from_program (p);
- fprintf(output, "#if 1\n");
+ fprintf (output, "#if 1\n");
//fprintf(output, "#ifdef bytecode\n");
- fprintf(output, " static const orc_uint8 bc[] = {\n");
- for(i=0;i<bytecode->length;i++) {
- if ((i&0xf) == 0) {
- fprintf(output, " ");
+ fprintf (output, " static const orc_uint8 bc[] = {\n");
+ for (i = 0; i < bytecode->length; i++) {
+ if ((i & 0xf) == 0) {
+ fprintf (output, " ");
}
- fprintf(output, "%d, ", bytecode->bytecode[i]);
- if ((i&0xf) == 15) {
- fprintf(output, "\n");
+ fprintf (output, "%d, ", bytecode->bytecode[i]);
+ if ((i & 0xf) == 15) {
+ fprintf (output, "\n");
}
}
- if ((i&0xf) != 15) {
- fprintf(output, "\n");
+ if ((i & 0xf) != 15) {
+ fprintf (output, "\n");
}
- fprintf(output, " };\n");
- fprintf(output, " p = orc_program_new_from_static_bytecode (bc);\n");
+ fprintf (output, " };\n");
+ fprintf (output, " p = orc_program_new_from_static_bytecode (bc);\n");
//fprintf(output, " orc_program_set_name (p, \"%s\");\n", p->name);
if (use_backup && !is_inline) {
- fprintf(output, " orc_program_set_backup_function (p, _backup_%s);\n",
+ fprintf (output, " orc_program_set_backup_function (p, _backup_%s);\n",
p->name);
}
-
#if 0
/* CHECK */
{
- OrcProgram *p2 = orc_program_new_from_static_bytecode (bytecode->bytecode);
+ OrcProgram *p2 =
+ orc_program_new_from_static_bytecode (bytecode->bytecode);
OrcBytecode *bytecode2 = bytecode2 = orc_bytecode_from_program (p2);
- fprintf(output, "#ifdef badbytecode\n");
- fprintf(output, " static const orc_uint8 bc[] = {\n");
- for(i=0;i<bytecode2->length;i++) {
- if ((i&0xf) == 0) {
- fprintf(output, " ");
+ fprintf (output, "#ifdef badbytecode\n");
+ fprintf (output, " static const orc_uint8 bc[] = {\n");
+ for (i = 0; i < bytecode2->length; i++) {
+ if ((i & 0xf) == 0) {
+ fprintf (output, " ");
}
- fprintf(output, "%s%d, ",
+ fprintf (output, "%s%d, ",
(bytecode->bytecode[i] == bytecode2->bytecode[i]) ? "" : "/* */",
bytecode2->bytecode[i]);
- if ((i&0xf) == 15) {
- fprintf(output, "\n");
+ if ((i & 0xf) == 15) {
+ fprintf (output, "\n");
}
}
- if ((i&0xf) != 15) {
- fprintf(output, "\n");
+ if ((i & 0xf) != 15) {
+ fprintf (output, "\n");
}
- fprintf(output, " };\n");
- fprintf(output, "#endif\n");
+ fprintf (output, " };\n");
+ fprintf (output, "#endif\n");
}
#endif
- fprintf(output, "#else\n");
+ fprintf (output, "#else\n");
}
- fprintf(output, " p = orc_program_new ();\n");
+ fprintf (output, " p = orc_program_new ();\n");
if (p->constant_n != 0) {
- fprintf(output, " orc_program_set_constant_n (p, %d);\n",
+ fprintf (output, " orc_program_set_constant_n (p, %d);\n",
p->constant_n);
}
if (p->n_multiple != 0) {
- REQUIRE(0,4,14,1);
- fprintf(output, " orc_program_set_n_multiple (p, %d);\n",
+ REQUIRE (0, 4, 14, 1);
+ fprintf (output, " orc_program_set_n_multiple (p, %d);\n",
p->n_multiple);
}
if (p->n_minimum != 0) {
- REQUIRE(0,4,14,1);
- fprintf(output, " orc_program_set_n_minimum (p, %d);\n",
+ REQUIRE (0, 4, 14, 1);
+ fprintf (output, " orc_program_set_n_minimum (p, %d);\n",
p->n_minimum);
}
if (p->n_maximum != 0) {
- REQUIRE(0,4,14,1);
- fprintf(output, " orc_program_set_n_maximum (p, %d);\n",
+ REQUIRE (0, 4, 14, 1);
+ fprintf (output, " orc_program_set_n_maximum (p, %d);\n",
p->n_maximum);
}
if (p->is_2d) {
- fprintf(output, " orc_program_set_2d (p);\n");
+ fprintf (output, " orc_program_set_2d (p);\n");
if (p->constant_m != 0) {
- fprintf(output, " orc_program_set_constant_m (p, %d);\n",
+ fprintf (output, " orc_program_set_constant_m (p, %d);\n",
p->constant_m);
}
}
- fprintf(output, " orc_program_set_name (p, \"%s\");\n", p->name);
+ fprintf (output, " orc_program_set_name (p, \"%s\");\n", p->name);
if (use_backup && !is_inline) {
- fprintf(output, " orc_program_set_backup_function (p, _backup_%s);\n",
+ fprintf (output, " orc_program_set_backup_function (p, _backup_%s);\n",
p->name);
}
- for(i=0;i<4;i++){
+ for (i = 0; i < 4; i++) {
var = &p->vars[ORC_VAR_D1 + i];
if (var->size) {
if (var->alignment != var->size) {
- REQUIRE(0,4,14,1);
- fprintf(output, " orc_program_add_destination_full (p, %d, \"%s\", 0, %d);\n",
+ REQUIRE (0, 4, 14, 1);
+ fprintf (output,
+ " orc_program_add_destination_full (p, %d, \"%s\", 0, %d);\n",
var->size, varnames[ORC_VAR_D1 + i], var->alignment);
} else {
- fprintf(output, " orc_program_add_destination (p, %d, \"%s\");\n",
+ fprintf (output, " orc_program_add_destination (p, %d, \"%s\");\n",
var->size, varnames[ORC_VAR_D1 + i]);
}
}
}
- for(i=0;i<8;i++){
+ for (i = 0; i < 8; i++) {
var = &p->vars[ORC_VAR_S1 + i];
if (var->size) {
if (var->alignment != var->size) {
- REQUIRE(0,4,14,1);
- fprintf(output, " orc_program_add_source_full (p, %d, \"%s\", 0, %d);\n",
- var->size, varnames[ORC_VAR_S1 + i],
- var->alignment);
+ REQUIRE (0, 4, 14, 1);
+ fprintf (output,
+ " orc_program_add_source_full (p, %d, \"%s\", 0, %d);\n",
+ var->size, varnames[ORC_VAR_S1 + i], var->alignment);
} else {
- fprintf(output, " orc_program_add_source (p, %d, \"%s\");\n",
+ fprintf (output, " orc_program_add_source (p, %d, \"%s\");\n",
var->size, varnames[ORC_VAR_S1 + i]);
}
}
}
- for(i=0;i<4;i++){
+ for (i = 0; i < 4; i++) {
var = &p->vars[ORC_VAR_A1 + i];
if (var->size) {
- fprintf(output, " orc_program_add_accumulator (p, %d, \"%s\");\n",
+ fprintf (output, " orc_program_add_accumulator (p, %d, \"%s\");\n",
var->size, varnames[ORC_VAR_A1 + i]);
}
}
- for(i=0;i<8;i++){
+ for (i = 0; i < 8; i++) {
var = &p->vars[ORC_VAR_C1 + i];
- if (var->size == 0) continue;
+ if (var->size == 0)
+ continue;
if (var->size <= 4) {
- fprintf(output, " orc_program_add_constant (p, %d, 0x%08x, \"%s\");\n",
- var->size, (int)var->value.i, varnames[ORC_VAR_C1 + i]);
+ fprintf (output,
+ " orc_program_add_constant (p, %d, 0x%08x, \"%s\");\n",
+ var->size, (int) var->value.i, varnames[ORC_VAR_C1 + i]);
} else if (var->size > 4) {
- REQUIRE(0,4,8,1);
- fprintf(output, " orc_program_add_constant_int64 (p, %d, 0x%08x%08xULL, \"%s\");\n",
- var->size, (orc_uint32)(((orc_uint64)var->value.i)>>32),
- (orc_uint32)(var->value.i), varnames[ORC_VAR_C1 + i]);
+ REQUIRE (0, 4, 8, 1);
+ fprintf (output,
+ " orc_program_add_constant_int64 (p, %d, 0x%08x%08xULL, \"%s\");\n",
+ var->size, (orc_uint32) (((orc_uint64) var->value.i) >> 32),
+ (orc_uint32) (var->value.i), varnames[ORC_VAR_C1 + i]);
}
}
- for(i=0;i<8;i++){
+ for (i = 0; i < 8; i++) {
var = &p->vars[ORC_VAR_P1 + i];
if (var->size) {
const char *suffix = NULL;
switch (var->param_type) {
case ORC_PARAM_TYPE_INT:
- suffix="";
+ suffix = "";
break;
case ORC_PARAM_TYPE_FLOAT:
- REQUIRE(0,4,5,1);
- suffix="_float";
+ REQUIRE (0, 4, 5, 1);
+ suffix = "_float";
break;
case ORC_PARAM_TYPE_INT64:
- REQUIRE(0,4,7,1);
- suffix="_int64";
+ REQUIRE (0, 4, 7, 1);
+ suffix = "_int64";
break;
case ORC_PARAM_TYPE_DOUBLE:
- REQUIRE(0,4,7,1);
- suffix="_double";
+ REQUIRE (0, 4, 7, 1);
+ suffix = "_double";
break;
default:
- ORC_ASSERT(0);
+ ORC_ASSERT (0);
}
- fprintf(output, " orc_program_add_parameter%s (p, %d, \"%s\");\n",
+ fprintf (output, " orc_program_add_parameter%s (p, %d, \"%s\");\n",
suffix, var->size, varnames[ORC_VAR_P1 + i]);
}
}
- for(i=0;i<16;i++){
+ for (i = 0; i < 16; i++) {
var = &p->vars[ORC_VAR_T1 + i];
if (var->size) {
- fprintf(output, " orc_program_add_temporary (p, %d, \"%s\");\n",
+ fprintf (output, " orc_program_add_temporary (p, %d, \"%s\");\n",
var->size, varnames[ORC_VAR_T1 + i]);
}
}
- fprintf(output, "\n");
+ fprintf (output, "\n");
- for(i=0;i<p->n_insns;i++){
+ for (i = 0; i < p->n_insns; i++) {
OrcInstruction *insn = p->insns + i;
- if (compat < ORC_VERSION(0,4,6,1)) {
+ if (compat < ORC_VERSION (0, 4, 6, 1)) {
if (insn->flags) {
- REQUIRE(0,4,6,1);
+ REQUIRE (0, 4, 6, 1);
}
if (p->vars[insn->src_args[1]].size != 0) {
- fprintf(output, " orc_program_append (p, \"%s\", %s, %s, %s);\n",
+ fprintf (output, " orc_program_append (p, \"%s\", %s, %s, %s);\n",
insn->opcode->name, enumnames[insn->dest_args[0]],
enumnames[insn->src_args[0]], enumnames[insn->src_args[1]]);
} else {
- fprintf(output, " orc_program_append_ds (p, \"%s\", %s, %s);\n",
+ fprintf (output, " orc_program_append_ds (p, \"%s\", %s, %s);\n",
insn->opcode->name, enumnames[insn->dest_args[0]],
enumnames[insn->src_args[0]]);
}
@@ -1080,171 +1111,173 @@ output_program_generation (OrcProgram *p, FILE *output, int is_inline)
args[n_args++] = insn->src_args[2];
}
- fprintf(output, " orc_program_append_2 (p, \"%s\", %d, %s, %s, %s, %s);\n",
+ fprintf (output,
+ " orc_program_append_2 (p, \"%s\", %d, %s, %s, %s, %s);\n",
insn->opcode->name, insn->flags, enumnames[args[0]],
- enumnames[args[1]], enumnames[args[2]],
- enumnames[args[3]]);
+ enumnames[args[1]], enumnames[args[2]], enumnames[args[3]]);
}
}
- if (ORC_VERSION(0,4,16,1) <= compat) {
- fprintf(output, "#endif\n");
+ if (ORC_VERSION (0, 4, 16, 1) <= compat) {
+ fprintf (output, "#endif\n");
}
}
void
-output_init_function (FILE *output)
+output_init_function (FILE * output)
{
int i;
- fprintf(output, "void\n");
- fprintf(output, "%s (void)\n", init_function);
- fprintf(output, "{\n");
+ fprintf (output, "void\n");
+ fprintf (output, "%s (void)\n", init_function);
+ fprintf (output, "{\n");
if (!use_lazy_init) {
- fprintf(output, "#ifndef DISABLE_ORC\n");
- for(i=0;i<n_programs;i++){
- fprintf(output, " {\n");
- fprintf(output, " /* %s */\n", programs[i]->name);
- fprintf(output, " OrcProgram *p;\n");
- fprintf(output, "\n");
+ fprintf (output, "#ifndef DISABLE_ORC\n");
+ for (i = 0; i < n_programs; i++) {
+ fprintf (output, " {\n");
+ fprintf (output, " /* %s */\n", programs[i]->name);
+ fprintf (output, " OrcProgram *p;\n");
+ fprintf (output, "\n");
output_program_generation (programs[i], output, FALSE);
- fprintf(output, "\n");
- fprintf(output, " orc_program_compile (p);\n");
- fprintf(output, "\n");
+ fprintf (output, "\n");
+ fprintf (output, " orc_program_compile (p);\n");
+ fprintf (output, "\n");
if (use_code) {
- fprintf(output, " _orc_code_%s = orc_program_take_code (p);\n",
+ fprintf (output, " _orc_code_%s = orc_program_take_code (p);\n",
programs[i]->name);
- fprintf(output, " orc_program_free (p);\n");
+ fprintf (output, " orc_program_free (p);\n");
} else {
- fprintf(output, " _orc_program_%s = p;\n", programs[i]->name);
+ fprintf (output, " _orc_program_%s = p;\n", programs[i]->name);
}
- fprintf(output, " }\n");
+ fprintf (output, " }\n");
}
- fprintf(output, "#endif\n");
+ fprintf (output, "#endif\n");
}
- fprintf(output, "}\n");
- fprintf(output, "\n");
+ fprintf (output, "}\n");
+ fprintf (output, "\n");
}
void
-output_code_test (OrcProgram *p, FILE *output)
+output_code_test (OrcProgram * p, FILE * output)
{
OrcVariable *var;
int i;
- fprintf(output, " /* %s */\n", p->name);
- fprintf(output, " {\n");
- fprintf(output, " OrcProgram *p = NULL;\n");
- fprintf(output, " int ret;\n");
- fprintf(output, "\n");
- fprintf(output, " if (!quiet)");
- fprintf(output, " printf (\"%s:\\n\");\n", p->name);
- fprintf(output, " p = orc_program_new ();\n");
+ fprintf (output, " /* %s */\n", p->name);
+ fprintf (output, " {\n");
+ fprintf (output, " OrcProgram *p = NULL;\n");
+ fprintf (output, " int ret;\n");
+ fprintf (output, "\n");
+ fprintf (output, " if (!quiet)");
+ fprintf (output, " printf (\"%s:\\n\");\n", p->name);
+ fprintf (output, " p = orc_program_new ();\n");
if (p->constant_n != 0) {
- fprintf(output, " orc_program_set_constant_n (p, %d);\n",
+ fprintf (output, " orc_program_set_constant_n (p, %d);\n",
p->constant_n);
}
if (p->is_2d) {
- fprintf(output, " orc_program_set_2d (p);\n");
+ fprintf (output, " orc_program_set_2d (p);\n");
if (p->constant_m != 0) {
- fprintf(output, " orc_program_set_constant_m (p, %d);\n",
+ fprintf (output, " orc_program_set_constant_m (p, %d);\n",
p->constant_m);
}
}
- fprintf(output, " orc_program_set_name (p, \"%s\");\n", p->name);
+ fprintf (output, " orc_program_set_name (p, \"%s\");\n", p->name);
if (use_backup) {
- fprintf(output, " orc_program_set_backup_function (p, _backup_%s);\n",
+ fprintf (output, " orc_program_set_backup_function (p, _backup_%s);\n",
p->name);
}
- for(i=0;i<4;i++){
+ for (i = 0; i < 4; i++) {
var = &p->vars[ORC_VAR_D1 + i];
if (var->size) {
- fprintf(output, " orc_program_add_destination (p, %d, \"%s\");\n",
+ fprintf (output, " orc_program_add_destination (p, %d, \"%s\");\n",
var->size, varnames[ORC_VAR_D1 + i]);
}
}
- for(i=0;i<8;i++){
+ for (i = 0; i < 8; i++) {
var = &p->vars[ORC_VAR_S1 + i];
if (var->size) {
- fprintf(output, " orc_program_add_source (p, %d, \"%s\");\n",
+ fprintf (output, " orc_program_add_source (p, %d, \"%s\");\n",
var->size, varnames[ORC_VAR_S1 + i]);
}
}
- for(i=0;i<4;i++){
+ for (i = 0; i < 4; i++) {
var = &p->vars[ORC_VAR_A1 + i];
if (var->size) {
- fprintf(output, " orc_program_add_accumulator (p, %d, \"%s\");\n",
+ fprintf (output, " orc_program_add_accumulator (p, %d, \"%s\");\n",
var->size, varnames[ORC_VAR_A1 + i]);
}
}
- for(i=0;i<8;i++){
+ for (i = 0; i < 8; i++) {
var = &p->vars[ORC_VAR_C1 + i];
if (var->size) {
if (var->size < 8) {
if (var->value.i != 0x80000000) {
- fprintf(output, " orc_program_add_constant (p, %d, 0x%08x, \"%s\");\n",
- var->size, (int)var->value.i, varnames[ORC_VAR_C1 + i]);
+ fprintf (output,
+ " orc_program_add_constant (p, %d, 0x%08x, \"%s\");\n",
+ var->size, (int) var->value.i, varnames[ORC_VAR_C1 + i]);
} else {
- fprintf(output, " orc_program_add_constant (p, %d, 0x%08x, \"%s\");\n",
- var->size, (int)var->value.i, varnames[ORC_VAR_C1 + i]);
+ fprintf (output,
+ " orc_program_add_constant (p, %d, 0x%08x, \"%s\");\n",
+ var->size, (int) var->value.i, varnames[ORC_VAR_C1 + i]);
}
} else {
- fprintf(output, " orc_program_add_constant_int64 (p, %d, "
+ fprintf (output, " orc_program_add_constant_int64 (p, %d, "
"0x%08x%08xULL, \"%s\");\n",
- var->size, (orc_uint32)(((orc_uint64)var->value.i)>>32),
- (orc_uint32)(var->value.i), varnames[ORC_VAR_C1 + i]);
+ var->size, (orc_uint32) (((orc_uint64) var->value.i) >> 32),
+ (orc_uint32) (var->value.i), varnames[ORC_VAR_C1 + i]);
}
}
}
- for(i=0;i<8;i++){
+ for (i = 0; i < 8; i++) {
var = &p->vars[ORC_VAR_P1 + i];
if (var->size) {
const char *suffix = NULL;
switch (var->param_type) {
case ORC_PARAM_TYPE_INT:
- suffix="";
+ suffix = "";
break;
case ORC_PARAM_TYPE_FLOAT:
- REQUIRE(0,4,5,1);
- suffix="_float";
+ REQUIRE (0, 4, 5, 1);
+ suffix = "_float";
break;
case ORC_PARAM_TYPE_INT64:
- REQUIRE(0,4,7,1);
- suffix="_int64";
+ REQUIRE (0, 4, 7, 1);
+ suffix = "_int64";
break;
case ORC_PARAM_TYPE_DOUBLE:
- REQUIRE(0,4,7,1);
- suffix="_double";
+ REQUIRE (0, 4, 7, 1);
+ suffix = "_double";
break;
default:
- ORC_ASSERT(0);
+ ORC_ASSERT (0);
}
- fprintf(output, " orc_program_add_parameter%s (p, %d, \"%s\");\n",
+ fprintf (output, " orc_program_add_parameter%s (p, %d, \"%s\");\n",
suffix, var->size, varnames[ORC_VAR_P1 + i]);
}
}
- for(i=0;i<16;i++){
+ for (i = 0; i < 16; i++) {
var = &p->vars[ORC_VAR_T1 + i];
if (var->size) {
- fprintf(output, " orc_program_add_temporary (p, %d, \"%s\");\n",
+ fprintf (output, " orc_program_add_temporary (p, %d, \"%s\");\n",
var->size, varnames[ORC_VAR_T1 + i]);
}
}
- fprintf(output, "\n");
+ fprintf (output, "\n");
- for(i=0;i<p->n_insns;i++){
+ for (i = 0; i < p->n_insns; i++) {
OrcInstruction *insn = p->insns + i;
- if (compat < ORC_VERSION(0,4,6,1)) {
+ if (compat < ORC_VERSION (0, 4, 6, 1)) {
if (insn->flags) {
- REQUIRE(0,4,6,1);
+ REQUIRE (0, 4, 6, 1);
}
if (p->vars[insn->src_args[1]].size != 0) {
- fprintf(output, " orc_program_append (p, \"%s\", %s, %s, %s);\n",
+ fprintf (output, " orc_program_append (p, \"%s\", %s, %s, %s);\n",
insn->opcode->name, enumnames[insn->dest_args[0]],
enumnames[insn->src_args[0]], enumnames[insn->src_args[1]]);
} else {
- fprintf(output, " orc_program_append_ds (p, \"%s\", %s, %s);\n",
+ fprintf (output, " orc_program_append_ds (p, \"%s\", %s, %s);\n",
insn->opcode->name, enumnames[insn->dest_args[0]],
enumnames[insn->src_args[0]]);
}
@@ -1268,79 +1301,82 @@ output_code_test (OrcProgram *p, FILE *output)
args[n_args++] = insn->src_args[2];
}
- fprintf(output, " orc_program_append_2 (p, \"%s\", %d, %s, %s, %s, %s);\n",
+ fprintf (output,
+ " orc_program_append_2 (p, \"%s\", %d, %s, %s, %s, %s);\n",
insn->opcode->name, insn->flags, enumnames[args[0]],
- enumnames[args[1]], enumnames[args[2]],
- enumnames[args[3]]);
+ enumnames[args[1]], enumnames[args[2]], enumnames[args[3]]);
}
}
- fprintf(output, "\n");
- if (compat >= ORC_VERSION(0,4,7,1)) {
- fprintf(output, " if (benchmark) {\n");
- fprintf(output, " printf (\" cycles (emulate) : %%g\\n\",\n");
- fprintf(output, " orc_test_performance_full (p, ORC_TEST_FLAGS_EMULATE, NULL));\n");
- fprintf(output, " }\n");
- fprintf(output, "\n");
+ fprintf (output, "\n");
+ if (compat >= ORC_VERSION (0, 4, 7, 1)) {
+ fprintf (output, " if (benchmark) {\n");
+ fprintf (output, " printf (\" cycles (emulate) : %%g\\n\",\n");
+ fprintf (output,
+ " orc_test_performance_full (p, ORC_TEST_FLAGS_EMULATE, NULL));\n");
+ fprintf (output, " }\n");
+ fprintf (output, "\n");
}
if (use_backup) {
- fprintf(output, " ret = orc_test_compare_output_backup (p);\n");
- fprintf(output, " if (!ret) {\n");
- fprintf(output, " error = TRUE;\n");
- fprintf(output, " } else if (!quiet) {\n");
- fprintf(output, " printf (\" backup function : PASSED\\n\");\n");
- fprintf(output, " }\n");
- fprintf(output, "\n");
- if (compat >= ORC_VERSION(0,4,7,1)) {
- fprintf(output, " if (benchmark) {\n");
- fprintf(output, " printf (\" cycles (backup) : %%g\\n\",\n");
- fprintf(output, " orc_test_performance_full (p, ORC_TEST_FLAGS_BACKUP, NULL));\n");
- fprintf(output, " }\n");
- fprintf(output, "\n");
+ fprintf (output, " ret = orc_test_compare_output_backup (p);\n");
+ fprintf (output, " if (!ret) {\n");
+ fprintf (output, " error = TRUE;\n");
+ fprintf (output, " } else if (!quiet) {\n");
+ fprintf (output,
+ " printf (\" backup function : PASSED\\n\");\n");
+ fprintf (output, " }\n");
+ fprintf (output, "\n");
+ if (compat >= ORC_VERSION (0, 4, 7, 1)) {
+ fprintf (output, " if (benchmark) {\n");
+ fprintf (output, " printf (\" cycles (backup) : %%g\\n\",\n");
+ fprintf (output,
+ " orc_test_performance_full (p, ORC_TEST_FLAGS_BACKUP, NULL));\n");
+ fprintf (output, " }\n");
+ fprintf (output, "\n");
}
}
- fprintf(output, " ret = orc_test_compare_output (p);\n");
- fprintf(output, " if (ret == ORC_TEST_INDETERMINATE && !quiet) {\n");
- fprintf(output, " printf (\" compiled function: COMPILE FAILED\\n\");\n");
- fprintf(output, " } else if (!ret) {\n");
- fprintf(output, " error = TRUE;\n");
- fprintf(output, " } else if (!quiet) {\n");
- fprintf(output, " printf (\" compiled function: PASSED\\n\");\n");
- fprintf(output, " }\n");
- fprintf(output, "\n");
- if (compat >= ORC_VERSION(0,4,7,1)) {
- fprintf(output, " if (benchmark) {\n");
- fprintf(output, " printf (\" cycles (compiled): %%g\\n\",\n");
- fprintf(output, " orc_test_performance_full (p, 0, NULL));\n");
- fprintf(output, " }\n");
- }
- fprintf(output, "\n");
- fprintf(output, " orc_program_free (p);\n");
- fprintf(output, " }\n");
- fprintf(output, "\n");
+ fprintf (output, " ret = orc_test_compare_output (p);\n");
+ fprintf (output, " if (ret == ORC_TEST_INDETERMINATE && !quiet) {\n");
+ fprintf (output,
+ " printf (\" compiled function: COMPILE FAILED\\n\");\n");
+ fprintf (output, " } else if (!ret) {\n");
+ fprintf (output, " error = TRUE;\n");
+ fprintf (output, " } else if (!quiet) {\n");
+ fprintf (output, " printf (\" compiled function: PASSED\\n\");\n");
+ fprintf (output, " }\n");
+ fprintf (output, "\n");
+ if (compat >= ORC_VERSION (0, 4, 7, 1)) {
+ fprintf (output, " if (benchmark) {\n");
+ fprintf (output, " printf (\" cycles (compiled): %%g\\n\",\n");
+ fprintf (output, " orc_test_performance_full (p, 0, NULL));\n");
+ fprintf (output, " }\n");
+ }
+ fprintf (output, "\n");
+ fprintf (output, " orc_program_free (p);\n");
+ fprintf (output, " }\n");
+ fprintf (output, "\n");
}
void
-output_code_assembly (OrcProgram *p, FILE *output)
+output_code_assembly (OrcProgram * p, FILE * output)
{
- fprintf(output, "/* %s */\n", p->name);
+ fprintf (output, "/* %s */\n", p->name);
//output_prototype (p, output);
{
OrcCompileResult result;
- OrcTarget *t = orc_target_get_by_name(target);
+ OrcTarget *t = orc_target_get_by_name (target);
- result = orc_program_compile_full (p, t,
- orc_target_get_default_flags (t));
- if (ORC_COMPILE_RESULT_IS_SUCCESSFUL(result)) {
- fprintf(output, "%s\n", orc_program_get_asm_code (p));
+ result = orc_program_compile_full (p, t, orc_target_get_default_flags (t));
+ if (ORC_COMPILE_RESULT_IS_SUCCESSFUL (result)) {
+ fprintf (output, "%s\n", orc_program_get_asm_code (p));
} else {
- printf("Failed to compile assembly for '%s'\n", p->name);
+ printf ("Failed to compile assembly for '%s'\n", p->name);
error = TRUE;
}
}
- fprintf(output, "\n");
+ fprintf (output, "\n");
}
@@ -1352,10 +1388,10 @@ my_basename (const char *s)
t = s;
while (t[0] != 0) {
- if (t[0] == '/') ret = t+1;
+ if (t[0] == '/')
+ ret = t + 1;
t++;
}
return ret;
}
-