Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Jul 2012 09:26:20 GMT
From:      Robert Watson <rwatson@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 214504 for review
Message-ID:  <201207170926.q6H9QKoQ039917@skunkworks.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/@@214504?ac=10

Change 214504 by rwatson@rwatson_svr_ctsrd_mipsbuild on 2012/07/17 09:26:10

	Merge CHERI assembler enhancements from CTSRD-CHERI/binutils:
	
	commit 7248f6e0b1e1262bebc404c50ac618e6f7d9c60e
	Author: Steven Murdoch <Steven.Murdoch@cl.cam.ac.uk>
	Date:   Thu Jul 5 14:41:05 2012 +0100
	
	    Use indexed notation when instructions have an offset value or
	    register
	
	    cscr, clcr
	    cl[bhwd]
	    cl[bhwd]r
	    cs[bhwd]
	    cs[bhwd]r
	    cjr
	    cjalr

Affected files ...

.. //depot/projects/ctsrd/cheribsd/src/contrib/binutils/gas/config/tc-mips.c#3 edit
.. //depot/projects/ctsrd/cheribsd/src/contrib/binutils/opcodes/mips-opc.c#5 edit

Differences ...

==== //depot/projects/ctsrd/cheribsd/src/contrib/binutils/gas/config/tc-mips.c#3 (text+ko) ====

@@ -8796,6 +8796,8 @@
 
 	  s += strspn (s, " \t");
 	  is_mdmx = 0;
+	  /* Switch on first character of operand (+ options are handled by
+	     a nested case statement, inside this switch) */
 	  switch (*args)
 	    {
 	    case '\0':		/* end of args */
@@ -9055,7 +9057,8 @@
 	      /* This is dependent on the next operand specifier
 		 is a base register specification.  */
 	      assert (args[1] == 'b' || args[1] == '5'
-		      || args[1] == '-' || args[1] == '4');
+		      || args[1] == '-' || args[1] == '4'
+		      || (args[1] == '+' && args[2] == 'b'));
 	      if (*s == '\0')
 		return;
 

==== //depot/projects/ctsrd/cheribsd/src/contrib/binutils/opcodes/mips-opc.c#5 (text+ko) ====

@@ -200,26 +200,26 @@
 {"cdeclen", "+w,+b,m",	0x48800000, 0xffe0003f,	0,			0,		I1	}, /* DEPRECATED */
 {"cdecleng","+w,+b,m",	0x48800000, 0xffe0003f,	0,			0,		I1	}, /* DEPRECATED */
 {"candperm","+w,+b,m",	0x48800006, 0xffe0003f,	0,			0,		I1	},
-{"cscr",    "+w,+b,m",	0x49200000, 0xffe0003f,	0,			0,		I1	},
-{"clcr",    "+w,+b,m",	0x49400000, 0xffe0003f,	0,			0,		I1	},
-{"clb",     "t,+b,+o",  0x4a000000, 0xffe00000,	0,			0,		I1	},
-{"clh",     "t,+b,+o",  0x4a200000, 0xffe00000,	0,			0,		I1	},
-{"clw",     "t,+b,+o",  0x4a400000, 0xffe00000,	0,			0,		I1	},
-{"cld",     "t,+b,+o",  0x4a600000, 0xffe00000,	0,			0,		I1	},
-{"clbr",    "t,+b,m",   0x4a800000, 0xffe0003f,	0,			0,		I1	},
-{"clhr",    "t,+b,m",   0x4aa00000, 0xffe0003f,	0,			0,		I1	},
-{"clwr",    "t,+b,m",   0x4ac00000, 0xffe0003f,	0,			0,		I1	},
-{"cldr",    "t,+b,m",   0x4ae00000, 0xffe0003f,	0,			0,		I1	},
-{"csb",     "t,+b,+o",  0x4b000000, 0xffe00000,	0,			0,		I1	},
-{"csh",     "t,+b,+o",  0x4b200000, 0xffe00000,	0,			0,		I1	},
-{"csw",     "t,+b,+o",  0x4b400000, 0xffe00000,	0,			0,		I1	},
-{"csd",     "t,+b,+o",  0x4b600000, 0xffe00000,	0,			0,		I1	},
-{"csbr",    "t,+b,m",   0x4b800000, 0xffe0003f,	0,			0,		I1	},
-{"cshr",    "t,+b,m",   0x4ba00000, 0xffe0003f,	0,			0,		I1	},
-{"cswr",    "t,+b,m",   0x4bc00000, 0xffe0003f,	0,			0,		I1	},
-{"csdr",    "t,+b,m",   0x4be00000, 0xffe0003f,	0,			0,		I1	},
-{"cjr",     "+b,m",	0x49000000, 0xffff003f,	0,			0,		I1	},
-{"cjalr",   "+b,m",	0x48e00000, 0xffff003f,	0,			0,		I1	},
+{"cscr",    "+w,m(+b)",	0x49200000, 0xffe0003f,	0,			0,		I1	},
+{"clcr",    "+w,m(+b)",	0x49400000, 0xffe0003f,	0,			0,		I1	},
+{"clb",     "t,+o(+b)",  0x4a000000, 0xffe00000,0,			0,		I1	},
+{"clh",     "t,+o(+b)",  0x4a200000, 0xffe00000,	0,			0,		I1	},
+{"clw",     "t,+o(+b)",  0x4a400000, 0xffe00000,	0,			0,		I1	},
+{"cld",     "t,+o(+b)",  0x4a600000, 0xffe00000,	0,			0,		I1	},
+{"clbr",    "t,m(+b)",   0x4a800000, 0xffe0003f,	0,			0,		I1	},
+{"clhr",    "t,m(+b)",   0x4aa00000, 0xffe0003f,	0,			0,		I1	},
+{"clwr",    "t,m(+b)",   0x4ac00000, 0xffe0003f,	0,			0,		I1	},
+{"cldr",    "t,m(+b)",   0x4ae00000, 0xffe0003f,	0,			0,		I1	},
+{"csb",     "t,+o(+b)",  0x4b000000, 0xffe00000,	0,			0,		I1	},
+{"csh",     "t,+o(+b)",  0x4b200000, 0xffe00000,	0,			0,		I1	},
+{"csw",     "t,+o(+b)",  0x4b400000, 0xffe00000,	0,			0,		I1	},
+{"csd",     "t,+o(+b)",  0x4b600000, 0xffe00000,	0,			0,		I1	},
+{"csbr",    "t,m(+b)",   0x4b800000, 0xffe0003f,	0,			0,		I1	},
+{"cshr",    "t,m(+b)",   0x4ba00000, 0xffe0003f,	0,			0,		I1	},
+{"cswr",    "t,m(+b)",   0x4bc00000, 0xffe0003f,	0,			0,		I1	},
+{"csdr",    "t,m(+b)",   0x4be00000, 0xffe0003f,	0,			0,		I1	},
+{"cjr",     "m(+b)",	0x49000000, 0xffff003f,	0,			0,		I1	},
+{"cjalr",   "m(+b)",	0x48e00000, 0xffff003f,	0,			0,		I1	},
 {"csealcode","+w,+b",   0x48200000, 0xffe007ff,	0,			0,		I1	},
 {"csealdata","+w,+b,+v",0x48400000, 0xffe0003f,	0,			0,		I1	},
 {"cunseal", "+w,+b,+v", 0x48600000, 0xffe0003f,	0,			0,		I1	},



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201207170926.q6H9QKoQ039917>