2013-03-11 Sebastian Huber <sebastian.huber@embedded-brains.de>

include/
	* opcode/nios2.h (OP_RDPRS): New define.
	(OP_MATCH_RDPRS): Likewise.

	opcodes/
	* nios2-opc.c (nios2_builtin_opcodes): Add entry for rdprs.

	gas/testsuite/
	* gas/nios2/nios2.exp: Run rdprs.
	* gas/nios2/rdprs.d: New file.
	* gas/nios2/rdprs.s: Likewise.
This commit is contained in:
Sandra Loosemore
2013-03-12 02:20:08 +00:00
parent 21fde85cfd
commit f5cb796a1e
8 changed files with 87 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2013-03-11 Sebastian Huber <sebastian.huber@embedded-brains.de>
* gas/nios2/nios2.exp: Run rdprs.
* gas/nios2/rdprs.d: New file.
* gas/nios2/rdprs.s: Likewise.
2013-03-11 Sebastian Huber <sebastian.huber@embedded-brains.de> 2013-03-11 Sebastian Huber <sebastian.huber@embedded-brains.de>
* gas/nios2/nios2.exp: Run registers. * gas/nios2/nios2.exp: Run registers.

View File

@ -53,6 +53,7 @@ if { [istarget nios2-*-*] } then {
run_dump_test "ret" run_dump_test "ret"
run_dump_test "rotate" run_dump_test "rotate"
run_dump_test "registers" run_dump_test "registers"
run_dump_test "rdprs"
run_dump_test "stw" run_dump_test "stw"
run_dump_test "sth" run_dump_test "sth"

View File

@ -0,0 +1,35 @@
#objdump: -dr --prefix-addresses --show-raw-insn
#name: NIOS2 rdprs
# Test the rdprs instruction
.*: +file format elf32-littlenios2
Disassembly of section .text:
0+0000 <[^>]*> 00000038 rdprs zero,zero,0
0+0004 <[^>]*> 00000078 rdprs zero,zero,1
0+0008 <[^>]*> 000000b8 rdprs zero,zero,2
0+000c <[^>]*> 00000138 rdprs zero,zero,4
0+0010 <[^>]*> 00000238 rdprs zero,zero,8
0+0014 <[^>]*> 00000438 rdprs zero,zero,16
0+0018 <[^>]*> 00000838 rdprs zero,zero,32
0+001c <[^>]*> 00001038 rdprs zero,zero,64
0+0020 <[^>]*> 00002038 rdprs zero,zero,128
0+0024 <[^>]*> 00004038 rdprs zero,zero,256
0+0028 <[^>]*> 00008038 rdprs zero,zero,512
0+002c <[^>]*> 00010038 rdprs zero,zero,1024
0+0030 <[^>]*> 00020038 rdprs zero,zero,2048
0+0034 <[^>]*> 00040038 rdprs zero,zero,4096
0+0038 <[^>]*> 00080038 rdprs zero,zero,8192
0+003c <[^>]*> 00100038 rdprs zero,zero,16384
0+0040 <[^>]*> 00200038 rdprs zero,zero,-32768
0+0044 <[^>]*> 00400038 rdprs at,zero,0
0+0048 <[^>]*> 00800038 rdprs r2,zero,0
0+004c <[^>]*> 01000038 rdprs r4,zero,0
0+0050 <[^>]*> 02000038 rdprs r8,zero,0
0+0054 <[^>]*> 04000038 rdprs r16,zero,0
0+0058 <[^>]*> 08000038 rdprs zero,at,0
0+005c <[^>]*> 10000038 rdprs zero,r2,0
0+0060 <[^>]*> 20000038 rdprs zero,r4,0
0+0064 <[^>]*> 40000038 rdprs zero,r8,0
0+0068 <[^>]*> 80000038 rdprs zero,r16,0

View File

@ -0,0 +1,32 @@
# Source file used to test the rdprs instruction
.set noat
foo:
rdprs zero, zero, 0
rdprs zero, zero, 1
rdprs zero, zero, 2
rdprs zero, zero, 4
rdprs zero, zero, 8
rdprs zero, zero, 16
rdprs zero, zero, 32
rdprs zero, zero, 64
rdprs zero, zero, 128
rdprs zero, zero, 256
rdprs zero, zero, 512
rdprs zero, zero, 1024
rdprs zero, zero, 2048
rdprs zero, zero, 4096
rdprs zero, zero, 8192
rdprs zero, zero, 16384
rdprs zero, zero, -32768
rdprs at, zero, 0
rdprs r2, zero, 0
rdprs r4, zero, 0
rdprs r8, zero, 0
rdprs r16, zero, 0
rdprs zero, at, 0
rdprs zero, r2, 0
rdprs zero, r4, 0
rdprs zero, r8, 0
rdprs zero, r16, 0

View File

@ -1,3 +1,8 @@
2013-03-11 Sebastian Huber <sebastian.huber@embedded-brains.de>
* opcode/nios2.h (OP_RDPRS): New define.
(OP_MATCH_RDPRS): Likewise.
2013-03-01 Cary Coutant <ccoutant@google.com> 2013-03-01 Cary Coutant <ccoutant@google.com>
* dwarf2.h (enum dwarf_sect): New enum type. * dwarf2.h (enum dwarf_sect): New enum type.

View File

@ -289,6 +289,7 @@ struct nios2_reg
#define OP_OPX 58 #define OP_OPX 58
#define OP_ORHI 52 #define OP_ORHI 52
#define OP_ORI 20 #define OP_ORI 20
#define OP_RDPRS 56
#define OP_STB 5 #define OP_STB 5
#define OP_STBIO 37 #define OP_STBIO 37
#define OP_STC 29 #define OP_STC 29
@ -386,6 +387,7 @@ struct nios2_reg
#define OP_MATCH_OPX OP_OPX #define OP_MATCH_OPX OP_OPX
#define OP_MATCH_ORHI OP_ORHI #define OP_MATCH_ORHI OP_ORHI
#define OP_MATCH_ORI OP_ORI #define OP_MATCH_ORI OP_ORI
#define OP_MATCH_RDPRS OP_RDPRS
#define OP_MATCH_STB OP_STB #define OP_MATCH_STB OP_STB
#define OP_MATCH_STBIO OP_STBIO #define OP_MATCH_STBIO OP_STBIO
#define OP_MATCH_STC OP_STC #define OP_MATCH_STC OP_STC

View File

@ -1,3 +1,7 @@
2013-03-11 Sebastian Huber <sebastian.huber@embedded-brains.de>
* nios2-opc.c (nios2_builtin_opcodes): Add entry for rdprs.
2013-03-11 Sebastian Huber <sebastian.huber@embedded-brains.de> 2013-03-11 Sebastian Huber <sebastian.huber@embedded-brains.de>
* nios2-opc.c (nios2_builtin_regs): Add sstatus alias for ba register. * nios2-opc.c (nios2_builtin_regs): Add sstatus alias for ba register.

View File

@ -345,6 +345,8 @@ const struct nios2_opcode nios2_builtin_opcodes[] =
OP_MATCH_ORI, OP_MASK_IOP, NIOS2_INSN_ORI, unsigned_immed16_overflow}, OP_MATCH_ORI, OP_MASK_IOP, NIOS2_INSN_ORI, unsigned_immed16_overflow},
{"rdctl", "d,c", "d,c,E", 2, {"rdctl", "d,c", "d,c,E", 2,
OP_MATCH_RDCTL, OP_MASK_RDCTL, 0, no_overflow}, OP_MATCH_RDCTL, OP_MASK_RDCTL, 0, no_overflow},
{"rdprs", "t,s,i", "t,s,i,E", 3,
OP_MATCH_RDPRS, OP_MASK_IOP, 0, unsigned_immed16_overflow},
{"ret", "", "E", 0, {"ret", "", "E", 0,
OP_MATCH_RET, OP_MASK, 0, no_overflow}, OP_MATCH_RET, OP_MASK, 0, no_overflow},
{"rol", "d,s,t", "d,s,t,E", 3, {"rol", "d,s,t", "d,s,t,E", 3,