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]

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


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