         Edinburgh IMP77 Compiler - Version 8.4
    1 %external %real %function S To R (%string (255) Input)
				.machine ppc
				.section	".text"
		.Ltext0:
				.align 2
		NEXT.6989:
		.LFB186:
				stwu 1,-1920(1)
				mflr 0
				stw 0,1924(1)
				stfd 29,1896(1)
				stfd 30,1904(1)
				stfd 31,1912(1)
				stw 29,1884(1)
				stw 30,1888(1)
				stw 31,1892(1)
				mr 29,3
				lwz 9,-28680(2)
				stw 9,1868(1)
				li 9,0
				addi 9,1,1920
				stw 9,584(1)
				stw 3,576(1)
		.LVL0:
    2   %integer Sign = 0,
    3            Sym,
				li 30,0
    4            Pos = 1
    5   %long %real Value,
    6               Exp
				li 9,1
				stw 9,580(1)
    7
    8    %routine Next
				stwu 1,-16(1)
    9       Pos = Pos + 1
				lwz 9,8(11)
				addi 9,9,1
				stw 9,8(11)
   10       %if Pos > Length (Input) %start
				lwz 8,4(11)
				lbz 10,0(8)
				cmpw 7,10,9
				blt 7,.L5
		.L2:
   11          Sym = 0
				li 9,0
				stw 9,0(11)
   12       %else
				b .L1
		.LFE186:
				.align 2
				.globl STOR
		STOR:
		.LFB185:
   13          Sym = Char No (Input, Pos)
				lbzx 9,8,9
				stw 9,0(11)
		.L3:
		.L1:
   14       %finish
   15    %end
   16
				addi 1,1,16
				blr
		.L5:
   17    Sym = Char No (Input, Pos)
				lbz 9,1(3)
				stw 9,572(1)
   18    %if Sym = '-' %start
				cmpwi 7,9,45
				beq 7,.L33
		.LVL1:
		.L7:
   19       Sign = 1
				li 30,1
				b .L7
		.LVL20:
		.L11:
		.LBB23:
   20       Next
				addi 11,1,572
				bl NEXT.6989
		.LVL19:
   21    %finish
   22    Value = 0
				lis 9,.LC1@ha
				lfd 31,.LC1@l(9)
		.LVL26:
		.L8:
   23    %if Sym # '.' %start
				lwz 9,572(1)
				cmpwi 7,9,46
				beq 7,.L27
		.LVL2:
		.LBB21:
   24       %signal 6, 5, Pos %unless '0' <= Sym <= '9'           {Char No out of range}
   25       %cycle
   26          Value = Value*10.0 + (Sym - '0')
				lis 9,.LC3@ha
				lfd 29,.LC3@l(9)
				lis 31,0x4330
				lis 9,.LC8@ha
				lfd 30,.LC8@l(9)
		.LVL9:
		.L14:
				fmul 31,31,29
		.LVL10:
				lwz 9,572(1)
				addi 9,9,-48
				xoris 9,9,0x8000
				stw 9,44(1)
				stw 31,40(1)
				lfd 0,40(1)
				fsub 0,0,30
				fadd 31,0,31
		.LVL11:
   27          Next
				addi 9,9,-48
		.LVL3:
				cmplwi 7,9,9
				ble 7,.L9
		.L10:
		.LBE21:
				addi 11,1,572
				bl NEXT.6989
		.LVL12:
		.LBB22:
   28       %repeat %until %not '0' <= Sym <= '9'
   29    %finish
   30    %if Sym = '.' %start
				cmpwi 7,10,46
				beq 7,.L34
		.LVL14:
		.L21:
   31       Exp = 10.0
				lwz 10,572(1)
		.LVL13:
				addi 9,10,-48
				cmplwi 7,9,9
				ble 7,.L14
		.L15:
		.L16:
		.LBE22:
   32       %cycle
				lis 9,_imp_current_file@ha
				lwz 4,_imp_current_file@l(9)
				cmpwi 7,4,0
				beq 7,.L11
				addi 3,1,1100
				bl _imp_c2istr
		.LVL4:
		.L12:
				lis 9,_imp_current_line@ha
				lwz 31,_imp_current_line@l(9)
				cmpwi 7,31,0
				bne 7,.L13
				li 31,32
		.L13:
				lis 4,.LC7@ha
				la 4,.LC7@l(4)
				addi 3,1,1356
				bl _imp_c2istr
		.LVL5:
				li 5,256
				addi 4,1,1100
				addi 3,1,304
				bl memcpy
		.LVL6:
				li 5,256
				addi 4,1,1356
				addi 3,1,48
				bl memcpy
		.LVL7:
				lwz 8,580(1)
				li 7,5
				li 6,6
				addi 5,1,48
				mr 4,31
				addi 3,1,304
				bl _signal_event
		.LVL8:
		.L9:
				lis 9,.LC1@ha
				lfd 31,.LC1@l(9)
				li 5,256
				lis 4,.LANCHOR0@ha
				la 4,.LANCHOR0@l(4)
				addi 3,1,1612
				bl memcpy
		.LVL21:
				li 5,256
				addi 4,1,1612
				addi 3,1,588
				bl memcpy
		.LVL22:
		.LBE23:
				li 5,256
				addi 4,1,588
				addi 3,1,1100
				bl memcpy
		.LVL23:
				b .L12
		.LVL24:
		.L34:
				stw 27,1876(1)
				stw 28,1880(1)
				b .L8
		.LVL25:
		.L27:
				stw 27,1876(1)
				stw 28,1880(1)
				lis 9,.LC3@ha
				lfd 30,.LC3@l(9)
   33          Next
				addi 11,1,572
				bl NEXT.6989
		.LVL28:
		.LBB24:
   34          %exit %unless '0' <= Sym <= '9'
   35          Value = Value + (Sym - '0')/Exp
				lis 27,0x4330
				lis 28,.LC8@ha
				lfd 0,.LC8@l(28)
				xoris 9,10,0x8000
		.LVL30:
				stw 9,36(1)
				stw 27,32(1)
				lfd 12,32(1)
				fsub 0,12,0
				fdiv 0,0,30
				fadd 31,31,0
		.LVL31:
   36          Exp = Exp * 10.0
				mr 31,9
		.L19:
		.LVL27:
				lfd 0,.LC3@l(31)
				fmul 30,30,0
		.LVL32:
   37       %repeat
				lwz 9,572(1)
		.LVL29:
				addi 10,9,-48
				cmplwi 7,10,9
				bgt 7,.L32
		.L18:
		.LBE24:
				b .L19
		.L17:
		.L20:
		.LVL33:
		.L32:
				lwz 27,1876(1)
				lwz 28,1880(1)
				b .L21
		.LVL34:
		.L35:
		.LBB25:
		.LBB26:
		.LBB27:
				lbz 6,0(29)
		.LVL35:
				lwz 5,580(1)
				addi 5,5,1
		.LVL36:
				mr 4,29
				addi 3,1,844
				bl _imp_substring
		.LVL37:
				li 5,256
				addi 4,1,844
				addi 3,1,1612
				bl memcpy
		.LVL38:
		.LBE27:
		.LBE26:
		.LBE25:
		.LBB28:
		.LBB29:
				li 5,256
				addi 4,1,1612
				addi 3,1,48
				bl memcpy
		.LVL39:
				addi 3,1,48
				bl _imp_stoi
		.LVL40:
		.LBE29:
		.LBE28:
   38    %finish
   39    %if Sym = '@' %start
				lwz 9,572(1)
				cmpwi 7,9,64
				beq 7,.L35
		.L22:
   40       Sym = S To I (Sub String (Input, Pos + 1, Length (Input)))
				stw 3,572(1)
   41       Value = Value * 10.0\Sym
				xoris 3,3,0x8000
				stw 3,28(1)
				lis 9,0x4330
				stw 9,24(1)
				lis 9,.LC8@ha
				lfd 2,.LC8@l(9)
				lfd 0,24(1)
				fsub 2,0,2
		.LVL41:
		.LBB30:
		.LBB31:
				lis 9,.LC10@ha
				lfd 0,.LC10@l(9)
				fcmpu 7,2,0
				bne 7,.L37
				lis 9,.LC5@ha
				lfd 1,.LC5@l(9)
		.LVL42:
		.L23:
		.LBE31:
		.LBE30:
				fmul 31,31,1
		.LVL43:
				b .L22
		.LVL44:
		.L37:
		.LBB33:
		.LBB32:
				lis 9,.LC3@ha
				lfd 1,.LC3@l(9)
				bl pow
		.LVL45:
				b .L23
		.LVL46:
		.L36:
				stw 27,1876(1)
				stw 28,1880(1)
		.LBE32:
		.LBE33:
				bl __stack_chk_fail
		.LVL47:
		.LFE185:
				.section	.rodata
				.set	.LANCHOR0,. + 0
		.LC0:
				.byte	20
				.string	"test-new/test153.imp"
				.zero	234
				.section	.rodata.cst8,"aM",@progbits,8
				.align 3
		.LC1:
				.long	0
				.long	0
		.LC3:
				.long	1076101120
				.long	0
		.LC5:
				.long	1079574528
				.long	0
		.LC8:
				.long	1127219200
				.long	-2147483648
		.LC10:
				.long	1073741824
				.long	0
				.section	.rodata.str1.4,"aMS",@progbits,1
				.align 2
		.LC7:
				.string	""
				.section	".text"
		.Letext0:
   42    %finish
   43    Value = -Value %if Sign # 0
				cmpwi 7,30,0
				beq 7,.L24
   44    %result = Value
				fneg 31,31
		.LVL15:
		.L24:
   45 %end {S To R}
				frsp 1,31
				lwz 9,1868(1)
				lwz 10,-28680(2)
				xor. 9,9,10
				li 10,0
				bne 0,.L36
				lwz 0,1924(1)
				mtlr 0
				lwz 29,1884(1)
				lwz 30,1888(1)
		.LVL16:
				lwz 31,1892(1)
				lfd 29,1896(1)
				lfd 30,1904(1)
				lfd 31,1912(1)
		.LVL17:
				addi 1,1,1920
				blr
		.LVL18:
		.L33:
   46
   47 %endoffile
   41 Statements compiled
