Deleted Added
sdiff udiff text old ( 6582:7e1af04f4ead ) new ( 6584:5355f44912f6 )
full compact
1// Copyright (c) 2008 The Regents of The University of Michigan
2// All rights reserved.
3//
4// Redistribution and use in source and binary forms, with or without
5// modification, are permitted provided that the following conditions are
6// met: redistributions of source code must retain the above copyright
7// notice, this list of conditions and the following disclaimer;
8// redistributions in binary form must reproduce the above copyright

--- 581 unchanged lines hidden (view full) ---

590 0x3: PACKSSDW(Vo,Wo);
591 0x4: PUNPCKLQDQ(Vo,Wq);
592 0x5: PUNPCKHQDQ(Vo,Wq);
593 0x6: WarnUnimpl::movd_Vo_Ed();
594 0x7: WarnUnimpl::movdqa_Vo_Wo();
595 }
596 default: UD2();
597 }
598 0x0E: decode LEGACY_DECODEVAL {
599 // no prefix
600 0x0: decode OPCODE_OP_BOTTOM3 {
601 0x0: WarnUnimpl::pshufw_Pq_Qq_Ib();
602 //0x1: group13_pshimw();
603 0x1: decode MODRM_REG {
604 0x2: decode LEGACY_OP {
605 0x0: PSRLW(PRq,Ib);
606 0x1: PSRLW(VRo,Ib);
607 }
608 0x4: decode LEGACY_OP {
609 0x0: PSRAW(PRq,Ib);
610 0x1: PSRAW(VRo,Ib);
611 }
612 0x6: decode LEGACY_OP {
613 0x0: PSLLW(PRq,Ib);
614 0x1: PSLLW(VRo,Ib);
615 }
616 default: UD2();
617 }
618 //0x2: group14_pshimd();
619 0x2: decode MODRM_REG {
620 0x2: decode LEGACY_OP {
621 0x0: PSRLD(PRq,Ib);
622 0x1: PSRLD(VRo,Ib);
623 }
624 0x4: decode LEGACY_OP {
625 0x0: PSRAD(PRq,Ib);
626 0x1: PSRAD(VRo,Ib);
627 }
628 0x6: decode LEGACY_OP {
629 0x0: PSLLD(PRq,Ib);
630 0x1: PSLLD(VRo,Ib);
631 }
632 default: UD2();
633 }
634 //0x3: group15_pshimq();
635 0x3: decode MODRM_REG {
636 0x2: decode LEGACY_OP {
637 0x0: PSRLQ(PRq,Ib);
638 0x1: PSRLQ(VRo,Ib);
639 }
640 0x3: decode LEGACY_OP {
641 0x0: UD2();
642 0x1: WarnUnimpl::psrldq_VRo_Ib();
643 }
644 0x6: decode LEGACY_OP {
645 0x0: PSLLQ(PRq,Ib);
646 0x1: PSLLQ(VRo,Ib);
647 }
648 0x7: decode LEGACY_OP {
649 0x0: UD2();
650 0x1: WarnUnimpl::pslldq_VRo_Ib();
651 }
652 default: Inst::UD2();
653 }
654 0x4: Inst::PCMPEQB(Pq,Qq);
655 0x5: Inst::PCMPEQW(Pq,Qq);
656 0x6: Inst::PCMPEQD(Pq,Qq);
657 0x7: WarnUnimpl::emms();
658 }
659 // repe (0xF3)
660 0x4: decode OPCODE_OP_BOTTOM3 {
661 0x0: WarnUnimpl::pshufhw_Vo_Wo_Ib();
662 default: UD2();
663 }
664 // operand size (0x66)
665 0x1: decode OPCODE_OP_BOTTOM3 {
666 0x0: WarnUnimpl::pshufd_Vo_Wo_Ib();
667 //0x1: group13_pshimw();
668 0x1: decode MODRM_REG {
669 0x2: decode LEGACY_OP {
670 0x0: PSRLW(PRq,Ib);
671 0x1: PSRLW(VRo,Ib);
672 }
673 0x4: decode LEGACY_OP {
674 0x0: PSRAW(PRq,Ib);
675 0x1: PSRAW(VRo,Ib);
676 }
677 0x6: decode LEGACY_OP {
678 0x0: PSLLW(PRq,Ib);
679 0x1: PSLLW(VRo,Ib);
680 }
681 default: Inst::UD2();
682 }
683 //0x2: group14_pshimd();
684 0x2: decode MODRM_REG {
685 0x2: decode LEGACY_OP {
686 0x0: PSRLD(PRq,Ib);
687 0x1: PSRLD(VRo,Ib);
688 }
689 0x4: decode LEGACY_OP {
690 0x0: PSRAD(PRq,Ib);
691 0x1: PSRAD(VRo,Ib);
692 }
693 0x6: decode LEGACY_OP {
694 0x0: PSLLD(PRq,Ib);
695 0x1: PSLLD(VRo,Ib);
696 }
697 default: UD2();
698 }
699 //0x3: group15_pshimq();
700 0x3: decode MODRM_REG {
701 0x2: decode LEGACY_OP {
702 0x0: PSRLQ(PRq,Ib);
703 0x1: PSRLQ(VRo,Ib);
704 }
705 0x3: decode LEGACY_OP {
706 0x0: UD2();
707 0x1: WarnUnimpl::psrldq_VRo_Ib();
708 }
709 0x6: decode LEGACY_OP {
710 0x0: PSLLQ(PRq,Ib);
711 0x1: PSLLQ(VRo,Ib);
712 }
713 0x7: decode LEGACY_OP {
714 0x0: UD2();
715 0x1: WarnUnimpl::pslldq_VRo_Ib();
716 }
717 default: UD2();
718 }
719 0x4: PCMPEQB(Vo,Wo);
720 0x5: PCMPEQW(Vo,Wo);
721 0x6: PCMPEQD(Vo,Wo);
722 default: UD2();
723 }
724 // repne (0xF2)
725 0x8: decode OPCODE_OP_BOTTOM3 {
726 0x0: WarnUnimpl::pshuflw_Vo_Wo_Ib();
727 default: UD2();
728 }
729 default: UD2();
730 }
731 0x0F: decode LEGACY_DECODEVAL {
732 // no prefix
733 0x0: decode OPCODE_OP_BOTTOM3 {
734 0x0: WarnUnimpl::vmread_Ed_or_Eq_Gd_or_Gq();
735 0x1: WarnUnimpl::vmwrite_Gd_or_Gq_Ed_or_Eq();
736 0x6: MOVD(Edp,Pdp);
737 0x7: MOVQ(Qq,Pq);
738 default: UD2();
739 }
740 // repe (0xF3)
741 0x4: decode OPCODE_OP_BOTTOM3 {
742 0x6: MOVQ(Vq,Wq);
743 0x7: WarnUnimpl::movdqu_Wo_Vo();
744 default: UD2();
745 }
746 // operand size (0x66)
747 0x1: decode OPCODE_OP_BOTTOM3 {
748 0x4: WarnUnimpl::haddpd_Vo_Wo();
749 0x5: WarnUnimpl::hsubpd_Vo_Wo();
750 0x6: WarnUnimpl::movd_Ed_Vd();
751 0x7: WarnUnimpl::movdqa_Wo_Vo();
752 default: UD2();
753 }
754 // repne (0xF2)
755 0x8: decode OPCODE_OP_BOTTOM3 {
756 0x4: WarnUnimpl::haddps_Vo_Wo();
757 0x5: WarnUnimpl::hsubps_Vo_Wo();
758 default: UD2();
759 }
760 default: UD2();
761 }
762 0x10: decode OPCODE_OP_BOTTOM3 {
763 0x0: JO(Jz);
764 0x1: JNO(Jz);
765 0x2: JB(Jz);
766 0x3: JNB(Jz);
767 0x4: JZ(Jz);
768 0x5: JNZ(Jz);
769 0x6: JBE(Jz);

--- 167 unchanged lines hidden (view full) ---

937 4: BSWAP_D(Bd);
938 8: BSWAP_Q(Bq);
939 default: UD2();
940 }
941 }
942 0x1A: decode LEGACY_DECODEVAL {
943 // no prefix
944 0x0: decode OPCODE_OP_BOTTOM3 {
945 0x1: Inst::PSRLW(Pq,Qq);
946 0x2: Inst::PSRLD(Pq,Qq);
947 0x3: Inst::PSRLQ(Pq,Qq);
948 0x4: Inst::PADDQ(Pq,Qq);
949 0x5: Inst::PMULLW(Pq,Qq);
950 0x7: pmovmskb_Gd_PRq();
951 default: Inst::UD2();
952 }
953 // repe (0xF3)
954 0x4: decode OPCODE_OP_BOTTOM3 {
955 0x6: movq2dq_Vo_PRq();
956 default: Inst::UD2();
957 }
958 // operand size (0x66)
959 0x1: decode OPCODE_OP_BOTTOM3 {
960 0x0: addsubpd_Vo_Wo();
961 0x1: Inst::PSRLW(Vo,Wo);
962 0x2: Inst::PSRLD(Vo,Wo);
963 0x3: Inst::PSRLQ(Vo,Wo);
964 0x4: Inst::PADDQ(Vo,Wo);
965 0x5: Inst::PMULLW(Vo,Wo);
966 0x6: Inst::MOVQ(Wq,Vq);
967 0x7: pmovmskb_Gd_VRo();
968 }
969 // repne (0xF2)
970 0x8: decode OPCODE_OP_BOTTOM3 {
971 0x0: addsubps_Vo_Wo();

--- 28 unchanged lines hidden (view full) ---

1000 }
1001 default: UD2();
1002 }
1003 }
1004 0x1C: decode LEGACY_DECODEVAL {
1005 // no prefix
1006 0x0: decode OPCODE_OP_BOTTOM3 {
1007 0x0: pavgb_Pq_Qq();
1008 0x1: Inst::PSRAW(Pq,Qq);
1009 0x2: Inst::PSRAD(Pq,Qq);
1010 0x3: pavgw_Pq_Qq();
1011 0x4: Inst::PMULHUW(Pq,Qq);
1012 0x5: Inst::PMULHW(Pq,Qq);
1013 0x7: movntq_Mq_Pq();
1014 default: Inst::UD2();
1015 }
1016 // repe (0xF3)
1017 0x4: decode OPCODE_OP_BOTTOM3 {
1018 0x6: Inst::CVTDQ2PD(Vo,Wq);
1019 default: Inst::UD2();
1020 }
1021 // operand size (0x66)
1022 0x1: decode OPCODE_OP_BOTTOM3 {
1023 0x0: pavgb_Vo_Wo();
1024 0x1: Inst::PSRAW(Vo,Wo);
1025 0x2: Inst::PSRAD(Vo,Wo);
1026 0x3: pavgw_Vo_Wo();
1027 0x4: Inst::PMULHUW(Vo,Wo);
1028 0x5: Inst::PMULHW(Vo,Wo);
1029 0x6: cvttpd2dq_Vo_Wo();
1030 0x7: movntdq_Mo_Vo();
1031 }
1032 // repne (0xF2)
1033 0x8: decode OPCODE_OP_BOTTOM3 {

--- 27 unchanged lines hidden (view full) ---

1061 0x7: PXOR(Vo,Wo);
1062 }
1063 default: UD2();
1064 }
1065 }
1066 0x1E: decode LEGACY_DECODEVAL {
1067 // no prefix
1068 0x0: decode OPCODE_OP_BOTTOM3 {
1069 0x1: Inst::PSLLW(Pq,Qq);
1070 0x2: Inst::PSLLD(Pq,Qq);
1071 0x3: Inst::PSLLQ(Pq,Qq);
1072 0x4: Inst::PMULUDQ(Pq,Qq);
1073 0x5: pmaddwd_Pq_Qq();
1074 0x6: Inst::PSADBW(Pq,Qq);
1075 0x7: maskmovq_Pq_PRq();
1076 default: Inst::UD2();
1077 }
1078 // operand size (0x66)
1079 0x1: decode OPCODE_OP_BOTTOM3 {
1080 0x1: Inst::PSLLW(Vo,Wo);
1081 0x2: Inst::PSLLD(Vo,Wo);
1082 0x3: Inst::PSLLQ(Vo,Wo);
1083 0x4: Inst::PMULUDQ(Vo,Wo);
1084 0x5: pmaddwd_Vo_Wo();
1085 0x6: Inst::PSADBW(Vo,Wo);
1086 0x7: maskmovdqu_Vo_VRo();
1087 default: Inst::UD2();
1088 }
1089 // repne (0xF2)
1090 0x8: decode OPCODE_OP_BOTTOM3 {

--- 38 unchanged lines hidden ---