Bug 151064

Summary: [B3] Add a test for CCall with double arguments and results
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: Filip Pizlo <fpizlo>
Status: RESOLVED FIXED    
Severity: Normal CC: barraclough, benjamin, commit-queue, ggaren, mark.lam, mhahnenb, msaboff, nrotem, oliver, saam, sam
Priority: P2    
Version: WebKit Nightly Build   
Hardware: All   
OS: All   
Bug Depends on:    
Bug Blocks: 150991    
Attachments:
Description Flags
the patch saam: review+

Description Filip Pizlo 2015-11-09 17:02:32 PST
Patch forthcoming.
Comment 1 Filip Pizlo 2015-11-09 17:06:10 PST
Created attachment 265121 [details]
the patch

BTW, here's what the full IR and disassembly dump looks like for one of the double call tests:

[pizlo@shakezilla OpenSource] JSC_dumpDisassembly=true JSC_dumpGraphAtEachPhase=true JSC_validateGraphAtEachPhase=true DYLD_FRAMEWORK_PATH=WebKitBuild/Debug/ WebKitBuild/Debug/testb3 testCallFunctionWithHellaDoubleArguments
testCallFunctionWithHellaDoubleArguments()...
B3 after initial, before reduceStrength:
BB#0: ; frequency = nan
    Double @0 = ConstDouble(1.000000e+00)
    Double @1 = ConstDouble(2.000000e+00)
    Double @2 = ConstDouble(3.000000e+00)
    Double @3 = ConstDouble(4.000000e+00)
    Double @4 = ConstDouble(5.000000e+00)
    Double @5 = ConstDouble(6.000000e+00)
    Double @6 = ConstDouble(7.000000e+00)
    Double @7 = ConstDouble(8.000000e+00)
    Double @8 = ConstDouble(9.000000e+00)
    Double @9 = ConstDouble(1.000000e+01)
    Double @10 = ConstDouble(1.100000e+01)
    Double @11 = ConstDouble(1.200000e+01)
    Double @12 = ConstDouble(1.300000e+01)
    Double @13 = ConstDouble(1.400000e+01)
    Double @14 = ConstDouble(1.500000e+01)
    Double @15 = ConstDouble(1.600000e+01)
    Double @16 = ConstDouble(1.700000e+01)
    Double @17 = ConstDouble(1.800000e+01)
    Double @18 = ConstDouble(1.900000e+01)
    Double @19 = ConstDouble(2.000000e+01)
    Double @20 = ConstDouble(2.100000e+01)
    Double @21 = ConstDouble(2.200000e+01)
    Double @22 = ConstDouble(2.300000e+01)
    Double @23 = ConstDouble(2.400000e+01)
    Double @24 = ConstDouble(2.500000e+01)
    Double @25 = ConstDouble(2.600000e+01)
    Int64 @26 = Const64(4336899008)
    Double @27 = CCall(@26, @0, @1, @2, @3, @4, @5, @6, @7, @8, @9, @10, @11, @12, @13, @14, @15, @16, @17, @18, @19, @20, @21, @22, @23, @24, @25, ExitsSideways|ControlDependent|Writes:Top|Reads:Top)
    Void @28 = Return(@27, Terminal)
B3 after reduceStrength, before moveConstants:
BB#0: ; frequency = nan
    Double @0 = ConstDouble(1.000000e+00)
    Double @1 = ConstDouble(2.000000e+00)
    Double @2 = ConstDouble(3.000000e+00)
    Double @3 = ConstDouble(4.000000e+00)
    Double @4 = ConstDouble(5.000000e+00)
    Double @5 = ConstDouble(6.000000e+00)
    Double @6 = ConstDouble(7.000000e+00)
    Double @7 = ConstDouble(8.000000e+00)
    Double @8 = ConstDouble(9.000000e+00)
    Double @9 = ConstDouble(1.000000e+01)
    Double @10 = ConstDouble(1.100000e+01)
    Double @11 = ConstDouble(1.200000e+01)
    Double @12 = ConstDouble(1.300000e+01)
    Double @13 = ConstDouble(1.400000e+01)
    Double @14 = ConstDouble(1.500000e+01)
    Double @15 = ConstDouble(1.600000e+01)
    Double @16 = ConstDouble(1.700000e+01)
    Double @17 = ConstDouble(1.800000e+01)
    Double @18 = ConstDouble(1.900000e+01)
    Double @19 = ConstDouble(2.000000e+01)
    Double @20 = ConstDouble(2.100000e+01)
    Double @21 = ConstDouble(2.200000e+01)
    Double @22 = ConstDouble(2.300000e+01)
    Double @23 = ConstDouble(2.400000e+01)
    Double @24 = ConstDouble(2.500000e+01)
    Double @25 = ConstDouble(2.600000e+01)
    Int64 @26 = Const64(4336899008)
    Double @27 = CCall(@26, @0, @1, @2, @3, @4, @5, @6, @7, @8, @9, @10, @11, @12, @13, @14, @15, @16, @17, @18, @19, @20, @21, @22, @23, @24, @25, ExitsSideways|ControlDependent|Writes:Top|Reads:Top)
    Void @28 = Return(@27, Terminal)
B3 after moveConstants, before lowerToAir:
BB#0: ; frequency = nan
    Void @0 = Nop()
    Void @1 = Nop()
    Void @2 = Nop()
    Void @3 = Nop()
    Void @4 = Nop()
    Void @5 = Nop()
    Void @6 = Nop()
    Void @7 = Nop()
    Void @8 = Nop()
    Void @9 = Nop()
    Void @10 = Nop()
    Void @11 = Nop()
    Void @12 = Nop()
    Void @13 = Nop()
    Void @14 = Nop()
    Void @15 = Nop()
    Void @16 = Nop()
    Void @17 = Nop()
    Void @18 = Nop()
    Void @19 = Nop()
    Void @20 = Nop()
    Void @21 = Nop()
    Void @22 = Nop()
    Void @23 = Nop()
    Void @24 = Nop()
    Void @25 = Nop()
    Void @26 = Nop()
    Int64 @29 = Const64(4336899008)
    Int64 @30 = Const64(4391297024)
    Double @31 = Load(@30, ControlDependent|Reads:Top)
    Double @32 = Load(@30, offset = 8, ControlDependent|Reads:Top)
    Double @33 = Load(@30, offset = 16, ControlDependent|Reads:Top)
    Double @34 = Load(@30, offset = 24, ControlDependent|Reads:Top)
    Double @35 = Load(@30, offset = 32, ControlDependent|Reads:Top)
    Double @36 = Load(@30, offset = 40, ControlDependent|Reads:Top)
    Double @37 = Load(@30, offset = 48, ControlDependent|Reads:Top)
    Double @38 = Load(@30, offset = 56, ControlDependent|Reads:Top)
    Double @39 = Load(@30, offset = 64, ControlDependent|Reads:Top)
    Double @40 = Load(@30, offset = 72, ControlDependent|Reads:Top)
    Double @41 = Load(@30, offset = 80, ControlDependent|Reads:Top)
    Double @42 = Load(@30, offset = 88, ControlDependent|Reads:Top)
    Double @43 = Load(@30, offset = 96, ControlDependent|Reads:Top)
    Double @44 = Load(@30, offset = 104, ControlDependent|Reads:Top)
    Double @45 = Load(@30, offset = 112, ControlDependent|Reads:Top)
    Double @46 = Load(@30, offset = 120, ControlDependent|Reads:Top)
    Double @47 = Load(@30, offset = 128, ControlDependent|Reads:Top)
    Double @48 = Load(@30, offset = 136, ControlDependent|Reads:Top)
    Double @49 = Load(@30, offset = 144, ControlDependent|Reads:Top)
    Double @50 = Load(@30, offset = 152, ControlDependent|Reads:Top)
    Double @51 = Load(@30, offset = 160, ControlDependent|Reads:Top)
    Double @52 = Load(@30, offset = 168, ControlDependent|Reads:Top)
    Double @53 = Load(@30, offset = 176, ControlDependent|Reads:Top)
    Double @54 = Load(@30, offset = 184, ControlDependent|Reads:Top)
    Double @55 = Load(@30, offset = 192, ControlDependent|Reads:Top)
    Double @56 = Load(@30, offset = 200, ControlDependent|Reads:Top)
    Double @27 = CCall(@29, @31, @32, @33, @34, @35, @36, @37, @38, @39, @40, @41, @42, @43, @44, @45, @46, @47, @48, @49, @50, @51, @52, @53, @54, @55, @56, ExitsSideways|ControlDependent|Writes:Top|Reads:Top)
    Void @28 = Return(@27, Terminal)
Byproducts:
    DataSection at 0x105bde000 with 208 bytes.
