         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
		.Ltext0:
				.globl	main
		main:
		.LFB185:
		.LVL0:
				subq	$808, %rsp
				movq	%fs:40, %rax
				movq	%rax, 792(%rsp)
				xorl	%eax, %eax
    2 %constbyteintegerarray trtab(0:255)=1(255),0;
				call	_imp_initialise@PLT
		.LVL1:
				movb	$1, 528(%rsp)
				movb	$1, 529(%rsp)
				movb	$1, 530(%rsp)
				movb	$1, 531(%rsp)
				movb	$1, 532(%rsp)
				movb	$1, 533(%rsp)
				movb	$1, 534(%rsp)
				movb	$1, 535(%rsp)
				movb	$1, 536(%rsp)
				movb	$1, 537(%rsp)
				movb	$1, 538(%rsp)
				movb	$1, 539(%rsp)
				movb	$1, 540(%rsp)
				movb	$1, 541(%rsp)
				movb	$1, 542(%rsp)
				movb	$1, 543(%rsp)
				movb	$1, 544(%rsp)
				movb	$1, 545(%rsp)
				movb	$1, 546(%rsp)
				movb	$1, 547(%rsp)
				movb	$1, 548(%rsp)
				movb	$1, 549(%rsp)
				movb	$1, 550(%rsp)
				movb	$1, 551(%rsp)
				movb	$1, 552(%rsp)
				movb	$1, 553(%rsp)
				movb	$1, 554(%rsp)
				movb	$1, 555(%rsp)
				movb	$1, 556(%rsp)
				movb	$1, 557(%rsp)
				movb	$1, 558(%rsp)
				movb	$1, 559(%rsp)
				movb	$1, 560(%rsp)
				movb	$1, 561(%rsp)
				movb	$1, 562(%rsp)
				movb	$1, 563(%rsp)
				movb	$1, 564(%rsp)
				movb	$1, 565(%rsp)
				movb	$1, 566(%rsp)
				movb	$1, 567(%rsp)
				movb	$1, 568(%rsp)
				movb	$1, 569(%rsp)
				movb	$1, 570(%rsp)
				movb	$1, 571(%rsp)
				movb	$1, 572(%rsp)
				movb	$1, 573(%rsp)
				movb	$1, 574(%rsp)
				movb	$1, 575(%rsp)
				movb	$1, 576(%rsp)
				movb	$1, 577(%rsp)
				movb	$1, 578(%rsp)
				movb	$1, 579(%rsp)
				movb	$1, 580(%rsp)
				movb	$1, 581(%rsp)
				movb	$1, 582(%rsp)
				movb	$1, 583(%rsp)
				movb	$1, 584(%rsp)
				movb	$1, 585(%rsp)
				movb	$1, 586(%rsp)
				movb	$1, 587(%rsp)
				movb	$1, 588(%rsp)
				movb	$1, 589(%rsp)
				movb	$1, 590(%rsp)
				movb	$1, 591(%rsp)
				movb	$1, 592(%rsp)
				movb	$1, 593(%rsp)
				movb	$1, 594(%rsp)
				movb	$1, 595(%rsp)
				movb	$1, 596(%rsp)
				movb	$1, 597(%rsp)
				movb	$1, 598(%rsp)
				movb	$1, 599(%rsp)
				movb	$1, 600(%rsp)
				movb	$1, 601(%rsp)
				movb	$1, 602(%rsp)
				movb	$1, 603(%rsp)
				movb	$1, 604(%rsp)
				movb	$1, 605(%rsp)
				movb	$1, 606(%rsp)
				movb	$1, 607(%rsp)
				movb	$1, 608(%rsp)
				movb	$1, 609(%rsp)
				movb	$1, 610(%rsp)
				movb	$1, 611(%rsp)
				movb	$1, 612(%rsp)
				movb	$1, 613(%rsp)
				movb	$1, 614(%rsp)
				movb	$1, 615(%rsp)
				movb	$1, 616(%rsp)
				movb	$1, 617(%rsp)
				movb	$1, 618(%rsp)
				movb	$1, 619(%rsp)
				movb	$1, 620(%rsp)
				movb	$1, 621(%rsp)
				movb	$1, 622(%rsp)
				movb	$1, 623(%rsp)
				movb	$1, 624(%rsp)
				movb	$1, 625(%rsp)
				movb	$1, 626(%rsp)
				movb	$1, 627(%rsp)
				movb	$1, 628(%rsp)
				movb	$1, 629(%rsp)
				movb	$1, 630(%rsp)
				movb	$1, 631(%rsp)
				movb	$1, 632(%rsp)
				movb	$1, 633(%rsp)
				movb	$1, 634(%rsp)
				movb	$1, 635(%rsp)
				movb	$1, 636(%rsp)
				movb	$1, 637(%rsp)
				movb	$1, 638(%rsp)
				movb	$1, 639(%rsp)
				movb	$1, 640(%rsp)
				movb	$1, 641(%rsp)
				movb	$1, 642(%rsp)
				movb	$1, 643(%rsp)
				movb	$1, 644(%rsp)
				movb	$1, 645(%rsp)
				movb	$1, 646(%rsp)
				movb	$1, 647(%rsp)
				movb	$1, 648(%rsp)
				movb	$1, 649(%rsp)
				movb	$1, 650(%rsp)
				movb	$1, 651(%rsp)
				movb	$1, 652(%rsp)
				movb	$1, 653(%rsp)
				movb	$1, 654(%rsp)
				movb	$1, 655(%rsp)
				movb	$1, 656(%rsp)
				movb	$1, 657(%rsp)
				movb	$1, 658(%rsp)
				movb	$1, 659(%rsp)
				movb	$1, 660(%rsp)
				movb	$1, 661(%rsp)
				movb	$1, 662(%rsp)
				movb	$1, 663(%rsp)
				movb	$1, 664(%rsp)
				movb	$1, 665(%rsp)
				movb	$1, 666(%rsp)
				movb	$1, 667(%rsp)
				movb	$1, 668(%rsp)
				movb	$1, 669(%rsp)
				movb	$1, 670(%rsp)
				movb	$1, 671(%rsp)
				movb	$1, 672(%rsp)
				movb	$1, 673(%rsp)
				movb	$1, 674(%rsp)
				movb	$1, 675(%rsp)
				movb	$1, 676(%rsp)
				movb	$1, 677(%rsp)
				movb	$1, 678(%rsp)
				movb	$1, 679(%rsp)
				movb	$1, 680(%rsp)
				movb	$1, 681(%rsp)
				movb	$1, 682(%rsp)
				movb	$1, 683(%rsp)
				movb	$1, 684(%rsp)
				movb	$1, 685(%rsp)
				movb	$1, 686(%rsp)
				movb	$1, 687(%rsp)
				movb	$1, 688(%rsp)
				movb	$1, 689(%rsp)
				movb	$1, 690(%rsp)
				movb	$1, 691(%rsp)
				movb	$1, 692(%rsp)
				movb	$1, 693(%rsp)
				movb	$1, 694(%rsp)
				movb	$1, 695(%rsp)
				movb	$1, 696(%rsp)
				movb	$1, 697(%rsp)
				movb	$1, 698(%rsp)
				movb	$1, 699(%rsp)
				movb	$1, 700(%rsp)
				movb	$1, 701(%rsp)
				movb	$1, 702(%rsp)
				movb	$1, 703(%rsp)
				movb	$1, 704(%rsp)
				movb	$1, 705(%rsp)
				movb	$1, 706(%rsp)
				movb	$1, 707(%rsp)
				movb	$1, 708(%rsp)
				movb	$1, 709(%rsp)
				movb	$1, 710(%rsp)
				movb	$1, 711(%rsp)
				movb	$1, 712(%rsp)
				movb	$1, 713(%rsp)
				movb	$1, 714(%rsp)
				movb	$1, 715(%rsp)
				movb	$1, 716(%rsp)
				movb	$1, 717(%rsp)
				movb	$1, 718(%rsp)
				movb	$1, 719(%rsp)
				movb	$1, 720(%rsp)
				movb	$1, 721(%rsp)
				movb	$1, 722(%rsp)
				movb	$1, 723(%rsp)
				movb	$1, 724(%rsp)
				movb	$1, 725(%rsp)
				movb	$1, 726(%rsp)
				movb	$1, 727(%rsp)
				movb	$1, 728(%rsp)
				movb	$1, 729(%rsp)
				movb	$1, 730(%rsp)
				movb	$1, 731(%rsp)
				movb	$1, 732(%rsp)
				movb	$1, 733(%rsp)
				movb	$1, 734(%rsp)
				movb	$1, 735(%rsp)
				movb	$1, 736(%rsp)
				movb	$1, 737(%rsp)
				movb	$1, 738(%rsp)
				movb	$1, 739(%rsp)
				movb	$1, 740(%rsp)
				movb	$1, 741(%rsp)
				movb	$1, 742(%rsp)
				movb	$1, 743(%rsp)
				movb	$1, 744(%rsp)
				movb	$1, 745(%rsp)
				movb	$1, 746(%rsp)
				movb	$1, 747(%rsp)
				movb	$1, 748(%rsp)
				movb	$1, 749(%rsp)
				movb	$1, 750(%rsp)
				movb	$1, 751(%rsp)
				movb	$1, 752(%rsp)
				movb	$1, 753(%rsp)
				movb	$1, 754(%rsp)
				movb	$1, 755(%rsp)
				movb	$1, 756(%rsp)
				movb	$1, 757(%rsp)
				movb	$1, 758(%rsp)
				movb	$1, 759(%rsp)
				movb	$1, 760(%rsp)
				movb	$1, 761(%rsp)
				movb	$1, 762(%rsp)
				movb	$1, 763(%rsp)
				movb	$1, 764(%rsp)
				movb	$1, 765(%rsp)
				movb	$1, 766(%rsp)
				movb	$1, 767(%rsp)
				movb	$1, 768(%rsp)
				movb	$1, 769(%rsp)
				movb	$1, 770(%rsp)
				movb	$1, 771(%rsp)
				movb	$1, 772(%rsp)
				movb	$1, 773(%rsp)
				movb	$1, 774(%rsp)
				movb	$1, 775(%rsp)
				movb	$1, 776(%rsp)
				movb	$1, 777(%rsp)
				movb	$1, 778(%rsp)
				movb	$1, 779(%rsp)
				movb	$1, 780(%rsp)
				movb	$1, 781(%rsp)
				movb	$1, 782(%rsp)
				movb	$0, 783(%rsp)
    3 %integer i,j
    4 i=-1; j=addr(i)
				movl	$-1, 12(%rsp)
		.LVL2:
		.LBB16:
		.LBB17:
				leaq	12(%rsp), %rax
		.LBE17:
		.LBE16:
    5 ->ok %if trtab(byteinteger(j))=0
				cltq
				movzbl	(%rax), %eax
				cmpb	$0, 528(%rsp,%rax)
				je	.L2
		.L3:
		.LVL3:
		.LBB18:
    6 printstring("Fail")
				movq	$1818845510, 273(%rsp)
				movq	$0, 281(%rsp)
				leaq	289(%rsp), %rdi
				movl	$239, %ecx
				movl	$0, %eax
				rep stosb
				movb	$4, 272(%rsp)
				leaq	16(%rsp), %rdi
				leaq	272(%rsp), %rsi
				movl	$32, %ecx
				rep movsq
		.LVL4:
				movb	$4, 16(%rsp)
				leaq	272(%rsp), %rdi
				leaq	16(%rsp), %rsi
				movl	$32, %ecx
				rep movsq
		.LBE18:
		.LBB19:
		.LBB20:
				subq	$256, %rsp
		.LVL5:
				leaq	528(%rsp), %rsi
				movl	$32, %ecx
				movq	%rsp, %rdi
				rep movsq
				call	_imp_printstring@PLT
		.LVL6:
		.LBE20:
		.LBE19:
		.LBB21:
		.LBB22:
				addq	$256, %rsp
				movl	$0, %edi
				call	exit@PLT
		.LVL7:
		.L2:
		.LBE22:
		.LBE21:
		.LBB23:
    7 %stop
    8 ok:printstring("Test ok")
    9 %endofprogram
				movabsq	$30240007691396436, %rax
				movl	$0, %edx
				movq	%rax, 273(%rsp)
				movq	%rdx, 281(%rsp)
				leaq	289(%rsp), %rdi
				movl	$239, %ecx
				movl	$0, %eax
				rep stosb
				movb	$7, 272(%rsp)
				leaq	16(%rsp), %rdi
				leaq	272(%rsp), %rsi
				movl	$32, %ecx
				rep movsq
		.LVL8:
				movb	$7, 16(%rsp)
				leaq	272(%rsp), %rdi
				leaq	16(%rsp), %rsi
				movl	$32, %ecx
				rep movsq
		.LBE23:
		.LBB24:
		.LBB25:
				subq	$256, %rsp
		.LVL9:
				leaq	528(%rsp), %rsi
				movl	$32, %ecx
				movq	%rsp, %rdi
				rep movsq
				call	_imp_printstring@PLT
		.LVL10:
		.LBE25:
		.LBE24:
		.LBB26:
		.LBB27:
				addq	$256, %rsp
				movl	$0, %edi
				call	exit@PLT
		.LVL11:
		.LBE27:
		.LBE26:
		.LFE185:
		.Letext0:
   10 Statements compiled
