Author: Richard Plangger <r...@pasra.at> Branch: vecopt Changeset: r77946:815c8b4a7c5b Date: 2015-06-08 08:39 +0200 http://bitbucket.org/pypy/pypy/changeset/815c8b4a7c5b/
Log: tested insert x86 opcodes diff --git a/rpython/jit/backend/x86/rx86.py b/rpython/jit/backend/x86/rx86.py --- a/rpython/jit/backend/x86/rx86.py +++ b/rpython/jit/backend/x86/rx86.py @@ -756,9 +756,9 @@ PEXTRB_rxi = xmminsn('\x66', rex_nw, '\x0F\x3A\x14', register(1), register(2,8), '\xC0', immediate(3, 'b')) EXTRACTPS_rxi = xmminsn('\x66', rex_nw, '\x0F\x3A\x17', register(1), register(2,8), '\xC0', immediate(3, 'b')) - PINSRQ_xri = xmminsn('\x66', rex_w, '\x0F\x3A\x22', register(1,8), register(2,8), '\xC0', immediate(3, 'b')) - PINSRD_xri = xmminsn('\x66', rex_nw, '\x0F\x3A\x22', register(1,8), register(2,8), '\xC0', immediate(3, 'b')) - PINSRW_xri = xmminsn('\x66', rex_nw, '\x0F\xC4', register(1,8), register(2,8), '\xC0', immediate(3, 'b')) + PINSRQ_xri = xmminsn('\x66', rex_w, '\x0F\x3A\x22', register(1,8), register(2), '\xC0', immediate(3, 'b')) + PINSRD_xri = xmminsn('\x66', rex_nw, '\x0F\x3A\x22', register(1,8), register(2), '\xC0', immediate(3, 'b')) + PINSRW_xri = xmminsn('\x66', rex_nw, '\x0F\xC4', register(1,8), register(2), '\xC0', immediate(3, 'b')) PINSRB_xri = xmminsn('\x66', rex_nw, '\x0F\x3A\x20', register(1,8), register(2), '\xC0', immediate(3, 'b')) INSERTPS_xxi = xmminsn('\x66', rex_nw, '\x0F\x3A\x21', register(1,8), register(2), '\xC0', immediate(3, 'b')) diff --git a/rpython/jit/backend/x86/test/test_rx86.py b/rpython/jit/backend/x86/test/test_rx86.py --- a/rpython/jit/backend/x86/test/test_rx86.py +++ b/rpython/jit/backend/x86/test/test_rx86.py @@ -276,3 +276,46 @@ s.clear() s.EXTRACTPS_rxi(R.r11, R.xmm0, 1) assert s.getvalue() == '\x66\x41\x0f\x3a\x17\xc3\x01' + s.clear() + s.EXTRACTPS_rxi(R.eax, R.xmm0, 1) + assert s.getvalue() == '\x66\x0f\x3a\x17\xc0\x01' + s.clear() + s.EXTRACTPS_rxi(R.r15, R.xmm15, 4) + assert s.getvalue() == '\x66\x45\x0f\x3a\x17\xff\x04' + +def test_pinsr(): + s = CodeBuilder64() + s.PINSRW_xri(R.xmm0, R.r11,0) + assert s.getvalue() == '\x66\x41\x0f\xc4\xc3\x00' + s.clear() + s.PINSRW_xri(R.xmm15, R.edi, 15) + assert s.getvalue() == '\x66\x44\x0f\xc4\xff\x0f' + s.clear() + s.PINSRD_xri(R.xmm11, R.eax, 2) + assert s.getvalue() == '\x66\x44\x0f\x3a\x22\xd8\x02' + s.clear() + s.PINSRD_xri(R.xmm5, R.r11, 2) + assert s.getvalue() == '\x66\x41\x0f\x3a\x22\xeb\x02' + s.clear() + s.PINSRQ_xri(R.xmm0, R.ebp, 7) + assert s.getvalue() == '\x66\x48\x0f\x3a\x22\xc5\x07' + # BYTE + s.clear() + s.PINSRB_xri(R.xmm13, R.eax, 24) + assert s.getvalue() == '\x66\x44\x0f\x3a\x20\xe8\x18' + s.clear() + s.PINSRB_xri(R.xmm5, R.r15, 33) + assert s.getvalue() == '\x66\x41\x0f\x3a\x20\xef\x21' + # EXTR SINGLE FLOAT + s.clear() + s.INSERTPS_xxi(R.xmm15, R.xmm0, 2) + assert s.getvalue() == '\x66\x44\x0f\x3a\x21\xf8\x02' + s.clear() + s.INSERTPS_xxi(R.xmm0, R.xmm11, 1) + assert s.getvalue() == '\x66\x41\x0f\x3a\x21\xc3\x01' + s.clear() + s.INSERTPS_xxi(R.xmm0, R.xmm0, 1) + assert s.getvalue() == '\x66\x0f\x3a\x21\xc0\x01' + s.clear() + s.INSERTPS_xxi(R.xmm15, R.xmm15, 4) + assert s.getvalue() == '\x66\x45\x0f\x3a\x21\xff\x04' _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit