{
  "asm": [
    {
      "labels": [],
      "source": null,
      "text": "        .file   \"example.cpp\""
    },
    {
      "labels": [],
      "source": null,
      "text": ".text"
    },
    {
      "labels": [],
      "source": null,
      "text": ".Ltext0:"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .balign 2"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .global foo()"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .type   foo(), @function"
    },
    {
      "labels": [],
      "source": null,
      "text": "foo():"
    },
    {
      "labels": [],
      "source": null,
      "text": ".LFB0:"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .file 1 \"/tmp/compiler-explorer-compiler118016-63-en7728.30nfm/example.cpp\""
    },
    {
      "labels": [],
      "source": null,
      "text": "        .loc 1 1 0"
    },
    {
      "labels": [],
      "source": null,
      "text": "; start of function"
    },
    {
      "labels": [],
      "source": null,
      "text": "; framesize_regs:     2"
    },
    {
      "labels": [],
      "source": null,
      "text": "; framesize_locals:   0"
    },
    {
      "labels": [],
      "source": null,
      "text": "; framesize_outgoing: 0"
    },
    {
      "labels": [],
      "source": null,
      "text": "; framesize:          2"
    },
    {
      "labels": [],
      "source": null,
      "text": "; elim ap -> fp       4"
    },
    {
      "labels": [],
      "source": null,
      "text": "; elim fp -> sp       0"
    },
    {
      "labels": [],
      "source": null,
      "text": "; saved regs: R4"
    },
    {
      "labels": [],
      "source": null,
      "text": "        ; start of prologue"
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 1
      },
      "text": "        PUSHM.W #1, R4"
    },
    {
      "labels": [],
      "source": null,
      "text": ".LCFI0:"
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 1
      },
      "text": "        MOV.W   R1, R4"
    },
    {
      "labels": [],
      "source": null,
      "text": ".LCFI1:"
    },
    {
      "labels": [],
      "source": null,
      "text": "        ; end of prologue"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .loc 1 2 0"
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 2
      },
      "text": "        MOV.B   #3, R12"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .loc 1 3 0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        ; start of epilogue"
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 3
      },
      "text": "        POPM.W  #1, r4"
    },
    {
      "labels": [],
      "source": {
        "file": null,
        "line": 3
      },
      "text": "        RET"
    },
    {
      "labels": [],
      "source": null,
      "text": ".LFE0:"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .size   foo(), .-foo()"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .section        .debug_frame,\"\",@progbits"
    },
    {
      "labels": [],
      "source": null,
      "text": ".Lframe0:"
    },
    {
      "labels": [
        {
          "name": ".LECIE0",
          "range": {
            "endCol": 24,
            "startCol": 17
          }
        },
        {
          "name": ".LSCIE0",
          "range": {
            "endCol": 32,
            "startCol": 25
          }
        }
      ],
      "source": null,
      "text": "        .4byte  .LECIE0-.LSCIE0"
    },
    {
      "labels": [],
      "source": null,
      "text": ".LSCIE0:"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .4byte  0xffffffff"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .byte   0x3"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .string \"\""
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x1"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .sleb128 -2"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .byte   0xc"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x1"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x2"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .byte   0x80"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x1"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .balign 4"
    },
    {
      "labels": [],
      "source": null,
      "text": ".LECIE0:"
    },
    {
      "labels": [],
      "source": null,
      "text": ".LSFDE0:"
    },
    {
      "labels": [
        {
          "name": ".LEFDE0",
          "range": {
            "endCol": 24,
            "startCol": 17
          }
        },
        {
          "name": ".LASFDE0",
          "range": {
            "endCol": 33,
            "startCol": 25
          }
        }
      ],
      "source": null,
      "text": "        .4byte  .LEFDE0-.LASFDE0"
    },
    {
      "labels": [],
      "source": null,
      "text": ".LASFDE0:"
    },
    {
      "labels": [
        {
          "name": ".Lframe0",
          "range": {
            "endCol": 25,
            "startCol": 17
          }
        }
      ],
      "source": null,
      "text": "        .4byte  .Lframe0"
    },
    {
      "labels": [
        {
          "name": ".LFB0",
          "range": {
            "endCol": 22,
            "startCol": 17
          }
        }
      ],
      "source": null,
      "text": "        .4byte  .LFB0"
    },
    {
      "labels": [
        {
          "name": ".LFE0",
          "range": {
            "endCol": 22,
            "startCol": 17
          }
        },
        {
          "name": ".LFB0",
          "range": {
            "endCol": 28,
            "startCol": 23
          }
        }
      ],
      "source": null,
      "text": "        .4byte  .LFE0-.LFB0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .byte   0x4"
    },
    {
      "labels": [
        {
          "name": ".LCFI0",
          "range": {
            "endCol": 23,
            "startCol": 17
          }
        },
        {
          "name": ".LFB0",
          "range": {
            "endCol": 29,
            "startCol": 24
          }
        }
      ],
      "source": null,
      "text": "        .4byte  .LCFI0-.LFB0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .byte   0xe"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x4"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .byte   0x84"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x2"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .byte   0x4"
    },
    {
      "labels": [
        {
          "name": ".LCFI1",
          "range": {
            "endCol": 23,
            "startCol": 17
          }
        },
        {
          "name": ".LCFI0",
          "range": {
            "endCol": 30,
            "startCol": 24
          }
        }
      ],
      "source": null,
      "text": "        .4byte  .LCFI1-.LCFI0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .byte   0xd"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x4"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .balign 4"
    },
    {
      "labels": [],
      "source": null,
      "text": ".LEFDE0:"
    },
    {
      "labels": [],
      "source": null,
      "text": ".text"
    },
    {
      "labels": [],
      "source": null,
      "text": ".Letext0:"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .section        .debug_info,\"\",@progbits"
    },
    {
      "labels": [],
      "source": null,
      "text": ".Ldebug_info0:"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .4byte  0x3e"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .2byte  0x4"
    },
    {
      "labels": [
        {
          "name": ".Ldebug_abbrev0",
          "range": {
            "endCol": 32,
            "startCol": 17
          }
        }
      ],
      "source": null,
      "text": "        .4byte  .Ldebug_abbrev0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .byte   0x4"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x1"
    },
    {
      "labels": [
        {
          "name": ".LASF0",
          "range": {
            "endCol": 23,
            "startCol": 17
          }
        }
      ],
      "source": null,
      "text": "        .4byte  .LASF0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .byte   0x4"
    },
    {
      "labels": [
        {
          "name": ".LASF1",
          "range": {
            "endCol": 23,
            "startCol": 17
          }
        }
      ],
      "source": null,
      "text": "        .4byte  .LASF1"
    },
    {
      "labels": [
        {
          "name": ".Ltext0",
          "range": {
            "endCol": 24,
            "startCol": 17
          }
        }
      ],
      "source": null,
      "text": "        .4byte  .Ltext0"
    },
    {
      "labels": [
        {
          "name": ".Letext0",
          "range": {
            "endCol": 25,
            "startCol": 17
          }
        },
        {
          "name": ".Ltext0",
          "range": {
            "endCol": 33,
            "startCol": 26
          }
        }
      ],
      "source": null,
      "text": "        .4byte  .Letext0-.Ltext0"
    },
    {
      "labels": [
        {
          "name": ".Ldebug_line0",
          "range": {
            "endCol": 30,
            "startCol": 17
          }
        }
      ],
      "source": null,
      "text": "        .4byte  .Ldebug_line0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x2"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .string \"foo\""
    },
    {
      "labels": [],
      "source": null,
      "text": "        .byte   0x1"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .byte   0x1"
    },
    {
      "labels": [
        {
          "name": ".LASF2",
          "range": {
            "endCol": 23,
            "startCol": 17
          }
        }
      ],
      "source": null,
      "text": "        .4byte  .LASF2"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .4byte  0x3a"
    },
    {
      "labels": [
        {
          "name": ".LFB0",
          "range": {
            "endCol": 22,
            "startCol": 17
          }
        }
      ],
      "source": null,
      "text": "        .4byte  .LFB0"
    },
    {
      "labels": [
        {
          "name": ".LFE0",
          "range": {
            "endCol": 22,
            "startCol": 17
          }
        },
        {
          "name": ".LFB0",
          "range": {
            "endCol": 28,
            "startCol": 23
          }
        }
      ],
      "source": null,
      "text": "        .4byte  .LFE0-.LFB0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x1"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .byte   0x9c"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x3"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .byte   0x2"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .byte   0x5"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .string \"int\""
    },
    {
      "labels": [],
      "source": null,
      "text": "        .byte   0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .section        .debug_abbrev,\"\",@progbits"
    },
    {
      "labels": [],
      "source": null,
      "text": ".Ldebug_abbrev0:"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x1"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x11"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .byte   0x1"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x25"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0xe"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x13"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0xb"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x3"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0xe"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x11"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x1"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x12"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x6"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x10"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x17"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .byte   0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .byte   0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x2"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x2e"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .byte   0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x3f"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x19"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x3"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x8"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x3a"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0xb"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x3b"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0xb"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x6e"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0xe"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x49"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x13"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x11"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x1"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x12"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x6"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x40"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x18"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x2117"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x19"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .byte   0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .byte   0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x3"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x24"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .byte   0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0xb"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0xb"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x3e"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0xb"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x3"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .uleb128 0x8"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .byte   0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .byte   0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .byte   0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .section        .debug_aranges,\"\",@progbits"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .4byte  0x1c"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .2byte  0x2"
    },
    {
      "labels": [
        {
          "name": ".Ldebug_info0",
          "range": {
            "endCol": 30,
            "startCol": 17
          }
        }
      ],
      "source": null,
      "text": "        .4byte  .Ldebug_info0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .byte   0x4"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .byte   0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .2byte  0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .2byte  0"
    },
    {
      "labels": [
        {
          "name": ".Ltext0",
          "range": {
            "endCol": 24,
            "startCol": 17
          }
        }
      ],
      "source": null,
      "text": "        .4byte  .Ltext0"
    },
    {
      "labels": [
        {
          "name": ".Letext0",
          "range": {
            "endCol": 25,
            "startCol": 17
          }
        },
        {
          "name": ".Ltext0",
          "range": {
            "endCol": 33,
            "startCol": 26
          }
        }
      ],
      "source": null,
      "text": "        .4byte  .Letext0-.Ltext0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .4byte  0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .4byte  0"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .section        .debug_line,\"\",@progbits"
    },
    {
      "labels": [],
      "source": null,
      "text": ".Ldebug_line0:"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .section        .debug_str,\"MS\",@progbits,1"
    },
    {
      "labels": [],
      "source": null,
      "text": ".LASF2:"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .string \"foo()\""
    },
    {
      "labels": [],
      "source": null,
      "text": ".LASF0:"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .string \"GNU C++14 6.2.1 20161212 -g -std=c++1z\""
    },
    {
      "labels": [],
      "source": null,
      "text": ".LASF1:"
    },
    {
      "labels": [],
      "source": null,
      "text": "        .string \"/tmp/compiler-explorer-compiler118016-63-en7728.30nfm/example.cpp\""
    },
    {
      "labels": [],
      "source": null,
      "text": "        .ident  \"GCC: (SOMNIUM Technologies Limited - msp430-gcc 6.2.1.16) 6.2.1 20161212\""
    }
  ],
  "labelDefinitions": {
    ".LASF0": 171,
    ".LASF1": 173,
    ".LASF2": 169,
    ".LASFDE0": 52,
    ".LCFI0": 21,
    ".LCFI1": 23,
    ".LECIE0": 49,
    ".LEFDE0": 67,
    ".LFB0": 8,
    ".LFE0": 31,
    ".LSCIE0": 36,
    ".Ldebug_abbrev0": 99,
    ".Ldebug_info0": 71,
    ".Ldebug_line0": 167,
    ".Letext0": 69,
    ".Lframe0": 34,
    ".Ltext0": 3
  }
}
