summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Schleef <ds@schleef.org>2010-09-09 13:52:50 -0700
committerDavid Schleef <ds@schleef.org>2010-09-09 13:52:50 -0700
commitc62960fbb3b8ed3cb75a2e6f74b715db49d690ac (patch)
tree9664d561df47c572b7990e3aa4af30f9b9c33ebb
parent8bd516a24f027fb66fe2d81976c32d5cbde6bb2f (diff)
sse,neon: Error for unimplemented 64-bit constants
-rw-r--r--orc/orcrules-neon.c6
-rw-r--r--orc/orcrules-sse.c7
2 files changed, 13 insertions, 0 deletions
diff --git a/orc/orcrules-neon.c b/orc/orcrules-neon.c
index 06ad31b..40768e0 100644
--- a/orc/orcrules-neon.c
+++ b/orc/orcrules-neon.c
@@ -790,6 +790,9 @@ neon_rule_loadpX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
} else if (size == 4) {
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_neon_emit_loadiq (compiler, dest->alloc, src->value.i);
} else {
ORC_PROGRAM_ERROR(compiler,"unimplemented");
@@ -802,6 +805,9 @@ neon_rule_loadpX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
} else if (size == 4) {
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_neon_emit_loadpq (compiler, dest->alloc, insn->src_args[0]);
} else {
ORC_PROGRAM_ERROR(compiler,"unimplemented");
diff --git a/orc/orcrules-sse.c b/orc/orcrules-sse.c
index 85d8763..fc85cd0 100644
--- a/orc/orcrules-sse.c
+++ b/orc/orcrules-sse.c
@@ -27,6 +27,10 @@ sse_rule_loadpX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
if (src->vartype == ORC_VAR_TYPE_PARAM) {
reg = dest->alloc;
+ if (size == 8 && src->size == 8) {
+ ORC_COMPILER_ERROR(compiler,"64-bit parameters not implemented");
+ }
+
orc_x86_emit_mov_memoffset_sse (compiler, 4,
(int)ORC_STRUCT_OFFSET(OrcExecutor, params[insn->src_args[0]]),
compiler->exec_reg, reg, FALSE);
@@ -46,6 +50,9 @@ sse_rule_loadpX (OrcCompiler *compiler, void *user, OrcInstruction *insn)
}
#endif
} else if (src->vartype == ORC_VAR_TYPE_CONST) {
+ if (size == 8 && src->size == 8) {
+ ORC_COMPILER_ERROR(compiler,"64-bit constants not implemented");
+ }
sse_load_constant (compiler, dest->alloc, size, src->value.i);
} else {
ORC_ASSERT(0);