Air after initial, before eliminateDeadCode:
BB#0: ; frequency = nan
    Move $0x1027fd3c0, %tmp0, @29
    Move $0x105bde000, %tmp1, @30
    MoveDouble (%tmp1), %ftmp1, @31
    MoveDouble 8(%tmp1), %ftmp2, @32
    MoveDouble 16(%tmp1), %ftmp3, @33
    MoveDouble 24(%tmp1), %ftmp4, @34
    MoveDouble 32(%tmp1), %ftmp5, @35
    MoveDouble 40(%tmp1), %ftmp6, @36
    MoveDouble 48(%tmp1), %ftmp7, @37
    MoveDouble 56(%tmp1), %ftmp8, @38
    MoveDouble 64(%tmp1), %ftmp9, @39
    MoveDouble 72(%tmp1), %ftmp10, @40
    MoveDouble 80(%tmp1), %ftmp11, @41
    MoveDouble 88(%tmp1), %ftmp12, @42
    MoveDouble 96(%tmp1), %ftmp13, @43
    MoveDouble 104(%tmp1), %ftmp14, @44
    MoveDouble 112(%tmp1), %ftmp15, @45
    MoveDouble 120(%tmp1), %ftmp16, @46
    MoveDouble 128(%tmp1), %ftmp17, @47
    MoveDouble 136(%tmp1), %ftmp18, @48
    MoveDouble 144(%tmp1), %ftmp19, @49
    MoveDouble 152(%tmp1), %ftmp20, @50
    MoveDouble 160(%tmp1), %ftmp21, @51
    MoveDouble 168(%tmp1), %ftmp22, @52
    MoveDouble 176(%tmp1), %ftmp23, @53
    MoveDouble 184(%tmp1), %ftmp24, @54
    MoveDouble 192(%tmp1), %ftmp25, @55
    MoveDouble 200(%tmp1), %ftmp26, @56
    MoveDouble %ftmp26, 136(callArg), @27
    MoveDouble %ftmp25, 128(callArg), @27
    MoveDouble %ftmp24, 120(callArg), @27
    MoveDouble %ftmp23, 112(callArg), @27
    MoveDouble %ftmp22, 104(callArg), @27
    MoveDouble %ftmp21, 96(callArg), @27
    MoveDouble %ftmp20, 88(callArg), @27
    MoveDouble %ftmp19, 80(callArg), @27
    MoveDouble %ftmp18, 72(callArg), @27
    MoveDouble %ftmp17, 64(callArg), @27
    MoveDouble %ftmp16, 56(callArg), @27
    MoveDouble %ftmp15, 48(callArg), @27
    MoveDouble %ftmp14, 40(callArg), @27
    MoveDouble %ftmp13, 32(callArg), @27
    MoveDouble %ftmp12, 24(callArg), @27
    MoveDouble %ftmp11, 16(callArg), @27
    MoveDouble %ftmp10, 8(callArg), @27
    MoveDouble %ftmp9, (callArg), @27
    MoveDouble %ftmp1, %xmm0, @27
    MoveDouble %ftmp2, %xmm1, @27
    MoveDouble %ftmp3, %xmm2, @27
    MoveDouble %ftmp4, %xmm3, @27
    MoveDouble %ftmp5, %xmm4, @27
    MoveDouble %ftmp6, %xmm5, @27
    MoveDouble %ftmp7, %xmm6, @27
    MoveDouble %ftmp8, %xmm7, @27
    Patch &CCall, %tmp0, %rax, %rdx, %xmm0, %xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7, @27
    MoveDouble %xmm0, %ftmp0, @27
    MoveDouble %ftmp0, %xmm0, @28
    Ret @28
Specials:
    &CCall: function call that uses the C calling convention.
Air after eliminateDeadCode, before spillEverything:
BB#0: ; frequency = nan
    Move $0x1027fd3c0, %tmp0, @29
    Move $0x105bde000, %tmp1, @30
    MoveDouble (%tmp1), %ftmp1, @31
    MoveDouble 8(%tmp1), %ftmp2, @32
    MoveDouble 16(%tmp1), %ftmp3, @33
    MoveDouble 24(%tmp1), %ftmp4, @34
    MoveDouble 32(%tmp1), %ftmp5, @35
    MoveDouble 40(%tmp1), %ftmp6, @36
    MoveDouble 48(%tmp1), %ftmp7, @37
    MoveDouble 56(%tmp1), %ftmp8, @38
    MoveDouble 64(%tmp1), %ftmp9, @39
    MoveDouble 72(%tmp1), %ftmp10, @40
    MoveDouble 80(%tmp1), %ftmp11, @41
    MoveDouble 88(%tmp1), %ftmp12, @42
    MoveDouble 96(%tmp1), %ftmp13, @43
    MoveDouble 104(%tmp1), %ftmp14, @44
    MoveDouble 112(%tmp1), %ftmp15, @45
    MoveDouble 120(%tmp1), %ftmp16, @46
    MoveDouble 128(%tmp1), %ftmp17, @47
    MoveDouble 136(%tmp1), %ftmp18, @48
    MoveDouble 144(%tmp1), %ftmp19, @49
    MoveDouble 152(%tmp1), %ftmp20, @50
    MoveDouble 160(%tmp1), %ftmp21, @51
    MoveDouble 168(%tmp1), %ftmp22, @52
    MoveDouble 176(%tmp1), %ftmp23, @53
    MoveDouble 184(%tmp1), %ftmp24, @54
    MoveDouble 192(%tmp1), %ftmp25, @55
    MoveDouble 200(%tmp1), %ftmp26, @56
    MoveDouble %ftmp26, 136(callArg), @27
    MoveDouble %ftmp25, 128(callArg), @27
    MoveDouble %ftmp24, 120(callArg), @27
    MoveDouble %ftmp23, 112(callArg), @27
    MoveDouble %ftmp22, 104(callArg), @27
    MoveDouble %ftmp21, 96(callArg), @27
    MoveDouble %ftmp20, 88(callArg), @27
    MoveDouble %ftmp19, 80(callArg), @27
    MoveDouble %ftmp18, 72(callArg), @27
    MoveDouble %ftmp17, 64(callArg), @27
    MoveDouble %ftmp16, 56(callArg), @27
    MoveDouble %ftmp15, 48(callArg), @27
    MoveDouble %ftmp14, 40(callArg), @27
    MoveDouble %ftmp13, 32(callArg), @27
    MoveDouble %ftmp12, 24(callArg), @27
    MoveDouble %ftmp11, 16(callArg), @27
    MoveDouble %ftmp10, 8(callArg), @27
    MoveDouble %ftmp9, (callArg), @27
    MoveDouble %ftmp1, %xmm0, @27
    MoveDouble %ftmp2, %xmm1, @27
    MoveDouble %ftmp3, %xmm2, @27
    MoveDouble %ftmp4, %xmm3, @27
    MoveDouble %ftmp5, %xmm4, @27
    MoveDouble %ftmp6, %xmm5, @27
    MoveDouble %ftmp7, %xmm6, @27
    MoveDouble %ftmp8, %xmm7, @27
    Patch &CCall, %tmp0, %rax, %rdx, %xmm0, %xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7, @27
    MoveDouble %xmm0, %ftmp0, @27
    MoveDouble %ftmp0, %xmm0, @28
    Ret @28
Specials:
    &CCall: function call that uses the C calling convention.
