示例#1
0
 public void Initialize()
 {
     cpu.ProgramPerfCounters(
         GetPerfCtlValue(0xD9, 0, false, 0, 0),  // Waiting for All Quiet
         GetPerfCtlValue(0xD3, 0, false, 0, 0),  // Stall for serialization
         GetPerfCtlValue(0x87, 0, false, 0, 0),  // Instruction fetch stall
         GetPerfCtlValue(0x04, 1, false, 0, 0),  // SSE Moves eliminated
         GetPerfCtlValue(0xC0, 0, false, 0, 0),  // Instr
         GetPerfCtlValue(0x34, 0, false, 0, 0)); // FP + Load buffer stall
 }
示例#2
0
 public void Initialize()
 {
     cpu.ProgramPerfCounters(
         GetPerfCtlValue(0xC0, 0, false, 0, 0),   // instructions retired
         GetPerfCtlValue(0xCB, 0x4, false, 0, 0), // SSE/AVX instructions retired
         GetPerfCtlValue(0xCB, 0x3, false, 0, 0), // MMX/x86 instructions retired
         GetPerfCtlValue(0, 0x1, false, 0, 0),    // perf_ctl_3, mux this
         GetPerfCtlValue(0x1, 0, false, 0, 0),    // FP scheduler empty
         GetPerfCtlValue(0x5, 0xF, false, 0, 0)); // FP Serializing op
 }
示例#3
0
 public void Initialize()
 {
     cpu.ProgramPerfCounters(
         GetPerfCtlValue(0xD8, 0, false, 0, 0),       // LDQ Full
         GetPerfCtlValue(0xD8, 0, false, 0, 1),       // STQ Full
         GetPerfCtlValue(0xDD, 0, false, 0, 1),       // Int PRF Full
         GetPerfCtlValue(0xDB, 0b11111, false, 0, 0), // FP exceptions
         GetPerfCtlValue(0xC0, 0, false, 0, 0),       // Instructions
         GetPerfCtlValue(0xCB, 0b111, false, 0, 0));  // FP/MMX instructions
 }
示例#4
0
 public void Initialize()
 {
     cpu.ProgramPerfCounters(
         GetPerfCtlValue(0xD7, 0, false, 0, 0),      // FP Scheduler Full
         GetPerfCtlValue(0xDE, 0xFF, false, 0, 1),   // FP PRF Full. Does this work?
         GetPerfCtlValue(0xD0, 0, false, 0, 0),      // Decoder empty
         GetPerfCtlValue(0x3, 0xFF, false, 0, 0),    // Flops retired
         GetPerfCtlValue(0xC0, 0, false, 0, 0),      // Instr
         GetPerfCtlValue(0x5, 0b1111, false, 0, 0)); // Serializing FP ops
 }
示例#5
0
 public void Initialize()
 {
     cpu.ProgramPerfCounters(
         GetPerfCtlValue(0x88, 0, false, 0, 0),  // return stack hits
         GetPerfCtlValue(0x89, 0, false, 0, 0),  // return stack overflows
         GetPerfCtlValue(0xC0, 0, false, 0, 0),  // ret instr
         GetPerfCtlValue(0xC4, 0, false, 0, 0),  // ret taken branches
         GetPerfCtlValue(0xC2, 0, false, 0, 0),  // ret branches
         GetPerfCtlValue(0xC3, 0, false, 0, 0)); // ret misp branch
 }
示例#6
0
 public void Initialize()
 {
     cpu.ProgramPerfCounters(
         GetPerfCtlValue(0xD1, 0, false, 0, 0),       // All dispatch stalls
         GetPerfCtlValue(0xD5, 0, false, 0, 0),       // ROB full
         GetPerfCtlValue(0xD6, 0, false, 0, 0),       // Integer scheduler full
         GetPerfCtlValue(0xC0, 0b111, false, 0, 1),   // x87 ops
         GetPerfCtlValue(0xC0, 0, false, 0, 0),       // Instructions
         GetPerfCtlValue(0x42, 0b1000, false, 0, 0)); // DC refill from L2, read data error
 }
示例#7
0
 public void Initialize()
 {
     cpu.ProgramPerfCounters(
         GetPerfCtlValue(0x32, 0, false, 0, 0),    // misaligned stores
         GetPerfCtlValue(0x41, 0b11, false, 0, 0), // DC Miss
         GetPerfCtlValue(0x29, 3, false, 0, 0),    // LS dispatch
         GetPerfCtlValue(0xC0, 0, false, 0, 0),    // ret instr
         GetPerfCtlValue(0x40, 0, false, 1, 0),    // DC access, cmask 1
         GetPerfCtlValue(0x40, 0, false, 2, 0));   // DC access, cmask 2
 }
示例#8
0
 public void Initialize()
 {
     cpu.ProgramPerfCounters(
         GetPerfCtlValue(0x23, 1, false, 0, 0),      // LDQ full
         GetPerfCtlValue(0x23, 2, false, 0, 0),      // STQ full
         GetPerfCtlValue(0x43, 0, false, 0, 0),      // DC fill from system
         GetPerfCtlValue(0xC0, 0, false, 0, 0),      // ret instr
         GetPerfCtlValue(0x42, 0b1011, false, 0, 0), // DC fill from L2 or system
         GetPerfCtlValue(0x40, 0, false, 0, 0));     // DC access
 }
示例#9
0
 public void Initialize()
 {
     cpu.ProgramPerfCounters(
         GetPerfCtlValue(0x80, 0, false, 0, 0),  // ic fetch
         GetPerfCtlValue(0x82, 0, false, 0, 0),  // ic refill from L2
         GetPerfCtlValue(0x83, 0, false, 0, 0),  // ic refill from system
         GetPerfCtlValue(0xC0, 0, false, 0, 0),  // ret instr
         GetPerfCtlValue(0xC1, 0, false, 0, 0),  // ret uops
         GetPerfCtlValue(0x21, 0, false, 0, 0)); // SMC pipeline restart
 }