	.extern f001
	.extern F002
	.text
	.global load_immediate
load_immediate:
	/* Half-Word Load.  */
	M3.l = 0xffff;
	b2.l = 0xfffe;
	Sp.l = 0;
	FP.L = 0xfedc;
	r0.h = 2;
	p5.H = 32;
	I2.h = 0xf204;
	b1.H = 64;
	l0.h = 0xffff;
	R5.h = load_data1;
	B2.H = F002;

	/* Zero Extended.  */
	fp = 0xff20 (Z);
	l2 = 32 (z);
	R5 = foo2 (Z);
	A0 = 0;
	A1 = 0;
	a1 = a0 = 0;

	/* Sign Extended.  */
	r2 = -64 (x);
	R0 = 0x7f (X);
	P2 = 0 (x);
	sp = -32 (x);
	fp = 44 (X);
	l3 = 0x800 (x);
	m2 = 0x7fff (X);
	R1 = 16 (X);
	L0 = foo1;
	r7 = load_data2;

	/* Test constant folding.  */
	r0.l = (a + 5) - 2; 
	r1.l = (a + 5) + 10;

	.text
	.global load_pointer_register
load_pointer_register:
	Sp = [ fp];
	FP = [ p0++ ];
	p1 = [sp--];
	SP = [P2 +56];
	p3 = [fp + 0];
	P4 = [FP + 0x0001FFFC];
	sp = [fp-0x0001fffc];
	sp = [p4-0];
	P5 = [FP-128];
	

	.text
	.global load_data_register
load_data_register:
	R7 = [p0];
	r6 = [p5++];
	r5 = [P4 --];
	R4 = [Fp + 40];
	r3 = [sp+131068];
	r2 = [sp-0];
	r1 = [fp - 0x0001fffc];
	R0 = [sp ++ p0];
	R5 = [Fp-128];
	r2 = [i0];
	r1 = [I1++];
	R3 = [I2--];
	R4 = [i3 ++ M0];

	.text
	.global load_half_word_zero_extend
load_half_word_zero_extend:
	r7 = w [sp] (z);
	R6 = W [FP ++] (Z);
	R5 = W [P0 --] (z);
	R4 = w [p1 + 30] (Z);
	r3 = w [sp + 0xfffc] (z);
	r2 = w [fp - 0xfffc] (Z);
	R0 = W [ P0 ++ P5] (z);

	.text
	.global load_half_word_sign_extend
load_half_word_sign_extend:
	r7 = w [sp] (x);
	R6 = W [FP ++] (X);
	R5 = W [P0 --] (X);
	r5 = w [p1 + 24] (x);
	R3 = w [sp + 0xfffc] (X);
	r7 = w [fp - 0xfffc] (x);
	R1 = W [ P1 ++ P2] (X);
	
	.text
	.global load_high_data_register_half
load_high_data_register_half:
	r0.h = w [i0];
	R1.H = W [I1 ++];
	R2.h = w [I2 --];
	r3.H = W [sp];
	R4.h = W [Fp ++ p0];

	.text
	.global load_low_data_register_half
load_low_data_register_half:
	r7.l = w [i3];
	R6.L = W [I2++];
	R5.l = w [i1 --];
	r4.L = w [P0];
	r3.l = W [p2 ++ p3];

	.text
	.global load_byte_zero_extend
load_byte_zero_extend:
	r5 = b [p0] (z);
	R4 = B [P1++] (Z);
	r0 = b [p2--] (z);
	R3 = B [sp + 0x7fff] (Z);
	r7 = b [SP - 32767] (z);

	.text
	.global load_byte_sign_extend
load_byte_sign_extend:
	r5 = b [ P0 ] (X);
	r2 = B [ p1++ ] (x);
	R3 = b [ FP--] (x);
	r7 = B [ sp+0] (x);
	r6 = b [fp-0x7fff] (X);

	.global load_data
load_data1:	.byte 0
load_data2:	.word 16

