         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
		.Ltext0:
				.align	1
				.thumb
				.thumb_func
		TEST.10033:
		.LFB186:
				@ Volatile: function does not return.
				@ args = 0, pretend = 0, frame = 8
				@ frame_needed = 0, uses_anonymous_args = 0
		.LVL19:
				push	{lr}
				sub	sp, sp, #12
				ldr	r3, .L13
		.LPIC3:
				add	r3, pc
				ldr	r2, .L13+4
				ldr	r3, [r3, r2]
				ldr	r3, [r3]
				str	r3, [sp, #4]
    2 %byteinteger c,d
				bl	_imp_initialise(PLT)
		.LVL20:
    3 %integer i,j,k
    4 %routine test(%byte b,%integername n,%byte c)
				@ args = 0, pretend = 0, frame = 1032
				@ frame_needed = 0, uses_anonymous_args = 0
		.LVL0:
				push	{r4, r5, r6, r7, lr}
				subw	sp, sp, #1276
				ldr	r6, .L8
		.LPIC0:
				add	r6, pc
				ldr	r3, .L8+4
				ldr	r3, [r6, r3]
				ldr	r3, [r3]
				str	r3, [sp, #1268]
    5 %if c='c' %and b='b' %and n=12345678 %then printstring("test ok ") %c
    6        %else printstring("Fail") %and %monitor
				cmp	r2, #99
				it	eq
				cmpeq	r0, #98
				beq	.L6
		.LVL1:
		.L2:
		.LBB10:
    7 %end
				movw	r3, #24910
				movt	r3, 188
				ldr	r2, [r1]
		.LVL10:
				cmp	r2, r3
				bne	.L2
		.LBB13:
    8 j=12345678
				ldr	r3, .L8+4
				ldr	r3, [r6, r3]
				ldr	r2, [sp, #1268]
				ldr	r3, [r3]
				cmp	r2, r3
				bne	.L7
				addw	sp, sp, #1276
				@ sp needed
				pop	{r4, r5, r6, r7, pc}
		.LVL9:
		.L6:
				mov	r5, #256
				mov	r2, r5
				ldr	r1, .L8+12
		.LVL11:
		.LPIC1:
				add	r1, pc
				add	r4, sp, #1012
				mov	r0, r4
		.LVL12:
				bl	memcpy(PLT)
		.LVL13:
				mov	r2, r5
				mov	r1, r4
				add	r4, sp, #244
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL14:
				mov	r2, r5
				mov	r1, r4
				add	r4, sp, #756
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL15:
		.LBE13:
		.LBB14:
		.LBB15:
				movs	r2, #240
				add	r1, sp, #772
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL16:
				ldm	r4, {r0, r1, r2, r3}
				bl	_imp_printstring(PLT)
		.LVL17:
				b	.L1
		.L7:
		.LBE15:
		.LBE14:
				bl	__stack_chk_fail(PLT)
		.LVL18:
		.L9:
				.align	2
		.L8:
				.word	_GLOBAL_OFFSET_TABLE_-(.LPIC0+4)
				.word	__stack_chk_guard(GOT)
				.word	.LANCHOR0-(.LPIC2+4)
				.word	.LANCHOR0-(.LPIC1+4)
		.LFE186:
				.align	1
				.global	main
				.thumb
				.thumb_func
		main:
		.LFB185:
				movw	r3, #24910
				movt	r3, 188
				add	r1, sp, #8
				str	r3, [r1, #-8]!
    9 test('b',j,'c')
				movs	r2, #99
				movs	r0, #98
				bl	TEST.10033(PLT)
		.LVL21:
		.LBB16:
		.LBB17:
				movs	r0, #0
				bl	exit(PLT)
		.LVL22:
		.L14:
				.align	2
		.L13:
				.word	_GLOBAL_OFFSET_TABLE_-(.LPIC3+4)
				.word	__stack_chk_guard(GOT)
		.LBE17:
		.LBE16:
		.LFE185:
				.section	.rodata
				.align	2
				.set	.LANCHOR0,. + 0
		.LC0:
				.byte	8
				.ascii	"test ok \000"
				.space	246
		.LC1:
				.byte	4
				.ascii	"Fail\000"
				.space	250
		.Letext0:
   10 %endofprogram
?K unused
?I unused
?D unused
?C unused
    9 Statements compiled
				mov	r7, #256
				mov	r2, r7
				ldr	r1, .L8+8
		.LVL2:
		.LPIC2:
				add	r1, pc
				add	r1, r1, r7
				add	r4, sp, #1012
				mov	r0, r4
		.LVL3:
				bl	memcpy(PLT)
		.LVL4:
				mov	r2, r7
				mov	r1, r4
				add	r5, sp, #500
				mov	r0, r5
				bl	memcpy(PLT)
		.LVL5:
				mov	r2, r7
				mov	r1, r5
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL6:
		.LBE10:
		.LBB11:
		.LBB12:
				movs	r2, #240
				addw	r1, sp, #1028
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL7:
				ldm	r4, {r0, r1, r2, r3}
				bl	_imp_printstring(PLT)
		.LVL8:
		.L3:
		.L1:
		.LBE12:
		.LBE11:
