0000000000477bf0 <BloombergLP::bdldfp::DecimalImpUtil::format(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)>:
M0000000000000000: pushq %rbp ; 1 bytes
M0000000000000001: pushq %r15 ; 2 bytes
M0000000000000003: pushq %r14 ; 2 bytes
M0000000000000005: pushq %r13 ; 2 bytes
M0000000000000007: pushq %r12 ; 2 bytes
M0000000000000009: pushq %rbx ; 1 bytes
M000000000000000a: subq $104, %rsp ; 4 bytes
M000000000000000e: movq %r8, %r13 ; 3 bytes
M0000000000000011: movq %rcx, %r12 ; 3 bytes
M0000000000000014: movq %rdx, %rbp ; 3 bytes
M0000000000000017: movl %esi, %r15d ; 3 bytes
M000000000000001a: movq %rdi, %r14 ; 3 bytes
M000000000000001d: movq %rdx, %rdi ; 3 bytes
M0000000000000020: movq %rcx, %rsi ; 3 bytes
M0000000000000023: callq 0x4a2ad0 <__bid128_class> ; 5 bytes
M0000000000000028: movl $4294967295, %ecx ; 5 bytes
M000000000000002d: cmpl $9, %eax ; 3 bytes
M0000000000000030: ja 0x477c2b <BloombergLP::bdldfp::DecimalImpUtil::format(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)+0x3b> ; 2 bytes
M0000000000000032: cltq ; 2 bytes
M0000000000000034: movl 5285760(,%rax,4), %ecx ; 7 bytes
M000000000000003b: testq %r12, %r12 ; 3 bytes
M000000000000003e: js 0x477c45 <BloombergLP::bdldfp::DecimalImpUtil::format(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)+0x55> ; 2 bytes
M0000000000000040: movb $43, 11(%rsp) ; 5 bytes
M0000000000000045: cmpl $0, 8(%r13) ; 5 bytes
M000000000000004a: jne 0x477c4a <BloombergLP::bdldfp::DecimalImpUtil::format(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)+0x5a> ; 2 bytes
M000000000000004c: movq %rbp, %r8 ; 3 bytes
M000000000000004f: xorl %edx, %edx ; 2 bytes
M0000000000000051: xorl %ebx, %ebx ; 2 bytes
M0000000000000053: jmp 0x477c54 <BloombergLP::bdldfp::DecimalImpUtil::format(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)+0x64> ; 2 bytes
M0000000000000055: movb $45, 11(%rsp) ; 5 bytes
M000000000000005a: movq %rbp, %r8 ; 3 bytes
M000000000000005d: movl $1, %ebx ; 5 bytes
M0000000000000062: movb $1, %dl ; 2 bytes
M0000000000000064: movl %r15d, %ebp ; 3 bytes
M0000000000000067: subl %ebx, %ebp ; 2 bytes
M0000000000000069: movl %ebx, %edi ; 2 bytes
M000000000000006b: movq %r14, 40(%rsp) ; 5 bytes
M0000000000000070: addq %r14, %rdi ; 3 bytes
M0000000000000073: xorl %r14d, %r14d ; 3 bytes
M0000000000000076: leal -2(%rcx), %eax ; 3 bytes
M0000000000000079: cmpl $3, %eax ; 3 bytes
M000000000000007c: jae 0x477cdd <BloombergLP::bdldfp::DecimalImpUtil::format(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)+0xed> ; 2 bytes
M000000000000007e: movl %ebp, 36(%rsp) ; 4 bytes
M0000000000000082: movq %rdi, 24(%rsp) ; 5 bytes
M0000000000000087: movl %ebx, 12(%rsp) ; 4 bytes
M000000000000008b: movl %edx, 16(%rsp) ; 4 bytes
M000000000000008f: cmpl $2, 4(%r13) ; 5 bytes
M0000000000000094: je 0x477d34 <BloombergLP::bdldfp::DecimalImpUtil::format(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)+0x144> ; 6 bytes
M000000000000009a: movq %r8, %rdi ; 3 bytes
M000000000000009d: movq %r12, %rsi ; 3 bytes
M00000000000000a0: callq 0x476d60 <BloombergLP::bdldfp::DecimalImpUtil::normalize(BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128)> ; 5 bytes
M00000000000000a5: movq %rax, %r8 ; 3 bytes
M00000000000000a8: movq %rdx, %r12 ; 3 bytes
M00000000000000ab: movl 4(%r13), %eax ; 4 bytes
M00000000000000af: cmpl $2, %eax ; 3 bytes
M00000000000000b2: je 0x477d34 <BloombergLP::bdldfp::DecimalImpUtil::format(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)+0x144> ; 6 bytes
M00000000000000b8: cmpl $1, %eax ; 3 bytes
M00000000000000bb: movl 16(%rsp), %edx ; 4 bytes
M00000000000000bf: movl 12(%rsp), %ebx ; 4 bytes
M00000000000000c3: movq 24(%rsp), %rdi ; 5 bytes
M00000000000000c8: movl 36(%rsp), %esi ; 4 bytes
M00000000000000cc: je 0x477f34 <BloombergLP::bdldfp::DecimalImpUtil::format(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)+0x344> ; 6 bytes
M00000000000000d2: testl %eax, %eax ; 2 bytes
M00000000000000d4: jne 0x477f07 <BloombergLP::bdldfp::DecimalImpUtil::format(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)+0x317> ; 6 bytes
M00000000000000da: movq %r8, %rdx ; 3 bytes
M00000000000000dd: movq %r12, %rcx ; 3 bytes
M00000000000000e0: movq %r13, %r8 ; 3 bytes
M00000000000000e3: callq 0x479310 <int BloombergLP::bdldfp::(anonymous namespace)::formatScientific<BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128>(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)> ; 5 bytes
M00000000000000e8: jmp 0x477f42 <BloombergLP::bdldfp::DecimalImpUtil::format(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)+0x352> ; 5 bytes
M00000000000000ed: testl %ecx, %ecx ; 2 bytes
M00000000000000ef: je 0x477d8d <BloombergLP::bdldfp::DecimalImpUtil::format(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)+0x19d> ; 6 bytes
M00000000000000f5: cmpl $1, %ecx ; 3 bytes
M00000000000000f8: jne 0x477f07 <BloombergLP::bdldfp::DecimalImpUtil::format(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)+0x317> ; 6 bytes
M00000000000000fe: movq %rdi, 24(%rsp) ; 5 bytes
M0000000000000103: movl %ebx, 12(%rsp) ; 4 bytes
M0000000000000107: movl %edx, 16(%rsp) ; 4 bytes
M000000000000010b: movq 16(%r13), %rbx ; 4 bytes
M000000000000010f: movq %rbx, %rdi ; 3 bytes
M0000000000000112: callq 0x4047b0 <strlen@plt> ; 5 bytes
M0000000000000117: movq %rax, %r14 ; 3 bytes
M000000000000011a: movslq %ebp, %rax ; 3 bytes
M000000000000011d: cmpq %rax, %r14 ; 3 bytes
M0000000000000120: jg 0x477eff <BloombergLP::bdldfp::DecimalImpUtil::format(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)+0x30f> ; 6 bytes
M0000000000000126: testq %r14, %r14 ; 3 bytes
M0000000000000129: je 0x477eff <BloombergLP::bdldfp::DecimalImpUtil::format(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)+0x30f> ; 6 bytes
M000000000000012f: movq 24(%rsp), %rdi ; 5 bytes
M0000000000000134: movq %rbx, %rsi ; 3 bytes
M0000000000000137: movq %r14, %rdx ; 3 bytes
M000000000000013a: callq 0x4049c0 <memmove@plt> ; 5 bytes
M000000000000013f: jmp 0x477eff <BloombergLP::bdldfp::DecimalImpUtil::format(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)+0x30f> ; 5 bytes
M0000000000000144: movl %r15d, 20(%rsp) ; 5 bytes
M0000000000000149: movq %r8, %r14 ; 3 bytes
M000000000000014c: movq %r8, %rdi ; 3 bytes
M000000000000014f: movq %r12, %rsi ; 3 bytes
M0000000000000152: callq 0x4a2ad0 <__bid128_class> ; 5 bytes
M0000000000000157: movabsq $6917529027641081856, %rax ; 10 bytes
M0000000000000161: movq %r12, %rcx ; 3 bytes
M0000000000000164: andq %rax, %rcx ; 3 bytes
M0000000000000167: cmpq %rax, %rcx ; 3 bytes
M000000000000016a: jne 0x477df2 <BloombergLP::bdldfp::DecimalImpUtil::format(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)+0x202> ; 6 bytes
M0000000000000170: movabsq $140737488355327, %rax ; 10 bytes
M000000000000017a: andq %r12, %rax ; 3 bytes
M000000000000017d: movabsq $9007199254740992, %rbx ; 10 bytes
M0000000000000187: orq %rax, %rbx ; 3 bytes
M000000000000018a: movq %r12, %r8 ; 3 bytes
M000000000000018d: shrq $47, %r8 ; 4 bytes
M0000000000000191: andl $16383, %r8d ; 7 bytes
M0000000000000198: jmp 0x477e14 <BloombergLP::bdldfp::DecimalImpUtil::format(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)+0x224> ; 5 bytes
M000000000000019d: movq %rdi, 24(%rsp) ; 5 bytes
M00000000000001a2: movl %ebx, 12(%rsp) ; 4 bytes
M00000000000001a6: movl %edx, 16(%rsp) ; 4 bytes
M00000000000001aa: movl %r15d, 20(%rsp) ; 5 bytes
M00000000000001af: movq %r8, %rdi ; 3 bytes
M00000000000001b2: movq %r12, %rsi ; 3 bytes
M00000000000001b5: callq 0x4a2ad0 <__bid128_class> ; 5 bytes
M00000000000001ba: leaq 24(%r13), %rcx ; 4 bytes
M00000000000001be: addq $32, %r13 ; 4 bytes
M00000000000001c2: cmpl $1, %eax ; 3 bytes
M00000000000001c5: cmoveq %rcx, %r13 ; 4 bytes
M00000000000001c9: movq (%r13), %rbx ; 4 bytes
M00000000000001cd: movq %rbx, %rdi ; 3 bytes
M00000000000001d0: callq 0x4047b0 <strlen@plt> ; 5 bytes
M00000000000001d5: movq %rax, %r14 ; 3 bytes
M00000000000001d8: movslq %ebp, %rax ; 3 bytes
M00000000000001db: cmpq %rax, %r14 ; 3 bytes
M00000000000001de: jg 0x477efa <BloombergLP::bdldfp::DecimalImpUtil::format(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)+0x30a> ; 6 bytes
M00000000000001e4: testq %r14, %r14 ; 3 bytes
M00000000000001e7: je 0x477efa <BloombergLP::bdldfp::DecimalImpUtil::format(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)+0x30a> ; 6 bytes
M00000000000001ed: movq 24(%rsp), %rdi ; 5 bytes
M00000000000001f2: movq %rbx, %rsi ; 3 bytes
M00000000000001f5: movq %r14, %rdx ; 3 bytes
M00000000000001f8: callq 0x4049c0 <memmove@plt> ; 5 bytes
M00000000000001fd: jmp 0x477efa <BloombergLP::bdldfp::DecimalImpUtil::format(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)+0x30a> ; 5 bytes
M0000000000000202: movq %r12, %r8 ; 3 bytes
M0000000000000205: shrq $49, %r8 ; 4 bytes
M0000000000000209: andl $16383, %r8d ; 7 bytes
M0000000000000210: addl $4294961120, %r8d ; 7 bytes
M0000000000000217: movabsq $562949953421311, %rbx ; 10 bytes
M0000000000000221: andq %r12, %rbx ; 3 bytes
M0000000000000224: movl $4294967295, %ebp ; 5 bytes
M0000000000000229: movabsq $-3689348814741910323, %r10 ; 10 bytes
M0000000000000233: movabsq $1844674407370955161, %r9 ; 10 bytes
M000000000000023d: movq %r14, %rsi ; 3 bytes
M0000000000000240: movq %rbx, %rcx ; 3 bytes
M0000000000000243: movq %rbx, %rax ; 3 bytes
M0000000000000246: mulq %r10 ; 3 bytes
M0000000000000249: movq %rdx, %rbx ; 3 bytes
M000000000000024c: shrq $3, %rbx ; 4 bytes
M0000000000000250: leaq (%rbx,%rbx), %rax ; 4 bytes
M0000000000000254: leaq (%rax,%rax,4), %rax ; 4 bytes
M0000000000000258: movq %rcx, %rdi ; 3 bytes
M000000000000025b: subq %rax, %rdi ; 3 bytes
M000000000000025e: movq %rsi, %rax ; 3 bytes
M0000000000000261: mulq %r10 ; 3 bytes
M0000000000000264: shrq $3, %rdx ; 4 bytes
M0000000000000268: leal (%rdx,%rdx), %eax ; 3 bytes
M000000000000026b: leal (%rax,%rax,4), %eax ; 3 bytes
M000000000000026e: subl %eax, %esi ; 2 bytes
M0000000000000270: leal (%rdi,%rdi,2), %eax ; 3 bytes
M0000000000000273: imulq %r9, %rdi ; 4 bytes
M0000000000000277: addq %rdx, %rdi ; 3 bytes
M000000000000027a: leal (%rsi,%rax,2), %eax ; 3 bytes
M000000000000027d: imull $205, %eax, %eax ; 6 bytes
M0000000000000283: movzwl %ax, %esi ; 3 bytes
M0000000000000286: shrq $11, %rsi ; 4 bytes
M000000000000028a: addq %rdi, %rsi ; 3 bytes
M000000000000028d: incl %ebp ; 2 bytes
M000000000000028f: cmpq $9, %rcx ; 4 bytes
M0000000000000293: ja 0x477e30 <BloombergLP::bdldfp::DecimalImpUtil::format(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)+0x240> ; 2 bytes
M0000000000000295: testq %rsi, %rsi ; 3 bytes
M0000000000000298: jne 0x477e30 <BloombergLP::bdldfp::DecimalImpUtil::format(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)+0x240> ; 2 bytes
M000000000000029a: movups (%r13), %xmm0 ; 5 bytes
M000000000000029f: movups 16(%r13), %xmm1 ; 5 bytes
M00000000000002a4: movups 32(%r13), %xmm2 ; 5 bytes
M00000000000002a9: movaps %xmm2, 80(%rsp) ; 5 bytes
M00000000000002ae: movaps %xmm1, 64(%rsp) ; 5 bytes
M00000000000002b3: movaps %xmm0, 48(%rsp) ; 5 bytes
M00000000000002b8: testl %r8d, %r8d ; 3 bytes
M00000000000002bb: jg 0x477eda <BloombergLP::bdldfp::DecimalImpUtil::format(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)+0x2ea> ; 2 bytes
M00000000000002bd: leal 1(%r8,%rbp), %eax ; 5 bytes
M00000000000002c2: cmpl $-5, %eax ; 3 bytes
M00000000000002c5: jl 0x477eda <BloombergLP::bdldfp::DecimalImpUtil::format(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)+0x2ea> ; 2 bytes
M00000000000002c7: negl %r8d ; 3 bytes
M00000000000002ca: movl %r8d, 48(%rsp) ; 5 bytes
M00000000000002cf: leaq 48(%rsp), %r8 ; 5 bytes
M00000000000002d4: movq 24(%rsp), %rdi ; 5 bytes
M00000000000002d9: movl 36(%rsp), %esi ; 4 bytes
M00000000000002dd: movq %r14, %rdx ; 3 bytes
M00000000000002e0: movq %r12, %rcx ; 3 bytes
M00000000000002e3: callq 0x479700 <int BloombergLP::bdldfp::(anonymous namespace)::formatFixed<BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128>(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)> ; 5 bytes
M00000000000002e8: jmp 0x477ef7 <BloombergLP::bdldfp::DecimalImpUtil::format(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)+0x307> ; 2 bytes
M00000000000002ea: movl %ebp, 48(%rsp) ; 4 bytes
M00000000000002ee: leaq 48(%rsp), %r8 ; 5 bytes
M00000000000002f3: movq 24(%rsp), %rdi ; 5 bytes
M00000000000002f8: movl 36(%rsp), %esi ; 4 bytes
M00000000000002fc: movq %r14, %rdx ; 3 bytes
M00000000000002ff: movq %r12, %rcx ; 3 bytes
M0000000000000302: callq 0x479310 <int BloombergLP::bdldfp::(anonymous namespace)::formatScientific<BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128>(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)> ; 5 bytes
M0000000000000307: movl %eax, %r14d ; 3 bytes
M000000000000030a: movl 20(%rsp), %r15d ; 5 bytes
M000000000000030f: movl 16(%rsp), %edx ; 4 bytes
M0000000000000313: movl 12(%rsp), %ebx ; 4 bytes
M0000000000000317: addl %ebx, %r14d ; 3 bytes
M000000000000031a: cmpl %r15d, %r14d ; 3 bytes
M000000000000031d: setg %al ; 3 bytes
M0000000000000320: xorb $1, %dl ; 3 bytes
M0000000000000323: orb %al, %dl ; 2 bytes
M0000000000000325: jne 0x477f22 <BloombergLP::bdldfp::DecimalImpUtil::format(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)+0x332> ; 2 bytes
M0000000000000327: movb 11(%rsp), %al ; 4 bytes
M000000000000032b: movq 40(%rsp), %rcx ; 5 bytes
M0000000000000330: movb %al, (%rcx) ; 2 bytes
M0000000000000332: movl %r14d, %eax ; 3 bytes
M0000000000000335: addq $104, %rsp ; 4 bytes
M0000000000000339: popq %rbx ; 1 bytes
M000000000000033a: popq %r12 ; 2 bytes
M000000000000033c: popq %r13 ; 2 bytes
M000000000000033e: popq %r14 ; 2 bytes
M0000000000000340: popq %r15 ; 2 bytes
M0000000000000342: popq %rbp ; 1 bytes
M0000000000000343: retq ; 1 bytes
M0000000000000344: movq %r8, %rdx ; 3 bytes
M0000000000000347: movq %r12, %rcx ; 3 bytes
M000000000000034a: movq %r13, %r8 ; 3 bytes
M000000000000034d: callq 0x479700 <int BloombergLP::bdldfp::(anonymous namespace)::formatFixed<BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128>(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)> ; 5 bytes
M0000000000000352: movl 12(%rsp), %ebx ; 4 bytes
M0000000000000356: movl 16(%rsp), %edx ; 4 bytes
M000000000000035a: movl %eax, %r14d ; 3 bytes
M000000000000035d: jmp 0x477f07 <BloombergLP::bdldfp::DecimalImpUtil::format(char*, int, BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType128, BloombergLP::bdldfp::DecimalFormatConfig const&)+0x317> ; 2 bytes
M000000000000035f: nop ; 1 bytes