Changes in directory llvm/lib/Target/ARM:

README-Thumb.txt updated: 1.4 -> 1.5
---
Log message:

Add a note.

---
Diffs of the changes:  (+61 -0)

 README-Thumb.txt |   61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 61 insertions(+)


Index: llvm/lib/Target/ARM/README-Thumb.txt
diff -u llvm/lib/Target/ARM/README-Thumb.txt:1.4 
llvm/lib/Target/ARM/README-Thumb.txt:1.5
--- llvm/lib/Target/ARM/README-Thumb.txt:1.4    Wed Jan 31 19:07:48 2007
+++ llvm/lib/Target/ARM/README-Thumb.txt        Wed Jan 31 20:46:20 2007
@@ -63,3 +63,64 @@
      ldr r0, LCPI1_0
 =>
      ldr r0, pc, #((LCPI1_0-(LPCRELL0+4))&0xfffffffc)
+
+
+//===---------------------------------------------------------------------===//
+
+We compiles the following using a jump table.
+
+define i16 @func_entry_2E_ce(i32 %i) {
+newFuncRoot:
+        br label %entry.ce
+
+bb12.exitStub:          ; preds = %entry.ce
+        ret i16 0
+
+bb4.exitStub:           ; preds = %entry.ce, %entry.ce, %entry.ce
+        ret i16 1
+
+bb9.exitStub:           ; preds = %entry.ce, %entry.ce, %entry.ce
+        ret i16 2
+
+bb.exitStub:            ; preds = %entry.ce
+        ret i16 3
+
+entry.ce:               ; preds = %newFuncRoot
+        switch i32 %i, label %bb12.exitStub [
+                 i32 0, label %bb4.exitStub
+                 i32 1, label %bb9.exitStub
+                 i32 2, label %bb4.exitStub
+                 i32 3, label %bb4.exitStub
+                 i32 7, label %bb9.exitStub
+                 i32 8, label %bb.exitStub
+                 i32 9, label %bb9.exitStub
+        ]
+}
+
+gcc compiles to:
+
+       cmp     r0, #9
+       @ lr needed for prologue
+       bhi     L2
+       ldr     r3, L11
+       mov     r2, #1
+       mov     r1, r2, asl r0
+       ands    r0, r3, r2, asl r0
+       movne   r0, #2
+       bxne    lr
+       tst     r1, #13
+       beq     L9
+L3:
+       mov     r0, r2
+       bx      lr
+L9:
+       tst     r1, #256
+       movne   r0, #3
+       bxne    lr
+L2:
+       mov     r0, #0
+       bx      lr
+L12:
+       .align 2
+L11:
+       .long   642



_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to