forked from llvm-mirror/llvm
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This allows hello world to be compiled for Mips 64 direct object.
It takes advantage of r159299 which introduces relocation support for N64. elf-dump needed to be upgraded to support N64 relocations as well. This passes make check. Jack git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159302 91177308-0d34-0410-b5e6-96231b3b80d8
- Loading branch information
Jack Carter
committed
Jun 27, 2012
1 parent
0140e55
commit a6d6ef6
Showing
2 changed files
with
40 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
; RUN: llc -filetype=obj -march=mips64el -mcpu=mips64 %s -o - | elf-dump --dump-section-data | FileCheck %s | ||
|
||
; Check for N64 relocation production. | ||
; | ||
; ModuleID = '../hello.c' | ||
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-v64:64:64-n32" | ||
target triple = "mips64el-unknown-linux" | ||
|
||
@str = private unnamed_addr constant [12 x i8] c"hello world\00" | ||
|
||
define i32 @main() nounwind { | ||
entry: | ||
; Check that the appropriate relocations were created. | ||
|
||
; R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_HI16 | ||
; CHECK: ('r_type3', 0x05) | ||
; CHECK-NEXT: ('r_type2', 0x18) | ||
; CHECK-NEXT: ('r_type', 0x07) | ||
|
||
; R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_LO16 | ||
; CHECK: ('r_type3', 0x06) | ||
; CHECK-NEXT: ('r_type2', 0x18) | ||
; CHECK-NEXT: ('r_type', 0x07) | ||
|
||
; R_MIPS_GOT_OFST/R_MIPS_NONE/R_MIPS_NONE | ||
; CHECK: ('r_type3', 0x00) | ||
; CHECK-NEXT: ('r_type2', 0x00) | ||
; CHECK-NEXT: ('r_type', 0x14) | ||
|
||
; R_MIPS_GOT_OFST/R_MIPS_NONE/R_MIPS_NONE | ||
; CHECK: ('r_type3', 0x00) | ||
; CHECK-NEXT: ('r_type2', 0x00) | ||
; CHECK-NEXT: ('r_type', 0x15) | ||
|
||
%puts = tail call i32 @puts(i8* getelementptr inbounds ([12 x i8]* @str, i64 0, i64 0)) | ||
ret i32 0 | ||
|
||
} | ||
declare i32 @puts(i8* nocapture) nounwind |