         Edinburgh IMP77 Compiler - Version 8.4
    1
		.Ltext0:
				.globl	PASS2
		PASS2:
		.LFB189:
    2 ! This recordformat spec does not get passed into the icode file.
    3
    4 %recordformatspec stackfm
    5
    6 ! I cannot see anywhere in the icode that tells us that LINK is a STACKFM???!
    7 ! Yet the output of my icode2ast program correctly declares link as a %record (STACKFM) %name ???!
    8
    9 %recordformat blech(%integer x, %record (stackfm) %name link)
   10
   11 %recordformat stackfm(%integer s)
   12
   13 %external %routine PASS2(%integer p, %record (blech) puke)
				pushl	%ebp
				movl	%esp, %ebp
				subl	$24, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	%gs:20, %eax
				movl	%eax, -12(%ebp)
				xorl	%eax, %eax
				leal	8(%ebp), %eax
				movl	%eax, -16(%ebp)
   14   %routine {PASS2} ASSEMBLE(%integer AMODE, %integer VARS, %integer LOCAL, %integer PARAMETERLIST, %integer %name GLOBALATTRIBUTES)
   15     %routine {PASS2 ASSEMBLE} SHOWDATA(%record (STACKFM) %name V, %integer LEFT)
   16       %integer q = V_S
   17     %end
?Q unused
?LEFT unused
   18   %end
?SHOWDATA unused
?GLOBALATTRIBUTES unused
?PARAMETERLIST unused
?LOCAL unused
?VARS unused
?AMODE unused
   19 %end
				nop
				movl	-12(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L3
				call	__stack_chk_fail_local
		.L3:
				leave
				ret
		.LFE189:
				.section	.text.__x86.get_pc_thunk.ax,"axG",@progbits,__x86.get_pc_thunk.ax,comdat
				.globl	__x86.get_pc_thunk.ax
				.hidden	__x86.get_pc_thunk.ax
		__x86.get_pc_thunk.ax:
		.LFB192:
				movl	(%esp), %eax
				ret
		.LFE192:
		.Letext0:
?ASSEMBLE unused
?PUKE unused
?P unused
   20
   21 %endoffile
   11 Statements compiled
