| .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 |
| |