Home | History | Annotate | Download | only in mips
      1 
      2 	.sdata
      3 shared:	.word	11
      4 
      5 	.data
      6 unshared:
      7 	.word	1
      8 	.word	2
      9 	.word	3
     10 	.word	4
     11 
     12 	.text
     13 	.ent	func
     14 func:
     15 	.frame $sp,0,$31
     16 	.set noreorder
     17 	.cpload $25		# 0000 lui	gp,hi(_gp_disp)
     18 				# 0004 addiu	gp,gp,lo(_gp_disp)
     19 				# 0008 addu	gp,gp,t9
     20 	.set reorder
     21 	.cprestore 8		# 000c sw	gp,8(sp)
     22 	.cpadd $4		# 0010 addu	a0,a0,gp
     23 	li	$4, 0x12345678	# 0014 lui	a0,0x1234
     24 				# 0018 ori	a0,a0,0x5678
     25 	la	$4, shared	# 001c lw	a0,got(.sdata)(gp)
     26 				# 0020 nop
     27 				# 0024 addiu	a0,a0,lo(shared)
     28 	la	$4, unshared	# 0028 lw	a0,got(.data)(gp)
     29 				# 002c nop
     30 				# 0030 addiu	a0,a0,lo(unshared)
     31 	la	$4, end		# 0034 lw	a0,got(.text)(gp)
     32 				# 0038 nop
     33 				# 003c addiu	a0,a0,lo(end)
     34 	j	end		# 0040 b	end
     35 				# 0044 nop
     36 	jal	end		# 0048 lw	t9,got(.text)(gp)
     37 				# 004c nop
     38 				# 0050 addiu	t9,t9,lo(end)
     39 				# 0054 jalr	t9
     40 				# 0058 nop
     41 				# 005c lw	gp,8(sp)
     42 	lw	$4, shared	# 0060 lw	a0,got(.sdata)(gp)
     43 				# 0064 nop
     44 				# 0068 addiu	a0,a0,lo(shared)
     45 				# 006c lw	a0,(a0)
     46 	lw	$4, unshared	# 0070 lw	a0,got(.data)(gp)
     47 				# 0074 nop
     48 				# 0078 addiu	a0,a0,lo(unshared)
     49 				# 007c lw	a0,(a0)
     50 	lw	$4, end		# 0080 lw	a0,got(.text)(gp)
     51 				# 0084 nop
     52 				# 0088 addiu	a0,a0,lo(end)
     53 				# 008c lw	a0,(a0)
     54 	ld	$4, shared	# 0090 lw	at,got(.sdata)(gp)
     55 				# 0094 nop
     56 				# 0098 lw	a0,lo(shared)(at)
     57 				# 009c lw	a1,lo(shared)+4(at)
     58 	ld	$4, unshared	# 00a0 lw	at,got(.data)(gp)
     59 				# 00a4 nop
     60 				# 00a8 lw	a0,lo(unshared)(at)
     61 				# 00ac lw	a1,lo(unshared)+4(at)
     62 	ld	$4, end		# 00b0 lw	at,got(.text)(gp)
     63 				# 00b4 nop
     64 				# 00b8 lw	a0,lo(end)(at)
     65 				# 00bc lw	a1,lo(end)+4(at)
     66 	sw	$4, shared	# 00c0 lw	at,got(.sdata)(gp)
     67 				# 00c4 nop
     68 				# 00c8 addiu	at,at,lo(shared)
     69 				# 00cc sw	a0,0(at)
     70 	sw	$4, unshared	# 00d0 lw	at,got(.data)(gp)
     71 				# 00d4 nop
     72 				# 00d8 addiu	at,at,lo(unshared)
     73 				# 00dc sw	a0,0(at)
     74 	sd	$4, shared	# 00e0 lw	at,got(.sdata)(gp)
     75 				# 00e4 nop
     76 				# 00e8 sw	a0,lo(shared)(at)
     77 				# 00ec sw	a1,lo(shared)+4(at)
     78 	sd	$4, unshared	# 00f0 lw	at,got(.data)(gp)
     79 				# 00f4 nop
     80 				# 00f8 sw	a0,lo(unshared)(at)
     81 				# 00fc sw	a1,lo(unshared)+4(at)
     82 	ulh	$4, unshared	# 0100 lw	at,got(.data)(gp)
     83 				# 0104 nop
     84 				# 0108 addiu	at,at,lo(unshared)
     85 				# 010c lb	a0,0(at)
     86 				# 0110 lbu	at,1(at)
     87 				# 0114 sll	a0,a0,8
     88 				# 0118 or	a0,a0,at
     89 	ush	$4, unshared	# 011c lw	at,got(.data)(gp)
     90 				# 0120 nop
     91 				# 0124 addiu	at,at,lo(unshared)
     92 				# 0128 sb	a0,0(at)
     93 				# 012c srl	a0,a0,8
     94 				# 0130 sb	a0,1(at)
     95 				# 0134 lbu	at,0(at)
     96 				# 0138 sll	a0,a0,8
     97 				# 013c or	a0,a0,at
     98 	ulw	$4, unshared	# 0140 lw	at,got(.data)(gp)
     99 				# 0144 nop
    100 				# 0148 addiu	at,at,lo(unshared)
    101 				# 014c lwl	a0,0(at)
    102 				# 0150 lwr	a0,3(at)
    103 	usw	$4, unshared	# 0154 lw	at,got(.data)(gp)
    104 				# 0158 nop
    105 				# 015c addiu	at,at,lo(unshared)
    106 				# 0160 swl	a0,0(at)
    107 				# 0164 swr	a0,3(at)
    108 	li.d	$4, 1.0		# 0168 lui	a0,0x3ff0
    109 				# 016c move	a1,zero
    110 	li.d	$4, 1.9		# 0170 lw	at,got(.rodata)(gp)
    111 				# 0174 lw	a0,lo(F1.9)(at)
    112 				# 0178 lw	a1,lo(F1.9)+4(at)
    113 	li.d	$f0, 1.0	# 017c lui	at,0x3ff0
    114 				# 0180 mtc1	at,$f1
    115 				# 0184 mtc1	zero,$f0
    116 	li.d	$f0, 1.9	# 0188 lw	at,got(.rodata)(gp)
    117 				# 018c ldc1	$f0,lo(L1.9)(at)
    118 	seq	$4, $5, -100	# 0190 addiu	a0,a1,100
    119 				# 0194 sltiu	a0,a0,1
    120 	sne	$4, $5, -100	# 0198 addiu	a0,a1,100
    121 				# 019c sltu	a0,zero,a0
    122 	move	$4, $5		# 01a0 move	a0,a1
    123 
    124 # Not available in 32-bit mode
    125 #	dla	$4, shared
    126 #	dla	$4, unshared
    127 #	uld	$4, unshared
    128 #	usd	$4, unshared
    129 
    130 # Should produce warnings given -mgp32
    131 #	bgt	$4, 0x7fffffff, end
    132 #	bgtu	$4, 0xffffffff, end
    133 #	ble	$4, 0x7fffffff, end
    134 #	bleu	$4, 0xffffffff, end
    135 
    136 # Should produce warnings given -mfp32
    137 #	add.d	$f1, $f2, $f3
    138 
    139 	.end	func
    140 
    141 end:
    142 
    143 # Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
    144 	.space	8
    145