From bd658918df63f43654ce3b1045c7b563df91a63f Mon Sep 17 00:00:00 2001 From: Kevin Enderby Date: Thu, 27 May 2010 21:33:19 +0000 Subject: [PATCH] MC/X86: Add aliases for Jcc variants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104890 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/AsmParser/X86AsmParser.cpp | 13 +++ test/MC/MachO/jcc.s | 106 ++++++++++++++++++++++ 2 files changed, 119 insertions(+) create mode 100644 test/MC/MachO/jcc.s diff --git a/lib/Target/X86/AsmParser/X86AsmParser.cpp b/lib/Target/X86/AsmParser/X86AsmParser.cpp index 40a6a7b5616..80f047f0fdc 100644 --- a/lib/Target/X86/AsmParser/X86AsmParser.cpp +++ b/lib/Target/X86/AsmParser/X86AsmParser.cpp @@ -617,6 +617,19 @@ ParseInstruction(const StringRef &Name, SMLoc NameLoc, .Case("setnz", "setne") .Case("jz", "je") .Case("jnz", "jne") + .Case("jc", "jb") + .Case("jecxz", "jcxz") + .Case("jna", "jbe") + .Case("jnae", "jb") + .Case("jnb", "jae") + .Case("jnbe", "ja") + .Case("jnc", "jae") + .Case("jng", "jle") + .Case("jnge", "jl") + .Case("jnl", "jge") + .Case("jnle", "jg") + .Case("jpe", "jp") + .Case("jpo", "jnp") .Case("cmovcl", "cmovbl") .Case("cmovcl", "cmovbl") .Case("cmovnal", "cmovbel") diff --git a/test/MC/MachO/jcc.s b/test/MC/MachO/jcc.s new file mode 100644 index 00000000000..7640429a79d --- /dev/null +++ b/test/MC/MachO/jcc.s @@ -0,0 +1,106 @@ +// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s + + ja 1f +1: nop + jae 1f +1: nop + jb 1f +1: nop + jbe 1f +1: nop + jc 1f +1: nop + jcxz 1f +1: nop + jecxz 1f +1: nop + je 1f +1: nop + jg 1f +1: nop + jge 1f +1: nop + jl 1f +1: nop + jle 1f +1: nop + jna 1f +1: nop + jnae 1f +1: nop + jnb 1f +1: nop + jnbe 1f +1: nop + jnc 1f +1: nop + jne 1f +1: nop + jng 1f +1: nop + jnge 1f +1: nop + jnl 1f +1: nop + jnle 1f +1: nop + jno 1f +1: nop + jnp 1f +1: nop + jns 1f +1: nop + jnz 1f +1: nop + jo 1f +1: nop + jp 1f +1: nop + jpe 1f +1: nop + jpo 1f +1: nop + js 1f +1: nop + jz 1f +1: nop + +// CHECK: ('cputype', 7) +// CHECK: ('cpusubtype', 3) +// CHECK: ('filetype', 1) +// CHECK: ('num_load_commands', 1) +// CHECK: ('load_commands_size', 124) +// CHECK: ('flag', 0) +// CHECK: ('load_commands', [ +// CHECK: # Load Command 0 +// CHECK: (('command', 1) +// CHECK: ('size', 124) +// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') +// CHECK: ('vm_addr', 0) +// CHECK: ('vm_size', 96) +// CHECK: ('file_offset', 152) +// CHECK: ('file_size', 96) +// CHECK: ('maxprot', 7) +// CHECK: ('initprot', 7) +// CHECK: ('num_sections', 1) +// CHECK: ('flags', 0) +// CHECK: ('sections', [ +// CHECK: # Section 0 +// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') +// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') +// CHECK: ('address', 0) +// CHECK: ('size', 96) +// CHECK: ('offset', 152) +// CHECK: ('alignment', 0) +// CHECK: ('reloc_offset', 0) +// CHECK: ('num_reloc', 0) +// CHECK: ('flags', 0x80000400) +// CHECK: ('reserved1', 0) +// CHECK: ('reserved2', 0) +// CHECK: ), +// CHECK: ('_relocations', [ +// CHECK: ]) +// CHECK: ('_section_data', 'w\x00\x90s\x00\x90r\x00\x90v\x00\x90r\x00\x90\xe3\x00\x90\xe3\x00\x90t\x00\x90\x7f\x00\x90}\x00\x90|\x00\x90~\x00\x90v\x00\x90r\x00\x90s\x00\x90w\x00\x90s\x00\x90u\x00\x90~\x00\x90|\x00\x90}\x00\x90\x7f\x00\x90q\x00\x90{\x00\x90y\x00\x90u\x00\x90p\x00\x90z\x00\x90z\x00\x90{\x00\x90x\x00\x90t\x00\x90') +// CHECK: ]) +// CHECK: ), +// CHECK: ])