x86-info-term
x86-info-term is a curses-based viewer for x86 instruction info built with Python 3. It combines the following data sources:
- Intrinsics from the Intel Intrinsics Guide.
- Performance info from uops.info.
Features
- Offline use: after the data sources are downloaded on the first run, requires no network access to run
- More advanced filtering: multiple filters are allowed, and so is filtering by
regular expression (using Python's regex syntax). Filter terms
can be prefixed by
!
to negate the filter meaning. For example, the filteravx-512 !_mask
will show all AVX-512 operations but filter out the masking variants. - Keyboard-only navigation: using a combination of vim- and emacs-style key bindings, x86-info-term is sure to delight and/or annoy everyone.
- 100% Pretty Cool
Key bindings
Data sources
s
: switch main data source view (toggling between Intel intrinsics data or uops.info instructions)
Scrolling
<count>
: a number can be prefixed to any vertical scroll to multiply the movement, like in vim.Ctrl-Y
: one line upCtrl-E
: one line downCtrl-U
: one half-page upCtrl-D
: one half-page downPage Up
: one page upPage Down
: one page down (who would've thought?)h
,Left
: scroll tables left (right now, just the performance data from uops.info)l
,Right
: scroll tables right
Cursor movement
This is for the intrinsic-selection cursor, not for text editing: see "Filtering" below for that
<count>
: a number can be prefixed to any movement to multiply the movement, like in vim. For example,33j
moves 33 rows down, and33J
moves 330 rows down. A count used with theg
/G
commands moves to an absolute line number.j
,Down
: one row downk
,Up
: one row upJ
: ten rows downK
: ten rows upu
: one half-page upd
: one half-page downg
,Home
: first rowG
,End
: last row
Detail view
Each intrinsic can be expanded/collapsed to show/hide complete data
Space
,Enter
: toggle open/close of selected rowo
: open selected rowc
: close selected rowO
: open all rowsC
: close all rows
Filtering
f
,/
,Tab
: from the normal browsing mode, start entering a filter- most normal keys, arrow keys, delete/backspace, etc.: edit the filter with usual key meanings
Enter
,Tab
: keep filter, return to browsing modeEsc
: remove current filter and return to browsing modeCtrl-F
: move cursor forward one characterCtrl-B
: move cursor back one characterCtrl-W
: delete word before cursorCtrl-U
: delete line before cursorCtrl-K
: delete line after cursor