diff options
author | David Schleef <ds@schleef.org> | 2010-09-09 13:52:50 -0700 |
---|---|---|
committer | David Schleef <ds@schleef.org> | 2010-09-09 13:52:50 -0700 |
commit | c62960fbb3b8ed3cb75a2e6f74b715db49d690ac (patch) | |
tree | 9664d561df47c572b7990e3aa4af30f9b9c33ebb | |
parent | 8bd516a24f027fb66fe2d81976c32d5cbde6bb2f (diff) |
sse,neon: Error for unimplemented 64-bit constants
-rw-r--r-- | orc/orcrules-neon.c | 6 | ||||
-rw-r--r-- | orc/orcrules-sse.c | 7 |
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); |