blob: 96ae1faad19443de5cb3b2d2883fda6c0c20d921 [file] [log] [blame]
.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