two_byte_opcodes.isa (6604:b750348f6da3) two_byte_opcodes.isa (6606:03fd282998d0)
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

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

372 // no prefix
373 0x0: decode OPCODE_OP_BOTTOM3 {
374 //These moves should really use size o (octword), but
375 //because they are split in two, they use q (quadword).
376 0x0: Inst::MOVAPS(Vq,Wq);
377 0x1: Inst::MOVAPS(Wq,Vq);
378 0x2: Inst::CVTPI2PS(Vq,Qq);
379 0x3: movntps_Mo_Vo();
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

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

372 // no prefix
373 0x0: decode OPCODE_OP_BOTTOM3 {
374 //These moves should really use size o (octword), but
375 //because they are split in two, they use q (quadword).
376 0x0: Inst::MOVAPS(Vq,Wq);
377 0x1: Inst::MOVAPS(Wq,Vq);
378 0x2: Inst::CVTPI2PS(Vq,Qq);
379 0x3: movntps_Mo_Vo();
380 0x4: cvttps2pi_Pq_Wq();
381 0x5: cvtpS2pi_Pq_Wq();
380 0x4: Inst::CVTTPS2PI(Pq,Wq);
381 0x5: Inst::CVTPS2PI(Pq,Wq);
382 0x6: Inst::UCOMISS(Vd,Wd);
383 0x7: Inst::COMISS(Vd,Wd);
384 }
385 // repe (0xF3)
386 0x4: decode OPCODE_OP_BOTTOM3 {
387 0x2: Inst::CVTSI2SS(Vd,Ed);
382 0x6: Inst::UCOMISS(Vd,Wd);
383 0x7: Inst::COMISS(Vd,Wd);
384 }
385 // repe (0xF3)
386 0x4: decode OPCODE_OP_BOTTOM3 {
387 0x2: Inst::CVTSI2SS(Vd,Ed);
388 0x4: cvttss2si_Gd_Wd();
389 0x5: cvtss2si_Gd_Wd();
388 0x4: Inst::CVTTSS2SI(Gd,Wd);
389 0x5: Inst::CVTSS2SI(Gd,Wd);
390 default: Inst::UD2();
391 }
392 // operand size (0x66)
393 0x1: decode OPCODE_OP_BOTTOM3 {
394 0x0: Inst::MOVAPD(Vo,Wo);
395 0x1: Inst::MOVAPD(Wo,Vo);
396 0x2: Inst::CVTPI2PD(Vo,Qq);
397 0x3: movntpd_Mo_Vo();
390 default: Inst::UD2();
391 }
392 // operand size (0x66)
393 0x1: decode OPCODE_OP_BOTTOM3 {
394 0x0: Inst::MOVAPD(Vo,Wo);
395 0x1: Inst::MOVAPD(Wo,Vo);
396 0x2: Inst::CVTPI2PD(Vo,Qq);
397 0x3: movntpd_Mo_Vo();
398 0x4: cvttpd2pi_Pq_Wo();
399 0x5: cvtpd2pi_Pq_Wo();
398 0x4: Inst::CVTTPD2PI(Pq,Wo);
399 0x5: Inst::CVTPD2PI(Pq,Wo);
400 0x6: Inst::UCOMISD(Vq,Wq);
401 0x7: Inst::COMISD(Vq,Wq);
402 }
403 // repne (0xF2)
404 0x8: decode OPCODE_OP_BOTTOM3 {
405 // The size of the V operand should be q, not dp
406 0x2: Inst::CVTSI2SD(Vdp,Edp);
407 // The size of the W operand should be q, not dp
408 0x4: Inst::CVTTSD2SI(Gdp,Wdp);
400 0x6: Inst::UCOMISD(Vq,Wq);
401 0x7: Inst::COMISD(Vq,Wq);
402 }
403 // repne (0xF2)
404 0x8: decode OPCODE_OP_BOTTOM3 {
405 // The size of the V operand should be q, not dp
406 0x2: Inst::CVTSI2SD(Vdp,Edp);
407 // The size of the W operand should be q, not dp
408 0x4: Inst::CVTTSD2SI(Gdp,Wdp);
409 0x5: cvtsd2si_Gd_Wq();
409 0x5: Inst::CVTSD2SI(Gd,Wq);
410 default: Inst::UD2();
411 }
412 default: Inst::UD2();
413 }
414 0x06: decode OPCODE_OP_BOTTOM3 {
415 0x0: Inst::WRMSR();
416 0x1: Inst::RDTSC();
417 0x2: Inst::RDMSR();

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

506 0x6: DIVPS(Vo,Wo);
507 0x7: MAXPS(Vo,Wo);
508 }
509 // repe (0xF3)
510 0x4: decode OPCODE_OP_BOTTOM3 {
511 0x0: ADDSS(Vd,Wd);
512 0x1: MULSS(Vd,Wd);
513 0x2: CVTSS2SD(Vq,Wd);
410 default: Inst::UD2();
411 }
412 default: Inst::UD2();
413 }
414 0x06: decode OPCODE_OP_BOTTOM3 {
415 0x0: Inst::WRMSR();
416 0x1: Inst::RDTSC();
417 0x2: Inst::RDMSR();

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

506 0x6: DIVPS(Vo,Wo);
507 0x7: MAXPS(Vo,Wo);
508 }
509 // repe (0xF3)
510 0x4: decode OPCODE_OP_BOTTOM3 {
511 0x0: ADDSS(Vd,Wd);
512 0x1: MULSS(Vd,Wd);
513 0x2: CVTSS2SD(Vq,Wd);
514 0x3: WarnUnimpl::cvttps2dq_Vo_Wo();
514 0x3: CVTTPS2DQ(Vo,Wo);
515 0x4: SUBSS(Vd,Wd);
516 0x5: MINSS(Vd,Wd);
517 0x6: DIVSS(Vd,Wd);
518 0x7: MAXSS(Vd,Wd);
519 }
520 // operand size (0x66)
521 0x1: decode OPCODE_OP_BOTTOM3 {
522 0x0: ADDPD(Vo,Wo);
523 0x1: MULPD(Vo,Wo);
524 0x2: CVTPD2PS(Vo,Wo);
515 0x4: SUBSS(Vd,Wd);
516 0x5: MINSS(Vd,Wd);
517 0x6: DIVSS(Vd,Wd);
518 0x7: MAXSS(Vd,Wd);
519 }
520 // operand size (0x66)
521 0x1: decode OPCODE_OP_BOTTOM3 {
522 0x0: ADDPD(Vo,Wo);
523 0x1: MULPD(Vo,Wo);
524 0x2: CVTPD2PS(Vo,Wo);
525 0x3: WarnUnimpl::cvtps2dq_Vo_Wo();
525 0x3: CVTPS2DQ(Vo,Wo);
526 0x4: SUBPD(Vo,Wo);
527 0x5: MINPD(Vo,Wo);
528 0x6: DIVPD(Vo,Wo);
529 0x7: MAXPD(Vo,Wo);
530 }
531 // repne (0xF2)
532 0x8: decode OPCODE_OP_BOTTOM3 {
533 0x0: ADDSD(Vq,Wq);

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

1018 // operand size (0x66)
1019 0x1: decode OPCODE_OP_BOTTOM3 {
1020 0x0: PAVGB(Vo,Wo);
1021 0x1: PSRAW(Vo,Wo);
1022 0x2: PSRAD(Vo,Wo);
1023 0x3: PAVGW(Vo,Wo);
1024 0x4: PMULHUW(Vo,Wo);
1025 0x5: PMULHW(Vo,Wo);
526 0x4: SUBPD(Vo,Wo);
527 0x5: MINPD(Vo,Wo);
528 0x6: DIVPD(Vo,Wo);
529 0x7: MAXPD(Vo,Wo);
530 }
531 // repne (0xF2)
532 0x8: decode OPCODE_OP_BOTTOM3 {
533 0x0: ADDSD(Vq,Wq);

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

1018 // operand size (0x66)
1019 0x1: decode OPCODE_OP_BOTTOM3 {
1020 0x0: PAVGB(Vo,Wo);
1021 0x1: PSRAW(Vo,Wo);
1022 0x2: PSRAD(Vo,Wo);
1023 0x3: PAVGW(Vo,Wo);
1024 0x4: PMULHUW(Vo,Wo);
1025 0x5: PMULHW(Vo,Wo);
1026 0x6: WarnUnimpl::cvttpd2dq_Vo_Wo();
1026 0x6: CVTTPD2DQ(Vo,Wo);
1027 0x7: WarnUnimpl::movntdq_Mo_Vo();
1028 }
1029 // repne (0xF2)
1030 0x8: decode OPCODE_OP_BOTTOM3 {
1027 0x7: WarnUnimpl::movntdq_Mo_Vo();
1028 }
1029 // repne (0xF2)
1030 0x8: decode OPCODE_OP_BOTTOM3 {
1031 0x6: WarnUnimpl::cvtpd2dq_Vo_Wo();
1031 0x6: CVTPD2DQ(Vo,Wo);
1032 default: UD2();
1033 }
1034 default: UD2();
1035 }
1036 0x1D: decode LEGACY_DECODEVAL {
1037 // no prefix
1038 0x0: decode OPCODE_OP_BOTTOM3 {
1039 0x0: PSUBSB(Pq,Qq);

--- 83 unchanged lines hidden ---
1032 default: UD2();
1033 }
1034 default: UD2();
1035 }
1036 0x1D: decode LEGACY_DECODEVAL {
1037 // no prefix
1038 0x0: decode OPCODE_OP_BOTTOM3 {
1039 0x0: PSUBSB(Pq,Qq);

--- 83 unchanged lines hidden ---