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 --- |