{
  "asm": [
    {
      "labels": [],
      "source": null,
      "text": "        .file   \"example.cpp\""
    },
    {
      "labels": [],
      "source": null,
      "text": "__SREG__ = 0x3f"
    },
    {
      "labels": [],
      "source": null,
      "text": "__SP_H__ = 0x3e"
    },
    {
      "labels": [],
      "source": null,
      "text": "__SP_L__ = 0x3d"
    },
    {
      "labels": [],
      "source": null,
      "text": "__CCP__ = 0x34"
    },
    {
      "labels": [],
      "source": null,
      "text": "__tmp_reg__ = 0"
    },
    {
      "labels": [],
      "source": null,
      "text": "__zero_reg__ = 1"
    },
    {
      "labels": [
        {
          "name": ".Ltext0",
          "range": {
            "endCol": 54,
            "startCol": 47
          }
        }
      ],
      "source": null,
      "text": "        .stabs  \"/compiler-explorer/\",100,0,4,.Ltext0"
    },
    {
      "labels": [
        {
          "name": ".Ltext0",
          "range": {
            "endCol": 94,
            "startCol": 87
          }
        }
      ],
      "source": null,
      "text": "        .stabs  \"/tmp/compiler-explorer-compiler116922-97-ldr5x6/example.cpp\",100,0,4,.Ltext0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .text"
    },
    {
      "labels": [],
      "source": null,
      "text": ".Ltext0:"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabs  \"gcc2_compiled.\",60,0,0,0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabs  \"__builtin_va_list:t(0,1)=*(0,2)=(0,2)\",128,0,0,0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabs  \"complex long double:t(0,3)=R3;8;0;\",128,0,0,0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabs  \"complex double:t(0,4)=R3;8;0;\",128,0,0,0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabs  \"complex float:t(0,5)=R3;8;0;\",128,0,0,0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabs  \"complex int:t(0,6)=s4real:(0,7)=r(0,7);-32768;32767;,0,16;imag:(0,7),16,16;;\",128,0,0,0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabs  \"long long unsigned int:t(0,8)=@s64;r(0,8);0;01777777777777777777777;\",128,0,0,0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabs  \"long unsigned int:t(0,9)=@s32;r(0,9);0;037777777777;\",128,0,0,0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabs  \"unsigned int:t(0,10)=r(0,10);0;0177777;\",128,0,0,0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabs  \"unsigned char:t(0,11)=@s8;r(0,11);0;255;\",128,0,0,0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabs  \"long long int:t(0,12)=@s64;r(0,12);01000000000000000000000;0777777777777777777777;\",128,0,0,0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabs  \"long int:t(0,13)=@s32;r(0,13);020000000000;017777777777;\",128,0,0,0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabs  \"int:t(0,7)\",128,0,0,0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabs  \"signed char:t(0,14)=@s8;r(0,14);-128;127;\",128,0,0,0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabs  \"char:t(0,15)=r(0,15);0;127;\",128,0,0,0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabs  \"signed:t(0,7)\",128,0,0,0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabs  \"unsigned long:t(0,9)\",128,0,0,0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabs  \"long long unsigned:t(0,8)\",128,0,0,0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabs  \"short int:t(0,16)=r(0,16);-32768;32767;\",128,0,0,0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabs  \"short unsigned int:t(0,17)=r(0,17);0;0177777;\",128,0,0,0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabs  \"unsigned short:t(0,17)\",128,0,0,0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabs  \"float:t(0,18)=r(0,7);4;0;\",128,0,0,0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabs  \"double:t(0,19)=r(0,7);4;0;\",128,0,0,0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabs  \"long double:t(0,20)=r(0,7);4;0;\",128,0,0,0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabs  \"void:t(0,2)\",128,0,0,0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabs  \"wchar_t:t(0,21)=r(0,21);-32768;32767;\",128,0,0,0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabs  \"bool:t(0,22)=@s8;-16;\",128,0,0,0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabs  \"__vtbl_ptr_type:t(0,23)=*(0,24)=f(0,7)\",128,0,0,0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabs  \"foo():F(0,7)\",36,0,2,foo()"
    },
    {
      "labels": [],
      "source": null,
      "text": ".global foo()"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .type   foo(), @function"
    },
    {
      "labels": [],
      "source": null,
      "text": "foo():"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabd  46,0,0"
    },
    {
      "labels": [
        {
          "name": ".LM0",
          "range": {
            "endCol": 28,
            "startCol": 24
          }
        },
        {
          "name": ".LFBB1",
          "range": {
            "endCol": 35,
            "startCol": 29
          }
        }
      ],
      "source": null,
      "text": "        .stabn  68,0,2,.LM0-.LFBB1"
    },
    {
      "labels": [],
      "source": null,
      "text": ".LM0:"
    },
    {
      "labels": [],
      "source": null,
      "text": ".LFBB1:"
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 2
      },
      "text": "        push r29"
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 2
      },
      "text": "        push r28"
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 2
      },
      "text": "        rcall ."
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 2
      },
      "text": "        rcall ."
    },
    {
      "labels": [
        {
          "name": "__SP_L__",
          "range": {
            "endCol": 24,
            "startCol": 16
          }
        }
      ],
      "source": {
        "file": null,
        "line": 2
      },
      "text": "        in r28,__SP_L__"
    },
    {
      "labels": [
        {
          "name": "__SP_H__",
          "range": {
            "endCol": 24,
            "startCol": 16
          }
        }
      ],
      "source": {
        "file": null,
        "line": 2
      },
      "text": "        in r29,__SP_H__"
    },
    {
      "labels": [],
      "source": null,
      "text": "/* prologue: function */"
    },
    {
      "labels": [],
      "source": null,
      "text": "/* frame size = 4 */"
    },
    {
      "labels": [],
      "source": null,
      "text": "/* stack size = 6 */"
    },
    {
      "labels": [],
      "source": null,
      "text": ".L__stack_usage = 6"
    },
    {
      "labels": [],
      "source": null,
      "text": ".LBB2:"
    },
    {
      "labels": [
        {
          "name": ".LM1",
          "range": {
            "endCol": 28,
            "startCol": 24
          }
        },
        {
          "name": ".LFBB1",
          "range": {
            "endCol": 35,
            "startCol": 29
          }
        }
      ],
      "source": null,
      "text": "        .stabn  68,0,3,.LM1-.LFBB1"
    },
    {
      "labels": [],
      "source": null,
      "text": ".LM1:"
    },
    {
      "labels": [
        {
          "name": "__zero_reg__",
          "range": {
            "endCol": 29,
            "startCol": 17
          }
        }
      ],
      "source": {
        "file": null,
        "line": 3
      },
      "text": "        std Y+2,__zero_reg__"
    },
    {
      "labels": [
        {
          "name": "__zero_reg__",
          "range": {
            "endCol": 29,
            "startCol": 17
          }
        }
      ],
      "source": {
        "file": null,
        "line": 3
      },
      "text": "        std Y+1,__zero_reg__"
    },
    {
      "labels": [],
      "source": null,
      "text": ".LBB3:"
    },
    {
      "labels": [
        {
          "name": ".LM2",
          "range": {
            "endCol": 28,
            "startCol": 24
          }
        },
        {
          "name": ".LFBB1",
          "range": {
            "endCol": 35,
            "startCol": 29
          }
        }
      ],
      "source": null,
      "text": "        .stabn  68,0,4,.LM2-.LFBB1"
    },
    {
      "labels": [],
      "source": null,
      "text": ".LM2:"
    },
    {
      "labels": [
        {
          "name": "__zero_reg__",
          "range": {
            "endCol": 29,
            "startCol": 17
          }
        }
      ],
      "source": {
        "file": null,
        "line": 4
      },
      "text": "        std Y+4,__zero_reg__"
    },
    {
      "labels": [
        {
          "name": "__zero_reg__",
          "range": {
            "endCol": 29,
            "startCol": 17
          }
        }
      ],
      "source": {
        "file": null,
        "line": 4
      },
      "text": "        std Y+3,__zero_reg__"
    },
    {
      "labels": [
        {
          "name": ".L2",
          "range": {
            "endCol": 17,
            "startCol": 14
          }
        }
      ],
      "source": {
        "file": null,
        "line": 4
      },
      "text": "        rjmp .L2"
    },
    {
      "labels": [],
      "source": null,
      "text": ".L4:"
    },
    {
      "labels": [
        {
          "name": ".LM3",
          "range": {
            "endCol": 28,
            "startCol": 24
          }
        },
        {
          "name": ".LFBB1",
          "range": {
            "endCol": 35,
            "startCol": 29
          }
        }
      ],
      "source": null,
      "text": "        .stabn  68,0,5,.LM3-.LFBB1"
    },
    {
      "labels": [],
      "source": null,
      "text": ".LM3:"
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 5
      },
      "text": "        rcall bar()"
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 5
      },
      "text": "        ldd r18,Y+1"
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 5
      },
      "text": "        ldd r19,Y+2"
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 5
      },
      "text": "        add r24,r18"
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 5
      },
      "text": "        adc r25,r19"
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 5
      },
      "text": "        std Y+2,r25"
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 5
      },
      "text": "        std Y+1,r24"
    },
    {
      "labels": [
        {
          "name": ".LM4",
          "range": {
            "endCol": 28,
            "startCol": 24
          }
        },
        {
          "name": ".LFBB1",
          "range": {
            "endCol": 35,
            "startCol": 29
          }
        }
      ],
      "source": null,
      "text": "        .stabn  68,0,4,.LM4-.LFBB1"
    },
    {
      "labels": [],
      "source": null,
      "text": ".LM4:"
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 4
      },
      "text": "        ldd r24,Y+3"
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 4
      },
      "text": "        ldd r25,Y+4"
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 4
      },
      "text": "        adiw r24,1"
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 4
      },
      "text": "        std Y+4,r25"
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 4
      },
      "text": "        std Y+3,r24"
    },
    {
      "labels": [],
      "source": null,
      "text": ".L2:"
    },
    {
      "labels": [
        {
          "name": ".LM5",
          "range": {
            "endCol": 28,
            "startCol": 24
          }
        },
        {
          "name": ".LFBB1",
          "range": {
            "endCol": 35,
            "startCol": 29
          }
        }
      ],
      "source": null,
      "text": "        .stabn  68,0,4,.LM5-.LFBB1"
    },
    {
      "labels": [],
      "source": null,
      "text": ".LM5:"
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 4
      },
      "text": "        ldi r18,lo8(1)"
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 4
      },
      "text": "        ldd r24,Y+3"
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 4
      },
      "text": "        ldd r25,Y+4"
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 4
      },
      "text": "        cpi r24,100"
    },
    {
      "labels": [
        {
          "name": "__zero_reg__",
          "range": {
            "endCol": 29,
            "startCol": 17
          }
        }
      ],
      "source": {
        "file": null,
        "line": 4
      },
      "text": "        cpc r25,__zero_reg__"
    },
    {
      "labels": [
        {
          "name": ".L3",
          "range": {
            "endCol": 17,
            "startCol": 14
          }
        }
      ],
      "source": {
        "file": null,
        "line": 4
      },
      "text": "        brlt .L3"
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 4
      },
      "text": "        ldi r18,lo8(0)"
    },
    {
      "labels": [],
      "source": null,
      "text": ".L3:"
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 4
      },
      "text": "        tst r18"
    },
    {
      "labels": [
        {
          "name": ".L4",
          "range": {
            "endCol": 17,
            "startCol": 14
          }
        }
      ],
      "source": {
        "file": null,
        "line": 4
      },
      "text": "        brne .L4"
    },
    {
      "labels": [],
      "source": null,
      "text": ".LBE3:"
    },
    {
      "labels": [
        {
          "name": ".LM6",
          "range": {
            "endCol": 28,
            "startCol": 24
          }
        },
        {
          "name": ".LFBB1",
          "range": {
            "endCol": 35,
            "startCol": 29
          }
        }
      ],
      "source": null,
      "text": "        .stabn  68,0,7,.LM6-.LFBB1"
    },
    {
      "labels": [],
      "source": null,
      "text": ".LM6:"
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 7
      },
      "text": "        ldd r24,Y+1"
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 7
      },
      "text": "        ldd r25,Y+2"
    },
    {
      "labels": [],
      "source": null,
      "text": "/* epilogue start */"
    },
    {
      "labels": [],
      "source": null,
      "text": ".LBE2:"
    },
    {
      "labels": [
        {
          "name": ".LM7",
          "range": {
            "endCol": 28,
            "startCol": 24
          }
        },
        {
          "name": ".LFBB1",
          "range": {
            "endCol": 35,
            "startCol": 29
          }
        }
      ],
      "source": null,
      "text": "        .stabn  68,0,8,.LM7-.LFBB1"
    },
    {
      "labels": [],
      "source": null,
      "text": ".LM7:"
    },
    {
      "labels": [
        {
          "name": "__tmp_reg__",
          "range": {
            "endCol": 24,
            "startCol": 13
          }
        }
      ],
      "source": {
        "file": null,
        "line": 8
      },
      "text": "        pop __tmp_reg__"
    },
    {
      "labels": [
        {
          "name": "__tmp_reg__",
          "range": {
            "endCol": 24,
            "startCol": 13
          }
        }
      ],
      "source": {
        "file": null,
        "line": 8
      },
      "text": "        pop __tmp_reg__"
    },
    {
      "labels": [
        {
          "name": "__tmp_reg__",
          "range": {
            "endCol": 24,
            "startCol": 13
          }
        }
      ],
      "source": {
        "file": null,
        "line": 8
      },
      "text": "        pop __tmp_reg__"
    },
    {
      "labels": [
        {
          "name": "__tmp_reg__",
          "range": {
            "endCol": 24,
            "startCol": 13
          }
        }
      ],
      "source": {
        "file": null,
        "line": 8
      },
      "text": "        pop __tmp_reg__"
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 8
      },
      "text": "        pop r28"
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 8
      },
      "text": "        pop r29"
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 8
      },
      "text": "        ret"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .size   foo(), .-foo()"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabs  \"a:(0,7)\",128,0,3,1"
    },
    {
      "labels": [
        {
          "name": ".LBB2",
          "range": {
            "endCol": 30,
            "startCol": 25
          }
        },
        {
          "name": ".LFBB1",
          "range": {
            "endCol": 37,
            "startCol": 31
          }
        }
      ],
      "source": null,
      "text": "        .stabn  192,0,0,.LBB2-.LFBB1"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabs  \"i:(0,7)\",128,0,4,3"
    },
    {
      "labels": [
        {
          "name": ".LBB3",
          "range": {
            "endCol": 30,
            "startCol": 25
          }
        },
        {
          "name": ".LFBB1",
          "range": {
            "endCol": 37,
            "startCol": 31
          }
        }
      ],
      "source": null,
      "text": "        .stabn  192,0,0,.LBB3-.LFBB1"
    },
    {
      "labels": [
        {
          "name": ".LBE3",
          "range": {
            "endCol": 30,
            "startCol": 25
          }
        },
        {
          "name": ".LFBB1",
          "range": {
            "endCol": 37,
            "startCol": 31
          }
        }
      ],
      "source": null,
      "text": "        .stabn  224,0,0,.LBE3-.LFBB1"
    },
    {
      "labels": [
        {
          "name": ".LBE2",
          "range": {
            "endCol": 30,
            "startCol": 25
          }
        },
        {
          "name": ".LFBB1",
          "range": {
            "endCol": 37,
            "startCol": 31
          }
        }
      ],
      "source": null,
      "text": "        .stabn  224,0,0,.LBE2-.LFBB1"
    },
    {
      "labels": [],
      "source": null,
      "text": ".Lscope1:"
    },
    {
      "labels": [
        {
          "name": ".Lscope1",
          "range": {
            "endCol": 35,
            "startCol": 27
          }
        },
        {
          "name": ".LFBB1",
          "range": {
            "endCol": 42,
            "startCol": 36
          }
        }
      ],
      "source": null,
      "text": "        .stabs  \"\",36,0,0,.Lscope1-.LFBB1"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .stabd  78,0,0"
    },
    {
      "labels": [
        {
          "name": ".Letext0",
          "range": {
            "endCol": 36,
            "startCol": 28
          }
        }
      ],
      "source": null,
      "text": "        .stabs  \"\",100,0,0,.Letext0"
    },
    {
      "labels": [],
      "source": null,
      "text": ".Letext0:"
    }
  ],
  "labelDefinitions": {
    ".L2": 86,
    ".L3": 96,
    ".L4": 69,
    ".LBB2": 58,
    ".LBB3": 63,
    ".LBE2": 105,
    ".LBE3": 99,
    ".LFBB1": 47,
    ".LM0": 46,
    ".LM1": 60,
    ".LM2": 65,
    ".LM3": 71,
    ".LM4": 80,
    ".LM5": 88,
    ".LM6": 101,
    ".LM7": 107,
    ".Letext0": 126,
    ".Lscope1": 122,
    ".Ltext0": 11,
    "__CCP__": 5,
    "__SP_H__": 3,
    "__SP_L__": 4,
    "__SREG__": 2,
    "__tmp_reg__": 6,
    "__zero_reg__": 7
  }
}
