two_byte_opcodes.isa (6578:825b77196521) two_byte_opcodes.isa (6580:a1c40860fe09)
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

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

975 default: Inst::UD2();
976 }
977 default: Inst::UD2();
978 }
979 format Inst {
980 0x1B: decode LEGACY_DECODEVAL {
981 // no prefix
982 0x0: decode OPCODE_OP_BOTTOM3 {
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

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

975 default: Inst::UD2();
976 }
977 default: Inst::UD2();
978 }
979 format Inst {
980 0x1B: decode LEGACY_DECODEVAL {
981 // no prefix
982 0x0: decode OPCODE_OP_BOTTOM3 {
983 0x0: WarnUnimpl::psubusb_Pq_Qq();
984 0x1: WarnUnimpl::psubusw_Pq_Qq();
983 0x0: PSUBUSB(Pq,Qq);
984 0x1: PSUBUSW(Pq,Qq);
985 0x2: PMINUB(Pq,Qq);
986 0x3: PAND(Pq,Qq);
987 0x4: PADDUSB(Pq,Qq);
988 0x5: PADDUSW(Pq,Qq);
989 0x6: PMAXUB(Pq,Qq);
990 0x7: PANDN(Pq,Qq);
991 }
992 // operand size (0x66)
993 0x1: decode OPCODE_OP_BOTTOM3 {
985 0x2: PMINUB(Pq,Qq);
986 0x3: PAND(Pq,Qq);
987 0x4: PADDUSB(Pq,Qq);
988 0x5: PADDUSW(Pq,Qq);
989 0x6: PMAXUB(Pq,Qq);
990 0x7: PANDN(Pq,Qq);
991 }
992 // operand size (0x66)
993 0x1: decode OPCODE_OP_BOTTOM3 {
994 0x0: WarnUnimpl::psubusb_Vo_Wo();
995 0x1: WarnUnimpl::psubusw_Vo_Wo();
994 0x0: PSUBUSB(Vo,Wo);
995 0x1: PSUBUSW(Vo,Wo);
996 0x2: PMINUB(Vo,Wo);
997 0x3: PAND(Vo,Wo);
998 0x4: PADDUSB(Vo,Wo);
999 0x5: PADDUSW(Vo,Wo);
1000 0x6: PMAXUB(Vo,Wo);
1001 0x7: PANDN(Vo,Wo);
1002 }
1003 default: UD2();

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

1037 default: Inst::UD2();
1038 }
1039 default: Inst::UD2();
1040 }
1041 format Inst {
1042 0x1D: decode LEGACY_DECODEVAL {
1043 // no prefix
1044 0x0: decode OPCODE_OP_BOTTOM3 {
996 0x2: PMINUB(Vo,Wo);
997 0x3: PAND(Vo,Wo);
998 0x4: PADDUSB(Vo,Wo);
999 0x5: PADDUSW(Vo,Wo);
1000 0x6: PMAXUB(Vo,Wo);
1001 0x7: PANDN(Vo,Wo);
1002 }
1003 default: UD2();

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

1037 default: Inst::UD2();
1038 }
1039 default: Inst::UD2();
1040 }
1041 format Inst {
1042 0x1D: decode LEGACY_DECODEVAL {
1043 // no prefix
1044 0x0: decode OPCODE_OP_BOTTOM3 {
1045 0x0: WarnUnimpl::psubsb_Pq_Qq();
1046 0x1: WarnUnimpl::psubsw_Pq_Qq();
1045 0x0: PSUBSB(Pq,Qq);
1046 0x1: PSUBSW(Pq,Qq);
1047 0x2: PMINSW(Pq,Qq);
1048 0x3: POR(Pq,Qq);
1049 0x4: PADDSB(Pq,Qq);
1050 0x5: PADDSW(Pq,Qq);
1051 0x6: PMAXSW(Pq,Qq);
1052 0x7: PXOR(Pq,Qq);
1053 }
1054 // operand size (0x66)
1055 0x1: decode OPCODE_OP_BOTTOM3 {
1047 0x2: PMINSW(Pq,Qq);
1048 0x3: POR(Pq,Qq);
1049 0x4: PADDSB(Pq,Qq);
1050 0x5: PADDSW(Pq,Qq);
1051 0x6: PMAXSW(Pq,Qq);
1052 0x7: PXOR(Pq,Qq);
1053 }
1054 // operand size (0x66)
1055 0x1: decode OPCODE_OP_BOTTOM3 {
1056 0x0: WarnUnimpl::psubsb_Vo_Wo();
1057 0x1: WarnUnimpl::psubsw_Vo_Wo();
1056 0x0: PSUBSB(Vo,Wo);
1057 0x1: PSUBSW(Vo,Wo);
1058 0x2: PMINSW(Vo,Wo);
1059 0x3: POR(Vo,Wo);
1060 0x4: PADDSB(Vo,Wo);
1061 0x5: PADDSW(Vo,Wo);
1062 0x6: PMAXSW(Vo,Wo);
1063 0x7: PXOR(Vo,Wo);
1064 }
1065 default: UD2();

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

1094 default: Inst::UD2();
1095 }
1096 default: Inst::UD2();
1097 }
1098 format Inst {
1099 0x1F: decode LEGACY_DECODEVAL {
1100 // no prefix
1101 0x0: decode OPCODE_OP_BOTTOM3 {
1058 0x2: PMINSW(Vo,Wo);
1059 0x3: POR(Vo,Wo);
1060 0x4: PADDSB(Vo,Wo);
1061 0x5: PADDSW(Vo,Wo);
1062 0x6: PMAXSW(Vo,Wo);
1063 0x7: PXOR(Vo,Wo);
1064 }
1065 default: UD2();

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

1094 default: Inst::UD2();
1095 }
1096 default: Inst::UD2();
1097 }
1098 format Inst {
1099 0x1F: decode LEGACY_DECODEVAL {
1100 // no prefix
1101 0x0: decode OPCODE_OP_BOTTOM3 {
1102 0x0: WarnUnimpl::psubb_Pq_Qq();
1103 0x1: WarnUnimpl::psubw_Pq_Qq();
1104 0x2: WarnUnimpl::psubd_Pq_Qq();
1105 0x3: WarnUnimpl::psubq_Pq_Qq();
1102 0x0: PSUBB(Pq,Qq);
1103 0x1: PSUBW(Pq,Qq);
1104 0x2: PSUBD(Pq,Qq);
1105 0x3: PSUBQ(Pq,Qq);
1106 0x4: PADDB(Pq,Qq);
1107 0x5: PADDW(Pq,Qq);
1108 0x6: PADDD(Pq,Qq);
1109 0x7: UD2();
1110 }
1111 // operand size (0x66)
1112 0x1: decode OPCODE_OP_BOTTOM3 {
1106 0x4: PADDB(Pq,Qq);
1107 0x5: PADDW(Pq,Qq);
1108 0x6: PADDD(Pq,Qq);
1109 0x7: UD2();
1110 }
1111 // operand size (0x66)
1112 0x1: decode OPCODE_OP_BOTTOM3 {
1113 0x0: WarnUnimpl::psubb_Vo_Wo();
1114 0x1: WarnUnimpl::psubw_Vo_Wo();
1115 0x2: WarnUnimpl::psubd_Vo_Wo();
1116 0x3: WarnUnimpl::psubq_Vo_Wo();
1113 0x0: PSUBB(Vo,Wo);
1114 0x1: PSUBW(Vo,Wo);
1115 0x2: PSUBD(Vo,Wo);
1116 0x3: PSUBQ(Vo,Wo);
1117 0x4: PADDB(Vo,Wo);
1118 0x5: PADDW(Vo,Wo);
1119 0x6: PADDD(Vo,Wo);
1120 0x7: UD2();
1121 }
1122 default: UD2();
1123 }
1124 }
1125 default: FailUnimpl::twoByteOps();
1126 }
1127 }
1128 default: M5InternalError::error(
1129 {{"Unexpected first opcode byte in two byte opcode!"}});
1130}
1117 0x4: PADDB(Vo,Wo);
1118 0x5: PADDW(Vo,Wo);
1119 0x6: PADDD(Vo,Wo);
1120 0x7: UD2();
1121 }
1122 default: UD2();
1123 }
1124 }
1125 default: FailUnimpl::twoByteOps();
1126 }
1127 }
1128 default: M5InternalError::error(
1129 {{"Unexpected first opcode byte in two byte opcode!"}});
1130}