# Pentium IV possible unit masks
#
name:branch_retired type:bitmask default:0x0c
	0x01 branch not-taken predicted
	0x02 branch not-taken mispredicted
	0x04 branch taken predicted
	0x08 branch taken mispredicted
name:mispred_branch_retired type:bitmask default:0x01
	0x01 retired instruction is non-bogus
# FIXME: 0 count nothing, 0xff count more than 0x01, docs says it's a bitmask:
# something wrong in documentation ?
name:bpu_fetch_request type:bitmask default:0x01
	0x01 trace cache lookup miss
name:itlb_reference type:bitmask default:0x07
	0x01 ITLB hit
	0x02 ITLB miss
	0x04 uncacheable ITLB hit
name:memory_cancel type:bitmask default:0x08
	0x04 replayed because no store request buffer available
	0x08 conflicts due to 64k aliasing
name:memory_complete type:bitmask default:0x03
	0x01 load split completed, excluding UC/WC loads
	0x02 any split stores completed
	0x04 uncacheable load split completed
	0x08 uncacheable store split complete
name:load_port_replay type:mandatory default:0x02
	0x02 split load
name:store_port_replay type:mandatory default:0x02
	0x02 split store
name:mob_load_replay type:bitmask default:0x3a
	0x02 replay cause: unknown store address
	0x08 replay cause: unknown store data
	0x10 replay cause: partial overlap between load and store
	0x20 replay cause: mismatched low 4 bits between load and store addr
name:bsq_cache_reference type:bitmask default:0x073f
	0x01 read 2nd level cache hit shared
	0x02 read 2nd level cache hit exclusive
	0x04 read 2nd level cache hit modified
	0x08 read 3rd level cache hit shared
	0x10 read 3rd level cache hit exclusive
	0x20 read 3rd level cache hit modified
	0x100 read 2nd level cache miss
	0x200 read 3rd level cache miss
	0x400 writeback lookup from DAC misses 2nd level cache
name:ioq type:bitmask default:0xefe1
	0x01 bus request type bit 0
	0x02 bus request type bit 1
	0x04 bus request type bit 2
	0x08 bus request type bit 3
	0x10 bus request type bit 4
	0x20 count read entries
	0x40 count write entries
	0x80 count UC memory access entries
	0x100 count WC memory access entries
	0x200 count write-through memory access entries
	0x400 count write-protected memory access entries
	0x800 count WB memory access entries
	0x2000 count own store requests
	0x4000 count other / DMA store requests
	0x8000 count HW/SW prefetch requests
name:bsq type:bitmask default:0x21
	0x01 (r)eq (t)ype (e)ncoding, bit 0: see next bit
	0x02 rte bit 1: 00=read, 01=read invalidate, 10=write, 11=writeback
	0x04 req len bit 0
	0x08 req len bit 1
	0x20 request type is input (0=output)
	0x40 request type is bus lock
	0x80 request type is cacheable
	0x100 request type is 8-byte chunk split across 8-byte boundary
	0x200 request type is demand (0=prefetch)
	0x400 request type is ordered
	0x800 (m)emory (t)ype (e)ncoding, bit 0: see next bits
	0x1000 mte bit 1: see next bits
	0x2000 mte bit 2: 000=UC, 001=USWC, 100=WT, 101=WP, 110=WB
name:x87_assist type:bitmask default:0x1f
	0x01 handle FP stack underflow
	0x02 handle FP stack overflow
	0x04 handle x87 output overflow
	0x08 handle x87 output underflow
	0x10 handle x87 input assist
name:machine_clear type:bitmask default:0x01
	0x01 count a portion of cycles the machine is cleared for any cause
	0x04 count each time the machine is cleared due to memory ordering issues
	0x40 count each time the machine is cleared due to self modifying code
name:global_power_events type:mandatory default:0x01
	0x01 mandatory
name:tc_ms_xfer type:mandatory default:0x01
	0x01 count TC to MS transfers
name:uop_queue_writes type:bitmask default:0x07
	0x01 count uops written to queue from TC build mode
	0x02 count uops written to queue from TC deliver mode
	0x04 count uops written to queue from microcode ROM
name:instr_retired type:bitmask default:0x01
	0x01 count non-bogus instructions which are not tagged
	0x02 count non-bogus instructions which are tagged
	0x04 count bogus instructions which are not tagged
	0x08 count bogus instructions which are tagged
name:uops_retired type:bitmask default:0x01
	0x01 count marked uops which are non-bogus
	0x02 count marked uops which are bogus
name:uop_type type:bitmask default:0x02
	0x02 count uops which are load operations
	0x04 count uops which are store operations
name:branch_type type:bitmask default:0x1f
	0x01 count unconditional jumps
	0x02 count conditional jumps
	0x04 count call branches
	0x08 count return branches
	0x10 count indirect jumps
name:tc_deliver_mode type:bitmask default:0x04
	0x04 processor is in deliver mode
	0x20 processor is in build mode
name:page_walk_type type:bitmask default:0x01
	0x01 page walk for data TLB miss
	0x02 page walk for instruction TLB miss
name:fsb_data_activity type:bitmask default:0x3f
	0x01 count when this processor drives data onto bus
	0x02 count when this processor reads data from bus
	0x04 count when data is on bus but not sampled by this processor
	0x08 count when this processor reserves bus for driving
	0x10 count when other reserves bus and this processor will sample
	0x20 count when other reserves bus and this processor will not sample
name:flame_uop type:mandatory default:0x8000
	0x8000 count all uops of this type
name:x87_simd_moves_uop type:bitmask default:0x18
	0x08 count all x87 SIMD store/move uops
	0x10 count all x87 SIMD load uops