Explore
/
Sign In
/
Unknown
Unknown
Fork
Star
Artifacts
function
short_circuit_loop0
cfg.svg
0 lines
|
20.51 KB
<svg width="973.800049" xmlns="http://www.w3.org/2000/svg" viewbox="-209.40 -50.00 973.80 1826.50" height="1826.500000"><defs><marker orient="auto" markerWidth="8.000000" refX="8.000000" refY="4.000000" markerHeight="8.000000" id="unconditional-arrow-head"><polygon points="0, 8.000000 3.000000, 4.000000 0, 0 8.000000, 4.000000"></polygon></marker><marker orient="auto" markerWidth="8.000000" refX="8.000000" refY="4.000000" markerHeight="8.000000" id="call-arrow-head"><polygon points="0, 8.000000 3.000000, 4.000000 0, 0 8.000000, 4.000000"></polygon></marker><marker orient="auto" markerWidth="8.000000" refX="8.000000" refY="4.000000" markerHeight="8.000000" id="taken-arrow-head"><polygon points="0, 8.000000 3.000000, 4.000000 0, 0 8.000000, 4.000000"></polygon></marker><marker orient="auto" markerWidth="8.000000" refX="8.000000" refY="4.000000" markerHeight="8.000000" id="refused-arrow-head"><polygon points="0, 8.000000 3.000000, 4.000000 0, 0 8.000000, 4.000000"></polygon></marker></defs><path d="M 20.00 423.00 L 20.00 483.00 L 230.82 483.00 L 230.82 563.00" class="unconditional-edge" marker-end="url(#unconditional-arrow-head)" fill="none"></path><path d="M 240.82 719.50 L 240.82 759.50 L 259.40 759.50 L 259.40 839.50" class="refused-edge" marker-end="url(#refused-arrow-head)" fill="none"></path><path d="M 230.82 719.50 L 230.82 779.50 L 0.00 779.50 L 0.00 983.00 L 200.90 983.00 L 200.90 1063.00" class="taken-edge" marker-end="url(#taken-arrow-head)" fill="none"></path><path d="M 259.40 943.00 L 259.40 1003.00 L 210.90 1003.00 L 210.90 1063.00" class="unconditional-edge" marker-end="url(#unconditional-arrow-head)" fill="none"></path><path d="M 200.90 1193.00 L 200.90 1253.00 L 0.00 1253.00 L 0.00 1313.00" class="refused-edge" marker-end="url(#refused-arrow-head)" fill="none"></path><path d="M 210.90 1193.00 L 210.90 1233.00 L 411.80 1233.00 L 411.80 1313.00" class="taken-edge" marker-end="url(#taken-arrow-head)" fill="none"></path><path d="M 0.00 1390.00 L 0.00 1556.50" class="unconditional-edge" marker-end="url(#unconditional-arrow-head)" fill="none"></path><path d="M 411.80 1416.50 L 411.80 1476.50 L 287.60 1476.50 L 287.60 1556.50" class="unconditional-edge" marker-end="url(#unconditional-arrow-head)" fill="none"></path><path d="M 287.60 1633.50 L 287.60 1726.50 L 476.80 1726.50 L 476.80 1496.50 L 714.40 1496.50 L 714.40 503.00 L 240.82 503.00 L 240.82 563.00" class="unconditional-edge" marker-end="url(#unconditional-arrow-head)" fill="none"></path><path d="M 20.00 54.00 L 20.00 134.00" class="unconditional-edge" marker-end="url(#unconditional-arrow-head)" fill="none"></path><foreignObject width="358.800018" class="node-contents" x="-159.399994" y="134.000000" height="289.000000"><body xmlns="http://www.w3.org/1999/xhtml"><div data-scope="asm.basic-block"><span data-location-definition="/function/0x4012d0:Code_x86_64" data-token="asm.label" data-action-context-location="/function/0x4012d0:Code_x86_64">short_circuit_loop0</span><span data-token="asm.label-indicator">:</span> <span data-location-definition="/instruction/0x4012d0:Code_x86_64/0x4012d0:Code_x86_64/0x4012d0:Code_x86_64"></span><div data-scope="asm.instruction" data-action-context-location="/instruction/0x4012d0:Code_x86_64/0x4012d0:Code_x86_64/0x4012d0:Code_x86_64"><div><span data-token="indentation"> </span><span data-token="asm.mnemonic">push</span> <span data-token="asm.register">rbp</span> </div></div><span data-location-definition="/instruction/0x4012d0:Code_x86_64/0x4012d0:Code_x86_64/0x4012d1:Code_x86_64"></span><div data-scope="asm.instruction" data-action-context-location="/instruction/0x4012d0:Code_x86_64/0x4012d0:Code_x86_64/0x4012d1:Code_x86_64"><div><span data-token="indentation"> </span><span data-token="asm.mnemonic">mov</span> <span data-token="asm.register">rbp</span>, <span data-token="asm.register">rsp</span> </div></div><span data-location-definition="/instruction/0x4012d0:Code_x86_64/0x4012d0:Code_x86_64/0x4012d4:Code_x86_64"></span><div data-scope="asm.instruction" data-action-context-location="/instruction/0x4012d0:Code_x86_64/0x4012d0:Code_x86_64/0x4012d4:Code_x86_64"><div><span data-token="indentation"> </span><span data-token="asm.mnemonic">sub</span> <span data-token="asm.register">rsp</span>, <span data-token="asm.immediate-value">0x10</span> </div></div><span data-location-definition="/instruction/0x4012d0:Code_x86_64/0x4012d0:Code_x86_64/0x4012d8:Code_x86_64"></span><div data-scope="asm.instruction" data-action-context-location="/instruction/0x4012d0:Code_x86_64/0x4012d0:Code_x86_64/0x4012d8:Code_x86_64"><div><span data-token="indentation"> </span><span data-token="asm.mnemonic">mov</span> <span data-token="asm.register">al</span>, <span data-token="asm.register">sil</span> </div></div><span data-location-definition="/instruction/0x4012d0:Code_x86_64/0x4012d0:Code_x86_64/0x4012db:Code_x86_64"></span><div data-scope="asm.instruction" data-action-context-location="/instruction/0x4012d0:Code_x86_64/0x4012d0:Code_x86_64/0x4012db:Code_x86_64"><div><span data-token="indentation"> </span><span data-token="asm.mnemonic">mov</span> <span data-token="asm.register">cl</span>, <span data-token="asm.register">dil</span> </div></div><span data-location-definition="/instruction/0x4012d0:Code_x86_64/0x4012d0:Code_x86_64/0x4012de:Code_x86_64"></span><div data-scope="asm.instruction" data-action-context-location="/instruction/0x4012d0:Code_x86_64/0x4012d0:Code_x86_64/0x4012de:Code_x86_64"><div><span data-token="indentation"> </span><span data-token="asm.mnemonic">and</span> <span data-token="asm.register">cl</span>, <span data-token="asm.immediate-value">0x1</span> </div></div><span data-location-definition="/instruction/0x4012d0:Code_x86_64/0x4012d0:Code_x86_64/0x4012e1:Code_x86_64"></span><div data-scope="asm.instruction" data-action-context-location="/instruction/0x4012d0:Code_x86_64/0x4012d0:Code_x86_64/0x4012e1:Code_x86_64"><div><span data-token="indentation"> </span><span data-token="asm.mnemonic">mov</span> byte ptr <span data-token="asm.memory-operand">[</span><span data-token="asm.register">rbp</span> <span data-token="asm.memory-operand">-</span> <span data-token="asm.immediate-value">0x1</span><span data-token="asm.memory-operand">]</span>, <span data-token="asm.register">cl</span> </div></div><span data-location-definition="/instruction/0x4012d0:Code_x86_64/0x4012d0:Code_x86_64/0x4012e4:Code_x86_64"></span><div data-scope="asm.instruction" data-action-context-location="/instruction/0x4012d0:Code_x86_64/0x4012d0:Code_x86_64/0x4012e4:Code_x86_64"><div><span data-token="indentation"> </span><span data-token="asm.mnemonic">and</span> al, <span data-token="asm.immediate-value">0x1</span> </div></div><span data-location-definition="/instruction/0x4012d0:Code_x86_64/0x4012d0:Code_x86_64/0x4012e6:Code_x86_64"></span><div data-scope="asm.instruction" data-action-context-location="/instruction/0x4012d0:Code_x86_64/0x4012d0:Code_x86_64/0x4012e6:Code_x86_64" data-location-references="/basic-block/0x4012d0:Code_x86_64/0x4012e9:Code_x86_64"><div><span data-token="indentation"> </span><span data-token="asm.mnemonic">mov</span> byte ptr <span data-token="asm.memory-operand">[</span><span data-token="asm.register">rbp</span> <span data-token="asm.memory-operand">-</span> <span data-token="asm.immediate-value">0x2</span><span data-token="asm.memory-operand">]</span>, <span data-token="asm.register">al</span> </div></div></div> </body></foreignObject><rect width="358.800018" class="node-body" x="-159.399994" y="134.000000" rx="5" ry="5" height="289.000000"></rect><foreignObject width="380.399994" class="node-contents" x="45.618210" y="563.000000" height="156.500000"><body xmlns="http://www.w3.org/1999/xhtml"><div data-scope="asm.basic-block"><span data-location-definition="/basic-block/0x4012d0:Code_x86_64/0x4012e9:Code_x86_64" data-token="asm.label" data-action-context-location="/basic-block/0x4012d0:Code_x86_64/0x4012e9:Code_x86_64">bb_0x4012e9</span><span data-token="asm.label-indicator">:</span> <span data-location-definition="/instruction/0x4012d0:Code_x86_64/0x4012e9:Code_x86_64/0x4012e9:Code_x86_64"></span><div data-scope="asm.instruction" data-action-context-location="/instruction/0x4012d0:Code_x86_64/0x4012e9:Code_x86_64/0x4012e9:Code_x86_64"><div><span data-token="indentation"> </span><span data-token="asm.mnemonic">mov</span> <span data-token="asm.register">al</span>, <span data-token="asm.immediate-value">0x1</span> </div></div><span data-location-definition="/instruction/0x4012d0:Code_x86_64/0x4012e9:Code_x86_64/0x4012eb:Code_x86_64"></span><div data-scope="asm.instruction" data-action-context-location="/instruction/0x4012d0:Code_x86_64/0x4012e9:Code_x86_64/0x4012eb:Code_x86_64"><div><span data-token="indentation"> </span><span data-token="asm.mnemonic">test</span> byte ptr <span data-token="asm.memory-operand">[</span><span data-token="asm.register">rbp</span> <span data-token="asm.memory-operand">-</span> <span data-token="asm.immediate-value">0x1</span><span data-token="asm.memory-operand">]</span>, <span data-token="asm.immediate-value">0x1</span> </div></div><span data-location-definition="/instruction/0x4012d0:Code_x86_64/0x4012e9:Code_x86_64/0x4012ef:Code_x86_64"></span><div data-scope="asm.instruction" data-action-context-location="/instruction/0x4012d0:Code_x86_64/0x4012e9:Code_x86_64/0x4012ef:Code_x86_64"><div><span data-token="indentation"> </span><span data-token="asm.mnemonic">mov</span> byte ptr <span data-token="asm.memory-operand">[</span><span data-token="asm.register">rbp</span> <span data-token="asm.memory-operand">-</span> <span data-token="asm.immediate-value">0x3</span><span data-token="asm.memory-operand">]</span>, <span data-token="asm.register">al</span> </div></div><span data-location-definition="/instruction/0x4012d0:Code_x86_64/0x4012e9:Code_x86_64/0x4012f2:Code_x86_64"></span><div data-scope="asm.instruction" data-action-context-location="/instruction/0x4012d0:Code_x86_64/0x4012e9:Code_x86_64/0x4012f2:Code_x86_64" data-location-references="/basic-block/0x4012d0:Code_x86_64/0x4012fe:Code_x86_64"><div><span data-token="indentation"> </span><span data-token="asm.mnemonic">j</span><span data-token="asm.mnemonic-suffix">ne</span> <span data-token="asm.label" data-location-references="/basic-block/0x4012d0:Code_x86_64/0x4012fe:Code_x86_64">bb_0x4012fe</span> </div></div></div> </body></foreignObject><rect width="380.399994" class="node-body" x="45.618210" y="563.000000" rx="5" ry="5" height="156.500000"></rect><foreignObject width="358.800018" class="node-contents" x="80.000015" y="839.500000" height="103.500000"><body xmlns="http://www.w3.org/1999/xhtml"><div data-scope="asm.basic-block"><span data-location-definition="/basic-block/0x4012d0:Code_x86_64/0x4012f8:Code_x86_64" data-token="asm.label" data-action-context-location="/basic-block/0x4012d0:Code_x86_64/0x4012f8:Code_x86_64">bb_0x4012f8</span><span data-token="asm.label-indicator">:</span> <span data-location-definition="/instruction/0x4012d0:Code_x86_64/0x4012f8:Code_x86_64/0x4012f8:Code_x86_64"></span><div data-scope="asm.instruction" data-action-context-location="/instruction/0x4012d0:Code_x86_64/0x4012f8:Code_x86_64/0x4012f8:Code_x86_64"><div><span data-token="indentation"> </span><span data-token="asm.mnemonic">mov</span> <span data-token="asm.register">al</span>, byte ptr <span data-token="asm.memory-operand">[</span><span data-token="asm.register">rbp</span> <span data-token="asm.memory-operand">-</span> <span data-token="asm.immediate-value">0x2</span><span data-token="asm.memory-operand">]</span> </div></div><span data-location-definition="/instruction/0x4012d0:Code_x86_64/0x4012f8:Code_x86_64/0x4012fb:Code_x86_64"></span><div data-scope="asm.instruction" data-action-context-location="/instruction/0x4012d0:Code_x86_64/0x4012f8:Code_x86_64/0x4012fb:Code_x86_64" data-location-references="/basic-block/0x4012d0:Code_x86_64/0x4012fe:Code_x86_64"><div><span data-token="indentation"> </span><span data-token="asm.mnemonic">mov</span> byte ptr <span data-token="asm.memory-operand">[</span><span data-token="asm.register">rbp</span> <span data-token="asm.memory-operand">-</span> <span data-token="asm.immediate-value">0x3</span><span data-token="asm.memory-operand">]</span>, <span data-token="asm.register">al</span> </div></div></div> </body></foreignObject><rect width="358.800018" class="node-body" x="80.000015" y="839.500000" rx="5" ry="5" height="103.500000"></rect><foreignObject width="358.800018" class="node-contents" x="26.499985" y="1063.000000" height="130.000000"><body xmlns="http://www.w3.org/1999/xhtml"><div data-scope="asm.basic-block"><span data-location-definition="/basic-block/0x4012d0:Code_x86_64/0x4012fe:Code_x86_64" data-token="asm.label" data-action-context-location="/basic-block/0x4012d0:Code_x86_64/0x4012fe:Code_x86_64">bb_0x4012fe</span><span data-token="asm.label-indicator">:</span> <span data-location-definition="/instruction/0x4012d0:Code_x86_64/0x4012fe:Code_x86_64/0x4012fe:Code_x86_64"></span><div data-scope="asm.instruction" data-action-context-location="/instruction/0x4012d0:Code_x86_64/0x4012fe:Code_x86_64/0x4012fe:Code_x86_64"><div><span data-token="indentation"> </span><span data-token="asm.mnemonic">mov</span> <span data-token="asm.register">al</span>, byte ptr <span data-token="asm.memory-operand">[</span><span data-token="asm.register">rbp</span> <span data-token="asm.memory-operand">-</span> <span data-token="asm.immediate-value">0x3</span><span data-token="asm.memory-operand">]</span> </div></div><span data-location-definition="/instruction/0x4012d0:Code_x86_64/0x4012fe:Code_x86_64/0x401301:Code_x86_64"></span><div data-scope="asm.instruction" data-action-context-location="/instruction/0x4012d0:Code_x86_64/0x4012fe:Code_x86_64/0x401301:Code_x86_64"><div><span data-token="indentation"> </span><span data-token="asm.mnemonic">test</span> al, <span data-token="asm.immediate-value">0x1</span> </div></div><span data-location-definition="/instruction/0x4012d0:Code_x86_64/0x4012fe:Code_x86_64/0x401303:Code_x86_64"></span><div data-scope="asm.instruction" data-action-context-location="/instruction/0x4012d0:Code_x86_64/0x4012fe:Code_x86_64/0x401303:Code_x86_64" data-location-references="/basic-block/0x4012d0:Code_x86_64/0x40130e:Code_x86_64"><div><span data-token="indentation"> </span><span data-token="asm.mnemonic">j</span><span data-token="asm.mnemonic-suffix">ne</span> <span data-token="asm.label" data-location-references="/basic-block/0x4012d0:Code_x86_64/0x40130e:Code_x86_64">bb_0x40130e</span> </div></div></div> </body></foreignObject><rect width="358.800018" class="node-body" x="26.499985" y="1063.000000" rx="5" ry="5" height="130.000000"></rect><foreignObject width="218.400009" class="node-contents" x="-109.200005" y="1313.000000" height="77.000000"><body xmlns="http://www.w3.org/1999/xhtml"><div data-scope="asm.basic-block"><span data-location-definition="/basic-block/0x4012d0:Code_x86_64/0x401309:Code_x86_64" data-token="asm.label" data-action-context-location="/basic-block/0x4012d0:Code_x86_64/0x401309:Code_x86_64">bb_0x401309</span><span data-token="asm.label-indicator">:</span> <span data-location-definition="/instruction/0x4012d0:Code_x86_64/0x401309:Code_x86_64/0x401309:Code_x86_64"></span><div data-scope="asm.instruction" data-action-context-location="/instruction/0x4012d0:Code_x86_64/0x401309:Code_x86_64/0x401309:Code_x86_64" data-location-references="/basic-block/0x4012d0:Code_x86_64/0x40131f:Code_x86_64"><div><span data-token="indentation"> </span><span data-token="asm.mnemonic">jmp</span> <span data-token="asm.label" data-location-references="/basic-block/0x4012d0:Code_x86_64/0x40131f:Code_x86_64">bb_0x40131f</span> </div></div></div> </body></foreignObject><rect width="218.400009" class="node-body" x="-109.200005" y="1313.000000" rx="5" ry="5" height="77.000000"></rect><foreignObject width="445.200012" class="node-contents" x="189.200012" y="1313.000000" height="103.500000"><body xmlns="http://www.w3.org/1999/xhtml"><div data-scope="asm.basic-block"><span data-location-definition="/basic-block/0x4012d0:Code_x86_64/0x40130e:Code_x86_64" data-token="asm.label" data-action-context-location="/basic-block/0x4012d0:Code_x86_64/0x40130e:Code_x86_64">bb_0x40130e</span><span data-token="asm.label-indicator">:</span> <span data-location-definition="/instruction/0x4012d0:Code_x86_64/0x40130e:Code_x86_64/0x40130e:Code_x86_64"></span><div data-scope="asm.instruction" data-action-context-location="/instruction/0x4012d0:Code_x86_64/0x40130e:Code_x86_64/0x40130e:Code_x86_64"><div><span data-token="indentation"> </span><span data-token="asm.mnemonic">lea</span> <span data-token="asm.register">rdi</span>, <span data-token="asm.memory-operand">[</span><span data-token="asm.register">rip</span> <span data-token="asm.memory-operand">+</span> <span data-token="asm.helper">offset_to(</span><span data-token="asm.immediate-value">0x402000</span><span data-token="asm.helper">)</span><span data-token="asm.memory-operand">]</span> </div></div><span data-location-definition="/instruction/0x4012d0:Code_x86_64/0x40130e:Code_x86_64/0x401315:Code_x86_64"></span><div data-scope="asm.instruction" data-action-context-location="/instruction/0x4012d0:Code_x86_64/0x40130e:Code_x86_64/0x401315:Code_x86_64" data-location-references="/function/0x401030:Code_x86_64"><div><span data-token="indentation"> </span><span data-token="asm.mnemonic">call</span> <span data-token="asm.label" data-location-references="/function/0x401030:Code_x86_64">puts_2</span> </div></div></div> </body></foreignObject><rect width="445.200012" class="node-body" x="189.200012" y="1313.000000" rx="5" ry="5" height="103.500000"></rect><foreignObject width="218.400009" class="node-contents" x="178.399994" y="1556.500000" height="77.000000"><body xmlns="http://www.w3.org/1999/xhtml"><div data-scope="asm.basic-block"><span data-location-definition="/basic-block/0x4012d0:Code_x86_64/0x40131a:Code_x86_64" data-token="asm.label" data-action-context-location="/basic-block/0x4012d0:Code_x86_64/0x40131a:Code_x86_64">bb_0x40131a</span><span data-token="asm.label-indicator">:</span> <span data-location-definition="/instruction/0x4012d0:Code_x86_64/0x40131a:Code_x86_64/0x40131a:Code_x86_64"></span><div data-scope="asm.instruction" data-action-context-location="/instruction/0x4012d0:Code_x86_64/0x40131a:Code_x86_64/0x40131a:Code_x86_64" data-location-references="/basic-block/0x4012d0:Code_x86_64/0x4012e9:Code_x86_64"><div><span data-token="indentation"> </span><span data-token="asm.mnemonic">jmp</span> <span data-token="asm.label" data-location-references="/basic-block/0x4012d0:Code_x86_64/0x4012e9:Code_x86_64">bb_0x4012e9</span> </div></div></div> </body></foreignObject><rect width="218.400009" class="node-body" x="178.399994" y="1556.500000" rx="5" ry="5" height="77.000000"></rect><foreignObject width="196.800003" class="node-contents" x="-98.400002" y="1556.500000" height="130.000000"><body xmlns="http://www.w3.org/1999/xhtml"><div data-scope="asm.basic-block"><span data-location-definition="/basic-block/0x4012d0:Code_x86_64/0x40131f:Code_x86_64" data-token="asm.label" data-action-context-location="/basic-block/0x4012d0:Code_x86_64/0x40131f:Code_x86_64">bb_0x40131f</span><span data-token="asm.label-indicator">:</span> <span data-location-definition="/instruction/0x4012d0:Code_x86_64/0x40131f:Code_x86_64/0x40131f:Code_x86_64"></span><div data-scope="asm.instruction" data-action-context-location="/instruction/0x4012d0:Code_x86_64/0x40131f:Code_x86_64/0x40131f:Code_x86_64"><div><span data-token="indentation"> </span><span data-token="asm.mnemonic">add</span> <span data-token="asm.register">rsp</span>, <span data-token="asm.immediate-value">0x10</span> </div></div><span data-location-definition="/instruction/0x4012d0:Code_x86_64/0x40131f:Code_x86_64/0x401323:Code_x86_64"></span><div data-scope="asm.instruction" data-action-context-location="/instruction/0x4012d0:Code_x86_64/0x40131f:Code_x86_64/0x401323:Code_x86_64"><div><span data-token="indentation"> </span><span data-token="asm.mnemonic">pop</span> <span data-token="asm.register">rbp</span> </div></div><span data-location-definition="/instruction/0x4012d0:Code_x86_64/0x40131f:Code_x86_64/0x401324:Code_x86_64"></span><div data-scope="asm.instruction" data-action-context-location="/instruction/0x4012d0:Code_x86_64/0x40131f:Code_x86_64/0x401324:Code_x86_64" data-location-references=""><div><span data-token="indentation"> </span><span data-token="asm.mnemonic">ret</span> </div></div></div> </body></foreignObject><rect width="196.800003" class="node-body" x="-98.400002" y="1556.500000" rx="5" ry="5" height="130.000000"></rect><foreignObject width="54.000000" class="node-contents" x="-6.999985" y="0.000000" height="54.000000"><body xmlns="http://www.w3.org/1999/xhtml"></body></foreignObject><rect width="54.000000" class="node-body" x="-6.999985" y="0.000000" rx="5" ry="5" height="54.000000"></rect></svg>
Loading...