From 155dccd1eba26965a8c13c65838f653ea7f55de3 Mon Sep 17 00:00:00 2001 From: Nico Weber Date: Thu, 24 Jul 2014 17:08:39 +0000 Subject: Let the integrated assembler understand .exitm, PR20426. llvm-svn: 213876 --- llvm/test/MC/AsmParser/macro-exitm.s | 64 ++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 llvm/test/MC/AsmParser/macro-exitm.s (limited to 'llvm/test') diff --git a/llvm/test/MC/AsmParser/macro-exitm.s b/llvm/test/MC/AsmParser/macro-exitm.s new file mode 100644 index 00000000000..66a0597288a --- /dev/null +++ b/llvm/test/MC/AsmParser/macro-exitm.s @@ -0,0 +1,64 @@ +// RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s + +// .exitm is encountered in a normal macro expansion +.macro REP +.rept 3 +.long 0 +.exitm +.endr +.endm +REP +// Only the output from the first rept expansion should make it through: +// CHECK: .long 0 +// CHECK-NOT: .long 0 + +// .exitm is in a true branch +.macro A +.if 1 +.long 1 +.exitm +.endif +.long 1 +.endm +A +// CHECK: .long 1 +// CHECK-NOT: .long 1 + +// .exitm is in a false branch +.macro B +.if 1 +.long 2 +.else +.exitm +.endif +.long 2 +.endm +B +// CHECK: .long 2 +// CHECK: .long 2 + + +// .exitm is in a false branch that is encountered prior to the true branch +.macro C +.if 0 +.exitm +.else +.long 3 +.endif +.long 3 +.endm +C +// CHECK: .long 3 +// CHECK: .long 3 + +// .exitm is in a macro that's expanded in a conditional block. +.macro D +.long 4 +.exitm +.long 4 +.endm +.if 1 +D +.endif +// CHECK: .long 4 +// CHECK-NOT: .long 4 -- cgit v1.2.3