1 .extern f001 2 .extern F002 3 .text 4 .global load_immediate 5load_immediate: 6 /* Half-Word Load. */ 7 M3.l = 0xffff; 8 b2.l = 0xfffe; 9 Sp.l = 0; 10 FP.L = 0xfedc; 11 r0.h = 2; 12 p5.H = 32; 13 I2.h = 0xf204; 14 b1.H = 64; 15 l0.h = 0xffff; 16 R5.h = load_data1; 17 B2.H = F002; 18 19 /* Zero Extended. */ 20 fp = 0xff20 (Z); 21 l2 = 32 (z); 22 R5 = foo2 (Z); 23 A0 = 0; 24 A1 = 0; 25 a1 = a0 = 0; 26 27 /* Sign Extended. */ 28 r2 = -64 (x); 29 R0 = 0x7f (X); 30 P2 = 0 (x); 31 sp = -32 (x); 32 fp = 44 (X); 33 l3 = 0x800 (x); 34 m2 = 0x7fff (X); 35 R1 = 16 (X); 36 L0 = foo1; 37 r7 = load_data2; 38 39 /* Test constant folding. */ 40 r0.l = (a + 5) - 2; 41 r1.l = (a + 5) + 10; 42 43 .text 44 .global load_pointer_register 45load_pointer_register: 46 Sp = [ fp]; 47 FP = [ p0++ ]; 48 p1 = [sp--]; 49 SP = [P2 +56]; 50 p3 = [fp + 0]; 51 P4 = [FP + 0x0001FFFC]; 52 sp = [fp-0x0001fffc]; 53 sp = [p4-0]; 54 P5 = [FP-128]; 55 56 57 .text 58 .global load_data_register 59load_data_register: 60 R7 = [p0]; 61 r6 = [p5++]; 62 r5 = [P4 --]; 63 R4 = [Fp + 40]; 64 r3 = [sp+131068]; 65 r2 = [sp-0]; 66 r1 = [fp - 0x0001fffc]; 67 R0 = [sp ++ p0]; 68 R5 = [Fp-128]; 69 r2 = [i0]; 70 r1 = [I1++]; 71 R3 = [I2--]; 72 R4 = [i3 ++ M0]; 73 74 .text 75 .global load_half_word_zero_extend 76load_half_word_zero_extend: 77 r7 = w [sp] (z); 78 R6 = W [FP ++] (Z); 79 R5 = W [P0 --] (z); 80 R4 = w [p1 + 30] (Z); 81 r3 = w [sp + 0xfffc] (z); 82 r2 = w [fp - 0xfffc] (Z); 83 R0 = W [ P0 ++ P5] (z); 84 85 .text 86 .global load_half_word_sign_extend 87load_half_word_sign_extend: 88 r7 = w [sp] (x); 89 R6 = W [FP ++] (X); 90 R5 = W [P0 --] (X); 91 r5 = w [p1 + 24] (x); 92 R3 = w [sp + 0xfffc] (X); 93 r7 = w [fp - 0xfffc] (x); 94 R1 = W [ P1 ++ P2] (X); 95 96 .text 97 .global load_high_data_register_half 98load_high_data_register_half: 99 r0.h = w [i0]; 100 R1.H = W [I1 ++]; 101 R2.h = w [I2 --]; 102 r3.H = W [sp]; 103 R4.h = W [Fp ++ p0]; 104 105 .text 106 .global load_low_data_register_half 107load_low_data_register_half: 108 r7.l = w [i3]; 109 R6.L = W [I2++]; 110 R5.l = w [i1 --]; 111 r4.L = w [P0]; 112 r3.l = W [p2 ++ p3]; 113 114 .text 115 .global load_byte_zero_extend 116load_byte_zero_extend: 117 r5 = b [p0] (z); 118 R4 = B [P1++] (Z); 119 r0 = b [p2--] (z); 120 R3 = B [sp + 0x7fff] (Z); 121 r7 = b [SP - 32767] (z); 122 123 .text 124 .global load_byte_sign_extend 125load_byte_sign_extend: 126 r5 = b [ P0 ] (X); 127 r2 = B [ p1++ ] (x); 128 R3 = b [ FP--] (x); 129 r7 = B [ sp+0] (x); 130 r6 = b [fp-0x7fff] (X); 131 132 .data 133 .global load_data 134load_data1: .byte 0 135load_data2: .word 16 136 137