# Source file used to test li/addi on MIPS16
	
	.set	mips16
	
	.data
data_label:
	.word	0
data_label2:
	.word	0
	
	.extern big_external_data_label,1000
	.extern small_external_data_label,1
	.comm big_external_common,1000
	.comm small_external_common,1
	.lcomm big_local_common,1000
	.lcomm small_local_common,1
	
	.text
stuff:		
	li	$4,%hi(0)
	sll	$4,16
	addiu	$4,%lo(0)
	li	$4,%hi(data_label)
	sll	$4,16
	addiu	$4,%lo(data_label)
	li	$4,%hi(data_label2)
	sll	$4,16
	addiu	$4,%lo(data_label2)
	li	$4,%hi(big_external_data_label)
	sll	$4,16
	addiu	$4,%lo(big_external_data_label)
	li	$4,%hi(small_external_data_label)
	sll	$4,16
	addiu	$4,%lo(small_external_data_label)
	li	$4,%hi(big_external_common)
	sll	$4,16
	addiu	$4,%lo(big_external_common)
	li	$4,%hi(small_external_common)
	sll	$4,16
	addiu	$4,%lo(small_external_common)
	li	$4,%hi(big_local_common)
	sll	$4,16
	addiu	$4,%lo(big_local_common)
	li	$4,%hi(small_local_common)
	sll	$4,16
	addiu	$4,%lo(small_local_common)
	li	$4,%hi(1)
	sll	$4,16
	addiu	$4,%lo(1)
	li	$4,%hi(data_label+1)
	sll	$4,16
	addiu	$4,%lo(data_label+1)
	li	$4,%hi(data_label2+1)
	sll	$4,16
	addiu	$4,%lo(data_label2+1)
	li	$4,%hi(big_external_data_label+1)
	sll	$4,16
	addiu	$4,%lo(big_external_data_label+1)
	li	$4,%hi(small_external_data_label+1)
	sll	$4,16
	addiu	$4,%lo(small_external_data_label+1)
	li	$4,%hi(big_external_common+1)
	sll	$4,16
	addiu	$4,%lo(big_external_common+1)
	li	$4,%hi(small_external_common+1)
	sll	$4,16
	addiu	$4,%lo(small_external_common+1)
	li	$4,%hi(big_local_common+1)
	sll	$4,16
	addiu	$4,%lo(big_local_common+1)
	li	$4,%hi(small_local_common+1)
	sll	$4,16
	addiu	$4,%lo(small_local_common+1)
	li	$4,%hi(0x8000)
	sll	$4,16
	addiu	$4,%lo(0x8000)
	li	$4,%hi(data_label+0x8000)
	sll	$4,16
	addiu	$4,%lo(data_label+0x8000)
	li	$4,%hi(data_label2+0x8000)
	sll	$4,16
	addiu	$4,%lo(data_label2+0x8000)
	li	$4,%hi(big_external_data_label+0x8000)
	sll	$4,16
	addiu	$4,%lo(big_external_data_label+0x8000)
	li	$4,%hi(small_external_data_label+0x8000)
	sll	$4,16
	addiu	$4,%lo(small_external_data_label+0x8000)
	li	$4,%hi(big_external_common+0x8000)
	sll	$4,16
	addiu	$4,%lo(big_external_common+0x8000)
	li	$4,%hi(small_external_common+0x8000)
	sll	$4,16
	addiu	$4,%lo(small_external_common+0x8000)
	li	$4,%hi(big_local_common+0x8000)
	sll	$4,16
	addiu	$4,%lo(big_local_common+0x8000)
	li	$4,%hi(small_local_common+0x8000)
	sll	$4,16
	addiu	$4,%lo(small_local_common+0x8000)
	li	$4,%hi(-0x8000)
	sll	$4,16
	addiu	$4,%lo(-0x8000)
	li	$4,%hi(data_label-0x8000)
	sll	$4,16
	addiu	$4,%lo(data_label-0x8000)
	li	$4,%hi(data_label2-0x8000)
	sll	$4,16
	addiu	$4,%lo(data_label2-0x8000)
	li	$4,%hi(big_external_data_label-0x8000)
	sll	$4,16
	addiu	$4,%lo(big_external_data_label-0x8000)
	li	$4,%hi(small_external_data_label-0x8000)
	sll	$4,16
	addiu	$4,%lo(small_external_data_label-0x8000)
	li	$4,%hi(big_external_common-0x8000)
	sll	$4,16
	addiu	$4,%lo(big_external_common-0x8000)
	li	$4,%hi(small_external_common-0x8000)
	sll	$4,16
	addiu	$4,%lo(small_external_common-0x8000)
	li	$4,%hi(big_local_common-0x8000)
	sll	$4,16
	addiu	$4,%lo(big_local_common-0x8000)
	li	$4,%hi(small_local_common-0x8000)
	sll	$4,16
	addiu	$4,%lo(small_local_common-0x8000)
	li	$4,%hi(0x10000)
	sll	$4,16
	addiu	$4,%lo(0x10000)
	li	$4,%hi(data_label+0x10000)
	sll	$4,16
	addiu	$4,%lo(data_label+0x10000)
	li	$4,%hi(data_label2+0x10000)
	sll	$4,16
	addiu	$4,%lo(data_label2+0x10000)
	li	$4,%hi(big_external_data_label+0x10000)
	sll	$4,16
	addiu	$4,%lo(big_external_data_label+0x10000)
	li	$4,%hi(small_external_data_label+0x10000)
	sll	$4,16
	addiu	$4,%lo(small_external_data_label+0x10000)
	li	$4,%hi(big_external_common+0x10000)
	sll	$4,16
	addiu	$4,%lo(big_external_common+0x10000)
	li	$4,%hi(small_external_common+0x10000)
	sll	$4,16
	addiu	$4,%lo(small_external_common+0x10000)
	li	$4,%hi(big_local_common+0x10000)
	sll	$4,16
	addiu	$4,%lo(big_local_common+0x10000)
	li	$4,%hi(small_local_common+0x10000)
	sll	$4,16
	addiu	$4,%lo(small_local_common+0x10000)
	li	$4,%hi(0x1a5a5)
	sll	$4,16
	addiu	$4,%lo(0x1a5a5)
	li	$4,%hi(data_label+0x1a5a5)
	sll	$4,16
	addiu	$4,%lo(data_label+0x1a5a5)
	li	$4,%hi(data_label2+0x1a5a5)
	sll	$4,16
	addiu	$4,%lo(data_label2+0x1a5a5)
	li	$4,%hi(big_external_data_label+0x1a5a5)
	sll	$4,16
	addiu	$4,%lo(big_external_data_label+0x1a5a5)
	li	$4,%hi(small_external_data_label+0x1a5a5)
	sll	$4,16
	addiu	$4,%lo(small_external_data_label+0x1a5a5)
	li	$4,%hi(big_external_common+0x1a5a5)
	sll	$4,16
	addiu	$4,%lo(big_external_common+0x1a5a5)
	li	$4,%hi(small_external_common+0x1a5a5)
	sll	$4,16
	addiu	$4,%lo(small_external_common+0x1a5a5)
	li	$4,%hi(big_local_common+0x1a5a5)
	sll	$4,16
	addiu	$4,%lo(big_local_common+0x1a5a5)
	li	$4,%hi(small_local_common+0x1a5a5)
	sll	$4,16
	addiu	$4,%lo(small_local_common+0x1a5a5)
	li	$5,%hi(0)
	sll	$5,16
	lw	$4,%lo(0)($5)
	li	$5,%hi(data_label)
	sll	$5,16
	lw	$4,%lo(data_label)($5)
	li	$5,%hi(data_label2)
	sll	$5,16
	lw	$4,%lo(data_label2)($5)
	li	$5,%hi(big_external_data_label)
	sll	$5,16
	lw	$4,%lo(big_external_data_label)($5)
	li	$5,%hi(small_external_data_label)
	sll	$5,16
	lw	$4,%lo(small_external_data_label)($5)
	li	$5,%hi(big_external_common)
	sll	$5,16
	lw	$4,%lo(big_external_common)($5)
	li	$5,%hi(small_external_common)
	sll	$5,16
	lw	$4,%lo(small_external_common)($5)
	li	$5,%hi(big_local_common)
	sll	$5,16
	lw	$4,%lo(big_local_common)($5)
	li	$5,%hi(small_local_common)
	sll	$5,16
	lw	$4,%lo(small_local_common)($5)
	li	$5,%hi(1)
	sll	$5,16
	lw	$4,%lo(1)($5)
	li	$5,%hi(data_label+1)
	sll	$5,16
	lw	$4,%lo(data_label+1)($5)
	li	$5,%hi(data_label2+1)
	sll	$5,16
	lw	$4,%lo(data_label2+1)($5)
	li	$5,%hi(big_external_data_label+1)
	sll	$5,16
	lw	$4,%lo(big_external_data_label+1)($5)
	li	$5,%hi(small_external_data_label+1)
	sll	$5,16
	lw	$4,%lo(small_external_data_label+1)($5)
	li	$5,%hi(big_external_common+1)
	sll	$5,16
	lw	$4,%lo(big_external_common+1)($5)
	li	$5,%hi(small_external_common+1)
	sll	$5,16
	lw	$4,%lo(small_external_common+1)($5)
	li	$5,%hi(big_local_common+1)
	sll	$5,16
	lw	$4,%lo(big_local_common+1)($5)
	li	$5,%hi(small_local_common+1)
	sll	$5,16
	lw	$4,%lo(small_local_common+1)($5)
	li	$5,%hi(0x8000)
	sll	$5,16
	lw	$4,%lo(0x8000)($5)
	li	$5,%hi(data_label+0x8000)
	sll	$5,16
	lw	$4,%lo(data_label+0x8000)($5)
	li	$5,%hi(data_label2+0x8000)
	sll	$5,16
	lw	$4,%lo(data_label2+0x8000)($5)
	li	$5,%hi(big_external_data_label+0x8000)
	sll	$5,16
	lw	$4,%lo(big_external_data_label+0x8000)($5)
	li	$5,%hi(small_external_data_label+0x8000)
	sll	$5,16
	lw	$4,%lo(small_external_data_label+0x8000)($5)
	li	$5,%hi(big_external_common+0x8000)
	sll	$5,16
	lw	$4,%lo(big_external_common+0x8000)($5)
	li	$5,%hi(small_external_common+0x8000)
	sll	$5,16
	lw	$4,%lo(small_external_common+0x8000)($5)
	li	$5,%hi(big_local_common+0x8000)
	sll	$5,16
	lw	$4,%lo(big_local_common+0x8000)($5)
	li	$5,%hi(small_local_common+0x8000)
	sll	$5,16
	lw	$4,%lo(small_local_common+0x8000)($5)
	li	$5,%hi(-0x8000)
	sll	$5,16
	lw	$4,%lo(-0x8000)($5)
	li	$5,%hi(data_label-0x8000)
	sll	$5,16
	lw	$4,%lo(data_label-0x8000)($5)
	li	$5,%hi(data_label2-0x8000)
	sll	$5,16
	lw	$4,%lo(data_label2-0x8000)($5)
	li	$5,%hi(big_external_data_label-0x8000)
	sll	$5,16
	lw	$4,%lo(big_external_data_label-0x8000)($5)
	li	$5,%hi(small_external_data_label-0x8000)
	sll	$5,16
	lw	$4,%lo(small_external_data_label-0x8000)($5)
	li	$5,%hi(big_external_common-0x8000)
	sll	$5,16
	lw	$4,%lo(big_external_common-0x8000)($5)
	li	$5,%hi(small_external_common-0x8000)
	sll	$5,16
	lw	$4,%lo(small_external_common-0x8000)($5)
	li	$5,%hi(big_local_common-0x8000)
	sll	$5,16
	lw	$4,%lo(big_local_common-0x8000)($5)
	li	$5,%hi(small_local_common-0x8000)
	sll	$5,16
	lw	$4,%lo(small_local_common-0x8000)($5)
	li	$5,%hi(0x10000)
	sll	$5,16
	lw	$4,%lo(0x10000)($5)
	li	$5,%hi(data_label+0x10000)
	sll	$5,16
	lw	$4,%lo(data_label+0x10000)($5)
	li	$5,%hi(data_label2+0x10000)
	sll	$5,16
	lw	$4,%lo(data_label2+0x10000)($5)
	li	$5,%hi(big_external_data_label+0x10000)
	sll	$5,16
	lw	$4,%lo(big_external_data_label+0x10000)($5)
	li	$5,%hi(small_external_data_label+0x10000)
	sll	$5,16
	lw	$4,%lo(small_external_data_label+0x10000)($5)
	li	$5,%hi(big_external_common+0x10000)
	sll	$5,16
	lw	$4,%lo(big_external_common+0x10000)($5)
	li	$5,%hi(small_external_common+0x10000)
	sll	$5,16
	lw	$4,%lo(small_external_common+0x10000)($5)
	li	$5,%hi(big_local_common+0x10000)
	sll	$5,16
	lw	$4,%lo(big_local_common+0x10000)($5)
	li	$5,%hi(small_local_common+0x10000)
	sll	$5,16
	lw	$4,%lo(small_local_common+0x10000)($5)
	li	$5,%hi(0x1a5a5)
	sll	$5,16
	lw	$4,%lo(0x1a5a5)($5)
	li	$5,%hi(data_label+0x1a5a5)
	sll	$5,16
	lw	$4,%lo(data_label+0x1a5a5)($5)
	li	$5,%hi(data_label2+0x1a5a5)
	sll	$5,16
	lw	$4,%lo(data_label2+0x1a5a5)($5)
	li	$5,%hi(big_external_data_label+0x1a5a5)
	sll	$5,16
	lw	$4,%lo(big_external_data_label+0x1a5a5)($5)
	li	$5,%hi(small_external_data_label+0x1a5a5)
	sll	$5,16
	lw	$4,%lo(small_external_data_label+0x1a5a5)($5)
	li	$5,%hi(big_external_common+0x1a5a5)
	sll	$5,16
	lw	$4,%lo(big_external_common+0x1a5a5)($5)
	li	$5,%hi(small_external_common+0x1a5a5)
	sll	$5,16
	lw	$4,%lo(small_external_common+0x1a5a5)($5)
	li	$5,%hi(big_local_common+0x1a5a5)
	sll	$5,16
	lw	$4,%lo(big_local_common+0x1a5a5)($5)
	li	$5,%hi(small_local_common+0x1a5a5)
	sll	$5,16
	lw	$4,%lo(small_local_common+0x1a5a5)($5)

# align section end to 16-byte boundary for easier testing on multiple targets
	.p2align 4
