From 68a581b811fb128d81f3b7e5504465edfcd632d4 Mon Sep 17 00:00:00 2001 From: Stephane Carrez Date: Thu, 11 Jan 2001 19:48:41 +0000 Subject: Dwarf2 test for 68HC11/68HC12 gas --- gas/testsuite/ChangeLog | 7 + gas/testsuite/gas/m68hc11/all.exp | 3 + gas/testsuite/gas/m68hc11/insns-dwarf2.d | 111 +++++++++++++++ gas/testsuite/gas/m68hc11/lbranch-dwarf2.d | 90 ++++++++++++ gas/testsuite/gas/m68hc11/opers12-dwarf2.d | 216 +++++++++++++++++++++++++++++ 5 files changed, 427 insertions(+) create mode 100644 gas/testsuite/gas/m68hc11/insns-dwarf2.d create mode 100644 gas/testsuite/gas/m68hc11/lbranch-dwarf2.d create mode 100644 gas/testsuite/gas/m68hc11/opers12-dwarf2.d diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index cfe580d..ba4c11c 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2001-01-11 Stephane Carrez + + * gas/m68hc11/all.exp: Add new tests for dwarf2. + * gas/m68hc11/lbranch-dwarf2.d: New file, test for dwarf2. + * gas/m68hc11/opers12-dwarf2.d: Likewise. + * gas/m68hc11/insns-dwarf2.d: Likewise. + 2001-01-11 Nick Clifton * gas/arm/adrl.s: Add global label 'foo'. diff --git a/gas/testsuite/gas/m68hc11/all.exp b/gas/testsuite/gas/m68hc11/all.exp index 15be4e3..2c6c292 100644 --- a/gas/testsuite/gas/m68hc11/all.exp +++ b/gas/testsuite/gas/m68hc11/all.exp @@ -13,6 +13,9 @@ if ![istarget "m68hc11-*-*"] then { run_dump_test insns run_dump_test lbranch run_dump_test all_insns +run_dump_test insns-dwarf2 +run_dump_test lbranch-dwarf2 # Some 68HC12 tests run_dump_test opers12 +run_dump_test opers12-dwarf2 \ No newline at end of file diff --git a/gas/testsuite/gas/m68hc11/insns-dwarf2.d b/gas/testsuite/gas/m68hc11/insns-dwarf2.d new file mode 100644 index 0000000..419d69b --- /dev/null +++ b/gas/testsuite/gas/m68hc11/insns-dwarf2.d @@ -0,0 +1,111 @@ +#objdump: -S +#as: -m68hc11 -gdwarf2 +#name: Dwarf2 test on insns.s +#source: insns.s + +# Test handling of basic instructions. + +.*: +file format elf32\-m68hc11 + +Disassembly of section .text: + +0+0 <_start>: + .globl _start + .sect .text + +_start: + lds #stack\+1024 + 0: 8e 04 00 lds #400 + ldx #1 + 3: ce 00 01 ldx #1 <_start\+0x1> + +00000006 : +Loop: + jsr test + 6: bd 00 10 jsr 10 + dex + 9: 09 dex + bne Loop + a: 26 fa bne 6 + +0000000c : + c: cd 03 .byte 0xcd, 0x03 +Stop: + + .byte 0xcd + .byte 3 + bra _start + e: 20 f0 bra 0 <_start> + +00000010 : + +test: + ldd #2 + 10: cc 00 02 ldd #2 <_start\+0x2> + jsr test2 + 13: bd 00 17 jsr 17 + rts + 16: 39 rts + +00000017 : + +B_low = 12 +A_low = 44 +D_low = 50 +value = 23 + + .globl test2 +test2: + ldx value,y + 17: cd ee 17 ldx 23,y + std value,x + 1a: ed 17 std 23,x + ldd ,x + 1c: ec 00 ldd 0,x + sty ,y + 1e: 18 ef 00 sty 0,y + stx ,y + 21: cd ef 00 stx 0,y + brclr 6,x,#4,test2 + 24: 1f 06 04 ef brclr 6,x #\$04 17 + brclr 12,x #8 test2 + 28: 1f 0c 08 eb brclr 12,x #\$08 17 + ldd \*ZD1 + 2c: dc 00 ldd \*0 <_start> + ldx \*ZD1\+2 + 2e: de 02 ldx \*2 <_start\+0x2> + clr \*ZD2 + 30: 7f 00 00 clr 0 <_start> + clr \*ZD2\+1 + 33: 7f 00 01 clr 1 <_start\+0x1> + bne .-4 + 36: 26 fc bne 34 + beq .\+2 + 38: 27 02 beq 3c + bclr \*ZD1\+1, #32 + 3a: 15 01 20 bclr \*1 <_start\+0x1> #\$20 + brclr \*ZD2\+2, #40, test2 + 3d: 13 02 28 d6 brclr \*2 <_start\+0x2> #\$28 17 + ldy #24\+_start-44 + 41: 18 ce ff ec ldy #ffec + ldd B_low,y + 45: 18 ec 0c ldd 12,y + addd A_low,y + 48: 18 e3 2c addd 44,y + addd D_low,y + 4b: 18 e3 32 addd 50,y + subd A_low + 4e: b3 00 2c subd 2c + subd #A_low + 51: 83 00 2c subd #2c + jmp Stop + 54: 7e 00 0c jmp c + +0+057 : +L1: + anda #%lo\(test2\) + 57: 84 17 anda #23 + andb #%hi\(test2\) + 59: c4 00 andb #0 + rts + 5b: 39 rts diff --git a/gas/testsuite/gas/m68hc11/lbranch-dwarf2.d b/gas/testsuite/gas/m68hc11/lbranch-dwarf2.d new file mode 100644 index 0000000..1f896b5 --- /dev/null +++ b/gas/testsuite/gas/m68hc11/lbranch-dwarf2.d @@ -0,0 +1,90 @@ +#objdump: -S +#as: -m68hc11 -gdwarf2 +#name: Dwarf2 test on lbranch.s +#source: lbranch.s + +# Test handling of basic instructions. + +.*: +file format elf32\-m68hc11 + +Disassembly of section .text: + +0+0 <_rcall>: + .globl _rcall + .globl _start +_start: +_rcall: + ldaa \#0x10 ;86 10 + 0: 86 10 ldaa \#16 + jbra Lend ; Must be switched to a jmp + 2: 7e 01 0b jmp 10b + jbsr toto ; \-> to a jsr + 5: bd 01 1b jsr 11b + jbne toto ; \-> to a beq\+jmp + 8: 27 03 beq d <_rcall\+0xd> + a: 7e 01 1b jmp 11b + jbeq toto ; -> to a bne\+jmp + d: 26 03 bne 12 <_rcall\+0x12> + f: 7e 01 1b jmp 11b + jbcs toto ; -> to a bcc\+jmp + 12: 24 03 bcc 17 <_rcall\+0x17> + 14: 7e 01 1b jmp 11b + jbcc toto ; -> to a bcs\+jmp + 17: 25 03 bcs 1c <_rcall\+0x1c> + 19: 7e 01 1b jmp 11b + xgdx + 1c: 8f xgdx + xgdx + 1d: 8f xgdx + beq bidule ; -> to a bne\+jmp + 1e: 26 03 bne 23 <_rcall\+0x23> + 20: 7e 01 80 jmp 180 + bcs bidule ; -> to a bcc\+jmp + 23: 24 03 bcc 28 <_rcall\+0x28> + 25: 7e 01 80 jmp 180 + bcc bidule ; -> to a bcs\+jmp + 28: 25 03 bcs 2d <_rcall\+0x2d> + 2a: 7e 01 80 jmp 180 + xgdx + 2d: 8f xgdx + jbra 200 + 2e: 7e 00 c8 jmp c8 <_rcall\+0xc8> + jbsr 1923 + 31: bd 07 83 jsr 783 + bne Lend ; -> to a beq\+jmp + 34: 27 03 beq 39 <_rcall\+0x39> + 36: 7e 01 0b jmp 10b + jbsr toto + 39: bd 01 1b jsr 11b + jbeq toto + 3c: 26 03 bne 41 <_rcall\+0x41> + 3e: 7e 01 1b jmp 11b + ... + .skip 200 + ldaa \*dir ;96 33 + 109: 96 00 ldaa \*0 <_rcall> + +0000010b : +Lend: + bhi external_op + 10b: 23 03 bls 110 + 10d: 7e 00 00 jmp 0 <_rcall> + bls external_op + 110: 22 03 bhi 115 + 112: 7e 00 00 jmp 0 <_rcall> + bsr out + 115: bd 00 00 jsr 0 <_rcall> + ldx #12 + 118: ce 00 0c ldx #c <_rcall\+0xc> + +0000011b : +toto: + rts + 11b: 39 rts + ... + +00000180 : + .skip 100 +bidule: + rts + 180: 39 rts diff --git a/gas/testsuite/gas/m68hc11/opers12-dwarf2.d b/gas/testsuite/gas/m68hc11/opers12-dwarf2.d new file mode 100644 index 0000000..a9ecb8a --- /dev/null +++ b/gas/testsuite/gas/m68hc11/opers12-dwarf2.d @@ -0,0 +1,216 @@ +#objdump: -S +#as: -m68hc12 -gdwarf2 +#name: Dwarf2 test on opers12.s +#source: opers12.s + +.*: +file format elf32\-m68hc12 + +Disassembly of section .text: + +0+0 : + sect .text + globl start + +start: + anda \[12,x\] ; Indexed indirect + 0: a4 e3 00 0c anda \[12,X\] + ldaa #10 + 4: 86 0a ldaa #10 + ldx L1 + 6: fe 00 09 ldx 9 + +00000009 : +L1: ldy ,x + 9: ed 00 ldy 0,X + addd 1,y ; Offset from register + b: e3 41 addd 1,Y + subd \-1,y + d: a3 5f subd \-1,Y + eora 15,y + f: a8 4f eora 15,Y + eora \-16,y + 11: a8 50 eora \-16,Y + eorb 16,y + 13: e8 e8 10 eorb 16,Y + eorb \-17,y + 16: e8 e9 ef eorb \-17,Y + oraa 128,sp + 19: aa f0 80 oraa 128,SP + orab \-128,sp + 1c: ea f1 80 orab \-128,SP + orab 255,x + 1f: ea e0 ff orab 255,X + orab \-256,x + 22: ea e1 00 orab \-256,X + anda 256,x + 25: a4 e2 01 00 anda 256,X + andb \-257,x + 29: e4 e2 fe ff andb \-257,X + anda \[12,x\] ; Indexed indirect \(16\-bit offset\) + 2d: a4 e3 00 0c anda \[12,X\] + ldaa \[257,y\] + 31: a6 eb 01 01 ldaa \[257,Y\] + ldab \[32767,sp\] + 35: e6 f3 7f ff ldab \[32767,SP\] + ldd \[32768,pc\] + 39: ec fb 80 00 ldd \[32768,PC\] + ldd L1,pc + 3d: ec f8 09 ldd 9,PC + std a,x ; Two\-reg index + 40: 6c e4 std A,X + ldx b,x + 42: ee e5 ldx B,X + stx d,y + 44: 6e ee stx D,Y + addd 1,\+x ; Pre\-Auto inc + 46: e3 20 addd 1,\+X + addd 2,\+x + 48: e3 21 addd 2,\+X + addd 8,\+x + 4a: e3 27 addd 8,\+X + addd 1,sp\+ ; Post\-Auto inc + 4c: e3 b0 addd 1,SP\+ + addd 2,sp\+ + 4e: e3 b1 addd 2,SP\+ + addd 8,sp\+ + 50: e3 b7 addd 8,SP\+ + subd 1,\-y ; Pre\-Auto dec + 52: a3 6f subd 1,\-Y + subd 2,\-y + 54: a3 6e subd 2,\-Y + subd 8,\-y + 56: a3 68 subd 8,\-Y + addd 1,y\- ; Post\-Auto dec + 58: e3 7f addd 1,Y\- + addd 2,y\- + 5a: e3 7e addd 2,Y\- + addd 8,y\- + 5c: e3 78 addd 8,Y\- + std \[d,x\] ; Indexed indirect with two reg index + 5e: 6c e7 std \[D,X\] + std \[d,y\] + 60: 6c ef std \[D,Y\] + std \[d,sp\] + 62: 6c f7 std \[D,SP\] + std \[d,pc\] + 64: 6c ff std \[D,PC\] + beq L1 + 66: 27 a1 beq 9 + lbeq start + 68: 18 27 ff 94 lbeq 0 + lbcc L2 + 6c: 18 24 00 4c lbcc bc +;; +;; Move insn with various operands +;; + movb start, 1,x + 70: 18 09 01 00 movb 0 , 1,X + 74: 00 + movw 1,x, start + 75: 18 05 01 00 movw 1,X, 0 + 79: 00 + movb start, 1,\+x + 7a: 18 09 20 00 movb 0 , 1,\+X + 7e: 00 + movb start, 1,\-x + 7f: 18 09 2f 00 movb 0 , 1,\-X + 83: 00 + movb #23, 1,\-sp + 84: 18 08 af 17 movb #23, 1,\-SP + movb L1, L2 + 88: 18 0c 00 09 movb 9 , bc + 8c: 00 bc + movb L1, a,x + 8e: 18 09 e4 00 movb 9 , A,X + 92: 09 + movw L1, b,x + 93: 18 01 e5 00 movw 9 , B,X + 97: 09 + movw L1, d,x + 98: 18 01 e6 00 movw 9 , D,X + 9c: 09 + movw d,x, a,x + 9d: 18 02 e6 e4 movw D,X, A,X + movw b,sp, d,pc + a1: 18 02 f5 fe movw B,SP, D,PC + movw b,sp, L1 + a5: 18 05 f5 00 movw B,SP, 9 + a9: 09 + movw b,sp, 1,x + aa: 18 02 f5 01 movw B,SP, 1,X + movw d,x, a,y + ae: 18 02 e6 ec movw D,X, A,Y + trap #0x30 + b2: 18 30 trap #48 + trap #0x39 + b4: 18 39 trap #57 + trap #0x40 + b6: 18 40 trap #64 + trap #0x80 + b8: 18 80 trap #128 + trap #255 + ba: 18 ff trap #255 + +000000bc : +L2: + movw 1,x,2,x + bc: 18 02 01 02 movw 1,X, 2,X + movw \-1,\-1 + c0: 18 04 ff ff movw ffff , ffff + c4: ff ff + movw \-1,1,x + c6: 18 01 01 ff movw ffff , 1,X + ca: ff + movw #\-1,1,x + cb: 18 00 01 ff movw #ffff , 1,X + cf: ff + movw 3,8 + d0: 18 04 00 03 movw 3 , 8 + d4: 00 08 + movw #3,3 + d6: 18 03 00 03 movw #3 , 3 + da: 00 03 + movw #3,1,x + dc: 18 00 01 00 movw #3 , 1,X + e0: 03 + movw 3,1,x + e1: 18 01 01 00 movw 3 , 1,X + e5: 03 + movw 3,\+2,x + e6: 18 01 02 00 movw 3 , 2,X + ea: 03 + movw 4,\-2,x + eb: 18 01 1e 00 movw 4 , \-2,X + ef: 04 + rts + f0: 3d rts + +000000f1 : +;; +;; Post\-index byte with relocation +;; +post_indexed_pb: +t1: + leas abort,x + f1: 1b e2 00 00 leas 0,X + +000000f5 : +t2: + leax t2\-t1,y + f5: 1a 44 leax 4,Y + leax toto,x + f7: 1a e2 00 64 leax 100,X + leas toto\+titi,sp + fb: 1b f2 00 6e leas 110,SP + leay titi,x + ff: 19 e2 00 0a leay 10,X + leas bb,y + 103: 1b ea 28 00 leas 10240,Y + leas min5b,pc + 107: 1b fa 00 ff leas 255,PC + leas max5b,pc + 10b: 1b fa 00 00 leas 0,PC + leas min9b,pc + 10f: 1b fa 00 ff leas 255,PC + leas max9b,pc + 113: 1b fa 00 00 leas 0,PC -- cgit v1.1