This is the mail archive of the binutils@sources.redhat.com 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]

[patch] xstormy16 gas fixes.




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:


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