Air after spillEverything, before handleCalleeSaves:
BB#0: ; frequency = nan
    Move $0x1027fd3c0, %rax, @29
    Move %rax, (stack1), @29
    Move $0x105bde000, %rax, @30
    Move %rax, (stack0), @30
    Move (stack0), %rcx, @31
    MoveDouble (%rcx), %xmm0, @31
    MoveDouble %xmm0, (stack27), @31
    Move (stack0), %rax, @32
    MoveDouble 8(%rax), %xmm0, @32
    MoveDouble %xmm0, (stack26), @32
    Move (stack0), %rax, @33
    MoveDouble 16(%rax), %xmm0, @33
    MoveDouble %xmm0, (stack25), @33
    Move (stack0), %rax, @34
    MoveDouble 24(%rax), %xmm0, @34
    MoveDouble %xmm0, (stack24), @34
    Move (stack0), %rax, @35
    MoveDouble 32(%rax), %xmm0, @35
    MoveDouble %xmm0, (stack23), @35
    Move (stack0), %rax, @36
    MoveDouble 40(%rax), %xmm0, @36
    MoveDouble %xmm0, (stack22), @36
    Move (stack0), %rax, @37
    MoveDouble 48(%rax), %xmm0, @37
    MoveDouble %xmm0, (stack21), @37
    Move (stack0), %rax, @38
    MoveDouble 56(%rax), %xmm0, @38
    MoveDouble %xmm0, (stack20), @38
    Move (stack0), %rax, @39
    MoveDouble 64(%rax), %xmm0, @39
    MoveDouble %xmm0, (stack19), @39
    Move (stack0), %rax, @40
    MoveDouble 72(%rax), %xmm0, @40
    MoveDouble %xmm0, (stack18), @40
    Move (stack0), %rax, @41
    MoveDouble 80(%rax), %xmm0, @41
    MoveDouble %xmm0, (stack17), @41
    Move (stack0), %rax, @42
    MoveDouble 88(%rax), %xmm0, @42
    MoveDouble %xmm0, (stack16), @42
    Move (stack0), %rax, @43
    MoveDouble 96(%rax), %xmm0, @43
    MoveDouble %xmm0, (stack15), @43
    Move (stack0), %rax, @44
    MoveDouble 104(%rax), %xmm0, @44
    MoveDouble %xmm0, (stack14), @44
    Move (stack0), %rax, @45
    MoveDouble 112(%rax), %xmm0, @45
    MoveDouble %xmm0, (stack13), @45
    Move (stack0), %rax, @46
    MoveDouble 120(%rax), %xmm0, @46
    MoveDouble %xmm0, (stack12), @46
    Move (stack0), %rax, @47
    MoveDouble 128(%rax), %xmm0, @47
    MoveDouble %xmm0, (stack11), @47
    Move (stack0), %rax, @48
    MoveDouble 136(%rax), %xmm0, @48
    MoveDouble %xmm0, (stack10), @48
    Move (stack0), %rax, @49
    MoveDouble 144(%rax), %xmm0, @49
    MoveDouble %xmm0, (stack9), @49
    Move (stack0), %rax, @50
    MoveDouble 152(%rax), %xmm0, @50
    MoveDouble %xmm0, (stack8), @50
    Move (stack0), %rax, @51
    MoveDouble 160(%rax), %xmm0, @51
    MoveDouble %xmm0, (stack7), @51
    Move (stack0), %rax, @52
    MoveDouble 168(%rax), %xmm0, @52
    MoveDouble %xmm0, (stack6), @52
    Move (stack0), %rax, @53
    MoveDouble 176(%rax), %xmm0, @53
    MoveDouble %xmm0, (stack5), @53
    Move (stack0), %rax, @54
    MoveDouble 184(%rax), %xmm0, @54
    MoveDouble %xmm0, (stack4), @54
    Move (stack0), %rax, @55
    MoveDouble 192(%rax), %xmm0, @55
    MoveDouble %xmm0, (stack3), @55
    Move (stack0), %rax, @56
    MoveDouble 200(%rax), %xmm0, @56
    MoveDouble %xmm0, (stack2), @56
    MoveDouble (stack2), %xmm1, @27
    MoveDouble %xmm1, 136(callArg), @27
    MoveDouble (stack3), %xmm0, @27
    MoveDouble %xmm0, 128(callArg), @27
    MoveDouble (stack4), %xmm0, @27
    MoveDouble %xmm0, 120(callArg), @27
    MoveDouble (stack5), %xmm0, @27
    MoveDouble %xmm0, 112(callArg), @27
    MoveDouble (stack6), %xmm0, @27
    MoveDouble %xmm0, 104(callArg), @27
    MoveDouble (stack7), %xmm0, @27
    MoveDouble %xmm0, 96(callArg), @27
    MoveDouble (stack8), %xmm0, @27
    MoveDouble %xmm0, 88(callArg), @27
    MoveDouble (stack9), %xmm0, @27
    MoveDouble %xmm0, 80(callArg), @27
    MoveDouble (stack10), %xmm0, @27
    MoveDouble %xmm0, 72(callArg), @27
    MoveDouble (stack11), %xmm0, @27
    MoveDouble %xmm0, 64(callArg), @27
    MoveDouble (stack12), %xmm0, @27
    MoveDouble %xmm0, 56(callArg), @27
    MoveDouble (stack13), %xmm0, @27
    MoveDouble %xmm0, 48(callArg), @27
    MoveDouble (stack14), %xmm0, @27
    MoveDouble %xmm0, 40(callArg), @27
    MoveDouble (stack15), %xmm0, @27
    MoveDouble %xmm0, 32(callArg), @27
    MoveDouble (stack16), %xmm0, @27
    MoveDouble %xmm0, 24(callArg), @27
    MoveDouble (stack17), %xmm0, @27
    MoveDouble %xmm0, 16(callArg), @27
    MoveDouble (stack18), %xmm0, @27
    MoveDouble %xmm0, 8(callArg), @27
    MoveDouble (stack19), %xmm0, @27
    MoveDouble %xmm0, (callArg), @27
    MoveDouble (stack27), %xmm0, @27
    MoveDouble (stack26), %xmm1, @27
    MoveDouble (stack25), %xmm2, @27
    MoveDouble (stack24), %xmm3, @27
    MoveDouble (stack23), %xmm4, @27
    MoveDouble (stack22), %xmm5, @27
    MoveDouble (stack21), %xmm6, @27
    MoveDouble (stack20), %xmm7, @27
    Patch &CCall, (stack1), %rax, %rdx, %xmm0, %xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7, @27
    MoveDouble %xmm0, (stack28), @27
    MoveDouble (stack28), %xmm0, @28
    Ret @28
Stack slots:
    stack0: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack1: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack2: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack3: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack4: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack5: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack6: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack7: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack8: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack9: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack10: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack11: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack12: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack13: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack14: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack15: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack16: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack17: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack18: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack19: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack20: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack21: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack22: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack23: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack24: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack25: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack26: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack27: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack28: byteSize = 8, offsetFromFP = 0, kind = Anonymous
Specials:
    &CCall: function call that uses the C calling convention.
