Deleted Added
sdiff udiff text old ( 4539:6eeeea62b7c4 ) new ( 4590:5c3813b700a3 )
full compact
1// Copyright (c) 2007 The Hewlett-Packard Development Company
2// All rights reserved.
3//
4// Redistribution and use of this software in source and binary forms,
5// with or without modification, are permitted provided that the
6// following conditions are met:
7//
8// The software must be used only for Non-Commercial Use which means any

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

54// Authors: Gabe Black
55
56//////////////////////////////////////////////////////////////////////////
57//
58// Fault Microop
59//
60//////////////////////////////////////////////////////////////////////////
61
62output header {{
63 class MicroFault : public X86MicroopBase
64 {
65 protected:
66 Fault fault;
67 void buildMe();
68
69 public:
70 MicroFault(ExtMachInst _machInst, const char * instMnem,
71 bool isMicro, bool isDelayed, bool isFirst, bool isLast,
72 Fault _fault);
73
74 MicroFault(ExtMachInst _machInst, const char * instMnem,
75 Fault _fault);
76
77 %(BasicExecDeclare)s
78 };
79}};
80
81output decoder {{
82 Fault MicroFault::execute(%(CPU_exec_context)s *xc,
83 Trace::InstRecord *traceData) const
84 {
85 //Return the fault we were constructed with
86 return fault;
87 }
88}};
89
90output decoder {{
91 inline MicroFault::MicroFault(
92 ExtMachInst machInst, const char * instMnem, Fault _fault) :
93 X86MicroopBase(machInst, "fault", instMnem,
94 false, false, false, false, No_OpClass), fault(_fault)
95 {
96 }
97
98 inline MicroFault::MicroFault(
99 ExtMachInst machInst, const char * instMnem,
100 bool isMicro, bool isDelayed, bool isFirst, bool isLast,
101 Fault _fault) :
102 X86MicroopBase(machInst, "fault", instMnem,
103 isMicro, isDelayed, isFirst, isLast, No_OpClass),
104 fault(_fault)
105 {
106 }
107}};
108
109let {{
110 class Fault(X86Microop):
111 def __init__(self, fault):
112 self.fault = fault
113
114 def getAllocator(self, *microFlags):
115 allocator = '''new MicroFault(machInst, mnemonic
116 %(flags)s, %(fault)s)''' % {
117 "flags" : self.microFlagsText(microFlags),
118 "fault" : self.fault}
119 return allocator
120 microopClasses["fault"] = Fault
121}};