[llvm-commits] [llvm] r163063 - in /llvm/trunk: lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp test/CodeGen/Thumb/thumb_jump24_fixup.ll

Logan Chien tzuhsiang.chien at gmail.com
Sat Sep 1 08:06:37 PDT 2012


Author: logan
Date: Sat Sep  1 10:06:36 2012
New Revision: 163063

URL: http://llvm.org/viewvc/llvm-project?rev=163063&view=rev
Log:
Fix Thumb2 fixup kind in the integrated-as.

Added:
    llvm/trunk/test/CodeGen/Thumb/thumb_jump24_fixup.ll
Modified:
    llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp

Modified: llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp?rev=163063&r1=163062&r2=163063&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp (original)
+++ llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp Sat Sep  1 10:06:36 2012
@@ -194,6 +194,10 @@
     case ARM::fixup_arm_uncondbranch:
       Type = ELF::R_ARM_JUMP24;
       break;
+    case ARM::fixup_t2_condbranch:
+    case ARM::fixup_t2_uncondbranch:
+      Type = ELF::R_ARM_THM_JUMP24;
+      break;
     case ARM::fixup_arm_movt_hi16:
     case ARM::fixup_arm_movt_hi16_pcrel:
       Type = ELF::R_ARM_MOVT_PREL;

Added: llvm/trunk/test/CodeGen/Thumb/thumb_jump24_fixup.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Thumb/thumb_jump24_fixup.ll?rev=163063&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/Thumb/thumb_jump24_fixup.ll (added)
+++ llvm/trunk/test/CodeGen/Thumb/thumb_jump24_fixup.ll Sat Sep  1 10:06:36 2012
@@ -0,0 +1,23 @@
+; RUN: llc -mtriple thumbv7-none-linux-gnueabi -mcpu=cortex-a8 -march=thumb -mattr=thumb2 -filetype=obj -o - < %s | llvm-objdump -r - | FileCheck %s
+
+target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:64:128-a0:0:32-n32-S64"
+target triple = "thumbv7-none-linux-gnueabi"
+
+define i32 @test_fixup_t2_uncondbranch() {
+b0:
+  invoke void @__cxa_throw(i8* null, i8* null, i8* null) noreturn
+    to label %unreachable unwind label %lpad
+
+; CHECK: {{[0-9]+}} R_ARM_THM_JUMP24 __cxa_throw
+
+lpad:
+  %0 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) cleanup
+  ret i32 0
+
+unreachable:
+  unreachable
+}
+
+declare i32 @__gxx_personality_v0(...)
+
+declare void @__cxa_throw(i8*, i8*, i8*)





More information about the llvm-commits mailing list