Air after handleCalleeSaves, before allocateStack:
BB#0: ; frequency = nan
    Move $0x1027fd3c0, %rax, @29
    Move %rax, (stack1), @29
    Move $0x105bde000, %rax, @30
    Move %rax, (stack0), @30
    Move (stack0), %rcx, @31
    MoveDouble (%rcx), %xmm0, @31
    MoveDouble %xmm0, (stack27), @31
    Move (stack0), %rax, @32
    MoveDouble 8(%rax), %xmm0, @32
    MoveDouble %xmm0, (stack26), @32
    Move (stack0), %rax, @33
    MoveDouble 16(%rax), %xmm0, @33
    MoveDouble %xmm0, (stack25), @33
    Move (stack0), %rax, @34
    MoveDouble 24(%rax), %xmm0, @34
    MoveDouble %xmm0, (stack24), @34
    Move (stack0), %rax, @35
    MoveDouble 32(%rax), %xmm0, @35
    MoveDouble %xmm0, (stack23), @35
    Move (stack0), %rax, @36
    MoveDouble 40(%rax), %xmm0, @36
    MoveDouble %xmm0, (stack22), @36
    Move (stack0), %rax, @37
    MoveDouble 48(%rax), %xmm0, @37
    MoveDouble %xmm0, (stack21), @37
    Move (stack0), %rax, @38
    MoveDouble 56(%rax), %xmm0, @38
    MoveDouble %xmm0, (stack20), @38
    Move (stack0), %rax, @39
    MoveDouble 64(%rax), %xmm0, @39
    MoveDouble %xmm0, (stack19), @39
    Move (stack0), %rax, @40
    MoveDouble 72(%rax), %xmm0, @40
    MoveDouble %xmm0, (stack18), @40
    Move (stack0), %rax, @41
    MoveDouble 80(%rax), %xmm0, @41
    MoveDouble %xmm0, (stack17), @41
    Move (stack0), %rax, @42
    MoveDouble 88(%rax), %xmm0, @42
    MoveDouble %xmm0, (stack16), @42
    Move (stack0), %rax, @43
    MoveDouble 96(%rax), %xmm0, @43
    MoveDouble %xmm0, (stack15), @43
    Move (stack0), %rax, @44
    MoveDouble 104(%rax), %xmm0, @44
    MoveDouble %xmm0, (stack14), @44
    Move (stack0), %rax, @45
    MoveDouble 112(%rax), %xmm0, @45
    MoveDouble %xmm0, (stack13), @45
    Move (stack0), %rax, @46
    MoveDouble 120(%rax), %xmm0, @46
    MoveDouble %xmm0, (stack12), @46
    Move (stack0), %rax, @47
    MoveDouble 128(%rax), %xmm0, @47
    MoveDouble %xmm0, (stack11), @47
    Move (stack0), %rax, @48
    MoveDouble 136(%rax), %xmm0, @48
    MoveDouble %xmm0, (stack10), @48
    Move (stack0), %rax, @49
    MoveDouble 144(%rax), %xmm0, @49
    MoveDouble %xmm0, (stack9), @49
    Move (stack0), %rax, @50
    MoveDouble 152(%rax), %xmm0, @50
    MoveDouble %xmm0, (stack8), @50
    Move (stack0), %rax, @51
    MoveDouble 160(%rax), %xmm0, @51
    MoveDouble %xmm0, (stack7), @51
    Move (stack0), %rax, @52
    MoveDouble 168(%rax), %xmm0, @52
    MoveDouble %xmm0, (stack6), @52
    Move (stack0), %rax, @53
    MoveDouble 176(%rax), %xmm0, @53
    MoveDouble %xmm0, (stack5), @53
    Move (stack0), %rax, @54
    MoveDouble 184(%rax), %xmm0, @54
    MoveDouble %xmm0, (stack4), @54
    Move (stack0), %rax, @55
    MoveDouble 192(%rax), %xmm0, @55
    MoveDouble %xmm0, (stack3), @55
    Move (stack0), %rax, @56
    MoveDouble 200(%rax), %xmm0, @56
    MoveDouble %xmm0, (stack2), @56
    MoveDouble (stack2), %xmm1, @27
    MoveDouble %xmm1, 136(callArg), @27
    MoveDouble (stack3), %xmm0, @27
    MoveDouble %xmm0, 128(callArg), @27
    MoveDouble (stack4), %xmm0, @27
    MoveDouble %xmm0, 120(callArg), @27
    MoveDouble (stack5), %xmm0, @27
    MoveDouble %xmm0, 112(callArg), @27
    MoveDouble (stack6), %xmm0, @27
    MoveDouble %xmm0, 104(callArg), @27
    MoveDouble (stack7), %xmm0, @27
    MoveDouble %xmm0, 96(callArg), @27
    MoveDouble (stack8), %xmm0, @27
    MoveDouble %xmm0, 88(callArg), @27
    MoveDouble (stack9), %xmm0, @27
    MoveDouble %xmm0, 80(callArg), @27
    MoveDouble (stack10), %xmm0, @27
    MoveDouble %xmm0, 72(callArg), @27
    MoveDouble (stack11), %xmm0, @27
    MoveDouble %xmm0, 64(callArg), @27
    MoveDouble (stack12), %xmm0, @27
    MoveDouble %xmm0, 56(callArg), @27
    MoveDouble (stack13), %xmm0, @27
    MoveDouble %xmm0, 48(callArg), @27
    MoveDouble (stack14), %xmm0, @27
    MoveDouble %xmm0, 40(callArg), @27
    MoveDouble (stack15), %xmm0, @27
    MoveDouble %xmm0, 32(callArg), @27
    MoveDouble (stack16), %xmm0, @27
    MoveDouble %xmm0, 24(callArg), @27
    MoveDouble (stack17), %xmm0, @27
    MoveDouble %xmm0, 16(callArg), @27
    MoveDouble (stack18), %xmm0, @27
    MoveDouble %xmm0, 8(callArg), @27
    MoveDouble (stack19), %xmm0, @27
    MoveDouble %xmm0, (callArg), @27
    MoveDouble (stack27), %xmm0, @27
    MoveDouble (stack26), %xmm1, @27
    MoveDouble (stack25), %xmm2, @27
    MoveDouble (stack24), %xmm3, @27
    MoveDouble (stack23), %xmm4, @27
    MoveDouble (stack22), %xmm5, @27
    MoveDouble (stack21), %xmm6, @27
    MoveDouble (stack20), %xmm7, @27
    Patch &CCall, (stack1), %rax, %rdx, %xmm0, %xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7, @27
    MoveDouble %xmm0, (stack28), @27
    MoveDouble (stack28), %xmm0, @28
    Ret @28
Stack slots:
    stack0: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack1: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack2: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack3: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack4: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack5: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack6: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack7: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack8: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack9: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack10: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack11: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack12: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack13: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack14: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack15: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack16: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack17: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack18: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack19: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack20: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack21: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack22: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack23: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack24: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack25: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack26: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack27: byteSize = 8, offsetFromFP = 0, kind = Anonymous
    stack28: byteSize = 8, offsetFromFP = 0, kind = Anonymous
Specials:
    &CCall: function call that uses the C calling convention.
Air after allocateStack, before simplifyCFG:
BB#0: ; frequency = nan
    Move $0x1027fd3c0, %rax, @29
    Move %rax, -16(%rbp), @29
    Move $0x105bde000, %rax, @30
    Move %rax, -8(%rbp), @30
    Move -8(%rbp), %rcx, @31
    MoveDouble (%rcx), %xmm0, @31
    MoveDouble %xmm0, -216(%rbp), @31
    Move -8(%rbp), %rax, @32
    MoveDouble 8(%rax), %xmm0, @32
    MoveDouble %xmm0, -208(%rbp), @32
    Move -8(%rbp), %rax, @33
    MoveDouble 16(%rax), %xmm0, @33
    MoveDouble %xmm0, -200(%rbp), @33
    Move -8(%rbp), %rax, @34
    MoveDouble 24(%rax), %xmm0, @34
    MoveDouble %xmm0, -192(%rbp), @34
    Move -8(%rbp), %rax, @35
    MoveDouble 32(%rax), %xmm0, @35
    MoveDouble %xmm0, -184(%rbp), @35
    Move -8(%rbp), %rax, @36
    MoveDouble 40(%rax), %xmm0, @36
    MoveDouble %xmm0, -176(%rbp), @36
    Move -8(%rbp), %rax, @37
    MoveDouble 48(%rax), %xmm0, @37
    MoveDouble %xmm0, -168(%rbp), @37
    Move -8(%rbp), %rax, @38
    MoveDouble 56(%rax), %xmm0, @38
    MoveDouble %xmm0, -160(%rbp), @38
    Move -8(%rbp), %rax, @39
    MoveDouble 64(%rax), %xmm0, @39
    MoveDouble %xmm0, -152(%rbp), @39
    Move -8(%rbp), %rax, @40
    MoveDouble 72(%rax), %xmm0, @40
    MoveDouble %xmm0, -144(%rbp), @40
    Move -8(%rbp), %rax, @41
    MoveDouble 80(%rax), %xmm0, @41
    MoveDouble %xmm0, -136(%rbp), @41
    Move -8(%rbp), %rax, @42
    MoveDouble 88(%rax), %xmm0, @42
    MoveDouble %xmm0, -128(%rbp), @42
    Move -8(%rbp), %rax, @43
    MoveDouble 96(%rax), %xmm0, @43
    MoveDouble %xmm0, -120(%rbp), @43
    Move -8(%rbp), %rax, @44
    MoveDouble 104(%rax), %xmm0, @44
    MoveDouble %xmm0, -112(%rbp), @44
    Move -8(%rbp), %rax, @45
    MoveDouble 112(%rax), %xmm0, @45
    MoveDouble %xmm0, -104(%rbp), @45
    Move -8(%rbp), %rax, @46
    MoveDouble 120(%rax), %xmm0, @46
    MoveDouble %xmm0, -96(%rbp), @46
    Move -8(%rbp), %rax, @47
    MoveDouble 128(%rax), %xmm0, @47
    MoveDouble %xmm0, -88(%rbp), @47
    Move -8(%rbp), %rax, @48
    MoveDouble 136(%rax), %xmm0, @48
    MoveDouble %xmm0, -80(%rbp), @48
    Move -8(%rbp), %rax, @49
    MoveDouble 144(%rax), %xmm0, @49
    MoveDouble %xmm0, -72(%rbp), @49
    Move -8(%rbp), %rax, @50
    MoveDouble 152(%rax), %xmm0, @50
    MoveDouble %xmm0, -64(%rbp), @50
    Move -8(%rbp), %rax, @51
    MoveDouble 160(%rax), %xmm0, @51
    MoveDouble %xmm0, -56(%rbp), @51
    Move -8(%rbp), %rax, @52
    MoveDouble 168(%rax), %xmm0, @52
    MoveDouble %xmm0, -48(%rbp), @52
    Move -8(%rbp), %rax, @53
    MoveDouble 176(%rax), %xmm0, @53
    MoveDouble %xmm0, -40(%rbp), @53
    Move -8(%rbp), %rax, @54
    MoveDouble 184(%rax), %xmm0, @54
    MoveDouble %xmm0, -32(%rbp), @54
    Move -8(%rbp), %rax, @55
    MoveDouble 192(%rax), %xmm0, @55
    MoveDouble %xmm0, -24(%rbp), @55
    Move -8(%rbp), %rax, @56
    MoveDouble 200(%rax), %xmm0, @56
    MoveDouble %xmm0, -8(%rbp), @56
    MoveDouble -8(%rbp), %xmm1, @27
    MoveDouble %xmm1, -232(%rbp), @27
    MoveDouble -24(%rbp), %xmm0, @27
    MoveDouble %xmm0, -240(%rbp), @27
    MoveDouble -32(%rbp), %xmm0, @27
    MoveDouble %xmm0, -248(%rbp), @27
    MoveDouble -40(%rbp), %xmm0, @27
    MoveDouble %xmm0, -256(%rbp), @27
    MoveDouble -48(%rbp), %xmm0, @27
    MoveDouble %xmm0, -264(%rbp), @27
    MoveDouble -56(%rbp), %xmm0, @27
    MoveDouble %xmm0, -272(%rbp), @27
    MoveDouble -64(%rbp), %xmm0, @27
    MoveDouble %xmm0, -280(%rbp), @27
    MoveDouble -72(%rbp), %xmm0, @27
    MoveDouble %xmm0, -288(%rbp), @27
    MoveDouble -80(%rbp), %xmm0, @27
    MoveDouble %xmm0, -296(%rbp), @27
    MoveDouble -88(%rbp), %xmm0, @27
    MoveDouble %xmm0, -304(%rbp), @27
    MoveDouble -96(%rbp), %xmm0, @27
    MoveDouble %xmm0, -312(%rbp), @27
    MoveDouble -104(%rbp), %xmm0, @27
    MoveDouble %xmm0, -320(%rbp), @27
    MoveDouble -112(%rbp), %xmm0, @27
    MoveDouble %xmm0, -328(%rbp), @27
    MoveDouble -120(%rbp), %xmm0, @27
    MoveDouble %xmm0, -336(%rbp), @27
    MoveDouble -128(%rbp), %xmm0, @27
    MoveDouble %xmm0, -344(%rbp), @27
    MoveDouble -136(%rbp), %xmm0, @27
    MoveDouble %xmm0, -352(%rbp), @27
    MoveDouble -144(%rbp), %xmm0, @27
    MoveDouble %xmm0, -360(%rbp), @27
    MoveDouble -152(%rbp), %xmm0, @27
    MoveDouble %xmm0, -368(%rbp), @27
    MoveDouble -216(%rbp), %xmm0, @27
    MoveDouble -208(%rbp), %xmm1, @27
    MoveDouble -200(%rbp), %xmm2, @27
    MoveDouble -192(%rbp), %xmm3, @27
    MoveDouble -184(%rbp), %xmm4, @27
    MoveDouble -176(%rbp), %xmm5, @27
    MoveDouble -168(%rbp), %xmm6, @27
    MoveDouble -160(%rbp), %xmm7, @27
    Patch &CCall, -16(%rbp), %rax, %rdx, %xmm0, %xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7, @27
    MoveDouble %xmm0, -8(%rbp), @27
    MoveDouble -8(%rbp), %xmm0, @28
    Ret @28
