utility.hh (4172:141705d83494) | utility.hh (4181:6edaeff44647) |
---|---|
1/* 2 * Copyright (c) 2003-2005 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 34 unchanged lines hidden (view full) --- 43 44 static inline bool 45 inUserMode(ThreadContext *tc) 46 { 47 return !(tc->readMiscRegNoEffect(MISCREG_PSTATE & (1 << 2)) || 48 tc->readMiscRegNoEffect(MISCREG_HPSTATE & (1 << 2))); 49 } 50 | 1/* 2 * Copyright (c) 2003-2005 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 34 unchanged lines hidden (view full) --- 43 44 static inline bool 45 inUserMode(ThreadContext *tc) 46 { 47 return !(tc->readMiscRegNoEffect(MISCREG_PSTATE & (1 << 2)) || 48 tc->readMiscRegNoEffect(MISCREG_HPSTATE & (1 << 2))); 49 } 50 |
51 inline ExtMachInst 52 makeExtMI(MachInst inst, ThreadContext * xc) { 53 ExtMachInst emi = (MachInst) inst; | 51 enum PredecodeResult { 52 MoreBytes = 1, 53 ExtMIReady = 2 54 }; 55 56 inline unsigned int 57 predecode(ExtMachInst &emi, Addr currPC, MachInst inst, 58 ThreadContext * xc) { 59 emi = inst; |
54 //The I bit, bit 13, is used to figure out where the ASI 55 //should come from. Use that in the ExtMachInst. This is 56 //slightly redundant, but it removes the need to put a condition 57 //into all the execute functions 58 if(inst & (1 << 13)) 59 emi |= (static_cast<ExtMachInst>(xc->readMiscRegNoEffect(MISCREG_ASI)) 60 << (sizeof(MachInst) * 8)); 61 else 62 emi |= (static_cast<ExtMachInst>(bits(inst, 12, 5)) 63 << (sizeof(MachInst) * 8)); | 60 //The I bit, bit 13, is used to figure out where the ASI 61 //should come from. Use that in the ExtMachInst. This is 62 //slightly redundant, but it removes the need to put a condition 63 //into all the execute functions 64 if(inst & (1 << 13)) 65 emi |= (static_cast<ExtMachInst>(xc->readMiscRegNoEffect(MISCREG_ASI)) 66 << (sizeof(MachInst) * 8)); 67 else 68 emi |= (static_cast<ExtMachInst>(bits(inst, 12, 5)) 69 << (sizeof(MachInst) * 8)); |
64 return emi; | 70 return MoreBytes | ExtMIReady; |
65 } 66 67 inline bool isCallerSaveIntegerRegister(unsigned int reg) { 68 panic("register classification not implemented"); 69 return false; 70 } 71 72 inline bool isCalleeSaveIntegerRegister(unsigned int reg) { --- 48 unchanged lines hidden --- | 71 } 72 73 inline bool isCallerSaveIntegerRegister(unsigned int reg) { 74 panic("register classification not implemented"); 75 return false; 76 } 77 78 inline bool isCalleeSaveIntegerRegister(unsigned int reg) { --- 48 unchanged lines hidden --- |