| .file "output.pas" |
| # Begin asmlist al_begin |
| |
| .section .debug_line |
| .type .Ldebug_linesection0,@object |
| .Ldebug_linesection0: |
| .type .Ldebug_line0,@object |
| .Ldebug_line0: |
| |
| .section .debug_abbrev |
| .type .Ldebug_abbrevsection0,@object |
| .Ldebug_abbrevsection0: |
| .type .Ldebug_abbrev0,@object |
| .Ldebug_abbrev0: |
| |
| .section .text.b_DEBUGSTART_$OUTPUT |
| .globl DEBUGSTART_$OUTPUT |
| .type DEBUGSTART_$OUTPUT,@object |
| DEBUGSTART_$OUTPUT: |
| # End asmlist al_begin |
| # Begin asmlist al_procedures |
| |
| .section .text.n_output_$$_square$smallint$$smallint |
| .balign 16,0x90 |
| .globl OUTPUT_$$_SQUARE$SMALLINT$$SMALLINT |
| .type OUTPUT_$$_SQUARE$SMALLINT$$SMALLINT,@function |
| OUTPUT_$$_SQUARE$SMALLINT$$SMALLINT: |
| .Lc1: |
| .Ll1: |
| # [output.pas] |
| # [12] begin |
| pushq %rbp |
| .Lc3: |
| .Lc4: |
| movq %rsp,%rbp |
| .Lc5: |
| leaq -16(%rsp),%rsp |
| # Var num located at rbp-8, size=OS_S16 |
| # Var $result located at rbp-12, size=OS_S16 |
| movw %di,-8(%rbp) |
| .Ll2: |
| # [13] Square := num * num + 14; |
| movswl -8(%rbp),%edx |
| movswl -8(%rbp),%eax |
| imull %edx,%eax |
| leal 14(%eax),%eax |
| movw %ax,-12(%rbp) |
| .Ll3: |
| # [14] end; |
| movswl -12(%rbp),%eax |
| leave |
| ret |
| .Lc2: |
| .Lt1: |
| .Le0: |
| .size OUTPUT_$$_SQUARE$SMALLINT$$SMALLINT, .Le0 - OUTPUT_$$_SQUARE$SMALLINT$$SMALLINT |
| .Ll4: |
| # End asmlist al_procedures |
| # Begin asmlist al_dwarf_frame |
| |
| .section .debug_frame |
| .Lc6: |
| .long .Lc8-.Lc7 |
| .Lc7: |
| .long -1 |
| .byte 1 |
| .byte 0 |
| .uleb128 1 |
| .sleb128 -4 |
| .byte 16 |
| .byte 12 |
| .uleb128 7 |
| .uleb128 8 |
| .byte 5 |
| .uleb128 16 |
| .uleb128 2 |
| .balign 4,0 |
| .Lc8: |
| .long .Lc10-.Lc9 |
| .Lc9: |
| .quad .Lc6 |
| .quad .Lc1 |
| .quad .Lc2-.Lc1 |
| .byte 4 |
| .long .Lc3-.Lc1 |
| .byte 14 |
| .uleb128 16 |
| .byte 4 |
| .long .Lc4-.Lc3 |
| .byte 5 |
| .uleb128 6 |
| .uleb128 4 |
| .byte 4 |
| .long .Lc5-.Lc4 |
| .byte 13 |
| .uleb128 6 |
| .balign 4,0 |
| .Lc10: |
| # End asmlist al_dwarf_frame |
| # Begin asmlist al_dwarf_info |
| |
| .section .debug_info |
| .type .Ldebug_info0,@object |
| .Ldebug_info0: |
| .long .Ledebug_info0-.Lf1 |
| .Lf1: |
| .short 2 |
| .long .Ldebug_abbrev0 |
| .byte 8 |
| .uleb128 1 |
| # [11] function Square(const num: Integer): Integer; |
| .ascii "output.pas\000" |
| .ascii "Free Pascal 3.0.2+dfsg-5ubuntu1 2017/09/14\000" |
| .ascii "/tmp/compiler-explorer-compiler118020-15958-ivh3sj." |
| .ascii "7n4td/\000" |
| .byte 9 |
| .byte 3 |
| .long .Ldebug_line0 |
| .quad DEBUGSTART_$OUTPUT |
| .quad DEBUGEND_$OUTPUT |
| # Syms - Begin unit OUTPUT has index 3 |
| # Symbol OUTPUT |
| # Symbol SYSTEM |
| # Symbol SQUARE |
| # Syms - End unit OUTPUT has index 3 |
| # Syms - Begin Staticsymtable |
| # Symbol OUTPUT_$$_init |
| # Syms - End Staticsymtable |
| # Procdef Square(const SmallInt):SmallInt; |
| .uleb128 2 |
| .ascii "SQUARE\000" |
| .byte 1 |
| .byte 65 |
| .byte 1 |
| .quad _$OUTPUT$_Ld1 |
| .quad OUTPUT_$$_SQUARE$SMALLINT$$SMALLINT |
| .quad .Lt1 |
| # Symbol NUM |
| .uleb128 3 |
| .ascii "NUM\000" |
| .byte 2 |
| .byte 118 |
| .sleb128 -8 |
| .quad _$OUTPUT$_Ld1 |
| # Symbol result |
| .uleb128 4 |
| .ascii "result\000" |
| .byte 2 |
| .byte 118 |
| .sleb128 -12 |
| .quad _$OUTPUT$_Ld1 |
| # Symbol SQUARE |
| .uleb128 4 |
| .ascii "SQUARE\000" |
| .byte 2 |
| .byte 118 |
| .sleb128 -12 |
| .quad _$OUTPUT$_Ld1 |
| .byte 0 |
| # Defs - Begin unit SYSTEM has index 1 |
| # Definition SmallInt |
| .globl _$OUTPUT$_Ld1 |
| .type _$OUTPUT$_Ld1,@object |
| _$OUTPUT$_Ld1: |
| .uleb128 5 |
| .ascii "SMALLINT\000" |
| .quad .La1 |
| .type .La1,@object |
| .La1: |
| .uleb128 6 |
| .ascii "SMALLINT\000" |
| .byte 5 |
| .byte 2 |
| .globl _$OUTPUT$_Ld2 |
| .type _$OUTPUT$_Ld2,@object |
| _$OUTPUT$_Ld2: |
| .uleb128 7 |
| .quad _$OUTPUT$_Ld1 |
| # Defs - End unit SYSTEM has index 1 |
| # Defs - Begin unit OUTPUT has index 3 |
| # Defs - End unit OUTPUT has index 3 |
| # Defs - Begin Staticsymtable |
| # Defs - End Staticsymtable |
| .byte 0 |
| .type .Ledebug_info0,@object |
| .Ledebug_info0: |
| # End asmlist al_dwarf_info |
| # Begin asmlist al_dwarf_abbrev |
| |
| .section .debug_abbrev |
| # Abbrev 1 |
| .uleb128 1 |
| .uleb128 17 |
| .byte 1 |
| .uleb128 3 |
| .uleb128 8 |
| .uleb128 37 |
| .uleb128 8 |
| .uleb128 27 |
| .uleb128 8 |
| .uleb128 19 |
| .uleb128 11 |
| .uleb128 66 |
| .uleb128 11 |
| .uleb128 16 |
| .uleb128 6 |
| .uleb128 17 |
| .uleb128 1 |
| .uleb128 18 |
| .uleb128 1 |
| .byte 0 |
| .byte 0 |
| # Abbrev 2 |
| .uleb128 2 |
| .uleb128 46 |
| .byte 1 |
| .uleb128 3 |
| .uleb128 8 |
| .uleb128 39 |
| .uleb128 12 |
| .uleb128 54 |
| .uleb128 11 |
| .uleb128 63 |
| .uleb128 12 |
| .uleb128 73 |
| .uleb128 16 |
| .uleb128 17 |
| .uleb128 1 |
| .uleb128 18 |
| .uleb128 1 |
| .byte 0 |
| .byte 0 |
| # Abbrev 3 |
| .uleb128 3 |
| .uleb128 5 |
| .byte 0 |
| .uleb128 3 |
| .uleb128 8 |
| .uleb128 2 |
| .uleb128 10 |
| .uleb128 73 |
| .uleb128 16 |
| .byte 0 |
| .byte 0 |
| # Abbrev 4 |
| .uleb128 4 |
| .uleb128 52 |
| .byte 0 |
| .uleb128 3 |
| .uleb128 8 |
| .uleb128 2 |
| .uleb128 10 |
| .uleb128 73 |
| .uleb128 16 |
| .byte 0 |
| .byte 0 |
| # Abbrev 5 |
| .uleb128 5 |
| .uleb128 22 |
| .byte 0 |
| .uleb128 3 |
| .uleb128 8 |
| .uleb128 73 |
| .uleb128 16 |
| .byte 0 |
| .byte 0 |
| # Abbrev 6 |
| .uleb128 6 |
| .uleb128 36 |
| .byte 0 |
| .uleb128 3 |
| .uleb128 8 |
| .uleb128 62 |
| .uleb128 11 |
| .uleb128 11 |
| .uleb128 11 |
| .byte 0 |
| .byte 0 |
| # Abbrev 7 |
| .uleb128 7 |
| .uleb128 16 |
| .byte 0 |
| .uleb128 73 |
| .uleb128 16 |
| .byte 0 |
| .byte 0 |
| .byte 0 |
| # End asmlist al_dwarf_abbrev |
| # Begin asmlist al_dwarf_line |
| |
| .section .debug_line |
| # === header start === |
| .long .Ledebug_line0-.Lf2 |
| .Lf2: |
| .short 2 |
| .long .Lehdebug_line0-.Lf3 |
| .Lf3: |
| .byte 1 |
| .byte 1 |
| .byte 1 |
| .byte 255 |
| .byte 13 |
| .byte 0 |
| .byte 1 |
| .byte 1 |
| .byte 1 |
| .byte 1 |
| .byte 0 |
| .byte 0 |
| .byte 0 |
| .byte 1 |
| .byte 0 |
| .byte 0 |
| .byte 1 |
| # include_directories |
| .byte 0 |
| # file_names |
| # [17] |
| .ascii "output.pas\000" |
| .uleb128 0 |
| .uleb128 0 |
| .uleb128 0 |
| .byte 0 |
| .type .Lehdebug_line0,@object |
| .Lehdebug_line0: |
| # === header end === |
| # function: OUTPUT_$$_SQUARE$SMALLINT$$SMALLINT |
| # [12:1] |
| .byte 0 |
| .uleb128 9 |
| .byte 2 |
| .quad .Ll1 |
| .byte 5 |
| .uleb128 1 |
| .byte 23 |
| # [13:13] |
| .byte 2 |
| .uleb128 .Ll2-.Ll1 |
| .byte 5 |
| .uleb128 13 |
| .byte 13 |
| # [14:1] |
| .byte 2 |
| .uleb128 .Ll3-.Ll2 |
| .byte 5 |
| .uleb128 1 |
| .byte 13 |
| .byte 0 |
| .uleb128 9 |
| .byte 2 |
| .quad .Ll4 |
| .byte 0 |
| .byte 1 |
| .byte 1 |
| # ################### |
| .type .Ledebug_line0,@object |
| .Ledebug_line0: |
| # End asmlist al_dwarf_line |
| # Begin asmlist al_end |
| |
| .section .text.z_DEBUGEND_$OUTPUT |
| .globl DEBUGEND_$OUTPUT |
| .type DEBUGEND_$OUTPUT,@object |
| DEBUGEND_$OUTPUT: |
| # End asmlist al_end |
| .section .note.GNU-stack,"",%progbits |
| |