Stack slots:
    stack0: byteSize = 8, offsetFromFP = -8, kind = Anonymous
    stack1: byteSize = 8, offsetFromFP = -16, kind = Anonymous
    stack2: byteSize = 8, offsetFromFP = -8, kind = Anonymous
    stack3: byteSize = 8, offsetFromFP = -24, kind = Anonymous
    stack4: byteSize = 8, offsetFromFP = -32, kind = Anonymous
    stack5: byteSize = 8, offsetFromFP = -40, kind = Anonymous
    stack6: byteSize = 8, offsetFromFP = -48, kind = Anonymous
    stack7: byteSize = 8, offsetFromFP = -56, kind = Anonymous
    stack8: byteSize = 8, offsetFromFP = -64, kind = Anonymous
    stack9: byteSize = 8, offsetFromFP = -72, kind = Anonymous
    stack10: byteSize = 8, offsetFromFP = -80, kind = Anonymous
    stack11: byteSize = 8, offsetFromFP = -88, kind = Anonymous
    stack12: byteSize = 8, offsetFromFP = -96, kind = Anonymous
    stack13: byteSize = 8, offsetFromFP = -104, kind = Anonymous
    stack14: byteSize = 8, offsetFromFP = -112, kind = Anonymous
    stack15: byteSize = 8, offsetFromFP = -120, kind = Anonymous
    stack16: byteSize = 8, offsetFromFP = -128, kind = Anonymous
    stack17: byteSize = 8, offsetFromFP = -136, kind = Anonymous
    stack18: byteSize = 8, offsetFromFP = -144, kind = Anonymous
    stack19: byteSize = 8, offsetFromFP = -152, kind = Anonymous
    stack20: byteSize = 8, offsetFromFP = -160, kind = Anonymous
    stack21: byteSize = 8, offsetFromFP = -168, kind = Anonymous
    stack22: byteSize = 8, offsetFromFP = -176, kind = Anonymous
    stack23: byteSize = 8, offsetFromFP = -184, kind = Anonymous
    stack24: byteSize = 8, offsetFromFP = -192, kind = Anonymous
    stack25: byteSize = 8, offsetFromFP = -200, kind = Anonymous
    stack26: byteSize = 8, offsetFromFP = -208, kind = Anonymous
    stack27: byteSize = 8, offsetFromFP = -216, kind = Anonymous
    stack28: byteSize = 8, offsetFromFP = -8, kind = Anonymous
Specials:
    &CCall: function call that uses the C calling convention.
Frame size: 368
Call arg area size: 144
Air after simplifyCFG, before reportUsedRegisters:
BB#0: ; frequency = nan
    Move $0x1027fd3c0, %rax, @29
    Move %rax, -16(%rbp), @29
    Move $0x105bde000, %rax, @30
    Move %rax, -8(%rbp), @30
    Move -8(%rbp), %rcx, @31
    MoveDouble (%rcx), %xmm0, @31
    MoveDouble %xmm0, -216(%rbp), @31
    Move -8(%rbp), %rax, @32
    MoveDouble 8(%rax), %xmm0, @32
    MoveDouble %xmm0, -208(%rbp), @32
    Move -8(%rbp), %rax, @33
    MoveDouble 16(%rax), %xmm0, @33
    MoveDouble %xmm0, -200(%rbp), @33
    Move -8(%rbp), %rax, @34
    MoveDouble 24(%rax), %xmm0, @34
    MoveDouble %xmm0, -192(%rbp), @34
    Move -8(%rbp), %rax, @35
    MoveDouble 32(%rax), %xmm0, @35
    MoveDouble %xmm0, -184(%rbp), @35
    Move -8(%rbp), %rax, @36
    MoveDouble 40(%rax), %xmm0, @36
    MoveDouble %xmm0, -176(%rbp), @36
    Move -8(%rbp), %rax, @37
    MoveDouble 48(%rax), %xmm0, @37
    MoveDouble %xmm0, -168(%rbp), @37
    Move -8(%rbp), %rax, @38
    MoveDouble 56(%rax), %xmm0, @38
    MoveDouble %xmm0, -160(%rbp), @38
    Move -8(%rbp), %rax, @39
    MoveDouble 64(%rax), %xmm0, @39
    MoveDouble %xmm0, -152(%rbp), @39
    Move -8(%rbp), %rax, @40
    MoveDouble 72(%rax), %xmm0, @40
    MoveDouble %xmm0, -144(%rbp), @40
    Move -8(%rbp), %rax, @41
    MoveDouble 80(%rax), %xmm0, @41
    MoveDouble %xmm0, -136(%rbp), @41
    Move -8(%rbp), %rax, @42
    MoveDouble 88(%rax), %xmm0, @42
    MoveDouble %xmm0, -128(%rbp), @42
    Move -8(%rbp), %rax, @43
    MoveDouble 96(%rax), %xmm0, @43
    MoveDouble %xmm0, -120(%rbp), @43
    Move -8(%rbp), %rax, @44
    MoveDouble 104(%rax), %xmm0, @44
    MoveDouble %xmm0, -112(%rbp), @44
    Move -8(%rbp), %rax, @45
    MoveDouble 112(%rax), %xmm0, @45
    MoveDouble %xmm0, -104(%rbp), @45
    Move -8(%rbp), %rax, @46
    MoveDouble 120(%rax), %xmm0, @46
    MoveDouble %xmm0, -96(%rbp), @46
    Move -8(%rbp), %rax, @47
    MoveDouble 128(%rax), %xmm0, @47
    MoveDouble %xmm0, -88(%rbp), @47
    Move -8(%rbp), %rax, @48
    MoveDouble 136(%rax), %xmm0, @48
    MoveDouble %xmm0, -80(%rbp), @48
    Move -8(%rbp), %rax, @49
    MoveDouble 144(%rax), %xmm0, @49
    MoveDouble %xmm0, -72(%rbp), @49
    Move -8(%rbp), %rax, @50
    MoveDouble 152(%rax), %xmm0, @50
    MoveDouble %xmm0, -64(%rbp), @50
    Move -8(%rbp), %rax, @51
    MoveDouble 160(%rax), %xmm0, @51
    MoveDouble %xmm0, -56(%rbp), @51
    Move -8(%rbp), %rax, @52
    MoveDouble 168(%rax), %xmm0, @52
    MoveDouble %xmm0, -48(%rbp), @52
    Move -8(%rbp), %rax, @53
    MoveDouble 176(%rax), %xmm0, @53
    MoveDouble %xmm0, -40(%rbp), @53
    Move -8(%rbp), %rax, @54
    MoveDouble 184(%rax), %xmm0, @54
    MoveDouble %xmm0, -32(%rbp), @54
    Move -8(%rbp), %rax, @55
    MoveDouble 192(%rax), %xmm0, @55
    MoveDouble %xmm0, -24(%rbp), @55
    Move -8(%rbp), %rax, @56
    MoveDouble 200(%rax), %xmm0, @56
    MoveDouble %xmm0, -8(%rbp), @56
    MoveDouble -8(%rbp), %xmm1, @27
    MoveDouble %xmm1, -232(%rbp), @27
    MoveDouble -24(%rbp), %xmm0, @27
    MoveDouble %xmm0, -240(%rbp), @27
    MoveDouble -32(%rbp), %xmm0, @27
    MoveDouble %xmm0, -248(%rbp), @27
    MoveDouble -40(%rbp), %xmm0, @27
    MoveDouble %xmm0, -256(%rbp), @27
    MoveDouble -48(%rbp), %xmm0, @27
    MoveDouble %xmm0, -264(%rbp), @27
    MoveDouble -56(%rbp), %xmm0, @27
    MoveDouble %xmm0, -272(%rbp), @27
    MoveDouble -64(%rbp), %xmm0, @27
    MoveDouble %xmm0, -280(%rbp), @27
    MoveDouble -72(%rbp), %xmm0, @27
    MoveDouble %xmm0, -288(%rbp), @27
    MoveDouble -80(%rbp), %xmm0, @27
    MoveDouble %xmm0, -296(%rbp), @27
    MoveDouble -88(%rbp), %xmm0, @27
    MoveDouble %xmm0, -304(%rbp), @27
    MoveDouble -96(%rbp), %xmm0, @27
    MoveDouble %xmm0, -312(%rbp), @27
    MoveDouble -104(%rbp), %xmm0, @27
    MoveDouble %xmm0, -320(%rbp), @27
    MoveDouble -112(%rbp), %xmm0, @27
    MoveDouble %xmm0, -328(%rbp), @27
    MoveDouble -120(%rbp), %xmm0, @27
    MoveDouble %xmm0, -336(%rbp), @27
    MoveDouble -128(%rbp), %xmm0, @27
    MoveDouble %xmm0, -344(%rbp), @27
    MoveDouble -136(%rbp), %xmm0, @27
    MoveDouble %xmm0, -352(%rbp), @27
    MoveDouble -144(%rbp), %xmm0, @27
    MoveDouble %xmm0, -360(%rbp), @27
    MoveDouble -152(%rbp), %xmm0, @27
    MoveDouble %xmm0, -368(%rbp), @27
    MoveDouble -216(%rbp), %xmm0, @27
    MoveDouble -208(%rbp), %xmm1, @27
    MoveDouble -200(%rbp), %xmm2, @27
    MoveDouble -192(%rbp), %xmm3, @27
    MoveDouble -184(%rbp), %xmm4, @27
    MoveDouble -176(%rbp), %xmm5, @27
    MoveDouble -168(%rbp), %xmm6, @27
    MoveDouble -160(%rbp), %xmm7, @27
    Patch &CCall, -16(%rbp), %rax, %rdx, %xmm0, %xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7, @27
    MoveDouble %xmm0, -8(%rbp), @27
    MoveDouble -8(%rbp), %xmm0, @28
    Ret @28
