decoder.isa (5094:10b8551e3e3f) | decoder.isa (5095:65cc3a615375) |
---|---|
1// Copyright (c) 2006-2007 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 --- 515 unchanged lines hidden (view full) --- 524 0x03: HPriv::wrhprhintp({{Hintp = Rs1 ^ Rs2_or_imm13;}}); 525 //0x04 should cause an illegal instruction exception 526 0x05: HPriv::wrhprhtba({{Htba = Rs1 ^ Rs2_or_imm13;}}); 527 //0x06-0x01D should cause an illegal instruction exception 528 0x1F: HPriv::wrhprhstick_cmpr({{HstickCmpr = Rs1 ^ Rs2_or_imm13;}}); 529 } 530 0x34: decode OPF{ 531 format FpBasic{ | 1// Copyright (c) 2006-2007 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 --- 515 unchanged lines hidden (view full) --- 524 0x03: HPriv::wrhprhintp({{Hintp = Rs1 ^ Rs2_or_imm13;}}); 525 //0x04 should cause an illegal instruction exception 526 0x05: HPriv::wrhprhtba({{Htba = Rs1 ^ Rs2_or_imm13;}}); 527 //0x06-0x01D should cause an illegal instruction exception 528 0x1F: HPriv::wrhprhstick_cmpr({{HstickCmpr = Rs1 ^ Rs2_or_imm13;}}); 529 } 530 0x34: decode OPF{ 531 format FpBasic{ |
532 0x01: fmovs({{ 533 Frds.uw = Frs2s.uw; 534 //fsr.ftt = fsr.cexc = 0 535 Fsr &= ~(7 << 14); 536 Fsr &= ~(0x1F); 537 }}); 538 0x02: fmovd({{ 539 Frd.udw = Frs2.udw; 540 //fsr.ftt = fsr.cexc = 0 541 Fsr &= ~(7 << 14); 542 Fsr &= ~(0x1F); 543 }}); | 532 0x01: fmovs({{Frds.uw = Frs2s.uw;}}); 533 0x02: fmovd({{Frd.udw = Frs2.udw;}}); |
544 0x03: FpUnimpl::fmovq(); | 534 0x03: FpUnimpl::fmovq(); |
545 0x05: fnegs({{ 546 Frds.uw = Frs2s.uw ^ (1UL << 31); 547 //fsr.ftt = fsr.cexc = 0 548 Fsr &= ~(7 << 14); 549 Fsr &= ~(0x1F); 550 }}); 551 0x06: fnegd({{ 552 Frd.udw = Frs2.udw ^ (1ULL << 63); 553 //fsr.ftt = fsr.cexc = 0 554 Fsr &= ~(7 << 14); 555 Fsr &= ~(0x1F); 556 }}); | 535 0x05: fnegs({{Frds.uw = Frs2s.uw ^ (1UL << 31);}}); 536 0x06: fnegd({{Frd.udw = Frs2.udw ^ (1ULL << 63);}}); |
557 0x07: FpUnimpl::fnegq(); | 537 0x07: FpUnimpl::fnegq(); |
558 0x09: fabss({{ 559 Frds.uw = ((1UL << 31) - 1) & Frs2s.uw; 560 //fsr.ftt = fsr.cexc = 0 561 Fsr &= ~(7 << 14); 562 Fsr &= ~(0x1F); 563 }}); 564 0x0A: fabsd({{ 565 Frd.udw = ((1ULL << 63) - 1) & Frs2.udw; 566 //fsr.ftt = fsr.cexc = 0 567 Fsr &= ~(7 << 14); 568 Fsr &= ~(0x1F); 569 }}); | 538 0x09: fabss({{Frds.uw = ((1UL << 31) - 1) & Frs2s.uw;}}); 539 0x0A: fabsd({{Frd.udw = ((1ULL << 63) - 1) & Frs2.udw;}}); |
570 0x0B: FpUnimpl::fabsq(); 571 0x29: fsqrts({{Frds.sf = std::sqrt(Frs2s.sf);}}); 572 0x2A: fsqrtd({{Frd.df = std::sqrt(Frs2.df);}}); 573 0x2B: FpUnimpl::fsqrtq(); 574 0x41: fadds({{Frds.sf = Frs1s.sf + Frs2s.sf;}}); 575 0x42: faddd({{Frd.df = Frs1.df + Frs2.df;}}); 576 0x43: FpUnimpl::faddq(); 577 0x45: fsubs({{Frds.sf = Frs1s.sf - Frs2s.sf;}}); 578 0x46: fsubd({{Frd.df = Frs1.df - Frs2.df; }}); 579 0x47: FpUnimpl::fsubq(); 580 0x49: fmuls({{Frds.sf = Frs1s.sf * Frs2s.sf;}}); 581 0x4A: fmuld({{Frd.df = Frs1.df * Frs2.df;}}); 582 0x4B: FpUnimpl::fmulq(); 583 0x4D: fdivs({{Frds.sf = Frs1s.sf / Frs2s.sf;}}); 584 0x4E: fdivd({{Frd.df = Frs1.df / Frs2.df;}}); 585 0x4F: FpUnimpl::fdivq(); 586 0x69: fsmuld({{Frd.df = Frs1s.sf * Frs2s.sf;}}); 587 0x6E: FpUnimpl::fdmulq(); | 540 0x0B: FpUnimpl::fabsq(); 541 0x29: fsqrts({{Frds.sf = std::sqrt(Frs2s.sf);}}); 542 0x2A: fsqrtd({{Frd.df = std::sqrt(Frs2.df);}}); 543 0x2B: FpUnimpl::fsqrtq(); 544 0x41: fadds({{Frds.sf = Frs1s.sf + Frs2s.sf;}}); 545 0x42: faddd({{Frd.df = Frs1.df + Frs2.df;}}); 546 0x43: FpUnimpl::faddq(); 547 0x45: fsubs({{Frds.sf = Frs1s.sf - Frs2s.sf;}}); 548 0x46: fsubd({{Frd.df = Frs1.df - Frs2.df; }}); 549 0x47: FpUnimpl::fsubq(); 550 0x49: fmuls({{Frds.sf = Frs1s.sf * Frs2s.sf;}}); 551 0x4A: fmuld({{Frd.df = Frs1.df * Frs2.df;}}); 552 0x4B: FpUnimpl::fmulq(); 553 0x4D: fdivs({{Frds.sf = Frs1s.sf / Frs2s.sf;}}); 554 0x4E: fdivd({{Frd.df = Frs1.df / Frs2.df;}}); 555 0x4F: FpUnimpl::fdivq(); 556 0x69: fsmuld({{Frd.df = Frs1s.sf * Frs2s.sf;}}); 557 0x6E: FpUnimpl::fdmulq(); |
588 0x81: fstox({{ 589 Frd.sdw = static_cast<int64_t>(Frs2s.sf); 590 }}); 591 0x82: fdtox({{ 592 Frd.sdw = static_cast<int64_t>(Frs2.df); 593 }}); | 558 0x81: fstox({{Frd.sdw = static_cast<int64_t>(Frs2s.sf);}}); 559 0x82: fdtox({{Frd.sdw = static_cast<int64_t>(Frs2.df);}}); |
594 0x83: FpUnimpl::fqtox(); | 560 0x83: FpUnimpl::fqtox(); |
595 0x84: fxtos({{ 596 Frds.sf = static_cast<float>(Frs2.sdw); 597 }}); 598 0x88: fxtod({{ 599 Frd.df = static_cast<double>(Frs2.sdw); 600 }}); | 561 0x84: fxtos({{Frds.sf = static_cast<float>(Frs2.sdw);}}); 562 0x88: fxtod({{Frd.df = static_cast<double>(Frs2.sdw);}}); |
601 0x8C: FpUnimpl::fxtoq(); | 563 0x8C: FpUnimpl::fxtoq(); |
602 0xC4: fitos({{ 603 Frds.sf = static_cast<float>(Frs2s.sw); 604 }}); | 564 0xC4: fitos({{Frds.sf = static_cast<float>(Frs2s.sw);}}); |
605 0xC6: fdtos({{Frds.sf = Frs2.df;}}); 606 0xC7: FpUnimpl::fqtos(); | 565 0xC6: fdtos({{Frds.sf = Frs2.df;}}); 566 0xC7: FpUnimpl::fqtos(); |
607 0xC8: fitod({{ 608 Frd.df = static_cast<double>(Frs2s.sw); 609 }}); | 567 0xC8: fitod({{Frd.df = static_cast<double>(Frs2s.sw);}}); |
610 0xC9: fstod({{Frd.df = Frs2s.sf;}}); 611 0xCB: FpUnimpl::fqtod(); 612 0xCC: FpUnimpl::fitoq(); 613 0xCD: FpUnimpl::fstoq(); 614 0xCE: FpUnimpl::fdtoq(); 615 0xD1: fstoi({{ 616 Frds.sw = static_cast<int32_t>(Frs2s.sf); 617 float t = Frds.sw; --- 854 unchanged lines hidden --- | 568 0xC9: fstod({{Frd.df = Frs2s.sf;}}); 569 0xCB: FpUnimpl::fqtod(); 570 0xCC: FpUnimpl::fitoq(); 571 0xCD: FpUnimpl::fstoq(); 572 0xCE: FpUnimpl::fdtoq(); 573 0xD1: fstoi({{ 574 Frds.sw = static_cast<int32_t>(Frs2s.sf); 575 float t = Frds.sw; --- 854 unchanged lines hidden --- |