Ticket #8033: ghc_x86_64_patch.diff

File ghc_x86_64_patch.diff, 1.0 KB (added by carter, 20 months ago)

diff / patch for changing calling convention

  • lib/Target/X86/X86CallingConv.td

    diff --git a/lib/Target/X86/X86CallingConv.td b/lib/Target/X86/X86CallingConv.td
    index 9eafbd5..32b5689 100644
    a b def CC_X86_64_GHC : CallingConv<[ 
    284284  CCIfType<[i64], 
    285285            CCAssignToReg<[R13, RBP, R12, RBX, R14, RSI, RDI, R8, R9, R15]>>, 
    286286 
    287   // Pass in STG registers: F1, F2, F3, F4, D1, D2 
     287  // Pass in STG registers for  floats, doubles and 128bit simd vectors 
    288288  CCIfType<[f32, f64, v16i8, v8i16, v4i32, v2i64, v4f32, v2f64], 
    289289            CCIfSubtarget<"hasSSE1()", 
    290             CCAssignToReg<[XMM1, XMM2, XMM3, XMM4, XMM5, XMM6]>>> 
     290            CCAssignToReg<[XMM1, XMM2, XMM3, XMM4, XMM5, XMM6]>>>, 
     291 
     292  // Pass in STG registers for 256bit simd vectors 
     293  CCIfType<[v32i8, v16i16, v8i32, v4i64, v8f32, v4f64], 
     294                          CCIfSubtarget<"hasAVX()", 
     295                          CCAssignToReg<[YMM0, YMM1, YMM2, YMM3, 
     296                                         YMM4, YMM5, YMM6]>>> 
     297 
    291298]>; 
    292299 
    293300def CC_X86_64_HiPE : CallingConv<[