Stack slots:
    stack0: byteSize = 8, offsetFromFP = -8, kind = Anonymous
    stack1: byteSize = 8, offsetFromFP = -16, kind = Anonymous
    stack2: byteSize = 8, offsetFromFP = -8, kind = Anonymous
    stack3: byteSize = 8, offsetFromFP = -24, kind = Anonymous
    stack4: byteSize = 8, offsetFromFP = -32, kind = Anonymous
    stack5: byteSize = 8, offsetFromFP = -40, kind = Anonymous
    stack6: byteSize = 8, offsetFromFP = -48, kind = Anonymous
    stack7: byteSize = 8, offsetFromFP = -56, kind = Anonymous
    stack8: byteSize = 8, offsetFromFP = -64, kind = Anonymous
    stack9: byteSize = 8, offsetFromFP = -72, kind = Anonymous
    stack10: byteSize = 8, offsetFromFP = -80, kind = Anonymous
    stack11: byteSize = 8, offsetFromFP = -88, kind = Anonymous
    stack12: byteSize = 8, offsetFromFP = -96, kind = Anonymous
    stack13: byteSize = 8, offsetFromFP = -104, kind = Anonymous
    stack14: byteSize = 8, offsetFromFP = -112, kind = Anonymous
    stack15: byteSize = 8, offsetFromFP = -120, kind = Anonymous
    stack16: byteSize = 8, offsetFromFP = -128, kind = Anonymous
    stack17: byteSize = 8, offsetFromFP = -136, kind = Anonymous
    stack18: byteSize = 8, offsetFromFP = -144, kind = Anonymous
    stack19: byteSize = 8, offsetFromFP = -152, kind = Anonymous
    stack20: byteSize = 8, offsetFromFP = -160, kind = Anonymous
    stack21: byteSize = 8, offsetFromFP = -168, kind = Anonymous
    stack22: byteSize = 8, offsetFromFP = -176, kind = Anonymous
    stack23: byteSize = 8, offsetFromFP = -184, kind = Anonymous
    stack24: byteSize = 8, offsetFromFP = -192, kind = Anonymous
    stack25: byteSize = 8, offsetFromFP = -200, kind = Anonymous
    stack26: byteSize = 8, offsetFromFP = -208, kind = Anonymous
    stack27: byteSize = 8, offsetFromFP = -216, kind = Anonymous
    stack28: byteSize = 8, offsetFromFP = -8, kind = Anonymous
Specials:
    &CCall: function call that uses the C calling convention.
