cnl
cnl copied to clipboard
Extremely big binary output when compiling with -fsanitize
I'm trying the latest version of cnl and get an extremely large binary when compiled with address sanitizer.
Edit: I seem to be able to easily show a minimal example on godbolt: https://godbolt.org/z/K2WUNC
Here is an example function that became really big and the output of objdump.
I had many sanitizer and coverage options enabled in the compile below. The result is 15kb for just 1 function.
With just -fsanitize=address the function is 3254 bytes. Without -fsanitize, the size is 535 bytes.
How could I use cnl with an fsanitize and fundefined?
The function in question:
void update()
{
uint8_t numActuators = requesters.size();
if (numActuators == 0) {
return;
}
auto requestedTotal = value_t(0);
for (const auto& a : requesters) {
requestedTotal += a.requested;
}
auto budgetLeft = value_t(0);
if (available > requestedTotal) {
budgetLeft = available - requestedTotal;
requestedTotal = available;
}
auto budgetLeftPerActuator = cnl::quotient(budgetLeft, numActuators);
safe_elastic_fixed_point<31, -21> scale = cnl::quotient(available, requestedTotal);
for (auto& a : requesters) {
a.granted = a.requested * scale;
a.granted += budgetLeftPerActuator;
}
}
value_t is an alias of fp12_t:
#pragma once
#include "../cnl/include/cnl/num_traits.h"
#include "../cnl/include/cnl/static_number.h"
#include <cstdint>
template <
int Digits,
int Exponent,
typename Narrowest = signed>
using safe_elastic_fixed_point = cnl::static_number<Digits, Exponent, cnl::native_rounding_tag, cnl::saturated_overflow_tag, Narrowest>;
using fp12_t = safe_elastic_fixed_point<23, -12>;
std::string
to_string_dec(const fp12_t& t, uint8_t decimals);
Full code here: https://github.com/elcojacobs/brewblox-firmware/blob/feature/cnl-updates/lib/inc/Balancer.h
I'm using gcc (Ubuntu 8.3.0-6ubuntu1) 8.3.0. Just run make in lib/test.
Here is the objdump of that function:
Disassembly of section .text._ZN8BalancerILh2EE6updateEv:0000000000000000 <_ZN8BalancerILh2EE6updateEv>: void update() 0: 55 push %rbp 1: 48 89 e5 mov %rsp,%rbp 4: 41 57 push %r15 6: 41 56 push %r14 8: 48 8d 85 f0 e5 ff ff lea -0x1a10(%rbp),%rax f: 41 55 push %r13 11: 41 54 push %r12 13: 53 push %rbx 14: 48 81 ec 38 1a 00 00 sub $0x1a38,%rsp 1b: 83 3d 00 00 00 00 00 cmpl $0x0,0x0(%rip) # 22 <_ZN8BalancerILh2EE6updateEv+0x22> 22: 48 89 bd e0 e5 ff ff mov %rdi,-0x1a20(%rbp) 29: 48 89 85 d8 e5 ff ff mov %rax,-0x1a28(%rbp) 30: 48 89 85 b8 e5 ff ff mov %rax,-0x1a48(%rbp) 37: 74 1c je 55 <_ZN8BalancerILh2EE6updateEv+0x55> 39: bf c0 19 00 00 mov $0x19c0,%edi 3e: e8 00 00 00 00 callq 43 <_ZN8BalancerILh2EE6updateEv+0x43> 43: 48 85 c0 test %rax,%rax 46: 48 0f 44 85 d8 e5 ff cmove -0x1a28(%rbp),%rax 4d: ff 4e: 48 89 85 d8 e5 ff ff mov %rax,-0x1a28(%rbp) 55: 48 8b 85 d8 e5 ff ff mov -0x1a28(%rbp),%rax 5c: 48 8d 0d 00 00 00 00 lea 0x0(%rip),%rcx # 63 <_ZN8BalancerILh2EE6updateEv+0x63> 63: 48 c7 00 b3 8a b5 41 movq $0x41b58ab3,(%rax) 6a: 48 8d 98 e0 19 00 00 lea 0x19e0(%rax),%rbx 71: 48 8b 85 d8 e5 ff ff mov -0x1a28(%rbp),%rax 78: 48 89 48 08 mov %rcx,0x8(%rax) 7c: 48 8b 85 d8 e5 ff ff mov -0x1a28(%rbp),%rax 83: 48 8d 0d 76 ff ff ff lea -0x8a(%rip),%rcx # 0 <_ZN8BalancerILh2EE6updateEv> 8a: 48 89 48 10 mov %rcx,0x10(%rax) 8e: 4c 8b bd d8 e5 ff ff mov -0x1a28(%rbp),%r15 95: 49 c1 ef 03 shr $0x3,%r15 99: 41 c7 87 00 80 ff 7f movl $0xf1f1f1f1,0x7fff8000(%r15) a0: f1 f1 f1 f1 a4: 41 c7 87 04 80 ff 7f movl $0xf2f2f201,0x7fff8004(%r15) ab: 01 f2 f2 f2 af: 41 c7 87 08 80 ff 7f movl $0xf2f2f2f2,0x7fff8008(%r15) b6: f2 f2 f2 f2 ba: 41 c7 87 0c 80 ff 7f movl $0xf2f2f201,0x7fff800c(%r15) c1: 01 f2 f2 f2 c5: 41 c7 87 10 80 ff 7f movl $0xf2f2f2f2,0x7fff8010(%r15) cc: f2 f2 f2 f2 d0: 41 c7 87 14 80 ff 7f movl $0xf2f2f201,0x7fff8014(%r15) d7: 01 f2 f2 f2 db: 41 c7 87 18 80 ff 7f movl $0xf2f2f2f2,0x7fff8018(%r15) e2: f2 f2 f2 f2 e6: 41 c7 87 1c 80 ff 7f movl $0xf2f2f201,0x7fff801c(%r15) ed: 01 f2 f2 f2 f1: 41 c7 87 20 80 ff 7f movl $0xf2f2f2f2,0x7fff8020(%r15) f8: f2 f2 f2 f2 fc: 41 c7 87 24 80 ff 7f movl $0xf2f2f201,0x7fff8024(%r15) 103: 01 f2 f2 f2 107: 41 c7 87 28 80 ff 7f movl $0xf2f2f2f2,0x7fff8028(%r15) 10e: f2 f2 f2 f2 112: 41 c7 87 2c 80 ff 7f movl $0xf2f2f201,0x7fff802c(%r15) 119: 01 f2 f2 f2 11d: 41 c7 87 30 80 ff 7f movl $0xf2f2f2f2,0x7fff8030(%r15) 124: f2 f2 f2 f2 128: 41 c7 87 34 80 ff 7f movl $0xf2f2f201,0x7fff8034(%r15) 12f: 01 f2 f2 f2 133: 41 c7 87 38 80 ff 7f movl $0xf2f2f2f2,0x7fff8038(%r15) 13a: f2 f2 f2 f2 13e: 41 c7 87 3c 80 ff 7f movl $0xf2f2f201,0x7fff803c(%r15) 145: 01 f2 f2 f2 149: 41 c7 87 40 80 ff 7f movl $0xf2f2f2f2,0x7fff8040(%r15) 150: f2 f2 f2 f2 154: 41 c7 87 44 80 ff 7f movl $0xf2f2f201,0x7fff8044(%r15) 15b: 01 f2 f2 f2 15f: 41 c7 87 48 80 ff 7f movl $0xf2f2f2f2,0x7fff8048(%r15) 166: f2 f2 f2 f2 16a: 41 c7 87 4c 80 ff 7f movl $0xf2f2f201,0x7fff804c(%r15) 171: 01 f2 f2 f2 175: 41 c7 87 50 80 ff 7f movl $0xf2f2f2f2,0x7fff8050(%r15) 17c: f2 f2 f2 f2 180: 41 c7 87 54 80 ff 7f movl $0xf2f2f201,0x7fff8054(%r15) 187: 01 f2 f2 f2 18b: 41 c7 87 58 80 ff 7f movl $0xf2f2f2f2,0x7fff8058(%r15) 192: f2 f2 f2 f2 196: 41 c7 87 5c 80 ff 7f movl $0xf2f2f201,0x7fff805c(%r15) 19d: 01 f2 f2 f2 1a1: 41 c7 87 60 80 ff 7f movl $0xf2f2f2f2,0x7fff8060(%r15) 1a8: f2 f2 f2 f2 1ac: 41 c7 87 64 80 ff 7f movl $0xf2f2f201,0x7fff8064(%r15) 1b3: 01 f2 f2 f2 1b7: 41 c7 87 68 80 ff 7f movl $0xf2f2f2f2,0x7fff8068(%r15) 1be: f2 f2 f2 f2 1c2: 41 c7 87 6c 80 ff 7f movl $0xf2f2f201,0x7fff806c(%r15) 1c9: 01 f2 f2 f2 1cd: 41 c7 87 70 80 ff 7f movl $0xf2f2f2f2,0x7fff8070(%r15) 1d4: f2 f2 f2 f2 1d8: 41 c7 87 74 80 ff 7f movl $0xf2f2f201,0x7fff8074(%r15) 1df: 01 f2 f2 f2 1e3: 41 c7 87 78 80 ff 7f movl $0xf2f2f2f2,0x7fff8078(%r15) 1ea: f2 f2 f2 f2 1ee: 41 c7 87 7c 80 ff 7f movl $0xf2f2f201,0x7fff807c(%r15) 1f5: 01 f2 f2 f2 1f9: 41 c7 87 80 80 ff 7f movl $0xf2f2f2f2,0x7fff8080(%r15) 200: f2 f2 f2 f2 204: 41 c7 87 84 80 ff 7f movl $0xf2f2f201,0x7fff8084(%r15) 20b: 01 f2 f2 f2 20f: 41 c7 87 88 80 ff 7f movl $0xf2f2f2f2,0x7fff8088(%r15) 216: f2 f2 f2 f2 21a: 41 c7 87 8c 80 ff 7f movl $0xf2f2f201,0x7fff808c(%r15) 221: 01 f2 f2 f2 225: 41 c7 87 90 80 ff 7f movl $0xf2f2f2f2,0x7fff8090(%r15) 22c: f2 f2 f2 f2 230: 41 c7 87 94 80 ff 7f movl $0xf2f2f201,0x7fff8094(%r15) 237: 01 f2 f2 f2 23b: 41 c7 87 98 80 ff 7f movl $0xf2f2f2f2,0x7fff8098(%r15) 242: f2 f2 f2 f2 246: 41 c7 87 9c 80 ff 7f movl $0xf2f2f201,0x7fff809c(%r15) 24d: 01 f2 f2 f2 251: 41 c7 87 a0 80 ff 7f movl $0xf2f2f2f2,0x7fff80a0(%r15) 258: f2 f2 f2 f2 25c: 41 c7 87 a4 80 ff 7f movl $0xf2f2f201,0x7fff80a4(%r15) 263: 01 f2 f2 f2 267: 41 c7 87 a8 80 ff 7f movl $0xf2f2f2f2,0x7fff80a8(%r15) 26e: f2 f2 f2 f2 272: 41 c7 87 ac 80 ff 7f movl $0xf2f2f201,0x7fff80ac(%r15) 279: 01 f2 f2 f2 27d: 41 c7 87 b0 80 ff 7f movl $0xf2f2f2f2,0x7fff80b0(%r15) 284: f2 f2 f2 f2 288: 41 c7 87 b4 80 ff 7f movl $0xf2f2f201,0x7fff80b4(%r15) 28f: 01 f2 f2 f2 293: 41 c7 87 b8 80 ff 7f movl $0xf2f2f2f2,0x7fff80b8(%r15) 29a: f2 f2 f2 f2 29e: 41 c7 87 bc 80 ff 7f movl $0xf2f2f201,0x7fff80bc(%r15) 2a5: 01 f2 f2 f2 2a9: 41 c7 87 c0 80 ff 7f movl $0xf2f2f2f2,0x7fff80c0(%r15) 2b0: f2 f2 f2 f2 2b4: 41 c7 87 c4 80 ff 7f movl $0xf2f2f201,0x7fff80c4(%r15) 2bb: 01 f2 f2 f2 2bf: 41 c7 87 c8 80 ff 7f movl $0xf2f2f2f2,0x7fff80c8(%r15) 2c6: f2 f2 f2 f2 2ca: 41 c7 87 cc 80 ff 7f movl $0xf2f2f201,0x7fff80cc(%r15) 2d1: 01 f2 f2 f2 2d5: 41 c7 87 d0 80 ff 7f movl $0xf2f2f2f2,0x7fff80d0(%r15) 2dc: f2 f2 f2 f2 2e0: 41 c7 87 d4 80 ff 7f movl $0xf2f2f201,0x7fff80d4(%r15) 2e7: 01 f2 f2 f2 2eb: 41 c7 87 d8 80 ff 7f movl $0xf2f2f2f2,0x7fff80d8(%r15) 2f2: f2 f2 f2 f2 2f6: 41 c7 87 dc 80 ff 7f movl $0xf2f2f201,0x7fff80dc(%r15) 2fd: 01 f2 f2 f2 301: 41 c7 87 e0 80 ff 7f movl $0xf2f2f2f2,0x7fff80e0(%r15) 308: f2 f2 f2 f2 30c: 41 c7 87 e4 80 ff 7f movl $0xf2f2f201,0x7fff80e4(%r15) 313: 01 f2 f2 f2 317: 41 c7 87 e8 80 ff 7f movl $0xf2f2f2f2,0x7fff80e8(%r15) 31e: f2 f2 f2 f2 322: 41 c7 87 ec 80 ff 7f movl $0xf2f2f201,0x7fff80ec(%r15) 329: 01 f2 f2 f2 32d: 41 c7 87 f0 80 ff 7f movl $0xf2f2f2f2,0x7fff80f0(%r15) 334: f2 f2 f2 f2 338: 41 c7 87 f4 80 ff 7f movl $0xf2f2f201,0x7fff80f4(%r15) 33f: 01 f2 f2 f2 343: 41 c7 87 f8 80 ff 7f movl $0xf2f2f2f2,0x7fff80f8(%r15) 34a: f2 f2 f2 f2 34e: 41 c7 87 fc 80 ff 7f movl $0xf2f2f201,0x7fff80fc(%r15) 355: 01 f2 f2 f2 359: 41 c7 87 00 81 ff 7f movl $0xf2f2f2f2,0x7fff8100(%r15) 360: f2 f2 f2 f2 364: 41 c7 87 04 81 ff 7f movl $0xf2f2f201,0x7fff8104(%r15) 36b: 01 f2 f2 f2 36f: 41 c7 87 08 81 ff 7f movl $0xf2f2f2f2,0x7fff8108(%r15) 376: f2 f2 f2 f2 37a: 41 c7 87 0c 81 ff 7f movl $0xf2f2f201,0x7fff810c(%r15) 381: 01 f2 f2 f2 385: 41 c7 87 10 81 ff 7f movl $0xf2f2f2f2,0x7fff8110(%r15) 38c: f2 f2 f2 f2 390: 41 c7 87 14 81 ff 7f movl $0xf2f2f201,0x7fff8114(%r15) 397: 01 f2 f2 f2 39b: 41 c7 87 18 81 ff 7f movl $0xf2f2f2f2,0x7fff8118(%r15) 3a2: f2 f2 f2 f2 3a6: 41 c7 87 1c 81 ff 7f movl $0xf2f2f201,0x7fff811c(%r15) 3ad: 01 f2 f2 f2 3b1: 41 c7 87 20 81 ff 7f movl $0xf2f2f2f2,0x7fff8120(%r15) 3b8: f2 f2 f2 f2 3bc: 41 c7 87 24 81 ff 7f movl $0xf2f2f201,0x7fff8124(%r15) 3c3: 01 f2 f2 f2 3c7: 41 c7 87 28 81 ff 7f movl $0xf2f2f2f2,0x7fff8128(%r15) 3ce: f2 f2 f2 f2 3d2: 41 c7 87 2c 81 ff 7f movl $0xf2f2f201,0x7fff812c(%r15) 3d9: 01 f2 f2 f2 3dd: 41 c7 87 30 81 ff 7f movl $0xf2f2f2f2,0x7fff8130(%r15) 3e4: f2 f2 f2 f2 3e8: 41 c7 87 34 81 ff 7f movl $0xf2f2f201,0x7fff8134(%r15) 3ef: 01 f2 f2 f2 3f3: 41 c7 87 38 81 ff 7f movl $0xf2f2f2f2,0x7fff8138(%r15) 3fa: f2 f2 f2 f2 3fe: 41 c7 87 3c 81 ff 7f movl $0xf2f2f201,0x7fff813c(%r15) 405: 01 f2 f2 f2 409: 41 c7 87 40 81 ff 7f movl $0xf2f2f2f2,0x7fff8140(%r15) 410: f2 f2 f2 f2 414: 41 c7 87 44 81 ff 7f movl $0xf2f2f201,0x7fff8144(%r15) 41b: 01 f2 f2 f2 41f: 41 c7 87 48 81 ff 7f movl $0xf2f2f2f2,0x7fff8148(%r15) 426: f2 f2 f2 f2 42a: 41 c7 87 4c 81 ff 7f movl $0xf2f2f201,0x7fff814c(%r15) 431: 01 f2 f2 f2 435: 41 c7 87 50 81 ff 7f movl $0xf2f2f2f2,0x7fff8150(%r15) 43c: f2 f2 f2 f2 440: 41 c7 87 54 81 ff 7f movl $0xf2f2f201,0x7fff8154(%r15) 447: 01 f2 f2 f2 44b: 41 c7 87 58 81 ff 7f movl $0xf2f2f2f2,0x7fff8158(%r15) 452: f2 f2 f2 f2 456: 41 c7 87 5c 81 ff 7f movl $0xf2f2f201,0x7fff815c(%r15) 45d: 01 f2 f2 f2 461: 41 c7 87 60 81 ff 7f movl $0xf2f2f2f2,0x7fff8160(%r15) 468: f2 f2 f2 f2 46c: 41 c7 87 64 81 ff 7f movl $0xf2f2f201,0x7fff8164(%r15) 473: 01 f2 f2 f2 477: 41 c7 87 68 81 ff 7f movl $0xf2f2f2f2,0x7fff8168(%r15) 47e: f2 f2 f2 f2 482: 41 c7 87 6c 81 ff 7f movl $0xf2f2f201,0x7fff816c(%r15) 489: 01 f2 f2 f2 48d: 41 c7 87 70 81 ff 7f movl $0xf2f2f2f2,0x7fff8170(%r15) 494: f2 f2 f2 f2 498: 41 c7 87 74 81 ff 7f movl $0xf2f2f201,0x7fff8174(%r15) 49f: 01 f2 f2 f2 4a3: 41 c7 87 78 81 ff 7f movl $0xf2f2f2f2,0x7fff8178(%r15) 4aa: f2 f2 f2 f2 4ae: 41 c7 87 7c 81 ff 7f movl $0xf2f2f201,0x7fff817c(%r15) 4b5: 01 f2 f2 f2 4b9: 41 c7 87 80 81 ff 7f movl $0xf2f2f2f2,0x7fff8180(%r15) 4c0: f2 f2 f2 f2 4c4: 41 c7 87 84 81 ff 7f movl $0xf2f2f201,0x7fff8184(%r15) 4cb: 01 f2 f2 f2 4cf: 41 c7 87 88 81 ff 7f movl $0xf2f2f2f2,0x7fff8188(%r15) 4d6: f2 f2 f2 f2 4da: 41 c7 87 8c 81 ff 7f movl $0xf2f2f201,0x7fff818c(%r15) 4e1: 01 f2 f2 f2 4e5: 41 c7 87 90 81 ff 7f movl $0xf2f2f2f2,0x7fff8190(%r15) 4ec: f2 f2 f2 f2 4f0: 41 c7 87 94 81 ff 7f movl $0xf2f2f201,0x7fff8194(%r15) 4f7: 01 f2 f2 f2 4fb: 41 c7 87 98 81 ff 7f movl $0xf2f2f2f2,0x7fff8198(%r15) 502: f2 f2 f2 f2 506: 41 c7 87 9c 81 ff 7f movl $0xf2f2f201,0x7fff819c(%r15) 50d: 01 f2 f2 f2 511: 41 c7 87 a0 81 ff 7f movl $0xf2f2f2f2,0x7fff81a0(%r15) 518: f2 f2 f2 f2 51c: 41 c7 87 a4 81 ff 7f movl $0xf2f2f201,0x7fff81a4(%r15) 523: 01 f2 f2 f2 527: 41 c7 87 a8 81 ff 7f movl $0xf2f2f2f2,0x7fff81a8(%r15) 52e: f2 f2 f2 f2 532: 41 c7 87 ac 81 ff 7f movl $0xf2f2f201,0x7fff81ac(%r15) 539: 01 f2 f2 f2 53d: 41 c7 87 b0 81 ff 7f movl $0xf2f2f2f2,0x7fff81b0(%r15) 544: f2 f2 f2 f2 548: 41 c7 87 b4 81 ff 7f movl $0xf2f2f201,0x7fff81b4(%r15) 54f: 01 f2 f2 f2 553: 41 c7 87 b8 81 ff 7f movl $0xf2f2f2f2,0x7fff81b8(%r15) 55a: f2 f2 f2 f2 55e: 41 c7 87 bc 81 ff 7f movl $0xf2f2f201,0x7fff81bc(%r15) 565: 01 f2 f2 f2 569: 41 c7 87 c0 81 ff 7f movl $0xf2f2f2f2,0x7fff81c0(%r15) 570: f2 f2 f2 f2 574: 41 c7 87 c4 81 ff 7f movl $0xf2f2f201,0x7fff81c4(%r15) 57b: 01 f2 f2 f2 57f: 41 c7 87 c8 81 ff 7f movl $0xf2f2f2f2,0x7fff81c8(%r15) 586: f2 f2 f2 f2 58a: 41 c7 87 cc 81 ff 7f movl $0xf2f2f201,0x7fff81cc(%r15) 591: 01 f2 f2 f2 595: 41 c7 87 d0 81 ff 7f movl $0xf2f2f2f2,0x7fff81d0(%r15) 59c: f2 f2 f2 f2 5a0: 41 c7 87 d4 81 ff 7f movl $0xf2f2f201,0x7fff81d4(%r15) 5a7: 01 f2 f2 f2 5ab: 41 c7 87 d8 81 ff 7f movl $0xf2f2f2f2,0x7fff81d8(%r15) 5b2: f2 f2 f2 f2 5b6: 41 c7 87 dc 81 ff 7f movl $0xf2f2f201,0x7fff81dc(%r15) 5bd: 01 f2 f2 f2 5c1: 41 c7 87 e0 81 ff 7f movl $0xf2f2f2f2,0x7fff81e0(%r15) 5c8: f2 f2 f2 f2 5cc: 41 c7 87 e4 81 ff 7f movl $0xf2f2f201,0x7fff81e4(%r15) 5d3: 01 f2 f2 f2 5d7: 41 c7 87 e8 81 ff 7f movl $0xf2f2f2f2,0x7fff81e8(%r15) 5de: f2 f2 f2 f2 5e2: 41 c7 87 ec 81 ff 7f movl $0xf2f2f201,0x7fff81ec(%r15) 5e9: 01 f2 f2 f2 5ed: 41 c7 87 f0 81 ff 7f movl $0xf2f2f2f2,0x7fff81f0(%r15) 5f4: f2 f2 f2 f2 5f8: 41 c7 87 f4 81 ff 7f movl $0xf2f2f201,0x7fff81f4(%r15) 5ff: 01 f2 f2 f2 603: 41 c7 87 f8 81 ff 7f movl $0xf2f2f2f2,0x7fff81f8(%r15) 60a: f2 f2 f2 f2 60e: 41 c7 87 fc 81 ff 7f movl $0xf2f2f201,0x7fff81fc(%r15) 615: 01 f2 f2 f2 619: 41 c7 87 00 82 ff 7f movl $0xf2f2f2f2,0x7fff8200(%r15) 620: f2 f2 f2 f2 624: 41 c7 87 04 82 ff 7f movl $0xf2f2f201,0x7fff8204(%r15) 62b: 01 f2 f2 f2 62f: 41 c7 87 08 82 ff 7f movl $0xf2f2f2f2,0x7fff8208(%r15) 636: f2 f2 f2 f2 63a: 41 c7 87 0c 82 ff 7f movl $0xf2f2f201,0x7fff820c(%r15) 641: 01 f2 f2 f2 645: 41 c7 87 10 82 ff 7f movl $0xf2f2f2f2,0x7fff8210(%r15) 64c: f2 f2 f2 f2 650: 41 c7 87 14 82 ff 7f movl $0xf2f2f201,0x7fff8214(%r15) 657: 01 f2 f2 f2 65b: 41 c7 87 18 82 ff 7f movl $0xf2f2f2f2,0x7fff8218(%r15) 662: f2 f2 f2 f2 666: 41 c7 87 1c 82 ff 7f movl $0xf2f2f201,0x7fff821c(%r15) 66d: 01 f2 f2 f2 671: 41 c7 87 20 82 ff 7f movl $0xf2f2f2f2,0x7fff8220(%r15) 678: f2 f2 f2 f2 67c: 41 c7 87 24 82 ff 7f movl $0xf2f2f201,0x7fff8224(%r15) 683: 01 f2 f2 f2 687: 41 c7 87 28 82 ff 7f movl $0xf2f2f2f2,0x7fff8228(%r15) 68e: f2 f2 f2 f2 692: 41 c7 87 2c 82 ff 7f movl $0xf2f2f204,0x7fff822c(%r15) 699: 04 f2 f2 f2 69d: 41 c7 87 30 82 ff 7f movl $0xf2f2f2f2,0x7fff8230(%r15) 6a4: f2 f2 f2 f2 6a8: 41 c7 87 34 82 ff 7f movl $0xf2f2f204,0x7fff8234(%r15) 6af: 04 f2 f2 f2 6b3: 41 c7 87 38 82 ff 7f movl $0xf2f2f2f2,0x7fff8238(%r15) 6ba: f2 f2 f2 f2 6be: 41 c7 87 3c 82 ff 7f movl $0xf2f2f204,0x7fff823c(%r15) 6c5: 04 f2 f2 f2 6c9: 41 c7 87 40 82 ff 7f movl $0xf2f2f2f2,0x7fff8240(%r15) 6d0: f2 f2 f2 f2 6d4: 41 c7 87 44 82 ff 7f movl $0xf2f2f204,0x7fff8244(%r15) 6db: 04 f2 f2 f2 6df: 41 c7 87 48 82 ff 7f movl $0xf2f2f2f2,0x7fff8248(%r15) 6e6: f2 f2 f2 f2 6ea: 41 c7 87 4c 82 ff 7f movl $0xf2f2f204,0x7fff824c(%r15) 6f1: 04 f2 f2 f2 6f5: 41 c7 87 50 82 ff 7f movl $0xf2f2f2f2,0x7fff8250(%r15) 6fc: f2 f2 f2 f2 700: 41 c7 87 54 82 ff 7f movl $0xf2f2f204,0x7fff8254(%r15) 707: 04 f2 f2 f2 70b: 41 c7 87 58 82 ff 7f movl $0xf2f2f2f2,0x7fff8258(%r15) 712: f2 f2 f2 f2 716: 41 c7 87 5c 82 ff 7f movl $0xf2f2f204,0x7fff825c(%r15) 71d: 04 f2 f2 f2 721: 41 c7 87 60 82 ff 7f movl $0xf2f2f2f2,0x7fff8260(%r15) 728: f2 f2 f2 f2 72c: 41 c7 87 64 82 ff 7f movl $0xf2f2f204,0x7fff8264(%r15) 733: 04 f2 f2 f2 737: 41 c7 87 68 82 ff 7f movl $0xf2f2f2f2,0x7fff8268(%r15) 73e: f2 f2 f2 f2 742: 41 c7 87 6c 82 ff 7f movl $0xf2f2f204,0x7fff826c(%r15) 749: 04 f2 f2 f2 74d: 41 c7 87 70 82 ff 7f movl $0xf2f2f2f2,0x7fff8270(%r15) 754: f2 f2 f2 f2 758: 41 c7 87 74 82 ff 7f movl $0xf2f2f204,0x7fff8274(%r15) 75f: 04 f2 f2 f2 763: 41 c7 87 78 82 ff 7f movl $0xf2f2f2f2,0x7fff8278(%r15) 76a: f2 f2 f2 f2 76e: 41 c7 87 7c 82 ff 7f movl $0xf2f2f204,0x7fff827c(%r15) 775: 04 f2 f2 f2 779: 41 c7 87 80 82 ff 7f movl $0xf2f2f2f2,0x7fff8280(%r15) 780: f2 f2 f2 f2 784: 41 c7 87 84 82 ff 7f movl $0xf2f2f204,0x7fff8284(%r15) 78b: 04 f2 f2 f2 78f: 41 c7 87 88 82 ff 7f movl $0xf2f2f2f2,0x7fff8288(%r15) 796: f2 f2 f2 f2 79a: 41 c7 87 8c 82 ff 7f movl $0xf2f2f204,0x7fff828c(%r15) 7a1: 04 f2 f2 f2 7a5: 41 c7 87 90 82 ff 7f movl $0xf2f2f2f2,0x7fff8290(%r15) 7ac: f2 f2 f2 f2 7b0: 41 c7 87 94 82 ff 7f movl $0xf2f2f204,0x7fff8294(%r15) 7b7: 04 f2 f2 f2 7bb: 41 c7 87 98 82 ff 7f movl $0xf2f2f2f2,0x7fff8298(%r15) 7c2: f2 f2 f2 f2 7c6: 41 c7 87 9c 82 ff 7f movl $0xf2f2f204,0x7fff829c(%r15) 7cd: 04 f2 f2 f2 7d1: 41 c7 87 a0 82 ff 7f movl $0xf2f2f2f2,0x7fff82a0(%r15) 7d8: f2 f2 f2 f2 7dc: 41 c7 87 a4 82 ff 7f movl $0xf2f2f204,0x7fff82a4(%r15) 7e3: 04 f2 f2 f2 7e7: 41 c7 87 a8 82 ff 7f movl $0xf2f2f2f2,0x7fff82a8(%r15) 7ee: f2 f2 f2 f2 7f2: 41 c7 87 ac 82 ff 7f movl $0xf2f2f204,0x7fff82ac(%r15) 7f9: 04 f2 f2 f2 7fd: 41 c7 87 b0 82 ff 7f movl $0xf2f2f2f2,0x7fff82b0(%r15) 804: f2 f2 f2 f2 808: 41 c7 87 b4 82 ff 7f movl $0xf2f2f204,0x7fff82b4(%r15) 80f: 04 f2 f2 f2 813: 41 c7 87 b8 82 ff 7f movl $0xf2f2f2f2,0x7fff82b8(%r15) 81a: f2 f2 f2 f2 81e: 41 c7 87 bc 82 ff 7f movl $0xf2f2f204,0x7fff82bc(%r15) 825: 04 f2 f2 f2 829: 41 c7 87 c0 82 ff 7f movl $0xf2f2f2f2,0x7fff82c0(%r15) 830: f2 f2 f2 f2 834: 41 c7 87 c4 82 ff 7f movl $0xf2f2f204,0x7fff82c4(%r15) 83b: 04 f2 f2 f2 83f: 41 c7 87 c8 82 ff 7f movl $0xf2f2f2f2,0x7fff82c8(%r15) 846: f2 f2 f2 f2 84a: 41 c7 87 cc 82 ff 7f movl $0xf2f2f204,0x7fff82cc(%r15) 851: 04 f2 f2 f2 855: 41 c7 87 d0 82 ff 7f movl $0xf2f2f2f2,0x7fff82d0(%r15) 85c: f2 f2 f2 f2 860: 41 c7 87 d4 82 ff 7f movl $0xf2f2f204,0x7fff82d4(%r15) 867: 04 f2 f2 f2 86b: 41 c7 87 d8 82 ff 7f movl $0xf2f2f2f2,0x7fff82d8(%r15) 872: f2 f2 f2 f2 876: 41 c7 87 dc 82 ff 7f movl $0xf2f2f204,0x7fff82dc(%r15) 87d: 04 f2 f2 f2 881: 41 c7 87 e0 82 ff 7f movl $0xf2f2f2f2,0x7fff82e0(%r15) 888: f2 f2 f2 f2 88c: 41 c7 87 e4 82 ff 7f movl $0xf2f2f204,0x7fff82e4(%r15) 893: 04 f2 f2 f2 897: 41 c7 87 e8 82 ff 7f movl $0xf2f2f2f2,0x7fff82e8(%r15) 89e: f2 f2 f2 f2 8a2: 41 c7 87 ec 82 ff 7f movl $0xf2f2f204,0x7fff82ec(%r15) 8a9: 04 f2 f2 f2 8ad: 41 c7 87 f0 82 ff 7f movl $0xf2f2f2f2,0x7fff82f0(%r15) 8b4: f2 f2 f2 f2 8b8: 41 c7 87 f4 82 ff 7f movl $0xf2f2f200,0x7fff82f4(%r15) 8bf: 00 f2 f2 f2 8c3: 41 c7 87 f8 82 ff 7f movl $0xf2f2f2f2,0x7fff82f8(%r15) 8ca: f2 f2 f2 f2 8ce: 41 c7 87 fc 82 ff 7f movl $0xf2f2f200,0x7fff82fc(%r15) 8d5: 00 f2 f2 f2 8d9: 41 c7 87 00 83 ff 7f movl $0xf2f2f2f2,0x7fff8300(%r15) 8e0: f2 f2 f2 f2 8e4: 41 c7 87 04 83 ff 7f movl $0xf2f2f200,0x7fff8304(%r15) 8eb: 00 f2 f2 f2 8ef: 41 c7 87 08 83 ff 7f movl $0xf2f2f2f2,0x7fff8308(%r15) 8f6: f2 f2 f2 f2 8fa: 41 c7 87 0c 83 ff 7f movl $0xf2f2f200,0x7fff830c(%r15) 901: 00 f2 f2 f2 905: 41 c7 87 10 83 ff 7f movl $0xf2f2f2f2,0x7fff8310(%r15) 90c: f2 f2 f2 f2 910: 41 c7 87 14 83 ff 7f movl $0xf2f2f200,0x7fff8314(%r15) 917: 00 f2 f2 f2 91b: 41 c7 87 18 83 ff 7f movl $0xf2f2f2f2,0x7fff8318(%r15) 922: f2 f2 f2 f2 926: 41 c7 87 1c 83 ff 7f movl $0xf2f2f200,0x7fff831c(%r15) 92d: 00 f2 f2 f2 931: 41 c7 87 20 83 ff 7f movl $0xf2f2f2f2,0x7fff8320(%r15) 938: f2 f2 f2 f2 93c: 41 c7 87 24 83 ff 7f movl $0xf2f2f200,0x7fff8324(%r15) 943: 00 f2 f2 f2 947: 41 c7 87 28 83 ff 7f movl $0xf2f2f2f2,0x7fff8328(%r15) 94e: f2 f2 f2 f2 952: 41 c7 87 2c 83 ff 7f movl $0xf2f2f200,0x7fff832c(%r15) 959: 00 f2 f2 f2 95d: 41 c7 87 30 83 ff 7f movl $0xf2f2f2f2,0x7fff8330(%r15) 964: f2 f2 f2 f2 968: 41 c7 87 34 83 ff 7f movl $0xf2f2f200,0x7fff8334(%r15) 96f: 00 f2 f2 f2 973: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 97a: 00 00 97c: 48 89 45 c8 mov %rax,-0x38(%rbp) 980: 31 c0 xor %eax,%eax 982: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 98a <_ZN8BalancerILh2EE6updateEv+0x98a> 989: 00 98a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 992 <_ZN8BalancerILh2EE6updateEv+0x992> 991: 00 uint8_t numActuators = requesters.size(); 992: 48 83 bd e0 e5 ff ff cmpq $0x0,-0x1a20(%rbp) 999: 00 99a: 74 09 je 9a5 <_ZN8BalancerILh2EE6updateEv+0x9a5> 99c: f6 85 e0 e5 ff ff 07 testb $0x7,-0x1a20(%rbp) 9a3: 74 13 je 9b8 <_ZN8BalancerILh2EE6updateEv+0x9b8> 9a5: 48 8b b5 e0 e5 ff ff mov -0x1a20(%rbp),%rsi 9ac: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 9b3 <_ZN8BalancerILh2EE6updateEv+0x9b3> 9b3: e8 00 00 00 00 callq 9b8 <_ZN8BalancerILh2EE6updateEv+0x9b8> 9b8: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 9c0 <_ZN8BalancerILh2EE6updateEv+0x9c0> 9bf: 00 9c0: 48 8b 85 e0 e5 ff ff mov -0x1a20(%rbp),%rax 9c7: 48 83 c0 10 add $0x10,%rax 9cb: 48 83 bd e0 e5 ff ff cmpq $0xfffffffffffffff0,-0x1a20(%rbp) 9d2: f0 9d3: 48 89 85 e8 e5 ff ff mov %rax,-0x1a18(%rbp) 9da: 72 16 jb 9f2 <_ZN8BalancerILh2EE6updateEv+0x9f2> 9dc: 48 8b b5 e0 e5 ff ff mov -0x1a20(%rbp),%rsi 9e3: 48 89 c2 mov %rax,%rdx 9e6: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 9ed <_ZN8BalancerILh2EE6updateEv+0x9ed> 9ed: e8 00 00 00 00 callq 9f2 <_ZN8BalancerILh2EE6updateEv+0x9f2> 9f2: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 9fa <_ZN8BalancerILh2EE6updateEv+0x9fa> 9f9: 00 9fa: 48 83 bd e8 e5 ff ff cmpq $0x0,-0x1a18(%rbp) a01: 00 a02: 74 09 je a0d <_ZN8BalancerILh2EE6updateEv+0xa0d> a04: f6 85 e8 e5 ff ff 07 testb $0x7,-0x1a18(%rbp) a0b: 74 13 je a20 <_ZN8BalancerILh2EE6updateEv+0xa20> a0d: 48 8b b5 e8 e5 ff ff mov -0x1a18(%rbp),%rsi a14: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # a1b <_ZN8BalancerILh2EE6updateEv+0xa1b> a1b: e8 00 00 00 00 callq a20 <_ZN8BalancerILh2EE6updateEv+0xa20> a20: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # a28 <_ZN8BalancerILh2EE6updateEv+0xa28> a27: 00 { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); } a28: 48 83 bd e8 e5 ff ff cmpq $0x0,-0x1a18(%rbp) a2f: 00 a30: 74 09 je a3b <_ZN8BalancerILh2EE6updateEv+0xa3b> a32: f6 85 e8 e5 ff ff 07 testb $0x7,-0x1a18(%rbp) a39: 74 13 je a4e <_ZN8BalancerILh2EE6updateEv+0xa4e> a3b: 48 8b b5 e8 e5 ff ff mov -0x1a18(%rbp),%rsi a42: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # a49 <_ZN8BalancerILh2EE6updateEv+0xa49> a49: e8 00 00 00 00 callq a4e <_ZN8BalancerILh2EE6updateEv+0xa4e> a4e: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # a56 <_ZN8BalancerILh2EE6updateEv+0xa56> a55: 00 a56: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # a5e <_ZN8BalancerILh2EE6updateEv+0xa5e> a5d: 00 a5e: 48 8b 85 e8 e5 ff ff mov -0x1a18(%rbp),%rax a65: 48 8d 50 08 lea 0x8(%rax),%rdx a69: 48 83 f8 f8 cmp $0xfffffffffffffff8,%rax a6d: 72 0f jb a7e <_ZN8BalancerILh2EE6updateEv+0xa7e> a6f: 48 89 c6 mov %rax,%rsi a72: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # a79 <_ZN8BalancerILh2EE6updateEv+0xa79> a79: e8 00 00 00 00 callq a7e <_ZN8BalancerILh2EE6updateEv+0xa7e> a7e: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # a86 <_ZN8BalancerILh2EE6updateEv+0xa86> a85: 00 a86: 48 8b 85 e0 e5 ff ff mov -0x1a20(%rbp),%rax a8d: 48 8d 78 18 lea 0x18(%rax),%rdi a91: 48 89 f8 mov %rdi,%rax a94: 48 c1 e8 03 shr $0x3,%rax a98: 80 b8 00 80 ff 7f 00 cmpb $0x0,0x7fff8000(%rax) a9f: 74 05 je aa6 <_ZN8BalancerILh2EE6updateEv+0xaa6> aa1: e8 00 00 00 00 callq aa6 <_ZN8BalancerILh2EE6updateEv+0xaa6> aa6: 48 8b 85 e0 e5 ff ff mov -0x1a20(%rbp),%rax aad: 48 83 bd e8 e5 ff ff cmpq $0x0,-0x1a18(%rbp) ab4: 00 ab5: 4c 8b 60 18 mov 0x18(%rax),%r12 ab9: 74 09 je ac4 <_ZN8BalancerILh2EE6updateEv+0xac4> abb: f6 85 e8 e5 ff ff 07 testb $0x7,-0x1a18(%rbp) ac2: 74 13 je ad7 <_ZN8BalancerILh2EE6updateEv+0xad7> ac4: 48 8b b5 e8 e5 ff ff mov -0x1a18(%rbp),%rsi acb: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # ad2 <_ZN8BalancerILh2EE6updateEv+0xad2> ad2: e8 00 00 00 00 callq ad7 <_ZN8BalancerILh2EE6updateEv+0xad7> ad7: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # adf <_ZN8BalancerILh2EE6updateEv+0xadf> ade: 00 adf: 48 8b 85 e8 e5 ff ff mov -0x1a18(%rbp),%rax ae6: 48 c1 e8 03 shr $0x3,%rax aea: 80 b8 00 80 ff 7f 00 cmpb $0x0,0x7fff8000(%rax) af1: 74 0c je aff <_ZN8BalancerILh2EE6updateEv+0xaff> af3: 48 8b bd e8 e5 ff ff mov -0x1a18(%rbp),%rdi afa: e8 00 00 00 00 callq aff <_ZN8BalancerILh2EE6updateEv+0xaff> aff: 48 8b 8d e0 e5 ff ff mov -0x1a20(%rbp),%rcx b06: 4c 89 e0 mov %r12,%rax b09: 48 ba ab aa aa aa aa movabs $0xaaaaaaaaaaaaaaab,%rdx b10: aa aa aa b13: 48 8d bb 40 e6 ff ff lea -0x19c0(%rbx),%rdi b1a: 48 2b 41 10 sub 0x10(%rcx),%rax b1e: 48 c1 f8 02 sar $0x2,%rax b22: 48 0f af c2 imul %rdx,%rax b26: 48 89 fa mov %rdi,%rdx b29: 48 c1 ea 03 shr $0x3,%rdx b2d: 8a 92 00 80 ff 7f mov 0x7fff8000(%rdx),%dl b33: 84 d2 test %dl,%dl b35: 74 07 je b3e <_ZN8BalancerILh2EE6updateEv+0xb3e> b37: 7f 05 jg b3e <_ZN8BalancerILh2EE6updateEv+0xb3e> b39: e8 00 00 00 00 callq b3e <_ZN8BalancerILh2EE6updateEv+0xb3e> if (numActuators == 0) { b3e: 84 c0 test %al,%al uint8_t numActuators = requesters.size(); b40: 88 83 40 e6 ff ff mov %al,-0x19c0(%rbx) b46: 48 8d 83 80 f7 ff ff lea -0x880(%rbx),%rax if (numActuators == 0) { b4d: 0f 85 81 00 00 00 jne bd4 <_ZN8BalancerILh2EE6updateEv+0xbd4> b53: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # b5b <_ZN8BalancerILh2EE6updateEv+0xb5b> b5a: 00 return; b5b: 48 c1 ef 03 shr $0x3,%rdi b5f: c6 87 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rdi) b66: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # b6e <_ZN8BalancerILh2EE6updateEv+0xb6e> b6d: 00 b6e: 48 c1 e8 03 shr $0x3,%rax b72: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) b79: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # b81 <_ZN8BalancerILh2EE6updateEv+0xb81> b80: 00 b81: 48 8d 83 c0 f7 ff ff lea -0x840(%rbx),%rax b88: 48 c1 e8 03 shr $0x3,%rax b8c: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) b93: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # b9b <_ZN8BalancerILh2EE6updateEv+0xb9b> b9a: 00 b9b: 48 8d 83 40 f8 ff ff lea -0x7c0(%rbx),%rax ba2: 48 c1 e8 03 shr $0x3,%rax ba6: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) bad: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # bb5 <_ZN8BalancerILh2EE6updateEv+0xbb5> bb4: 00 bb5: 48 81 eb 80 07 00 00 sub $0x780,%rbx bbc: 48 c1 eb 03 shr $0x3,%rbx bc0: c6 83 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rbx) bc7: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # bcf <_ZN8BalancerILh2EE6updateEv+0xbcf> bce: 00 bcf: e9 9c 31 00 00 jmpq 3d70 <_ZN8BalancerILh2EE6updateEv+0x3d70> bd4: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # bdc <_ZN8BalancerILh2EE6updateEv+0xbdc> bdb: 00 bdc: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # be4 <_ZN8BalancerILh2EE6updateEv+0xbe4> be3: 00 auto requestedTotal = value_t(0); be4: 48 89 c2 mov %rax,%rdx be7: 48 c1 ea 03 shr $0x3,%rdx beb: 8a 92 00 80 ff 7f mov 0x7fff8000(%rdx),%dl bf1: 84 d2 test %dl,%dl bf3: 74 0d je c02 <_ZN8BalancerILh2EE6updateEv+0xc02> bf5: 80 fa 03 cmp $0x3,%dl bf8: 7f 08 jg c02 <_ZN8BalancerILh2EE6updateEv+0xc02> bfa: 48 89 c7 mov %rax,%rdi bfd: e8 00 00 00 00 callq c02 <_ZN8BalancerILh2EE6updateEv+0xc02> for (const auto& a : requesters) { c02: 48 83 bd e0 e5 ff ff cmpq $0x0,-0x1a20(%rbp) c09: 00 auto requestedTotal = value_t(0); c0a: c7 83 80 f7 ff ff 00 movl $0x0,-0x880(%rbx) c11: 00 00 00 for (const auto& a : requesters) { c14: 74 09 je c1f <_ZN8BalancerILh2EE6updateEv+0xc1f> c16: f6 85 e0 e5 ff ff 07 testb $0x7,-0x1a20(%rbp) c1d: 74 13 je c32 <_ZN8BalancerILh2EE6updateEv+0xc32> c1f: 48 8b b5 e0 e5 ff ff mov -0x1a20(%rbp),%rsi c26: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # c2d <_ZN8BalancerILh2EE6updateEv+0xc2d> c2d: e8 00 00 00 00 callq c32 <_ZN8BalancerILh2EE6updateEv+0xc32> c32: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # c3a <_ZN8BalancerILh2EE6updateEv+0xc3a> c39: 00 c3a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # c42 <_ZN8BalancerILh2EE6updateEv+0xc42> c41: 00 c42: 48 83 bd e8 e5 ff ff cmpq $0x0,-0x1a18(%rbp) c49: 00 c4a: 74 09 je c55 <_ZN8BalancerILh2EE6updateEv+0xc55> c4c: f6 85 e8 e5 ff ff 07 testb $0x7,-0x1a18(%rbp) c53: 74 13 je c68 <_ZN8BalancerILh2EE6updateEv+0xc68> c55: 48 8b b5 e8 e5 ff ff mov -0x1a18(%rbp),%rsi c5c: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # c63 <_ZN8BalancerILh2EE6updateEv+0xc63> c63: e8 00 00 00 00 callq c68 <_ZN8BalancerILh2EE6updateEv+0xc68> c68: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # c70 <_ZN8BalancerILh2EE6updateEv+0xc70> c6f: 00 c70: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # c78 <_ZN8BalancerILh2EE6updateEv+0xc78> c77: 00 c78: 48 83 bd e8 e5 ff ff cmpq $0x0,-0x1a18(%rbp) c7f: 00 c80: 74 09 je c8b <_ZN8BalancerILh2EE6updateEv+0xc8b> c82: f6 85 e8 e5 ff ff 07 testb $0x7,-0x1a18(%rbp) c89: 74 13 je c9e <_ZN8BalancerILh2EE6updateEv+0xc9e> c8b: 48 8b b5 e8 e5 ff ff mov -0x1a18(%rbp),%rsi c92: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # c99 <_ZN8BalancerILh2EE6updateEv+0xc99> c99: e8 00 00 00 00 callq c9e <_ZN8BalancerILh2EE6updateEv+0xc9e> c9e: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # ca6 <_ZN8BalancerILh2EE6updateEv+0xca6> ca5: 00 ca6: 48 8d 83 c0 fd ff ff lea -0x240(%rbx),%rax cad: 49 89 c4 mov %rax,%r12 cb0: 48 89 85 c0 e5 ff ff mov %rax,-0x1a40(%rbp) cb7: 49 c1 ec 03 shr $0x3,%r12 cbb: 41 80 bc 24 00 80 ff cmpb $0x0,0x7fff8000(%r12) cc2: 7f 00 cc4: 74 08 je cce <_ZN8BalancerILh2EE6updateEv+0xcce> cc6: 48 89 c7 mov %rax,%rdi cc9: e8 00 00 00 00 callq cce <_ZN8BalancerILh2EE6updateEv+0xcce> cce: 48 8b bd e8 e5 ff ff mov -0x1a18(%rbp),%rdi cd5: e8 00 00 00 00 callq cda <_ZN8BalancerILh2EE6updateEv+0xcda> cda: 48 89 83 c0 fd ff ff mov %rax,-0x240(%rbx) ce1: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # ce9 <_ZN8BalancerILh2EE6updateEv+0xce9> ce8: 00 ce9: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # cf1 <_ZN8BalancerILh2EE6updateEv+0xcf1> cf0: 00 cf1: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # cf9 <_ZN8BalancerILh2EE6updateEv+0xcf9> cf8: 00 cf9: 48 8d 83 00 fe ff ff lea -0x200(%rbx),%rax d00: 48 89 85 d0 e5 ff ff mov %rax,-0x1a30(%rbp) d07: 48 c1 e8 03 shr $0x3,%rax d0b: 80 b8 00 80 ff 7f 00 cmpb $0x0,0x7fff8000(%rax) d12: 74 0c je d20 <_ZN8BalancerILh2EE6updateEv+0xd20> d14: 48 8b bd d0 e5 ff ff mov -0x1a30(%rbp),%rdi d1b: e8 00 00 00 00 callq d20 <_ZN8BalancerILh2EE6updateEv+0xd20> d20: 48 8b bd e8 e5 ff ff mov -0x1a18(%rbp),%rdi d27: e8 00 00 00 00 callq d2c <_ZN8BalancerILh2EE6updateEv+0xd2c> d2c: 48 89 83 00 fe ff ff mov %rax,-0x200(%rbx) d33: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # d3b <_ZN8BalancerILh2EE6updateEv+0xd3b> d3a: 00 { return __lhs.base() != __rhs.base(); } d3b: 4c 89 a5 b0 e5 ff ff mov %r12,-0x1a50(%rbp) operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, d42: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # d4a <_ZN8BalancerILh2EE6updateEv+0xd4a> d49: 00 d4a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # d52 <_ZN8BalancerILh2EE6updateEv+0xd52> d51: 00 d52: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # d5a <_ZN8BalancerILh2EE6updateEv+0xd5a> d59: 00 d5a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # d62 <_ZN8BalancerILh2EE6updateEv+0xd62> d61: 00 d62: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # d6a <_ZN8BalancerILh2EE6updateEv+0xd6a> d69: 00 { return __lhs.base() != __rhs.base(); } d6a: 48 8b 85 b0 e5 ff ff mov -0x1a50(%rbp),%rax d71: 80 b8 00 80 ff 7f 00 cmpb $0x0,0x7fff8000(%rax) d78: 74 0c je d86 <_ZN8BalancerILh2EE6updateEv+0xd86> d7a: 48 8b bd c0 e5 ff ff mov -0x1a40(%rbp),%rdi d81: e8 00 00 00 00 callq d86 <_ZN8BalancerILh2EE6updateEv+0xd86> d86: 4c 8b ab c0 fd ff ff mov -0x240(%rbx),%r13 d8d: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # d95 <_ZN8BalancerILh2EE6updateEv+0xd95> d94: 00 d95: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # d9d <_ZN8BalancerILh2EE6updateEv+0xd9d> d9c: 00 d9d: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # da5 <_ZN8BalancerILh2EE6updateEv+0xda5> da4: 00 da5: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # dad <_ZN8BalancerILh2EE6updateEv+0xdad> dac: 00 dad: 48 8b 85 d0 e5 ff ff mov -0x1a30(%rbp),%rax db4: 48 c1 e8 03 shr $0x3,%rax db8: 80 b8 00 80 ff 7f 00 cmpb $0x0,0x7fff8000(%rax) dbf: 74 0c je dcd <_ZN8BalancerILh2EE6updateEv+0xdcd> dc1: 48 8b bd d0 e5 ff ff mov -0x1a30(%rbp),%rdi dc8: e8 00 00 00 00 callq dcd <_ZN8BalancerILh2EE6updateEv+0xdcd> dcd: 48 8d 8b 80 f7 ff ff lea -0x880(%rbx),%rcx dd4: 4c 3b ab 00 fe ff ff cmp -0x200(%rbx),%r13 ddb: 48 89 8d c8 e5 ff ff mov %rcx,-0x1a38(%rbp) de2: 0f 84 a5 10 00 00 je 1e8d <_ZN8BalancerILh2EE6updateEv+0x1e8d> de8: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # df0 <_ZN8BalancerILh2EE6updateEv+0xdf0> def: 00 operator*() const _GLIBCXX_NOEXCEPT df0: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # df8 <_ZN8BalancerILh2EE6updateEv+0xdf8> df7: 00 { return *_M_current; } df8: 4d 85 ed test %r13,%r13 dfb: 74 06 je e03 <_ZN8BalancerILh2EE6updateEv+0xe03> dfd: 41 f6 c5 03 test $0x3,%r13b e01: 74 0f je e12 <_ZN8BalancerILh2EE6updateEv+0xe12> e03: 4c 89 ee mov %r13,%rsi e06: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # e0d <_ZN8BalancerILh2EE6updateEv+0xe0d> e0d: e8 00 00 00 00 callq e12 <_ZN8BalancerILh2EE6updateEv+0xe12> e12: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # e1a <_ZN8BalancerILh2EE6updateEv+0xe1a> e19: 00 e1a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # e22 <_ZN8BalancerILh2EE6updateEv+0xe22> e21: 00 e22: 4d 85 ed test %r13,%r13 e25: 74 06 je e2d <_ZN8BalancerILh2EE6updateEv+0xe2d> e27: 41 f6 c5 03 test $0x3,%r13b e2b: 74 0f je e3c <_ZN8BalancerILh2EE6updateEv+0xe3c> e2d: 4c 89 ee mov %r13,%rsi e30: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # e37 <_ZN8BalancerILh2EE6updateEv+0xe37> e37: e8 00 00 00 00 callq e3c <_ZN8BalancerILh2EE6updateEv+0xe3c> e3c: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # e44 <_ZN8BalancerILh2EE6updateEv+0xe44> e43: 00 requestedTotal += a.requested; e44: 4d 85 ed test %r13,%r13 e47: 74 06 je e4f <_ZN8BalancerILh2EE6updateEv+0xe4f> e49: 41 f6 c5 03 test $0x3,%r13b e4d: 74 0f je e5e <_ZN8BalancerILh2EE6updateEv+0xe5e> e4f: 4c 89 ee mov %r13,%rsi e52: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # e59 <_ZN8BalancerILh2EE6updateEv+0xe59> e59: e8 00 00 00 00 callq e5e <_ZN8BalancerILh2EE6updateEv+0xe5e> e5e: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # e66 <_ZN8BalancerILh2EE6updateEv+0xe66> e65: 00 e66: 4d 8d 75 04 lea 0x4(%r13),%r14 e6a: 49 83 fd fc cmp $0xfffffffffffffffc,%r13 e6e: 72 12 jb e82 <_ZN8BalancerILh2EE6updateEv+0xe82> e70: 4c 89 f2 mov %r14,%rdx e73: 4c 89 ee mov %r13,%rsi e76: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # e7d <_ZN8BalancerILh2EE6updateEv+0xe7d> e7d: e8 00 00 00 00 callq e82 <_ZN8BalancerILh2EE6updateEv+0xe82> e82: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # e8a <_ZN8BalancerILh2EE6updateEv+0xe8a> e89: 00 e8a: 4d 85 f6 test %r14,%r14 e8d: 74 06 je e95 <_ZN8BalancerILh2EE6updateEv+0xe95> e8f: 41 f6 c6 03 test $0x3,%r14b e93: 74 0f je ea4 <_ZN8BalancerILh2EE6updateEv+0xea4> e95: 4c 89 f6 mov %r14,%rsi e98: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # e9f <_ZN8BalancerILh2EE6updateEv+0xe9f> e9f: e8 00 00 00 00 callq ea4 <_ZN8BalancerILh2EE6updateEv+0xea4> ea4: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # eac <_ZN8BalancerILh2EE6updateEv+0xeac> eab: 00 eac: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # eb4 <_ZN8BalancerILh2EE6updateEv+0xeb4> eb3: 00 eb4: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # ebc <_ZN8BalancerILh2EE6updateEv+0xebc> ebb: 00 cnl::compound_assignment_operator<native_tag, NAME, LhsOperand, RhsOperand>()(lhs, rhs))>
{
return cnl::compound_assignment_operator<native_tag, NAME, LhsOperand, RhsOperand>()(lhs, rhs);
}CNL_DEFINE_COMPOUND_ASSIGNMENT_OPERATOR(+=, assign_add_op) ebc: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # ec4 <_ZN8BalancerILh2EE6updateEv+0xec4> ec3: 00 ec4: 48 8d 83 00 ec ff ff lea -0x1400(%rbx),%rax ecb: 48 89 c2 mov %rax,%rdx ece: 48 89 85 a8 e5 ff ff mov %rax,-0x1a58(%rbp) ed5: 48 c1 ea 03 shr $0x3,%rdx ed9: c6 82 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rdx) ee0: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # ee8 <_ZN8BalancerILh2EE6updateEv+0xee8> ee7: 00 template<class Tag, class Operator, class LhsOperand, class Enable = void> struct post_operator; template<class Tag, class Operator, class LhsOperand, class RhsOperand, class Enable = void> struct compound_assignment_operator { constexpr LhsOperand& operator()(LhsOperand& lhs, RhsOperand const& rhs) const ee8: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # ef0 <_ZN8BalancerILh2EE6updateEv+0xef0> eef: 00 { return lhs = static_cast<LhsOperand>( binary_operator<Tag, typename Operator::binary, LhsOperand, RhsOperand>{}(lhs, rhs)); ef0: 48 8d 83 c0 f8 ff ff lea -0x740(%rbx),%rax ef7: 48 89 c2 mov %rax,%rdx efa: 48 89 85 a8 e5 ff ff mov %rax,-0x1a58(%rbp) f01: 48 c1 ea 03 shr $0x3,%rdx f05: c6 82 00 80 ff 7f 04 movb $0x4,0x7fff8000(%rdx) f0c: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # f14 <_ZN8BalancerILh2EE6updateEv+0xf14> f13: 00 f14: 48 8d 93 00 f9 ff ff lea -0x700(%rbx),%rdx f1b: 48 c1 ea 03 shr $0x3,%rdx f1f: c6 82 00 80 ff 7f 04 movb $0x4,0x7fff8000(%rdx) f26: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # f2e <_ZN8BalancerILh2EE6updateEv+0xf2e> f2d: 00 f2e: 48 8d 93 40 ec ff ff lea -0x13c0(%rbx),%rdx f35: 48 c1 ea 03 shr $0x3,%rdx f39: c6 82 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rdx) f40: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # f48 <_ZN8BalancerILh2EE6updateEv+0xf48> f47: 00 f48: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # f50 <_ZN8BalancerILh2EE6updateEv+0xf50> f4f: 00 CNL_NODISCARD constexpr auto operator()( f50: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # f58 <_ZN8BalancerILh2EE6updateEv+0xf58> f57: 00 power<Exponent, Radix>>>(Operator()(_impl::to_rep(lhs), _impl::to_rep(rhs))); f58: 48 8d 93 40 f9 ff ff lea -0x6c0(%rbx),%rdx f5f: 48 c1 ea 03 shr $0x3,%rdx f63: c6 82 00 80 ff 7f 04 movb $0x4,0x7fff8000(%rdx) f6a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # f72 <_ZN8BalancerILh2EE6updateEv+0xf72> f71: 00 f72: 48 8d 93 80 ec ff ff lea -0x1380(%rbx),%rdx f79: 48 c1 ea 03 shr $0x3,%rdx f7d: c6 82 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rdx) f84: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # f8c <_ZN8BalancerILh2EE6updateEv+0xf8c> f8b: 00 f8c: 4c 8d a3 40 ed ff ff lea -0x12c0(%rbx),%r12 f93: 4c 89 e2 mov %r12,%rdx f96: 48 c1 ea 03 shr $0x3,%rdx f9a: c6 82 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rdx) fa1: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # fa9 <_ZN8BalancerILh2EE6updateEv+0xfa9> fa8: 00 fa9: 4d 85 f6 test %r14,%r14 fac: 74 06 je fb4 <_ZN8BalancerILh2EE6updateEv+0xfb4> fae: 41 f6 c6 03 test $0x3,%r14b fb2: 74 0f je fc3 <_ZN8BalancerILh2EE6updateEv+0xfc3> fb4: 4c 89 f6 mov %r14,%rsi fb7: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # fbe <_ZN8BalancerILh2EE6updateEv+0xfbe> fbe: e8 00 00 00 00 callq fc3 <_ZN8BalancerILh2EE6updateEv+0xfc3> fc3: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # fcb <_ZN8BalancerILh2EE6updateEv+0xfcb> fca: 00 { return static_cast<_Tp&&>(__t); } fcb: 4d 85 f6 test %r14,%r14 fce: 74 06 je fd6 <_ZN8BalancerILh2EE6updateEv+0xfd6> fd0: 41 f6 c6 03 test $0x3,%r14b fd4: 74 0f je fe5 <_ZN8BalancerILh2EE6updateEv+0xfe5> fd6: 4c 89 f6 mov %r14,%rsi fd9: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # fe0 <_ZN8BalancerILh2EE6updateEv+0xfe0> fe0: e8 00 00 00 00 callq fe5 <_ZN8BalancerILh2EE6updateEv+0xfe5> fe5: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # fed <_ZN8BalancerILh2EE6updateEv+0xfed> fec: 00 return number._rep; fed: 4d 85 f6 test %r14,%r14 ff0: 74 06 je ff8 <_ZN8BalancerILh2EE6updateEv+0xff8> ff2: 41 f6 c6 03 test $0x3,%r14b ff6: 74 0f je 1007 <_ZN8BalancerILh2EE6updateEv+0x1007> ff8: 4c 89 f6 mov %r14,%rsi ffb: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 1002 <_ZN8BalancerILh2EE6updateEv+0x1002> 1002: e8 00 00 00 00 callq 1007 <_ZN8BalancerILh2EE6updateEv+0x1007> 1007: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 100f <_ZN8BalancerILh2EE6updateEv+0x100f> 100e: 00 100f: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1017 <_ZN8BalancerILh2EE6updateEv+0x1017> 1016: 00 1017: 4d 85 f6 test %r14,%r14 101a: 74 06 je 1022 <_ZN8BalancerILh2EE6updateEv+0x1022> 101c: 41 f6 c6 03 test $0x3,%r14b 1020: 74 0f je 1031 <_ZN8BalancerILh2EE6updateEv+0x1031> 1022: 4c 89 f6 mov %r14,%rsi 1025: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 102c <_ZN8BalancerILh2EE6updateEv+0x102c> 102c: e8 00 00 00 00 callq 1031 <_ZN8BalancerILh2EE6updateEv+0x1031> 1031: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1039 <_ZN8BalancerILh2EE6updateEv+0x1039> 1038: 00 1039: 49 c1 ec 03 shr $0x3,%r12 103d: 41 c6 84 24 00 80 ff movb $0xf8,0x7fff8000(%r12) 1044: 7f f8 1046: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 104e <_ZN8BalancerILh2EE6updateEv+0x104e> 104d: 00 104e: 48 8d 93 00 ed ff ff lea -0x1300(%rbx),%rdx 1055: 48 c1 ea 03 shr $0x3,%rdx 1059: c6 82 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rdx) 1060: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1068 <_ZN8BalancerILh2EE6updateEv+0x1068> 1067: 00 1068: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1070 <_ZN8BalancerILh2EE6updateEv+0x1070> 106f: 00 1070: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1078 <_ZN8BalancerILh2EE6updateEv+0x1078> 1077: 00 1078: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1080 <_ZN8BalancerILh2EE6updateEv+0x1080> 107f: 00 1080: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1088 <_ZN8BalancerILh2EE6updateEv+0x1088> 1087: 00 1088: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1090 <_ZN8BalancerILh2EE6updateEv+0x1090> 108f: 00 1090: c6 82 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rdx) 1097: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 109f <_ZN8BalancerILh2EE6updateEv+0x109f> 109e: 00 CNL_NODISCARD constexpr auto operator()(Lhs const& lhs, Rhs const& rhs) const -> decltype(lhs+rhs) 109f: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 10a7 <_ZN8BalancerILh2EE6updateEv+0x10a7> 10a6: 00 CNL_DEFINE_BINARY_OPERATOR(+, add_op) 10a7: 48 8d 93 80 ed ff ff lea -0x1280(%rbx),%rdx 10ae: 48 c1 ea 03 shr $0x3,%rdx 10b2: c6 82 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rdx) 10b9: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 10c1 <_ZN8BalancerILh2EE6updateEv+0x10c1> 10c0: 00 10c1: 4d 85 f6 test %r14,%r14 10c4: 74 06 je 10cc <_ZN8BalancerILh2EE6updateEv+0x10cc> 10c6: 41 f6 c6 03 test $0x3,%r14b 10ca: 74 0f je 10db <_ZN8BalancerILh2EE6updateEv+0x10db> 10cc: 4c 89 f6 mov %r14,%rsi 10cf: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 10d6 <_ZN8BalancerILh2EE6updateEv+0x10d6> 10d6: e8 00 00 00 00 callq 10db <_ZN8BalancerILh2EE6updateEv+0x10db> 10db: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 10e3 <_ZN8BalancerILh2EE6updateEv+0x10e3> 10e2: 00 10e3: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 10eb <_ZN8BalancerILh2EE6updateEv+0x10eb> 10ea: 00 CNL_NODISCARD constexpr auto operator()(lhs_type const& lhs, rhs_type const& rhs) const 10eb: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 10f3 <_ZN8BalancerILh2EE6updateEv+0x10f3> 10f2: 00 cnl::binary_operator<OverflowTag, Operator, LhsRep, RhsRep>{}( 10f3: 48 8d 93 80 f9 ff ff lea -0x680(%rbx),%rdx 10fa: 48 c1 ea 03 shr $0x3,%rdx 10fe: c6 82 00 80 ff 7f 04 movb $0x4,0x7fff8000(%rdx) 1105: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 110d <_ZN8BalancerILh2EE6updateEv+0x110d> 110c: 00 110d: 48 8d 93 c0 ed ff ff lea -0x1240(%rbx),%rdx 1114: 48 c1 ea 03 shr $0x3,%rdx 1118: c6 82 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rdx) 111f: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1127 <_ZN8BalancerILh2EE6updateEv+0x1127> 1126: 00 1127: 4d 85 f6 test %r14,%r14 112a: 74 06 je 1132 <_ZN8BalancerILh2EE6updateEv+0x1132> 112c: 41 f6 c6 03 test $0x3,%r14b 1130: 74 0f je 1141 <_ZN8BalancerILh2EE6updateEv+0x1141> 1132: 4c 89 f6 mov %r14,%rsi 1135: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 113c <_ZN8BalancerILh2EE6updateEv+0x113c> 113c: e8 00 00 00 00 callq 1141 <_ZN8BalancerILh2EE6updateEv+0x1141> 1141: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1149 <_ZN8BalancerILh2EE6updateEv+0x1149> 1148: 00 1149: 4c 8d a3 c0 ee ff ff lea -0x1140(%rbx),%r12 1150: 4c 89 e2 mov %r12,%rdx 1153: 48 c1 ea 03 shr $0x3,%rdx 1157: c6 82 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rdx) 115e: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1166 <_ZN8BalancerILh2EE6updateEv+0x1166> 1165: 00 1166: 4d 85 f6 test %r14,%r14 1169: 74 06 je 1171 <_ZN8BalancerILh2EE6updateEv+0x1171> 116b: 41 f6 c6 03 test $0x3,%r14b 116f: 74 0f je 1180 <_ZN8BalancerILh2EE6updateEv+0x1180> 1171: 4c 89 f6 mov %r14,%rsi 1174: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 117b <_ZN8BalancerILh2EE6updateEv+0x117b> 117b: e8 00 00 00 00 callq 1180 <_ZN8BalancerILh2EE6updateEv+0x1180> 1180: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1188 <_ZN8BalancerILh2EE6updateEv+0x1188> 1187: 00 1188: 4d 85 f6 test %r14,%r14 118b: 74 06 je 1193 <_ZN8BalancerILh2EE6updateEv+0x1193> 118d: 41 f6 c6 03 test $0x3,%r14b 1191: 74 0f je 11a2 <_ZN8BalancerILh2EE6updateEv+0x11a2> 1193: 4c 89 f6 mov %r14,%rsi 1196: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 119d <_ZN8BalancerILh2EE6updateEv+0x119d> 119d: e8 00 00 00 00 callq 11a2 <_ZN8BalancerILh2EE6updateEv+0x11a2> 11a2: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 11aa <_ZN8BalancerILh2EE6updateEv+0x11aa> 11a9: 00 11aa: 4d 85 f6 test %r14,%r14 11ad: 74 06 je 11b5 <_ZN8BalancerILh2EE6updateEv+0x11b5> 11af: 41 f6 c6 03 test $0x3,%r14b 11b3: 74 0f je 11c4 <_ZN8BalancerILh2EE6updateEv+0x11c4> 11b5: 4c 89 f6 mov %r14,%rsi 11b8: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 11bf <_ZN8BalancerILh2EE6updateEv+0x11bf> 11bf: e8 00 00 00 00 callq 11c4 <_ZN8BalancerILh2EE6updateEv+0x11c4> 11c4: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 11cc <_ZN8BalancerILh2EE6updateEv+0x11cc> 11cb: 00 11cc: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 11d4 <_ZN8BalancerILh2EE6updateEv+0x11d4> 11d3: 00 11d4: 4d 85 f6 test %r14,%r14 11d7: 74 06 je 11df <_ZN8BalancerILh2EE6updateEv+0x11df> 11d9: 41 f6 c6 03 test $0x3,%r14b 11dd: 74 0f je 11ee <_ZN8BalancerILh2EE6updateEv+0x11ee> 11df: 4c 89 f6 mov %r14,%rsi 11e2: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 11e9 <_ZN8BalancerILh2EE6updateEv+0x11e9> 11e9: e8 00 00 00 00 callq 11ee <_ZN8BalancerILh2EE6updateEv+0x11ee> 11ee: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 11f6 <_ZN8BalancerILh2EE6updateEv+0x11f6> 11f5: 00 11f6: 49 c1 ec 03 shr $0x3,%r12 11fa: 41 c6 84 24 00 80 ff movb $0xf8,0x7fff8000(%r12) 1201: 7f f8 1203: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 120b <_ZN8BalancerILh2EE6updateEv+0x120b> 120a: 00 120b: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1213 <_ZN8BalancerILh2EE6updateEv+0x1213> 1212: 00 1213: 48 8d 93 80 ee ff ff lea -0x1180(%rbx),%rdx 121a: 48 c1 ea 03 shr $0x3,%rdx 121e: c6 82 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rdx) 1225: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 122d <_ZN8BalancerILh2EE6updateEv+0x122d> 122c: 00 122d: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1235 <_ZN8BalancerILh2EE6updateEv+0x1235> 1234: 00 1235: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 123d <_ZN8BalancerILh2EE6updateEv+0x123d> 123c: 00 123d: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1245 <_ZN8BalancerILh2EE6updateEv+0x1245> 1244: 00 1245: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 124d <_ZN8BalancerILh2EE6updateEv+0x124d> 124c: 00 124d: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1255 <_ZN8BalancerILh2EE6updateEv+0x1255> 1254: 00 1255: c6 82 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rdx) 125c: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1264 <_ZN8BalancerILh2EE6updateEv+0x1264> 1263: 00 1264: 48 8d 93 40 ee ff ff lea -0x11c0(%rbx),%rdx 126b: 48 c1 ea 03 shr $0x3,%rdx 126f: c6 82 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rdx) 1276: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 127e <_ZN8BalancerILh2EE6updateEv+0x127e> 127d: 00 127e: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1286 <_ZN8BalancerILh2EE6updateEv+0x1286> 1285: 00 1286: 48 8d 93 00 ef ff ff lea -0x1100(%rbx),%rdx 128d: 48 c1 ea 03 shr $0x3,%rdx 1291: c6 82 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rdx) 1298: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 12a0 <_ZN8BalancerILh2EE6updateEv+0x12a0> 129f: 00 CNL_NODISCARD constexpr auto operator()( 12a0: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 12a8 <_ZN8BalancerILh2EE6updateEv+0x12a8> 12a7: 00 static_cast<typename result_type::rep>(Operator()( 12a8: 48 8d 93 c0 f9 ff ff lea -0x640(%rbx),%rdx 12af: 48 c1 ea 03 shr $0x3,%rdx 12b3: c6 82 00 80 ff 7f 04 movb $0x4,0x7fff8000(%rdx) 12ba: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 12c2 <_ZN8BalancerILh2EE6updateEv+0x12c2> 12c1: 00 12c2: 48 8d 93 40 ef ff ff lea -0x10c0(%rbx),%rdx 12c9: 48 c1 ea 03 shr $0x3,%rdx 12cd: c6 82 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rdx) 12d4: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 12dc <_ZN8BalancerILh2EE6updateEv+0x12dc> 12db: 00 _impl::to_rep(static_cast<result_type>(rhs))))); 12dc: 48 8d 93 00 fa ff ff lea -0x600(%rbx),%rdx 12e3: 48 c1 ea 03 shr $0x3,%rdx 12e7: c6 82 00 80 ff 7f 04 movb $0x4,0x7fff8000(%rdx) 12ee: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 12f6 <_ZN8BalancerILh2EE6updateEv+0x12f6> 12f5: 00 explicit constexpr elastic_integer(elastic_integer<FromWidth, FromNarrowest> const& rhs) 12f6: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 12fe <_ZN8BalancerILh2EE6updateEv+0x12fe> 12fd: 00 12fe: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1306 <_ZN8BalancerILh2EE6updateEv+0x1306> 1305: 00 1306: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 130e <_ZN8BalancerILh2EE6updateEv+0x130e> 130d: 00 130e: 4c 8d a3 80 f0 ff ff lea -0xf80(%rbx),%r12 1315: 4c 89 e2 mov %r12,%rdx 1318: 48 c1 ea 03 shr $0x3,%rdx 131c: c6 82 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rdx) 1323: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 132b <_ZN8BalancerILh2EE6updateEv+0x132b> 132a: 00 132b: 4d 85 f6 test %r14,%r14 132e: 74 06 je 1336 <_ZN8BalancerILh2EE6updateEv+0x1336> 1330: 41 f6 c6 03 test $0x3,%r14b 1334: 74 0f je 1345 <_ZN8BalancerILh2EE6updateEv+0x1345> 1336: 4c 89 f6 mov %r14,%rsi 1339: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 1340 <_ZN8BalancerILh2EE6updateEv+0x1340> 1340: e8 00 00 00 00 callq 1345 <_ZN8BalancerILh2EE6updateEv+0x1345> 1345: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 134d <_ZN8BalancerILh2EE6updateEv+0x134d> 134c: 00 134d: 4d 85 f6 test %r14,%r14 1350: 74 06 je 1358 <_ZN8BalancerILh2EE6updateEv+0x1358> 1352: 41 f6 c6 03 test $0x3,%r14b 1356: 74 0f je 1367 <_ZN8BalancerILh2EE6updateEv+0x1367> 1358: 4c 89 f6 mov %r14,%rsi 135b: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 1362 <_ZN8BalancerILh2EE6updateEv+0x1362> 1362: e8 00 00 00 00 callq 1367 <_ZN8BalancerILh2EE6updateEv+0x1367> 1367: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 136f <_ZN8BalancerILh2EE6updateEv+0x136f> 136e: 00 136f: 4d 85 f6 test %r14,%r14 1372: 74 06 je 137a <_ZN8BalancerILh2EE6updateEv+0x137a> 1374: 41 f6 c6 03 test $0x3,%r14b 1378: 74 0f je 1389 <_ZN8BalancerILh2EE6updateEv+0x1389> 137a: 4c 89 f6 mov %r14,%rsi 137d: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 1384 <_ZN8BalancerILh2EE6updateEv+0x1384> 1384: e8 00 00 00 00 callq 1389 <_ZN8BalancerILh2EE6updateEv+0x1389> 1389: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1391 <_ZN8BalancerILh2EE6updateEv+0x1391> 1390: 00 1391: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1399 <_ZN8BalancerILh2EE6updateEv+0x1399> 1398: 00 1399: 4d 85 f6 test %r14,%r14 139c: 74 06 je 13a4 <_ZN8BalancerILh2EE6updateEv+0x13a4> 139e: 41 f6 c6 03 test $0x3,%r14b 13a2: 74 0f je 13b3 <_ZN8BalancerILh2EE6updateEv+0x13b3> 13a4: 4c 89 f6 mov %r14,%rsi 13a7: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 13ae <_ZN8BalancerILh2EE6updateEv+0x13ae> 13ae: e8 00 00 00 00 callq 13b3 <_ZN8BalancerILh2EE6updateEv+0x13b3> 13b3: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 13bb <_ZN8BalancerILh2EE6updateEv+0x13bb> 13ba: 00 13bb: 49 c1 ec 03 shr $0x3,%r12 13bf: 41 c6 84 24 00 80 ff movb $0xf8,0x7fff8000(%r12) 13c6: 7f f8 13c8: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 13d0 <_ZN8BalancerILh2EE6updateEv+0x13d0> 13cf: 00 :_base(static_cast<rep>(_impl::to_rep(rhs))) 13d0: 4d 85 f6 test %r14,%r14 13d3: 74 06 je 13db <_ZN8BalancerILh2EE6updateEv+0x13db> 13d5: 41 f6 c6 03 test $0x3,%r14b 13d9: 74 0f je 13ea <_ZN8BalancerILh2EE6updateEv+0x13ea> 13db: 4c 89 f6 mov %r14,%rsi 13de: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 13e5 <_ZN8BalancerILh2EE6updateEv+0x13e5> 13e5: e8 00 00 00 00 callq 13ea <_ZN8BalancerILh2EE6updateEv+0x13ea> 13ea: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 13f2 <_ZN8BalancerILh2EE6updateEv+0x13f2> 13f1: 00 13f2: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 13fa <_ZN8BalancerILh2EE6updateEv+0x13fa> 13f9: 00 13fa: 4c 89 f2 mov %r14,%rdx 13fd: 48 c1 ea 03 shr $0x3,%rdx 1401: 8a 8a 00 80 ff 7f mov 0x7fff8000(%rdx),%cl 1407: 4c 89 f2 mov %r14,%rdx 140a: 83 e2 07 and $0x7,%edx 140d: 83 c2 03 add $0x3,%edx 1410: 38 ca cmp %cl,%dl 1412: 7c 0c jl 1420 <_ZN8BalancerILh2EE6updateEv+0x1420> 1414: 84 c9 test %cl,%cl 1416: 74 08 je 1420 <_ZN8BalancerILh2EE6updateEv+0x1420> 1418: 4c 89 f7 mov %r14,%rdi 141b: e8 00 00 00 00 callq 1420 <_ZN8BalancerILh2EE6updateEv+0x1420> 1420: 4c 8d a3 00 fa ff ff lea -0x600(%rbx),%r12 1427: 41 8b 75 04 mov 0x4(%r13),%esi 142b: 4c 89 e7 mov %r12,%rdi 142e: e8 00 00 00 00 callq 1433 <_ZN8BalancerILh2EE6updateEv+0x1433> 1433: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 143b <_ZN8BalancerILh2EE6updateEv+0x143b> 143a: 00 143b: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1443 <_ZN8BalancerILh2EE6updateEv+0x1443> 1442: 00 1443: 48 8d 83 40 f0 ff ff lea -0xfc0(%rbx),%rax 144a: 48 c1 e8 03 shr $0x3,%rax 144e: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 1455: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 145d <_ZN8BalancerILh2EE6updateEv+0x145d> 145c: 00 145d: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1465 <_ZN8BalancerILh2EE6updateEv+0x1465> 1464: 00 1465: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 146d <_ZN8BalancerILh2EE6updateEv+0x146d> 146c: 00 146d: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1475 <_ZN8BalancerILh2EE6updateEv+0x1475> 1474: 00 1475: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 147d <_ZN8BalancerILh2EE6updateEv+0x147d> 147c: 00 147d: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1485 <_ZN8BalancerILh2EE6updateEv+0x1485> 1484: 00 1485: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 148c: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1494 <_ZN8BalancerILh2EE6updateEv+0x1494> 1493: 00 1494: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 149c <_ZN8BalancerILh2EE6updateEv+0x149c> 149b: 00 _impl::to_rep(static_cast<result_type>(lhs)), 149c: 4c 8d ab 40 fa ff ff lea -0x5c0(%rbx),%r13 14a3: 4c 89 e8 mov %r13,%rax 14a6: 48 c1 e8 03 shr $0x3,%rax 14aa: c6 80 00 80 ff 7f 04 movb $0x4,0x7fff8000(%rax) 14b1: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 14b9 <_ZN8BalancerILh2EE6updateEv+0x14b9> 14b8: 00 explicit constexpr elastic_integer(elastic_integer<FromWidth, FromNarrowest> const& rhs) 14b9: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 14c1 <_ZN8BalancerILh2EE6updateEv+0x14c1> 14c0: 00 14c1: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 14c9 <_ZN8BalancerILh2EE6updateEv+0x14c9> 14c8: 00 14c9: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 14d1 <_ZN8BalancerILh2EE6updateEv+0x14d1> 14d0: 00 14d1: 48 8d 83 00 f0 ff ff lea -0x1000(%rbx),%rax 14d8: 48 c1 e8 03 shr $0x3,%rax 14dc: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 14e3: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 14eb <_ZN8BalancerILh2EE6updateEv+0x14eb> 14ea: 00 14eb: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 14f3 <_ZN8BalancerILh2EE6updateEv+0x14f3> 14f2: 00 14f3: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 14fb <_ZN8BalancerILh2EE6updateEv+0x14fb> 14fa: 00 14fb: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1503 <_ZN8BalancerILh2EE6updateEv+0x1503> 1502: 00 1503: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 150b <_ZN8BalancerILh2EE6updateEv+0x150b> 150a: 00 150b: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1513 <_ZN8BalancerILh2EE6updateEv+0x1513> 1512: 00 1513: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 151a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1522 <_ZN8BalancerILh2EE6updateEv+0x1522> 1521: 00 1522: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 152a <_ZN8BalancerILh2EE6updateEv+0x152a> 1529: 00 152a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1532 <_ZN8BalancerILh2EE6updateEv+0x1532> 1531: 00 :_base(static_cast<rep>(_impl::to_rep(rhs))) 1532: 48 8b 85 c8 e5 ff ff mov -0x1a38(%rbp),%rax 1539: 48 c1 e8 03 shr $0x3,%rax 153d: 8a 80 00 80 ff 7f mov 0x7fff8000(%rax),%al 1543: 84 c0 test %al,%al 1545: 74 10 je 1557 <_ZN8BalancerILh2EE6updateEv+0x1557> 1547: 3c 03 cmp $0x3,%al 1549: 7f 0c jg 1557 <_ZN8BalancerILh2EE6updateEv+0x1557> 154b: 48 8b bd c8 e5 ff ff mov -0x1a38(%rbp),%rdi 1552: e8 00 00 00 00 callq 1557 <_ZN8BalancerILh2EE6updateEv+0x1557> 1557: 8b b3 80 f7 ff ff mov -0x880(%rbx),%esi 155d: 4c 89 ef mov %r13,%rdi 1560: e8 00 00 00 00 callq 1565 <_ZN8BalancerILh2EE6updateEv+0x1565> 1565: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 156d <_ZN8BalancerILh2EE6updateEv+0x156d> 156c: 00 156d: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1575 <_ZN8BalancerILh2EE6updateEv+0x1575> 1574: 00 1575: 48 8d 83 c0 ef ff ff lea -0x1040(%rbx),%rax 157c: 48 c1 e8 03 shr $0x3,%rax 1580: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 1587: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 158f <_ZN8BalancerILh2EE6updateEv+0x158f> 158e: 00 158f: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1597 <_ZN8BalancerILh2EE6updateEv+0x1597> 1596: 00 1597: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 159f <_ZN8BalancerILh2EE6updateEv+0x159f> 159e: 00 159f: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 15a7 <_ZN8BalancerILh2EE6updateEv+0x15a7> 15a6: 00 15a7: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 15af <_ZN8BalancerILh2EE6updateEv+0x15af> 15ae: 00 15af: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 15b7 <_ZN8BalancerILh2EE6updateEv+0x15b7> 15b6: 00 15b7: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 15be: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 15c6 <_ZN8BalancerILh2EE6updateEv+0x15c6> 15c5: 00 15c6: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 15ce <_ZN8BalancerILh2EE6updateEv+0x15ce> 15cd: 00 15ce: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 15d6 <_ZN8BalancerILh2EE6updateEv+0x15d6> 15d5: 00 15d6: 48 8d 83 c0 f0 ff ff lea -0xf40(%rbx),%rax 15dd: 48 c1 e8 03 shr $0x3,%rax 15e1: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 15e8: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 15f0 <_ZN8BalancerILh2EE6updateEv+0x15f0> 15ef: 00 CNL_NODISCARD constexpr auto operator()( 15f0: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 15f8 <_ZN8BalancerILh2EE6updateEv+0x15f8> 15f7: 00 cnl::binary_operator<RoundingTag, Operator, LhsRep, RhsRep>()( 15f8: 48 8d 83 80 fa ff ff lea -0x580(%rbx),%rax 15ff: 48 c1 e8 03 shr $0x3,%rax 1603: c6 80 00 80 ff 7f 04 movb $0x4,0x7fff8000(%rax) 160a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1612 <_ZN8BalancerILh2EE6updateEv+0x1612> 1611: 00 1612: 48 8d 83 00 f1 ff ff lea -0xf00(%rbx),%rax 1619: 48 c1 e8 03 shr $0x3,%rax 161d: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 1624: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 162c <_ZN8BalancerILh2EE6updateEv+0x162c> 162b: 00 162c: 48 8d 83 c0 f1 ff ff lea -0xe40(%rbx),%rax 1633: 48 c1 e8 03 shr $0x3,%rax 1637: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 163e: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1646 <_ZN8BalancerILh2EE6updateEv+0x1646> 1645: 00 1646: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 164e <_ZN8BalancerILh2EE6updateEv+0x164e> 164d: 00 164e: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1656 <_ZN8BalancerILh2EE6updateEv+0x1656> 1655: 00 1656: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 165e <_ZN8BalancerILh2EE6updateEv+0x165e> 165d: 00 165e: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1666 <_ZN8BalancerILh2EE6updateEv+0x1666> 1665: 00 1666: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 166e <_ZN8BalancerILh2EE6updateEv+0x166e> 166d: 00 166e: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 1675: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 167d <_ZN8BalancerILh2EE6updateEv+0x167d> 167c: 00 167d: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1685 <_ZN8BalancerILh2EE6updateEv+0x1685> 1684: 00 1685: 48 8d 83 80 f1 ff ff lea -0xe80(%rbx),%rax 168c: 48 c1 e8 03 shr $0x3,%rax 1690: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 1697: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 169f <_ZN8BalancerILh2EE6updateEv+0x169f> 169e: 00 169f: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 16a7 <_ZN8BalancerILh2EE6updateEv+0x16a7> 16a6: 00 16a7: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 16af <_ZN8BalancerILh2EE6updateEv+0x16af> 16ae: 00 16af: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 16b7 <_ZN8BalancerILh2EE6updateEv+0x16b7> 16b6: 00 16b7: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 16bf <_ZN8BalancerILh2EE6updateEv+0x16bf> 16be: 00 16bf: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 16c7 <_ZN8BalancerILh2EE6updateEv+0x16c7> 16c6: 00 16c7: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 16ce: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 16d6 <_ZN8BalancerILh2EE6updateEv+0x16d6> 16d5: 00 16d6: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 16de <_ZN8BalancerILh2EE6updateEv+0x16de> 16dd: 00 CNL_NODISCARD constexpr auto operator()(_lhs const& lhs, _rhs const& rhs) const -> _result 16de: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 16e6 <_ZN8BalancerILh2EE6updateEv+0x16e6> 16e5: 00 return Operator{}(_impl::to_rep(lhs), _impl::to_rep(rhs)); 16e6: 48 8d 83 c0 fa ff ff lea -0x540(%rbx),%rax 16ed: 48 c1 e8 03 shr $0x3,%rax 16f1: c6 80 00 80 ff 7f 04 movb $0x4,0x7fff8000(%rax) 16f8: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1700 <_ZN8BalancerILh2EE6updateEv+0x1700> 16ff: 00 1700: 48 8d 83 00 fb ff ff lea -0x500(%rbx),%rax 1707: 48 c1 e8 03 shr $0x3,%rax 170b: c6 80 00 80 ff 7f 04 movb $0x4,0x7fff8000(%rax) 1712: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 171a <_ZN8BalancerILh2EE6updateEv+0x171a> 1719: 00 171a: 48 8d 83 00 f2 ff ff lea -0xe00(%rbx),%rax 1721: 48 c1 e8 03 shr $0x3,%rax 1725: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 172c: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1734 <_ZN8BalancerILh2EE6updateEv+0x1734> 1733: 00 1734: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 173c <_ZN8BalancerILh2EE6updateEv+0x173c> 173b: 00 173c: 48 8d 83 80 f2 ff ff lea -0xd80(%rbx),%rax 1743: 48 c1 e8 03 shr $0x3,%rax 1747: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 174e: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1756 <_ZN8BalancerILh2EE6updateEv+0x1756> 1755: 00 1756: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 175e <_ZN8BalancerILh2EE6updateEv+0x175e> 175d: 00 175e: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1766 <_ZN8BalancerILh2EE6updateEv+0x1766> 1765: 00 1766: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 176e <_ZN8BalancerILh2EE6updateEv+0x176e> 176d: 00 176e: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1776 <_ZN8BalancerILh2EE6updateEv+0x1776> 1775: 00 1776: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 177e <_ZN8BalancerILh2EE6updateEv+0x177e> 177d: 00 177e: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 1785: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 178d <_ZN8BalancerILh2EE6updateEv+0x178d> 178c: 00 178d: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1795 <_ZN8BalancerILh2EE6updateEv+0x1795> 1794: 00 1795: 48 8d 83 40 f2 ff ff lea -0xdc0(%rbx),%rax 179c: 48 c1 e8 03 shr $0x3,%rax 17a0: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 17a7: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 17af <_ZN8BalancerILh2EE6updateEv+0x17af> 17ae: 00 17af: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 17b7 <_ZN8BalancerILh2EE6updateEv+0x17b7> 17b6: 00 17b7: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 17bf <_ZN8BalancerILh2EE6updateEv+0x17bf> 17be: 00 17bf: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 17c7 <_ZN8BalancerILh2EE6updateEv+0x17c7> 17c6: 00 17c7: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 17cf <_ZN8BalancerILh2EE6updateEv+0x17cf> 17ce: 00 17cf: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 17d7 <_ZN8BalancerILh2EE6updateEv+0x17d7> 17d6: 00 17d7: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 17de: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 17e6 <_ZN8BalancerILh2EE6updateEv+0x17e6> 17e5: 00 17e6: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 17ee <_ZN8BalancerILh2EE6updateEv+0x17ee> 17ed: 00 17ee: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 17f6 <_ZN8BalancerILh2EE6updateEv+0x17f6> 17f5: 00 return lhs+rhs; 17f6: 4c 89 e8 mov %r13,%rax 17f9: 48 c1 e8 03 shr $0x3,%rax 17fd: 8a 80 00 80 ff 7f mov 0x7fff8000(%rax),%al 1803: 84 c0 test %al,%al 1805: 74 0c je 1813 <_ZN8BalancerILh2EE6updateEv+0x1813> 1807: 3c 03 cmp $0x3,%al 1809: 7f 08 jg 1813 <_ZN8BalancerILh2EE6updateEv+0x1813> 180b: 4c 89 ef mov %r13,%rdi 180e: e8 00 00 00 00 callq 1813 <_ZN8BalancerILh2EE6updateEv+0x1813> 1813: 48 63 b3 40 fa ff ff movslq -0x5c0(%rbx),%rsi 181a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1822 <_ZN8BalancerILh2EE6updateEv+0x1822> 1821: 00 1822: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 182a <_ZN8BalancerILh2EE6updateEv+0x182a> 1829: 00 182a: 4c 89 e0 mov %r12,%rax 182d: 48 c1 e8 03 shr $0x3,%rax 1831: 8a 80 00 80 ff 7f mov 0x7fff8000(%rax),%al 1837: 84 c0 test %al,%al 1839: 74 0c je 1847 <_ZN8BalancerILh2EE6updateEv+0x1847> 183b: 3c 03 cmp $0x3,%al 183d: 7f 08 jg 1847 <_ZN8BalancerILh2EE6updateEv+0x1847> 183f: 4c 89 e7 mov %r12,%rdi 1842: e8 00 00 00 00 callq 1847 <_ZN8BalancerILh2EE6updateEv+0x1847> 1847: 48 63 93 00 fa ff ff movslq -0x600(%rbx),%rdx 184e: 41 89 f4 mov %esi,%r12d 1851: 41 01 d4 add %edx,%r12d 1854: 71 0c jno 1862 <_ZN8BalancerILh2EE6updateEv+0x1862> 1856: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 185d <_ZN8BalancerILh2EE6updateEv+0x185d> 185d: e8 00 00 00 00 callq 1862 <_ZN8BalancerILh2EE6updateEv+0x1862> 1862: 48 8d bb 00 fb ff ff lea -0x500(%rbx),%rdi 1869: 48 89 f8 mov %rdi,%rax 186c: 48 c1 e8 03 shr $0x3,%rax 1870: 8a 80 00 80 ff 7f mov 0x7fff8000(%rax),%al 1876: 84 c0 test %al,%al 1878: 74 09 je 1883 <_ZN8BalancerILh2EE6updateEv+0x1883> 187a: 3c 03 cmp $0x3,%al 187c: 7f 05 jg 1883 <_ZN8BalancerILh2EE6updateEv+0x1883> 187e: e8 00 00 00 00 callq 1883 <_ZN8BalancerILh2EE6updateEv+0x1883> 1883: 44 89 a3 00 fb ff ff mov %r12d,-0x500(%rbx) 188a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1892 <_ZN8BalancerILh2EE6updateEv+0x1892> 1891: 00 constexpr wide_integer(T const& value) // NOLINT(hicpp-explicit-conversions, google-explicit-constructor) 1892: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 189a <_ZN8BalancerILh2EE6updateEv+0x189a> 1899: 00 189a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 18a2 <_ZN8BalancerILh2EE6updateEv+0x18a2> 18a1: 00 18a2: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 18aa <_ZN8BalancerILh2EE6updateEv+0x18aa> 18a9: 00 18aa: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 18b2 <_ZN8BalancerILh2EE6updateEv+0x18b2> 18b1: 00 explicit constexpr number_base(rep r) 18b2: 48 8d bb 40 fd ff ff lea -0x2c0(%rbx),%rdi 18b9: 48 89 f8 mov %rdi,%rax 18bc: 48 c1 e8 03 shr $0x3,%rax 18c0: 8a 90 00 80 ff 7f mov 0x7fff8000(%rax),%dl 18c6: 48 89 f8 mov %rdi,%rax 18c9: 83 e0 07 and $0x7,%eax 18cc: 83 c0 03 add $0x3,%eax 18cf: 38 d0 cmp %dl,%al 18d1: 7c 09 jl 18dc <_ZN8BalancerILh2EE6updateEv+0x18dc> 18d3: 84 d2 test %dl,%dl 18d5: 74 05 je 18dc <_ZN8BalancerILh2EE6updateEv+0x18dc> 18d7: e8 00 00 00 00 callq 18dc <_ZN8BalancerILh2EE6updateEv+0x18dc> 18dc: 44 89 a3 40 fd ff ff mov %r12d,-0x2c0(%rbx) 18e3: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 18eb <_ZN8BalancerILh2EE6updateEv+0x18eb> 18ea: 00 move(_Tp&& __t) noexcept 18eb: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 18f3 <_ZN8BalancerILh2EE6updateEv+0x18f3> 18f2: 00 18f3: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 18fb <_ZN8BalancerILh2EE6updateEv+0x18fb> 18fa: 00 18fb: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1903 <_ZN8BalancerILh2EE6updateEv+0x1903> 1902: 00 : _rep(std::move(r)) { } 1903: 48 8d bb c0 fa ff ff lea -0x540(%rbx),%rdi 190a: 48 89 f8 mov %rdi,%rax 190d: 48 c1 e8 03 shr $0x3,%rax 1911: 8a 80 00 80 ff 7f mov 0x7fff8000(%rax),%al 1917: 84 c0 test %al,%al 1919: 74 09 je 1924 <_ZN8BalancerILh2EE6updateEv+0x1924> 191b: 3c 03 cmp $0x3,%al 191d: 7f 05 jg 1924 <_ZN8BalancerILh2EE6updateEv+0x1924> 191f: e8 00 00 00 00 callq 1924 <_ZN8BalancerILh2EE6updateEv+0x1924> 1924: 48 c1 ef 03 shr $0x3,%rdi 1928: 44 89 a3 c0 fa ff ff mov %r12d,-0x540(%rbx) 192f: c6 87 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rdi) 1936: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 193e <_ZN8BalancerILh2EE6updateEv+0x193e> 193d: 00 193e: 48 8d 83 00 fb ff ff lea -0x500(%rbx),%rax 1945: 48 c1 e8 03 shr $0x3,%rax 1949: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 1950: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1958 <_ZN8BalancerILh2EE6updateEv+0x1958> 1957: 00 1958: 48 8d 83 00 f2 ff ff lea -0xe00(%rbx),%rax 195f: 48 c1 e8 03 shr $0x3,%rax 1963: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 196a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1972 <_ZN8BalancerILh2EE6updateEv+0x1972> 1971: 00 1972: 48 8d bb 80 fa ff ff lea -0x580(%rbx),%rdi 1979: 48 89 f8 mov %rdi,%rax 197c: 48 c1 e8 03 shr $0x3,%rax 1980: 8a 80 00 80 ff 7f mov 0x7fff8000(%rax),%al 1986: 84 c0 test %al,%al 1988: 74 09 je 1993 <_ZN8BalancerILh2EE6updateEv+0x1993> 198a: 3c 03 cmp $0x3,%al 198c: 7f 05 jg 1993 <_ZN8BalancerILh2EE6updateEv+0x1993> 198e: e8 00 00 00 00 callq 1993 <_ZN8BalancerILh2EE6updateEv+0x1993> 1993: 44 89 a3 80 fa ff ff mov %r12d,-0x580(%rbx) 199a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 19a2 <_ZN8BalancerILh2EE6updateEv+0x19a2> 19a1: 00 19a2: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 19aa <_ZN8BalancerILh2EE6updateEv+0x19aa> 19a9: 00 19aa: 4c 8d ab 40 f1 ff ff lea -0xec0(%rbx),%r13 19b1: 49 c1 ed 03 shr $0x3,%r13 19b5: 41 c6 85 00 80 ff 7f movb $0x1,0x7fff8000(%r13) 19bc: 01 19bd: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 19c5 <_ZN8BalancerILh2EE6updateEv+0x19c5> 19c4: 00 19c5: 4c 8d a3 80 fa ff ff lea -0x580(%rbx),%r12 19cc: 4c 89 e7 mov %r12,%rdi 19cf: e8 00 00 00 00 callq 19d4 <_ZN8BalancerILh2EE6updateEv+0x19d4> 19d4: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 19dc <_ZN8BalancerILh2EE6updateEv+0x19dc> 19db: 00 19dc: 41 c6 85 00 80 ff 7f movb $0xf8,0x7fff8000(%r13) 19e3: f8 19e4: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 19ec <_ZN8BalancerILh2EE6updateEv+0x19ec> 19eb: 00 19ec: 49 c1 ec 03 shr $0x3,%r12 19f0: 41 c6 84 24 00 80 ff movb $0xf8,0x7fff8000(%r12) 19f7: 7f f8 19f9: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1a01 <_ZN8BalancerILh2EE6updateEv+0x1a01> 1a00: 00 1a01: 48 8d 93 00 f1 ff ff lea -0xf00(%rbx),%rdx 1a08: 48 c1 ea 03 shr $0x3,%rdx 1a0c: c6 82 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rdx) 1a13: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1a1b <_ZN8BalancerILh2EE6updateEv+0x1a1b> 1a1a: 00 1a1b: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1a23 <_ZN8BalancerILh2EE6updateEv+0x1a23> 1a22: 00 1a23: 48 8d 93 c0 f0 ff ff lea -0xf40(%rbx),%rdx 1a2a: 48 c1 ea 03 shr $0x3,%rdx 1a2e: c6 82 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rdx) 1a35: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1a3d <_ZN8BalancerILh2EE6updateEv+0x1a3d> 1a3c: 00 static_cast<typename result_type::rep>(Operator()( 1a3d: 48 8d bb c0 f9 ff ff lea -0x640(%rbx),%rdi 1a44: 48 89 fa mov %rdi,%rdx 1a47: 48 c1 ea 03 shr $0x3,%rdx 1a4b: 8a 92 00 80 ff 7f mov 0x7fff8000(%rdx),%dl 1a51: 84 d2 test %dl,%dl 1a53: 74 0a je 1a5f <_ZN8BalancerILh2EE6updateEv+0x1a5f> 1a55: 80 fa 03 cmp $0x3,%dl 1a58: 7f 05 jg 1a5f <_ZN8BalancerILh2EE6updateEv+0x1a5f> 1a5a: e8 00 00 00 00 callq 1a5f <_ZN8BalancerILh2EE6updateEv+0x1a5f> 1a5f: 89 83 c0 f9 ff ff mov %eax,-0x640(%rbx) 1a65: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1a6d <_ZN8BalancerILh2EE6updateEv+0x1a6d> 1a6c: 00 1a6d: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1a75 <_ZN8BalancerILh2EE6updateEv+0x1a75> 1a74: 00 1a75: 4c 8d ab 80 ef ff ff lea -0x1080(%rbx),%r13 1a7c: 49 c1 ed 03 shr $0x3,%r13 1a80: 41 c6 85 00 80 ff 7f movb $0x1,0x7fff8000(%r13) 1a87: 01 1a88: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1a90 <_ZN8BalancerILh2EE6updateEv+0x1a90> 1a8f: 00 1a90: 4c 8d a3 c0 f9 ff ff lea -0x640(%rbx),%r12 1a97: 4c 89 e7 mov %r12,%rdi 1a9a: e8 00 00 00 00 callq 1a9f <_ZN8BalancerILh2EE6updateEv+0x1a9f> 1a9f: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1aa7 <_ZN8BalancerILh2EE6updateEv+0x1aa7> 1aa6: 00 1aa7: 41 c6 85 00 80 ff 7f movb $0xf8,0x7fff8000(%r13) 1aae: f8 1aaf: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1ab7 <_ZN8BalancerILh2EE6updateEv+0x1ab7> 1ab6: 00 1ab7: 49 c1 ec 03 shr $0x3,%r12 1abb: 41 c6 84 24 00 80 ff movb $0xf8,0x7fff8000(%r12) 1ac2: 7f f8 1ac4: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1acc <_ZN8BalancerILh2EE6updateEv+0x1acc> 1acb: 00 _impl::to_rep(static_cast<result_type>(lhs)), 1acc: 48 8d 93 40 fa ff ff lea -0x5c0(%rbx),%rdx 1ad3: 48 c1 ea 03 shr $0x3,%rdx 1ad7: c6 82 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rdx) 1ade: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1ae6 <_ZN8BalancerILh2EE6updateEv+0x1ae6> 1ae5: 00 _impl::to_rep(static_cast<result_type>(rhs))))); 1ae6: 48 8d 93 00 fa ff ff lea -0x600(%rbx),%rdx 1aed: 48 c1 ea 03 shr $0x3,%rdx 1af1: c6 82 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rdx) 1af8: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1b00 <_ZN8BalancerILh2EE6updateEv+0x1b00> 1aff: 00 static_cast<typename result_type::rep>(Operator()( 1b00: 48 8d 93 40 ef ff ff lea -0x10c0(%rbx),%rdx 1b07: 48 c1 ea 03 shr $0x3,%rdx 1b0b: c6 82 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rdx) 1b12: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1b1a <_ZN8BalancerILh2EE6updateEv+0x1b1a> 1b19: 00 1b1a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1b22 <_ZN8BalancerILh2EE6updateEv+0x1b22> 1b21: 00 1b22: 48 8d 93 00 ef ff ff lea -0x1100(%rbx),%rdx 1b29: 48 c1 ea 03 shr $0x3,%rdx 1b2d: c6 82 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rdx) 1b34: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1b3c <_ZN8BalancerILh2EE6updateEv+0x1b3c> 1b3b: 00 1b3c: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1b44 <_ZN8BalancerILh2EE6updateEv+0x1b44> 1b43: 00 1b44: 48 8d 93 40 ee ff ff lea -0x11c0(%rbx),%rdx 1b4b: 48 c1 ea 03 shr $0x3,%rdx 1b4f: c6 82 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rdx) 1b56: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1b5e <_ZN8BalancerILh2EE6updateEv+0x1b5e> 1b5d: 00 1b5e: 48 8d bb 80 f9 ff ff lea -0x680(%rbx),%rdi 1b65: 48 89 fa mov %rdi,%rdx 1b68: 48 c1 ea 03 shr $0x3,%rdx 1b6c: 8a 92 00 80 ff 7f mov 0x7fff8000(%rdx),%dl 1b72: 84 d2 test %dl,%dl 1b74: 74 0a je 1b80 <_ZN8BalancerILh2EE6updateEv+0x1b80> 1b76: 80 fa 03 cmp $0x3,%dl 1b79: 7f 05 jg 1b80 <_ZN8BalancerILh2EE6updateEv+0x1b80> 1b7b: e8 00 00 00 00 callq 1b80 <_ZN8BalancerILh2EE6updateEv+0x1b80> 1b80: 89 83 80 f9 ff ff mov %eax,-0x680(%rbx) 1b86: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1b8e <_ZN8BalancerILh2EE6updateEv+0x1b8e> 1b8d: 00 1b8e: 4c 8d ab 00 ee ff ff lea -0x1200(%rbx),%r13 1b95: 49 c1 ed 03 shr $0x3,%r13 1b99: 41 c6 85 00 80 ff 7f movb $0x1,0x7fff8000(%r13) 1ba0: 01 1ba1: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1ba9 <_ZN8BalancerILh2EE6updateEv+0x1ba9> 1ba8: 00 1ba9: 4c 8d a3 80 f9 ff ff lea -0x680(%rbx),%r12 1bb0: 4c 89 e7 mov %r12,%rdi 1bb3: e8 00 00 00 00 callq 1bb8 <_ZN8BalancerILh2EE6updateEv+0x1bb8> 1bb8: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1bc0 <_ZN8BalancerILh2EE6updateEv+0x1bc0> 1bbf: 00 1bc0: 41 c6 85 00 80 ff 7f movb $0xf8,0x7fff8000(%r13) 1bc7: f8 1bc8: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1bd0 <_ZN8BalancerILh2EE6updateEv+0x1bd0> 1bcf: 00 1bd0: 49 c1 ec 03 shr $0x3,%r12 1bd4: 41 c6 84 24 00 80 ff movb $0xf8,0x7fff8000(%r12) 1bdb: 7f f8 1bdd: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1be5 <_ZN8BalancerILh2EE6updateEv+0x1be5> 1be4: 00 1be5: 48 8d 93 c0 ed ff ff lea -0x1240(%rbx),%rdx 1bec: 48 c1 ea 03 shr $0x3,%rdx 1bf0: c6 82 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rdx) 1bf7: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1bff <_ZN8BalancerILh2EE6updateEv+0x1bff> 1bfe: 00 1bff: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1c07 <_ZN8BalancerILh2EE6updateEv+0x1c07> 1c06: 00 1c07: 48 8d 93 80 ed ff ff lea -0x1280(%rbx),%rdx 1c0e: 48 c1 ea 03 shr $0x3,%rdx 1c12: c6 82 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rdx) 1c19: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1c21 <_ZN8BalancerILh2EE6updateEv+0x1c21> 1c20: 00 1c21: 48 8d bb 40 f9 ff ff lea -0x6c0(%rbx),%rdi 1c28: 48 89 fa mov %rdi,%rdx 1c2b: 48 c1 ea 03 shr $0x3,%rdx 1c2f: 8a 92 00 80 ff 7f mov 0x7fff8000(%rdx),%dl 1c35: 84 d2 test %dl,%dl 1c37: 74 0a je 1c43 <_ZN8BalancerILh2EE6updateEv+0x1c43> 1c39: 80 fa 03 cmp $0x3,%dl 1c3c: 7f 05 jg 1c43 <_ZN8BalancerILh2EE6updateEv+0x1c43> 1c3e: e8 00 00 00 00 callq 1c43 <_ZN8BalancerILh2EE6updateEv+0x1c43> 1c43: 89 83 40 f9 ff ff mov %eax,-0x6c0(%rbx) 1c49: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1c51 <_ZN8BalancerILh2EE6updateEv+0x1c51> 1c50: 00 1c51: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1c59 <_ZN8BalancerILh2EE6updateEv+0x1c59> 1c58: 00 1c59: 4c 8d ab c0 ec ff ff lea -0x1340(%rbx),%r13 1c60: 49 c1 ed 03 shr $0x3,%r13 1c64: 41 c6 85 00 80 ff 7f movb $0x1,0x7fff8000(%r13) 1c6b: 01 1c6c: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1c74 <_ZN8BalancerILh2EE6updateEv+0x1c74> 1c73: 00 1c74: 4c 8d a3 40 f9 ff ff lea -0x6c0(%rbx),%r12 1c7b: 4c 89 e7 mov %r12,%rdi 1c7e: e8 00 00 00 00 callq 1c83 <_ZN8BalancerILh2EE6updateEv+0x1c83> 1c83: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1c8b <_ZN8BalancerILh2EE6updateEv+0x1c8b> 1c8a: 00 1c8b: 41 c6 85 00 80 ff 7f movb $0xf8,0x7fff8000(%r13) 1c92: f8 1c93: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1c9b <_ZN8BalancerILh2EE6updateEv+0x1c9b> 1c9a: 00 1c9b: 49 c1 ec 03 shr $0x3,%r12 1c9f: 41 c6 84 24 00 80 ff movb $0xf8,0x7fff8000(%r12) 1ca6: 7f f8 1ca8: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1cb0 <_ZN8BalancerILh2EE6updateEv+0x1cb0> 1caf: 00 1cb0: 48 8d 93 80 ec ff ff lea -0x1380(%rbx),%rdx 1cb7: 48 c1 ea 03 shr $0x3,%rdx 1cbb: c6 82 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rdx) 1cc2: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1cca <_ZN8BalancerILh2EE6updateEv+0x1cca> 1cc9: 00 1cca: 4c 8d a3 00 f9 ff ff lea -0x700(%rbx),%r12 1cd1: 4c 89 e2 mov %r12,%rdx 1cd4: 48 c1 ea 03 shr $0x3,%rdx 1cd8: 8a 92 00 80 ff 7f mov 0x7fff8000(%rdx),%dl 1cde: 84 d2 test %dl,%dl 1ce0: 74 0d je 1cef <_ZN8BalancerILh2EE6updateEv+0x1cef> 1ce2: 80 fa 03 cmp $0x3,%dl 1ce5: 7f 08 jg 1cef <_ZN8BalancerILh2EE6updateEv+0x1cef> 1ce7: 4c 89 e7 mov %r12,%rdi 1cea: e8 00 00 00 00 callq 1cef <_ZN8BalancerILh2EE6updateEv+0x1cef> 1cef: 89 83 00 f9 ff ff mov %eax,-0x700(%rbx) 1cf5: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1cfd <_ZN8BalancerILh2EE6updateEv+0x1cfd> 1cfc: 00 1cfd: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1d05 <_ZN8BalancerILh2EE6updateEv+0x1d05> 1d04: 00 1d05: 4c 89 e6 mov %r12,%rsi 1d08: 48 8d bb c0 f8 ff ff lea -0x740(%rbx),%rdi 1d0f: e8 00 00 00 00 callq 1d14 <_ZN8BalancerILh2EE6updateEv+0x1d14> 1d14: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1d1c <_ZN8BalancerILh2EE6updateEv+0x1d1c> 1d1b: 00 1d1c: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1d24 <_ZN8BalancerILh2EE6updateEv+0x1d24> 1d23: 00 1d24: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1d2c <_ZN8BalancerILh2EE6updateEv+0x1d2c> 1d2b: 00 1d2c: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1d34 <_ZN8BalancerILh2EE6updateEv+0x1d34> 1d33: 00 1d34: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1d3c <_ZN8BalancerILh2EE6updateEv+0x1d3c> 1d3b: 00 1d3c: 48 8d bb 80 f7 ff ff lea -0x880(%rbx),%rdi 1d43: 48 89 f8 mov %rdi,%rax 1d46: 48 c1 e8 03 shr $0x3,%rax 1d4a: 8a 80 00 80 ff 7f mov 0x7fff8000(%rax),%al 1d50: 84 c0 test %al,%al 1d52: 74 09 je 1d5d <_ZN8BalancerILh2EE6updateEv+0x1d5d> 1d54: 3c 03 cmp $0x3,%al 1d56: 7f 05 jg 1d5d <_ZN8BalancerILh2EE6updateEv+0x1d5d> 1d58: e8 00 00 00 00 callq 1d5d <_ZN8BalancerILh2EE6updateEv+0x1d5d> 1d5d: 48 8d 83 c0 f8 ff ff lea -0x740(%rbx),%rax 1d64: 48 c1 e8 03 shr $0x3,%rax 1d68: 8a 80 00 80 ff 7f mov 0x7fff8000(%rax),%al 1d6e: 84 c0 test %al,%al 1d70: 74 10 je 1d82 <_ZN8BalancerILh2EE6updateEv+0x1d82> 1d72: 3c 03 cmp $0x3,%al 1d74: 7f 0c jg 1d82 <_ZN8BalancerILh2EE6updateEv+0x1d82> 1d76: 48 8b bd a8 e5 ff ff mov -0x1a58(%rbp),%rdi 1d7d: e8 00 00 00 00 callq 1d82 <_ZN8BalancerILh2EE6updateEv+0x1d82> 1d82: 8b 83 c0 f8 ff ff mov -0x740(%rbx),%eax 1d88: 4c 8d b3 c0 f8 ff ff lea -0x740(%rbx),%r14 1d8f: 49 c1 ee 03 shr $0x3,%r14 1d93: 89 83 80 f7 ff ff mov %eax,-0x880(%rbx) 1d99: 41 c6 86 00 80 ff 7f movb $0xf8,0x7fff8000(%r14) 1da0: f8 1da1: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1da9 <_ZN8BalancerILh2EE6updateEv+0x1da9> 1da8: 00 1da9: 49 c1 ec 03 shr $0x3,%r12 1dad: 41 c6 84 24 00 80 ff movb $0xf8,0x7fff8000(%r12) 1db4: 7f f8 1db6: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1dbe <_ZN8BalancerILh2EE6updateEv+0x1dbe> 1dbd: 00 1dbe: 48 8d 83 40 ec ff ff lea -0x13c0(%rbx),%rax 1dc5: 48 c1 e8 03 shr $0x3,%rax 1dc9: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 1dd0: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1dd8 <_ZN8BalancerILh2EE6updateEv+0x1dd8> 1dd7: 00 1dd8: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1de0 <_ZN8BalancerILh2EE6updateEv+0x1de0> 1ddf: 00 1de0: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1de8 <_ZN8BalancerILh2EE6updateEv+0x1de8> 1de7: 00 CNL_DEFINE_COMPOUND_ASSIGNMENT_OPERATOR(+=, assign_add_op) 1de8: 48 8d 83 00 ec ff ff lea -0x1400(%rbx),%rax 1def: 48 c1 e8 03 shr $0x3,%rax 1df3: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 1dfa: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1e02 <_ZN8BalancerILh2EE6updateEv+0x1e02> 1e01: 00 1e02: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1e0a <_ZN8BalancerILh2EE6updateEv+0x1e0a> 1e09: 00 operator++() _GLIBCXX_NOEXCEPT 1e0a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1e12 <_ZN8BalancerILh2EE6updateEv+0x1e12> 1e11: 00 ++_M_current; 1e12: 4c 8d a3 c0 fd ff ff lea -0x240(%rbx),%r12 1e19: 4c 89 e0 mov %r12,%rax 1e1c: 48 c1 e8 03 shr $0x3,%rax 1e20: 80 b8 00 80 ff 7f 00 cmpb $0x0,0x7fff8000(%rax) 1e27: 74 08 je 1e31 <_ZN8BalancerILh2EE6updateEv+0x1e31> 1e29: 4c 89 e7 mov %r12,%rdi 1e2c: e8 00 00 00 00 callq 1e31 <_ZN8BalancerILh2EE6updateEv+0x1e31> 1e31: 48 8b b3 c0 fd ff ff mov -0x240(%rbx),%rsi 1e38: 4c 8d 6e 0c lea 0xc(%rsi),%r13 1e3c: 48 83 fe f4 cmp $0xfffffffffffffff4,%rsi 1e40: 72 0f jb 1e51 <_ZN8BalancerILh2EE6updateEv+0x1e51> 1e42: 4c 89 ea mov %r13,%rdx 1e45: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 1e4c <_ZN8BalancerILh2EE6updateEv+0x1e4c> 1e4c: e8 00 00 00 00 callq 1e51 <_ZN8BalancerILh2EE6updateEv+0x1e51> 1e51: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1e59 <_ZN8BalancerILh2EE6updateEv+0x1e59> 1e58: 00 1e59: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1e61 <_ZN8BalancerILh2EE6updateEv+0x1e61> 1e60: 00 1e61: 4c 89 e0 mov %r12,%rax 1e64: 48 c1 e8 03 shr $0x3,%rax 1e68: 80 b8 00 80 ff 7f 00 cmpb $0x0,0x7fff8000(%rax) 1e6f: 74 08 je 1e79 <_ZN8BalancerILh2EE6updateEv+0x1e79> 1e71: 4c 89 e7 mov %r12,%rdi 1e74: e8 00 00 00 00 callq 1e79 <_ZN8BalancerILh2EE6updateEv+0x1e79> 1e79: 4c 89 ab c0 fd ff ff mov %r13,-0x240(%rbx) 1e80: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1e88 <_ZN8BalancerILh2EE6updateEv+0x1e88> 1e87: 00 1e88: e9 b5 ee ff ff jmpq d42 <_ZN8BalancerILh2EE6updateEv+0xd42> 1e8d: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1e95 <_ZN8BalancerILh2EE6updateEv+0x1e95> 1e94: 00 1e95: 48 8b 8d b0 e5 ff ff mov -0x1a50(%rbp),%rcx 1e9c: c6 81 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rcx) 1ea3: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1eab <_ZN8BalancerILh2EE6updateEv+0x1eab> 1eaa: 00 1eab: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 1eb2: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1eba <_ZN8BalancerILh2EE6updateEv+0x1eba> 1eb9: 00 auto budgetLeft = value_t(0); 1eba: 4c 8d ab c0 f7 ff ff lea -0x840(%rbx),%r13 1ec1: 4c 89 e8 mov %r13,%rax 1ec4: 48 c1 e8 03 shr $0x3,%rax 1ec8: c6 80 00 80 ff 7f 04 movb $0x4,0x7fff8000(%rax) 1ecf: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1ed7 <_ZN8BalancerILh2EE6updateEv+0x1ed7> 1ed6: 00 1ed7: 8a 80 00 80 ff 7f mov 0x7fff8000(%rax),%al 1edd: 84 c0 test %al,%al 1edf: 74 0c je 1eed <_ZN8BalancerILh2EE6updateEv+0x1eed> 1ee1: 3c 03 cmp $0x3,%al 1ee3: 7f 08 jg 1eed <_ZN8BalancerILh2EE6updateEv+0x1eed> 1ee5: 4c 89 ef mov %r13,%rdi 1ee8: e8 00 00 00 00 callq 1eed <_ZN8BalancerILh2EE6updateEv+0x1eed> if (available > requestedTotal) { 1eed: 48 83 bd e0 e5 ff ff cmpq $0x0,-0x1a20(%rbp) 1ef4: 00 auto budgetLeft = value_t(0); 1ef5: c7 83 c0 f7 ff ff 00 movl $0x0,-0x840(%rbx) 1efc: 00 00 00 if (available > requestedTotal) { 1eff: 74 09 je 1f0a <_ZN8BalancerILh2EE6updateEv+0x1f0a> 1f01: f6 85 e0 e5 ff ff 07 testb $0x7,-0x1a20(%rbp) 1f08: 74 13 je 1f1d <_ZN8BalancerILh2EE6updateEv+0x1f1d> 1f0a: 48 8b b5 e0 e5 ff ff mov -0x1a20(%rbp),%rsi 1f11: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 1f18 <_ZN8BalancerILh2EE6updateEv+0x1f18> 1f18: e8 00 00 00 00 callq 1f1d <_ZN8BalancerILh2EE6updateEv+0x1f1d> 1f1d: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1f25 <_ZN8BalancerILh2EE6updateEv+0x1f25> 1f24: 00 1f25: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1f2d <_ZN8BalancerILh2EE6updateEv+0x1f2d> 1f2c: 00 1f2d: 4c 8b a5 e0 e5 ff ff mov -0x1a20(%rbp),%r12 1f34: 49 83 c4 08 add $0x8,%r12 1f38: 74 06 je 1f40 <_ZN8BalancerILh2EE6updateEv+0x1f40> 1f3a: 41 f6 c4 03 test $0x3,%r12b 1f3e: 74 0f je 1f4f <_ZN8BalancerILh2EE6updateEv+0x1f4f> 1f40: 4c 89 e6 mov %r12,%rsi 1f43: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 1f4a <_ZN8BalancerILh2EE6updateEv+0x1f4a> 1f4a: e8 00 00 00 00 callq 1f4f <_ZN8BalancerILh2EE6updateEv+0x1f4f> 1f4f: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1f57 <_ZN8BalancerILh2EE6updateEv+0x1f57> 1f56: 00 1f57: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1f5f <_ZN8BalancerILh2EE6updateEv+0x1f5f> 1f5e: 00 1f5f: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1f67 <_ZN8BalancerILh2EE6updateEv+0x1f67> 1f66: 00 CNL_DEFINE_COMPARISON_OPERATOR(>, greater_than_op) 1f67: 4c 8d b3 40 eb ff ff lea -0x14c0(%rbx),%r14 1f6e: 4c 89 f0 mov %r14,%rax 1f71: 48 c1 e8 03 shr $0x3,%rax 1f75: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 1f7c: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1f84 <_ZN8BalancerILh2EE6updateEv+0x1f84> 1f83: 00 return Operator{}(_impl::to_rep(lhs), _impl::to_rep(rhs)); 1f84: 48 8d 83 00 eb ff ff lea -0x1500(%rbx),%rax 1f8b: 48 c1 e8 03 shr $0x3,%rax 1f8f: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 1f96: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1f9e <_ZN8BalancerILh2EE6updateEv+0x1f9e> 1f9d: 00 1f9e: 48 8d 83 80 e6 ff ff lea -0x1980(%rbx),%rax 1fa5: 48 c1 e8 03 shr $0x3,%rax 1fa9: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 1fb0: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1fb8 <_ZN8BalancerILh2EE6updateEv+0x1fb8> 1fb7: 00 1fb8: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1fc0 <_ZN8BalancerILh2EE6updateEv+0x1fc0> 1fbf: 00 1fc0: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1fc8 <_ZN8BalancerILh2EE6updateEv+0x1fc8> 1fc7: 00 1fc8: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1fd0 <_ZN8BalancerILh2EE6updateEv+0x1fd0> 1fcf: 00 1fd0: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1fd8 <_ZN8BalancerILh2EE6updateEv+0x1fd8> 1fd7: 00 1fd8: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1fe0 <_ZN8BalancerILh2EE6updateEv+0x1fe0> 1fdf: 00 1fe0: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 1fe7: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 1fef <_ZN8BalancerILh2EE6updateEv+0x1fef> 1fee: 00 1fef: 48 8d 83 c0 e6 ff ff lea -0x1940(%rbx),%rax 1ff6: 48 89 85 d0 e5 ff ff mov %rax,-0x1a30(%rbp) 1ffd: 48 c1 e8 03 shr $0x3,%rax 2001: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 2008: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2010 <_ZN8BalancerILh2EE6updateEv+0x2010> 200f: 00 2010: 4d 85 e4 test %r12,%r12 2013: 74 06 je 201b <_ZN8BalancerILh2EE6updateEv+0x201b> 2015: 41 f6 c4 03 test $0x3,%r12b 2019: 74 0f je 202a <_ZN8BalancerILh2EE6updateEv+0x202a> 201b: 4c 89 e6 mov %r12,%rsi 201e: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2025 <_ZN8BalancerILh2EE6updateEv+0x2025> 2025: e8 00 00 00 00 callq 202a <_ZN8BalancerILh2EE6updateEv+0x202a> 202a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2032 <_ZN8BalancerILh2EE6updateEv+0x2032> 2031: 00 { return static_cast<_Tp&&>(__t); } 2032: 4d 85 e4 test %r12,%r12 2035: 74 06 je 203d <_ZN8BalancerILh2EE6updateEv+0x203d> 2037: 41 f6 c4 03 test $0x3,%r12b 203b: 74 0f je 204c <_ZN8BalancerILh2EE6updateEv+0x204c> 203d: 4c 89 e6 mov %r12,%rsi 2040: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2047 <_ZN8BalancerILh2EE6updateEv+0x2047> 2047: e8 00 00 00 00 callq 204c <_ZN8BalancerILh2EE6updateEv+0x204c> 204c: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2054 <_ZN8BalancerILh2EE6updateEv+0x2054> 2053: 00 2054: 4d 85 e4 test %r12,%r12 2057: 74 06 je 205f <_ZN8BalancerILh2EE6updateEv+0x205f> 2059: 41 f6 c4 03 test $0x3,%r12b 205d: 74 0f je 206e <_ZN8BalancerILh2EE6updateEv+0x206e> 205f: 4c 89 e6 mov %r12,%rsi 2062: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2069 <_ZN8BalancerILh2EE6updateEv+0x2069> 2069: e8 00 00 00 00 callq 206e <_ZN8BalancerILh2EE6updateEv+0x206e> 206e: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2076 <_ZN8BalancerILh2EE6updateEv+0x2076> 2075: 00 2076: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 207e <_ZN8BalancerILh2EE6updateEv+0x207e> 207d: 00 207e: 4d 85 e4 test %r12,%r12 2081: 74 06 je 2089 <_ZN8BalancerILh2EE6updateEv+0x2089> 2083: 41 f6 c4 03 test $0x3,%r12b 2087: 74 0f je 2098 <_ZN8BalancerILh2EE6updateEv+0x2098> 2089: 4c 89 e6 mov %r12,%rsi 208c: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2093 <_ZN8BalancerILh2EE6updateEv+0x2093> 2093: e8 00 00 00 00 callq 2098 <_ZN8BalancerILh2EE6updateEv+0x2098> 2098: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 20a0 <_ZN8BalancerILh2EE6updateEv+0x20a0> 209f: 00 20a0: 48 8d 83 c0 e6 ff ff lea -0x1940(%rbx),%rax 20a7: 48 c1 e8 03 shr $0x3,%rax 20ab: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 20b2: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 20ba <_ZN8BalancerILh2EE6updateEv+0x20ba> 20b9: 00 20ba: 48 8d 83 00 e7 ff ff lea -0x1900(%rbx),%rax 20c1: 48 c1 e8 03 shr $0x3,%rax 20c5: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 20cc: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 20d4 <_ZN8BalancerILh2EE6updateEv+0x20d4> 20d3: 00 return Operator()(_impl::to_rep(lhs), _impl::to_rep(rhs)); 20d4: 48 8d 83 40 e7 ff ff lea -0x18c0(%rbx),%rax 20db: 48 c1 e8 03 shr $0x3,%rax 20df: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 20e6: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 20ee <_ZN8BalancerILh2EE6updateEv+0x20ee> 20ed: 00 20ee: 48 8d 83 c0 ea ff ff lea -0x1540(%rbx),%rax 20f5: 48 c1 e8 03 shr $0x3,%rax 20f9: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 2100: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2108 <_ZN8BalancerILh2EE6updateEv+0x2108> 2107: 00 2108: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2110 <_ZN8BalancerILh2EE6updateEv+0x2110> 210f: 00 2110: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2118 <_ZN8BalancerILh2EE6updateEv+0x2118> 2117: 00 2118: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2120 <_ZN8BalancerILh2EE6updateEv+0x2120> 211f: 00 2120: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2128 <_ZN8BalancerILh2EE6updateEv+0x2128> 2127: 00 2128: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2130 <_ZN8BalancerILh2EE6updateEv+0x2130> 212f: 00 2130: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 2137: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 213f <_ZN8BalancerILh2EE6updateEv+0x213f> 213e: 00 213f: 48 8d 83 80 ea ff ff lea -0x1580(%rbx),%rax 2146: 48 89 85 d0 e5 ff ff mov %rax,-0x1a30(%rbp) 214d: 48 c1 e8 03 shr $0x3,%rax 2151: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 2158: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2160 <_ZN8BalancerILh2EE6updateEv+0x2160> 215f: 00 2160: 4d 85 e4 test %r12,%r12 2163: 74 06 je 216b <_ZN8BalancerILh2EE6updateEv+0x216b> 2165: 41 f6 c4 03 test $0x3,%r12b 2169: 74 0f je 217a <_ZN8BalancerILh2EE6updateEv+0x217a> 216b: 4c 89 e6 mov %r12,%rsi 216e: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2175 <_ZN8BalancerILh2EE6updateEv+0x2175> 2175: e8 00 00 00 00 callq 217a <_ZN8BalancerILh2EE6updateEv+0x217a> 217a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2182 <_ZN8BalancerILh2EE6updateEv+0x2182> 2181: 00 2182: 4d 85 e4 test %r12,%r12 2185: 74 06 je 218d <_ZN8BalancerILh2EE6updateEv+0x218d> 2187: 41 f6 c4 03 test $0x3,%r12b 218b: 74 0f je 219c <_ZN8BalancerILh2EE6updateEv+0x219c> 218d: 4c 89 e6 mov %r12,%rsi 2190: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2197 <_ZN8BalancerILh2EE6updateEv+0x2197> 2197: e8 00 00 00 00 callq 219c <_ZN8BalancerILh2EE6updateEv+0x219c> 219c: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 21a4 <_ZN8BalancerILh2EE6updateEv+0x21a4> 21a3: 00 21a4: 4d 85 e4 test %r12,%r12 21a7: 74 06 je 21af <_ZN8BalancerILh2EE6updateEv+0x21af> 21a9: 41 f6 c4 03 test $0x3,%r12b 21ad: 74 0f je 21be <_ZN8BalancerILh2EE6updateEv+0x21be> 21af: 4c 89 e6 mov %r12,%rsi 21b2: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 21b9 <_ZN8BalancerILh2EE6updateEv+0x21b9> 21b9: e8 00 00 00 00 callq 21be <_ZN8BalancerILh2EE6updateEv+0x21be> 21be: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 21c6 <_ZN8BalancerILh2EE6updateEv+0x21c6> 21c5: 00 21c6: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 21ce <_ZN8BalancerILh2EE6updateEv+0x21ce> 21cd: 00 21ce: 4d 85 e4 test %r12,%r12 21d1: 74 06 je 21d9 <_ZN8BalancerILh2EE6updateEv+0x21d9> 21d3: 41 f6 c4 03 test $0x3,%r12b 21d7: 74 0f je 21e8 <_ZN8BalancerILh2EE6updateEv+0x21e8> 21d9: 4c 89 e6 mov %r12,%rsi 21dc: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 21e3 <_ZN8BalancerILh2EE6updateEv+0x21e3> 21e3: e8 00 00 00 00 callq 21e8 <_ZN8BalancerILh2EE6updateEv+0x21e8> 21e8: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 21f0 <_ZN8BalancerILh2EE6updateEv+0x21f0> 21ef: 00 21f0: 48 8d 83 80 ea ff ff lea -0x1580(%rbx),%rax 21f7: 48 c1 e8 03 shr $0x3,%rax 21fb: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 2202: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 220a <_ZN8BalancerILh2EE6updateEv+0x220a> 2209: 00 220a: 48 8d 83 40 ea ff ff lea -0x15c0(%rbx),%rax 2211: 48 c1 e8 03 shr $0x3,%rax 2215: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 221c: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2224 <_ZN8BalancerILh2EE6updateEv+0x2224> 2223: 00 return Operator()(_impl::to_rep(lhs), _impl::to_rep(rhs)); 2224: 48 8d 83 00 ea ff ff lea -0x1600(%rbx),%rax 222b: 48 c1 e8 03 shr $0x3,%rax 222f: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 2236: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 223e <_ZN8BalancerILh2EE6updateEv+0x223e> 223d: 00 223e: 48 8d 83 80 e7 ff ff lea -0x1880(%rbx),%rax 2245: 48 c1 e8 03 shr $0x3,%rax 2249: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 2250: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2258 <_ZN8BalancerILh2EE6updateEv+0x2258> 2257: 00 2258: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2260 <_ZN8BalancerILh2EE6updateEv+0x2260> 225f: 00 2260: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2268 <_ZN8BalancerILh2EE6updateEv+0x2268> 2267: 00 2268: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2270 <_ZN8BalancerILh2EE6updateEv+0x2270> 226f: 00 2270: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2278 <_ZN8BalancerILh2EE6updateEv+0x2278> 2277: 00 2278: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2280 <_ZN8BalancerILh2EE6updateEv+0x2280> 227f: 00 2280: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 2287: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 228f <_ZN8BalancerILh2EE6updateEv+0x228f> 228e: 00 228f: 48 8d 83 c0 e7 ff ff lea -0x1840(%rbx),%rax 2296: 48 89 85 d0 e5 ff ff mov %rax,-0x1a30(%rbp) 229d: 48 c1 e8 03 shr $0x3,%rax 22a1: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 22a8: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 22b0 <_ZN8BalancerILh2EE6updateEv+0x22b0> 22af: 00 22b0: 4d 85 e4 test %r12,%r12 22b3: 74 06 je 22bb <_ZN8BalancerILh2EE6updateEv+0x22bb> 22b5: 41 f6 c4 03 test $0x3,%r12b 22b9: 74 0f je 22ca <_ZN8BalancerILh2EE6updateEv+0x22ca> 22bb: 4c 89 e6 mov %r12,%rsi 22be: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 22c5 <_ZN8BalancerILh2EE6updateEv+0x22c5> 22c5: e8 00 00 00 00 callq 22ca <_ZN8BalancerILh2EE6updateEv+0x22ca> 22ca: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 22d2 <_ZN8BalancerILh2EE6updateEv+0x22d2> 22d1: 00 22d2: 4d 85 e4 test %r12,%r12 22d5: 74 06 je 22dd <_ZN8BalancerILh2EE6updateEv+0x22dd> 22d7: 41 f6 c4 03 test $0x3,%r12b 22db: 74 0f je 22ec <_ZN8BalancerILh2EE6updateEv+0x22ec> 22dd: 4c 89 e6 mov %r12,%rsi 22e0: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 22e7 <_ZN8BalancerILh2EE6updateEv+0x22e7> 22e7: e8 00 00 00 00 callq 22ec <_ZN8BalancerILh2EE6updateEv+0x22ec> 22ec: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 22f4 <_ZN8BalancerILh2EE6updateEv+0x22f4> 22f3: 00 22f4: 4d 85 e4 test %r12,%r12 22f7: 74 06 je 22ff <_ZN8BalancerILh2EE6updateEv+0x22ff> 22f9: 41 f6 c4 03 test $0x3,%r12b 22fd: 74 0f je 230e <_ZN8BalancerILh2EE6updateEv+0x230e> 22ff: 4c 89 e6 mov %r12,%rsi 2302: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2309 <_ZN8BalancerILh2EE6updateEv+0x2309> 2309: e8 00 00 00 00 callq 230e <_ZN8BalancerILh2EE6updateEv+0x230e> 230e: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2316 <_ZN8BalancerILh2EE6updateEv+0x2316> 2315: 00 2316: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 231e <_ZN8BalancerILh2EE6updateEv+0x231e> 231d: 00 231e: 4d 85 e4 test %r12,%r12 2321: 74 06 je 2329 <_ZN8BalancerILh2EE6updateEv+0x2329> 2323: 41 f6 c4 03 test $0x3,%r12b 2327: 74 0f je 2338 <_ZN8BalancerILh2EE6updateEv+0x2338> 2329: 4c 89 e6 mov %r12,%rsi 232c: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2333 <_ZN8BalancerILh2EE6updateEv+0x2333> 2333: e8 00 00 00 00 callq 2338 <_ZN8BalancerILh2EE6updateEv+0x2338> 2338: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2340 <_ZN8BalancerILh2EE6updateEv+0x2340> 233f: 00 2340: 48 8d 83 c0 e7 ff ff lea -0x1840(%rbx),%rax 2347: 48 c1 e8 03 shr $0x3,%rax 234b: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 2352: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 235a <_ZN8BalancerILh2EE6updateEv+0x235a> 2359: 00 235a: 48 8d 83 00 e8 ff ff lea -0x1800(%rbx),%rax 2361: 48 c1 e8 03 shr $0x3,%rax 2365: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 236c: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2374 <_ZN8BalancerILh2EE6updateEv+0x2374> 2373: 00 return Operator()(_impl::to_rep(lhs), _impl::to_rep(rhs)); 2374: 48 8d 83 40 e8 ff ff lea -0x17c0(%rbx),%rax 237b: 48 c1 e8 03 shr $0x3,%rax 237f: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 2386: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 238e <_ZN8BalancerILh2EE6updateEv+0x238e> 238d: 00 238e: 48 8d 83 c0 e9 ff ff lea -0x1640(%rbx),%rax 2395: 48 c1 e8 03 shr $0x3,%rax 2399: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 23a0: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 23a8 <_ZN8BalancerILh2EE6updateEv+0x23a8> 23a7: 00 23a8: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 23b0 <_ZN8BalancerILh2EE6updateEv+0x23b0> 23af: 00 23b0: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 23b8 <_ZN8BalancerILh2EE6updateEv+0x23b8> 23b7: 00 23b8: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 23c0 <_ZN8BalancerILh2EE6updateEv+0x23c0> 23bf: 00 23c0: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 23c8 <_ZN8BalancerILh2EE6updateEv+0x23c8> 23c7: 00 23c8: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 23d0 <_ZN8BalancerILh2EE6updateEv+0x23d0> 23cf: 00 23d0: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 23d7: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 23df <_ZN8BalancerILh2EE6updateEv+0x23df> 23de: 00 23df: 48 8d 83 80 e9 ff ff lea -0x1680(%rbx),%rax 23e6: 48 89 85 d0 e5 ff ff mov %rax,-0x1a30(%rbp) 23ed: 48 c1 e8 03 shr $0x3,%rax 23f1: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 23f8: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2400 <_ZN8BalancerILh2EE6updateEv+0x2400> 23ff: 00 2400: 4d 85 e4 test %r12,%r12 2403: 74 06 je 240b <_ZN8BalancerILh2EE6updateEv+0x240b> 2405: 41 f6 c4 03 test $0x3,%r12b 2409: 74 0f je 241a <_ZN8BalancerILh2EE6updateEv+0x241a> 240b: 4c 89 e6 mov %r12,%rsi 240e: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2415 <_ZN8BalancerILh2EE6updateEv+0x2415> 2415: e8 00 00 00 00 callq 241a <_ZN8BalancerILh2EE6updateEv+0x241a> 241a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2422 <_ZN8BalancerILh2EE6updateEv+0x2422> 2421: 00 2422: 4d 85 e4 test %r12,%r12 2425: 74 06 je 242d <_ZN8BalancerILh2EE6updateEv+0x242d> 2427: 41 f6 c4 03 test $0x3,%r12b 242b: 74 0f je 243c <_ZN8BalancerILh2EE6updateEv+0x243c> 242d: 4c 89 e6 mov %r12,%rsi 2430: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2437 <_ZN8BalancerILh2EE6updateEv+0x2437> 2437: e8 00 00 00 00 callq 243c <_ZN8BalancerILh2EE6updateEv+0x243c> 243c: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2444 <_ZN8BalancerILh2EE6updateEv+0x2444> 2443: 00 2444: 4d 85 e4 test %r12,%r12 2447: 74 06 je 244f <_ZN8BalancerILh2EE6updateEv+0x244f> 2449: 41 f6 c4 03 test $0x3,%r12b 244d: 74 0f je 245e <_ZN8BalancerILh2EE6updateEv+0x245e> 244f: 4c 89 e6 mov %r12,%rsi 2452: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2459 <_ZN8BalancerILh2EE6updateEv+0x2459> 2459: e8 00 00 00 00 callq 245e <_ZN8BalancerILh2EE6updateEv+0x245e> 245e: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2466 <_ZN8BalancerILh2EE6updateEv+0x2466> 2465: 00 2466: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 246e <_ZN8BalancerILh2EE6updateEv+0x246e> 246d: 00 246e: 4d 85 e4 test %r12,%r12 2471: 74 06 je 2479 <_ZN8BalancerILh2EE6updateEv+0x2479> 2473: 41 f6 c4 03 test $0x3,%r12b 2477: 74 0f je 2488 <_ZN8BalancerILh2EE6updateEv+0x2488> 2479: 4c 89 e6 mov %r12,%rsi 247c: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2483 <_ZN8BalancerILh2EE6updateEv+0x2483> 2483: e8 00 00 00 00 callq 2488 <_ZN8BalancerILh2EE6updateEv+0x2488> 2488: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2490 <_ZN8BalancerILh2EE6updateEv+0x2490> 248f: 00 2490: 48 8d 83 80 e9 ff ff lea -0x1680(%rbx),%rax 2497: 48 c1 e8 03 shr $0x3,%rax 249b: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 24a2: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 24aa <_ZN8BalancerILh2EE6updateEv+0x24aa> 24a9: 00 24aa: 48 8d 83 40 e9 ff ff lea -0x16c0(%rbx),%rax 24b1: 48 c1 e8 03 shr $0x3,%rax 24b5: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 24bc: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 24c4 <_ZN8BalancerILh2EE6updateEv+0x24c4> 24c3: 00 return Operator()(_impl::to_rep(lhs), _impl::to_rep(rhs)); 24c4: 48 8d 83 00 e9 ff ff lea -0x1700(%rbx),%rax 24cb: 48 c1 e8 03 shr $0x3,%rax 24cf: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 24d6: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 24de <_ZN8BalancerILh2EE6updateEv+0x24de> 24dd: 00 24de: 48 8d 83 80 e8 ff ff lea -0x1780(%rbx),%rax 24e5: 48 c1 e8 03 shr $0x3,%rax 24e9: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 24f0: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 24f8 <_ZN8BalancerILh2EE6updateEv+0x24f8> 24f7: 00 24f8: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2500 <_ZN8BalancerILh2EE6updateEv+0x2500> 24ff: 00 2500: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2508 <_ZN8BalancerILh2EE6updateEv+0x2508> 2507: 00 2508: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2510 <_ZN8BalancerILh2EE6updateEv+0x2510> 250f: 00 2510: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2518 <_ZN8BalancerILh2EE6updateEv+0x2518> 2517: 00 2518: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2520 <_ZN8BalancerILh2EE6updateEv+0x2520> 251f: 00 2520: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 2527: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 252f <_ZN8BalancerILh2EE6updateEv+0x252f> 252e: 00 252f: 48 8d 83 c0 e8 ff ff lea -0x1740(%rbx),%rax 2536: 48 89 85 d0 e5 ff ff mov %rax,-0x1a30(%rbp) 253d: 48 c1 e8 03 shr $0x3,%rax 2541: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 2548: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2550 <_ZN8BalancerILh2EE6updateEv+0x2550> 254f: 00 2550: 4d 85 e4 test %r12,%r12 2553: 74 06 je 255b <_ZN8BalancerILh2EE6updateEv+0x255b> 2555: 41 f6 c4 03 test $0x3,%r12b 2559: 74 0f je 256a <_ZN8BalancerILh2EE6updateEv+0x256a> 255b: 4c 89 e6 mov %r12,%rsi 255e: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2565 <_ZN8BalancerILh2EE6updateEv+0x2565> 2565: e8 00 00 00 00 callq 256a <_ZN8BalancerILh2EE6updateEv+0x256a> 256a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2572 <_ZN8BalancerILh2EE6updateEv+0x2572> 2571: 00 2572: 4d 85 e4 test %r12,%r12 2575: 74 06 je 257d <_ZN8BalancerILh2EE6updateEv+0x257d> 2577: 41 f6 c4 03 test $0x3,%r12b 257b: 74 0f je 258c <_ZN8BalancerILh2EE6updateEv+0x258c> 257d: 4c 89 e6 mov %r12,%rsi 2580: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2587 <_ZN8BalancerILh2EE6updateEv+0x2587> 2587: e8 00 00 00 00 callq 258c <_ZN8BalancerILh2EE6updateEv+0x258c> 258c: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2594 <_ZN8BalancerILh2EE6updateEv+0x2594> 2593: 00 2594: 4d 85 e4 test %r12,%r12 2597: 74 06 je 259f <_ZN8BalancerILh2EE6updateEv+0x259f> 2599: 41 f6 c4 03 test $0x3,%r12b 259d: 74 0f je 25ae <_ZN8BalancerILh2EE6updateEv+0x25ae> 259f: 4c 89 e6 mov %r12,%rsi 25a2: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 25a9 <_ZN8BalancerILh2EE6updateEv+0x25a9> 25a9: e8 00 00 00 00 callq 25ae <_ZN8BalancerILh2EE6updateEv+0x25ae> 25ae: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 25b6 <_ZN8BalancerILh2EE6updateEv+0x25b6> 25b5: 00 25b6: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 25be <_ZN8BalancerILh2EE6updateEv+0x25be> 25bd: 00 25be: 4d 85 e4 test %r12,%r12 25c1: 74 06 je 25c9 <_ZN8BalancerILh2EE6updateEv+0x25c9> 25c3: 41 f6 c4 03 test $0x3,%r12b 25c7: 74 0f je 25d8 <_ZN8BalancerILh2EE6updateEv+0x25d8> 25c9: 4c 89 e6 mov %r12,%rsi 25cc: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 25d3 <_ZN8BalancerILh2EE6updateEv+0x25d3> 25d3: e8 00 00 00 00 callq 25d8 <_ZN8BalancerILh2EE6updateEv+0x25d8> 25d8: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 25e0 <_ZN8BalancerILh2EE6updateEv+0x25e0> 25df: 00 25e0: 48 8d 83 c0 e8 ff ff lea -0x1740(%rbx),%rax 25e7: 48 c1 e8 03 shr $0x3,%rax 25eb: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 25f2: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 25fa <_ZN8BalancerILh2EE6updateEv+0x25fa> 25f9: 00 return lhs>rhs; 25fa: 4d 85 e4 test %r12,%r12 25fd: 74 06 je 2605 <_ZN8BalancerILh2EE6updateEv+0x2605> 25ff: 41 f6 c4 03 test $0x3,%r12b 2603: 74 0f je 2614 <_ZN8BalancerILh2EE6updateEv+0x2614> 2605: 4c 89 e6 mov %r12,%rsi 2608: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 260f <_ZN8BalancerILh2EE6updateEv+0x260f> 260f: e8 00 00 00 00 callq 2614 <_ZN8BalancerILh2EE6updateEv+0x2614> 2614: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 261c <_ZN8BalancerILh2EE6updateEv+0x261c> 261b: 00 261c: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2624 <_ZN8BalancerILh2EE6updateEv+0x2624> 2623: 00 2624: 4c 89 e0 mov %r12,%rax 2627: 48 c1 e8 03 shr $0x3,%rax 262b: 8a 90 00 80 ff 7f mov 0x7fff8000(%rax),%dl 2631: 4c 89 e0 mov %r12,%rax 2634: 83 e0 07 and $0x7,%eax 2637: 83 c0 03 add $0x3,%eax 263a: 38 d0 cmp %dl,%al 263c: 7c 0c jl 264a <_ZN8BalancerILh2EE6updateEv+0x264a> 263e: 84 d2 test %dl,%dl 2640: 74 08 je 264a <_ZN8BalancerILh2EE6updateEv+0x264a> 2642: 4c 89 e7 mov %r12,%rdi 2645: e8 00 00 00 00 callq 264a <_ZN8BalancerILh2EE6updateEv+0x264a> 264a: 48 8b 85 e0 e5 ff ff mov -0x1a20(%rbp),%rax 2651: 8b 48 08 mov 0x8(%rax),%ecx 2654: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 265c <_ZN8BalancerILh2EE6updateEv+0x265c> 265b: 00 265c: 48 8d 83 80 f7 ff ff lea -0x880(%rbx),%rax 2663: 48 c1 e8 03 shr $0x3,%rax 2667: 8a 80 00 80 ff 7f mov 0x7fff8000(%rax),%al 266d: 84 c0 test %al,%al 266f: 74 10 je 2681 <_ZN8BalancerILh2EE6updateEv+0x2681> 2671: 3c 03 cmp $0x3,%al 2673: 7f 0c jg 2681 <_ZN8BalancerILh2EE6updateEv+0x2681> 2675: 48 8b bd c8 e5 ff ff mov -0x1a38(%rbp),%rdi 267c: e8 00 00 00 00 callq 2681 <_ZN8BalancerILh2EE6updateEv+0x2681> 2681: 8b 93 80 f7 ff ff mov -0x880(%rbx),%edx 2687: 48 8d 83 00 e9 ff ff lea -0x1700(%rbx),%rax 268e: 48 c1 e8 03 shr $0x3,%rax 2692: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 2699: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 26a1 <_ZN8BalancerILh2EE6updateEv+0x26a1> 26a0: 00 26a1: 48 8d 83 40 e9 ff ff lea -0x16c0(%rbx),%rax 26a8: 48 c1 e8 03 shr $0x3,%rax 26ac: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 26b3: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 26bb <_ZN8BalancerILh2EE6updateEv+0x26bb> 26ba: 00 26bb: 48 8d 83 40 e8 ff ff lea -0x17c0(%rbx),%rax 26c2: 48 c1 e8 03 shr $0x3,%rax 26c6: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 26cd: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 26d5 <_ZN8BalancerILh2EE6updateEv+0x26d5> 26d4: 00 26d5: 48 8d 83 00 e8 ff ff lea -0x1800(%rbx),%rax 26dc: 48 c1 e8 03 shr $0x3,%rax 26e0: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 26e7: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 26ef <_ZN8BalancerILh2EE6updateEv+0x26ef> 26ee: 00 26ef: 48 8d 83 00 ea ff ff lea -0x1600(%rbx),%rax 26f6: 48 c1 e8 03 shr $0x3,%rax 26fa: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 2701: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2709 <_ZN8BalancerILh2EE6updateEv+0x2709> 2708: 00 2709: 48 8d 83 40 ea ff ff lea -0x15c0(%rbx),%rax 2710: 48 c1 e8 03 shr $0x3,%rax 2714: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 271b: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2723 <_ZN8BalancerILh2EE6updateEv+0x2723> 2722: 00 2723: 48 8d 83 40 e7 ff ff lea -0x18c0(%rbx),%rax 272a: 48 c1 e8 03 shr $0x3,%rax 272e: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 2735: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 273d <_ZN8BalancerILh2EE6updateEv+0x273d> 273c: 00 273d: 48 8d 83 00 e7 ff ff lea -0x1900(%rbx),%rax 2744: 48 c1 e8 03 shr $0x3,%rax 2748: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 274f: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2757 <_ZN8BalancerILh2EE6updateEv+0x2757> 2756: 00 2757: 48 8d 83 00 eb ff ff lea -0x1500(%rbx),%rax 275e: 48 c1 e8 03 shr $0x3,%rax 2762: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 2769: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2771 <_ZN8BalancerILh2EE6updateEv+0x2771> 2770: 00 2771: 49 c1 ee 03 shr $0x3,%r14 2775: 41 c6 86 00 80 ff 7f movb $0xf8,0x7fff8000(%r14) 277c: f8 277d: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2785 <_ZN8BalancerILh2EE6updateEv+0x2785> 2784: 00 2785: 39 d1 cmp %edx,%ecx 2787: 0f 8e 0f 02 00 00 jle 299c <_ZN8BalancerILh2EE6updateEv+0x299c> 278d: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2795 <_ZN8BalancerILh2EE6updateEv+0x2795> 2794: 00 budgetLeft = available - requestedTotal; 2795: 48 8d 83 00 f8 ff ff lea -0x800(%rbx),%rax 279c: 48 c1 e8 03 shr $0x3,%rax 27a0: c6 80 00 80 ff 7f 04 movb $0x4,0x7fff8000(%rax) 27a7: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 27af <_ZN8BalancerILh2EE6updateEv+0x27af> 27ae: 00 27af: 48 83 bd e0 e5 ff ff cmpq $0x0,-0x1a20(%rbp) 27b6: 00 27b7: 74 09 je 27c2 <_ZN8BalancerILh2EE6updateEv+0x27c2> 27b9: f6 85 e0 e5 ff ff 07 testb $0x7,-0x1a20(%rbp) 27c0: 74 13 je 27d5 <_ZN8BalancerILh2EE6updateEv+0x27d5> 27c2: 48 8b b5 e0 e5 ff ff mov -0x1a20(%rbp),%rsi 27c9: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 27d0 <_ZN8BalancerILh2EE6updateEv+0x27d0> 27d0: e8 00 00 00 00 callq 27d5 <_ZN8BalancerILh2EE6updateEv+0x27d5> 27d5: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 27dd <_ZN8BalancerILh2EE6updateEv+0x27dd> 27dc: 00 27dd: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 27e5 <_ZN8BalancerILh2EE6updateEv+0x27e5> 27e4: 00 27e5: 4d 85 e4 test %r12,%r12 27e8: 74 06 je 27f0 <_ZN8BalancerILh2EE6updateEv+0x27f0> 27ea: 41 f6 c4 03 test $0x3,%r12b 27ee: 74 0f je 27ff <_ZN8BalancerILh2EE6updateEv+0x27ff> 27f0: 4c 89 e6 mov %r12,%rsi 27f3: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 27fa <_ZN8BalancerILh2EE6updateEv+0x27fa> 27fa: e8 00 00 00 00 callq 27ff <_ZN8BalancerILh2EE6updateEv+0x27ff> 27ff: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2807 <_ZN8BalancerILh2EE6updateEv+0x2807> 2806: 00 2807: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 280f <_ZN8BalancerILh2EE6updateEv+0x280f> 280e: 00 280f: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2817 <_ZN8BalancerILh2EE6updateEv+0x2817> 2816: 00 CNL_DEFINE_BINARY_OPERATOR(-, subtract_op) 2817: 4c 8d b3 80 eb ff ff lea -0x1480(%rbx),%r14 281e: 49 c1 ee 03 shr $0x3,%r14 2822: 41 c6 86 00 80 ff 7f movb $0x1,0x7fff8000(%r14) 2829: 01 282a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2832 <_ZN8BalancerILh2EE6updateEv+0x2832> 2831: 00 2832: 48 8d b3 80 f7 ff ff lea -0x880(%rbx),%rsi 2839: 4c 89 e7 mov %r12,%rdi 283c: e8 00 00 00 00 callq 2841 <_ZN8BalancerILh2EE6updateEv+0x2841> 2841: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2849 <_ZN8BalancerILh2EE6updateEv+0x2849> 2848: 00 2849: 41 c6 86 00 80 ff 7f movb $0xf8,0x7fff8000(%r14) 2850: f8 2851: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2859 <_ZN8BalancerILh2EE6updateEv+0x2859> 2858: 00 2859: 4c 8d b3 00 f8 ff ff lea -0x800(%rbx),%r14 2860: 4c 89 f2 mov %r14,%rdx 2863: 48 c1 ea 03 shr $0x3,%rdx 2867: 8a 92 00 80 ff 7f mov 0x7fff8000(%rdx),%dl 286d: 84 d2 test %dl,%dl 286f: 74 0d je 287e <_ZN8BalancerILh2EE6updateEv+0x287e> 2871: 80 fa 03 cmp $0x3,%dl 2874: 7f 08 jg 287e <_ZN8BalancerILh2EE6updateEv+0x287e> 2876: 4c 89 f7 mov %r14,%rdi 2879: e8 00 00 00 00 callq 287e <_ZN8BalancerILh2EE6updateEv+0x287e> 287e: 89 83 00 f8 ff ff mov %eax,-0x800(%rbx) 2884: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 288c <_ZN8BalancerILh2EE6updateEv+0x288c> 288b: 00 288c: 4c 89 f6 mov %r14,%rsi 288f: 4c 89 ef mov %r13,%rdi 2892: e8 00 00 00 00 callq 2897 <_ZN8BalancerILh2EE6updateEv+0x2897> 2897: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 289f <_ZN8BalancerILh2EE6updateEv+0x289f> 289e: 00 289f: 49 c1 ee 03 shr $0x3,%r14 28a3: 41 c6 86 00 80 ff 7f movb $0xf8,0x7fff8000(%r14) 28aa: f8 28ab: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 28b3 <_ZN8BalancerILh2EE6updateEv+0x28b3> 28b2: 00 requestedTotal = available; 28b3: 48 83 bd e0 e5 ff ff cmpq $0x0,-0x1a20(%rbp) 28ba: 00 28bb: 74 09 je 28c6 <_ZN8BalancerILh2EE6updateEv+0x28c6> 28bd: f6 85 e0 e5 ff ff 07 testb $0x7,-0x1a20(%rbp) 28c4: 74 13 je 28d9 <_ZN8BalancerILh2EE6updateEv+0x28d9> 28c6: 48 8b b5 e0 e5 ff ff mov -0x1a20(%rbp),%rsi 28cd: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 28d4 <_ZN8BalancerILh2EE6updateEv+0x28d4> 28d4: e8 00 00 00 00 callq 28d9 <_ZN8BalancerILh2EE6updateEv+0x28d9> 28d9: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 28e1 <_ZN8BalancerILh2EE6updateEv+0x28e1> 28e0: 00 28e1: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 28e9 <_ZN8BalancerILh2EE6updateEv+0x28e9> 28e8: 00 28e9: 4d 85 e4 test %r12,%r12 28ec: 74 06 je 28f4 <_ZN8BalancerILh2EE6updateEv+0x28f4> 28ee: 41 f6 c4 03 test $0x3,%r12b 28f2: 74 0f je 2903 <_ZN8BalancerILh2EE6updateEv+0x2903> 28f4: 4c 89 e6 mov %r12,%rsi 28f7: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 28fe <_ZN8BalancerILh2EE6updateEv+0x28fe> 28fe: e8 00 00 00 00 callq 2903 <_ZN8BalancerILh2EE6updateEv+0x2903> 2903: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 290b <_ZN8BalancerILh2EE6updateEv+0x290b> 290a: 00 290b: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2913 <_ZN8BalancerILh2EE6updateEv+0x2913> 2912: 00 2913: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 291b <_ZN8BalancerILh2EE6updateEv+0x291b> 291a: 00 291b: 4d 85 e4 test %r12,%r12 291e: 74 06 je 2926 <_ZN8BalancerILh2EE6updateEv+0x2926> 2920: 41 f6 c4 03 test $0x3,%r12b 2924: 74 0f je 2935 <_ZN8BalancerILh2EE6updateEv+0x2935> 2926: 4c 89 e6 mov %r12,%rsi 2929: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2930 <_ZN8BalancerILh2EE6updateEv+0x2930> 2930: e8 00 00 00 00 callq 2935 <_ZN8BalancerILh2EE6updateEv+0x2935> 2935: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 293d <_ZN8BalancerILh2EE6updateEv+0x293d> 293c: 00 293d: 48 8d bb 80 f7 ff ff lea -0x880(%rbx),%rdi 2944: 48 89 f8 mov %rdi,%rax 2947: 48 c1 e8 03 shr $0x3,%rax 294b: 8a 80 00 80 ff 7f mov 0x7fff8000(%rax),%al 2951: 84 c0 test %al,%al 2953: 74 09 je 295e <_ZN8BalancerILh2EE6updateEv+0x295e> 2955: 3c 03 cmp $0x3,%al 2957: 7f 05 jg 295e <_ZN8BalancerILh2EE6updateEv+0x295e> 2959: e8 00 00 00 00 callq 295e <_ZN8BalancerILh2EE6updateEv+0x295e> 295e: 4c 89 e0 mov %r12,%rax 2961: 48 c1 e8 03 shr $0x3,%rax 2965: 8a 90 00 80 ff 7f mov 0x7fff8000(%rax),%dl 296b: 4c 89 e0 mov %r12,%rax 296e: 83 e0 07 and $0x7,%eax 2971: 83 c0 03 add $0x3,%eax 2974: 38 d0 cmp %dl,%al 2976: 7c 0c jl 2984 <_ZN8BalancerILh2EE6updateEv+0x2984> 2978: 84 d2 test %dl,%dl 297a: 74 08 je 2984 <_ZN8BalancerILh2EE6updateEv+0x2984> 297c: 4c 89 e7 mov %r12,%rdi 297f: e8 00 00 00 00 callq 2984 <_ZN8BalancerILh2EE6updateEv+0x2984> 2984: 48 8b 85 e0 e5 ff ff mov -0x1a20(%rbp),%rax 298b: 8b 40 08 mov 0x8(%rax),%eax 298e: 89 83 80 f7 ff ff mov %eax,-0x880(%rbx) 2994: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 299c <_ZN8BalancerILh2EE6updateEv+0x299c> 299b: 00 auto budgetLeftPerActuator = cnl::quotient(budgetLeft, numActuators); 299c: 48 8d 83 40 f8 ff ff lea -0x7c0(%rbx),%rax 29a3: 48 89 85 d0 e5 ff ff mov %rax,-0x1a30(%rbp) 29aa: 48 c1 e8 03 shr $0x3,%rax 29ae: c6 80 00 80 ff 7f 04 movb $0x4,0x7fff8000(%rax) 29b5: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 29bd <_ZN8BalancerILh2EE6updateEv+0x29bd> 29bc: 00 29bd: 8a 80 00 80 ff 7f mov 0x7fff8000(%rax),%al 29c3: 84 c0 test %al,%al 29c5: 74 10 je 29d7 <_ZN8BalancerILh2EE6updateEv+0x29d7> 29c7: 3c 03 cmp $0x3,%al 29c9: 7f 0c jg 29d7 <_ZN8BalancerILh2EE6updateEv+0x29d7> 29cb: 48 8b bd d0 e5 ff ff mov -0x1a30(%rbp),%rdi 29d2: e8 00 00 00 00 callq 29d7 <_ZN8BalancerILh2EE6updateEv+0x29d7> 29d7: 48 8d 83 40 e6 ff ff lea -0x19c0(%rbx),%rax 29de: 4c 89 ef mov %r13,%rdi 29e1: 48 89 c6 mov %rax,%rsi 29e4: 48 89 85 b0 e5 ff ff mov %rax,-0x1a50(%rbp) 29eb: e8 00 00 00 00 callq 29f0 <_ZN8BalancerILh2EE6updateEv+0x29f0> 29f0: 89 83 40 f8 ff ff mov %eax,-0x7c0(%rbx) 29f6: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 29fe <_ZN8BalancerILh2EE6updateEv+0x29fe> 29fd: 00 safe_elastic_fixed_point<31, -21> scale = cnl::quotient(available, requestedTotal); 29fe: 48 8d 83 80 f8 ff ff lea -0x780(%rbx),%rax 2a05: 48 89 85 c0 e5 ff ff mov %rax,-0x1a40(%rbp) 2a0c: 48 c1 e8 03 shr $0x3,%rax 2a10: c6 80 00 80 ff 7f 04 movb $0x4,0x7fff8000(%rax) 2a17: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2a1f <_ZN8BalancerILh2EE6updateEv+0x2a1f> 2a1e: 00 2a1f: 4c 8d ab 40 fe ff ff lea -0x1c0(%rbx),%r13 2a26: 4c 89 e8 mov %r13,%rax 2a29: 48 c1 e8 03 shr $0x3,%rax 2a2d: c6 80 00 80 ff 7f 00 movb $0x0,0x7fff8000(%rax) 2a34: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2a3c <_ZN8BalancerILh2EE6updateEv+0x2a3c> 2a3b: 00 2a3c: 48 83 bd e0 e5 ff ff cmpq $0x0,-0x1a20(%rbp) 2a43: 00 2a44: 74 09 je 2a4f <_ZN8BalancerILh2EE6updateEv+0x2a4f> 2a46: f6 85 e0 e5 ff ff 07 testb $0x7,-0x1a20(%rbp) 2a4d: 74 13 je 2a62 <_ZN8BalancerILh2EE6updateEv+0x2a62> 2a4f: 48 8b b5 e0 e5 ff ff mov -0x1a20(%rbp),%rsi 2a56: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2a5d <_ZN8BalancerILh2EE6updateEv+0x2a5d> 2a5d: e8 00 00 00 00 callq 2a62 <_ZN8BalancerILh2EE6updateEv+0x2a62> 2a62: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2a6a <_ZN8BalancerILh2EE6updateEv+0x2a6a> 2a69: 00 2a6a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2a72 <_ZN8BalancerILh2EE6updateEv+0x2a72> 2a71: 00 2a72: 4d 85 e4 test %r12,%r12 2a75: 74 06 je 2a7d <_ZN8BalancerILh2EE6updateEv+0x2a7d> 2a77: 41 f6 c4 03 test $0x3,%r12b 2a7b: 74 0f je 2a8c <_ZN8BalancerILh2EE6updateEv+0x2a8c> 2a7d: 4c 89 e6 mov %r12,%rsi 2a80: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2a87 <_ZN8BalancerILh2EE6updateEv+0x2a87> 2a87: e8 00 00 00 00 callq 2a8c <_ZN8BalancerILh2EE6updateEv+0x2a8c> 2a8c: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2a94 <_ZN8BalancerILh2EE6updateEv+0x2a94> 2a93: 00 2a94: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2a9c <_ZN8BalancerILh2EE6updateEv+0x2a9c> 2a9b: 00 2a9c: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2aa4 <_ZN8BalancerILh2EE6updateEv+0x2aa4> 2aa3: 00 2aa4: 4d 89 ee mov %r13,%r14 2aa7: 49 c1 ee 03 shr $0x3,%r14 2aab: 41 80 be 00 80 ff 7f cmpb $0x0,0x7fff8000(%r14) 2ab2: 00 2ab3: 74 08 je 2abd <_ZN8BalancerILh2EE6updateEv+0x2abd> 2ab5: 4c 89 ef mov %r13,%rdi 2ab8: e8 00 00 00 00 callq 2abd <_ZN8BalancerILh2EE6updateEv+0x2abd> 2abd: 48 8d b3 80 f7 ff ff lea -0x880(%rbx),%rsi 2ac4: 4c 89 e7 mov %r12,%rdi 2ac7: e8 00 00 00 00 callq 2acc <_ZN8BalancerILh2EE6updateEv+0x2acc> 2acc: 48 89 83 40 fe ff ff mov %rax,-0x1c0(%rbx) 2ad3: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2adb <_ZN8BalancerILh2EE6updateEv+0x2adb> 2ada: 00 2adb: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2ae3 <_ZN8BalancerILh2EE6updateEv+0x2ae3> 2ae2: 00 2ae3: 4c 89 ee mov %r13,%rsi 2ae6: 48 8d bb 80 f8 ff ff lea -0x780(%rbx),%rdi 2aed: e8 00 00 00 00 callq 2af2 <_ZN8BalancerILh2EE6updateEv+0x2af2> 2af2: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2afa <_ZN8BalancerILh2EE6updateEv+0x2afa> 2af9: 00 2afa: 41 c6 86 00 80 ff 7f movb $0xf8,0x7fff8000(%r14) 2b01: f8 2b02: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2b0a <_ZN8BalancerILh2EE6updateEv+0x2b0a> 2b09: 00 for (auto& a : requesters) { 2b0a: 48 83 bd e0 e5 ff ff cmpq $0x0,-0x1a20(%rbp) 2b11: 00 2b12: 74 09 je 2b1d <_ZN8BalancerILh2EE6updateEv+0x2b1d> 2b14: f6 85 e0 e5 ff ff 07 testb $0x7,-0x1a20(%rbp) 2b1b: 74 13 je 2b30 <_ZN8BalancerILh2EE6updateEv+0x2b30> 2b1d: 48 8b b5 e0 e5 ff ff mov -0x1a20(%rbp),%rsi 2b24: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2b2b <_ZN8BalancerILh2EE6updateEv+0x2b2b> 2b2b: e8 00 00 00 00 callq 2b30 <_ZN8BalancerILh2EE6updateEv+0x2b30> 2b30: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2b38 <_ZN8BalancerILh2EE6updateEv+0x2b38> 2b37: 00 2b38: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2b40 <_ZN8BalancerILh2EE6updateEv+0x2b40> 2b3f: 00 2b40: 48 83 bd e8 e5 ff ff cmpq $0x0,-0x1a18(%rbp) 2b47: 00 2b48: 74 09 je 2b53 <_ZN8BalancerILh2EE6updateEv+0x2b53> 2b4a: f6 85 e8 e5 ff ff 07 testb $0x7,-0x1a18(%rbp) 2b51: 74 13 je 2b66 <_ZN8BalancerILh2EE6updateEv+0x2b66> 2b53: 48 8b b5 e8 e5 ff ff mov -0x1a18(%rbp),%rsi 2b5a: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2b61 <_ZN8BalancerILh2EE6updateEv+0x2b61> 2b61: e8 00 00 00 00 callq 2b66 <_ZN8BalancerILh2EE6updateEv+0x2b66> 2b66: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2b6e <_ZN8BalancerILh2EE6updateEv+0x2b6e> 2b6d: 00 2b6e: 4c 8d a3 80 fe ff ff lea -0x180(%rbx),%r12 2b75: 4c 89 e0 mov %r12,%rax 2b78: 48 c1 e8 03 shr $0x3,%rax 2b7c: c6 80 00 80 ff 7f 00 movb $0x0,0x7fff8000(%rax) 2b83: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2b8b <_ZN8BalancerILh2EE6updateEv+0x2b8b> 2b8a: 00 2b8b: 48 83 bd e8 e5 ff ff cmpq $0x0,-0x1a18(%rbp) 2b92: 00 2b93: 74 09 je 2b9e <_ZN8BalancerILh2EE6updateEv+0x2b9e> 2b95: f6 85 e8 e5 ff ff 07 testb $0x7,-0x1a18(%rbp) 2b9c: 74 13 je 2bb1 <_ZN8BalancerILh2EE6updateEv+0x2bb1> 2b9e: 48 8b b5 e8 e5 ff ff mov -0x1a18(%rbp),%rsi 2ba5: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2bac <_ZN8BalancerILh2EE6updateEv+0x2bac> 2bac: e8 00 00 00 00 callq 2bb1 <_ZN8BalancerILh2EE6updateEv+0x2bb1> 2bb1: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2bb9 <_ZN8BalancerILh2EE6updateEv+0x2bb9> 2bb8: 00 2bb9: 4c 89 e0 mov %r12,%rax 2bbc: 48 c1 e8 03 shr $0x3,%rax 2bc0: 80 b8 00 80 ff 7f 00 cmpb $0x0,0x7fff8000(%rax) 2bc7: 74 08 je 2bd1 <_ZN8BalancerILh2EE6updateEv+0x2bd1> 2bc9: 4c 89 e7 mov %r12,%rdi 2bcc: e8 00 00 00 00 callq 2bd1 <_ZN8BalancerILh2EE6updateEv+0x2bd1> 2bd1: 48 8b bd e8 e5 ff ff mov -0x1a18(%rbp),%rdi 2bd8: e8 00 00 00 00 callq 2bdd <_ZN8BalancerILh2EE6updateEv+0x2bdd> 2bdd: 48 89 83 80 fe ff ff mov %rax,-0x180(%rbx) 2be4: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2bec <_ZN8BalancerILh2EE6updateEv+0x2bec> 2beb: 00 2bec: 48 8d bb c0 fe ff ff lea -0x140(%rbx),%rdi 2bf3: 48 89 f8 mov %rdi,%rax 2bf6: 48 c1 e8 03 shr $0x3,%rax 2bfa: c6 80 00 80 ff 7f 00 movb $0x0,0x7fff8000(%rax) 2c01: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2c09 <_ZN8BalancerILh2EE6updateEv+0x2c09> 2c08: 00 2c09: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2c11 <_ZN8BalancerILh2EE6updateEv+0x2c11> 2c10: 00 2c11: 80 b8 00 80 ff 7f 00 cmpb $0x0,0x7fff8000(%rax) 2c18: 74 05 je 2c1f <_ZN8BalancerILh2EE6updateEv+0x2c1f> 2c1a: e8 00 00 00 00 callq 2c1f <_ZN8BalancerILh2EE6updateEv+0x2c1f> 2c1f: 48 8b bd e8 e5 ff ff mov -0x1a18(%rbp),%rdi 2c26: e8 00 00 00 00 callq 2c2b <_ZN8BalancerILh2EE6updateEv+0x2c2b> 2c2b: 48 89 83 c0 fe ff ff mov %rax,-0x140(%rbx) 2c32: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2c3a <_ZN8BalancerILh2EE6updateEv+0x2c3a> 2c39: 00 { return __lhs.base() != __rhs.base(); } 2c3a: 48 8d 83 80 fe ff ff lea -0x180(%rbx),%rax 2c41: 48 89 85 e0 e5 ff ff mov %rax,-0x1a20(%rbp) 2c48: 48 c1 e8 03 shr $0x3,%rax 2c4c: 48 89 85 c8 e5 ff ff mov %rax,-0x1a38(%rbp) operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, 2c53: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2c5b <_ZN8BalancerILh2EE6updateEv+0x2c5b> 2c5a: 00 2c5b: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2c63 <_ZN8BalancerILh2EE6updateEv+0x2c63> 2c62: 00 2c63: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2c6b <_ZN8BalancerILh2EE6updateEv+0x2c6b> 2c6a: 00 2c6b: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2c73 <_ZN8BalancerILh2EE6updateEv+0x2c73> 2c72: 00 2c73: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2c7b <_ZN8BalancerILh2EE6updateEv+0x2c7b> 2c7a: 00 { return __lhs.base() != __rhs.base(); } 2c7b: 48 8b 85 c8 e5 ff ff mov -0x1a38(%rbp),%rax 2c82: 80 b8 00 80 ff 7f 00 cmpb $0x0,0x7fff8000(%rax) 2c89: 74 0c je 2c97 <_ZN8BalancerILh2EE6updateEv+0x2c97> 2c8b: 48 8b bd e0 e5 ff ff mov -0x1a20(%rbp),%rdi 2c92: e8 00 00 00 00 callq 2c97 <_ZN8BalancerILh2EE6updateEv+0x2c97> 2c97: 48 8b 83 80 fe ff ff mov -0x180(%rbx),%rax 2c9e: 48 89 85 e8 e5 ff ff mov %rax,-0x1a18(%rbp) 2ca5: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2cad <_ZN8BalancerILh2EE6updateEv+0x2cad> 2cac: 00 2cad: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2cb5 <_ZN8BalancerILh2EE6updateEv+0x2cb5> 2cb4: 00 2cb5: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2cbd <_ZN8BalancerILh2EE6updateEv+0x2cbd> 2cbc: 00 2cbd: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2cc5 <_ZN8BalancerILh2EE6updateEv+0x2cc5> 2cc4: 00 2cc5: 48 8d bb c0 fe ff ff lea -0x140(%rbx),%rdi 2ccc: 48 89 f8 mov %rdi,%rax 2ccf: 48 c1 e8 03 shr $0x3,%rax 2cd3: 80 b8 00 80 ff 7f 00 cmpb $0x0,0x7fff8000(%rax) 2cda: 74 05 je 2ce1 <_ZN8BalancerILh2EE6updateEv+0x2ce1> 2cdc: e8 00 00 00 00 callq 2ce1 <_ZN8BalancerILh2EE6updateEv+0x2ce1> 2ce1: 48 8b 8d e8 e5 ff ff mov -0x1a18(%rbp),%rcx 2ce8: 48 3b 8b c0 fe ff ff cmp -0x140(%rbx),%rcx 2cef: 0f 84 cc 0f 00 00 je 3cc1 <_ZN8BalancerILh2EE6updateEv+0x3cc1> 2cf5: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2cfd <_ZN8BalancerILh2EE6updateEv+0x2cfd> 2cfc: 00 operator*() const _GLIBCXX_NOEXCEPT 2cfd: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2d05 <_ZN8BalancerILh2EE6updateEv+0x2d05> 2d04: 00 { return *_M_current; } 2d05: 48 83 bd e8 e5 ff ff cmpq $0x0,-0x1a18(%rbp) 2d0c: 00 2d0d: 74 09 je 2d18 <_ZN8BalancerILh2EE6updateEv+0x2d18> 2d0f: f6 85 e8 e5 ff ff 03 testb $0x3,-0x1a18(%rbp) 2d16: 74 13 je 2d2b <_ZN8BalancerILh2EE6updateEv+0x2d2b> 2d18: 48 8b b5 e8 e5 ff ff mov -0x1a18(%rbp),%rsi 2d1f: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2d26 <_ZN8BalancerILh2EE6updateEv+0x2d26> 2d26: e8 00 00 00 00 callq 2d2b <_ZN8BalancerILh2EE6updateEv+0x2d2b> 2d2b: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2d33 <_ZN8BalancerILh2EE6updateEv+0x2d33> 2d32: 00 2d33: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2d3b <_ZN8BalancerILh2EE6updateEv+0x2d3b> 2d3a: 00 2d3b: 48 83 bd e8 e5 ff ff cmpq $0x0,-0x1a18(%rbp) 2d42: 00 2d43: 74 09 je 2d4e <_ZN8BalancerILh2EE6updateEv+0x2d4e> 2d45: f6 85 e8 e5 ff ff 03 testb $0x3,-0x1a18(%rbp) 2d4c: 74 13 je 2d61 <_ZN8BalancerILh2EE6updateEv+0x2d61> 2d4e: 48 8b b5 e8 e5 ff ff mov -0x1a18(%rbp),%rsi 2d55: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2d5c <_ZN8BalancerILh2EE6updateEv+0x2d5c> 2d5c: e8 00 00 00 00 callq 2d61 <_ZN8BalancerILh2EE6updateEv+0x2d61> 2d61: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2d69 <_ZN8BalancerILh2EE6updateEv+0x2d69> 2d68: 00 a.granted = a.requested * scale; 2d69: 4c 8d ab 00 ff ff ff lea -0x100(%rbx),%r13 2d70: 4c 89 e8 mov %r13,%rax 2d73: 48 c1 e8 03 shr $0x3,%rax 2d77: c6 80 00 80 ff 7f 00 movb $0x0,0x7fff8000(%rax) 2d7e: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2d86 <_ZN8BalancerILh2EE6updateEv+0x2d86> 2d85: 00 2d86: 48 83 bd e8 e5 ff ff cmpq $0x0,-0x1a18(%rbp) 2d8d: 00 2d8e: 74 09 je 2d99 <_ZN8BalancerILh2EE6updateEv+0x2d99> 2d90: f6 85 e8 e5 ff ff 03 testb $0x3,-0x1a18(%rbp) 2d97: 74 13 je 2dac <_ZN8BalancerILh2EE6updateEv+0x2dac> 2d99: 48 8b b5 e8 e5 ff ff mov -0x1a18(%rbp),%rsi 2da0: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2da7 <_ZN8BalancerILh2EE6updateEv+0x2da7> 2da7: e8 00 00 00 00 callq 2dac <_ZN8BalancerILh2EE6updateEv+0x2dac> 2dac: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2db4 <_ZN8BalancerILh2EE6updateEv+0x2db4> 2db3: 00 2db4: 48 8b 85 e8 e5 ff ff mov -0x1a18(%rbp),%rax 2dbb: 4c 8d 60 04 lea 0x4(%rax),%r12 2dbf: 48 83 f8 fc cmp $0xfffffffffffffffc,%rax 2dc3: 72 12 jb 2dd7 <_ZN8BalancerILh2EE6updateEv+0x2dd7> 2dc5: 4c 89 e2 mov %r12,%rdx 2dc8: 48 89 c6 mov %rax,%rsi 2dcb: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2dd2 <_ZN8BalancerILh2EE6updateEv+0x2dd2> 2dd2: e8 00 00 00 00 callq 2dd7 <_ZN8BalancerILh2EE6updateEv+0x2dd7> 2dd7: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2ddf <_ZN8BalancerILh2EE6updateEv+0x2ddf> 2dde: 00 2ddf: 4d 85 e4 test %r12,%r12 2de2: 74 06 je 2dea <_ZN8BalancerILh2EE6updateEv+0x2dea> 2de4: 41 f6 c4 03 test $0x3,%r12b 2de8: 74 0f je 2df9 <_ZN8BalancerILh2EE6updateEv+0x2df9> 2dea: 4c 89 e6 mov %r12,%rsi 2ded: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2df4 <_ZN8BalancerILh2EE6updateEv+0x2df4> 2df4: e8 00 00 00 00 callq 2df9 <_ZN8BalancerILh2EE6updateEv+0x2df9> 2df9: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2e01 <_ZN8BalancerILh2EE6updateEv+0x2e01> 2e00: 00 CNL_DEFINE_BINARY_OPERATOR(*, multiply_op) 2e01: 4c 8d b3 c0 eb ff ff lea -0x1440(%rbx),%r14 2e08: 49 c1 ee 03 shr $0x3,%r14 2e0c: 41 c6 86 00 80 ff 7f movb $0x1,0x7fff8000(%r14) 2e13: 01 2e14: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2e1c <_ZN8BalancerILh2EE6updateEv+0x2e1c> 2e1b: 00 2e1c: 48 8b b5 c0 e5 ff ff mov -0x1a40(%rbp),%rsi 2e23: 4c 89 e7 mov %r12,%rdi 2e26: e8 00 00 00 00 callq 2e2b <_ZN8BalancerILh2EE6updateEv+0x2e2b> 2e2b: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2e33 <_ZN8BalancerILh2EE6updateEv+0x2e33> 2e32: 00 2e33: 41 c6 86 00 80 ff 7f movb $0xf8,0x7fff8000(%r14) 2e3a: f8 2e3b: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2e43 <_ZN8BalancerILh2EE6updateEv+0x2e43> 2e42: 00 2e43: 4c 89 ea mov %r13,%rdx 2e46: 48 c1 ea 03 shr $0x3,%rdx 2e4a: 80 ba 00 80 ff 7f 00 cmpb $0x0,0x7fff8000(%rdx) 2e51: 74 08 je 2e5b <_ZN8BalancerILh2EE6updateEv+0x2e5b> 2e53: 4c 89 ef mov %r13,%rdi 2e56: e8 00 00 00 00 callq 2e5b <_ZN8BalancerILh2EE6updateEv+0x2e5b> 2e5b: 48 89 83 00 ff ff ff mov %rax,-0x100(%rbx) 2e62: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2e6a <_ZN8BalancerILh2EE6updateEv+0x2e6a> 2e69: 00 2e6a: 48 83 bd e8 e5 ff ff cmpq $0x0,-0x1a18(%rbp) 2e71: 00 2e72: 74 09 je 2e7d <_ZN8BalancerILh2EE6updateEv+0x2e7d> 2e74: f6 85 e8 e5 ff ff 03 testb $0x3,-0x1a18(%rbp) 2e7b: 74 13 je 2e90 <_ZN8BalancerILh2EE6updateEv+0x2e90> 2e7d: 48 8b b5 e8 e5 ff ff mov -0x1a18(%rbp),%rsi 2e84: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2e8b <_ZN8BalancerILh2EE6updateEv+0x2e8b> 2e8b: e8 00 00 00 00 callq 2e90 <_ZN8BalancerILh2EE6updateEv+0x2e90> 2e90: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2e98 <_ZN8BalancerILh2EE6updateEv+0x2e98> 2e97: 00 2e98: 48 8b 85 e8 e5 ff ff mov -0x1a18(%rbp),%rax 2e9f: 4c 8d 60 08 lea 0x8(%rax),%r12 2ea3: 48 83 f8 f8 cmp $0xfffffffffffffff8,%rax 2ea7: 72 12 jb 2ebb <_ZN8BalancerILh2EE6updateEv+0x2ebb> 2ea9: 4c 89 e2 mov %r12,%rdx 2eac: 48 89 c6 mov %rax,%rsi 2eaf: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2eb6 <_ZN8BalancerILh2EE6updateEv+0x2eb6> 2eb6: e8 00 00 00 00 callq 2ebb <_ZN8BalancerILh2EE6updateEv+0x2ebb> 2ebb: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2ec3 <_ZN8BalancerILh2EE6updateEv+0x2ec3> 2ec2: 00 2ec3: 4d 85 e4 test %r12,%r12 2ec6: 74 06 je 2ece <_ZN8BalancerILh2EE6updateEv+0x2ece> 2ec8: 41 f6 c4 03 test $0x3,%r12b 2ecc: 74 0f je 2edd <_ZN8BalancerILh2EE6updateEv+0x2edd> 2ece: 4c 89 e6 mov %r12,%rsi 2ed1: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2ed8 <_ZN8BalancerILh2EE6updateEv+0x2ed8> 2ed8: e8 00 00 00 00 callq 2edd <_ZN8BalancerILh2EE6updateEv+0x2edd> 2edd: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2ee5 <_ZN8BalancerILh2EE6updateEv+0x2ee5> 2ee4: 00 2ee5: 4c 89 ee mov %r13,%rsi 2ee8: 4c 89 e7 mov %r12,%rdi 2eeb: e8 00 00 00 00 callq 2ef0 <_ZN8BalancerILh2EE6updateEv+0x2ef0> 2ef0: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2ef8 <_ZN8BalancerILh2EE6updateEv+0x2ef8> 2ef7: 00 2ef8: 49 c1 ed 03 shr $0x3,%r13 2efc: 41 c6 85 00 80 ff 7f movb $0xf8,0x7fff8000(%r13) 2f03: f8 2f04: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2f0c <_ZN8BalancerILh2EE6updateEv+0x2f0c> 2f0b: 00 a.granted += budgetLeftPerActuator; 2f0c: 48 83 bd e8 e5 ff ff cmpq $0x0,-0x1a18(%rbp) 2f13: 00 2f14: 74 09 je 2f1f <_ZN8BalancerILh2EE6updateEv+0x2f1f> 2f16: f6 85 e8 e5 ff ff 03 testb $0x3,-0x1a18(%rbp) 2f1d: 74 13 je 2f32 <_ZN8BalancerILh2EE6updateEv+0x2f32> 2f1f: 48 8b b5 e8 e5 ff ff mov -0x1a18(%rbp),%rsi 2f26: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2f2d <_ZN8BalancerILh2EE6updateEv+0x2f2d> 2f2d: e8 00 00 00 00 callq 2f32 <_ZN8BalancerILh2EE6updateEv+0x2f32> 2f32: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2f3a <_ZN8BalancerILh2EE6updateEv+0x2f3a> 2f39: 00 2f3a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2f42 <_ZN8BalancerILh2EE6updateEv+0x2f42> 2f41: 00 2f42: 4d 85 e4 test %r12,%r12 2f45: 74 06 je 2f4d <_ZN8BalancerILh2EE6updateEv+0x2f4d> 2f47: 41 f6 c4 03 test $0x3,%r12b 2f4b: 74 0f je 2f5c <_ZN8BalancerILh2EE6updateEv+0x2f5c> 2f4d: 4c 89 e6 mov %r12,%rsi 2f50: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2f57 <_ZN8BalancerILh2EE6updateEv+0x2f57> 2f57: e8 00 00 00 00 callq 2f5c <_ZN8BalancerILh2EE6updateEv+0x2f5c> 2f5c: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2f64 <_ZN8BalancerILh2EE6updateEv+0x2f64> 2f63: 00 CNL_DEFINE_COMPOUND_ASSIGNMENT_OPERATOR(+=, assign_add_op) 2f64: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2f6c <_ZN8BalancerILh2EE6updateEv+0x2f6c> 2f6b: 00 2f6c: 48 8d 83 c0 f2 ff ff lea -0xd40(%rbx),%rax 2f73: 48 c1 e8 03 shr $0x3,%rax 2f77: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 2f7e: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2f86 <_ZN8BalancerILh2EE6updateEv+0x2f86> 2f85: 00 constexpr LhsOperand& operator()(LhsOperand& lhs, RhsOperand const& rhs) const 2f86: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2f8e <_ZN8BalancerILh2EE6updateEv+0x2f8e> 2f8d: 00 binary_operator<Tag, typename Operator::binary, LhsOperand, RhsOperand>{}(lhs, rhs)); 2f8e: 48 8d 83 40 fb ff ff lea -0x4c0(%rbx),%rax 2f95: 48 c1 e8 03 shr $0x3,%rax 2f99: c6 80 00 80 ff 7f 04 movb $0x4,0x7fff8000(%rax) 2fa0: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2fa8 <_ZN8BalancerILh2EE6updateEv+0x2fa8> 2fa7: 00 2fa8: 48 8d 83 40 ff ff ff lea -0xc0(%rbx),%rax 2faf: 48 c1 e8 03 shr $0x3,%rax 2fb3: c6 80 00 80 ff 7f 00 movb $0x0,0x7fff8000(%rax) 2fba: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2fc2 <_ZN8BalancerILh2EE6updateEv+0x2fc2> 2fc1: 00 2fc2: 48 8d 83 00 f3 ff ff lea -0xd00(%rbx),%rax 2fc9: 48 c1 e8 03 shr $0x3,%rax 2fcd: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 2fd4: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2fdc <_ZN8BalancerILh2EE6updateEv+0x2fdc> 2fdb: 00 2fdc: 4d 85 e4 test %r12,%r12 2fdf: 74 06 je 2fe7 <_ZN8BalancerILh2EE6updateEv+0x2fe7> 2fe1: 41 f6 c4 03 test $0x3,%r12b 2fe5: 74 0f je 2ff6 <_ZN8BalancerILh2EE6updateEv+0x2ff6> 2fe7: 4c 89 e6 mov %r12,%rsi 2fea: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 2ff1 <_ZN8BalancerILh2EE6updateEv+0x2ff1> 2ff1: e8 00 00 00 00 callq 2ff6 <_ZN8BalancerILh2EE6updateEv+0x2ff6> 2ff6: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 2ffe <_ZN8BalancerILh2EE6updateEv+0x2ffe> 2ffd: 00 private: static constexpr int _common_exponent = _impl::min(LhsExponent, RhsExponent); static constexpr int _lhs_left_shift = LhsExponent-_common_exponent; static constexpr int _rhs_left_shift = RhsExponent-_common_exponent; public: CNL_NODISCARD constexpr auto operator()( 2ffe: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3006 <_ZN8BalancerILh2EE6updateEv+0x3006> 3005: 00 { return Operator{}( _impl::from_rep<scaled_integer<LhsRep, power<_common_exponent, Radix>>>( _impl::scale<_lhs_left_shift, Radix>(_impl::to_rep(lhs))), _impl::from_rep<scaled_integer<RhsRep, power<_common_exponent, Radix>>>( _impl::scale<_rhs_left_shift, Radix>(_impl::to_rep(rhs)))); 3006: 48 8d 83 40 f3 ff ff lea -0xcc0(%rbx),%rax 300d: 48 c1 e8 03 shr $0x3,%rax 3011: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 3018: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3020 <_ZN8BalancerILh2EE6updateEv+0x3020> 301f: 00 _impl::from_rep<scaled_integer<RhsRep, power<_common_exponent, Radix>>>( 3020: 4c 8d ab 80 fb ff ff lea -0x480(%rbx),%r13 3027: 4c 89 e8 mov %r13,%rax 302a: 48 c1 e8 03 shr $0x3,%rax 302e: c6 80 00 80 ff 7f 04 movb $0x4,0x7fff8000(%rax) 3035: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 303d <_ZN8BalancerILh2EE6updateEv+0x303d> 303c: 00 _impl::scale<_rhs_left_shift, Radix>(_impl::to_rep(rhs)))); 303d: 48 8d 93 c0 fb ff ff lea -0x440(%rbx),%rdx 3044: 48 89 d1 mov %rdx,%rcx 3047: 48 89 95 a0 e5 ff ff mov %rdx,-0x1a60(%rbp) 304e: 48 c1 e9 03 shr $0x3,%rcx 3052: c6 81 00 80 ff 7f 04 movb $0x4,0x7fff8000(%rcx) 3059: 48 89 8d a8 e5 ff ff mov %rcx,-0x1a58(%rbp) 3060: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3068 <_ZN8BalancerILh2EE6updateEv+0x3068> 3067: 00 3068: 48 8d 83 c0 f4 ff ff lea -0xb40(%rbx),%rax 306f: 48 c1 e8 03 shr $0x3,%rax 3073: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 307a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3082 <_ZN8BalancerILh2EE6updateEv+0x3082> 3081: 00 3082: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 308a <_ZN8BalancerILh2EE6updateEv+0x308a> 3089: 00 308a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3092 <_ZN8BalancerILh2EE6updateEv+0x3092> 3091: 00 CNL_NODISCARD constexpr Rep const& operator()(Derived const& number) const { 3092: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 309a <_ZN8BalancerILh2EE6updateEv+0x309a> 3099: 00 309a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 30a2 <_ZN8BalancerILh2EE6updateEv+0x30a2> 30a1: 00 30a2: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 30aa <_ZN8BalancerILh2EE6updateEv+0x30aa> 30a9: 00 30aa: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 30b1: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 30b9 <_ZN8BalancerILh2EE6updateEv+0x30b9> 30b8: 00 30b9: 4c 8d b3 80 f4 ff ff lea -0xb80(%rbx),%r14 30c0: 49 c1 ee 03 shr $0x3,%r14 30c4: 41 c6 86 00 80 ff 7f movb $0x1,0x7fff8000(%r14) 30cb: 01 30cc: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 30d4 <_ZN8BalancerILh2EE6updateEv+0x30d4> 30d3: 00 30d4: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 30dc <_ZN8BalancerILh2EE6updateEv+0x30dc> 30db: 00 30dc: 48 8b bd d0 e5 ff ff mov -0x1a30(%rbp),%rdi 30e3: e8 00 00 00 00 callq 30e8 <_ZN8BalancerILh2EE6updateEv+0x30e8> 30e8: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 30f0 <_ZN8BalancerILh2EE6updateEv+0x30f0> 30ef: 00 30f0: 41 c6 86 00 80 ff 7f movb $0xf8,0x7fff8000(%r14) 30f7: f8 30f8: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3100 <_ZN8BalancerILh2EE6updateEv+0x3100> 30ff: 00 3100: 48 8b 8d a8 e5 ff ff mov -0x1a58(%rbp),%rcx 3107: 8a 89 00 80 ff 7f mov 0x7fff8000(%rcx),%cl 310d: 84 c9 test %cl,%cl 310f: 74 14 je 3125 <_ZN8BalancerILh2EE6updateEv+0x3125> 3111: 80 f9 03 cmp $0x3,%cl 3114: 48 8b 95 a0 e5 ff ff mov -0x1a60(%rbp),%rdx 311b: 7f 08 jg 3125 <_ZN8BalancerILh2EE6updateEv+0x3125> 311d: 48 89 d7 mov %rdx,%rdi 3120: e8 00 00 00 00 callq 3125 <_ZN8BalancerILh2EE6updateEv+0x3125> 3125: 89 83 c0 fb ff ff mov %eax,-0x440(%rbx) 312b: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3133 <_ZN8BalancerILh2EE6updateEv+0x3133> 3132: 00 3133: 4c 8d b3 40 f4 ff ff lea -0xbc0(%rbx),%r14 313a: 49 c1 ee 03 shr $0x3,%r14 313e: 41 c6 86 00 80 ff 7f movb $0x1,0x7fff8000(%r14) 3145: 01 3146: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 314e <_ZN8BalancerILh2EE6updateEv+0x314e> 314d: 00 314e: 48 8d bb c0 fb ff ff lea -0x440(%rbx),%rdi 3155: e8 00 00 00 00 callq 315a <_ZN8BalancerILh2EE6updateEv+0x315a> 315a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3162 <_ZN8BalancerILh2EE6updateEv+0x3162> 3161: 00 3162: 41 c6 86 00 80 ff 7f movb $0xf8,0x7fff8000(%r14) 3169: f8 316a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3172 <_ZN8BalancerILh2EE6updateEv+0x3172> 3171: 00 _impl::from_rep<scaled_integer<RhsRep, power<_common_exponent, Radix>>>( 3172: 4c 89 ea mov %r13,%rdx 3175: 48 c1 ea 03 shr $0x3,%rdx 3179: 8a 92 00 80 ff 7f mov 0x7fff8000(%rdx),%dl 317f: 84 d2 test %dl,%dl 3181: 74 0d je 3190 <_ZN8BalancerILh2EE6updateEv+0x3190> 3183: 80 fa 03 cmp $0x3,%dl 3186: 7f 08 jg 3190 <_ZN8BalancerILh2EE6updateEv+0x3190> 3188: 4c 89 ef mov %r13,%rdi 318b: e8 00 00 00 00 callq 3190 <_ZN8BalancerILh2EE6updateEv+0x3190> 3190: 89 83 80 fb ff ff mov %eax,-0x480(%rbx) 3196: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 319e <_ZN8BalancerILh2EE6updateEv+0x319e> 319d: 00 _impl::from_rep<scaled_integer<LhsRep, power<_common_exponent, Radix>>>( 319e: 48 8d 83 00 fc ff ff lea -0x400(%rbx),%rax 31a5: 48 c1 e8 03 shr $0x3,%rax 31a9: c6 80 00 80 ff 7f 04 movb $0x4,0x7fff8000(%rax) 31b0: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 31b8 <_ZN8BalancerILh2EE6updateEv+0x31b8> 31b7: 00 _impl::scale<_lhs_left_shift, Radix>(_impl::to_rep(lhs))), 31b8: 48 8d 83 40 fc ff ff lea -0x3c0(%rbx),%rax 31bf: 48 c1 e8 03 shr $0x3,%rax 31c3: c6 80 00 80 ff 7f 04 movb $0x4,0x7fff8000(%rax) 31ca: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 31d2 <_ZN8BalancerILh2EE6updateEv+0x31d2> 31d1: 00 31d2: 4c 8d ab 00 f4 ff ff lea -0xc00(%rbx),%r13 31d9: 4c 89 e8 mov %r13,%rax 31dc: 48 c1 e8 03 shr $0x3,%rax 31e0: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 31e7: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 31ef <_ZN8BalancerILh2EE6updateEv+0x31ef> 31ee: 00 31ef: 4d 85 e4 test %r12,%r12 31f2: 74 06 je 31fa <_ZN8BalancerILh2EE6updateEv+0x31fa> 31f4: 41 f6 c4 03 test $0x3,%r12b 31f8: 74 0f je 3209 <_ZN8BalancerILh2EE6updateEv+0x3209> 31fa: 4c 89 e6 mov %r12,%rsi 31fd: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 3204 <_ZN8BalancerILh2EE6updateEv+0x3204> 3204: e8 00 00 00 00 callq 3209 <_ZN8BalancerILh2EE6updateEv+0x3209> 3209: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3211 <_ZN8BalancerILh2EE6updateEv+0x3211> 3210: 00 3211: 4d 85 e4 test %r12,%r12 3214: 74 06 je 321c <_ZN8BalancerILh2EE6updateEv+0x321c> 3216: 41 f6 c4 03 test $0x3,%r12b 321a: 74 0f je 322b <_ZN8BalancerILh2EE6updateEv+0x322b> 321c: 4c 89 e6 mov %r12,%rsi 321f: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 3226 <_ZN8BalancerILh2EE6updateEv+0x3226> 3226: e8 00 00 00 00 callq 322b <_ZN8BalancerILh2EE6updateEv+0x322b> 322b: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3233 <_ZN8BalancerILh2EE6updateEv+0x3233> 3232: 00 return number._rep; 3233: 4d 85 e4 test %r12,%r12 3236: 74 06 je 323e <_ZN8BalancerILh2EE6updateEv+0x323e> 3238: 41 f6 c4 03 test $0x3,%r12b 323c: 74 0f je 324d <_ZN8BalancerILh2EE6updateEv+0x324d> 323e: 4c 89 e6 mov %r12,%rsi 3241: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 3248 <_ZN8BalancerILh2EE6updateEv+0x3248> 3248: e8 00 00 00 00 callq 324d <_ZN8BalancerILh2EE6updateEv+0x324d> 324d: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3255 <_ZN8BalancerILh2EE6updateEv+0x3255> 3254: 00 3255: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 325d <_ZN8BalancerILh2EE6updateEv+0x325d> 325c: 00 325d: 4d 85 e4 test %r12,%r12 3260: 74 06 je 3268 <_ZN8BalancerILh2EE6updateEv+0x3268> 3262: 41 f6 c4 03 test $0x3,%r12b 3266: 74 0f je 3277 <_ZN8BalancerILh2EE6updateEv+0x3277> 3268: 4c 89 e6 mov %r12,%rsi 326b: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 3272 <_ZN8BalancerILh2EE6updateEv+0x3272> 3272: e8 00 00 00 00 callq 3277 <_ZN8BalancerILh2EE6updateEv+0x3277> 3277: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 327f <_ZN8BalancerILh2EE6updateEv+0x327f> 327e: 00 327f: 49 c1 ed 03 shr $0x3,%r13 3283: 41 c6 85 00 80 ff 7f movb $0xf8,0x7fff8000(%r13) 328a: f8 328b: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3293 <_ZN8BalancerILh2EE6updateEv+0x3293> 3292: 00 3293: 48 8d 83 c0 f3 ff ff lea -0xc40(%rbx),%rax 329a: 48 c1 e8 03 shr $0x3,%rax 329e: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 32a5: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 32ad <_ZN8BalancerILh2EE6updateEv+0x32ad> 32ac: 00 32ad: 4d 85 e4 test %r12,%r12 32b0: 74 06 je 32b8 <_ZN8BalancerILh2EE6updateEv+0x32b8> 32b2: 41 f6 c4 03 test $0x3,%r12b 32b6: 74 0f je 32c7 <_ZN8BalancerILh2EE6updateEv+0x32c7> 32b8: 4c 89 e6 mov %r12,%rsi 32bb: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 32c2 <_ZN8BalancerILh2EE6updateEv+0x32c2> 32c2: e8 00 00 00 00 callq 32c7 <_ZN8BalancerILh2EE6updateEv+0x32c7> 32c7: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 32cf <_ZN8BalancerILh2EE6updateEv+0x32cf> 32ce: 00 CNL_NODISCARD constexpr auto operator()(_value_type const& s) const 32cf: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 32d7 <_ZN8BalancerILh2EE6updateEv+0x32d7> 32d6: 00 return _impl::default_scale<Digits, Radix, _value_type>{}(s); 32d7: 4c 8d b3 c0 fc ff ff lea -0x340(%rbx),%r14 32de: 4c 89 f0 mov %r14,%rax 32e1: 48 c1 e8 03 shr $0x3,%rax 32e5: c6 80 00 80 ff 7f 04 movb $0x4,0x7fff8000(%rax) 32ec: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 32f4 <_ZN8BalancerILh2EE6updateEv+0x32f4> 32f3: 00 32f4: 48 8d 43 80 lea -0x80(%rbx),%rax 32f8: 48 c1 e8 03 shr $0x3,%rax 32fc: c6 80 00 80 ff 7f 00 movb $0x0,0x7fff8000(%rax) 3303: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 330b <_ZN8BalancerILh2EE6updateEv+0x330b> 330a: 00 330b: 48 8d 83 40 f5 ff ff lea -0xac0(%rbx),%rax 3312: 48 c1 e8 03 shr $0x3,%rax 3316: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 331d: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3325 <_ZN8BalancerILh2EE6updateEv+0x3325> 3324: 00 3325: 4d 85 e4 test %r12,%r12 3328: 74 06 je 3330 <_ZN8BalancerILh2EE6updateEv+0x3330> 332a: 41 f6 c4 03 test $0x3,%r12b 332e: 74 0f je 333f <_ZN8BalancerILh2EE6updateEv+0x333f> 3330: 4c 89 e6 mov %r12,%rsi 3333: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 333a <_ZN8BalancerILh2EE6updateEv+0x333a> 333a: e8 00 00 00 00 callq 333f <_ZN8BalancerILh2EE6updateEv+0x333f> 333f: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3347 <_ZN8BalancerILh2EE6updateEv+0x3347> 3346: 00 CNL_NODISCARD constexpr auto operator()(S const& s) const 3347: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 334f <_ZN8BalancerILh2EE6updateEv+0x334f> 334e: 00 return s*power_value<S, Digits, Radix>(); 334f: 48 8d bb 00 fd ff ff lea -0x300(%rbx),%rdi 3356: 48 89 f8 mov %rdi,%rax 3359: 48 c1 e8 03 shr $0x3,%rax 335d: c6 80 00 80 ff 7f 04 movb $0x4,0x7fff8000(%rax) 3364: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 336c <_ZN8BalancerILh2EE6updateEv+0x336c> 336b: 00 336c: 8a 80 00 80 ff 7f mov 0x7fff8000(%rax),%al 3372: 84 c0 test %al,%al 3374: 74 09 je 337f <_ZN8BalancerILh2EE6updateEv+0x337f> 3376: 3c 03 cmp $0x3,%al 3378: 7f 05 jg 337f <_ZN8BalancerILh2EE6updateEv+0x337f> 337a: e8 00 00 00 00 callq 337f <_ZN8BalancerILh2EE6updateEv+0x337f> 337f: c7 83 00 fd ff ff 00 movl $0x100,-0x300(%rbx) 3386: 01 00 00 3389: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3391 <_ZN8BalancerILh2EE6updateEv+0x3391> 3390: 00 CNL_DEFINE_BINARY_OPERATOR(*, multiply_op) 3391: 48 8d 83 c0 f5 ff ff lea -0xa40(%rbx),%rax 3398: 48 c1 e8 03 shr $0x3,%rax 339c: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 33a3: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 33ab <_ZN8BalancerILh2EE6updateEv+0x33ab> 33aa: 00 33ab: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 33b3 <_ZN8BalancerILh2EE6updateEv+0x33b3> 33b2: 00 33b3: 4d 85 e4 test %r12,%r12 33b6: 74 06 je 33be <_ZN8BalancerILh2EE6updateEv+0x33be> 33b8: 41 f6 c4 03 test $0x3,%r12b 33bc: 74 0f je 33cd <_ZN8BalancerILh2EE6updateEv+0x33cd> 33be: 4c 89 e6 mov %r12,%rsi 33c1: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 33c8 <_ZN8BalancerILh2EE6updateEv+0x33c8> 33c8: e8 00 00 00 00 callq 33cd <_ZN8BalancerILh2EE6updateEv+0x33cd> 33cd: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 33d5 <_ZN8BalancerILh2EE6updateEv+0x33d5> 33d4: 00 CNL_NODISCARD constexpr auto operator()(lhs_type const& lhs, rhs_type const& rhs) const 33d5: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 33dd <_ZN8BalancerILh2EE6updateEv+0x33dd> 33dc: 00 cnl::binary_operator<OverflowTag, Operator, LhsRep, RhsRep>{}( 33dd: 48 8d 43 c0 lea -0x40(%rbx),%rax 33e1: 48 c1 e8 03 shr $0x3,%rax 33e5: c6 80 00 80 ff 7f 00 movb $0x0,0x7fff8000(%rax) 33ec: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 33f4 <_ZN8BalancerILh2EE6updateEv+0x33f4> 33f3: 00 33f4: 48 8d 83 00 f6 ff ff lea -0xa00(%rbx),%rax 33fb: 48 c1 e8 03 shr $0x3,%rax 33ff: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 3406: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 340e <_ZN8BalancerILh2EE6updateEv+0x340e> 340d: 00 340e: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3416 <_ZN8BalancerILh2EE6updateEv+0x3416> 3415: 00 3416: 48 8d 83 00 f7 ff ff lea -0x900(%rbx),%rax 341d: 48 c1 e8 03 shr $0x3,%rax 3421: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 3428: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3430 <_ZN8BalancerILh2EE6updateEv+0x3430> 342f: 00 3430: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3438 <_ZN8BalancerILh2EE6updateEv+0x3438> 3437: 00 3438: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3440 <_ZN8BalancerILh2EE6updateEv+0x3440> 343f: 00 CNL_NODISCARD constexpr Rep const& operator()(Derived const& number) const { 3440: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3448 <_ZN8BalancerILh2EE6updateEv+0x3448> 3447: 00 3448: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3450 <_ZN8BalancerILh2EE6updateEv+0x3450> 344f: 00 3450: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3458 <_ZN8BalancerILh2EE6updateEv+0x3458> 3457: 00 3458: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 345f: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3467 <_ZN8BalancerILh2EE6updateEv+0x3467> 3466: 00 3467: 4d 85 e4 test %r12,%r12 346a: 74 06 je 3472 <_ZN8BalancerILh2EE6updateEv+0x3472> 346c: 41 f6 c4 03 test $0x3,%r12b 3470: 74 0f je 3481 <_ZN8BalancerILh2EE6updateEv+0x3481> 3472: 4c 89 e6 mov %r12,%rsi 3475: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 347c <_ZN8BalancerILh2EE6updateEv+0x347c> 347c: e8 00 00 00 00 callq 3481 <_ZN8BalancerILh2EE6updateEv+0x3481> 3481: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3489 <_ZN8BalancerILh2EE6updateEv+0x3489> 3488: 00 3489: 4c 8d ab c0 f6 ff ff lea -0x940(%rbx),%r13 3490: 4c 89 e8 mov %r13,%rax 3493: 48 c1 e8 03 shr $0x3,%rax 3497: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 349e: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 34a6 <_ZN8BalancerILh2EE6updateEv+0x34a6> 34a5: 00 34a6: 4d 85 e4 test %r12,%r12 34a9: 74 06 je 34b1 <_ZN8BalancerILh2EE6updateEv+0x34b1> 34ab: 41 f6 c4 03 test $0x3,%r12b 34af: 74 0f je 34c0 <_ZN8BalancerILh2EE6updateEv+0x34c0> 34b1: 4c 89 e6 mov %r12,%rsi 34b4: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 34bb <_ZN8BalancerILh2EE6updateEv+0x34bb> 34bb: e8 00 00 00 00 callq 34c0 <_ZN8BalancerILh2EE6updateEv+0x34c0> 34c0: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 34c8 <_ZN8BalancerILh2EE6updateEv+0x34c8> 34c7: 00 34c8: 4d 85 e4 test %r12,%r12 34cb: 74 06 je 34d3 <_ZN8BalancerILh2EE6updateEv+0x34d3> 34cd: 41 f6 c4 03 test $0x3,%r12b 34d1: 74 0f je 34e2 <_ZN8BalancerILh2EE6updateEv+0x34e2> 34d3: 4c 89 e6 mov %r12,%rsi 34d6: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 34dd <_ZN8BalancerILh2EE6updateEv+0x34dd> 34dd: e8 00 00 00 00 callq 34e2 <_ZN8BalancerILh2EE6updateEv+0x34e2> 34e2: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 34ea <_ZN8BalancerILh2EE6updateEv+0x34ea> 34e9: 00 return number._rep; 34ea: 4d 85 e4 test %r12,%r12 34ed: 74 06 je 34f5 <_ZN8BalancerILh2EE6updateEv+0x34f5> 34ef: 41 f6 c4 03 test $0x3,%r12b 34f3: 74 0f je 3504 <_ZN8BalancerILh2EE6updateEv+0x3504> 34f5: 4c 89 e6 mov %r12,%rsi 34f8: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 34ff <_ZN8BalancerILh2EE6updateEv+0x34ff> 34ff: e8 00 00 00 00 callq 3504 <_ZN8BalancerILh2EE6updateEv+0x3504> 3504: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 350c <_ZN8BalancerILh2EE6updateEv+0x350c> 350b: 00 350c: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3514 <_ZN8BalancerILh2EE6updateEv+0x3514> 3513: 00 3514: 4d 85 e4 test %r12,%r12 3517: 74 06 je 351f <_ZN8BalancerILh2EE6updateEv+0x351f> 3519: 41 f6 c4 03 test $0x3,%r12b 351d: 74 0f je 352e <_ZN8BalancerILh2EE6updateEv+0x352e> 351f: 4c 89 e6 mov %r12,%rsi 3522: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 3529 <_ZN8BalancerILh2EE6updateEv+0x3529> 3529: e8 00 00 00 00 callq 352e <_ZN8BalancerILh2EE6updateEv+0x352e> 352e: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3536 <_ZN8BalancerILh2EE6updateEv+0x3536> 3535: 00 3536: 49 c1 ed 03 shr $0x3,%r13 353a: 41 c6 85 00 80 ff 7f movb $0xf8,0x7fff8000(%r13) 3541: f8 3542: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 354a <_ZN8BalancerILh2EE6updateEv+0x354a> 3549: 00 354a: 48 8d 93 80 f6 ff ff lea -0x980(%rbx),%rdx 3551: 48 c1 ea 03 shr $0x3,%rdx 3555: c6 82 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rdx) 355c: 48 89 95 a0 e5 ff ff mov %rdx,-0x1a60(%rbp) 3563: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 356b <_ZN8BalancerILh2EE6updateEv+0x356b> 356a: 00 CNL_NODISCARD constexpr auto operator()(Lhs const& lhs, Rhs const& rhs) const -> decltype(lhs*rhs) 356b: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3573 <_ZN8BalancerILh2EE6updateEv+0x3573> 3572: 00 3573: 48 8d 8b 40 f7 ff ff lea -0x8c0(%rbx),%rcx 357a: 48 c1 e9 03 shr $0x3,%rcx 357e: c6 81 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rcx) 3585: 48 89 8d a8 e5 ff ff mov %rcx,-0x1a58(%rbp) 358c: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3594 <_ZN8BalancerILh2EE6updateEv+0x3594> 3593: 00 3594: 4c 8d ab 00 fd ff ff lea -0x300(%rbx),%r13 359b: 4c 89 e7 mov %r12,%rdi 359e: 4c 89 ee mov %r13,%rsi 35a1: e8 00 00 00 00 callq 35a6 <_ZN8BalancerILh2EE6updateEv+0x35a6> 35a6: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 35ae <_ZN8BalancerILh2EE6updateEv+0x35ae> 35ad: 00 35ae: 48 8b 8d a8 e5 ff ff mov -0x1a58(%rbp),%rcx 35b5: c6 81 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rcx) 35bc: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 35c4 <_ZN8BalancerILh2EE6updateEv+0x35c4> 35c3: 00 35c4: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 35cc <_ZN8BalancerILh2EE6updateEv+0x35cc> 35cb: 00 35cc: 48 8b 95 a0 e5 ff ff mov -0x1a60(%rbp),%rdx 35d3: c6 82 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rdx) 35da: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 35e2 <_ZN8BalancerILh2EE6updateEv+0x35e2> 35e1: 00 35e2: 48 8d 7b c0 lea -0x40(%rbx),%rdi 35e6: 48 89 f9 mov %rdi,%rcx 35e9: 48 c1 e9 03 shr $0x3,%rcx 35ed: 80 b9 00 80 ff 7f 00 cmpb $0x0,0x7fff8000(%rcx) 35f4: 74 05 je 35fb <_ZN8BalancerILh2EE6updateEv+0x35fb> 35f6: e8 00 00 00 00 callq 35fb <_ZN8BalancerILh2EE6updateEv+0x35fb> 35fb: 48 89 8d a0 e5 ff ff mov %rcx,-0x1a60(%rbp) 3602: 48 89 43 c0 mov %rax,-0x40(%rbx) 3606: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 360e <_ZN8BalancerILh2EE6updateEv+0x360e> 360d: 00 360e: 48 8d 93 40 f6 ff ff lea -0x9c0(%rbx),%rdx 3615: 48 c1 ea 03 shr $0x3,%rdx 3619: c6 82 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rdx) 3620: 48 89 95 a8 e5 ff ff mov %rdx,-0x1a58(%rbp) 3627: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 362f <_ZN8BalancerILh2EE6updateEv+0x362f> 362e: 00 362f: e8 00 00 00 00 callq 3634 <_ZN8BalancerILh2EE6updateEv+0x3634> 3634: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 363c <_ZN8BalancerILh2EE6updateEv+0x363c> 363b: 00 363c: 48 8b 95 a8 e5 ff ff mov -0x1a58(%rbp),%rdx 3643: c6 82 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rdx) 364a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3652 <_ZN8BalancerILh2EE6updateEv+0x3652> 3651: 00 3652: 48 8b 8d a0 e5 ff ff mov -0x1a60(%rbp),%rcx 3659: c6 81 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rcx) 3660: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3668 <_ZN8BalancerILh2EE6updateEv+0x3668> 3667: 00 3668: 48 8d 93 00 f6 ff ff lea -0xa00(%rbx),%rdx 366f: 48 c1 ea 03 shr $0x3,%rdx 3673: c6 82 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rdx) 367a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3682 <_ZN8BalancerILh2EE6updateEv+0x3682> 3681: 00 3682: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 368a <_ZN8BalancerILh2EE6updateEv+0x368a> 3689: 00 368a: 48 8d 93 c0 f5 ff ff lea -0xa40(%rbx),%rdx 3691: 48 c1 ea 03 shr $0x3,%rdx 3695: c6 82 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rdx) 369c: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 36a4 <_ZN8BalancerILh2EE6updateEv+0x36a4> 36a3: 00 36a4: 49 c1 ed 03 shr $0x3,%r13 36a8: 41 c6 85 00 80 ff 7f movb $0xf8,0x7fff8000(%r13) 36af: f8 36b0: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 36b8 <_ZN8BalancerILh2EE6updateEv+0x36b8> 36b7: 00 return _impl::default_scale<Digits, Radix, _value_type>{}(s); 36b8: 4c 8d 6b 80 lea -0x80(%rbx),%r13 36bc: 4c 89 ea mov %r13,%rdx 36bf: 48 c1 ea 03 shr $0x3,%rdx 36c3: 80 ba 00 80 ff 7f 00 cmpb $0x0,0x7fff8000(%rdx) 36ca: 74 08 je 36d4 <_ZN8BalancerILh2EE6updateEv+0x36d4> 36cc: 4c 89 ef mov %r13,%rdi 36cf: e8 00 00 00 00 callq 36d4 <_ZN8BalancerILh2EE6updateEv+0x36d4> 36d4: 48 89 43 80 mov %rax,-0x80(%rbx) 36d8: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 36e0 <_ZN8BalancerILh2EE6updateEv+0x36e0> 36df: 00 36e0: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 36e8 <_ZN8BalancerILh2EE6updateEv+0x36e8> 36e7: 00 constexpr overflow_integer(overflow_integer<RhsRep, RhsOverflowTag> const& rhs) 36e8: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 36f0 <_ZN8BalancerILh2EE6updateEv+0x36f0> 36ef: 00 36f0: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 36f8 <_ZN8BalancerILh2EE6updateEv+0x36f8> 36f7: 00 36f8: 48 8d 83 80 f5 ff ff lea -0xa80(%rbx),%rax 36ff: 48 c1 e8 03 shr $0x3,%rax 3703: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 370a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3712 <_ZN8BalancerILh2EE6updateEv+0x3712> 3711: 00 3712: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 371a <_ZN8BalancerILh2EE6updateEv+0x371a> 3719: 00 371a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3722 <_ZN8BalancerILh2EE6updateEv+0x3722> 3721: 00 3722: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 372a <_ZN8BalancerILh2EE6updateEv+0x372a> 3729: 00 372a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3732 <_ZN8BalancerILh2EE6updateEv+0x3732> 3731: 00 3732: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 373a <_ZN8BalancerILh2EE6updateEv+0x373a> 3739: 00 373a: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 3741: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3749 <_ZN8BalancerILh2EE6updateEv+0x3749> 3748: 00 :overflow_integer(_impl::to_rep(rhs)) 3749: 48 8d 83 c0 fc ff ff lea -0x340(%rbx),%rax 3750: 4c 89 ee mov %r13,%rsi 3753: 48 89 c7 mov %rax,%rdi 3756: 48 89 85 a8 e5 ff ff mov %rax,-0x1a58(%rbp) 375d: e8 00 00 00 00 callq 3762 <_ZN8BalancerILh2EE6updateEv+0x3762> 3762: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 376a <_ZN8BalancerILh2EE6updateEv+0x376a> 3769: 00 return _impl::default_scale<Digits, Radix, _value_type>{}(s); 376a: 48 8b 85 a8 e5 ff ff mov -0x1a58(%rbp),%rax 3771: 48 89 c2 mov %rax,%rdx 3774: 48 c1 ea 03 shr $0x3,%rdx 3778: 8a 92 00 80 ff 7f mov 0x7fff8000(%rdx),%dl 377e: 84 d2 test %dl,%dl 3780: 74 0d je 378f <_ZN8BalancerILh2EE6updateEv+0x378f> 3782: 80 fa 03 cmp $0x3,%dl 3785: 7f 08 jg 378f <_ZN8BalancerILh2EE6updateEv+0x378f> 3787: 48 89 c7 mov %rax,%rdi 378a: e8 00 00 00 00 callq 378f <_ZN8BalancerILh2EE6updateEv+0x378f> 378f: 8b 93 c0 fc ff ff mov -0x340(%rbx),%edx 3795: 49 c1 ee 03 shr $0x3,%r14 3799: 41 c6 86 00 80 ff 7f movb $0xf8,0x7fff8000(%r14) 37a0: f8 37a1: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 37a9 <_ZN8BalancerILh2EE6updateEv+0x37a9> 37a8: 00 37a9: 49 c1 ed 03 shr $0x3,%r13 37ad: 41 c6 85 00 80 ff 7f movb $0xf8,0x7fff8000(%r13) 37b4: f8 37b5: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 37bd <_ZN8BalancerILh2EE6updateEv+0x37bd> 37bc: 00 37bd: 48 8d 83 40 f5 ff ff lea -0xac0(%rbx),%rax 37c4: 48 c1 e8 03 shr $0x3,%rax 37c8: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 37cf: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 37d7 <_ZN8BalancerILh2EE6updateEv+0x37d7> 37d6: 00 37d7: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 37df <_ZN8BalancerILh2EE6updateEv+0x37df> 37de: 00 return cnl::scale<Digits, Radix, S>{}(s); 37df: 48 8d 83 c0 f3 ff ff lea -0xc40(%rbx),%rax 37e6: 48 c1 e8 03 shr $0x3,%rax 37ea: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 37f1: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 37f9 <_ZN8BalancerILh2EE6updateEv+0x37f9> 37f8: 00 37f9: 48 8d bb 40 fc ff ff lea -0x3c0(%rbx),%rdi 3800: 48 89 f8 mov %rdi,%rax 3803: 48 c1 e8 03 shr $0x3,%rax 3807: 8a 80 00 80 ff 7f mov 0x7fff8000(%rax),%al 380d: 84 c0 test %al,%al 380f: 74 09 je 381a <_ZN8BalancerILh2EE6updateEv+0x381a> 3811: 3c 03 cmp $0x3,%al 3813: 7f 05 jg 381a <_ZN8BalancerILh2EE6updateEv+0x381a> 3815: e8 00 00 00 00 callq 381a <_ZN8BalancerILh2EE6updateEv+0x381a> 381a: 89 93 40 fc ff ff mov %edx,-0x3c0(%rbx) 3820: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3828 <_ZN8BalancerILh2EE6updateEv+0x3828> 3827: 00 3828: 48 8d 93 80 f3 ff ff lea -0xc80(%rbx),%rdx 382f: 48 89 d0 mov %rdx,%rax 3832: 48 c1 e8 03 shr $0x3,%rax 3836: c6 80 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rax) 383d: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3845 <_ZN8BalancerILh2EE6updateEv+0x3845> 3844: 00 CNL_NODISCARD constexpr auto operator()(Rep const& r) const 3845: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 384d <_ZN8BalancerILh2EE6updateEv+0x384d> 384c: 00 return scaled_integer<Rep, power<Exponent, Radix>>(r, 0); 384d: 48 8d 83 80 fc ff ff lea -0x380(%rbx),%rax 3854: 48 c1 e8 03 shr $0x3,%rax 3858: c6 80 00 80 ff 7f 04 movb $0x4,0x7fff8000(%rax) 385f: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3867 <_ZN8BalancerILh2EE6updateEv+0x3867> 3866: 00 3867: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 386f <_ZN8BalancerILh2EE6updateEv+0x386f> 386e: 00 386f: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3877 <_ZN8BalancerILh2EE6updateEv+0x3877> 3876: 00 3877: 48 89 f8 mov %rdi,%rax 387a: 48 c1 e8 03 shr $0x3,%rax 387e: 8a 80 00 80 ff 7f mov 0x7fff8000(%rax),%al 3884: 84 c0 test %al,%al 3886: 74 09 je 3891 <_ZN8BalancerILh2EE6updateEv+0x3891> 3888: 3c 03 cmp $0x3,%al 388a: 7f 05 jg 3891 <_ZN8BalancerILh2EE6updateEv+0x3891> 388c: e8 00 00 00 00 callq 3891 <_ZN8BalancerILh2EE6updateEv+0x3891> 3891: 8b bb 40 fc ff ff mov -0x3c0(%rbx),%edi constexpr scaled_integer(rep r, int) 3897: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 389f <_ZN8BalancerILh2EE6updateEv+0x389f> 389e: 00 389f: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 38a7 <_ZN8BalancerILh2EE6updateEv+0x38a7> 38a6: 00 38a7: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 38af <_ZN8BalancerILh2EE6updateEv+0x38af> 38ae: 00 38af: 48 8d 83 80 fd ff ff lea -0x280(%rbx),%rax 38b6: 48 89 c1 mov %rax,%rcx 38b9: 48 c1 e9 03 shr $0x3,%rcx 38bd: 40 8a b1 00 80 ff 7f mov 0x7fff8000(%rcx),%sil 38c4: 48 89 c1 mov %rax,%rcx 38c7: 83 e1 07 and $0x7,%ecx 38ca: 83 c1 03 add $0x3,%ecx 38cd: 40 38 f1 cmp %sil,%cl 38d0: 7c 0d jl 38df <_ZN8BalancerILh2EE6updateEv+0x38df> 38d2: 40 84 f6 test %sil,%sil 38d5: 74 08 je 38df <_ZN8BalancerILh2EE6updateEv+0x38df> 38d7: 48 89 c7 mov %rax,%rdi 38da: e8 00 00 00 00 callq 38df <_ZN8BalancerILh2EE6updateEv+0x38df> 38df: 89 bb 80 fd ff ff mov %edi,-0x280(%rbx) explicit constexpr number_base(rep r) 38e5: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 38ed <_ZN8BalancerILh2EE6updateEv+0x38ed> 38ec: 00 move(_Tp&& __t) noexcept 38ed: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 38f5 <_ZN8BalancerILh2EE6updateEv+0x38f5> 38f4: 00 38f5: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 38fd <_ZN8BalancerILh2EE6updateEv+0x38fd> 38fc: 00 38fd: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3905 <_ZN8BalancerILh2EE6updateEv+0x3905> 3904: 00 3905: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 390d <_ZN8BalancerILh2EE6updateEv+0x390d> 390c: 00 : _rep(std::move(r)) { } 390d: 48 8d bb 80 fc ff ff lea -0x380(%rbx),%rdi 3914: 48 89 f9 mov %rdi,%rcx 3917: 48 c1 e9 03 shr $0x3,%rcx 391b: 8a 89 00 80 ff 7f mov 0x7fff8000(%rcx),%cl 3921: 84 c9 test %cl,%cl 3923: 74 0a je 392f <_ZN8BalancerILh2EE6updateEv+0x392f> 3925: 80 f9 03 cmp $0x3,%cl 3928: 7f 05 jg 392f <_ZN8BalancerILh2EE6updateEv+0x392f> 392a: e8 00 00 00 00 callq 392f <_ZN8BalancerILh2EE6updateEv+0x392f> 392f: 48 89 c1 mov %rax,%rcx 3932: 48 c1 e9 03 shr $0x3,%rcx 3936: 40 8a b1 00 80 ff 7f mov 0x7fff8000(%rcx),%sil 393d: 48 89 c1 mov %rax,%rcx 3940: 83 e1 07 and $0x7,%ecx 3943: 83 c1 03 add $0x3,%ecx 3946: 40 38 f1 cmp %sil,%cl 3949: 7c 0d jl 3958 <_ZN8BalancerILh2EE6updateEv+0x3958> 394b: 40 84 f6 test %sil,%sil 394e: 74 08 je 3958 <_ZN8BalancerILh2EE6updateEv+0x3958> 3950: 48 89 c7 mov %rax,%rdi 3953: e8 00 00 00 00 callq 3958 <_ZN8BalancerILh2EE6updateEv+0x3958> 3958: 8b 83 80 fd ff ff mov -0x280(%rbx),%eax 395e: 89 83 80 fc ff ff mov %eax,-0x380(%rbx) 3964: 48 89 f8 mov %rdi,%rax 3967: 48 c1 e8 03 shr $0x3,%rax 396b: 8a 80 00 80 ff 7f mov 0x7fff8000(%rax),%al 3971: 84 c0 test %al,%al 3973: 74 09 je 397e <_ZN8BalancerILh2EE6updateEv+0x397e> 3975: 3c 03 cmp $0x3,%al 3977: 7f 05 jg 397e <_ZN8BalancerILh2EE6updateEv+0x397e> 3979: e8 00 00 00 00 callq 397e <_ZN8BalancerILh2EE6updateEv+0x397e> 397e: 8b 8b 80 fc ff ff mov -0x380(%rbx),%ecx 3984: 48 8d 83 80 fc ff ff lea -0x380(%rbx),%rax 398b: 48 c1 e8 03 shr $0x3,%rax 398f: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 3996: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 399e <_ZN8BalancerILh2EE6updateEv+0x399e> 399d: 00 399e: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 39a6 <_ZN8BalancerILh2EE6updateEv+0x39a6> 39a5: 00 39a6: 48 c1 ea 03 shr $0x3,%rdx 39aa: c6 82 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rdx) 39b1: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 39b9 <_ZN8BalancerILh2EE6updateEv+0x39b9> 39b8: 00 _impl::from_rep<scaled_integer<LhsRep, power<_common_exponent, Radix>>>( 39b9: 48 8d bb 00 fc ff ff lea -0x400(%rbx),%rdi 39c0: 48 89 f8 mov %rdi,%rax 39c3: 48 c1 e8 03 shr $0x3,%rax 39c7: 8a 80 00 80 ff 7f mov 0x7fff8000(%rax),%al 39cd: 84 c0 test %al,%al 39cf: 74 09 je 39da <_ZN8BalancerILh2EE6updateEv+0x39da> 39d1: 3c 03 cmp $0x3,%al 39d3: 7f 05 jg 39da <_ZN8BalancerILh2EE6updateEv+0x39da> 39d5: e8 00 00 00 00 callq 39da <_ZN8BalancerILh2EE6updateEv+0x39da> 39da: 89 8b 00 fc ff ff mov %ecx,-0x400(%rbx) 39e0: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 39e8 <_ZN8BalancerILh2EE6updateEv+0x39e8> 39e7: 00 CNL_NODISCARD constexpr auto operator()(Lhs const& lhs, Rhs const& rhs) const -> decltype(lhs+rhs) 39e8: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 39f0 <_ZN8BalancerILh2EE6updateEv+0x39f0> 39ef: 00 CNL_DEFINE_BINARY_OPERATOR(+, add_op) 39f0: 48 8d 93 00 f5 ff ff lea -0xb00(%rbx),%rdx 39f7: 48 c1 ea 03 shr $0x3,%rdx 39fb: c6 82 00 80 ff 7f 01 movb $0x1,0x7fff8000(%rdx) 3a02: 48 89 95 a8 e5 ff ff mov %rdx,-0x1a58(%rbp) 3a09: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3a11 <_ZN8BalancerILh2EE6updateEv+0x3a11> 3a10: 00 3a11: 4c 8d ab 80 fb ff ff lea -0x480(%rbx),%r13 3a18: 4c 8d b3 00 fc ff ff lea -0x400(%rbx),%r14 3a1f: 4c 89 ee mov %r13,%rsi 3a22: 4c 89 f7 mov %r14,%rdi 3a25: e8 00 00 00 00 callq 3a2a <_ZN8BalancerILh2EE6updateEv+0x3a2a> 3a2a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3a32 <_ZN8BalancerILh2EE6updateEv+0x3a32> 3a31: 00 3a32: 48 8b 95 a8 e5 ff ff mov -0x1a58(%rbp),%rdx 3a39: c6 82 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rdx) 3a40: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3a48 <_ZN8BalancerILh2EE6updateEv+0x3a48> 3a47: 00 3a48: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3a50 <_ZN8BalancerILh2EE6updateEv+0x3a50> 3a4f: 00 3a50: 49 c1 ee 03 shr $0x3,%r14 3a54: 41 c6 86 00 80 ff 7f movb $0xf8,0x7fff8000(%r14) 3a5b: f8 3a5c: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3a64 <_ZN8BalancerILh2EE6updateEv+0x3a64> 3a63: 00 _impl::scale<_lhs_left_shift, Radix>(_impl::to_rep(lhs))), 3a64: 48 8d 93 40 fc ff ff lea -0x3c0(%rbx),%rdx 3a6b: 48 c1 ea 03 shr $0x3,%rdx 3a6f: c6 82 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rdx) 3a76: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3a7e <_ZN8BalancerILh2EE6updateEv+0x3a7e> 3a7d: 00 _impl::from_rep<scaled_integer<RhsRep, power<_common_exponent, Radix>>>( 3a7e: 49 c1 ed 03 shr $0x3,%r13 3a82: 41 c6 85 00 80 ff 7f movb $0xf8,0x7fff8000(%r13) 3a89: f8 3a8a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3a92 <_ZN8BalancerILh2EE6updateEv+0x3a92> 3a91: 00 _impl::scale<_rhs_left_shift, Radix>(_impl::to_rep(rhs)))); 3a92: 48 8d 93 c0 fb ff ff lea -0x440(%rbx),%rdx 3a99: 48 c1 ea 03 shr $0x3,%rdx 3a9d: c6 82 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rdx) 3aa4: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3aac <_ZN8BalancerILh2EE6updateEv+0x3aac> 3aab: 00 return Operator{}( 3aac: 48 8d 93 40 f3 ff ff lea -0xcc0(%rbx),%rdx 3ab3: 48 c1 ea 03 shr $0x3,%rdx 3ab7: c6 82 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rdx) 3abe: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3ac6 <_ZN8BalancerILh2EE6updateEv+0x3ac6> 3ac5: 00 3ac6: 4c 8d ab 40 ff ff ff lea -0xc0(%rbx),%r13 3acd: 4c 89 ea mov %r13,%rdx 3ad0: 48 c1 ea 03 shr $0x3,%rdx 3ad4: 80 ba 00 80 ff 7f 00 cmpb $0x0,0x7fff8000(%rdx) 3adb: 74 08 je 3ae5 <_ZN8BalancerILh2EE6updateEv+0x3ae5> 3add: 4c 89 ef mov %r13,%rdi 3ae0: e8 00 00 00 00 callq 3ae5 <_ZN8BalancerILh2EE6updateEv+0x3ae5> 3ae5: 48 89 83 40 ff ff ff mov %rax,-0xc0(%rbx) 3aec: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3af4 <_ZN8BalancerILh2EE6updateEv+0x3af4> 3af3: 00 3af4: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3afc <_ZN8BalancerILh2EE6updateEv+0x3afc> 3afb: 00 3afc: 4c 8d b3 40 fb ff ff lea -0x4c0(%rbx),%r14 3b03: 4c 89 ee mov %r13,%rsi 3b06: 4c 89 f7 mov %r14,%rdi 3b09: e8 00 00 00 00 callq 3b0e <_ZN8BalancerILh2EE6updateEv+0x3b0e> 3b0e: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3b16 <_ZN8BalancerILh2EE6updateEv+0x3b16> 3b15: 00 3b16: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3b1e <_ZN8BalancerILh2EE6updateEv+0x3b1e> 3b1d: 00 3b1e: 4d 85 e4 test %r12,%r12 3b21: 74 06 je 3b29 <_ZN8BalancerILh2EE6updateEv+0x3b29> 3b23: 41 f6 c4 03 test $0x3,%r12b 3b27: 74 0f je 3b38 <_ZN8BalancerILh2EE6updateEv+0x3b38> 3b29: 4c 89 e6 mov %r12,%rsi 3b2c: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 3b33 <_ZN8BalancerILh2EE6updateEv+0x3b33> 3b33: e8 00 00 00 00 callq 3b38 <_ZN8BalancerILh2EE6updateEv+0x3b38> 3b38: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3b40 <_ZN8BalancerILh2EE6updateEv+0x3b40> 3b3f: 00 3b40: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3b48 <_ZN8BalancerILh2EE6updateEv+0x3b48> 3b47: 00 3b48: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3b50 <_ZN8BalancerILh2EE6updateEv+0x3b50> 3b4f: 00 3b50: 48 8b 85 e8 e5 ff ff mov -0x1a18(%rbp),%rax 3b57: 48 8d 78 08 lea 0x8(%rax),%rdi 3b5b: 48 89 f8 mov %rdi,%rax 3b5e: 48 c1 e8 03 shr $0x3,%rax 3b62: 8a 90 00 80 ff 7f mov 0x7fff8000(%rax),%dl 3b68: 48 89 f8 mov %rdi,%rax 3b6b: 83 e0 07 and $0x7,%eax 3b6e: 83 c0 03 add $0x3,%eax 3b71: 38 d0 cmp %dl,%al 3b73: 7c 09 jl 3b7e <_ZN8BalancerILh2EE6updateEv+0x3b7e> 3b75: 84 d2 test %dl,%dl 3b77: 74 05 je 3b7e <_ZN8BalancerILh2EE6updateEv+0x3b7e> 3b79: e8 00 00 00 00 callq 3b7e <_ZN8BalancerILh2EE6updateEv+0x3b7e> 3b7e: 4c 89 f0 mov %r14,%rax 3b81: 48 c1 e8 03 shr $0x3,%rax 3b85: 8a 80 00 80 ff 7f mov 0x7fff8000(%rax),%al 3b8b: 84 c0 test %al,%al 3b8d: 74 0c je 3b9b <_ZN8BalancerILh2EE6updateEv+0x3b9b> 3b8f: 3c 03 cmp $0x3,%al 3b91: 7f 08 jg 3b9b <_ZN8BalancerILh2EE6updateEv+0x3b9b> 3b93: 4c 89 f7 mov %r14,%rdi 3b96: e8 00 00 00 00 callq 3b9b <_ZN8BalancerILh2EE6updateEv+0x3b9b> 3b9b: 8b 83 40 fb ff ff mov -0x4c0(%rbx),%eax 3ba1: 48 8b 8d e8 e5 ff ff mov -0x1a18(%rbp),%rcx 3ba8: 49 c1 ee 03 shr $0x3,%r14 3bac: 89 41 08 mov %eax,0x8(%rcx) 3baf: 41 c6 86 00 80 ff 7f movb $0xf8,0x7fff8000(%r14) 3bb6: f8 3bb7: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3bbf <_ZN8BalancerILh2EE6updateEv+0x3bbf> 3bbe: 00 3bbf: 49 c1 ed 03 shr $0x3,%r13 3bc3: 41 c6 85 00 80 ff 7f movb $0xf8,0x7fff8000(%r13) 3bca: f8 3bcb: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3bd3 <_ZN8BalancerILh2EE6updateEv+0x3bd3> 3bd2: 00 3bd3: 48 8d 83 00 f3 ff ff lea -0xd00(%rbx),%rax 3bda: 48 c1 e8 03 shr $0x3,%rax 3bde: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 3be5: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3bed <_ZN8BalancerILh2EE6updateEv+0x3bed> 3bec: 00 3bed: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3bf5 <_ZN8BalancerILh2EE6updateEv+0x3bf5> 3bf4: 00 CNL_DEFINE_COMPOUND_ASSIGNMENT_OPERATOR(+=, assign_add_op) 3bf5: 4d 85 e4 test %r12,%r12 3bf8: 74 06 je 3c00 <_ZN8BalancerILh2EE6updateEv+0x3c00> 3bfa: 41 f6 c4 03 test $0x3,%r12b 3bfe: 74 0f je 3c0f <_ZN8BalancerILh2EE6updateEv+0x3c0f> 3c00: 4c 89 e6 mov %r12,%rsi 3c03: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 3c0a <_ZN8BalancerILh2EE6updateEv+0x3c0a> 3c0a: e8 00 00 00 00 callq 3c0f <_ZN8BalancerILh2EE6updateEv+0x3c0f> 3c0f: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3c17 <_ZN8BalancerILh2EE6updateEv+0x3c17> 3c16: 00 3c17: 48 8d 83 c0 f2 ff ff lea -0xd40(%rbx),%rax 3c1e: 48 c1 e8 03 shr $0x3,%rax 3c22: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 3c29: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3c31 <_ZN8BalancerILh2EE6updateEv+0x3c31> 3c30: 00 3c31: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3c39 <_ZN8BalancerILh2EE6updateEv+0x3c39> 3c38: 00 operator++() _GLIBCXX_NOEXCEPT 3c39: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3c41 <_ZN8BalancerILh2EE6updateEv+0x3c41> 3c40: 00 ++_M_current; 3c41: 48 8b 85 c8 e5 ff ff mov -0x1a38(%rbp),%rax 3c48: 80 b8 00 80 ff 7f 00 cmpb $0x0,0x7fff8000(%rax) 3c4f: 74 0c je 3c5d <_ZN8BalancerILh2EE6updateEv+0x3c5d> 3c51: 48 8b bd e0 e5 ff ff mov -0x1a20(%rbp),%rdi 3c58: e8 00 00 00 00 callq 3c5d <_ZN8BalancerILh2EE6updateEv+0x3c5d> 3c5d: 48 8b b3 80 fe ff ff mov -0x180(%rbx),%rsi 3c64: 4c 8d 66 0c lea 0xc(%rsi),%r12 3c68: 48 83 fe f4 cmp $0xfffffffffffffff4,%rsi 3c6c: 72 0f jb 3c7d <_ZN8BalancerILh2EE6updateEv+0x3c7d> 3c6e: 4c 89 e2 mov %r12,%rdx 3c71: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 3c78 <_ZN8BalancerILh2EE6updateEv+0x3c78> 3c78: e8 00 00 00 00 callq 3c7d <_ZN8BalancerILh2EE6updateEv+0x3c7d> 3c7d: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3c85 <_ZN8BalancerILh2EE6updateEv+0x3c85> 3c84: 00 3c85: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3c8d <_ZN8BalancerILh2EE6updateEv+0x3c8d> 3c8c: 00 3c8d: 48 8b 85 e0 e5 ff ff mov -0x1a20(%rbp),%rax 3c94: 48 c1 e8 03 shr $0x3,%rax 3c98: 80 b8 00 80 ff 7f 00 cmpb $0x0,0x7fff8000(%rax) 3c9f: 74 0c je 3cad <_ZN8BalancerILh2EE6updateEv+0x3cad> 3ca1: 48 8b bd e0 e5 ff ff mov -0x1a20(%rbp),%rdi 3ca8: e8 00 00 00 00 callq 3cad <_ZN8BalancerILh2EE6updateEv+0x3cad> 3cad: 4c 89 a3 80 fe ff ff mov %r12,-0x180(%rbx) 3cb4: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3cbc <_ZN8BalancerILh2EE6updateEv+0x3cbc> 3cbb: 00 3cbc: e9 92 ef ff ff jmpq 2c53 <_ZN8BalancerILh2EE6updateEv+0x2c53> 3cc1: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3cc9 <_ZN8BalancerILh2EE6updateEv+0x3cc9> 3cc8: 00 3cc9: 48 8b 8d c8 e5 ff ff mov -0x1a38(%rbp),%rcx 3cd0: c6 81 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rcx) 3cd7: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3cdf <_ZN8BalancerILh2EE6updateEv+0x3cdf> 3cde: 00 3cdf: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 3ce6: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3cee <_ZN8BalancerILh2EE6updateEv+0x3cee> 3ced: 00 3cee: 48 8b 85 b0 e5 ff ff mov -0x1a50(%rbp),%rax 3cf5: 48 c1 e8 03 shr $0x3,%rax 3cf9: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 3d00: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3d08 <_ZN8BalancerILh2EE6updateEv+0x3d08> 3d07: 00 3d08: 48 8d 83 80 f7 ff ff lea -0x880(%rbx),%rax 3d0f: 48 c1 e8 03 shr $0x3,%rax 3d13: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 3d1a: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3d22 <_ZN8BalancerILh2EE6updateEv+0x3d22> 3d21: 00 3d22: 48 81 eb 40 08 00 00 sub $0x840,%rbx 3d29: 48 c1 eb 03 shr $0x3,%rbx 3d2d: c6 83 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rbx) 3d34: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3d3c <_ZN8BalancerILh2EE6updateEv+0x3d3c> 3d3b: 00 3d3c: 48 8b 85 d0 e5 ff ff mov -0x1a30(%rbp),%rax 3d43: 48 c1 e8 03 shr $0x3,%rax 3d47: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 3d4e: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3d56 <_ZN8BalancerILh2EE6updateEv+0x3d56> 3d55: 00 3d56: 48 8b 85 c0 e5 ff ff mov -0x1a40(%rbp),%rax 3d5d: 48 c1 e8 03 shr $0x3,%rax 3d61: c6 80 00 80 ff 7f f8 movb $0xf8,0x7fff8000(%rax) 3d68: f0 48 ff 05 00 00 00 lock incq 0x0(%rip) # 3d70 <_ZN8BalancerILh2EE6updateEv+0x3d70> 3d6f: 00 void update() 3d70: 48 8b 8d d8 e5 ff ff mov -0x1a28(%rbp),%rcx 3d77: 48 39 8d b8 e5 ff ff cmp %rcx,-0x1a48(%rbp) 3d7e: 74 21 je 3da1 <_ZN8BalancerILh2EE6updateEv+0x3da1> 3d80: 48 c7 01 0e 36 e0 45 movq $0x45e0360e,(%rcx) 3d87: 48 8b 95 b8 e5 ff ff mov -0x1a48(%rbp),%rdx 3d8e: be c0 19 00 00 mov $0x19c0,%esi 3d93: 48 8b bd d8 e5 ff ff mov -0x1a28(%rbp),%rdi 3d9a: e8 00 00 00 00 callq 3d9f <_ZN8BalancerILh2EE6updateEv+0x3d9f> 3d9f: eb 10 jmp 3db1 <_ZN8BalancerILh2EE6updateEv+0x3db1> 3da1: 49 8d bf 00 80 ff 7f lea 0x7fff8000(%r15),%rdi 3da8: b9 ce 00 00 00 mov $0xce,%ecx 3dad: 31 c0 xor %eax,%eax 3daf: f3 ab rep stos %eax,%es:(%rdi) } 3db1: 48 8b 45 c8 mov -0x38(%rbp),%rax 3db5: 64 48 33 04 25 28 00 xor %fs:0x28,%rax 3dbc: 00 00 3dbe: 74 05 je 3dc5 <_ZN8BalancerILh2EE6updateEv+0x3dc5> 3dc0: e8 00 00 00 00 callq 3dc5 <_ZN8BalancerILh2EE6updateEv+0x3dc5> 3dc5: 48 81 c4 38 1a 00 00 add $0x1a38,%rsp 3dcc: 5b pop %rbx 3dcd: 41 5c pop %r12 3dcf: 41 5d pop %r13 3dd1: 41 5e pop %r14 3dd3: 41 5f pop %r15 3dd5: 5d pop %rbp 3dd6: c3 retq
Another issue I noticed: Why do the commented lines result in an overflow exception? https://godbolt.org/z/fv5NKk
Same program with fsanitize doesn't even work: https://godbolt.org/z/MtmYsW
Thanks for the feedback.
You've identified two issues so I'm going to break the second out into #522. (You're welcome to submit multiple issues where there are different things going on.)
Regarding the ASan bloat, this appears to affect GCC worse than Clang and is less pronounced in GCC 9. Much of the increase appears to be due to line number data. Likely this improves diagnostics for lines where an address-related error occurs. I've no idea whether ASan really thinks that address-related errors could happen at each of those points in the CNL code. However, I would expect this to be an overhead which is less prominent in a larger program.
It's entirely expected for sanitizer instrumentation to add to binary size but it's certainly a surprise to see this. I'd like to re-visit this at a later date and/or keep an eye out for similar levels of bloat in other libraries that rely heavily on inlining. Also, this may be of interest to P1832 which is concerned with the cost of such library abstractions.
Here is a reduction of the issue without the for loop. (Smaller examples like this are generaly better.)
@elcojacobs what are you expectations for using ASan? I don't think it's optimized for producing production code and I think this kind of binary size increase might actually be expected.
Thanks for looking into it John. I added the for loop to prevent the compiler from optimizing the calculations away.
I absolutely expect the sanitizer to insert some extra code to check memory access. But even in your extremely minimal example, the disassembly is over 3000 lines. I am not using ASAN in my production builds, but as you can imagine, having 3000 extra lines makes the unit tests run very, very slow.
But even without ASAN, the test runner is 39 MB with this version of CNL. With the previous version, it was 27 MB and it compiled and ran much quicker.
These are the changes, nothing noteworthy except for the CNL update I think: https://github.com/BrewBlox/brewblox-firmware/compare/edge...elcojacobs:feature/cnl-updates
CNL version was updated from 2508fdf020e4332563d8365320ca0bb931d7be61 to c92bb6e7fb30d0190a185e9a7fbdbba51e7cf213
There is a huge difference in test durations. Total test duration went from 80 seconds to 685 seconds. https://docs.google.com/spreadsheets/d/1znhdH8NkQ8I3tQjc_BVFrxrp8AER7dm78YNCMqTEn5M/edit?usp=sharing
This is without ASAN. I do have some custom to_string handling. I'll check whether it gets better when I revert that to the updated CNL to_chars. Edit: custom to_string function seems not to be the cause.
Can you confirm that this doesn't affect optimised builds? Also, if you are
using a Debug configuration, have you tried -Og?
CNL -- like many C++ libraries that rely heavily on inlining -- doesn't perform well in non-optimised builds. There's a chance that I've increased the typical call graph depth in the areas of the library you are using. But that's probably best treated in separation from the sanitizer question.
This general problem is the main topic of the WG21 paper http://wg21.link/p1832 I mentioned and I am trying to improve the situation by engaging tooling experts and raising awareness within the committee.
Any data you can offer on the subject will be helpful. However, unless this affects optimised builds, I cannot promise that I'll prioritise it.
On Sun 17 Nov 2019, 23:24 Elco Jacobs, [email protected] wrote:
Thanks for looking into it John. I added the for loop to prevent the compiler from optimizing the calculations away.
I absolutely expect the sanitizer to insert some extra code to check memory access. But even in your extremely minimal example, the disassembly is over 3000 lines. I am not using ASAN in my production builds, but as you can imagine, having 3000 extra lines makes the unit tests run very, very slow.
But even without ASAN, the test runner is 39 MB with this version of CNL. With the previous version, it was 27 MB and it compiled and ran much quicker.
These are the changes, nothing noteworthy except for the CNL update I think: BrewBlox/[email protected]:feature/cnl-updates https://github.com/BrewBlox/brewblox-firmware/compare/edge...elcojacobs:feature/cnl-updates
CNL version was updated from 2508fdf https://github.com/johnmcfarlane/cnl/commit/2508fdf020e4332563d8365320ca0bb931d7be61 to c92bb6e https://github.com/johnmcfarlane/cnl/commit/c92bb6e7fb30d0190a185e9a7fbdbba51e7cf213
There is a huge difference in test durations:
https://docs.google.com/spreadsheets/d/1znhdH8NkQ8I3tQjc_BVFrxrp8AER7dm78YNCMqTEn5M/edit?usp=sharing
This is without ASAN. I do have some custom to_string handling. I'll check whether it gets better when I revert that to the updated CNL to_chars.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/johnmcfarlane/cnl/issues/521?email_source=notifications&email_token=AAFTGNZRJWWFZJFKB6WUT6TQUHHDHA5CNFSM4JN4EVJKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEEIZGQQ#issuecomment-554799938, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFTGN6GQSCYPN4JX6SYO3LQUHHDHANCNFSM4JN4EVJA .
I was compiling with -Og. I have even tried compiling with -Os and -O3. I'll try to profile the code with callgrind, see if I can find the performance bottlenecks and isolate a minimal unit test exposing it.
I isolated some tests in a separate build:
https://github.com/elcojacobs/brewblox-firmware/tree/feature/cnl-updates/lib/cnltest
In the profiler, I saw that almost all execution time was spent in to_chars, which is understandably a heavy function that also pollutes the cache. It turns out that the catch test function INFO(...) caused the issue. This will do a string conversion on every loop.
With INFO() calls:
3.981 s: Fixedpoint calculations
0.505 s: Equivalent integer calculations
===============================================================================
All tests passed (5956582 assertions in 2 test cases)
Without:
0.252 s: Fixedpoint calculations
0.222 s: Equivalent integer calculations
===============================================================================
All tests passed (5956582 assertions in 2 test cases)
So the performance issue can be closed. To_chars probably became a bit heavier compared to an earlier release, but it was my fault having it included in critical loops. Contrary to checks, INFO(...) calls seem to always do the string conversion.
That was not the entire story!
cnl::convert_operator was not optimizing away and accounted for a huge chunk of the execution time. I could be using the library incorrectly, but perhaps it is valid data point for you.
I'm not opening a new issue yet, because I am still unsure where the problem is. Feel free to create one.
Before this commit https://github.com/elcojacobs/brewblox-firmware/commit/fcecbd123cd6a74ab9b3d1c64eb0b1d89049e115:
Execution time:
time build/lib_test_runner [pid] -> 22 seconds
After that commit:
Execution time:
time build/lib_test_runner [pid] -> 12.5 seconds
Callgrind visualization:

