GNU binutils是GNU交叉工具链中的一个源码包

源代码在线查看: bwtest-err-1.s

软件大小: 15994 K
上传用户: lixuecheng
关键词: GNU binutils 源码
下载地址: 免注册下载 普通下载 VIP

相关代码

				; File bwtest-err-1.s								;  { dg-do assemble { target cris-*-* } }								; A variant of exbwtest.s.  This is an example of invalid use of the broken-				; dot-word function.  The nearest label occurs about 32 kbytes after the primary				; jump table so the secondary jump table can't be reached by word displace-				; ments and the broken words overflow.								;  main()				;  {				;    byte i;				;				;    for (i=0; i 				;      result[i] = funct(i);				;    }				;  }				;				;  Register use :  r1 - i				;                  r2 - result address								        .text					.syntax no_register_prefix				        .word   0				main:   move.d  stack,sp				        moveq   0,r1				        move.d  result,r2				for1:   cmpq    3,r1				        bgt     endfor1				        move.d  r1,r0				        jsr     funct				        move.w  r0,[r2+r1.w]				        ba      for1				        addq    1,r1				endfor1:				end:    ba      end				        nop												;  uword funct(i)				;    byte i;				;  {				;    switch (i) {				;      case 0 :  return 0x1111;				;      case 1 :  return 0x2222;				;      case 2 :  return 0x3333;				;      case 3 :  return 0x4444;				;    }				;  }				;				;  Parameters   :  r0 - i				;				;  Register use :  r1 - pjt address								funct:  push    r1				        move.d  pjt,r1				        adds.w  [r1+r0.w],pc				pjt:    .word   near1 - pjt				        .word   near2 - pjt				        .word   far1 - pjt				        .word   far2 - pjt								; Note that the line-number of the source-location of the error				; seems slightly off from the user perspective, but it's the				; best I could get without major changes in BW-handling.  Not				; sure it it's worth fixing.  May need adjustments if				; BW-handling changes.  Four errors from four .words are what's				; expected.								        .space  32760,0xFF; { dg-error "Adjusted signed \.word \(.*\) overflow.*" }								near1:  move.w  0x1111,r0				        ba      ret1				        nop								near2:  move.w  0x2222,r0				        ba      ret1				        nop								far1:   move.w  0x3333,r0				        ba      ret1				        nop								far2:   move.w  0x4444,r0				ret1:   pop     r1				        ret												result: .space  4 * 2   ; static uword result[4];								        .space  4				stack:							

相关资源