Frame size: 368
Call arg area size: 144
Air after reportUsedRegisters, before generation:
BB#0: ; frequency = nan
    Move $0x1027fd3c0, %rax, @29
    Move %rax, -16(%rbp), @29
    Move $0x105bde000, %rax, @30
    Move %rax, -8(%rbp), @30
    Move -8(%rbp), %rcx, @31
    MoveDouble (%rcx), %xmm0, @31
    MoveDouble %xmm0, -216(%rbp), @31
    Move -8(%rbp), %rax, @32
    MoveDouble 8(%rax), %xmm0, @32
    MoveDouble %xmm0, -208(%rbp), @32
    Move -8(%rbp), %rax, @33
    MoveDouble 16(%rax), %xmm0, @33
    MoveDouble %xmm0, -200(%rbp), @33
    Move -8(%rbp), %rax, @34
    MoveDouble 24(%rax), %xmm0, @34
    MoveDouble %xmm0, -192(%rbp), @34
    Move -8(%rbp), %rax, @35
    MoveDouble 32(%rax), %xmm0, @35
    MoveDouble %xmm0, -184(%rbp), @35
    Move -8(%rbp), %rax, @36
    MoveDouble 40(%rax), %xmm0, @36
    MoveDouble %xmm0, -176(%rbp), @36
    Move -8(%rbp), %rax, @37
    MoveDouble 48(%rax), %xmm0, @37
    MoveDouble %xmm0, -168(%rbp), @37
    Move -8(%rbp), %rax, @38
    MoveDouble 56(%rax), %xmm0, @38
    MoveDouble %xmm0, -160(%rbp), @38
    Move -8(%rbp), %rax, @39
    MoveDouble 64(%rax), %xmm0, @39
    MoveDouble %xmm0, -152(%rbp), @39
    Move -8(%rbp), %rax, @40
    MoveDouble 72(%rax), %xmm0, @40
    MoveDouble %xmm0, -144(%rbp), @40
    Move -8(%rbp), %rax, @41
    MoveDouble 80(%rax), %xmm0, @41
    MoveDouble %xmm0, -136(%rbp), @41
    Move -8(%rbp), %rax, @42
    MoveDouble 88(%rax), %xmm0, @42
    MoveDouble %xmm0, -128(%rbp), @42
    Move -8(%rbp), %rax, @43
    MoveDouble 96(%rax), %xmm0, @43
    MoveDouble %xmm0, -120(%rbp), @43
    Move -8(%rbp), %rax, @44
    MoveDouble 104(%rax), %xmm0, @44
    MoveDouble %xmm0, -112(%rbp), @44
    Move -8(%rbp), %rax, @45
    MoveDouble 112(%rax), %xmm0, @45
    MoveDouble %xmm0, -104(%rbp), @45
    Move -8(%rbp), %rax, @46
    MoveDouble 120(%rax), %xmm0, @46
    MoveDouble %xmm0, -96(%rbp), @46
    Move -8(%rbp), %rax, @47
    MoveDouble 128(%rax), %xmm0, @47
    MoveDouble %xmm0, -88(%rbp), @47
    Move -8(%rbp), %rax, @48
    MoveDouble 136(%rax), %xmm0, @48
    MoveDouble %xmm0, -80(%rbp), @48
    Move -8(%rbp), %rax, @49
    MoveDouble 144(%rax), %xmm0, @49
    MoveDouble %xmm0, -72(%rbp), @49
    Move -8(%rbp), %rax, @50
    MoveDouble 152(%rax), %xmm0, @50
    MoveDouble %xmm0, -64(%rbp), @50
    Move -8(%rbp), %rax, @51
    MoveDouble 160(%rax), %xmm0, @51
    MoveDouble %xmm0, -56(%rbp), @51
    Move -8(%rbp), %rax, @52
    MoveDouble 168(%rax), %xmm0, @52
    MoveDouble %xmm0, -48(%rbp), @52
    Move -8(%rbp), %rax, @53
    MoveDouble 176(%rax), %xmm0, @53
    MoveDouble %xmm0, -40(%rbp), @53
    Move -8(%rbp), %rax, @54
    MoveDouble 184(%rax), %xmm0, @54
    MoveDouble %xmm0, -32(%rbp), @54
    Move -8(%rbp), %rax, @55
    MoveDouble 192(%rax), %xmm0, @55
    MoveDouble %xmm0, -24(%rbp), @55
    Move -8(%rbp), %rax, @56
    MoveDouble 200(%rax), %xmm0, @56
    MoveDouble %xmm0, -8(%rbp), @56
    MoveDouble -8(%rbp), %xmm1, @27
    MoveDouble %xmm1, -232(%rbp), @27
    MoveDouble -24(%rbp), %xmm0, @27
    MoveDouble %xmm0, -240(%rbp), @27
    MoveDouble -32(%rbp), %xmm0, @27
    MoveDouble %xmm0, -248(%rbp), @27
    MoveDouble -40(%rbp), %xmm0, @27
    MoveDouble %xmm0, -256(%rbp), @27
    MoveDouble -48(%rbp), %xmm0, @27
    MoveDouble %xmm0, -264(%rbp), @27
    MoveDouble -56(%rbp), %xmm0, @27
    MoveDouble %xmm0, -272(%rbp), @27
    MoveDouble -64(%rbp), %xmm0, @27
    MoveDouble %xmm0, -280(%rbp), @27
    MoveDouble -72(%rbp), %xmm0, @27
    MoveDouble %xmm0, -288(%rbp), @27
    MoveDouble -80(%rbp), %xmm0, @27
    MoveDouble %xmm0, -296(%rbp), @27
    MoveDouble -88(%rbp), %xmm0, @27
    MoveDouble %xmm0, -304(%rbp), @27
    MoveDouble -96(%rbp), %xmm0, @27
    MoveDouble %xmm0, -312(%rbp), @27
    MoveDouble -104(%rbp), %xmm0, @27
    MoveDouble %xmm0, -320(%rbp), @27
    MoveDouble -112(%rbp), %xmm0, @27
    MoveDouble %xmm0, -328(%rbp), @27
    MoveDouble -120(%rbp), %xmm0, @27
    MoveDouble %xmm0, -336(%rbp), @27
    MoveDouble -128(%rbp), %xmm0, @27
    MoveDouble %xmm0, -344(%rbp), @27
    MoveDouble -136(%rbp), %xmm0, @27
    MoveDouble %xmm0, -352(%rbp), @27
    MoveDouble -144(%rbp), %xmm0, @27
    MoveDouble %xmm0, -360(%rbp), @27
    MoveDouble -152(%rbp), %xmm0, @27
    MoveDouble %xmm0, -368(%rbp), @27
    MoveDouble -216(%rbp), %xmm0, @27
    MoveDouble -208(%rbp), %xmm1, @27
    MoveDouble -200(%rbp), %xmm2, @27
    MoveDouble -192(%rbp), %xmm3, @27
    MoveDouble -184(%rbp), %xmm4, @27
    MoveDouble -176(%rbp), %xmm5, @27
    MoveDouble -168(%rbp), %xmm6, @27
    MoveDouble -160(%rbp), %xmm7, @27
    Patch &CCall, -16(%rbp), %rax, %rdx, %xmm0, %xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7, @27
    MoveDouble %xmm0, -8(%rbp), @27
    MoveDouble -8(%rbp), %xmm0, @28
    Ret @28
Stack slots:
    stack0: byteSize = 8, offsetFromFP = -8, kind = Anonymous
    stack1: byteSize = 8, offsetFromFP = -16, kind = Anonymous
    stack2: byteSize = 8, offsetFromFP = -8, kind = Anonymous
    stack3: byteSize = 8, offsetFromFP = -24, kind = Anonymous
    stack4: byteSize = 8, offsetFromFP = -32, kind = Anonymous
    stack5: byteSize = 8, offsetFromFP = -40, kind = Anonymous
    stack6: byteSize = 8, offsetFromFP = -48, kind = Anonymous
    stack7: byteSize = 8, offsetFromFP = -56, kind = Anonymous
    stack8: byteSize = 8, offsetFromFP = -64, kind = Anonymous
    stack9: byteSize = 8, offsetFromFP = -72, kind = Anonymous
    stack10: byteSize = 8, offsetFromFP = -80, kind = Anonymous
    stack11: byteSize = 8, offsetFromFP = -88, kind = Anonymous
    stack12: byteSize = 8, offsetFromFP = -96, kind = Anonymous
    stack13: byteSize = 8, offsetFromFP = -104, kind = Anonymous
    stack14: byteSize = 8, offsetFromFP = -112, kind = Anonymous
    stack15: byteSize = 8, offsetFromFP = -120, kind = Anonymous
    stack16: byteSize = 8, offsetFromFP = -128, kind = Anonymous
    stack17: byteSize = 8, offsetFromFP = -136, kind = Anonymous
    stack18: byteSize = 8, offsetFromFP = -144, kind = Anonymous
    stack19: byteSize = 8, offsetFromFP = -152, kind = Anonymous
    stack20: byteSize = 8, offsetFromFP = -160, kind = Anonymous
    stack21: byteSize = 8, offsetFromFP = -168, kind = Anonymous
    stack22: byteSize = 8, offsetFromFP = -176, kind = Anonymous
    stack23: byteSize = 8, offsetFromFP = -184, kind = Anonymous
    stack24: byteSize = 8, offsetFromFP = -192, kind = Anonymous
    stack25: byteSize = 8, offsetFromFP = -200, kind = Anonymous
    stack26: byteSize = 8, offsetFromFP = -208, kind = Anonymous
    stack27: byteSize = 8, offsetFromFP = -216, kind = Anonymous
    stack28: byteSize = 8, offsetFromFP = -8, kind = Anonymous
Specials:
    &CCall: function call that uses the C calling convention.
