regop.isa (5899:b702f4fdf16c) regop.isa (5900:6776001c9b92)
1// Copyright (c) 2007-2008 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

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

230output header {{
231 void
232 divide(uint64_t dividend, uint64_t divisor,
233 uint64_t &quotient, uint64_t &remainder);
234
235 enum SegmentSelectorCheck {
236 SegNoCheck, SegCSCheck, SegCallGateCheck, SegIntGateCheck,
237 SegSoftIntGateCheck, SegSSCheck, SegIretCheck, SegIntCSCheck,
1// Copyright (c) 2007-2008 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

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

230output header {{
231 void
232 divide(uint64_t dividend, uint64_t divisor,
233 uint64_t &quotient, uint64_t &remainder);
234
235 enum SegmentSelectorCheck {
236 SegNoCheck, SegCSCheck, SegCallGateCheck, SegIntGateCheck,
237 SegSoftIntGateCheck, SegSSCheck, SegIretCheck, SegIntCSCheck,
238 SegTRCheck
238 SegTRCheck, SegTSSCheck
239 };
240
241 enum LongModeDescriptorType {
242 LDT64 = 2,
243 AvailableTSS64 = 9,
244 BusyTSS64 = 0xb,
245 CallGate64 = 0xc,
246 IntGate64 = 0xe,

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

1119 "in legacy mode.\\n");
1120 }
1121 break;
1122 case SegTRCheck:
1123 if (!selector.si || selector.ti) {
1124 fault = new GeneralProtection(selector);
1125 }
1126 break;
239 };
240
241 enum LongModeDescriptorType {
242 LDT64 = 2,
243 AvailableTSS64 = 9,
244 BusyTSS64 = 0xb,
245 CallGate64 = 0xc,
246 IntGate64 = 0xe,

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

1119 "in legacy mode.\\n");
1120 }
1121 break;
1122 case SegTRCheck:
1123 if (!selector.si || selector.ti) {
1124 fault = new GeneralProtection(selector);
1125 }
1126 break;
1127 case SegTSSCheck:
1128 if (!desc.p) {
1129 fault = new SegmentNotPresent(selector);
1130 } else if (!(desc.type == 0x9 ||
1131 (desc.type == 1 &&
1132 m5reg.mode != LongMode))) {
1133
1134 }
1135 break;
1127 default:
1128 panic("Undefined segment check type.\\n");
1129 }
1130 '''
1131 flag_code = '''
1132 // Check for a NULL selector and set ZF,EZF appropriately.
1133 ccFlagBits = ccFlagBits & ~(ext & (ZFBit | EZFBit));
1134 if (!selector.si && !selector.ti)

--- 81 unchanged lines hidden ---
1136 default:
1137 panic("Undefined segment check type.\\n");
1138 }
1139 '''
1140 flag_code = '''
1141 // Check for a NULL selector and set ZF,EZF appropriately.
1142 ccFlagBits = ccFlagBits & ~(ext & (ZFBit | EZFBit));
1143 if (!selector.si && !selector.ti)

--- 81 unchanged lines hidden ---