This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Committed: fix size of CRIS special register 2
- From: Hans-Peter Nilsson <hans-peter dot nilsson at axis dot com>
- To: binutils at sourceware dot org, gdb-patches at sourceware dot org
- Date: Sat, 3 Jan 2009 18:52:51 +0100
- Subject: Committed: fix size of CRIS special register 2
Had I used the name (PID), I would have trigged that this'd to
be the wrong size. For reference,
<http://www.axis.com/files/manuals/etrax_fs_des_ref-070821.pdf>,
table 2.2.
Committed.
cpu:
* cris.cpu (cris-implemented-writable-specregs-v32): Correct size
of number 2, PID.
src/sim:
* cris/semcrisv32f-switch.c: Regenerate.
src/sim/testsuite:
* sim/cris/asm/pid1.ms: New test.
Index: cris.cpu
===================================================================
RCS file: /cvs/src/src/cpu/cris.cpu,v
retrieving revision 1.7
diff -p -u -r1.7 cris.cpu
--- cris.cpu 22 Oct 2007 16:04:43 -0000 1.7
+++ cris.cpu 3 Jan 2009 17:40:02 -0000
@@ -439,7 +439,7 @@
(define-pmacro (cris-implemented-writable-specregs-v32)
"Special writable registers in v32 and their sizes"
- ((QI 2) (QI 3)
+ ((SI 2) (QI 3)
(SI 5) (SI 6) (SI 7) (SI 9)
(SI 10) (SI 11) (SI 12) (SI 13) (SI 14) (SI 15))
)
Index: sim/cris/asm/pid1.ms
===================================================================
RCS file: sim/cris/asm/pid1.ms
diff -N sim/cris/asm/pid1.ms
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ sim/cris/asm/pid1.ms 3 Jan 2009 17:37:10 -0000
@@ -0,0 +1,45 @@
+# mach: crisv32
+# output: 0\ncafebabe\nbaddbeef\necc0d00d\nc0ceface\npass\n
+
+; Check that the PID register has the right size, 32 bits: check
+; immediate, to/from register and memory. (This has to be done in
+; supervisor mode, so don't set u.)
+
+ .include "testutils.inc"
+ .macro dumpid
+ move $pid,$r3
+ dumpr3
+ .endm
+
+ start
+ moveq -1,$r3
+ move 0,$pid
+ dumpid ; 0
+ move 0xcafebabe,$pid
+ dumpid ; cafebabe
+ move.d 0xbaddbeef,$r2
+ move $r2,$pid
+ dumpid ; baddbeef
+ move.d 0f,$r0
+ move [$r0+],$pid
+ cmp.d 0f+4,$r0
+ beq 1f
+ nop
+dofail:
+ fail
+0:
+ .dword 0xecc0d00d
+0:
+ .dword 0xc0ceface
+1:
+ dumpid ; ecc0d00d
+ move.d 0b,$r1
+ move 0xc0ceface,$pid
+ move $pid,[$r1+]
+ cmp.d 0b+4,$r1
+ bne dofail
+ subq 4,$r1
+ nop
+ move.d [$r1],$r3
+ dumpr3 ; c0ceface
+ pass