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 "ient, 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 "ient, 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 --- |