isa.hh (6331:d947798df4a1) isa.hh (6336:25635830e33c)
1/*
2 * Copyright (c) 2009 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;

--- 17 unchanged lines hidden (view full) ---

26 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 *
28 * Authors: Gabe Black
29 */
30
31#ifndef __ARCH_X86_ISA_HH__
32#define __ARCH_X86_ISA_HH__
33
1/*
2 * Copyright (c) 2009 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;

--- 17 unchanged lines hidden (view full) ---

26 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 *
28 * Authors: Gabe Black
29 */
30
31#ifndef __ARCH_X86_ISA_HH__
32#define __ARCH_X86_ISA_HH__
33
34#include "arch/x86/miscregfile.hh"
35#include "arch/x86/types.hh"
34#include "arch/x86/miscregs.hh"
35#include "arch/x86/registers.hh"
36#include "base/types.hh"
36
37
38#include <string>
39#include <iostream>
40
37class Checkpoint;
38class EventManager;
41class Checkpoint;
42class EventManager;
43class ThreadContext;
39
40namespace X86ISA
41{
42 class ISA
43 {
44 protected:
44
45namespace X86ISA
46{
47 class ISA
48 {
49 protected:
45 MiscRegFile miscRegFile;
50 MiscReg regVal[NUM_MISCREGS];
51 void updateHandyM5Reg(Efer efer, CR0 cr0,
52 SegAttr csAttr, SegAttr ssAttr, RFLAGS rflags);
46
47 public:
48 void clear();
49
53
54 public:
55 void clear();
56
57 ISA()
58 {
59 clear();
60 }
61
50 MiscReg readMiscRegNoEffect(int miscReg);
51 MiscReg readMiscReg(int miscReg, ThreadContext *tc);
52
62 MiscReg readMiscRegNoEffect(int miscReg);
63 MiscReg readMiscReg(int miscReg, ThreadContext *tc);
64
53 void setMiscRegNoEffect(int miscReg, const MiscReg val);
54 void setMiscReg(int miscReg, const MiscReg val,
55 ThreadContext *tc);
65 void setMiscRegNoEffect(int miscReg, MiscReg val);
66 void setMiscReg(int miscReg, MiscReg val, ThreadContext *tc);
56
57 int flattenIntIndex(int reg);
58 int flattenFloatIndex(int reg);
59
60 void serialize(EventManager *em, std::ostream &os);
61 void unserialize(EventManager *em, Checkpoint *cp,
62 const std::string &section);
63 };
64}
65
66#endif
67
68 int flattenIntIndex(int reg);
69 int flattenFloatIndex(int reg);
70
71 void serialize(EventManager *em, std::ostream &os);
72 void unserialize(EventManager *em, Checkpoint *cp,
73 const std::string &section);
74 };
75}
76
77#endif