Deleted Added
sdiff udiff text old ( 5675:7828ee363019 ) new ( 5678:9af6981bb086 )
full compact
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

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

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, SegIntGateCheck,
237 SegSSCheck, SegIretCheck, SegIntCSCheck
238 };
239
240 enum LongModeDescriptorType {
241 LDT64 = 2,
242 AvailableTSS64 = 9,
243 BusyTSS64 = 0xb,
244 CallGate64 = 0xc,
245 IntGate64 = 0xe,
246 TrapGate64 = 0xf
247 };
248}};
249
250output decoder {{
251 void
252 divide(uint64_t dividend, uint64_t divisor,
253 uint64_t &quotient, uint64_t &remainder)
254 {
255 //Check for divide by zero.

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

1102 // Check for a NULL selector and set ZF,EZF appropriately.
1103 ccFlagBits = ccFlagBits & ~(ext & (ZFBit | EZFBit));
1104 if (!selector.si && !selector.ti)
1105 ccFlagBits = ccFlagBits | (ext & (ZFBit | EZFBit));
1106 '''
1107
1108 class Wrdh(RegOp):
1109 code = '''
1110 SegDescriptor desc = SrcReg1;
1111
1112 uint64_t target = bits(SrcReg2, 31, 0) << 32;
1113 switch(desc.type) {
1114 case LDT64:
1115 case AvailableTSS64:
1116 case BusyTSS64:
1117 replaceBits(target, 23, 0, desc.baseLow);
1118 replaceBits(target, 31, 24, desc.baseHigh);
1119 break;
1120 case CallGate64:
1121 case IntGate64:
1122 case TrapGate64:
1123 replaceBits(target, 15, 0, bits(desc, 15, 0));
1124 replaceBits(target, 31, 16, bits(desc, 63, 48));
1125 break;
1126 default:
1127 panic("Wrdh used with wrong descriptor type!\\n");
1128 }
1129 DestReg = target;
1130 '''
1131
1132 class Wrtsc(WrRegOp):
1133 code = '''
1134 TscOp = psrc1;
1135 '''
1136
1137 class Rdtsc(RdRegOp):

--- 48 unchanged lines hidden ---