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 ---