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 26 27 28 29 30 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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
| std::f64::<impl f64>::powi:
subq $24, %rsp
movsd %xmm0, (%rsp)
movl %edi, 12(%rsp)
movq __powidf2@GOTPCREL(%rip), %rax
callq *%rax
movsd %xmm0, 16(%rsp)
movsd 16(%rsp), %xmm0
addq $24, %rsp
retq
std::f64::<impl f64>::sqrt:
movsd %xmm0, -16(%rsp)
sqrtsd %xmm0, %xmm0
movsd %xmm0, -8(%rsp)
movsd -8(%rsp), %xmm0
retq
playground::Triangle::perimeter_v1:
subq $88, %rsp
movq %rdi, 24(%rsp)
movq %rdi, 56(%rsp)
movsd 16(%rdi), %xmm0
subsd (%rdi), %xmm0
movl $2, %edi
callq std::f64::<impl f64>::powi
movq 24(%rsp), %rdi
movsd %xmm0, 8(%rsp)
movsd 24(%rdi), %xmm0
subsd 8(%rdi), %xmm0
movl $2, %edi
callq std::f64::<impl f64>::powi
movaps %xmm0, %xmm1
movsd 8(%rsp), %xmm0
addsd %xmm1, %xmm0
callq std::f64::<impl f64>::sqrt
movq 24(%rsp), %rdi
movsd %xmm0, 48(%rsp)
movsd %xmm0, 64(%rsp)
movsd 32(%rdi), %xmm0
subsd 16(%rdi), %xmm0
movl $2, %edi
callq std::f64::<impl f64>::powi
movq 24(%rsp), %rdi
movsd %xmm0, 16(%rsp)
movsd 40(%rdi), %xmm0
subsd 24(%rdi), %xmm0
movl $2, %edi
callq std::f64::<impl f64>::powi
movaps %xmm0, %xmm1
movsd 16(%rsp), %xmm0
addsd %xmm1, %xmm0
callq std::f64::<impl f64>::sqrt
movq 24(%rsp), %rdi
movsd %xmm0, 40(%rsp)
movsd %xmm0, 72(%rsp)
movsd (%rdi), %xmm0
subsd 32(%rdi), %xmm0
movl $2, %edi
callq std::f64::<impl f64>::powi
movq 24(%rsp), %rdi
movsd %xmm0, 32(%rsp)
movsd 8(%rdi), %xmm0
subsd 40(%rdi), %xmm0
movl $2, %edi
callq std::f64::<impl f64>::powi
movaps %xmm0, %xmm1
movsd 32(%rsp), %xmm0
addsd %xmm1, %xmm0
callq std::f64::<impl f64>::sqrt
movsd 40(%rsp), %xmm2
movaps %xmm0, %xmm1
movsd 48(%rsp), %xmm0
movsd %xmm1, 80(%rsp)
addsd %xmm2, %xmm0
addsd %xmm1, %xmm0
addq $88, %rsp
retq
playground::Triangle::perimeter_v2:
subq $56, %rsp
movq %rdi, (%rsp)
movq %rdi, 24(%rsp)
movsd (%rdi), %xmm0
movsd 8(%rdi), %xmm1
movsd 16(%rdi), %xmm2
movsd 24(%rdi), %xmm3
callq playground::distance
movq (%rsp), %rdi
movsd %xmm0, 16(%rsp)
movsd %xmm0, 32(%rsp)
movsd 16(%rdi), %xmm0
movsd 24(%rdi), %xmm1
movsd 32(%rdi), %xmm2
movsd 40(%rdi), %xmm3
callq playground::distance
movq (%rsp), %rdi
movsd %xmm0, 8(%rsp)
movsd %xmm0, 40(%rsp)
movsd 32(%rdi), %xmm0
movsd 40(%rdi), %xmm1
movsd (%rdi), %xmm2
movsd 8(%rdi), %xmm3
callq playground::distance
movsd 8(%rsp), %xmm2
movaps %xmm0, %xmm1
movsd 16(%rsp), %xmm0
movsd %xmm1, 48(%rsp)
addsd %xmm2, %xmm0
addsd %xmm1, %xmm0
addq $56, %rsp
retq
playground::distance:
subq $72, %rsp
movsd %xmm2, 8(%rsp)
movaps %xmm1, %xmm2
movaps %xmm0, %xmm1
movsd 8(%rsp), %xmm0
movsd %xmm2, 16(%rsp)
movsd %xmm3, 24(%rsp)
movsd %xmm1, 40(%rsp)
movsd %xmm2, 48(%rsp)
movsd %xmm0, 56(%rsp)
movsd %xmm3, 64(%rsp)
subsd %xmm1, %xmm0
movl $2, %edi
callq std::f64::<impl f64>::powi
movsd 16(%rsp), %xmm1
movaps %xmm0, %xmm2
movsd 24(%rsp), %xmm0
movsd %xmm2, 32(%rsp)
subsd %xmm1, %xmm0
movl $2, %edi
callq std::f64::<impl f64>::powi
movaps %xmm0, %xmm1
movsd 32(%rsp), %xmm0
addsd %xmm1, %xmm0
callq std::f64::<impl f64>::sqrt
addq $72, %rsp
retq |