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: 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); |
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(); |
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); |
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); |
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); |
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); |
1026 0x6: CVTTPD2DQ(Vo,Wo); |
1027 0x7: WarnUnimpl::movntdq_Mo_Vo(); 1028 } 1029 // repne (0xF2) 1030 0x8: decode OPCODE_OP_BOTTOM3 { |
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 --- |