decoder.isa (5505:90d6811d5ea6) | decoder.isa (5568:d14250d688d2) |
---|---|
1// -*- mode:c++ -*- 2 3// Copyright (c) 2003-2006 The Regents of The University of Michigan 4// All rights reserved. 5// 6// Redistribution and use in source and binary forms, with or without 7// modification, are permitted provided that the following conditions are 8// met: redistributions of source code must retain the above copyright --- 624 unchanged lines hidden (view full) --- 633 } 634 635 format BasicOperate { 636 0xc000: rpcc({{ 637#if FULL_SYSTEM 638 /* Rb is a fake dependency so here is a fun way to get 639 * the parser to understand that. 640 */ | 1// -*- mode:c++ -*- 2 3// Copyright (c) 2003-2006 The Regents of The University of Michigan 4// All rights reserved. 5// 6// Redistribution and use in source and binary forms, with or without 7// modification, are permitted provided that the following conditions are 8// met: redistributions of source code must retain the above copyright --- 624 unchanged lines hidden (view full) --- 633 } 634 635 format BasicOperate { 636 0xc000: rpcc({{ 637#if FULL_SYSTEM 638 /* Rb is a fake dependency so here is a fun way to get 639 * the parser to understand that. 640 */ |
641 Ra = xc->readMiscReg(AlphaISA::IPR_CC) + (Rb & 0); | 641 Ra = xc->readMiscReg(IPR_CC) + (Rb & 0); |
642 643#else 644 Ra = curTick; 645#endif 646 }}, IsUnverifiable); 647 648 // All of the barrier instructions below do nothing in 649 // their execute() methods (hence the empty code blocks). --- 35 unchanged lines hidden (view full) --- 685 } 686#endif 687 } 688 689#if FULL_SYSTEM 690 0x00: CallPal::call_pal({{ 691 if (!palValid || 692 (palPriv | 642 643#else 644 Ra = curTick; 645#endif 646 }}, IsUnverifiable); 647 648 // All of the barrier instructions below do nothing in 649 // their execute() methods (hence the empty code blocks). --- 35 unchanged lines hidden (view full) --- 685 } 686#endif 687 } 688 689#if FULL_SYSTEM 690 0x00: CallPal::call_pal({{ 691 if (!palValid || 692 (palPriv |
693 && xc->readMiscReg(AlphaISA::IPR_ICM) != AlphaISA::mode_kernel)) { | 693 && xc->readMiscReg(IPR_ICM) != mode_kernel)) { |
694 // invalid pal function code, or attempt to do privileged 695 // PAL call in non-kernel mode 696 fault = new UnimplementedOpcodeFault; 697 } 698 else { 699 // check to see if simulator wants to do something special 700 // on this PAL call (including maybe suppress it) 701 bool dopal = xc->simPalCheck(palFunc); 702 703 if (dopal) { | 694 // invalid pal function code, or attempt to do privileged 695 // PAL call in non-kernel mode 696 fault = new UnimplementedOpcodeFault; 697 } 698 else { 699 // check to see if simulator wants to do something special 700 // on this PAL call (including maybe suppress it) 701 bool dopal = xc->simPalCheck(palFunc); 702 703 if (dopal) { |
704 xc->setMiscReg(AlphaISA::IPR_EXC_ADDR, NPC); 705 NPC = xc->readMiscReg(AlphaISA::IPR_PAL_BASE) + palOffset; | 704 xc->setMiscReg(IPR_EXC_ADDR, NPC); 705 NPC = xc->readMiscReg(IPR_PAL_BASE) + palOffset; |
706 } 707 } 708 }}, IsNonSpeculative); 709#else 710 0x00: decode PALFUNC { 711 format EmulatedCallPal { 712 0x00: halt ({{ 713 exitSimLoop("halt instruction encountered"); --- 160 unchanged lines hidden --- | 706 } 707 } 708 }}, IsNonSpeculative); 709#else 710 0x00: decode PALFUNC { 711 format EmulatedCallPal { 712 0x00: halt ({{ 713 exitSimLoop("halt instruction encountered"); --- 160 unchanged lines hidden --- |