aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2002-12-03 18:15:48 +0000
committerRichard Henderson <rth@redhat.com>2002-12-03 18:15:48 +0000
commita823923bf657b448ef2ef71ab7b8fad2f31cd818 (patch)
tree8b05668c014a8c78fd375edc8d9af3daa23efd7f /gas
parent144da3c187ed993a76044e4e12a655dd760ef129 (diff)
downloadbinutils-a823923bf657b448ef2ef71ab7b8fad2f31cd818.zip
binutils-a823923bf657b448ef2ef71ab7b8fad2f31cd818.tar.gz
binutils-a823923bf657b448ef2ef71ab7b8fad2f31cd818.tar.bz2
include/opcode/
* ia64.h (enum ia64_opnd): Add IA64_OPND_LDXMOV. bfd/ * cpu-ia64-opc.c (elf64_ia64_operands): Add ldxmov entry. opcodes/ * ia64-opc-m.c: Add ld8.mov. * ia64-asmtab.c: Regenerate. gas/ * config/tc-ia64.c (operand_match): Add IA64_OPND_LDXMOV case. gas/testsuite/ * gas/ia64/ldxmov-1.[ds]: New. * gas/ia64/ldxmov-2.[ls]: New. * gas/ia64/ia64.exp: Run them.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog4
-rw-r--r--gas/config/tc-ia64.c9
-rw-r--r--gas/testsuite/ChangeLog6
-rw-r--r--gas/testsuite/gas/ia64/ia64.exp2
-rw-r--r--gas/testsuite/gas/ia64/ldxmov-1.d18
-rw-r--r--gas/testsuite/gas/ia64/ldxmov-1.s8
-rw-r--r--gas/testsuite/gas/ia64/ldxmov-2.l5
-rw-r--r--gas/testsuite/gas/ia64/ldxmov-2.s8
8 files changed, 60 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index d8ddb69..d891166 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,7 @@
+2002-12-03 Richard Henderson <rth@redhat.com>
+
+ * config/tc-ia64.c (operand_match): Add IA64_OPND_LDXMOV case.
+
2002-12-03 Alan Modra <amodra@bigpond.net.au>
* config/tc-w65.c (s_longa): Prototype. Make static, specify int arg.
diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c
index 2cb25b0..1e8542d 100644
--- a/gas/config/tc-ia64.c
+++ b/gas/config/tc-ia64.c
@@ -5523,6 +5523,15 @@ operand_match (idesc, index, e)
}
break;
+ case IA64_OPND_LDXMOV:
+ fix = CURR_SLOT.fixup + CURR_SLOT.num_fixups;
+ fix->code = BFD_RELOC_IA64_LDXMOV;
+ fix->opnd = idesc->operands[index];
+ fix->expr = *e;
+ fix->is_pcrel = 0;
+ ++CURR_SLOT.num_fixups;
+ return OPERAND_MATCH;
+
default:
break;
}
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 177dc26..266b690 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2002-12-03 Richard Henderson <rth@redhat.com>
+
+ * gas/ia64/ldxmov-1.[ds]: New.
+ * gas/ia64/ldxmov-2.[ls]: New.
+ * gas/ia64/ia64.exp: Run them.
+
2002-12-03 Alan Modra <amodra@bigpond.net.au>
* gas/arm/adrl.s: Test behaviour against globals too.
diff --git a/gas/testsuite/gas/ia64/ia64.exp b/gas/testsuite/gas/ia64/ia64.exp
index f8a647e..6c44468 100644
--- a/gas/testsuite/gas/ia64/ia64.exp
+++ b/gas/testsuite/gas/ia64/ia64.exp
@@ -36,4 +36,6 @@ if [istarget "ia64-*"] then {
run_dump_test "dv-safe"
run_dump_test "dv-srlz"
run_dump_test "tls"
+ run_dump_test "ldxmov-1"
+ run_list_test "ldxmov-2" ""
}
diff --git a/gas/testsuite/gas/ia64/ldxmov-1.d b/gas/testsuite/gas/ia64/ldxmov-1.d
new file mode 100644
index 0000000..aee8afe
--- /dev/null
+++ b/gas/testsuite/gas/ia64/ldxmov-1.d
@@ -0,0 +1,18 @@
+#objdump: -dr
+#name: ia64 ldxmov-1
+
+.*: file format elf64-ia64-little
+
+Disassembly of section \.text:
+
+0*0000000 <\.text>:
+ 0: 18 10 00 06 18 10 \[MMB\] ld8 r2=\[r3\]
+ 0: LDXMOV foo
+ 1: LDXMOV \.data
+ 6: 40 00 14 30 20 00 ld8 r4=\[r5\]
+ c: 00 00 00 20 nop\.b 0x0
+ 10: 19 30 00 0e 18 10 \[MMB\] ld8 r6=\[r7\]
+ 10: LDXMOV foo\+0x64
+ 11: LDXMOV \.data\+0x64
+ 16: 80 00 24 30 20 00 ld8 r8=\[r9\]
+ 1c: 00 00 00 20 nop.b 0x0;;
diff --git a/gas/testsuite/gas/ia64/ldxmov-1.s b/gas/testsuite/gas/ia64/ldxmov-1.s
new file mode 100644
index 0000000..ab50102
--- /dev/null
+++ b/gas/testsuite/gas/ia64/ldxmov-1.s
@@ -0,0 +1,8 @@
+ .text
+ ld8.mov r2 = [r3], foo#
+ ld8.mov r4 = [r5], bar#
+ ld8.mov r6 = [r7], foo# + 100
+ ld8.mov r8 = [r9], bar# + 100
+
+ .data
+bar:
diff --git a/gas/testsuite/gas/ia64/ldxmov-2.l b/gas/testsuite/gas/ia64/ldxmov-2.l
new file mode 100644
index 0000000..1334cf4
--- /dev/null
+++ b/gas/testsuite/gas/ia64/ldxmov-2.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*:5: Warning: Use of 'ld8.mov' violates RAW dependency .*number is 2
+.*:4: Warning: This is the location of the conflicting usage
+.*:8: Warning: Use of 'mov' violates RAW dependency .*number is 2
+.*:7: Warning: This is the location of the conflicting usage
diff --git a/gas/testsuite/gas/ia64/ldxmov-2.s b/gas/testsuite/gas/ia64/ldxmov-2.s
new file mode 100644
index 0000000..991de1b
--- /dev/null
+++ b/gas/testsuite/gas/ia64/ldxmov-2.s
@@ -0,0 +1,8 @@
+ .text
+ .explicit
+
+ mov r2 = r0
+ ld8.mov r3 = [r2], foo#
+ ;;
+ ld8.mov r2 = [r0], foo#
+ mov r3 = r2