LSX/src/cc/table.i

/
/ c code tables-- compile to register
/

.globl	_regtab

.data
_regtab=.
	106.;	cr106
	30.;	cr70
	31.;	cr70
	32.;	cr32
	33.;	cr32
	37.;	cr37
	38.;	cr37
	98.;	cr100
	99.;	cr100
	80.;	cr80
	40.;	cr40
	41.;	cr40	/ - like +
	42.;	cr42
	43.;	cr43
	44.;	cr43
	45.;	cr45
	46.;	cr40
	55.; 	cr40
	48.;	cr40
	49.;	cr49
	70.;	cr70
	71.;	cr70
	72.;	cr72
	73.;	cr73
	74.;	cr74
	75.;	cr75
	76.;	cr72
	78.;	cr70
	85.;	cr70
	79.;	cr79
	102.;	cr102
	51.;	cr51
	52.;	cr52
	56.;	cr56
	57.;	cr57
	58.;	cr58
	59.;	cr59
	91.;	cr91
	82.;	cr82
	83.;	cr82
	84.;	cr82
	86.;	cr86
	87.;	cr86
	88.;	cr86
	0
.text

/ goto
cr102=.+2; 0
.byte 20,0;.byte 77,0
L1
.data
L1:<jmp>;.byte 301;<\n>
<\0>
.text
.byte 177,0;.byte 77,0
L2
.data
L2:<GB>
<jmp>;.byte 243;<(I)\n>
<\0>
.text
/ call
cr100=.+2; 0
.byte 20,0;.byte 77,0
L3
.data
L3:<jsr>;.byte 360;<c,MA\n>
<\0>
.text
.byte 177,0;.byte 77,0
L4
.data
L4:<GB>
<jsr>;.byte 360;<c,#(I)\n>
<\0>
.text
.byte 77,0;.byte 77,0
L5
.data
L5:<GA>
<jsr>;.byte 360;<c,(I)\n>
<\0>
.text
/ addressible
cr106=.+2; 0
.byte 4,0;.byte 77,0
L6
.data
L6:<clr>;.byte 311;<\n>
<\0>
.text
.byte 4,4;.byte 77,0
L7
.data
L7:<clrf>;.byte 311;<\n>
<\0>
.text
.byte 20,0;.byte 77,0
L8
.text;.byte 20,5;.byte 77,0
L8
.data
L8:<movC>;.byte 301;<,I\n>
<\0>
.text
.byte 20,4;.byte 77,0
L9
.data
L9:<movof>;.byte 301;<,I\n>
<\0>
.text
.byte 177,0;.byte 77,0
L10
.text;.byte 177,5;.byte 77,0
L10
.data
L10:<GB>
<movC>;.byte 243;<(I),I\n>
<\0>
.text
.byte 177,4;.byte 77,0
L11
.data
L11:<GB>
<movof>;.byte 243;<(I),I\n>
<\0>
.text
.byte 20,10;.byte 77,0
L12
.data
L12:<mov>;.byte 301;<+,I+\n>
<mov>;.byte 301;<,I\n>
<\0>
.text
.byte 177,10;.byte 77,0
L13
.data
L13:<GB>
<mov>;.byte 243;<+2(I),I+\n>
<mov>;.byte 243;<(I),I\n>
<\0>
.text
/ ++,-- postfix
cr32=.+2; 0
.byte 20,0;.byte 5,0
L14
.data
L14:<movC>;.byte 301;<',I\n>
<M'C>;.byte 301;<\n>
<\0>
.text
.byte 20,1;.byte 77,0
L15
.data
L15:<mov>;.byte 301;<',I\n>
<M>;.byte 302;<,A\n>
<\0>
.text
.byte 124,0;.byte 5,0
L16
.data
L16:<GJ>
<movC>;.byte 243;<(J),I\n>
<M'C>;.byte 243;<(J)\n>
<\0>
.text
.byte 177,0;.byte 5,0
L17
.data
L17:<GB>
<movC>;.byte 243;<(I),-(sp)\n>
<M'C>;.byte 243;<(I)\n>
<movC>;.byte 250;<sp)+,I\n>
<\0>
.text
.byte 124,1;.byte 77,0
L18
.data
L18:<GJ>
<mov>;.byte 243;<(J),I\n>
<M>;.byte 302;<,#(J)\n>
<\0>
.text
.byte 177,1;.byte 77,0
L19
.data
L19:<GB>
<mov>;.byte 243;<(I),-(sp)\n>
<M>;.byte 302;<,#(I)\n>
<mov>;.byte 250;<sp)+,I\n>
<\0>
.text
.byte 20,10;.byte 5,0
L20
.data
L20:<GA>
<M>;.byte 244;<1,A+\n>
<V>;.byte 301;<\n>
<\0>
.text
.byte 124,10;.byte 5,0
L21
.data
L21:<GJ>
<mov>;.byte 243;<+2(J),I+\n>
<mov>;.byte 243;<(J),I\n>
<M>;.byte 244;<1,#+2(J)\n>
<V>;.byte 243;<(J)\n>
<\0>
.text
.byte 177,10;.byte 5,0
L22
.data
L22:<GB>
<mov>;.byte 243;<+2(I),-(sp)\n>
<mov>;.byte 243;<(I),-(sp)\n>
<add>;.byte 244;<1,#+2(I)\n>
<V>;.byte 243;<(I)\n>
<mov>;.byte 250;<sp)+,I\n>
<mov>;.byte 250;<sp)+,I+\n>
<\0>
.text
/ - unary, ~
cr37=.+2; 0
.byte 77,0;.byte 77,0
L23
.text;.byte 77,4;.byte 77,0
L23
.data
L23:<GA>
<MP>;.byte 311;<\n>
<\0>
.text
.byte 77,10;.byte 77,0
L24
.data
L24:<GA>
<M>;.byte 311;<\n>
<M>;.byte 311;<+\n>
<V>;.byte 311;<\n>
<\0>
.text
/ =
cr80=.+2; 0
.byte 20,0;.byte 77,0
L25
.text;.byte 20,5;.byte 77,4
L25
.data
L25:<KA>
<movC>;.byte 311;<,A\n>
<\0>
.text
.byte 20,4;.byte 77,4
L26
.data
L26:<KA>
<movfo>;.byte 311;<,A\n>
<\0>
.text
.byte 177,5;.byte 20,4
L27
.data
L27:<GB>
<KA>
<movf>;.byte 311;<,#(I)\n>
<\0>
.text
.byte 177,0;.byte 20,0
L28
.data
L28:<GB>
<movC>;.byte 302;<,#(I)\n>
<movC>;.byte 243;<(I),I\n>
<\0>
.text
.byte 177,4;.byte 20,4
L29
.data
L29:<GB>
<KA>
<movfo>;.byte 311;<,#(I)\n>
<\0>
.text
.byte 177,0;.byte 24,0
L30
.data
L30:<GB>
<KI>
<movC>;.byte 312;<,#(I)\n>
<movC>;.byte 312;<,I\n>
<\0>
.text
.byte 124,5;.byte 77,4
L31
.data
L31:<KA>
<GJ>
<movf>;.byte 311;<,#(J)\n>
<\0>
.text
.byte 124,4;.byte 77,4
L32
.data
L32:<KA>
<GJ>
<movfo>;.byte 311;<,#(J)\n>
<\0>
.text
.byte 177,0;.byte 77,0
L33
.text;.byte 177,5;.byte 77,4
L33
.data
L33:<GD>
<KA>
<movC>;.byte 311;<,*(sp)+\n>
<\0>
.text
.byte 177,4;.byte 77,4
L34
.data
L34:<GD>
<KA>
<movfo>;.byte 311;<,*(sp)+\n>
<\0>
.text
/ +, -, |, &~, <<
cr40=.+2; 0
.byte 77,0;.byte 4,0
L35
.data
L35:<GA>
<\0>
.text
.byte 77,0;.byte 5,0
L36
.data
L36:<GA>
<M'>;.byte 311;<\n>
<\0>
.text
.data;add1:;.text;.byte 77,0;.byte 20,1
L37
.text;.byte 77,4;.byte 20,5
L37
.data
L37:<GA>
<MD>;.byte 302;<,I\n>
<\0>
.text
.data;add2:;.text;.byte 77,0;.byte 124,1
L38
.text;.byte 77,4;.byte 124,5
L38
.data
L38:<GA>
<KJ>
<MD>;.byte 242;<(J),I\n>
<\0>
.text
.data;add3:;.text;.byte 77,0;.byte 24,0
L39
.text;.byte 77,4;.byte 24,4
L39
.data
L39:<GA>
<KI>
<MP>;.byte 312;<,I\n>
<\0>
.text
.data;add4:;.text;.byte 77,0;.byte 177,1
L40
.text;.byte 77,4;.byte 177,5
L40
.data
L40:<KD>
<GA>
<MD>;.byte 252;<(sp)+,I\n>
<\0>
.text
.data;add5:;.text;.byte 77,0;.byte 77,0
L41
.text;.byte 77,4;.byte 77,4
L41
.data
L41:<KC>
<GA>
<MP>;.byte 250;<sp)+,I\n>
<\0>
.text
.byte 77,10;.byte 10,0
L42
.data
L42:<GA>
<M>;.byte 302;<,I+\n>
<V>;.byte 311;<\n>
<\0>
.text
.byte 77,10;.byte 20,10
L43
.data
L43:<GA>
<M>;.byte 302;<,I\n>
<M>;.byte 302;<+,I+\n>
<V>;.byte 311;<\n>
<\0>
.text
.byte 77,10;.byte 24,10
L44
.data
L44:<GA>
<KI>
<M>;.byte 312;<+,I+\n>
<V>;.byte 311;<\n>
<M>;.byte 312;<,I\n>
<\0>
.text
.byte 77,10;.byte 77,10
L45
.data
L45:<KC>
<GA>
<M>;.byte 250;<sp)+,I\n>
<M>;.byte 250;<sp)+,I+\n>
<V>;.byte 311;<\n>
<\0>
.text
/ ^ -- xor
cr49=.+2; 0
.byte 77,0;.byte 24,0
L46
.text;L46=add3

