[llvm-commits] CVS: llvm/lib/Target/Alpha/Readme.txt

Andrew Lenharth alenhar2 at cs.uiuc.edu
Sun Sep 24 06:13:25 PDT 2006



Changes in directory llvm/lib/Target/Alpha:

Readme.txt updated: 1.4 -> 1.5
---
Log message:

jump table note

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

 Readme.txt |  150 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 150 insertions(+)


Index: llvm/lib/Target/Alpha/Readme.txt
diff -u llvm/lib/Target/Alpha/Readme.txt:1.4 llvm/lib/Target/Alpha/Readme.txt:1.5
--- llvm/lib/Target/Alpha/Readme.txt:1.4	Wed Sep 20 10:05:49 2006
+++ llvm/lib/Target/Alpha/Readme.txt	Sun Sep 24 08:13:10 2006
@@ -1,3 +1,153 @@
+Fix jump table support.  currently it uses 64bit absolute address. 
+gcc uses gprel32.  This way I won't keep fighting Evan as he keeps
+breaking 64bit entries in jump tables...
+
+#include <string.h>
+#include <setjmp.h>
+
+int main(int x, char** y)
+{
+char* foo;
+switch(x) {
+case 1:
+foo = "1";
+break;
+case 2:
+foo = "2";
+break;
+case 3:
+foo = "3";
+break;
+case 4:
+foo = "4";
+break;
+case 5:
+foo = "5";
+break;
+case 6:
+foo = "6";
+break;
+case 7:
+foo = "7";
+break;
+case 8:
+foo = "8";
+break;
+};
+print(foo);
+return 0;
+
+}
+
+
+        .set noreorder
+        .set volatile
+        .set noat
+        .set nomacro
+        .section        .rodata.str1.1,"aMS", at progbits,1
+$LC6:
+        .ascii "7\0"
+$LC7:
+        .ascii "8\0"
+$LC0:
+        .ascii "1\0"
+$LC1:
+        .ascii "2\0"
+$LC2:
+        .ascii "3\0"
+$LC3:
+        .ascii "4\0"
+$LC4:
+        .ascii "5\0"
+$LC5:
+        .ascii "6\0"
+        .text
+        .align 2
+        .align 4
+        .globl main
+        .ent main
+main:
+        .frame $30,16,$26,0
+        .mask 0x4000000,-16
+        ldah $29,0($27)         !gpdisp!1
+        lda $29,0($29)          !gpdisp!1
+$main..ng:
+        zapnot $16,15,$16
+        lda $30,-16($30)
+        cmpule $16,8,$1
+        stq $26,0($30)
+        .prologue 1
+        beq $1,$L2
+        ldah $6,$L11($29)               !gprelhigh
+        lda $5,$L11($6)         !gprellow
+        s4addq $16,$5,$0
+        ldl $2,0($0)
+        addq $29,$2,$3
+        jmp $31,($3),$L2
+        .section        .rodata
+        .align 2
+        .align 2
+$L11:
+        .gprel32 $L2
+        .gprel32 $L3
+        .gprel32 $L4
+        .gprel32 $L5
+        .gprel32 $L6
+        .gprel32 $L7
+        .gprel32 $L8
+        .gprel32 $L9
+        .gprel32 $L10
+        .text
+$L9:
+        ldah $20,$LC6($29)              !gprelhigh
+        lda $4,$LC6($20)                !gprellow
+        .align 4
+$L2:
+        mov $4,$16
+        ldq $27,print($29)              !literal!2
+        jsr $26,($27),print             !lituse_jsr!2
+        ldah $29,0($26)         !gpdisp!3
+        mov $31,$0
+        bis $31,$31,$31
+        lda $29,0($29)          !gpdisp!3
+        ldq $26,0($30)
+        lda $30,16($30)
+        ret $31,($26),1
+$L10:
+        ldah $21,$LC7($29)              !gprelhigh
+        lda $4,$LC7($21)                !gprellow
+        br $31,$L2
+$L3:
+        ldah $7,$LC0($29)               !gprelhigh
+        lda $4,$LC0($7)         !gprellow
+        br $31,$L2
+$L4:
+        ldah $8,$LC1($29)               !gprelhigh
+        lda $4,$LC1($8)         !gprellow
+        br $31,$L2
+$L5:
+        ldah $16,$LC2($29)              !gprelhigh
+        lda $4,$LC2($16)                !gprellow
+        br $31,$L2
+$L6:
+        ldah $17,$LC3($29)              !gprelhigh
+        lda $4,$LC3($17)                !gprellow
+        br $31,$L2
+$L7:
+        ldah $18,$LC4($29)              !gprelhigh
+        lda $4,$LC4($18)                !gprellow
+        br $31,$L2
+$L8:
+        ldah $19,$LC5($29)              !gprelhigh
+        lda $4,$LC5($19)                !gprellow
+        br $31,$L2
+        .end main
+        .section        .note.GNU-stack,"", at progbits
+        .ident  "GCC: (GNU) 3.4.4 20050314 (prerelease) (Debian 3.4.3-13)"
+
+
+
+
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 Fix Ordered/Unordered FP stuff
 






More information about the llvm-commits mailing list