This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[patch] Arm SVC instruction
- From: Paul Brook <paul at codesourcery dot com>
- To: binutils at sourceware dot org
- Date: Fri, 27 Jan 2006 15:00:39 +0000
- Subject: [patch] Arm SVC instruction
As part of their unified assembly language Arm changed the name of the SWI
instruction to SVC (Supervisor Call). It's exactly the same instruction, just
with a new name.
The attached patch makes gas accept both names.
Tested on arm-none-eabi.
Ok?
Paul
2006-01-27 Paul Brook <paul@codesourcery.com>
gas/
* config/tc-arm.c (insns): Add "svc".
gas/testsuite/
* gas/arm/svc.d: New test.
* gas/arm/svc.s: New test.
Index: gas/config/tc-arm.c
===================================================================
RCS file: /var/cvsroot/src-cvs/src/gas/config/tc-arm.c,v
retrieving revision 1.236
diff -u -p -r1.236 tc-arm.c
--- gas/config/tc-arm.c 27 Dec 2005 11:55:37 -0000 1.236
+++ gas/config/tc-arm.c 27 Jan 2006 14:37:27 -0000
@@ -8719,6 +8719,7 @@ static const struct asm_opcode insns[] =
tC3(ldmfd, 8900000, ldmia, 2, (RRw, REGLST), ldmstm, t_ldmstm),
TCE(swi, f000000, df00, 1, (EXPi), swi, t_swi),
+ TCE(svc, f000000, df00, 1, (EXPi), swi, t_swi),
tCE(b, a000000, b, 1, (EXPr), branch, t_branch),
TCE(bl, b000000, f000f800, 1, (EXPr), bl, t_branch23),
Index: gas/testsuite/gas/arm/svc.d
===================================================================
RCS file: gas/testsuite/gas/arm/svc.d
diff -N gas/testsuite/gas/arm/svc.d
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/arm/svc.d 27 Jan 2006 14:50:38 -0000
@@ -0,0 +1,14 @@
+# name: SWI/SVC instructions
+# objdump: -dr --prefix-addresses --show-raw-insn
+
+.*: +file format .*arm.*
+
+Disassembly of section \.text:
+0+000 <[^>]+> ef123456 (swi|svc) 0x00123456
+0+004 <[^>]+> ef876543 (swi|svc) 0x00876543
+0+008 <[^>]+> ef123456 (swi|svc) 0x00123456
+0+00c <[^>]+> ef876543 (swi|svc) 0x00876543
+0+010 <[^>]+> df5a (swi|svc) 90
+0+012 <[^>]+> dfa5 (swi|svc) 165
+0+014 <[^>]+> df5a (swi|svc) 90
+0+016 <[^>]+> dfa5 (swi|svc) 165
Index: gas/testsuite/gas/arm/svc.s
===================================================================
RCS file: gas/testsuite/gas/arm/svc.s
diff -N gas/testsuite/gas/arm/svc.s
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/arm/svc.s 27 Jan 2006 14:48:43 -0000
@@ -0,0 +1,15 @@
+ .text
+ .arch armv4t
+ .syntax unified
+foo:
+ swi 0x123456
+ swi 0x876543
+ svc 0x123456
+ svc 0x876543
+
+ .thumb
+bar:
+ swi 0x5a
+ swi 0xa5
+ svc 0x5a
+ svc 0xa5