aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/Target/X86/README.txt8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/Target/X86/README.txt b/lib/Target/X86/README.txt
index 5967fd55c0..75dde2d28a 100644
--- a/lib/Target/X86/README.txt
+++ b/lib/Target/X86/README.txt
@@ -1969,9 +1969,17 @@ LBB1_2:
movsbl %al, %eax
Better:
+
movl %esi, %eax
orl $-128, %eax
andl $-128, %esi
testb %dil, %dil
cmovns %esi, %eax
movsbl %al,%eax
+
+Best (recognize this as 'b = (b & ~0x80) | (a & 0x80)'):
+
+ andb $-128, %dil
+ andb $127, %sil
+ orb %dil, %sil
+ movsbl %sil, %eax