@Test
	public void testDisassemblerDelaySlotFirstInProgram() throws Exception {

		programBuilder.addBytesBranch(6, 12);

		programBuilder.addBytesCallWithDelaySlot(10, 20);
		programBuilder.addBytesReturn(14);

		programBuilder.addBytesReturn(20);

		AddressSetView disAddrs = disassembler.disassemble(addr(6), null);
		assertEquals(addrset(range(6, 7), range(12, 15)), disAddrs);

		disAddrs = disassembler.disassemble(addr(10), null);
		assertEquals(addrset(range(10, 13), range(20, 21)), disAddrs);

		verifyInstructionPresence();

		verifyNoBookmarks();

		Instruction instr = listing.getInstructionAt(addr(10));
		assertEquals(1, instr.getDelaySlotDepth());
		instr = listing.getInstructionAt(addr(12));
		assertTrue(instr.isInDelaySlot());

	}
+--  6: bral 12  (start1)
|
|                   10: callds 20 <-+ (start2)
+-> 12: or          12: _or         |
    14: ret                         |
                                    |
                    20: ret  <------+
    
Test delay slot disassembled first in program
Ghidra/Test/IntegrationTest/src/test.slow/java/ghidra/program/disassemble/DisassemblerTest.java