utility.hh (8300:eb279d6e08a2) | utility.hh (8768:314eb1e2fa94) |
---|---|
1/* 2 * Copyright (c) 2007 The Hewlett-Packard Development Company 3 * All rights reserved. 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 31 unchanged lines hidden (view full) --- 40#ifndef __ARCH_X86_UTILITY_HH__ 41#define __ARCH_X86_UTILITY_HH__ 42 43#include "arch/x86/regs/misc.hh" 44#include "arch/x86/types.hh" 45#include "base/hashmap.hh" 46#include "base/misc.hh" 47#include "base/types.hh" | 1/* 2 * Copyright (c) 2007 The Hewlett-Packard Development Company 3 * All rights reserved. 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 31 unchanged lines hidden (view full) --- 40#ifndef __ARCH_X86_UTILITY_HH__ 41#define __ARCH_X86_UTILITY_HH__ 42 43#include "arch/x86/regs/misc.hh" 44#include "arch/x86/types.hh" 45#include "base/hashmap.hh" 46#include "base/misc.hh" 47#include "base/types.hh" |
48#include "config/full_system.hh" | |
49#include "cpu/static_inst.hh" 50#include "cpu/thread_context.hh" | 48#include "cpu/static_inst.hh" 49#include "cpu/thread_context.hh" |
50#include "sim/full_system.hh" |
|
51 52class ThreadContext; 53 54namespace X86ISA 55{ 56 57 inline PCState 58 buildRetPC(const PCState &curPC, const PCState &callPC) --- 4 unchanged lines hidden (view full) --- 63 } 64 65 uint64_t 66 getArgument(ThreadContext *tc, int &number, uint16_t size, bool fp); 67 68 static inline bool 69 inUserMode(ThreadContext *tc) 70 { | 51 52class ThreadContext; 53 54namespace X86ISA 55{ 56 57 inline PCState 58 buildRetPC(const PCState &curPC, const PCState &callPC) --- 4 unchanged lines hidden (view full) --- 63 } 64 65 uint64_t 66 getArgument(ThreadContext *tc, int &number, uint16_t size, bool fp); 67 68 static inline bool 69 inUserMode(ThreadContext *tc) 70 { |
71#if FULL_SYSTEM 72 HandyM5Reg m5reg = tc->readMiscRegNoEffect(MISCREG_M5_REG); 73 return m5reg.cpl == 3; 74#else 75 return true; 76#endif | 71 if (!FullSystem) { 72 return true; 73 } else { 74 HandyM5Reg m5reg = tc->readMiscRegNoEffect(MISCREG_M5_REG); 75 return m5reg.cpl == 3; 76 } |
77 } 78 79 /** 80 * Function to insure ISA semantics about 0 registers. 81 * @param tc The thread context. 82 */ 83 template <class TC> 84 void zeroRegisters(TC *tc); 85 | 77 } 78 79 /** 80 * Function to insure ISA semantics about 0 registers. 81 * @param tc The thread context. 82 */ 83 template <class TC> 84 void zeroRegisters(TC *tc); 85 |
86#if FULL_SYSTEM 87 | |
88 void initCPU(ThreadContext *tc, int cpuId); 89 | 86 void initCPU(ThreadContext *tc, int cpuId); 87 |
90#endif 91 | |
92 void startupCPU(ThreadContext *tc, int cpuId); 93 94 void copyRegs(ThreadContext *src, ThreadContext *dest); 95 96 void copyMiscRegs(ThreadContext *src, ThreadContext *dest); 97 98 void skipFunction(ThreadContext *tc); 99 --- 15 unchanged lines hidden --- | 88 void startupCPU(ThreadContext *tc, int cpuId); 89 90 void copyRegs(ThreadContext *src, ThreadContext *dest); 91 92 void copyMiscRegs(ThreadContext *src, ThreadContext *dest); 93 94 void skipFunction(ThreadContext *tc); 95 --- 15 unchanged lines hidden --- |