Frame size: 368
Call arg area size: 144
Generated JIT code for B3::Compilation:
    Code at [0x41ef5d401000, 0x41ef5d401320):
      0x41ef5d401000: push %rbp
      0x41ef5d401001: mov %rsp, %rbp
      0x41ef5d401004: add $0xfffffffffffffe90, %rsp
      0x41ef5d40100b: mov $0x1027fd3c0, %rax
      0x41ef5d401015: mov %rax, -0x10(%rbp)
      0x41ef5d401019: mov $0x105bde000, %rax
      0x41ef5d401023: mov %rax, -0x8(%rbp)
      0x41ef5d401027: mov -0x8(%rbp), %rcx
      0x41ef5d40102b: movsd (%rcx), %xmm0
      0x41ef5d40102f: movsd %xmm0, -0xd8(%rbp)
      0x41ef5d401037: mov -0x8(%rbp), %rax
      0x41ef5d40103b: movsd 0x8(%rax), %xmm0
      0x41ef5d401040: movsd %xmm0, -0xd0(%rbp)
      0x41ef5d401048: mov -0x8(%rbp), %rax
      0x41ef5d40104c: movsd 0x10(%rax), %xmm0
      0x41ef5d401051: movsd %xmm0, -0xc8(%rbp)
      0x41ef5d401059: mov -0x8(%rbp), %rax
      0x41ef5d40105d: movsd 0x18(%rax), %xmm0
      0x41ef5d401062: movsd %xmm0, -0xc0(%rbp)
      0x41ef5d40106a: mov -0x8(%rbp), %rax
      0x41ef5d40106e: movsd 0x20(%rax), %xmm0
      0x41ef5d401073: movsd %xmm0, -0xb8(%rbp)
      0x41ef5d40107b: mov -0x8(%rbp), %rax
      0x41ef5d40107f: movsd 0x28(%rax), %xmm0
      0x41ef5d401084: movsd %xmm0, -0xb0(%rbp)
      0x41ef5d40108c: mov -0x8(%rbp), %rax
      0x41ef5d401090: movsd 0x30(%rax), %xmm0
      0x41ef5d401095: movsd %xmm0, -0xa8(%rbp)
      0x41ef5d40109d: mov -0x8(%rbp), %rax
      0x41ef5d4010a1: movsd 0x38(%rax), %xmm0
      0x41ef5d4010a6: movsd %xmm0, -0xa0(%rbp)
      0x41ef5d4010ae: mov -0x8(%rbp), %rax
      0x41ef5d4010b2: movsd 0x40(%rax), %xmm0
      0x41ef5d4010b7: movsd %xmm0, -0x98(%rbp)
      0x41ef5d4010bf: mov -0x8(%rbp), %rax
      0x41ef5d4010c3: movsd 0x48(%rax), %xmm0
      0x41ef5d4010c8: movsd %xmm0, -0x90(%rbp)
      0x41ef5d4010d0: mov -0x8(%rbp), %rax
      0x41ef5d4010d4: movsd 0x50(%rax), %xmm0
      0x41ef5d4010d9: movsd %xmm0, -0x88(%rbp)
      0x41ef5d4010e1: mov -0x8(%rbp), %rax
      0x41ef5d4010e5: movsd 0x58(%rax), %xmm0
      0x41ef5d4010ea: movsd %xmm0, -0x80(%rbp)
      0x41ef5d4010ef: mov -0x8(%rbp), %rax
      0x41ef5d4010f3: movsd 0x60(%rax), %xmm0
      0x41ef5d4010f8: movsd %xmm0, -0x78(%rbp)
      0x41ef5d4010fd: mov -0x8(%rbp), %rax
      0x41ef5d401101: movsd 0x68(%rax), %xmm0
      0x41ef5d401106: movsd %xmm0, -0x70(%rbp)
      0x41ef5d40110b: mov -0x8(%rbp), %rax
      0x41ef5d40110f: movsd 0x70(%rax), %xmm0
      0x41ef5d401114: movsd %xmm0, -0x68(%rbp)
      0x41ef5d401119: mov -0x8(%rbp), %rax
      0x41ef5d40111d: movsd 0x78(%rax), %xmm0
      0x41ef5d401122: movsd %xmm0, -0x60(%rbp)
      0x41ef5d401127: mov -0x8(%rbp), %rax
      0x41ef5d40112b: movsd 0x80(%rax), %xmm0
      0x41ef5d401133: movsd %xmm0, -0x58(%rbp)
      0x41ef5d401138: mov -0x8(%rbp), %rax
      0x41ef5d40113c: movsd 0x88(%rax), %xmm0
      0x41ef5d401144: movsd %xmm0, -0x50(%rbp)
      0x41ef5d401149: mov -0x8(%rbp), %rax
      0x41ef5d40114d: movsd 0x90(%rax), %xmm0
      0x41ef5d401155: movsd %xmm0, -0x48(%rbp)
      0x41ef5d40115a: mov -0x8(%rbp), %rax
      0x41ef5d40115e: movsd 0x98(%rax), %xmm0
      0x41ef5d401166: movsd %xmm0, -0x40(%rbp)
      0x41ef5d40116b: mov -0x8(%rbp), %rax
      0x41ef5d40116f: movsd 0xa0(%rax), %xmm0
      0x41ef5d401177: movsd %xmm0, -0x38(%rbp)
      0x41ef5d40117c: mov -0x8(%rbp), %rax
      0x41ef5d401180: movsd 0xa8(%rax), %xmm0
      0x41ef5d401188: movsd %xmm0, -0x30(%rbp)
      0x41ef5d40118d: mov -0x8(%rbp), %rax
      0x41ef5d401191: movsd 0xb0(%rax), %xmm0
      0x41ef5d401199: movsd %xmm0, -0x28(%rbp)
      0x41ef5d40119e: mov -0x8(%rbp), %rax
      0x41ef5d4011a2: movsd 0xb8(%rax), %xmm0
      0x41ef5d4011aa: movsd %xmm0, -0x20(%rbp)
      0x41ef5d4011af: mov -0x8(%rbp), %rax
      0x41ef5d4011b3: movsd 0xc0(%rax), %xmm0
      0x41ef5d4011bb: movsd %xmm0, -0x18(%rbp)
      0x41ef5d4011c0: mov -0x8(%rbp), %rax
      0x41ef5d4011c4: movsd 0xc8(%rax), %xmm0
      0x41ef5d4011cc: movsd %xmm0, -0x8(%rbp)
      0x41ef5d4011d1: movsd -0x8(%rbp), %xmm1
      0x41ef5d4011d6: movsd %xmm1, -0xe8(%rbp)
      0x41ef5d4011de: movsd -0x18(%rbp), %xmm0
      0x41ef5d4011e3: movsd %xmm0, -0xf0(%rbp)
      0x41ef5d4011eb: movsd -0x20(%rbp), %xmm0
      0x41ef5d4011f0: movsd %xmm0, -0xf8(%rbp)
      0x41ef5d4011f8: movsd -0x28(%rbp), %xmm0
      0x41ef5d4011fd: movsd %xmm0, -0x100(%rbp)
      0x41ef5d401205: movsd -0x30(%rbp), %xmm0
      0x41ef5d40120a: movsd %xmm0, -0x108(%rbp)
      0x41ef5d401212: movsd -0x38(%rbp), %xmm0
      0x41ef5d401217: movsd %xmm0, -0x110(%rbp)
      0x41ef5d40121f: movsd -0x40(%rbp), %xmm0
      0x41ef5d401224: movsd %xmm0, -0x118(%rbp)
      0x41ef5d40122c: movsd -0x48(%rbp), %xmm0
      0x41ef5d401231: movsd %xmm0, -0x120(%rbp)
      0x41ef5d401239: movsd -0x50(%rbp), %xmm0
      0x41ef5d40123e: movsd %xmm0, -0x128(%rbp)
      0x41ef5d401246: movsd -0x58(%rbp), %xmm0
      0x41ef5d40124b: movsd %xmm0, -0x130(%rbp)
      0x41ef5d401253: movsd -0x60(%rbp), %xmm0
      0x41ef5d401258: movsd %xmm0, -0x138(%rbp)
      0x41ef5d401260: movsd -0x68(%rbp), %xmm0
      0x41ef5d401265: movsd %xmm0, -0x140(%rbp)
      0x41ef5d40126d: movsd -0x70(%rbp), %xmm0
      0x41ef5d401272: movsd %xmm0, -0x148(%rbp)
      0x41ef5d40127a: movsd -0x78(%rbp), %xmm0
      0x41ef5d40127f: movsd %xmm0, -0x150(%rbp)
      0x41ef5d401287: movsd -0x80(%rbp), %xmm0
      0x41ef5d40128c: movsd %xmm0, -0x158(%rbp)
      0x41ef5d401294: movsd -0x88(%rbp), %xmm0
      0x41ef5d40129c: movsd %xmm0, -0x160(%rbp)
      0x41ef5d4012a4: movsd -0x90(%rbp), %xmm0
      0x41ef5d4012ac: movsd %xmm0, -0x168(%rbp)
      0x41ef5d4012b4: movsd -0x98(%rbp), %xmm0
      0x41ef5d4012bc: movsd %xmm0, -0x170(%rbp)
      0x41ef5d4012c4: movsd -0xd8(%rbp), %xmm0
      0x41ef5d4012cc: movsd -0xd0(%rbp), %xmm1
      0x41ef5d4012d4: movsd -0xc8(%rbp), %xmm2
      0x41ef5d4012dc: movsd -0xc0(%rbp), %xmm3
      0x41ef5d4012e4: movsd -0xb8(%rbp), %xmm4
      0x41ef5d4012ec: movsd -0xb0(%rbp), %xmm5
      0x41ef5d4012f4: movsd -0xa8(%rbp), %xmm6
      0x41ef5d4012fc: movsd -0xa0(%rbp), %xmm7
      0x41ef5d401304: call -0x10(%rbp)
      0x41ef5d401307: movsd %xmm0, -0x8(%rbp)
      0x41ef5d40130c: movsd -0x8(%rbp), %xmm0
      0x41ef5d401311: mov %rbp, %rsp
      0x41ef5d401314: pop %rbp
      0x41ef5d401315: ret 
testCallFunctionWithHellaDoubleArguments(): OK!
[pizlo@shakezilla OpenSource]
Comment 2 WebKit Commit Bot 2015-11-09 17:08:12 PST
Attachment 265121 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/b3/testb3.cpp:2726:  l is incorrectly named. Don't use the single letter 'l' as an identifier name.  [readability/naming] [4]
Total errors found: 1 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 3 Saam Barati 2015-11-10 10:27:15 PST
Comment on attachment 265121 [details]
the patch

r=me
Comment 4 Filip Pizlo 2015-11-10 10:36:21 PST
Landed in http://trac.webkit.org/changeset/192255