From f0a0d578089572be37063bbe37063edb28148159 Mon Sep 17 00:00:00 2001 From: Kai Nacke Date: Tue, 27 Aug 2013 04:16:16 +0000 Subject: Fix wrong code offset for unwind code SET_FPREG. The code offset for unwind code SET_FPREG is wrong because it is set to constant 0. The fix is to do the same as for the other unwind codes: emit a label and later the absolute difference between the label and the begin of the prologue. Also enables the failing test case MC/COFF/seh.s Reviewed by Jim Grosbach, Charles Davis and Nico Rieck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189309 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/MC/COFF/seh.s | 2 -- test/tools/llvm-objdump/win64-unwind-data.s | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) (limited to 'test') diff --git a/test/MC/COFF/seh.s b/test/MC/COFF/seh.s index bef425efb4..b1e61a9773 100644 --- a/test/MC/COFF/seh.s +++ b/test/MC/COFF/seh.s @@ -1,7 +1,5 @@ // This test checks that the SEH directives emit the correct unwind data. -// TODO: Expected fail because SET_FPREG has a wrong offset. -// XFAIL: * // RUN: llvm-mc -triple x86_64-pc-win32 -filetype=obj %s | llvm-readobj -s -u | FileCheck %s // CHECK: Sections [ diff --git a/test/tools/llvm-objdump/win64-unwind-data.s b/test/tools/llvm-objdump/win64-unwind-data.s index 1e4c7428ce..a172bfca6b 100644 --- a/test/tools/llvm-objdump/win64-unwind-data.s +++ b/test/tools/llvm-objdump/win64-unwind-data.s @@ -13,7 +13,7 @@ // CHECK-NEXT: Frame register: RBX // CHECK-NEXT: Frame offset: 0 // CHECK-NEXT: Unwind Codes: -// CHECK-NEXT: 0x00: UOP_SetFPReg +// CHECK-NEXT: 0x12: UOP_SetFPReg // CHECK-NEXT: 0x0f: UOP_PushNonVol RBX // CHECK-NEXT: 0x0e: UOP_SaveXMM128 XMM8 [0x0000] // CHECK-NEXT: 0x09: UOP_SaveNonVol RSI [0x0010] -- cgit v1.2.3