regop.isa (5673:57be483cea36) regop.isa (5674:4a4f20dfbc60)
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 &quotient, uint64_t &remainder);
234
235 enum SegmentSelectorCheck {
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 &quotient, uint64_t &remainder);
234
235 enum SegmentSelectorCheck {
236 SegNoCheck, SegCSCheck, SegCallGateCheck,
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 &quotient, 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;
237 SegSSCheck, SegIretCheck, SegIntCSCheck
238 };
239}};
240
241output decoder {{
242 void
243 divide(uint64_t dividend, uint64_t divisor,
244 uint64_t &quotient, 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;
1044 case SegSSCheck:
1045 if (selector.si || selector.ti) {
1046 if (!desc.p) {
1047 //FIXME This needs to also push the selector.
1048 return new StackFault;
1049 }
1050 } else {
1051 if ((m5reg.submode != SixtyFourBitMode ||

--- 95 unchanged lines hidden ---
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 ---