diff options
author | Jakub Kicinski <jakub.kicinski@netronome.com> | 2017-10-08 21:04:12 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-10-09 09:51:03 -0700 |
commit | 995e101ffa71eff6ae5f5d5bf1ca8ec757b4ed21 (patch) | |
tree | 5d6f71a7fc6b801139b763cf3c75b6adc50da344 /drivers/net/ethernet/netronome/nfp/nfp_asm.c | |
parent | nfp: bpf: encode LMEM accesses (diff) | |
download | linux-dev-995e101ffa71eff6ae5f5d5bf1ca8ec757b4ed21.tar.xz linux-dev-995e101ffa71eff6ae5f5d5bf1ca8ec757b4ed21.zip |
nfp: bpf: encode extended LM pointer operands
Most instructions have special fields which allow switching
between base and extended Local Memory pointers. Introduce
those to register encoding, we will use the extra LM pointers
to access high addresses of the stack.
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Reviewed-by: Simon Horman <simon.horman@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/netronome/nfp/nfp_asm.c')
-rw-r--r-- | drivers/net/ethernet/netronome/nfp/nfp_asm.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_asm.c b/drivers/net/ethernet/netronome/nfp/nfp_asm.c index 4bcab43da16d..1decc638ea6f 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_asm.c +++ b/drivers/net/ethernet/netronome/nfp/nfp_asm.c @@ -130,6 +130,9 @@ int swreg_to_unrestricted(swreg dst, swreg lreg, swreg rreg, reg->breg = nfp_swreg_to_unreg(rreg, false); } + reg->dst_lmextn = swreg_lmextn(dst); + reg->src_lmextn = swreg_lmextn(lreg) | swreg_lmextn(rreg); + return 0; } @@ -207,5 +210,8 @@ int swreg_to_restricted(swreg dst, swreg lreg, swreg rreg, reg->breg = nfp_swreg_to_rereg(rreg, false, has_imm8, ®->i8); } + reg->dst_lmextn = swreg_lmextn(dst); + reg->src_lmextn = swreg_lmextn(lreg) | swreg_lmextn(rreg); + return 0; } |