From 1ff2c485e240e00e7d84f1dd53ee7a111d25f5d3 Mon Sep 17 00:00:00 2001 From: Bill Wendling Date: Tue, 27 Oct 2009 22:34:43 +0000 Subject: [PATCH] Add a note. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85329 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/README.txt | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/lib/Target/X86/README.txt b/lib/Target/X86/README.txt index 046d35ce5b6..5967fd55c09 100644 --- a/lib/Target/X86/README.txt +++ b/lib/Target/X86/README.txt @@ -1952,3 +1952,26 @@ fact these instructions are identical to the non-lock versions. We need a way to add target specific information to target nodes and have this information carried over to machine instructions. Asm printer (or JIT) can use this information to add the "lock" prefix. + +//===---------------------------------------------------------------------===// + +int func(int a, int b) { if (a & 0x80) b |= 0x80; else b &= 0x80; return b; } + +Current: + + movb %sil, %al + andb $-128, %sil + orb $-128, %al + testb %dil, %dil + js LBB1_2 + movb %sil, %al +LBB1_2: + movsbl %al, %eax + +Better: + movl %esi, %eax + orl $-128, %eax + andl $-128, %esi + testb %dil, %dil + cmovns %esi, %eax + movsbl %al,%eax -- 2.34.1