summaryrefslogtreecommitdiff
path: root/cpu
diff options
context:
space:
mode:
authorJose E. Marchesi <jose.marchesi@oracle.com>2019-07-14 14:45:31 +0200
committerJose E. Marchesi <jose.marchesi@oracle.com>2019-07-14 14:45:31 +0200
commit92434a14b97bf07546701613a16aaf4d8a3b3eca (patch)
treee60ab4f22c2660c51d887ff4c23aaf965c34df0f /cpu
parentda73816739483bac537403262cef1c460e43319f (diff)
downloadbinutils-gdb-92434a14b97bf07546701613a16aaf4d8a3b3eca.tar.gz
cpu,opcodes,gas: fix arguments to ldabs and ldind eBPF instructions
The eBPF non-generic load instructions ldind{b,h,w,dw} and ldabs{b,h,w,dw} do not take an explicit destination register as an argument. Instead, they put the loaded value in %r0, implicitly. This patch fixes the CPU BPF description to not expect a 'dst' argument in these arguments, regenerates the corresponding files in opcodes, and updates the impacted GAS tests. Tested in a x86-64 host. cpu/ChangeLog: 2019-07-14 Jose E. Marchesi <jose.marchesi@oracle.com> * bpf.cpu (dlsi): ldabs and ldind instructions do not take an explicit 'dst' argument. opcodes/ChangeLog: 2019-07-14 Jose E. Marchesi <jose.marchesi@oracle.com> * bpf-desc.c: Regenerate. * bpf-opc.c: Likewise. gas/ChangeLog: 2019-07-14 Jose E. Marchesi <jose.marchesi@oracle.com> * testsuite/gas/bpf/mem.s: Do not use explicit arguments for ldabs and ldind instructions. * testsuite/gas/bpf/mem.d: Updated accordingly. * testsuite/gas/bpf/mem-be.d: Likewise.
Diffstat (limited to 'cpu')
-rw-r--r--cpu/ChangeLog5
-rw-r--r--cpu/bpf.cpu4
2 files changed, 7 insertions, 2 deletions
diff --git a/cpu/ChangeLog b/cpu/ChangeLog
index 1ac7b2bf03d..49940034bb0 100644
--- a/cpu/ChangeLog
+++ b/cpu/ChangeLog
@@ -1,3 +1,8 @@
+2019-07-14 Jose E. Marchesi <jose.marchesi@oracle.com>
+
+ * bpf.cpu (dlsi): ldabs and ldind instructions do not take an
+ explicit 'dst' argument.
+
2019-06-13 Stafford Horne <shorne@gmail.com>
* or1korfpx.cpu (float-setflag-insn-base): Add 'sf' to symbol.
diff --git a/cpu/bpf.cpu b/cpu/bpf.cpu
index 85bac2152f5..60e89fb71c4 100644
--- a/cpu/bpf.cpu
+++ b/cpu/bpf.cpu
@@ -477,8 +477,8 @@
(dni (.sym x-basename x-suffix x-endian)
(.str x-basename x-suffix)
((ISA (.sym ebpf x-endian)))
- (.str x-basename x-suffix " $dst" x-endian ",$src" x-endian ",$imm32")
- (+ imm32 (f-offset16 0) (.sym src x-endian) (.sym dst x-endian)
+ (.str x-basename x-suffix " $src" x-endian ",$imm32")
+ (+ imm32 (f-offset16 0) ((.sym f-dst x-endian) 0) (.sym src x-endian)
(.sym OP_CLASS_ x-class) (.sym OP_SIZE_ x-size)
(.sym OP_MODE_ x-mode)) () ()))