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({{Frds.uw = Frs2s.uw;}}); 533 0x02: fmovd({{Frd.udw = Frs2.udw;}}); |
534 0x03: FpUnimpl::fmovq(); |
535 0x05: fnegs({{Frds.uw = Frs2s.uw ^ (1UL << 31);}}); 536 0x06: fnegd({{Frd.udw = Frs2.udw ^ (1ULL << 63);}}); |
537 0x07: FpUnimpl::fnegq(); |
538 0x09: fabss({{Frds.uw = ((1UL << 31) - 1) & Frs2s.uw;}}); 539 0x0A: fabsd({{Frd.udw = ((1ULL << 63) - 1) & Frs2.udw;}}); |
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(); |
558 0x81: fstox({{Frd.sdw = static_cast<int64_t>(Frs2s.sf);}}); 559 0x82: fdtox({{Frd.sdw = static_cast<int64_t>(Frs2.df);}}); |
560 0x83: FpUnimpl::fqtox(); |
561 0x84: fxtos({{Frds.sf = static_cast<float>(Frs2.sdw);}}); 562 0x88: fxtod({{Frd.df = static_cast<double>(Frs2.sdw);}}); |
563 0x8C: FpUnimpl::fxtoq(); |
564 0xC4: fitos({{Frds.sf = static_cast<float>(Frs2s.sw);}}); |
565 0xC6: fdtos({{Frds.sf = Frs2.df;}}); 566 0xC7: FpUnimpl::fqtos(); |
567 0xC8: fitod({{Frd.df = static_cast<double>(Frs2s.sw);}}); |
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 --- |