diff options
author | David S. Miller <davem@davemloft.net> | 2017-04-24 15:56:21 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-04-24 15:56:21 -0700 |
commit | e3a724edeec3836ed44675a6587a6db7b6b68dbe (patch) | |
tree | cdcbe0a1744dfab53ab153dd0aff850d1746060e /arch/sparc/mm | |
parent | 0e43d1009d64afcc57bfb5155f1a36c395fac178 (diff) | |
download | linux-e3a724edeec3836ed44675a6587a6db7b6b68dbe.tar.gz linux-e3a724edeec3836ed44675a6587a6db7b6b68dbe.tar.bz2 linux-e3a724edeec3836ed44675a6587a6db7b6b68dbe.zip |
sparc64: Support cbcond instructions in eBPF JIT.
cbcond combines a compare with a branch into a single instruction.
The limitations are:
1) Only newer chips support it
2) For immediate compares we are limited to 5-bit signed immediate
values
3) The branch displacement is limited to 10-bit signed
4) We cannot use it for JSET
Also, cbcond (unlike all other sparc control transfers) lacks a delay
slot.
Currently we don't have a useful instruction we can push into the
delay slot of normal branches. So using cbcond pretty much always
increases code density, and is therefore a win.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/mm')
0 files changed, 0 insertions, 0 deletions