.byte 77,0;.byte 77,0
L47
.data
L47:<GC>
<KA>
<xor>;.byte 311;<,(sp)\n>
<mov>;.byte 250;<sp)+,I\n>
<\0>
.text
/ >> (all complicated cases taken care of by << -)
cr45=.+2; 0
.byte 77,0;.byte 5,0
L48
.data
L48:<GA>
<asr>;.byte 311;<\n>
<\0>
.text
/ * -- I must be odd on integers
cr42=.+2; 0
.byte 77,0;.byte 20,1
L49
.text;.byte 77,4;.byte 20,5
L49
.text;L49=add1

.byte 77,0;.byte 124,1
L50
.text;.byte 77,4;.byte 124,5
L50
.text;L50=add2

.byte 77,0;.byte 24,0
L51
.text;.byte 77,4;.byte 24,4
L51
.text;L51=add3

.byte 77,0;.byte 77,0
L52
.text;.byte 77,4;.byte 77,4
L52
.text;L52=add5

/ / I must be odd on integers
cr43=.+2; 0
.byte 77,0;.byte 20,1
L53
.data
L53:<GA>
<T>
<sxt>;.byte 311;<-\n>
<div>;.byte 302;<,I-\n>
<\0>
.text
.byte 77,0;.byte 124,1
L54
.data
L54:<GA>
<T>
<sxt>;.byte 311;<-\n>
<KJ>
<div>;.byte 242;<(J),I-\n>
<\0>
.text
.byte 77,0;.byte 24,0
L55
.data
L55:<GA>
<T>
<sxt>;.byte 311;<-\n>
<KI>
<div>;.byte 312;<,I-\n>
<\0>
.text
.byte 77,0;.byte 77,0
L56
.data
L56:<KC>
<GA>
<T>
<sxt>;.byte 311;<-\n>
<div>;.byte 250;<sp)+,I-\n>
<\0>
.text
.byte 77,4;.byte 20,5
L57
.text;L57=add1

.byte 77,4;.byte 124,5
L58
.text;L58=add2

.byte 77,4;.byte 24,4
L59
.text;L59=add3

.byte 77,4;.byte 77,4
L60
.text;L60=add5

/ =+, =-, =|, =&~
cr70=.+2; 0
.data;addq1:;.text;.byte 20,1;.byte 20,1
L61
.data
L61:<M>;.byte 302;<,A'\n>
<mov>;.byte 301;<,I\n>
<\0>
.text
.data;addq1a:;.text;.byte 20,0;.byte 20,1
L62
.text;.byte 20,5;.byte 20,5
L62
.data
L62:<movC>;.byte 301;<',I\n>
<MP>;.byte 302;<,I\n>
<movC>;.byte 311;<,A\n>
<\0>
.text
.data;addq2:;.text;.byte 20,1;.byte 177,1
L63
.data
L63:<KB>
<M>;.byte 242;<(I),A'\n>
<mov>;.byte 301;<,I\n>
<\0>
.text
.data;addq3:;.text;.byte 20,1;.byte 77,0
L64
.data
L64:<KA>
<M>;.byte 311;<,A'\n>
<mov>;.byte 301;<,I\n>
<\0>
.text
.data;addq4:;.text;.byte 124,1;.byte 177,1
L65
.data
L65:<KB>
<GJ>
<M>;.byte 242;<(I),#(J)\n>
<mov>;.byte 243;<(J),I\n>
<\0>
.text
.data;addq4a:;.text;.byte 20,5;.byte 24,4
L66
.data
L66:<movf>;.byte 301;<',I\n>
<KI>
<MP>;.byte 312;<,I\n>
<movf>;.byte 311;<,A\n>
<\0>
.text
.data;addq5:;.text;.byte 20,0;.byte 77,0
L67
.text;.byte 20,5;.byte 77,4
L67
.data
L67:<KC>
<movC>;.byte 301;<',I\n>
<MP>;.byte 250;<sp)+,I\n>
<movC>;.byte 311;<,A\n>
<\0>
.text
.data;addq6:;.text;.byte 20,4;.byte 77,4
L68
.data
L68:<KC>
<movof>;.byte 301;<',I\n>
<MP>;.byte 250;<sp)+,I\n>
<movfo>;.byte 311;<,A\n>
<\0>
.text
.data;addq7:;.text;.byte 124,1;.byte 77,0
L69
.data
L69:<KA>
<GJ>
<M>;.byte 311;<,#(J)\n>
<mov>;.byte 243;<(J),I\n>
<\0>
.text
.data;addq8:;.text;.byte 177,1;.byte 77,0
L70
.data
L70:<KC>
<GB>
<M>;.byte 250;<sp)+,#(I)\n>
<mov>;.byte 243;<(I),I\n>
<\0>
.text
.data;addq9:;.text;.byte 177,0;.byte 77,0
L71
.data
L71:<GD>
<KC>
<movC>;.byte 252;<2(sp),I\n>
<MP>;.byte 250;<sp)+,I\n>
<movC>;.byte 311;<,*(sp)+\n>
<\0>
.text
.data;addq9a:;.text;.byte 177,5;.byte 77,4
L72
.data
L72:<KC>
<GB>
<movC>;.byte 243;<(I),I\n>
<MP>;.byte 250;<sp)+,I\n>
<movC>;.byte 311;<,#(I)\n>
<\0>
.text
.data;addq10:;.text;.byte 177,4;.byte 77,4
L73
.data
L73:<KC>
<GB>
<movof>;.byte 243;<(I),J\n>
<MP>;.byte 250;<sp)+,J\n>
<movfo>;.byte 312;<,#(I)\n>
<movf>;.byte 312;<,I\n>
<\0>
.text
/ =*, =<< (for integer multiply, I must be odd)
cr72=.+2; 0
.byte 20,0;.byte 20,1
L74
.text;.byte 20,5;.byte 20,5
L74
.text;L74=addq1a

.byte 20,4;.byte 77,4
L75
.text;L75=addq6

.byte 20,5;.byte 24,4
L76
.text;L76=addq4a

.byte 20,0;.byte 77,0
L77
.text;.byte 20,5;.byte 77,4
L77
.text;L77=addq5

.byte 177,0;.byte 77,0
L78
.text;L78=addq9

.byte 177,5;.byte 77,4
L79
.text;L79=addq9a

.byte 177,4;.byte 77,4
L80
.text;L80=addq10

/ =/ ;  I must be odd on integers
cr73=.+2; 0
.byte 20,0;.byte 20,1
L81
.data
L81:<movC>;.byte 301;<',I\n>
<sxt>;.byte 311;<-\n>
<divP>;.byte 302;<,I-\n>
<movC>;.byte 311;<-,A\n>
<\0>
.text
.byte 20,0;.byte 77,0
L82
.data
L82:<KC>
<movC>;.byte 301;<',I\n>
<sxt>;.byte 311;<-\n>
<div>;.byte 250;<sp)+,I-\n>
<movC>;.byte 311;<-,A\n>
<\0>
.text
.byte 124,0;.byte 77,0
L83
.data
L83:<KC>
<GJ>
<movC>;.byte 243;<(J),I\n>
<sxt>;.byte 311;<-\n>
<div>;.byte 250;<sp)+,I-\n>
<movC>;.byte 311;<-,#(J)\n>
<\0>
.text
.byte 177,0;.byte 77,0
L84
.data
L84:<GD>
<KC>
<movC>;.byte 252;<2(sp),I\n>
<sxt>;.byte 311;<-\n>
<div>;.byte 250;<sp)+,I-\n>
<movC>;.byte 311;<-,*(sp)+\n>
<\0>
.text
.byte 20,5;.byte 20,5
L85
.text;L85=addq1a

.byte 20,5;.byte 24,4
L86
.text;L86=addq4a

.byte 20,5;.byte 77,4
L87
.text;L87=addq5

.byte 20,4;.byte 77,4
L88
.text;L88=addq6

.byte 177,5;.byte 77,4
L89
.text;L89=addq9a

.byte 177,4;.byte 77,4
L90
.text;L90=addq10

/ =mod; I must be odd on integers
cr74=.+2; 0
.byte 20,0;.byte 20,1
L91
.data
L91:<movC>;.byte 301;<',I\n>
<sxt>;.byte 311;<-\n>
<div>;.byte 302;<,I-\n>
<movC>;.byte 311;<,A\n>
<\0>
.text
.byte 20,0;.byte 77,0
L92
.data
L92:<KC>
<movC>;.byte 301;<',I\n>
<sxt>;.byte 311;<-\n>
<div>;.byte 250;<sp)+,I-\n>
<movC>;.byte 311;<,A\n>
<\0>
.text
.byte 124,0;.byte 77,0
L93
.data
L93:<KC>
<GJ>
<movC>;.byte 243;<(J),I\n>
<sxt>;.byte 311;<-\n>
<div>;.byte 250;<sp)+,I-\n>
<movC>;.byte 311;<,#(J)\n>
<\0>
.text
.byte 177,0;.byte 77,0
L94
.data
L94:<GD>
<KC>
<movC>;.byte 252;<2(sp),I\n>
<sxt>;.byte 311;<-\n>
<div>;.byte 250;<sp)+,I-\n>
<mov>;.byte 311;<,*(sp)+\n>
<\0>
.text
/ =^ -- =xor
cr79=.+2; 0
.byte 20,1;.byte 77,0
L95
.text;L95=addq3

.byte 20,3;.byte 77,0
L96
.data
L96:<KC>
<movb>;.byte 301;<',I\n>
<xor>;.byte 311;<,(sp)\n>
<mov>;.byte 250;<sp)+,I\n>
<movb>;.byte 311;<,A\n>
<\0>
.text
.byte 177,0;.byte 77,0
L97
.data
L97:<GD>
<movC>;.byte 252;<(sp),-(sp)\n>
<KA>
<xor>;.byte 311;<,(sp)\n>
<movC>;.byte 250;<sp)+,I\n>
<movC>;.byte 311;<,*(sp)+\n>
<\0>
.text
/ =>> (all complicated cases done by =<< -)
cr75=.+2; 0
.byte 20,0;.byte 5,0
L98
.data
L98:<asrC>;.byte 301;<'\n>
<movC>;.byte 301;<,I\n>
<\0>
.text
.byte 177,0;.byte 5,0
L99
.data
L99:<GB>
<asrC>;.byte 243;<(I)\n>
<movC>;.byte 243;<(I),I\n>
<\0>
.text
/ << for longs
cr91=.+2; 0
.byte 77,10;.byte 20,1
L100
.text;L100=add1

.byte 77,10;.byte 124,1
L101
.text;L101=add2

.byte 77,10;.byte 24,0
L102
.text;L102=add3

.byte 77,10;.byte 177,1
L103
.text;L103=add4

.byte 77,10;.byte 77,0
L104
.text;L104=add5

/ int -> float
cr51=.+2; 0
.byte 20,1;.byte 77,0
L105
.data
L105:<movif>;.byte 301;<,I\n>
<\0>
.text
.byte 177,1;.byte 77,0
L106
.data
L106:<GB>
<movif>;.byte 243;<(I),I\n>
<\0>
.text
.byte 77,0;.byte 77,0
L107
.data
L107:<GA>
<movif>;.byte 311;<,I\n>
<\0>
.text
/ float, double -> int
cr52=.+2; 0
.byte 77,4;.byte 77,0
L108
.data
L108:<GA>
<movfi>;.byte 311;<,I\n>
<\0>
.text
/ double (float) to long
cr56=.+2; 0
.byte 77,4;.byte 77,0
L109
.data
L109:<GA>
<setl\n>
<movfi>;.byte 311;<,-(sp)\n>
<mov>;.byte 250;<sp)+,I\n>
<mov>;.byte 250;<sp)+,I+\n>
<seti\n>
<\0>
.text
/ long to double
cr57=.+2; 0
.byte 20,10;.byte 77,0
L110
.data
L110:<setl\n>
<movif>;.byte 301;<,I\n>
<seti\n>
<\0>
.text
.byte 177,10;.byte 77,0
L111
.data
L111:<GB>
<setl\n>
<movif>;.byte 243;<(I),I\n>
<seti\n>
<\0>
.text
.byte 77,10;.byte 77,0
L112
.data
L112:<GC>
<setl\n>
<movif>;.byte 250;<sp)+,I\n>
<seti\n>
<\0>
.text
/ integer to long
cr58=.+2; 0
.byte 77,0;.byte 77,0
L113
.data
L113:<GI!>
<sxt>;.byte 311;<\n>
<\0>
.text
/ long to integer
cr59=.+2; 0
.byte 20,10;.byte 77,0
L114
.data
L114:<mov>;.byte 301;<+,I\n>
<\0>
.text
.byte 177,10;.byte 77,0
L115
.data
L115:<GB>
<mov>;.byte 243;<+2(I),I\n>
<\0>
.text
.byte 77,10;.byte 77,0
L116
.data
L116:<GA>
<mov>;.byte 311;<+,I\n>
<\0>
.text
/ *, /, remainder for longs.
cr82=.+2; 0
.byte 77,10;.byte 77,10
L117
.data
L117:<KC>
<GC>
<jsr>;.byte 360;<c,M\n>
<add>;.byte 244;<10,sp\n>
<\0>
.text
/ =*, =/, =rem for longs
/ Operands of the form &x op y, so stack space is known.
cr86=.+2; 0
.byte 77,0;.byte 77,10
L118
.data
L118:<KC>
<GC>
<jsr>;.byte 360;<c,M\n>
<add>;.byte 244;<6,sp\n>
<\0>
.text
/
/ c code tables -- compile for side effects.
/ Olso set condition codes properly (except for ++, --)
/

.globl	_efftab

.data
_efftab=.
	30.;	ci70
	31.;	ci70
	32.;	ci70
	33.;	ci70
	80.;	ci80
	70.;	ci70
	71.;	ci70	/ - like +
	78.;	ci78
	85.;	ci78
	75.;	ci75
	76.;	ci76
	92.;	ci92
	0
.text

/ =
ci80=.+2; 0
.data;move1:;.text;.byte 20,0;.byte 4,0
L119
.text;.byte 20,5;.byte 4,4
L119
.data
L119:<M'C>;.byte 301;<\n>
<\0>
.text
.data;move2:;.text;.byte 177,0;.byte 4,0
L120
.text;.byte 177,5;.byte 4,4
L120
.data
L120:<GB>
<M'C>;.byte 243;<(I)\n>
<\0>
.text
.data;move3:;.text;.byte 20,0;.byte 20,1
L121
.text;.byte 20,3;.byte 20,0
L121
.data
L121:<ML>;.byte 302;<,A\n>
<\0>
.text
.data;move4:;.text;.byte 20,3;.byte 177,0
L122
.text;.byte 20,0;.byte 177,1
L122
.data
L122:<KB>
<ML>;.byte 242;<(I),A\n>
<\0>
.text
.data;move5:;.text;.byte 20,0;.byte 77,0
L123
.data
L123:<KA>
<MC>;.byte 311;<,A\n>
<\0>
.text
.data;move6:;.text;.byte 177,0;.byte 20,1
L124
.text;.byte 177,3;.byte 20,0
L124
.data
L124:<GB>
<ML>;.byte 302;<,#(I)\n>
<\0>
.text
.data;move7:;.text;.byte 177,0;.byte 124,1
L125
.text;.byte 177,3;.byte 124,0
L125
.data
L125:<GB>
<KJ>
<ML>;.byte 242;<(J),#(I)\n>
<\0>
.text
.data;move8:;.text;.byte 177,0;.byte 24,0
L126
.data
L126:<GB>
<KI>
<MC>;.byte 312;<,#(I)\n>
<\0>
.text
.data;move9:;.text;.byte 124,0;.byte 177,1
L127
.text;.byte 124,3;.byte 177,0
L127
.data
L127:<KB>
<GJ>
<ML>;.byte 242;<(I),#(J)\n>
<\0>
.text
.data;move10:;.text;.byte 124,0;.byte 77,0
L128
.data
L128:<KA>
<GJ>
<MC>;.byte 311;<,#(J)\n>
<\0>
.text
.data;move11:;.text;.byte 177,0;.byte 177,1
L129
.text;.byte 177,3;.byte 177,0
L129
.data
L129:<GD>
<KB>
<ML>;.byte 242;<(I),*(sp)+\n>
<\0>
.text
.data;move12:;.text;.byte 177,0;.byte 77,0
L130
.data
L130:<GD>
<KA>
<MC>;.byte 311;<,*(sp)+\n>
<\0>
.text
.byte 20,10;.byte 4,0
L131
.data
L131:<clr>;.byte 301;<\n>
<clr>;.byte 301;<+\n>
<\0>
.text
.byte 20,10;.byte 20,1
L132
.data
L132:<mov>;.byte 302;<,A+\n>
<sxt>;.byte 301;<\n>
<\0>
.text
.byte 20,10;.byte 177,1
L133
.data
L133:<mov>;.byte 242;<(I),A+\n>
<sxt>;.byte 301;<\n>
<\0>
.text
.byte 20,10;.byte 77,0
L134
.data
L134:<KA>
<mov>;.byte 311;<,A+\n>
<sxt>;.byte 301;<\n>
<\0>
.text
.byte 20,10;.byte 77,4
L135
.data
L135:<KA>
<setl\n>
<movfi>;.byte 311;<,A\n>
<seti\n>
<\0>
.text
.byte 124,10;.byte 77,4
L136
.data
L136:<KA>
<GJ>
<setl\n>
<movfi>;.byte 311;<,#(J)\n>
<seti\n>
<\0>
.text
.data;move13a:;.text;.byte 20,10;.byte 10,0
L137
.data
L137:<M>;.byte 302;<,A+\n>
<V>;.byte 301;<\n>
<\0>
.text
.data;move13:;.text;.byte 20,10;.byte 20,10
L138
.data
L138:<M>;.byte 302;<,A\n>
<M>;.byte 302;<+,A+\n>
<V>;.byte 301;<\n>
<\0>
.text
.data;move14:;.text;.byte 20,10;.byte 177,10
L139
.data
L139:<KB>
<M>;.byte 242;<(I),A\n>
<M>;.byte 242;<+2(I),A+\n>
<V>;.byte 301;<\n>
<\0>
.text
.data;move14a:;.text;.byte 177,10;.byte 10,0
L140
.data
L140:<GB>
<M>;.byte 302;<,2+#(I)\n>
<V>;.byte 243;<(I)\n>
<\0>
.text
.data;move15:;.text;.byte 20,10;.byte 77,10
L141
.data
L141:<KA>
<M>;.byte 311;<,A\n>
<M>;.byte 311;<+,A+\n>
<V>;.byte 301;<\n>
<\0>
.text
.byte 177,10;.byte 20,1
L142
.data
L142:<GB>
<mov>;.byte 302;<,#+2(I)\n>
<sxt>;.byte 243;<(I)\n>
<\0>
.text
.data;move16:;.text;.byte 124,10;.byte 77,10
L143
.data
L143:<KA>
<GJ>
<M>;.byte 311;<+,#+2(J)\n>
<V>;.byte 243;<(J)\n>
<M>;.byte 311;<,#(J)\n>
<\0>
.text
.byte 177,10;.byte 77,0
L144
.data
L144:<KC>
<GB>
<mov>;.byte 250;<sp)+,#+2(I)\n>
<sxt>;.byte 243;<(I)\n>
<\0>
.text
.data;move17:;.text;.byte 177,10;.byte 77,10
L145
.data
L145:<KC>
<GB>
<M>;.byte 250;<sp)+,#(I)\n>
<M>;.byte 250;<sp)+,#+2(I)\n>
<V>;.byte 243;<(I)\n>
<\0>
.text
/ =| and =& ~
ci78=.+2; 0
.byte 20,0;.byte 20,0
L146
.text;L146=move3

.byte 20,0;.byte 77,0
L147
.text;L147=move5

.byte 177,0;.byte 20,0
L148
.text;L148=move6

.byte 177,0;.byte 124,0
L149
.text;L149=move7

.byte 177,0;.byte 24,0
L150
.text;L150=move8

.byte 124,0;.byte 177,0
L151
.text;L151=move9

.byte 124,0;.byte 77,0
L152
.text;L152=move10

.byte 177,0;.byte 177,0
L153
.text;L153=move11

.byte 177,0;.byte 77,0
L154
.text;L154=move12

.byte 20,10;.byte 10,0
L155
.text;L155=move13a

.byte 20,10;.byte 20,10
L156
.text;L156=move13

.byte 20,10;.byte 177,10
L157
.text;L157=move14

.byte 20,10;.byte 77,10
L158
.text;L158=move15

.byte 177,10;.byte 10,0
L159
.text;L159=move14a

.byte 124,10;.byte 77,10
L160
.text;L160=move16

.byte 177,10;.byte 77,10
L161
.text;L161=move17

/ =+
ci70=.+2; 0
.byte 177,0;.byte 4,0
L162
.text;.byte 20,0;.byte 4,0
L162
.data
L162:<\0>
.text
.byte 20,0;.byte 5,0
L163
.data
L163:<M'C>;.byte 301;<\n>
<\0>
.text
.byte 20,1;.byte 20,1
L164
.text;L164=move3

.byte 20,1;.byte 177,1
L165
.text;L165=move4

.byte 20,1;.byte 77,0
L166
.text;L166=move5

.byte 177,0;.byte 5,0
L167
.text;L167=move2

.byte 124,1;.byte 177,1
L168
.text;L168=move9

.byte 20,0;.byte 177,1
L169
.data
L169:<KB>
<movC>;.byte 301;<',J\n>
<M>;.byte 242;<(I),J\n>
<movC>;.byte 312;<,A\n>
<\0>
.text
.byte 20,0;.byte 77,0
L170
.data
L170:<KA>
<movC>;.byte 301;<',J\n>
<M>;.byte 311;<,J\n>
<movC>;.byte 312;<,A\n>
<\0>
.text
.byte 124,1;.byte 77,0
L171
.text;L171=move10

.byte 177,1;.byte 77,0
L172
.text;L172=move12

.byte 177,0;.byte 77,0
L173
.data
L173:<KC>
<GB>
<movC>;.byte 243;<(I),J\n>
<M>;.byte 250;<sp)+,J\n>
<movC>;.byte 312;<,#(I)\n>
<\0>
.text
.byte 20,10;.byte 10,0
L174
.text;L174=move13a

.byte 20,10;.byte 20,10
L175
.text;L175=move13

.byte 20,10;.byte 177,10
L176
.text;L176=move14

.byte 20,10;.byte 77,10
L177
.text;L177=move15

.byte 177,10;.byte 10,0
L178
.text;L178=move14a

.byte 124,10;.byte 77,10
L179
.text;L179=move16

.byte 177,10;.byte 77,10
L180
.text;L180=move17

/ =>> (all harder cases handled by =<< -)
ci75=.+2; 0
.byte 20,0;.byte 5,0
L181
.data
L181:<asrC>;.byte 301;<\n>
<\0>
.text
.byte 177,0;.byte 5,0
L182
.data
L182:<GB>
<asrC>;.byte 243;<(I)\n>
<\0>
.text
/ =<<
ci76=.+2; 0
.byte 20,0;.byte 5,0
L183
.data
L183:<aslC>;.byte 301;<\n>
<\0>
.text
.byte 177,0;.byte 5,0
L184
.data
L184:<GB>
<aslC>;.byte 243;<(I)\n>
<\0>
.text
.byte 11,0;.byte 20,1
L185
.data
L185:<ash>;.byte 302;<,A\n>
<\0>
.text
.byte 11,0;.byte 177,1
L186
.data
L186:<KB>
<ash>;.byte 242;<(I),A\n>
<\0>
.text
.byte 11,0;.byte 77,0
L187
.data
L187:<KA>
<ash>;.byte 311;<,A\n>
<\0>
.text
/ =<< for longs
ci92=.+2; 0
.byte 20,10;.byte 20,1
L188
.data
L188:<GA>
<ashc>;.byte 302;<,I\n>
<mov>;.byte 311;<,A\n>
<mov>;.byte 311;<+,A+\n>
<\0>
.text
.byte 20,10;.byte 77,0
L189
.data
L189:<KC>
<GA>
<ashc>;.byte 250;<sp)+,I\n>
<mov>;.byte 311;<,A\n>
<mov>;.byte 311;<+,A+\n>
<\0>
.text
.byte 177,10;.byte 77,0
L190
.data
L190:<GD>
<KC>
<mov>;.byte 262;<(sp),I\n>
<mov>;.byte 262;<(I),I+\n>
<mov>;.byte 250;<I),I\n>
<ashc>;.byte 250;<sp)+,I\n>
<mov>;.byte 311;<,*(sp)\n>
<mov>;.byte 250;<sp)+,I\n>
<mov>;.byte 311;<+,2(I)\n>
<\0>
.text
/
/ c code tables-- set condition codes
/

.globl	_cctab

