mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-09-10 06:54:54 +00:00
registers based on dynamic conditions. For example, X86 EBP/RBP, when used as frame register has to be spilled in the first fixed object. It should inform PEI this so it doesn't get allocated another stack object. Also, it should not be spilled as other callee-saved registers but rather its spilling and restoring are being handled by emitPrologue and emitEpilogue. Avoid spilling it twice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75116 91177308-0d34-0410-b5e6-96231b3b80d8
18 lines
563 B
LLVM
18 lines
563 B
LLVM
; Check that eh_return & unwind_init were properly lowered
|
|
; RUN: llvm-as < %s | llc | grep %ebp | count 7
|
|
; RUN: llvm-as < %s | llc | grep %ecx | count 5
|
|
|
|
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
|
|
target triple = "i386-pc-linux"
|
|
|
|
define i8* @test(i32 %a, i8* %b) {
|
|
entry:
|
|
call void @llvm.eh.unwind.init()
|
|
%foo = alloca i32
|
|
call void @llvm.eh.return.i32(i32 %a, i8* %b)
|
|
unreachable
|
|
}
|
|
|
|
declare void @llvm.eh.return.i32(i32, i8*)
|
|
declare void @llvm.eh.unwind.init()
|