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 --- 219 unchanged lines hidden (view full) --- 228}}; 229 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 SegSSCheck, SegIretCheck, SegIntCSCheck 238 }; 239}}; 240 241output decoder {{ 242 void 243 divide(uint64_t dividend, uint64_t divisor, 244 uint64_t "ient, uint64_t &remainder) --- 791 unchanged lines hidden (view full) --- 1036 break; 1037 case SegCSCheck: 1038 panic("CS checks for far calls/jumps not implemented.\\n"); 1039 break; 1040 case SegCallGateCheck: 1041 panic("CS checks for far calls/jumps through call gates" 1042 "not implemented.\\n"); 1043 break; |
1044 case SegIntGateCheck: 1045 if (desc.dpl < m5reg.cpl) { 1046 return new GeneralProtection((uint16_t)selector); 1047 } 1048 break; |
1049 case SegSSCheck: 1050 if (selector.si || selector.ti) { 1051 if (!desc.p) { 1052 //FIXME This needs to also push the selector. 1053 return new StackFault; 1054 } 1055 } else { 1056 if ((m5reg.submode != SixtyFourBitMode || --- 95 unchanged lines hidden --- |