File: b.s

package info (click to toggle)
binutils-avr 2.26.20160125+Atmel3.6.2-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, sid
  • size: 365,552 kB
  • sloc: ansic: 2,480,046; asm: 892,807; exp: 188,218; cpp: 133,829; makefile: 63,886; sh: 32,212; yacc: 26,783; lisp: 16,709; xml: 7,490; perl: 6,449; python: 4,555; ada: 4,318; pascal: 3,174; lex: 2,250; cs: 879; sed: 334; f90: 298; awk: 168; objc: 134; java: 73; fortran: 43
file content (30 lines) | stat: -rw-r--r-- 485 bytes parent folder | download | duplicates (28)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/*
 * test relax
 * b <-> b! : jump range must be in 8 bit, only 32b -> 16b
	
 * Author: ligang
 */

.macro tran insn32, insn16
/* This block transform 32b instruction to 16b. */
.align 4

  \insn32               #32b -> 16b
  \insn16

  \insn32               #32b -> 16b
  \insn32               #32b -> 16b

  \insn16      
  \insn32               #32b -> 16b

  \insn32               #No transform
  add r18, r20, r24

.endm

L1:
	
  tran "b L1", "b! L1"
  #tran "b 0x8", "b! 0x8"