| { |
| "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 |
| } |
| } |