This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
[patch] xstormy16 gas fixes.
- From: matthew green <mrg at redhat dot com>
- To: binutils at sources dot redhat dot com
- Date: Fri, 11 Jan 2002 00:29:13 +1100
- Subject: [patch] xstormy16 gas fixes.
- Organisation: Red Hat, Asia-Pacific.
hi folks.
this patch adds `holdx' support to the xstormy16 assembler, and
also corrects several movf forms that (a) disallow correct input
and (b) allow incorrect input. (it also fixes jmp, call & icall
testsuite generation.)
OK to commit?
.mrg.
(ps: geoff, i notice there is is no entry for xstormy16 in
binutils/MAINTAINERS.)
[cgen/ChangeLog]
* cpu/xstormy16.cpu (gr-Rbj-names): Rename this ...
(gr-Rb-names): ... to this.
(h-Rb): New hardware peice.
(h-Rbj): Use gr-Rb-names.
(Rb): Use h-Rb.
(holdx): New instruction.
[gas/testsuite/ChangeLog]
* gas/xstormy16/allinsn.sh (movf, jmp, call, icall): Update.
* gas/xstormy16/allinsn.d: Regenerate.
* gas/xstormy16/allinsn.s: Regenerate.
[opcodes/ChangeLog]
* xstormy16-asm.c: Regenerate.
* xstormy16-desc.c: Likewise.
* xstormy16-desc.h: Likewise.
* xstormy16-dis.c: Likewise.
* xstormy16-opc.c: Likewise.
* xstormy16-opc.h: Likewise.
Index: cgen/cpu/xstormy16.cpu
===================================================================
RCS file: /cvs/src/src/cgen/cpu/xstormy16.cpu,v
retrieving revision 1.1
diff -p -r1.1 xstormy16.cpu
*** xstormy16.cpu 2001/12/07 22:51:28 1.1
--- xstormy16.cpu 2002/01/10 12:19:52
***************
*** 61,69 ****
(psw 14) (sp 15)))
(define-keyword
! (name gr-Rbj-names)
(print-name h-Rbj)
! (values (r8 0) (r9 1)))
(define-hardware
(name h-gr)
--- 61,71 ----
(psw 14) (sp 15)))
(define-keyword
! (name gr-Rb-names)
(print-name h-Rbj)
! (values (r8 0) (r9 1) (r10 2) (r11 3)
! (r12 4) (r13 5) (r14 6) (r15 7)
! (psw 6) (sp 7)))
(define-hardware
(name h-gr)
***************
*** 75,85 ****
)
(define-hardware
(name h-Rbj)
(comment "Rbj registers")
(attrs VIRTUAL)
(type register SI(2))
! (indices extern-keyword gr-Rbj-names)
(get (index) (reg h-gr (add index 8)))
(set (index newval) (set (reg h-gr (add index 8)) newval))
)
--- 77,97 ----
)
(define-hardware
+ (name h-Rb)
+ (comment "Rb registers")
+ (attrs VIRTUAL)
+ (type register SI(8))
+ (indices extern-keyword gr-Rb-names)
+ (get (index) (reg h-gr (add index 8)))
+ (set (index newval) (set (reg h-gr (add index 8)) newval))
+ )
+
+ (define-hardware
(name h-Rbj)
(comment "Rbj registers")
(attrs VIRTUAL)
(type register SI(2))
! (indices extern-keyword gr-Rb-names)
(get (index) (reg h-gr (add index 8)))
(set (index newval) (set (reg h-gr (add index 8)) newval))
)
***************
*** 153,159 ****
(dnop Rs "general register source" () h-gr f-Rs)
(dnf f-Rb "base register" () 17 3)
! (dnop Rb "base register" () h-gr f-Rb)
(dnf f-Rbj "base register for jump" () 11 1)
(dnop Rbj "base register for jump" () h-Rbj f-Rbj)
--- 165,171 ----
(dnop Rs "general register source" () h-gr f-Rs)
(dnf f-Rb "base register" () 17 3)
! (dnop Rb "base register" () h-Rb f-Rb)
(dnf f-Rbj "base register for jump" () 11 1)
(dnop Rbj "base register for jump" () h-Rbj f-Rbj)
***************
*** 1834,1839 ****
--- 1846,1853 ----
(dni halt "halt" () ("halt") (+ (f-op #x0008)) (c-call VOID "do_halt") ())
(dni hold "hold" () ("hold") (+ (f-op #x000A)) (c-call VOID "do_hold") ())
+
+ (dni holdx "holdx" () ("holdx") (+ (f-op #x000B)) (c-call VOID "do_holdx") ())
(dni brk "brk" () ("brk") (+ (f-op #x0005)) (c-call VOID "do_brk") ())
Index: gas/testsuite/gas/xstormy16/allinsn.sh
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/xstormy16/allinsn.sh,v
retrieving revision 1.1
diff -p -r1.1 allinsn.sh
*** allinsn.sh 2001/12/08 03:45:57 1.1
--- allinsn.sh 2002/01/10 12:19:57
*************** movfgripredecgr:
*** 407,475 ****
.text
.global movfgrgrii
movfgrgrii:
! movf.b r0,(r0,r0,0)
! movf.w r7,(r7,r15,-1)
! movf.w r4,(r4,r8,-2048)
! movf.b r3,(r3,r7,2047)
! movf.w r1,(r1,r1,1)
! movf.b r7,(r7,r0,1473)
! movf.w r2,(r0,r9,-1522)
! movf.w r2,(r5,r1,480)
.text
.global movfgrgriipostinc
movfgrgriipostinc:
! movf.b r0,(r0,r0++,0)
! movf.w r7,(r7,r15++,-1)
! movf.w r4,(r4,r8++,-2048)
! movf.b r3,(r3,r7++,2047)
! movf.w r1,(r1,r1++,1)
! movf.b r1,(r0,r2++,1398)
! movf.w r4,(r0,r9++,-778)
! movf.w r1,(r5,r14++,1564)
.text
.global movfgrgriipredec
movfgrgriipredec:
! movf.b r0,(r0,--r0,0)
! movf.w r7,(r7,--r15,-1)
! movf.w r4,(r4,--r8,-2048)
! movf.b r3,(r3,--r7,2047)
! movf.w r1,(r1,--r1,1)
! movf.b r6,(r0,--r7,254)
! movf.w r5,(r4,--r12,1673)
! movf.b r0,(r0,--r10,-38)
.text
.global movfgriigr
movfgriigr:
! movf.b (r0,r0,0),r0
! movf.w (r7,r15,-1),r7
! movf.w (r4,r8,-2048),r4
! movf.b (r3,r7,2047),r3
! movf.w (r1,r1,1),r1
! movf.w (r7,r2,-1636),r3
! movf.w (r6,r12,1626),r1
! movf.b (r3,r14,1540),r0
.text
.global movfgriipostincgr
movfgriipostincgr:
! movf.b (r0,r0++,0),r0
! movf.w (r7,r15++,-1),r7
! movf.w (r4,r8++,-2048),r4
! movf.b (r3,r7++,2047),r3
! movf.w (r1,r1++,1),r1
! movf.b (r7,r13++,466),r3
! movf.b (r3,r11++,250),r4
! movf.b (r2,r10++,-1480),r7
.text
.global movfgriipredecgr
movfgriipredecgr:
! movf.b (r0,--r0,0),r0
! movf.w (r7,--r15,-1),r7
! movf.w (r4,--r8,-2048),r4
! movf.b (r3,--r7,2047),r3
! movf.w (r1,--r1,1),r1
! movf.b (r5,--r10,-608),r0
! movf.b (r1,--r11,831),r7
! movf.w (r7,--r15,-2036),r6
.text
.global maskgrgr
maskgrgr:
--- 407,475 ----
.text
.global movfgrgrii
movfgrgrii:
! movf.b r0,(r8,r0,0)
! movf.w r7,(r15,r15,-1)
! movf.w r4,(r12,r8,-2048)
! movf.b r3,(r11,r7,2047)
! movf.w r1,(r9,r1,1)
! movf.b r7,(r15,r0,1473)
! movf.w r2,(r8,r9,-1522)
! movf.w r2,(r13,r1,480)
.text
.global movfgrgriipostinc
movfgrgriipostinc:
! movf.b r0,(r8,r0++,0)
! movf.w r7,(r15,r15++,-1)
! movf.w r4,(r12,r8++,-2048)
! movf.b r3,(r11,r7++,2047)
! movf.w r1,(r9,r1++,1)
! movf.b r1,(r8,r2++,1398)
! movf.w r4,(r8,r9++,-778)
! movf.w r1,(r13,r14++,1564)
.text
.global movfgrgriipredec
movfgrgriipredec:
! movf.b r0,(r8,--r0,0)
! movf.w r7,(r15,--r15,-1)
! movf.w r4,(r12,--r8,-2048)
! movf.b r3,(r11,--r7,2047)
! movf.w r1,(r9,--r1,1)
! movf.b r6,(r8,--r7,254)
! movf.w r5,(r12,--r12,1673)
! movf.b r0,(r8,--r10,-38)
.text
.global movfgriigr
movfgriigr:
! movf.b (r8,r0,0),r0
! movf.w (r15,r15,-1),r7
! movf.w (r12,r8,-2048),r4
! movf.b (r11,r7,2047),r3
! movf.w (r9,r1,1),r1
! movf.w (r15,r2,-1636),r3
! movf.w (r14,r12,1626),r1
! movf.b (r11,r14,1540),r0
.text
.global movfgriipostincgr
movfgriipostincgr:
! movf.b (r8,r0++,0),r0
! movf.w (r15,r15++,-1),r7
! movf.w (r12,r8++,-2048),r4
! movf.b (r11,r7++,2047),r3
! movf.w (r9,r1++,1),r1
! movf.b (r15,r13++,466),r3
! movf.b (r11,r11++,250),r4
! movf.b (r10,r10++,-1480),r7
.text
.global movfgriipredecgr
movfgriipredecgr:
! movf.b (r8,--r0,0),r0
! movf.w (r15,--r15,-1),r7
! movf.w (r12,--r8,-2048),r4
! movf.b (r11,--r7,2047),r3
! movf.w (r9,--r1,1),r1
! movf.b (r13,--r10,-608),r0
! movf.b (r9,--r11,831),r7
! movf.w (r15,--r15,-2036),r6
.text
.global maskgrgr
maskgrgr:
*************** bgr:
*** 1111,1124 ****
.text
.global jmp
jmp:
! jmp r0,r0
! jmp r1,r15
! jmp r1,r8
! jmp r0,r7
! jmp r1,r1
! jmp r1,r7
! jmp r1,r5
! jmp r0,r12
.text
.global jmpf
jmpf:
--- 1111,1124 ----
.text
.global jmp
jmp:
! jmp r8,r0
! jmp r9,r15
! jmp r9,r8
! jmp r8,r7
! jmp r9,r1
! jmp r9,r7
! jmp r9,r5
! jmp r8,r12
.text
.global jmpf
jmpf:
*************** callrgr:
*** 1144,1157 ****
.text
.global callgr
callgr:
! call r0,r0
! call r1,r15
! call r1,r8
! call r0,r7
! call r1,r1
! call r1,r6
! call r1,r14
! call r0,r12
.text
.global callfimm
callfimm:
--- 1144,1157 ----
.text
.global callgr
callgr:
! call r8,r0
! call r9,r15
! call r9,r8
! call r8,r7
! call r9,r1
! call r9,r6
! call r9,r14
! call r8,r12
.text
.global callfimm
callfimm:
*************** icallrgr:
*** 1177,1190 ****
.text
.global icallgr
icallgr:
! icall r0,r0
! icall r1,r15
! icall r1,r8
! icall r0,r7
! icall r1,r1
! icall r1,r10
! icall r0,r15
! icall r0,r10
.text
.global icallfimm
icallfimm:
--- 1177,1190 ----
.text
.global icallgr
icallgr:
! icall r8,r0
! icall r9,r15
! icall r9,r8
! icall r8,r7
! icall r9,r1
! icall r9,r10
! icall r8,r15
! icall r8,r10
.text
.global icallfimm
icallfimm:
*************** halt:
*** 1225,1230 ****
--- 1225,1234 ----
.global hold
hold:
hold
+ .text
+ .global holdx
+ holdx:
+ holdx
.text
.global brk
brk: