1 2 .sdata 3shared: .word 11 4 5 .data 6unshared: 7 .word 1 8 .word 2 9 .word 3 10 .word 4 11 12 .text 13 .ent func 14func: 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 a0,got(.sdata)(gp) 55 # 0094 nop 56 # 0098 addiu a0,a0,lo(shared) 57 # 009c ld a0,(a0) 58 ld $4, unshared # 00a0 lw a0,got(.data)(gp) 59 # 00a4 nop 60 # 00a8 addiu a0,a0,lo(unshared) 61 # 00ac ld a0,(a0) 62 ld $4, end # 00b0 lw a0,got(.text)(gp) 63 # 00b4 nop 64 # 00b8 addiu a0,a0,lo(end) 65 # 00bc ld a0,(a0) 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 addiu at,at,lo(shared) 77 # 00ec sd a0,(at) 78 sd $4, unshared # 00f0 lw at,got(.data)(gp) 79 # 00f4 nop 80 # 00f8 addiu at,at,lo(unshared) 81 # 00fc sd a0,(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 li a0,0xffc0 109 # 016c dsll32 a0,a0,14 110 li.d $4, 1.9 # 0170 lw at,got(.rodata)(gp) 111 # 0174 ld a0,lo(F1.9)(at) 112 li.d $f0, 1.0 # 0178 li at,0xffc0 113 # 017c dsll32 at,at,14 114 # 0180 dmtc1 at,$f0 115 li.d $f0, 1.9 # 0184 lw at,got(.rodata)(gp) 116 # 0188 ldc1 $f0,lo(L1.9)(at) 117 seq $4, $5, -100 # 018c daddiu a0,a1,100 118 # 0190 sltiu a0,a0,1 119 sne $4, $5, -100 # 0194 daddiu a0,a1,100 120 # 0198 sltu a0,zero,a0 121 move $4, $5 # 019c move a0,a1 122 123 dla $4, shared # 01a0 lw a0,got(.sdata)(gp) 124 # 01a4 nop 125 # 01a8 addiu a0,a0,lo(shared) 126 dla $4, unshared # 01ac lw a0,got(.data)(gp) 127 # 01b0 nop 128 # 01b4 addiu a0,a0,lo(unshared) 129 uld $4, unshared # 01b8 lw at,got(.data)(gp) 130 # 01bc nop 131 # 01c0 addiu at,at,lo(unshared) 132 # 01c4 ldl a0,0(at) 133 # 01c8 ldr a0,7(at) 134 usd $4, unshared # 01cc lw at,got(.data)(gp) 135 # 01d0 nop 136 # 01d4 addiu at,at,lo(unshared) 137 # 01d8 sdl a0,0(at) 138 # 01dc sdr a0,7(at) 139 140 bgt $4, 0x7fffffff, end # 01e0 li at,0x8000 141 # 01e4 dsll at,at,0x10 142 # 01e8 slt at,a0,at 143 # 01ec beqz at,end 144 # 01f0 nop 145 bgtu $4, 0xffffffff, end # 01f4 li at,0x8000 146 # 01f8 dsll at,at,17 147 # 01fc sltu at,a0,at 148 # 0200 beqz at,end 149 # 0204 nop 150 ble $4, 0x7fffffff, end # 0208 li at,0x8000 151 # 020c dsll at,at,0x10 152 # 0210 slt at,a0,at 153 # 0214 bnez at,end 154 # 0218 nop 155 bleu $4, 0xffffffff, end # 021c li at,0x8000 156 # 0220 dsll at,at,17 157 # 0224 sltu at,a0,at 158 # 0228 bnez at,end 159 # 022c nop 160 161 add.d $f1, $f2, $f3 # 0230 add.d $f1,$f2,$f3 162 163 .end func 164end: 165 166# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... 167 .space 8 168