This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]