@ RUN: llvm-mc -triple=armv7-apple-darwin -show-encoding < %s | FileCheck %s @------------------------------------------------------------------------------ @ Branch targets destined for ARM mode must == 0 (mod 4), otherwise (mod 2). @------------------------------------------------------------------------------ b #4 bl #4 beq #4 blx #2 @ CHECK: b #4 @ encoding: [0x01,0x00,0x00,0xea] @ CHECK: bl #4 @ encoding: [0x01,0x00,0x00,0xeb] @ CHECK: beq #4 @ encoding: [0x01,0x00,0x00,0x0a] @ CHECK: blx #2 @ encoding: [0x00,0x00,0x00,0xfb] @------------------------------------------------------------------------------ @ Leading '$' on branch targets must not be dropped if part of symbol names @------------------------------------------------------------------------------ .global $foo .global $4 b $foo bl $foo beq $foo blx $foo b $foo + 4 bl $4 beq $4 + 4 @ CHECK: b ($foo) @ encoding: [A,A,A,0xea] @ CHECK: bl ($foo) @ encoding: [A,A,A,0xeb] @ CHECK: beq ($foo) @ encoding: [A,A,A,0x0a] @ CHECK: blx ($foo) @ encoding: [A,A,A,0xfa] @ CHECK: b #($foo)+4 @ encoding: [A,A,A,0xea] @ CHECK: bl ($4) @ encoding: [A,A,A,0xeb] @ CHECK: beq #($4)+4 @ encoding: [A,A,A,0x0a] @------------------------------------------------------------------------------ @ Leading '$' should be allowed to introduce an expression @------------------------------------------------------------------------------ .global bar b $ 4 bl $ bar + 4 blx $ bar @ CHECK: b #4 @ encoding: [0x01,0x00,0x00,0xea] @ CHECK: bl #bar+4 @ encoding: [A,A,A,0xeb] @ CHECK: blx bar @ encoding: [A,A,A,0xfa]