         Edinburgh IMP77 Compiler - Version 8.4
    1 ! check that sizeof/typeof was giving the expected value
				.section .mdebug.abi32
				.previous
				.nan	legacy
				.module	fp=xx
				.module	nooddspreg
				.abicalls
		$Ltext0:
				.align	2
				LFB186 = .
    2 %begin
				.set	nomips16
				.set	nomicromips
				.ent	main
		main:
				.frame	$sp,1400,$31		# vars= 1128, regs= 2/0, args= 256, gp= 8
				.mask	0x80010000,-4
				.fmask	0x00000000,0
				.set	noreorder
				.set	nomacro
				LVL8 = .
				addiu	$sp,$sp,-1400
				sw	$31,1396($sp)
				sw	$16,1392($sp)
				lui	$28,%hi(__gnu_local_gp)
				addiu	$28,$28,%lo(__gnu_local_gp)
				.cprestore	256
				lw	$2,%got(__stack_chk_guard)($28)
				lw	$2,0($2)
				sw	$2,1388($sp)
    3   %routine test(%name param)         ;! ia1          ia2
				.set	nomips16
				.set	nomicromips
				.ent	TEST.5998
		TEST.5998:
				.frame	$sp,32,$31		# vars= 0, regs= 1/0, args= 16, gp= 8
				.mask	0x80000000,-4
				.fmask	0x00000000,0
				.set	noreorder
				.set	nomacro
				LVL0 = .
				addiu	$sp,$sp,-32
				sw	$31,28($sp)
				lui	$28,%hi(__gnu_local_gp)
				addiu	$28,$28,%lo(__gnu_local_gp)
				.cprestore	16
				lw	$25,%call16(_imp_initialise)($28)
				.reloc	1f,R_MIPS_JALR,_imp_initialise
			1:	jalr	$25
				nop
				LVL9 = .
				lw	$28,256($sp)
				LVL10 = .
				LBB52 = .
    4     write(addr(param),0)  ; newline  ;! 2145833816   2145833816
				move	$5,$0
				lw	$25,%call16(_imp_writeint)($28)
				.reloc	1f,R_MIPS_JALR,_imp_writeint
			1:	jalr	$25
				nop
				LVL1 = .
				lw	$28,16($sp)
				LVL2 = .
				LBB46 = .
				LBB47 = .
				lw	$25,%call16(_imp_newline)($28)
				.reloc	1f,R_MIPS_JALR,_imp_newline
			1:	jalr	$25
				nop
				LVL3 = .
				lw	$28,16($sp)
				LBE47 = .
				LBE46 = .
    5     write(sizeof(param),0); newline  ;! 1            8             1 is sizeof %byte, 8 is sizeof %longreal
				move	$5,$0
				li	$4,12			# 0xc
				lw	$25,%call16(_imp_writeint)($28)
				.reloc	1f,R_MIPS_JALR,_imp_writeint
			1:	jalr	$25
				nop
				LVL4 = .
				lw	$28,16($sp)
				LBB48 = .
				LBB49 = .
				lw	$25,%call16(_imp_newline)($28)
				.reloc	1f,R_MIPS_JALR,_imp_newline
			1:	jalr	$25
				nop
				LVL5 = .
				lw	$28,16($sp)
				LBE49 = .
				LBE48 = .
    6     write(typeof(param),0); newline  ;! 5            8             5 is typeof %byte, 8 is typeof %longreal
				move	$5,$0
				li	$4,4			# 0x4
				lw	$25,%call16(_imp_writeint)($28)
				.reloc	1f,R_MIPS_JALR,_imp_writeint
			1:	jalr	$25
				nop
				LVL6 = .
				lw	$28,16($sp)
				LBB50 = .
				LBB51 = .
				lw	$25,%call16(_imp_newline)($28)
				.reloc	1f,R_MIPS_JALR,_imp_newline
			1:	jalr	$25
				nop
				LVL7 = .
				lw	$28,16($sp)
				LBE51 = .
				LBE50 = .
    7   %end
    8
				lw	$31,28($sp)
				jr	$31
				addiu	$sp,$sp,32
				.set	macro
				.set	reorder
				.end	TEST.5998
		$LFE186:
				.rdata
				.align	2
		$LC0:
				.byte	11
				.ascii	"Testing ia1\000"
				.space	243
				.align	2
		$LC1:
				.byte	11
				.ascii	"Testing ia2\000"
				.space	243
				.align	2
				.globl	main
				LFB185 = .
    9   %bytearray ia1(3:5)
   10   %longrealarray ia2(2:4,3:6)
   11
   12   printstring( "Testing ia1"); newline
				lui	$2,%hi($LC0)
				addiu	$2,$2,%lo($LC0)
				addiu	$3,$sp,1128
				addiu	$4,$2,256
		$L4:
				lw	$8,0($2)
				lw	$7,4($2)
				lw	$6,8($2)
				lw	$5,12($2)
				sw	$8,0($3)
				sw	$7,4($3)
				sw	$6,8($3)
				sw	$5,12($3)
				addiu	$2,$2,16
				bne	$2,$4,$L4
				addiu	$3,$3,16
				addiu	$2,$sp,1128
				addiu	$3,$sp,360
				addiu	$4,$sp,1384
		$L5:
				lw	$8,0($2)
				lw	$7,4($2)
				lw	$6,8($2)
				lw	$5,12($2)
				sw	$8,0($3)
				sw	$7,4($3)
				sw	$6,8($3)
				sw	$5,12($3)
				addiu	$2,$2,16
				bne	$2,$4,$L5
				addiu	$3,$3,16
				addiu	$2,$sp,360
				addiu	$3,$sp,1128
				addiu	$4,$sp,616
		$L6:
				lw	$8,0($2)
				lw	$7,4($2)
				lw	$6,8($2)
				lw	$5,12($2)
				sw	$8,0($3)
				sw	$7,4($3)
				sw	$6,8($3)
				sw	$5,12($3)
				addiu	$2,$2,16
				bne	$2,$4,$L6
				addiu	$3,$3,16
				LBE52 = .
				LBB53 = .
				LBB54 = .
				addiu	$2,$sp,1144
				addiu	$3,$sp,16
				addiu	$4,$sp,1384
		$L7:
				lw	$8,0($2)
				lw	$7,4($2)
				lw	$6,8($2)
				lw	$5,12($2)
				sw	$8,0($3)
				sw	$7,4($3)
				sw	$6,8($3)
				sw	$5,12($3)
				addiu	$2,$2,16
				bne	$2,$4,$L7
				addiu	$3,$3,16
				lw	$4,1128($sp)
				lw	$5,1132($sp)
				lw	$6,1136($sp)
				lw	$7,1140($sp)
				lw	$25,%call16(_imp_printstring)($28)
				.reloc	1f,R_MIPS_JALR,_imp_printstring
			1:	jalr	$25
				nop
				LVL11 = .
				lw	$28,256($sp)
				LBE54 = .
				LBE53 = .
				LBB55 = .
				LBB56 = .
				lw	$25,%call16(_imp_newline)($28)
				.reloc	1f,R_MIPS_JALR,_imp_newline
			1:	jalr	$25
				nop
				LVL12 = .
				lw	$28,256($sp)
				LBE56 = .
				LBE55 = .
   13   write(addr(ia1),0); newline     ;! 2145833816
				move	$5,$0
				addiu	$16,$sp,1384
				move	$4,$16
				lw	$25,%call16(_imp_writeint)($28)
				.reloc	1f,R_MIPS_JALR,_imp_writeint
			1:	jalr	$25
				nop
				LVL13 = .
				lw	$28,256($sp)
				LBB57 = .
				LBB58 = .
				lw	$25,%call16(_imp_newline)($28)
				.reloc	1f,R_MIPS_JALR,_imp_newline
			1:	jalr	$25
				nop
				LVL14 = .
				lw	$28,256($sp)
				LBE58 = .
				LBE57 = .
   14   write(addr(ia1(3)),0); newline  ;! 2145833704
				move	$5,$0
				move	$4,$16
				lw	$25,%call16(_imp_writeint)($28)
				.reloc	1f,R_MIPS_JALR,_imp_writeint
			1:	jalr	$25
				nop
				LVL15 = .
				lw	$28,256($sp)
				LBB59 = .
				LBB60 = .
				lw	$25,%call16(_imp_newline)($28)
				.reloc	1f,R_MIPS_JALR,_imp_newline
			1:	jalr	$25
				nop
				LVL16 = .
				lw	$28,256($sp)
				LBE60 = .
				LBE59 = .
   15   write(sizeof(ia1),0); newline   ;! 1                sizeof %btre
				move	$5,$0
				li	$4,1			# 0x1
				lw	$25,%call16(_imp_writeint)($28)
				.reloc	1f,R_MIPS_JALR,_imp_writeint
			1:	jalr	$25
				nop
				LVL17 = .
				lw	$28,256($sp)
				LBB61 = .
				LBB62 = .
				lw	$25,%call16(_imp_newline)($28)
				.reloc	1f,R_MIPS_JALR,_imp_newline
			1:	jalr	$25
				nop
				LVL18 = .
				lw	$28,256($sp)
				LBE62 = .
				LBE61 = .
   16   write(typeof(ia1),0); newline   ;! 5                typeof %byte
				move	$5,$0
				li	$4,5			# 0x5
				lw	$25,%call16(_imp_writeint)($28)
				.reloc	1f,R_MIPS_JALR,_imp_writeint
			1:	jalr	$25
				nop
				LVL19 = .
				lw	$28,256($sp)
				LBB63 = .
				LBB64 = .
				lw	$25,%call16(_imp_newline)($28)
				.reloc	1f,R_MIPS_JALR,_imp_newline
			1:	jalr	$25
				nop
				LVL20 = .
				lw	$28,256($sp)
				LBE64 = .
				LBE63 = .
   17   test(ia1)
				move	$4,$16
				.option	pic0
				jal	TEST.5998
				nop
				.option	pic2
				LVL21 = .
				lw	$28,256($sp)
				LBB65 = .
   18
   19   printstring( "Testing ia2"); newline
				lui	$2,%hi($LC1)
				addiu	$2,$2,%lo($LC1)
				addiu	$3,$sp,872
				addiu	$4,$2,256
		$L8:
				lw	$8,0($2)
				lw	$7,4($2)
				lw	$6,8($2)
				lw	$5,12($2)
				sw	$8,0($3)
				sw	$7,4($3)
				sw	$6,8($3)
				sw	$5,12($3)
				addiu	$2,$2,16
				bne	$2,$4,$L8
				addiu	$3,$3,16
				addiu	$2,$sp,872
				addiu	$3,$sp,616
				addiu	$4,$sp,1128
		$L9:
				lw	$8,0($2)
				lw	$7,4($2)
				lw	$6,8($2)
				lw	$5,12($2)
				sw	$8,0($3)
				sw	$7,4($3)
				sw	$6,8($3)
				sw	$5,12($3)
				addiu	$2,$2,16
				bne	$2,$4,$L9
				addiu	$3,$3,16
				addiu	$2,$sp,616
				addiu	$3,$sp,872
				move	$4,$3
		$L10:
				lw	$8,0($2)
				lw	$7,4($2)
				lw	$6,8($2)
				lw	$5,12($2)
				sw	$8,0($3)
				sw	$7,4($3)
				sw	$6,8($3)
				sw	$5,12($3)
				addiu	$2,$2,16
				bne	$2,$4,$L10
				addiu	$3,$3,16
				LBE65 = .
				LBB66 = .
				LBB67 = .
				addiu	$2,$sp,888
				addiu	$3,$sp,16
				addiu	$4,$sp,1128
		$L11:
				lw	$8,0($2)
				lw	$7,4($2)
				lw	$6,8($2)
				lw	$5,12($2)
				sw	$8,0($3)
				sw	$7,4($3)
				sw	$6,8($3)
				sw	$5,12($3)
				addiu	$2,$2,16
				bne	$2,$4,$L11
				addiu	$3,$3,16
				lw	$4,872($sp)
				lw	$5,876($sp)
				lw	$6,880($sp)
				lw	$7,884($sp)
				lw	$25,%call16(_imp_printstring)($28)
				.reloc	1f,R_MIPS_JALR,_imp_printstring
			1:	jalr	$25
				nop
				LVL22 = .
				lw	$28,256($sp)
				LBE67 = .
				LBE66 = .
				LBB68 = .
				LBB69 = .
				lw	$25,%call16(_imp_newline)($28)
				.reloc	1f,R_MIPS_JALR,_imp_newline
			1:	jalr	$25
				nop
				LVL23 = .
				lw	$28,256($sp)
				LBE69 = .
				LBE68 = .
   20   write(addr(ia2),0); newline      ;! 2145833816
				move	$5,$0
				addiu	$16,$sp,264
				move	$4,$16
				lw	$25,%call16(_imp_writeint)($28)
				.reloc	1f,R_MIPS_JALR,_imp_writeint
			1:	jalr	$25
				nop
				LVL24 = .
				lw	$28,256($sp)
				LBB70 = .
				LBB71 = .
				lw	$25,%call16(_imp_newline)($28)
				.reloc	1f,R_MIPS_JALR,_imp_newline
			1:	jalr	$25
				nop
				LVL25 = .
				lw	$28,256($sp)
				LBE71 = .
				LBE70 = .
   21   write(addr(ia2(2,3)),0); newline ;! 2145833708      4 bytes after address of first element of ia1, i.e. ia1(3)
				move	$5,$0
				move	$4,$16
				lw	$25,%call16(_imp_writeint)($28)
				.reloc	1f,R_MIPS_JALR,_imp_writeint
			1:	jalr	$25
				nop
				LVL26 = .
				lw	$28,256($sp)
				LBB72 = .
				LBB73 = .
				lw	$25,%call16(_imp_newline)($28)
				.reloc	1f,R_MIPS_JALR,_imp_newline
			1:	jalr	$25
				nop
				LVL27 = .
				lw	$28,256($sp)
				LBE73 = .
				LBE72 = .
   22                                     !                 which is 3 %byteinteger elements of 1 byte each, aligned to next 4 bytes.
   23   write(sizeof(ia2),0); newline    ;! 8               sizeof %longreal
				move	$5,$0
				li	$4,32			# 0x20
				lw	$25,%call16(_imp_writeint)($28)
				.reloc	1f,R_MIPS_JALR,_imp_writeint
			1:	jalr	$25
				nop
				LVL28 = .
				lw	$28,256($sp)
				LBB74 = .
				LBB75 = .
				lw	$25,%call16(_imp_newline)($28)
				.reloc	1f,R_MIPS_JALR,_imp_newline
			1:	jalr	$25
				nop
				LVL29 = .
				lw	$28,256($sp)
				LBE75 = .
				LBE74 = .
   24   write(typeof(ia2),0); newline    ;! 8               typeof %longreal
				move	$5,$0
				li	$4,4			# 0x4
				lw	$25,%call16(_imp_writeint)($28)
				.reloc	1f,R_MIPS_JALR,_imp_writeint
			1:	jalr	$25
				nop
				LVL30 = .
				lw	$28,256($sp)
				LBB76 = .
				LBB77 = .
				lw	$25,%call16(_imp_newline)($28)
				.reloc	1f,R_MIPS_JALR,_imp_newline
			1:	jalr	$25
				nop
				LVL31 = .
				lw	$28,256($sp)
				LBE77 = .
				LBE76 = .
   25   test(ia2)
				move	$4,$16
				.option	pic0
				jal	TEST.5998
				nop
				.option	pic2
				LVL32 = .
				lw	$28,256($sp)
				LVL33 = .
				LBB78 = .
				LBB79 = .
				move	$4,$0
				lw	$25,%call16(exit)($28)
				.reloc	1f,R_MIPS_JALR,exit
			1:	jalr	$25
				nop
				LVL34 = .
				LBE79 = .
				LBE78 = .
				.set	macro
				.set	reorder
				.end	main
		$LFE185:
		$Letext0:
   26
   27 %endofprogram
   34 Statements compiled