Callgrind visualization:

As you can see, the call to ActuatorPwm::setting completely disappeared. I believe the other bottlenecks are similar issues.
Note that this does not compile:
uint64_t unScaledTime = m_dutySetting * m_period;
m_dutyTime = unScaledTime / 100;
But this does:
auto unScaledTime = m_dutySetting * m_period;
m_dutyTime = uint64_t(unScaledTime) / 100;
Error:
/home/elco/repos/firmware/lib/src/ActuatorPwm.cpp:29:49: error: cannot convert ‘cnl::scaled_integer<cnl::overflow_integer<cnl::elastic_integer<55, cnl::rounding_integer<cnl::_impl::wide_integer<31, int>, cnl::native_rounding_tag> >, cnl::saturated_overflow_tag>, cnl::power<-12, 2> >’ to ‘uint64_t’ {aka ‘long unsigned int’} in initialization
uint64_t unScaledTime = m_dutySetting * m_period;
^~~~~~~~
My previous version did compile, but did not inline properly. I think instead of the error above it somehow created a deeply nested template call to work around it.
Profiling screenshot with template arguments:

It looks like my tests are spending most of the time in this conversion. With native rounding, it shouldn't be more than a binary shift, right?
With these changes https://github.com/elcojacobs/brewblox-firmware/commit/065caeced992997cbdad8a19e56ec8689fa991bf , the time spent in PID::update() is reduced to 10%. But it does make the tests fail.
The error seems to be here:
out_t excess = (pidResult - outputSetting) / m_kp;
pidResult, outputSetting and m_kp are all of type cnl::static_number<Digits, Exponent, cnl::native_rounding_tag, cnl::saturated_overflow_tag, Narrowest>;
The debugger shows that integer values of the variables are: (211476 - 163840) / -40960 = -1.16. The value of excess after the calculation is -4096.
So the value is rounded during the calculation and 1 << 12 is returned.
Reproduced on Godbolt: https://godbolt.org/z/XDuNFk
I'll create an issue for this too.
Thanks for all the info, here is status update from my side:
With these changes: https://github.com/BrewBlox/brewblox-firmware/compare/fcecbd123cd6a74ab9b3d1c64eb0b1d89049e115...elcojacobs:feature/cnl-updates
The total runtime of the tests (without sanitizer) is reduced to 4.7 seconds!
With sanitizer enabled, 2 minutes. Typical slowdown introduced by AddressSanitizer is 2x, so this is a bit excessive.
CLANG supports -fsanitize-blacklist, but gcc does not unfortunately. Because my code needs to compile for arm, I am stuck with gcc. https://clang.llvm.org/docs/AddressSanitizer.html#suppressing-errors-in-recompiled-code-blacklist
GCC does support an attribute to disable sanitizer for certain functions, but I would have to be able to inject this before CNL function declarations https://clang.llvm.org/docs/AddressSanitizer.html#disabling-instrumentation-with-attribute-no-sanitize-address It also does not seem to work when I try it like this: https://godbolt.org/z/RWCMcn
When the declaration is made a constexpr, asan still generates an error, but not a bloated binary.
#include <cnl/static_number.h>
int foo(){
constexpr auto a = cnl::static_number<1, 0>{};
return static_cast<int>(a);
}
int main() {
return foo();
}
https://godbolt.org/z/p9YrjR
I now have test passing and binary size not increased much with the latest version: https://github.com/BrewBlox/brewblox-firmware/pull/158/files
It required quite a few changes, mainly casting the result returned by cnl::quotient to constrain the number of bits. I used the map file (with http://www.sikorskiy.net/prj/amap/) to see which places still included cnl namespace functions and tweaked the call sites until they were mostly optimized away. I also used callgrind + kcachegrind to assess performance and find these places were optimization failed.
Looks like I can switch to the recent version now. I postponed updating since March because of the code bloat issues, but now I much better understand them and can work around them. If it interests you, these are the changes that were required (compared the the version from March):
https://github.com/BrewBlox/brewblox-firmware/pull/158/files
Rather than casting the result of quotient, consider specifying the desired type as the template parameter. Alternatively, consider using fraction in the constructor as demonstrated in this example from #524. This technique may produce different results -- at least when non-native rounding is used -- and may reduce the necessary width.
I am casting the result, because specifying the desired type as a template parameter gives unexpected results when the precision is increased. Is this a bug or am I doing it wrong?
There is no test code in CNL that uses cnl::quotient with a desired type.
https://godbolt.org/z/gjnSDm
Converting fraction to a higher precision also gives the same unexpected result. https://godbolt.org/z/DuuFTB
Does fraction require C++17? Embedded I'm stuck in C++14 land. make_fraction seem to work on C++14 though.
No, that's definitely not desired behavior. Thanks for pointing it out.
On Tue, 26 Nov 2019 at 17:47, Elco Jacobs [email protected] wrote:
I am casting the result, because specifying the desired type as a template parameter gives unexpected results when the precision is increased. Is this a bug or am I doing it wrong?
There is no test code in CNL that uses cnl::quotient with a desired type.
https://godbolt.org/z/gjnSDm
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/johnmcfarlane/cnl/issues/521?email_source=notifications&email_token=AAFTGN64Q63DWGT5KTIZNY3QVVOMJA5CNFSM4JN4EVJKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFG4BYQ#issuecomment-558743778, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFTGN4MRZVTMPKSLXR4BP3QVVOMJANCNFSM4JN4EVJA .
And yes, initialising a class template without the <> like that is class template argument deduction, a C++17 feature. The best alternative is the make_ functions in C++14.
Updated repros:
- https://godbolt.org/z/Mo91EaqTe
- https://godbolt.org/z/o4MdGc1ja I had to comment out some of the second on because it was timing out. Once these produce sensible results, I'll close this issue.
Hi John, I can finally use C++20 and upgrade cnl! It seems to be a drop-in replacement. All tests are still passing. I'm now looking at which new features I can use to improve and which old workarounds I can skip.
Looking at the the old issues I created, I see that the 2 links above still produce incorrect results for the call with the template specifier.
Hi Elco. Glad to hear it. Be warned that the 2.0 API is not at all stable and that I've not been actively working on CNL recently.
On Fri, 17 Mar 2023 at 14:11, Elco Jacobs @.***> wrote:
Hi John, I can finally use C++20 and upgrade cnl! It seems to be a drop-in replacement. All tests are still passing. I'm now looking at which new features I can use to improve and which old workarounds I can skip.
Looking at the the old issues I created, I see that the 2 links above still produce incorrect results for the call with the template specifier.
— Reply to this email directly, view it on GitHub https://github.com/johnmcfarlane/cnl/issues/521#issuecomment-1473905436, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFTGN54EQT7TIB3Z446NU3W4RWJPANCNFSM4JN4EVJA . You are receiving this because you commented.Message ID: @.***>
It passed all my unit tests. I'm fine with the api not being stable as long as the code is correct. It looks like it's at least as good as the 1.x version I was on. Would you recommend staying on 1.x instead?
Do you plan to continue development in the future? I don't think anything comes close.
Thanks. I'm honestly not sure at the moment. Certainly if I do, I'll likely continue with 2.x.
I have also thought about starting a 3.x branch some time in the future, dropping C++20. The main reasons to move to C++23 would be if deducing this reduced the headache of operator overloads significantly, or if it made modules much easier to support.
However, I'm interested in making 2.x stable first as C++20 is a sweet spot for arithmetic types. And I've no immediate plans to do that either.
On Mon, 20 Mar 2023 at 23:16, Elco Jacobs @.***> wrote:
It passed all my unit tests. I'm fine with the api not being stable as long as the code is correct. It looks like it's at least as good as the 1.x version I was on. Would you recommend staying on 1.x instead?
Do you plan to continue development in the future? I don't think anything comes close.
— Reply to this email directly, view it on GitHub https://github.com/johnmcfarlane/cnl/issues/521#issuecomment-1477075583, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFTGNYWDQC4YYNNLDRHQSLW5DQOJANCNFSM4JN4EVJA . You are receiving this because you commented.Message ID: @.***>
Yeah I bet concepts will make the code much easier to write and maintain.
I couldn't find a comparison of 2.x and 1.x. Is there a functional difference?
If you would like to discuss any plans with a daily user of your library, I would be happy to chat on Skype, discord or similar. It has served me well.
Feedback is always welcome, but as I am not concentrating on CNL currently, issues might be the best medium for recording potential improvements. It could be some other developer who shares the same perspective and takes on future changes.
The main difference between 2.x and 1.x currently is reduction of boilerplate around type deduction (C++14 and above), and concepts replacing SFINAE.
On Tue, 21 Mar 2023 at 12:15, Elco Jacobs @.***> wrote:
Yeah I bet concepts will make the code much easier to write and maintain.
I couldn't find a comparison of 2.x and 1.x. Is there a functional difference?
If you would like to discuss any plans with a daily user of your library, I would be happy to chat on Skype, discord or similar. It has served me well.
— Reply to this email directly, view it on GitHub https://github.com/johnmcfarlane/cnl/issues/521#issuecomment-1477736375, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFTGN4X5EQ3YSR2RGBS6XTW5GLVZANCNFSM4JN4EVJA . You are receiving this because you commented.Message ID: @.***>