fp.isa (7363:3b3b3325140c) | fp.isa (7364:9d34477e6adb) |
---|---|
1// -*- mode:c++ -*- 2 3// Copyright (c) 2010 ARM Limited 4// All rights reserved 5// 6// The license below extends only to copyright in the software and shall 7// not be construed as granting a license to any other intellectual 8// property including but not limited to intellectual property relating --- 472 unchanged lines hidden (view full) --- 481 const uint32_t opc2 = bits(machInst, 19, 16); 482 const uint32_t opc3 = bits(machInst, 7, 6); 483 //const uint32_t opc4 = bits(machInst, 3, 0); 484 switch (opc1 & 0xb /* 1011 */) { 485 case 0x0: 486 return new WarnUnimplemented("vmla, vmls", machInst); 487 case 0x2: 488 if ((opc3 & 0x1) == 0) { | 1// -*- mode:c++ -*- 2 3// Copyright (c) 2010 ARM Limited 4// All rights reserved 5// 6// The license below extends only to copyright in the software and shall 7// not be construed as granting a license to any other intellectual 8// property including but not limited to intellectual property relating --- 472 unchanged lines hidden (view full) --- 481 const uint32_t opc2 = bits(machInst, 19, 16); 482 const uint32_t opc3 = bits(machInst, 7, 6); 483 //const uint32_t opc4 = bits(machInst, 3, 0); 484 switch (opc1 & 0xb /* 1011 */) { 485 case 0x0: 486 return new WarnUnimplemented("vmla, vmls", machInst); 487 case 0x2: 488 if ((opc3 & 0x1) == 0) { |
489 return new WarnUnimplemented("vmul", machInst); | 489 uint32_t vd; 490 uint32_t vm; 491 uint32_t vn; 492 if (bits(machInst, 8) == 0) { 493 vd = bits(machInst, 22) | (bits(machInst, 15, 12) << 1); 494 vm = bits(machInst, 5) | (bits(machInst, 3, 0) << 1); 495 vn = bits(machInst, 7) | (bits(machInst, 19, 16) << 1); 496 return new VmulS(machInst, (IntRegIndex)vd, 497 (IntRegIndex)vn, (IntRegIndex)vm); 498 } else { 499 vd = (bits(machInst, 22) << 5) | 500 (bits(machInst, 15, 12) << 1); 501 vm = (bits(machInst, 5) << 5) | 502 (bits(machInst, 3, 0) << 1); 503 vn = (bits(machInst, 7) << 5) | 504 (bits(machInst, 19, 16) << 1); 505 return new VmulD(machInst, (IntRegIndex)vd, 506 (IntRegIndex)vn, (IntRegIndex)vm); 507 } |
490 } 491 case 0x1: 492 return new WarnUnimplemented("vnmla, vnmls, vnmul", machInst); 493 case 0x3: 494 if ((opc3 & 0x1) == 0) { 495 return new WarnUnimplemented("vadd", machInst); 496 } else { 497 return new WarnUnimplemented("vsub", machInst); --- 90 unchanged lines hidden --- | 508 } 509 case 0x1: 510 return new WarnUnimplemented("vnmla, vnmls, vnmul", machInst); 511 case 0x3: 512 if ((opc3 & 0x1) == 0) { 513 return new WarnUnimplemented("vadd", machInst); 514 } else { 515 return new WarnUnimplemented("vsub", machInst); --- 90 unchanged lines hidden --- |