1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | .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); .data .global load_data load_data1: .byte 0 load_data2: .word 16 |