From 01c1dd6417acc7315ef28d715aa7a31314212ff8 Mon Sep 17 00:00:00 2001 From: Ben Vanik Date: Mon, 27 Jan 2014 21:03:17 -0800 Subject: [PATCH] Fixing unpack type. --- src/alloy/backend/x64/lowering/lowering_sequences.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/alloy/backend/x64/lowering/lowering_sequences.cc b/src/alloy/backend/x64/lowering/lowering_sequences.cc index 15ca6d19f..0c206bd37 100644 --- a/src/alloy/backend/x64/lowering/lowering_sequences.cc +++ b/src/alloy/backend/x64/lowering/lowering_sequences.cc @@ -2165,7 +2165,7 @@ table->AddSequence(OPCODE_UNPACK, [](X64Emitter& e, Instr*& i) { // Load source, move from tight pack of X16Y16.... to X16...Y16... // Also zero out the high end. // TODO(benvanik): special case constant unpacks that just get 0/1/etc. - IntUnaryOp(e, i, [](X64Emitter& e, Instr& i, const Reg& dest_src) { + XmmUnaryOp(e, i, 0, [](X64Emitter& e, Instr& i, const Xmm&, const Xmm& src) { // sx = src.iw >> 16; // sy = src.iw & 0xFFFF; // dest = { 3.0 + (sx / float(1 << 22)), @@ -2177,8 +2177,8 @@ table->AddSequence(OPCODE_UNPACK, [](X64Emitter& e, Instr*& i) { // xmm <<= 1w {0,0,packed,0} // xmm = VCVTPH2PS(xmm) {sx,sy,0,0} // xmm /= + UNIMPLEMENTED_SEQ(); }); - UNIMPLEMENTED_SEQ(); } else if (i->flags == PACK_TYPE_FLOAT16_4) { // Could be shared with FLOAT16_2. UNIMPLEMENTED_SEQ();