regop.isa (5935:df55109af564) regop.isa (5936:c30088a243ad)
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, SegTSSCheck
238 SegTRCheck, SegTSSCheck, SegInGDTCheck, SegLDTCheck
239 };
240
241 enum LongModeDescriptorType {
242 LDT64 = 2,
243 AvailableTSS64 = 9,
244 BusyTSS64 = 0xb,
245 CallGate64 = 0xc,
246 IntGate64 = 0xe,

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

1169 if (!desc.p) {
1170 fault = new SegmentNotPresent(selector);
1171 } else if (!(desc.type == 0x9 ||
1172 (desc.type == 1 &&
1173 m5reg.mode != LongMode))) {
1174 fault = new GeneralProtection(selector);
1175 }
1176 break;
239 };
240
241 enum LongModeDescriptorType {
242 LDT64 = 2,
243 AvailableTSS64 = 9,
244 BusyTSS64 = 0xb,
245 CallGate64 = 0xc,
246 IntGate64 = 0xe,

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

1169 if (!desc.p) {
1170 fault = new SegmentNotPresent(selector);
1171 } else if (!(desc.type == 0x9 ||
1172 (desc.type == 1 &&
1173 m5reg.mode != LongMode))) {
1174 fault = new GeneralProtection(selector);
1175 }
1176 break;
1177 case SegInGDTCheck:
1178 if (selector.ti) {
1179 fault = new GeneralProtection(selector);
1180 }
1181 break;
1182 case SegLDTCheck:
1183 if (!desc.p) {
1184 fault = new SegmentNotPresent(selector);
1185 } else if (desc.type != 0x2) {
1186 fault = new GeneralProtection(selector);
1187 }
1188 break;
1177 default:
1178 panic("Undefined segment check type.\\n");
1179 }
1180 '''
1181 flag_code = '''
1182 // Check for a NULL selector and set ZF,EZF appropriately.
1183 ccFlagBits = ccFlagBits & ~(ext & (ZFBit | EZFBit));
1184 if (!selector.si && !selector.ti)

--- 83 unchanged lines hidden ---
1189 default:
1190 panic("Undefined segment check type.\\n");
1191 }
1192 '''
1193 flag_code = '''
1194 // Check for a NULL selector and set ZF,EZF appropriately.
1195 ccFlagBits = ccFlagBits & ~(ext & (ZFBit | EZFBit));
1196 if (!selector.si && !selector.ti)

--- 83 unchanged lines hidden ---