1*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -triple x86_64-apple-darwin10 %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker.macro GET var,re2g 4*9880d681SAndroid Build Coastguard Worker movl \var@GOTOFF(%ebx),\re2g 5*9880d681SAndroid Build Coastguard Worker.endm 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Worker.macro GET_DEFAULT var, re2g=%ebx, re3g=%ecx 8*9880d681SAndroid Build Coastguard Workermovl 2(\re2g, \re3g, 2), \var 9*9880d681SAndroid Build Coastguard Worker.endm 10*9880d681SAndroid Build Coastguard Worker 11*9880d681SAndroid Build Coastguard WorkerGET is_sse, %eax 12*9880d681SAndroid Build Coastguard Worker// CHECK: movl is_sse@GOTOFF(%ebx), %eax 13*9880d681SAndroid Build Coastguard Worker 14*9880d681SAndroid Build Coastguard WorkerGET_DEFAULT %ebx, , %edx 15*9880d681SAndroid Build Coastguard Worker// CHECK: movl 2(%ebx,%edx,2), %ebx 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard WorkerGET_DEFAULT %ebx, %edx 18*9880d681SAndroid Build Coastguard Worker// CHECK: movl 2(%edx,%ecx,2), %ebx 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Worker.macro bar 21*9880d681SAndroid Build Coastguard Worker .long $n 22*9880d681SAndroid Build Coastguard Worker.endm 23*9880d681SAndroid Build Coastguard Worker 24*9880d681SAndroid Build Coastguard Workerbar 1, 2, 3 25*9880d681SAndroid Build Coastguard Workerbar 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Worker// CHECK: .long 3 28*9880d681SAndroid Build Coastguard Worker// CHECK: .long 0 29*9880d681SAndroid Build Coastguard Worker 30*9880d681SAndroid Build Coastguard Worker 31*9880d681SAndroid Build Coastguard Worker.macro top 32*9880d681SAndroid Build Coastguard Worker middle _$0, $1 33*9880d681SAndroid Build Coastguard Worker.endm 34*9880d681SAndroid Build Coastguard Worker.macro middle 35*9880d681SAndroid Build Coastguard Worker $0: 36*9880d681SAndroid Build Coastguard Worker .if $n > 1 37*9880d681SAndroid Build Coastguard Worker bottom $1 38*9880d681SAndroid Build Coastguard Worker .endif 39*9880d681SAndroid Build Coastguard Worker.endm 40*9880d681SAndroid Build Coastguard Worker.macro bottom 41*9880d681SAndroid Build Coastguard Worker .set fred, $0 42*9880d681SAndroid Build Coastguard Worker.endm 43*9880d681SAndroid Build Coastguard Worker 44*9880d681SAndroid Build Coastguard Worker.text 45*9880d681SAndroid Build Coastguard Worker 46*9880d681SAndroid Build Coastguard Workertop foo 47*9880d681SAndroid Build Coastguard Workertop bar, 42 48*9880d681SAndroid Build Coastguard Worker 49*9880d681SAndroid Build Coastguard Worker// CHECK: _foo: 50*9880d681SAndroid Build Coastguard Worker// CHECK-NOT: fred 51*9880d681SAndroid Build Coastguard Worker// CHECK: _bar 52*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: fred = 42 53*9880d681SAndroid Build Coastguard Worker 54*9880d681SAndroid Build Coastguard Worker 55*9880d681SAndroid Build Coastguard Worker.macro foo 56*9880d681SAndroid Build Coastguard Workerfoo_$0_$1_$2_$3: 57*9880d681SAndroid Build Coastguard Worker nop 58*9880d681SAndroid Build Coastguard Worker.endm 59*9880d681SAndroid Build Coastguard Worker 60*9880d681SAndroid Build Coastguard Workerfoo 1, 2, 3, 4 61*9880d681SAndroid Build Coastguard Workerfoo 1, , 3, 4 62*9880d681SAndroid Build Coastguard Worker 63*9880d681SAndroid Build Coastguard Worker// CHECK: foo_1_2_3_4: 64*9880d681SAndroid Build Coastguard Worker// CHECK: foo_1__3_4: 65