| { |
| "asm": [ |
| { |
| "text": "__cxx_global_var_init: # @__cxx_global_var_init", |
| "source": null |
| }, |
| { |
| "text": " pushq %rax", |
| "source": { |
| "file": "/usr/bin/../lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/ \"iostream\"", |
| "line": 74 |
| } |
| }, |
| { |
| "text": " movl std::__ioinit, %edi", |
| "source": { |
| "file": "/usr/bin/../lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/ \"iostream\"", |
| "line": 74 |
| } |
| }, |
| { |
| "text": " callq std::ios_base::Init::Init()", |
| "source": { |
| "file": "/usr/bin/../lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/ \"iostream\"", |
| "line": 74 |
| } |
| }, |
| { |
| "text": " movl std::ios_base::Init::~Init(), %edi", |
| "source": { |
| "file": "/usr/bin/../lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/ \"iostream\"", |
| "line": 74 |
| } |
| }, |
| { |
| "text": " movl std::__ioinit, %esi", |
| "source": { |
| "file": "/usr/bin/../lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/ \"iostream\"", |
| "line": 74 |
| } |
| }, |
| { |
| "text": " movl $__dso_handle, %edx", |
| "source": { |
| "file": "/usr/bin/../lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/ \"iostream\"", |
| "line": 74 |
| } |
| }, |
| { |
| "text": " popq %rax", |
| "source": { |
| "file": "/usr/bin/../lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/ \"iostream\"", |
| "line": 74 |
| } |
| }, |
| { |
| "text": " jmp __cxa_atexit # TAILCALL", |
| "source": { |
| "file": "/usr/bin/../lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/ \"iostream\"", |
| "line": 74 |
| } |
| }, |
| { |
| "text": "", |
| "source": null |
| }, |
| { |
| "text": ".LCPI1_0:", |
| "source": null |
| }, |
| { |
| "text": " .quad 4648342504644416635 # double 583.36000000000001", |
| "source": null |
| }, |
| { |
| "text": "foo(int, double, float): # @foo(int, double, float)", |
| "source": null |
| }, |
| { |
| "text": " movl $583, %eax # imm = 0x247", |
| "source": { |
| "file": null, |
| "line": 4 |
| } |
| }, |
| { |
| "text": " movsd .LCPI1_0(%rip), %xmm2 # xmm2 = mem[0],zero", |
| "source": { |
| "file": null, |
| "line": 6 |
| } |
| }, |
| { |
| "text": " ucomisd %xmm0, %xmm2", |
| "source": { |
| "file": null, |
| "line": 6 |
| } |
| }, |
| { |
| "text": " jbe .LBB1_2", |
| "source": { |
| "file": null, |
| "line": 6 |
| } |
| }, |
| { |
| "text": " leal (%rdi,%rdi,4), %ecx", |
| "source": { |
| "file": null, |
| "line": 7 |
| } |
| }, |
| { |
| "text": " xorps %xmm2, %xmm2", |
| "source": { |
| "file": null, |
| "line": 8 |
| } |
| }, |
| { |
| "text": " cvtss2sd %xmm1, %xmm2", |
| "source": { |
| "file": null, |
| "line": 8 |
| } |
| }, |
| { |
| "text": " cvtsi2sdl %ecx, %xmm3", |
| "source": { |
| "file": null, |
| "line": 8 |
| } |
| }, |
| { |
| "text": " mulsd %xmm0, %xmm3", |
| "source": { |
| "file": null, |
| "line": 8 |
| } |
| }, |
| { |
| "text": " ucomisd %xmm3, %xmm2", |
| "source": { |
| "file": null, |
| "line": 8 |
| } |
| }, |
| { |
| "text": " cvttss2si %xmm1, %eax", |
| "source": { |
| "file": null, |
| "line": 12 |
| } |
| }, |
| { |
| "text": " cmoval %ecx, %eax", |
| "source": { |
| "file": null, |
| "line": 8 |
| } |
| }, |
| { |
| "text": ".LBB1_2:", |
| "source": null |
| }, |
| { |
| "text": " retq", |
| "source": { |
| "file": null, |
| "line": 17 |
| } |
| }, |
| { |
| "text": "", |
| "source": null |
| }, |
| { |
| "text": "_GLOBAL__sub_I_example.cpp: # @_GLOBAL__sub_I_example.cpp", |
| "source": null |
| }, |
| { |
| "text": " jmp __cxx_global_var_init # TAILCALL", |
| "source": { |
| "file": null, |
| "line": 0 |
| } |
| }, |
| { |
| "text": "", |
| "source": null |
| }, |
| { |
| "text": "", |
| "source": null |
| }, |
| { |
| "text": "", |
| "source": null |
| } |
| ], |
| "cfg": { |
| "__cxx_global_var_init:": { |
| "nodes": [ |
| { |
| "id": "__cxx_global_var_init:", |
| "label": "__cxx_global_var_init:\n pushq %rax\n movl std::__ioinit, %edi\n callq std::ios_base::Init::Init()\n movl std::ios_base::Init::~Init(), %edi\n movl std::__ioinit, %esi\n movl $__dso_handle, %edx\n popq %rax\n jmp __cxa_atexit" |
| } |
| ], |
| "edges": [ |
| { |
| "from": "__cxx_global_var_init:", |
| "to": "null:", |
| "arrows": "to", |
| "color": "blue" |
| } |
| ] |
| }, |
| "foo(int, double, float):": { |
| "nodes": [ |
| { |
| "id": "foo(int, double, float):", |
| "label": "foo(int, double, float):\n movl $583, %eax\n movsd .LCPI1_0(%rip), %xmm2\n ucomisd %xmm0, %xmm2\n jbe .LBB1_2" |
| }, |
| { |
| "id": "foo(int, double, float):@14", |
| "label": "foo(int, double, float):@14\n leal (%rdi,%rdi,4), %ecx\n xorps %xmm2, %xmm2\n cvtss2sd %xmm1, %xmm2\n cvtsi2sdl %ecx, %xmm3\n mulsd %xmm0, %xmm3\n ucomisd %xmm3, %xmm2\n cvttss2si %xmm1, %eax\n cmoval %ecx, %eax" |
| }, |
| { |
| "id": ".LBB1_2:", |
| "label": ".LBB1_2:\n retq" |
| } |
| ], |
| "edges": [ |
| { |
| "from": "foo(int, double, float):", |
| "to": ".LBB1_2:", |
| "arrows": "to", |
| "color": "green" |
| }, |
| { |
| "from": "foo(int, double, float):", |
| "to": "foo(int, double, float):@14", |
| "arrows": "to", |
| "color": "red" |
| }, |
| { |
| "from": "foo(int, double, float):@14", |
| "to": ".LBB1_2:", |
| "arrows": "to", |
| "color": "grey" |
| } |
| ] |
| }, |
| "_GLOBAL__sub_I_example.cpp:": { |
| "nodes": [ |
| { |
| "id": "_GLOBAL__sub_I_example.cpp:", |
| "label": "_GLOBAL__sub_I_example.cpp:\n jmp __cxx_global_var_init" |
| } |
| ], |
| "edges": [ |
| { |
| "from": "_GLOBAL__sub_I_example.cpp:", |
| "to": "null:", |
| "arrows": "to", |
| "color": "blue" |
| } |
| ] |
| } |
| } |
| } |