Ticket #8033: ghc_x86_64_patch.diff

File ghc_x86_64_patch.diff, 1.0 KB (added by carter, 2 years 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<[