Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

# RUN: llvm-mc -arch=hexagon -filetype=asm %s 2>%t; FileCheck %s <%t
#

# Check that proper packets are not wrongly flagged as invalid.

1-3-4-f:
	{
	       r3 = memub(r2++#1)
	       if (cmp.eq(r3.new,#0)) jump:nt .
	       jumpr lr
	       r4 = #4
	}
# CHECK-NOT: rror: invalid instruction packet

1-3-f-f:
        {
                r3 = memub(r2++#1)
                if (cmp.eq(r3.new,#0)) jump:nt .
                r5 = #5
                r4 = #4
        }
# CHECK-NOT: rror: invalid instruction packet

# Special case of a fat packet that will slim when a compound is formed.
3-3-8-c:
   { LOOP0(3-3-8-c, R7)
     P0 = CMP.GT(R7, #0)
     IF (!P0.NEW) JUMP:NT .
     R21:20 = MEMD(R0+#16)
     R23:22 = MEMD(R0+#24)
   }
# CHECK-NOT: rror: invalid instruction packet

1-f-f-f:
        {
                r3 = #3
                if (cmp.eq(r3.new,#0)) jump:nt .
                r5 = #5
                r4 = #4
        }
# CHECK-NOT: rror: invalid instruction packet

4:
        jumpr lr
# CHECK-NOT: rror: invalid instruction packet

f-f-f-f:
        {
                r3 = #3
                r2 = #2
                r5 = #5
                r4 = #4
        }
# CHECK-NOT: rror: invalid instruction packet