regop.isa (5788:6d4161a36ca1) regop.isa (5853:606b9525071d)
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

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

1062 case SegCSCheck:
1063 panic("CS checks for far calls/jumps not implemented.\\n");
1064 break;
1065 case SegCallGateCheck:
1066 panic("CS checks for far calls/jumps through call gates"
1067 "not implemented.\\n");
1068 break;
1069 case SegIntGateCheck:
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

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

1062 case SegCSCheck:
1063 panic("CS checks for far calls/jumps not implemented.\\n");
1064 break;
1065 case SegCallGateCheck:
1066 panic("CS checks for far calls/jumps through call gates"
1067 "not implemented.\\n");
1068 break;
1069 case SegIntGateCheck:
1070 // Check permissions.
1070 if (desc.dpl < m5reg.cpl) {
1071 fault = new GeneralProtection((uint16_t)selector);
1072 }
1071 if (desc.dpl < m5reg.cpl) {
1072 fault = new GeneralProtection((uint16_t)selector);
1073 }
1074 // Make sure the gate's the right type.
1075 if (m5reg.mode == LongMode && ((desc.type & 0xe) != 0xe) ||
1076 ((desc.type & 0x6) != 0x6)) {
1077 fault = new GeneralProtection(0);
1078 }
1073 break;
1074 case SegSSCheck:
1075 if (selector.si || selector.ti) {
1076 if (!desc.p) {
1077 //FIXME This needs to also push the selector.
1078 fault = new StackFault;
1079 }
1080 } else {

--- 122 unchanged lines hidden ---
1079 break;
1080 case SegSSCheck:
1081 if (selector.si || selector.ti) {
1082 if (!desc.p) {
1083 //FIXME This needs to also push the selector.
1084 fault = new StackFault;
1085 }
1086 } else {

--- 122 unchanged lines hidden ---