.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