OSDN Git Service

ugly codegen
authorChris Lattner <sabre@nondot.org>
Fri, 6 Oct 2006 17:39:34 +0000 (17:39 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 6 Oct 2006 17:39:34 +0000 (17:39 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30769 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/README.txt

index 9f22bab..3ee32cc 100644 (file)
@@ -711,4 +711,26 @@ bool %test(ulong %x) {
 
 into x.h == 0
 
+//===---------------------------------------------------------------------===//
+
+We currently compile sign_extend_inreg into two shifts:
+
+long foo(long X) {
+  return (long)(signed char)X;
+}
+
+becomes:
+
+_foo:
+        movl 4(%esp), %eax
+        shll $24, %eax
+        sarl $24, %eax
+        ret
 
+This could be:
+
+_foo:
+        movsbl  4(%esp),%eax
+        ret
+
+//===---------------------------------------------------------------------===//