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 "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 { |
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 |
86 void initCPU(ThreadContext *tc, int cpuId); 87 |
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 --- |