1*585a86b1SNiccolò Izzo/* 2*585a86b1SNiccolò Izzo * Purpose: demonstrate handling of .new uses appearing before the associated 3*585a86b1SNiccolò Izzo * definition. 4*585a86b1SNiccolò Izzo * Here we perform a jump that skips the code resetting R2 from 0xDEADBEEF to 0, 5*585a86b1SNiccolò Izzo * only if P0.new is true, but P0 is assigned to 1 (R4) in the next instruction 6*585a86b1SNiccolò Izzo * in the packet. 7*585a86b1SNiccolò Izzo */ 8*585a86b1SNiccolò Izzo 9*585a86b1SNiccolò Izzo .text 10*585a86b1SNiccolò Izzo .globl _start 11*585a86b1SNiccolò Izzo 12*585a86b1SNiccolò Izzo_start: 13*585a86b1SNiccolò Izzo { 14*585a86b1SNiccolò Izzo r2 = #-559038737 15*585a86b1SNiccolò Izzo } 16*585a86b1SNiccolò Izzo { 17*585a86b1SNiccolò Izzo r4 = #1 18*585a86b1SNiccolò Izzo } 19*585a86b1SNiccolò Izzo { 20*585a86b1SNiccolò Izzo if (p0.new) jump:nt skip 21*585a86b1SNiccolò Izzo p0 = r4; 22*585a86b1SNiccolò Izzo } 23*585a86b1SNiccolò Izzo 24*585a86b1SNiccolò Izzofallthrough: 25*585a86b1SNiccolò Izzo { 26*585a86b1SNiccolò Izzo r2 = #0 27*585a86b1SNiccolò Izzo } 28*585a86b1SNiccolò Izzo 29*585a86b1SNiccolò Izzoskip: 30*585a86b1SNiccolò Izzo { 31*585a86b1SNiccolò Izzo p0 = cmp.eq(r2, #-559038737); if (p0.new) jump:t pass 32*585a86b1SNiccolò Izzo jump fail 33*585a86b1SNiccolò Izzo } 34