# Pentium IV HyperThreading 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: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