.data
_cctab=.
	106.;	cc60
	28.;	rest
	55.;	rest
	34.;	rest
	35.;	rest
	36.;	rest
	37.;	rest
	40.;	rest
	41.;	rest
	42.;	rest
	43.;	rest
	45.;	rest
	46.;	rest
	81.;	cc81	/ & as in "if ((a&b)==0)"
	48.;	rest
	60.;	cc60
	61.;	cc60
	62.;	cc60
	63.;	cc60
	64.;	cc60
	65.;	cc60
	66.;	cc60
	67.;	cc60
	68.;	cc60
	69.;	cc60
	72.;	rest
	73.;	rest
	79.;	rest
	0
.text

/ relationals
cc60=.+2; 0
.byte 20,0;.byte 4,0
L191
.text;.byte 20,5;.byte 4,4
L191
.text;L191=move1

.byte 20,4;.byte 4,0
L192
.data
L192:<movof>;.byte 301;<,I\n>
<\0>
.text
.byte 177,0;.byte 4,0
L193
.text;.byte 177,5;.byte 4,4
L193
.text;L193=move2

.byte 177,4;.byte 4,0
L194
.data
L194:<GB>
<movof>;.byte 243;<(I),I\n>
<\0>
.text
.byte 77,0;.byte 4,0
L195
.text;.byte 77,4;.byte 4,4
L195
.data
L195:<GE>
<\0>
.text
.byte 20,1;.byte 20,1
L196
.text;.byte 20,3;.byte 20,3
L196
.text;L196=move3

.byte 177,1;.byte 20,1
L197
.text;.byte 177,3;.byte 20,3
L197
.text;L197=move6

.byte 77,0;.byte 20,1
L198
.text;.byte 77,4;.byte 20,5
L198
.text;L198=add1

.byte 177,1;.byte 124,1
L199
.text;.byte 177,3;.byte 124,3
L199
.text;L199=move7

.byte 177,1;.byte 24,0
L200
.text;L200=move8

.byte 77,0;.byte 124,1
L201
.text;.byte 77,4;.byte 124,5
L201
.text;L201=add2

.byte 77,0;.byte 24,0
L202
.text;.byte 77,4;.byte 24,4
L202
.text;L202=add3

.byte 177,1;.byte 177,1
L203
.text;.byte 177,3;.byte 177,3
L203
.text;L203=move11

.byte 177,1;.byte 77,0
L204
.text;L204=move12

.byte 77,0;.byte 77,0
L205
.text;.byte 77,4;.byte 77,4
L205
.text;L205=add5

/ & as in "if ((a&b) ==0)"
cc81=.+2; 0
.byte 20,0;.byte 20,0
L206
.text;L206=move3

.byte 177,0;.byte 20,0
L207
.text;L207=move6

.byte 77,0;.byte 20,0
L208
.text;L208=add1

.byte 77,0;.byte 24,0
L209
.text;L209=add3

.byte 77,0;.byte 77,0
L210
.text;L210=add5

/ set codes right
rest=.+2; 0
.byte 77,0;.byte 77,0
L211
.text;.byte 77,4;.byte 77,4
L211
.data
L211:<HA>
<\0>
.text
/
/ c code tables-- expression to -(sp)
/

.globl	_sptab

.data
_sptab=.
	106.;	cs106
	40.;	cs40
	41.;	cs40
	55.;	cs40
	48.;	cs40
	58.;	cs58
	56.;	cs56
	0
.text


/ name
cs106=.+2; 0
.byte 4,0;.byte 77,0
L212
.text;.byte 4,4;.byte 77,0
L212
.data
L212:<clrC>;.byte 255;<(sp)\n>
<\0>
.text
.byte 20,1;.byte 77,0
L213
.data
L213:<mov>;.byte 301;<,-(sp)\n>
<\0>
.text
.byte 177,1;.byte 77,0
L214
.data
L214:<GB>
<mov>;.byte 243;<(I),-(sp)\n>
<\0>
.text
.byte 20,10;.byte 77,0
L215
.data
L215:<mov>;.byte 301;<+,-(sp)\n>
<mov>;.byte 301;<,-(sp)\n>
<\0>
.text
/ +, -, |, &~
cs40=.+2; 0
.byte 77,0;.byte 5,0
L216
.data
L216:<GC>
<M'>;.byte 250;<sp)\n>
<\0>
.text
.byte 77,0;.byte 20,1
L217
.data
L217:<GC>
<M>;.byte 302;<,(sp)\n>
<\0>
.text
.byte 77,0;.byte 177,1
L218
.data
L218:<GC>
<KB>
<M>;.byte 242;<(I),(sp)\n>
<\0>
.text
.byte 77,0;.byte 77,0
L219
.data
L219:<GC>
<KA>
<M>;.byte 311;<,(sp)\n>
<\0>
.text
/ integer to long
cs58=.+2; 0
.byte 77,0;.byte 77,0
L220
.data
L220:<GC>
<sxt>;.byte 255;<(sp)\n>
<\0>
.text
/ float to long
cs56=.+2; 0
.byte 77,4;.byte 77,0
L221
.data
L221:<GA>
<setl\n>
<movfi>;.byte 311;<,-(sp)\n>
<seti\n>
<\0>
.text
.text; 0