--- after 2023-04-11 14:13:18.357418573 +0530 +++ before 2023-04-11 14:12:59.205090330 +0530 @@ -749,12 +749,12 @@ static inline void queued_spin_unlock(st 6b0: 00 00 00 60 nop pseries_partition_tb = kmalloc(sizeof(struct patb_entry) << ptb_order, 6b4: 00 00 22 3d addis r9,r2,0 - if (unlikely(!pseries_partition_tb)) { + if (!pseries_partition_tb) { 6b8: 00 00 23 2c cmpdi r3,0 pseries_partition_tb = kmalloc(sizeof(struct patb_entry) << ptb_order, 6bc: 00 00 e9 eb ld r31,0(r9) 6c0: 00 00 7f f8 std r3,0(r31) - if (unlikely(!pseries_partition_tb)) { + if (!pseries_partition_tb) { 6c4: 70 00 82 41 beq 734 ptcr = __pa(pseries_partition_tb) | (ptb_order - 12); 6c8: 00 01 64 78 clrldi r4,r3,4 @@ -1746,7 +1746,7 @@ static inline struct llist_node *llist_d 11d4: 78 6b a9 7d mr r9,r13 if (unlikely(ms->mmiowb_pending)) { 11d8: 00 00 8a 2f cmpwi cr7,r10,0 - 11dc: d4 01 9e 40 bne cr7,13b0 + 11dc: 04 02 9e 40 bne cr7,13e0 ms->nesting_count--; 11e0: 80 0c 49 a1 lhz r10,3200(r9) 11e4: ff ff 4a 39 addi r10,r10,-1 @@ -1794,7 +1794,7 @@ static inline struct llist_node *llist_d 1270: 68 00 69 e8 ld r3,104(r9) 1274: 01 00 00 48 bl 1274 1278: 00 00 00 60 nop - if (unlikely(!gp)) + if (!gp) 127c: 00 00 23 2e cmpdi cr4,r3,0 1280: 78 1b 7c 7c mr r28,r3 1284: b4 ff 92 41 beq cr4,1238 @@ -1898,26 +1898,26 @@ static inline struct llist_node *llist_d 13a4: 58 fe ff 4b b 11fc 13a8: 00 00 00 60 nop 13ac: 00 00 42 60 ori r2,r2,0 - ms->mmiowb_pending = 0; - 13b0: 00 00 40 39 li r10,0 - 13b4: 82 0c 4d b1 sth r10,3202(r13) - mmiowb(); - 13b8: ac 04 00 7c hwsync - 13bc: 24 fe ff 4b b 11e0 pgd = kmem_cache_alloc(PGT_CACHE(PGD_INDEX_SIZE), - 13c0: 00 00 22 3d addis r9,r2,0 - 13c4: 00 00 42 3d addis r10,r2,0 - 13c8: 40 00 80 3c lis r4,64 - 13cc: 00 00 29 e9 ld r9,0(r9) - 13d0: 00 00 4a e9 ld r10,0(r10) - 13d4: c0 0c 84 60 ori r4,r4,3264 - 13d8: 00 00 29 e9 ld r9,0(r9) - 13dc: 24 1f 29 79 rldicr r9,r9,3,60 - 13e0: 2a 48 6a 7c ldx r3,r10,r9 - 13e4: 01 00 00 48 bl 13e4 - 13e8: 00 00 00 60 nop + 13b0: 00 00 22 3d addis r9,r2,0 + 13b4: 00 00 42 3d addis r10,r2,0 + 13b8: 40 00 80 3c lis r4,64 + 13bc: 00 00 29 e9 ld r9,0(r9) + 13c0: 00 00 4a e9 ld r10,0(r10) + 13c4: c0 0c 84 60 ori r4,r4,3264 + 13c8: 00 00 29 e9 ld r9,0(r9) + 13cc: 24 1f 29 79 rldicr r9,r9,3,60 + 13d0: 2a 48 6a 7c ldx r3,r10,r9 + 13d4: 01 00 00 48 bl 13d4 + 13d8: 00 00 00 60 nop if (unlikely(!pgd)) - 13ec: dc fe ff 4b b 12c8 + 13dc: ec fe ff 4b b 12c8 + ms->mmiowb_pending = 0; + 13e0: 00 00 40 39 li r10,0 + 13e4: 82 0c 4d b1 sth r10,3202(r13) + mmiowb(); + 13e8: ac 04 00 7c hwsync + 13ec: f4 fd ff 4b b 11e0 pgd_free(kvm->mm, gp->shadow_pgtable); 13f0: 10 00 7c e8 ld r3,16(r28) 13f4: 00 00 00 60 nop @@ -3130,9 +3130,9 @@ static inline int hv_guest_state_size(un 2100: b8 ff e1 fa std r23,-72(r1) 2104: 78 1b 7f 7c mr r31,r3 2108: c0 ff 01 fb std r24,-64(r1) - 210c: d0 ff 41 fb std r26,-48(r1) + 210c: c8 ff 21 fb std r25,-56(r1) 2110: 08 00 61 91 stw r11,8(r1) - 2114: d8 ff 61 fb std r27,-40(r1) + 2114: d0 ff 41 fb std r26,-48(r1) 2118: e8 ff a1 fb std r29,-24(r1) 211c: f0 ff c1 fb std r30,-16(r1) 2120: 91 ff 21 f8 stdu r1,-112(r1) @@ -3141,33 +3141,33 @@ static inline int hv_guest_state_size(un int l1_lpid = kvmppc_get_gpr(vcpu, 4); 2128: 20 0e c3 eb ld r30,3616(r3) 212c: 28 0e e3 ea ld r23,3624(r3) - 2130: 30 0e 43 eb ld r26,3632(r3) + 2130: 30 0e 23 eb ld r25,3632(r3) 2134: 40 0e 03 eb ld r24,3648(r3) - 2138: 48 0e 63 eb ld r27,3656(r3) + 2138: 48 0e 43 eb ld r26,3656(r3) if (gp_to && gp_from) /* One must be NULL to determine the direction */ 213c: 00 00 3d 2e cmpdi cr4,r29,0 2140: 0c 00 92 41 beq cr4,214c 2144: 00 00 38 2c cmpdi r24,0 - 2148: 18 02 82 40 bne 2360 + 2148: f8 01 82 40 bne 2340 if (eaddr & (0xFFFUL << 52)) 214c: ff ff 20 39 li r9,-1 2150: 00 03 29 79 clrldi r9,r9,12 - 2154: 40 48 3a 7c cmpld r26,r9 - 2158: 08 02 81 41 bgt 2360 + 2154: 40 48 39 7c cmpld r25,r9 + 2158: e8 01 81 41 bgt 2340 kmalloc_caches[kmalloc_type(flags)][index], flags, size); } return __kmalloc(size, flags); 215c: a6 02 08 7c mflr r0 2160: c0 2d 80 38 li r4,11712 - 2164: 78 db 63 7f mr r3,r27 - 2168: 50 00 81 fb std r28,80(r1) + 2164: 78 d3 43 7f mr r3,r26 + 2168: 48 00 61 fb std r27,72(r1) 216c: 80 00 01 f8 std r0,128(r1) 2170: 01 00 00 48 bl 2170 2174: 00 00 00 60 nop - if (unlikely(!buf)) - 2178: 79 1b 7c 7c mr. r28,r3 - 217c: c4 01 82 41 beq 2340 + if (!buf) + 2178: 79 1b 7b 7c mr. r27,r3 + 217c: e8 01 82 41 beq 2364 gp = kvmhv_get_nested(vcpu->kvm, l1_lpid, false); 2180: 00 00 7f e8 ld r3,0(r31) 2184: b4 07 c4 7f extsw r4,r30 @@ -3176,10 +3176,10 @@ static inline int hv_guest_state_size(un if (!gp) { 2190: 79 1b 7e 7c mr. r30,r3 2194: 6c 01 82 41 beq 2300 - 2198: 38 00 21 fb std r25,56(r1) + 2198: 50 00 81 fb std r28,80(r1) mutex_lock(&gp->tlb_lock); - 219c: 30 00 3e 3b addi r25,r30,48 - 21a0: 78 cb 23 7f mr r3,r25 + 219c: 30 00 9e 3b addi r28,r30,48 + 21a0: 78 e3 83 7f mr r3,r28 21a4: 01 00 00 48 bl 21a4 21a8: 00 00 00 60 nop if (is_load) { @@ -3192,8 +3192,8 @@ static inline int hv_guest_state_size(un 21bc: 00 00 00 60 nop rc = kvm_vcpu_read_guest(vcpu, gp_from, buf, n); 21c0: 78 c3 04 7f mr r4,r24 - 21c4: 78 db 66 7f mr r6,r27 - 21c8: 78 e3 85 7f mr r5,r28 + 21c4: 78 d3 46 7f mr r6,r26 + 21c8: 78 db 65 7f mr r5,r27 21cc: 78 1b 69 7c mr r9,r3 21d0: 78 fb e3 7f mr r3,r31 21d4: 2c 00 3f 91 stw r9,44(r31) @@ -3206,7 +3206,7 @@ static inline int hv_guest_state_size(un WARN_ON_ONCE(idx & ~0x1); 21ec: 01 00 04 28 cmplwi r4,1 21f0: 30 4d 69 38 addi r3,r9,19760 - 21f4: 7c 01 81 41 bgt 2370 + 21f4: 5c 01 81 41 bgt 2350 __srcu_read_unlock(ssp, idx); 21f8: b4 07 84 7c extsw r4,r4 21fc: 01 00 00 48 bl 21fc @@ -3217,20 +3217,20 @@ static inline int hv_guest_state_size(un rc = H_NOT_FOUND; 220c: f9 ff e0 3b li r31,-7 mutex_unlock(&gp->tlb_lock); - 2210: 78 cb 23 7f mr r3,r25 + 2210: 78 e3 83 7f mr r3,r28 2214: 01 00 00 48 bl 2214 2218: 00 00 00 60 nop kvmhv_put_nested(gp); 221c: 78 f3 c3 7f mr r3,r30 2220: 01 00 00 48 bl 2220 - 2224: 38 00 21 eb ld r25,56(r1) + 2224: 50 00 81 eb ld r28,80(r1) kfree(buf); - 2228: 78 e3 83 7f mr r3,r28 + 2228: 78 db 63 7f mr r3,r27 222c: 01 00 00 48 bl 222c 2230: 00 00 00 60 nop return rc; 2234: 80 00 01 e8 ld r0,128(r1) - 2238: 50 00 81 eb ld r28,80(r1) + 2238: 48 00 61 eb ld r27,72(r1) 223c: a6 03 08 7c mtlr r0 } 2240: 70 00 21 38 addi r1,r1,112 @@ -3238,8 +3238,8 @@ static inline int hv_guest_state_size(un 2248: 08 00 61 81 lwz r11,8(r1) 224c: b8 ff e1 ea ld r23,-72(r1) 2250: c0 ff 01 eb ld r24,-64(r1) - 2254: d0 ff 41 eb ld r26,-48(r1) - 2258: d8 ff 61 eb ld r27,-40(r1) + 2254: c8 ff 21 eb ld r25,-56(r1) + 2258: d0 ff 41 eb ld r26,-48(r1) 225c: e8 ff a1 eb ld r29,-24(r1) 2260: f0 ff c1 eb ld r30,-16(r1) 2264: f8 ff e1 eb ld r31,-8(r1) @@ -3247,11 +3247,11 @@ static inline int hv_guest_state_size(un 226c: 20 00 80 4e blr rc = __kvmhv_copy_tofrom_guest_radix(gp->shadow_lpid, pid, 2270: 0e 00 7e e8 lwa r3,12(r30) - 2274: 78 d3 45 7f mr r5,r26 + 2274: 78 cb 25 7f mr r5,r25 2278: b4 07 e4 7e extsw r4,r23 - 227c: 78 db 68 7f mr r8,r27 + 227c: 78 d3 48 7f mr r8,r26 2280: 00 00 e0 38 li r7,0 - 2284: 78 e3 86 7f mr r6,r28 + 2284: 78 db 66 7f mr r6,r27 2288: 01 00 00 48 bl 2288 228c: 00 00 00 60 nop if (rc) @@ -3265,8 +3265,8 @@ static inline int hv_guest_state_size(un 22a4: 00 00 00 60 nop rc = kvm_vcpu_write_guest(vcpu, gp_to, buf, n); 22a8: 78 eb a4 7f mr r4,r29 - 22ac: 78 db 66 7f mr r6,r27 - 22b0: 78 e3 85 7f mr r5,r28 + 22ac: 78 d3 46 7f mr r6,r26 + 22b0: 78 db 65 7f mr r5,r27 22b4: 78 1b 69 7c mr r9,r3 22b8: 78 fb e3 7f mr r3,r31 22bc: 2c 00 3f 91 stw r9,44(r31) @@ -3279,7 +3279,7 @@ static inline int hv_guest_state_size(un WARN_ON_ONCE(idx & ~0x1); 22d4: 01 00 04 28 cmplwi r4,1 22d8: 30 4d 69 38 addi r3,r9,19760 - 22dc: a4 00 81 41 bgt 2380 + 22dc: 84 00 81 41 bgt 2360 __srcu_read_unlock(ssp, idx); 22e0: b4 07 84 7c extsw r4,r4 22e4: 01 00 00 48 bl 22e4 @@ -3298,10 +3298,10 @@ static inline int hv_guest_state_size(un 230c: 00 00 42 60 ori r2,r2,0 rc = __kvmhv_copy_tofrom_guest_radix(gp->shadow_lpid, pid, 2310: 0e 00 7e e8 lwa r3,12(r30) - 2314: 78 db 68 7f mr r8,r27 - 2318: 78 d3 45 7f mr r5,r26 + 2314: 78 d3 48 7f mr r8,r26 + 2318: 78 cb 25 7f mr r5,r25 231c: b4 07 e4 7e extsw r4,r23 - 2320: 78 e3 87 7f mr r7,r28 + 2320: 78 db 67 7f mr r7,r27 2324: 00 00 c0 38 li r6,0 2328: 01 00 00 48 bl 2328 232c: 00 00 00 60 nop @@ -3311,2140 +3311,2136 @@ static inline int hv_guest_state_size(un rc = kvm_vcpu_write_guest(vcpu, gp_to, buf, n); 2338: 00 00 e0 3b li r31,0 233c: d4 fe ff 4b b 2210 - return H_NO_MEM; - 2340: 80 00 01 e8 ld r0,128(r1) - 2344: 50 00 81 eb ld r28,80(r1) - 2348: f7 ff e0 3b li r31,-9 - 234c: a6 03 08 7c mtlr r0 - 2350: f0 fe ff 4b b 2240 + return H_PARAMETER; + 2340: fc ff e0 3b li r31,-4 + 2344: fc fe ff 4b b 2240 + 2348: 00 00 00 60 nop + 234c: 00 00 42 60 ori r2,r2,0 + WARN_ON_ONCE(idx & ~0x1); + 2350: 00 00 e0 0f twui r0,0 2354: 00 00 00 60 nop 2358: 00 00 00 60 nop 235c: 00 00 42 60 ori r2,r2,0 - return H_PARAMETER; - 2360: fc ff e0 3b li r31,-4 - 2364: dc fe ff 4b b 2240 - 2368: 00 00 00 60 nop - 236c: 00 00 42 60 ori r2,r2,0 - WARN_ON_ONCE(idx & ~0x1); - 2370: 00 00 e0 0f twui r0,0 - 2374: 00 00 00 60 nop + 2360: 00 00 e0 0f twui r0,0 + return H_NO_MEM; + 2364: 80 00 01 e8 ld r0,128(r1) + 2368: 48 00 61 eb ld r27,72(r1) + 236c: f7 ff e0 3b li r31,-9 + 2370: a6 03 08 7c mtlr r0 + 2374: cc fe ff 4b b 2240 2378: 00 00 00 60 nop 237c: 00 00 42 60 ori r2,r2,0 - 2380: 00 00 e0 0f twui r0,0 - 2384: 00 00 00 60 nop - 2388: 00 00 00 60 nop - 238c: 00 00 42 60 ori r2,r2,0 - ... - -0000000000002398 : -{ - 2398: f8 ff 4c e8 ld r2,-8(r12) - 239c: 14 62 42 7c add r2,r2,r12 - 23a0: a6 02 08 7c mflr r0 - 23a4: 01 00 00 48 bl 23a4 - 23a8: 00 00 22 3d addis r9,r2,0 - 23ac: a6 02 08 7c mflr r0 - 23b0: e0 ff 81 fb std r28,-32(r1) - 23b4: e8 ff a1 fb std r29,-24(r1) + ... + +0000000000002388 : +{ + 2388: f8 ff 4c e8 ld r2,-8(r12) + 238c: 14 62 42 7c add r2,r2,r12 + 2390: a6 02 08 7c mflr r0 + 2394: 01 00 00 48 bl 2394 + 2398: 00 00 22 3d addis r9,r2,0 + 239c: a6 02 08 7c mflr r0 + 23a0: e0 ff 81 fb std r28,-32(r1) + 23a4: e8 ff a1 fb std r29,-24(r1) static inline unsigned int ap_to_shift(unsigned long ap) { int psize; for (psize = 0; psize < MMU_PAGE_COUNT; psize++) { - 23b8: 08 00 40 39 li r10,8 + 23a8: 08 00 40 39 li r10,8 int shift, shadow_shift; - 23bc: 00 00 00 39 li r8,0 + 23ac: 00 00 00 39 li r8,0 { - 23c0: d8 ff 61 fb std r27,-40(r1) - 23c4: f8 ff e1 fb std r31,-8(r1) - 23c8: 78 1b 7c 7c mr r28,r3 - 23cc: 78 33 dd 7c mr r29,r6 - 23d0: 00 00 e9 e8 ld r7,0(r9) - 23d4: 10 00 01 f8 std r0,16(r1) - 23d8: a1 ff 21 f8 stdu r1,-96(r1) - 23dc: a6 03 49 7d mtctr r10 - 23e0: 00 00 20 39 li r9,0 - 23e4: 78 0c 4d e9 ld r10,3192(r13) - 23e8: 28 00 41 f9 std r10,40(r1) - 23ec: 00 00 40 39 li r10,0 + 23b0: d8 ff 61 fb std r27,-40(r1) + 23b4: f8 ff e1 fb std r31,-8(r1) + 23b8: 78 1b 7c 7c mr r28,r3 + 23bc: 78 33 dd 7c mr r29,r6 + 23c0: 00 00 e9 e8 ld r7,0(r9) + 23c4: 10 00 01 f8 std r0,16(r1) + 23c8: a1 ff 21 f8 stdu r1,-96(r1) + 23cc: a6 03 49 7d mtctr r10 + 23d0: 00 00 20 39 li r9,0 + 23d4: 78 0c 4d e9 ld r10,3192(r13) + 23d8: 28 00 41 f9 std r10,40(r1) + 23dc: 00 00 40 39 li r10,0 struct kvm *kvm = vcpu->kvm; - 23f0: 00 00 63 e8 ld r3,0(r3) + 23e0: 00 00 63 e8 ld r3,0(r3) int shift, shadow_shift; - 23f4: 24 00 01 91 stw r8,36(r1) - 23f8: 78 3b ea 7c mr r10,r7 - 23fc: 20 00 00 48 b 241c + 23e4: 24 00 01 91 stw r8,36(r1) + 23e8: 78 3b ea 7c mr r10,r7 + 23ec: 20 00 00 48 b 240c if (mmu_psize_defs[psize].ap == ap) - 2400: b8 00 0a e9 ld r8,184(r10) + 23f0: b8 00 0a e9 ld r8,184(r10) for (psize = 0; psize < MMU_PAGE_COUNT; psize++) { - 2404: 01 00 29 39 addi r9,r9,1 + 23f4: 01 00 29 39 addi r9,r9,1 if (mmu_psize_defs[psize].ap == ap) - 2408: 00 40 25 7c cmpd r5,r8 - 240c: 1c 00 82 41 beq 2428 + 23f8: 00 40 25 7c cmpd r5,r8 + 23fc: 1c 00 82 41 beq 2418 for (psize = 0; psize < MMU_PAGE_COUNT; psize++) { - 2410: 01 00 29 39 addi r9,r9,1 - 2414: c0 00 4a 39 addi r10,r10,192 - 2418: 08 01 40 42 bdz 2520 + 2400: 01 00 29 39 addi r9,r9,1 + 2404: c0 00 4a 39 addi r10,r10,192 + 2408: 08 01 40 42 bdz 2510 if (mmu_psize_defs[psize].ap == ap) - 241c: 58 00 0a e9 ld r8,88(r10) - 2420: 00 40 25 7c cmpd r5,r8 - 2424: dc ff 82 40 bne 2400 + 240c: 58 00 0a e9 ld r8,88(r10) + 2410: 00 40 25 7c cmpd r5,r8 + 2414: dc ff 82 40 bne 23f0 return mmu_psize_defs[psize].shift; - 2428: b4 07 29 7d extsw r9,r9 - 242c: 60 00 29 1d mulli r9,r9,96 + 2418: b4 07 29 7d extsw r9,r9 + 241c: 60 00 29 1d mulli r9,r9,96 shift = ap_to_shift(ap); - 2430: 2e 48 e7 7f lwzx r31,r7,r9 + 2420: 2e 48 e7 7f lwzx r31,r7,r9 if (shift < 0) - 2434: 00 00 1f 2c cmpwi r31,0 - 2438: e8 00 80 41 blt 2520 + 2424: 00 00 1f 2c cmpwi r31,0 + 2428: e8 00 80 41 blt 2510 gp = kvmhv_get_nested(kvm, lpid, false); - 243c: 00 00 a0 38 li r5,0 - 2440: 01 00 00 48 bl 2440 + 242c: 00 00 a0 38 li r5,0 + 2430: 01 00 00 48 bl 2430 if (!gp) /* No such guest -> nothing to do */ - 2444: 79 1b 7b 7c mr. r27,r3 - 2448: 94 00 82 41 beq 24dc - 244c: 50 00 c1 fb std r30,80(r1) + 2434: 79 1b 7b 7c mr. r27,r3 + 2438: 94 00 82 41 beq 24cc + 243c: 50 00 c1 fb std r30,80(r1) addr &= ~((1UL << shift) - 1); - 2450: 01 00 c0 3b li r30,1 + 2440: 01 00 c0 3b li r30,1 npages = 1UL << (shift - PAGE_SHIFT); - 2454: f0 ff 3f 39 addi r9,r31,-16 - 2458: 30 00 41 fb std r26,48(r1) + 2444: f0 ff 3f 39 addi r9,r31,-16 + 2448: 30 00 41 fb std r26,48(r1) mutex_lock(&gp->tlb_lock); - 245c: 30 00 5b 3b addi r26,r27,48 + 244c: 30 00 5b 3b addi r26,r27,48 addr = epn << 12; - 2460: e4 64 a6 7b rldicr r6,r29,12,51 + 2450: e4 64 a6 7b rldicr r6,r29,12,51 npages -= 1UL << (shadow_shift - PAGE_SHIFT); - 2464: 01 00 a0 3b li r29,1 + 2454: 01 00 a0 3b li r29,1 addr &= ~((1UL << shift) - 1); - 2468: 36 f8 df 7f sld r31,r30,r31 + 2458: 36 f8 df 7f sld r31,r30,r31 mutex_lock(&gp->tlb_lock); - 246c: 78 d3 43 7f mr r3,r26 + 245c: 78 d3 43 7f mr r3,r26 npages = 1UL << (shift - PAGE_SHIFT); - 2470: 36 48 de 7f sld r30,r30,r9 + 2460: 36 48 de 7f sld r30,r30,r9 addr &= ~((1UL << shift) - 1); - 2474: d0 00 ff 7f neg r31,r31 - 2478: 38 30 ff 7f and r31,r31,r6 + 2464: d0 00 ff 7f neg r31,r31 + 2468: 38 30 ff 7f and r31,r31,r6 mutex_lock(&gp->tlb_lock); - 247c: 01 00 00 48 bl 247c - 2480: 00 00 00 60 nop - 2484: 00 00 00 60 nop - 2488: 00 00 00 60 nop - 248c: 00 00 42 60 ori r2,r2,0 + 246c: 01 00 00 48 bl 246c + 2470: 00 00 00 60 nop + 2474: 00 00 00 60 nop + 2478: 00 00 00 60 nop + 247c: 00 00 42 60 ori r2,r2,0 kvmhv_invalidate_shadow_pte(vcpu, gp, addr, &shadow_shift); - 2490: 00 00 7c e8 ld r3,0(r28) - 2494: 78 fb e5 7f mr r5,r31 - 2498: 24 00 c1 38 addi r6,r1,36 - 249c: 78 db 64 7f mr r4,r27 - 24a0: 01 00 00 48 bl 24a0 + 2480: 00 00 7c e8 ld r3,0(r28) + 2484: 78 fb e5 7f mr r5,r31 + 2488: 24 00 c1 38 addi r6,r1,36 + 248c: 78 db 64 7f mr r4,r27 + 2490: 01 00 00 48 bl 2490 npages -= 1UL << (shadow_shift - PAGE_SHIFT); - 24a4: 24 00 41 81 lwz r10,36(r1) - 24a8: f0 ff 2a 39 addi r9,r10,-16 + 2494: 24 00 41 81 lwz r10,36(r1) + 2498: f0 ff 2a 39 addi r9,r10,-16 addr += 1UL << shadow_shift; - 24ac: 36 50 aa 7f sld r10,r29,r10 + 249c: 36 50 aa 7f sld r10,r29,r10 npages -= 1UL << (shadow_shift - PAGE_SHIFT); - 24b0: 36 48 a9 7f sld r9,r29,r9 + 24a0: 36 48 a9 7f sld r9,r29,r9 addr += 1UL << shadow_shift; - 24b4: 14 52 ff 7f add r31,r31,r10 + 24a4: 14 52 ff 7f add r31,r31,r10 } while (npages > 0); - 24b8: 51 f0 c9 7f subf. r30,r9,r30 - 24bc: d4 ff 81 41 bgt 2490 + 24a8: 51 f0 c9 7f subf. r30,r9,r30 + 24ac: d4 ff 81 41 bgt 2480 mutex_unlock(&gp->tlb_lock); - 24c0: 78 d3 43 7f mr r3,r26 - 24c4: 01 00 00 48 bl 24c4 - 24c8: 00 00 00 60 nop + 24b0: 78 d3 43 7f mr r3,r26 + 24b4: 01 00 00 48 bl 24b4 + 24b8: 00 00 00 60 nop kvmhv_put_nested(gp); - 24cc: 78 db 63 7f mr r3,r27 - 24d0: 01 00 00 48 bl 24d0 - 24d4: 30 00 41 eb ld r26,48(r1) - 24d8: 50 00 c1 eb ld r30,80(r1) + 24bc: 78 db 63 7f mr r3,r27 + 24c0: 01 00 00 48 bl 24c0 + 24c4: 30 00 41 eb ld r26,48(r1) + 24c8: 50 00 c1 eb ld r30,80(r1) return 0; - 24dc: 00 00 60 38 li r3,0 + 24cc: 00 00 60 38 li r3,0 } - 24e0: 28 00 41 e9 ld r10,40(r1) - 24e4: 78 0c 2d e9 ld r9,3192(r13) - 24e8: 79 4a 4a 7d xor. r10,r10,r9 - 24ec: 00 00 20 39 li r9,0 - 24f0: b4 07 63 7c extsw r3,r3 - 24f4: 34 00 82 40 bne 2528 - 24f8: 60 00 21 38 addi r1,r1,96 - 24fc: 10 00 01 e8 ld r0,16(r1) - 2500: d8 ff 61 eb ld r27,-40(r1) - 2504: e0 ff 81 eb ld r28,-32(r1) - 2508: e8 ff a1 eb ld r29,-24(r1) - 250c: f8 ff e1 eb ld r31,-8(r1) - 2510: a6 03 08 7c mtlr r0 - 2514: 20 00 80 4e blr - 2518: 00 00 00 60 nop - 251c: 00 00 42 60 ori r2,r2,0 + 24d0: 28 00 41 e9 ld r10,40(r1) + 24d4: 78 0c 2d e9 ld r9,3192(r13) + 24d8: 79 4a 4a 7d xor. r10,r10,r9 + 24dc: 00 00 20 39 li r9,0 + 24e0: b4 07 63 7c extsw r3,r3 + 24e4: 34 00 82 40 bne 2518 + 24e8: 60 00 21 38 addi r1,r1,96 + 24ec: 10 00 01 e8 ld r0,16(r1) + 24f0: d8 ff 61 eb ld r27,-40(r1) + 24f4: e0 ff 81 eb ld r28,-32(r1) + 24f8: e8 ff a1 eb ld r29,-24(r1) + 24fc: f8 ff e1 eb ld r31,-8(r1) + 2500: a6 03 08 7c mtlr r0 + 2504: 20 00 80 4e blr + 2508: 00 00 00 60 nop + 250c: 00 00 42 60 ori r2,r2,0 return -EINVAL; - 2520: ea ff 60 38 li r3,-22 - 2524: bc ff ff 4b b 24e0 - 2528: 30 00 41 fb std r26,48(r1) - 252c: 50 00 c1 fb std r30,80(r1) -} - 2530: 01 00 00 48 bl 2530 - 2534: 00 00 00 60 nop - 2538: 00 00 00 60 nop - 253c: 00 00 42 60 ori r2,r2,0 - ... - -0000000000002548 : -{ - 2548: f8 ff 4c e8 ld r2,-8(r12) - 254c: 14 62 42 7c add r2,r2,r12 - 2550: a6 02 08 7c mflr r0 - 2554: 01 00 00 48 bl 2554 - 2558: a6 02 08 7c mflr r0 - 255c: f0 ff c1 fb std r30,-16(r1) - 2560: f8 ff e1 fb std r31,-8(r1) - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2564: 60 0c 63 38 addi r3,r3,3168 - 2568: b4 07 84 7c extsw r4,r4 -{ - 256c: 78 2b bf 7c mr r31,r5 - 2570: 78 33 de 7c mr r30,r6 - 2574: 10 00 01 f8 std r0,16(r1) - 2578: d1 ff 21 f8 stdu r1,-48(r1) + 2510: ea ff 60 38 li r3,-22 + 2514: bc ff ff 4b b 24d0 + 2518: 30 00 41 fb std r26,48(r1) + 251c: 50 00 c1 fb std r30,80(r1) +} + 2520: 01 00 00 48 bl 2520 + 2524: 00 00 00 60 nop + 2528: 00 00 00 60 nop + 252c: 00 00 42 60 ori r2,r2,0 + ... + +0000000000002538 : +{ + 2538: f8 ff 4c e8 ld r2,-8(r12) + 253c: 14 62 42 7c add r2,r2,r12 + 2540: a6 02 08 7c mflr r0 + 2544: 01 00 00 48 bl 2544 + 2548: a6 02 08 7c mflr r0 + 254c: f0 ff c1 fb std r30,-16(r1) + 2550: f8 ff e1 fb std r31,-8(r1) + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); + 2554: 60 0c 63 38 addi r3,r3,3168 + 2558: b4 07 84 7c extsw r4,r4 +{ + 255c: 78 2b bf 7c mr r31,r5 + 2560: 78 33 de 7c mr r30,r6 + 2564: 10 00 01 f8 std r0,16(r1) + 2568: d1 ff 21 f8 stdu r1,-48(r1) return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 257c: 01 00 00 48 bl 257c - 2580: 00 00 00 60 nop + 256c: 01 00 00 48 bl 256c + 2570: 00 00 00 60 nop if (!gp) - 2584: 00 00 23 2c cmpdi r3,0 - 2588: 1c 00 82 41 beq 25a4 + 2574: 00 00 23 2c cmpdi r3,0 + 2578: 1c 00 82 41 beq 2594 pte = __find_linux_pte(gp->shadow_pgtable, ea, NULL, hshift); - 258c: 10 00 63 e8 ld r3,16(r3) - 2590: 78 f3 c6 7f mr r6,r30 - 2594: 78 fb e4 7f mr r4,r31 - 2598: 00 00 a0 38 li r5,0 - 259c: 01 00 00 48 bl 259c - 25a0: 00 00 00 60 nop -} - 25a4: 30 00 21 38 addi r1,r1,48 - 25a8: 10 00 01 e8 ld r0,16(r1) - 25ac: f0 ff c1 eb ld r30,-16(r1) - 25b0: f8 ff e1 eb ld r31,-8(r1) - 25b4: a6 03 08 7c mtlr r0 - 25b8: 20 00 80 4e blr - 25bc: 00 00 42 60 ori r2,r2,0 - ... - -00000000000025c8 : -{ - 25c8: f8 ff 4c e8 ld r2,-8(r12) - 25cc: 14 62 42 7c add r2,r2,r12 - 25d0: a6 02 08 7c mflr r0 - 25d4: 01 00 00 48 bl 25d4 - 25d8: f0 ff c1 fb std r30,-16(r1) - 25dc: d1 ff 21 f8 stdu r1,-48(r1) - 25e0: 78 23 86 7c mr r6,r4 + 257c: 10 00 63 e8 ld r3,16(r3) + 2580: 78 f3 c6 7f mr r6,r30 + 2584: 78 fb e4 7f mr r4,r31 + 2588: 00 00 a0 38 li r5,0 + 258c: 01 00 00 48 bl 258c + 2590: 00 00 00 60 nop +} + 2594: 30 00 21 38 addi r1,r1,48 + 2598: 10 00 01 e8 ld r0,16(r1) + 259c: f0 ff c1 eb ld r30,-16(r1) + 25a0: f8 ff e1 eb ld r31,-8(r1) + 25a4: a6 03 08 7c mtlr r0 + 25a8: 20 00 80 4e blr + 25ac: 00 00 42 60 ori r2,r2,0 + ... + +00000000000025b8 : +{ + 25b8: f8 ff 4c e8 ld r2,-8(r12) + 25bc: 14 62 42 7c add r2,r2,r12 + 25c0: a6 02 08 7c mflr r0 + 25c4: 01 00 00 48 bl 25c4 + 25c8: f0 ff c1 fb std r30,-16(r1) + 25cc: d1 ff 21 f8 stdu r1,-48(r1) + 25d0: 78 23 86 7c mr r6,r4 struct llist_node *entry = ((struct llist_head *) rmapp)->first; - 25e4: 00 00 c4 eb ld r30,0(r4) + 25d4: 00 00 c4 eb ld r30,0(r4) u64 rmap, new_rmap = (*n_rmap)->rmap; - 25e8: 00 00 85 e8 ld r4,0(r5) + 25d8: 00 00 85 e8 ld r4,0(r5) if (!(*rmapp)) { - 25ec: 00 00 3e 2c cmpdi r30,0 + 25dc: 00 00 3e 2c cmpdi r30,0 u64 rmap, new_rmap = (*n_rmap)->rmap; - 25f0: 08 00 04 e9 ld r8,8(r4) + 25e0: 08 00 04 e9 ld r8,8(r4) if (!(*rmapp)) { - 25f4: ec 00 82 41 beq 26e0 - 25f8: 28 00 e1 fb std r31,40(r1) - 25fc: 78 f3 c9 7f mr r9,r30 - 2600: 78 2b bf 7c mr r31,r5 - 2604: 00 00 00 60 nop - 2608: 00 00 00 60 nop - 260c: 00 00 42 60 ori r2,r2,0 + 25e4: ec 00 82 41 beq 26d0 + 25e8: 28 00 e1 fb std r31,40(r1) + 25ec: 78 f3 c9 7f mr r9,r30 + 25f0: 78 2b bf 7c mr r31,r5 + 25f4: 00 00 00 60 nop + 25f8: 00 00 00 60 nop + 25fc: 00 00 42 60 ori r2,r2,0 for_each_nest_rmap_safe(cursor, entry, &rmap) { - 2610: 01 00 2a 71 andi. r10,r9,1 - 2614: 5c 00 82 41 beq 2670 + 2600: 01 00 2a 71 andi. r10,r9,1 + 2604: 5c 00 82 41 beq 2660 return !((rmap_1 ^ rmap_2) & (RMAP_NESTED_LPID_MASK | - 2618: 78 42 29 7d xor r9,r9,r8 + 2608: 78 42 29 7d xor r9,r9,r8 if (kvmhv_n_rmap_is_equal(rmap, new_rmap)) - 261c: ff 0f 29 28 cmpldi r9,4095 - 2620: b0 00 81 40 ble 26d0 + 260c: ff 0f 29 28 cmpldi r9,4095 + 2610: b0 00 81 40 ble 26c0 if (rmap & RMAP_NESTED_IS_SINGLE_ENTRY) /* Not previously a list */ - 2624: a6 02 08 7c mflr r0 - 2628: 01 00 c9 73 andi. r9,r30,1 - 262c: 40 00 01 f8 std r0,64(r1) - 2630: 70 00 82 40 bne 26a0 + 2614: a6 02 08 7c mflr r0 + 2618: 01 00 c9 73 andi. r9,r30,1 + 261c: 40 00 01 f8 std r0,64(r1) + 2620: 70 00 82 40 bne 2690 return llist_add_batch(new, new, head); - 2634: 78 33 c5 7c mr r5,r6 - 2638: 78 23 83 7c mr r3,r4 - 263c: 01 00 00 48 bl 263c - 2640: 00 00 00 60 nop + 2624: 78 33 c5 7c mr r5,r6 + 2628: 78 23 83 7c mr r3,r4 + 262c: 01 00 00 48 bl 262c + 2630: 00 00 00 60 nop *n_rmap = NULL; - 2644: 00 00 20 39 li r9,0 - 2648: 00 00 3f f9 std r9,0(r31) - 264c: 40 00 01 e8 ld r0,64(r1) - 2650: 28 00 e1 eb ld r31,40(r1) + 2634: 00 00 20 39 li r9,0 + 2638: 00 00 3f f9 std r9,0(r31) + 263c: 40 00 01 e8 ld r0,64(r1) + 2640: 28 00 e1 eb ld r31,40(r1) } - 2654: 30 00 21 38 addi r1,r1,48 - 2658: f0 ff c1 eb ld r30,-16(r1) + 2644: 30 00 21 38 addi r1,r1,48 + 2648: f0 ff c1 eb ld r30,-16(r1) *n_rmap = NULL; - 265c: a6 03 08 7c mtlr r0 + 264c: a6 03 08 7c mtlr r0 } - 2660: 20 00 80 4e blr - 2664: 00 00 00 60 nop - 2668: 00 00 00 60 nop - 266c: 00 00 42 60 ori r2,r2,0 + 2650: 20 00 80 4e blr + 2654: 00 00 00 60 nop + 2658: 00 00 00 60 nop + 265c: 00 00 42 60 ori r2,r2,0 for_each_nest_rmap_safe(cursor, entry, &rmap) { - 2670: 08 00 49 e9 ld r10,8(r9) - 2674: 00 00 2a 2c cmpdi r10,0 + 2660: 08 00 49 e9 ld r10,8(r9) + 2664: 00 00 2a 2c cmpdi r10,0 return !((rmap_1 ^ rmap_2) & (RMAP_NESTED_LPID_MASK | - 2678: 78 52 07 7d xor r7,r8,r10 + 2668: 78 52 07 7d xor r7,r8,r10 if (kvmhv_n_rmap_is_equal(rmap, new_rmap)) - 267c: ff 0f a7 2b cmpldi cr7,r7,4095 + 266c: ff 0f a7 2b cmpldi cr7,r7,4095 for_each_nest_rmap_safe(cursor, entry, &rmap) { - 2680: a4 ff 82 41 beq 2624 - 2684: 00 00 29 e9 ld r9,0(r9) + 2670: a4 ff 82 41 beq 2614 + 2674: 00 00 29 e9 ld r9,0(r9) if (kvmhv_n_rmap_is_equal(rmap, new_rmap)) - 2688: 48 00 9d 40 ble cr7,26d0 + 2678: 48 00 9d 40 ble cr7,26c0 for_each_nest_rmap_safe(cursor, entry, &rmap) { - 268c: 00 00 29 2c cmpdi r9,0 - 2690: 80 ff 82 40 bne 2610 - 2694: 90 ff ff 4b b 2624 - 2698: 00 00 00 60 nop - 269c: 00 00 42 60 ori r2,r2,0 + 267c: 00 00 29 2c cmpdi r9,0 + 2680: 80 ff 82 40 bne 2600 + 2684: 90 ff ff 4b b 2614 + 2688: 00 00 00 60 nop + 268c: 00 00 42 60 ori r2,r2,0 *rmapp = 0UL; - 26a0: 00 00 20 39 li r9,0 - 26a4: 78 33 c5 7c mr r5,r6 - 26a8: 00 00 26 f9 std r9,0(r6) - 26ac: 00 00 9f e8 ld r4,0(r31) - 26b0: 78 23 83 7c mr r3,r4 - 26b4: 01 00 00 48 bl 26b4 - 26b8: 00 00 00 60 nop + 2690: 00 00 20 39 li r9,0 + 2694: 78 33 c5 7c mr r5,r6 + 2698: 00 00 26 f9 std r9,0(r6) + 269c: 00 00 9f e8 ld r4,0(r31) + 26a0: 78 23 83 7c mr r3,r4 + 26a4: 01 00 00 48 bl 26a4 + 26a8: 00 00 00 60 nop (*n_rmap)->list.next = (struct llist_node *) rmap; - 26bc: 00 00 3f e9 ld r9,0(r31) - 26c0: 00 00 c9 fb std r30,0(r9) - 26c4: 80 ff ff 4b b 2644 - 26c8: 00 00 00 60 nop - 26cc: 00 00 42 60 ori r2,r2,0 - 26d0: 28 00 e1 eb ld r31,40(r1) + 26ac: 00 00 3f e9 ld r9,0(r31) + 26b0: 00 00 c9 fb std r30,0(r9) + 26b4: 80 ff ff 4b b 2634 + 26b8: 00 00 00 60 nop + 26bc: 00 00 42 60 ori r2,r2,0 + 26c0: 28 00 e1 eb ld r31,40(r1) } - 26d4: 30 00 21 38 addi r1,r1,48 - 26d8: f0 ff c1 eb ld r30,-16(r1) - 26dc: 20 00 80 4e blr + 26c4: 30 00 21 38 addi r1,r1,48 + 26c8: f0 ff c1 eb ld r30,-16(r1) + 26cc: 20 00 80 4e blr *rmapp = new_rmap | RMAP_NESTED_IS_SINGLE_ENTRY; - 26e0: 01 00 08 61 ori r8,r8,1 + 26d0: 01 00 08 61 ori r8,r8,1 } - 26e4: 30 00 21 38 addi r1,r1,48 + 26d4: 30 00 21 38 addi r1,r1,48 *rmapp = new_rmap | RMAP_NESTED_IS_SINGLE_ENTRY; - 26e8: 00 00 06 f9 std r8,0(r6) + 26d8: 00 00 06 f9 std r8,0(r6) } - 26ec: f0 ff c1 eb ld r30,-16(r1) - 26f0: 20 00 80 4e blr - 26f4: 00 00 00 60 nop - 26f8: 00 00 00 60 nop - 26fc: 00 00 42 60 ori r2,r2,0 + 26dc: f0 ff c1 eb ld r30,-16(r1) + 26e0: 20 00 80 4e blr + 26e4: 00 00 00 60 nop + 26e8: 00 00 00 60 nop + 26ec: 00 00 42 60 ori r2,r2,0 ... -0000000000002708 : +00000000000026f8 : { - 2708: f8 ff 4c e8 ld r2,-8(r12) - 270c: 14 62 42 7c add r2,r2,r12 - 2710: a6 02 08 7c mflr r0 - 2714: 01 00 00 48 bl 2714 + 26f8: f8 ff 4c e8 ld r2,-8(r12) + 26fc: 14 62 42 7c add r2,r2,r12 + 2700: a6 02 08 7c mflr r0 + 2704: 01 00 00 48 bl 2704 if ((clr | set) & ~(_PAGE_DIRTY | _PAGE_ACCESSED)) - 2718: 78 33 a9 7c or r9,r5,r6 + 2708: 78 33 a9 7c or r9,r5,r6 { - 271c: f8 ff e1 fb std r31,-8(r1) - 2720: 81 ff 21 f8 stdu r1,-128(r1) + 270c: f8 ff e1 fb std r31,-8(r1) + 2710: 81 ff 21 f8 stdu r1,-128(r1) if ((clr | set) & ~(_PAGE_DIRTY | _PAGE_ACCESSED)) - 2724: 82 b8 29 79 rldicl r9,r9,55,2 + 2714: 82 b8 29 79 rldicl r9,r9,55,2 struct llist_node *entry = ((struct llist_head *) rmapp)->first; - 2728: 00 00 e4 eb ld r31,0(r4) + 2718: 00 00 e4 eb ld r31,0(r4) { - 272c: 78 0c 4d e9 ld r10,3192(r13) - 2730: 28 00 41 f9 std r10,40(r1) - 2734: 00 00 40 39 li r10,0 + 271c: 78 0c 4d e9 ld r10,3192(r13) + 2720: 28 00 41 f9 std r10,40(r1) + 2724: 00 00 40 39 li r10,0 if ((clr | set) & ~(_PAGE_DIRTY | _PAGE_ACCESSED)) - 2738: 01 48 29 79 rotldi. r9,r9,9 - 273c: 80 01 82 40 bne 28bc + 2728: 01 48 29 79 rotldi. r9,r9,9 + 272c: 80 01 82 40 bne 28ac mask = PTE_RPN_MASK & ~(nbytes - 1); - 2740: d0 00 08 7d neg r8,r8 + 2730: d0 00 08 7d neg r8,r8 for_each_nest_rmap_safe(cursor, entry, &rmap) - 2744: 00 00 3f 2c cmpdi r31,0 - 2748: 60 00 81 fb std r28,96(r1) + 2734: 00 00 3f 2c cmpdi r31,0 + 2738: 60 00 81 fb std r28,96(r1) mask = PTE_RPN_MASK & ~(nbytes - 1); - 274c: 24 59 1c 79 rldicr r28,r8,11,36 - 2750: c2 aa 9c 7b rldicl r28,r28,53,11 + 273c: 24 59 1c 79 rldicr r28,r8,11,36 + 2740: c2 aa 9c 7b rldicl r28,r28,53,11 for_each_nest_rmap_safe(cursor, entry, &rmap) - 2754: 04 02 82 41 beq 2958 - 2758: a6 02 08 7c mflr r0 - 275c: 30 00 c1 fa std r22,48(r1) - 2760: 38 00 e1 fa std r23,56(r1) + 2744: 04 02 82 41 beq 2948 + 2748: a6 02 08 7c mflr r0 + 274c: 30 00 c1 fa std r22,48(r1) + 2750: 38 00 e1 fa std r23,56(r1) unsigned int shift, lpid; - 2764: 00 00 c0 3a li r22,0 - 2768: 78 1b 77 7c mr r23,r3 - 276c: 40 00 01 fb std r24,64(r1) - 2770: 48 00 21 fb std r25,72(r1) - 2774: 78 33 d8 7c mr r24,r6 - 2778: 78 2b b9 7c mr r25,r5 - 277c: 50 00 41 fb std r26,80(r1) - 2780: 58 00 61 fb std r27,88(r1) - 2784: 78 3b fa 7c mr r26,r7 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2788: 60 0c 63 3b addi r27,r3,3168 - 278c: 90 00 01 f8 std r0,144(r1) - 2790: 68 00 a1 fb std r29,104(r1) - 2794: 70 00 c1 fb std r30,112(r1) - 2798: b4 00 00 48 b 284c - 279c: 00 00 42 60 ori r2,r2,0 + 2754: 00 00 c0 3a li r22,0 + 2758: 78 1b 77 7c mr r23,r3 + 275c: 40 00 01 fb std r24,64(r1) + 2760: 48 00 21 fb std r25,72(r1) + 2764: 78 33 d8 7c mr r24,r6 + 2768: 78 2b b9 7c mr r25,r5 + 276c: 50 00 41 fb std r26,80(r1) + 2770: 58 00 61 fb std r27,88(r1) + 2774: 78 3b fa 7c mr r26,r7 + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); + 2778: 60 0c 63 3b addi r27,r3,3168 + 277c: 90 00 01 f8 std r0,144(r1) + 2780: 68 00 a1 fb std r29,104(r1) + 2784: 70 00 c1 fb std r30,112(r1) + 2788: b4 00 00 48 b 283c + 278c: 00 00 42 60 ori r2,r2,0 for_each_nest_rmap_safe(cursor, entry, &rmap) - 27a0: 08 00 df eb ld r30,8(r31) - 27a4: 00 00 3e 2c cmpdi r30,0 - 27a8: e8 00 82 41 beq 2890 + 2790: 08 00 df eb ld r30,8(r31) + 2794: 00 00 3e 2c cmpdi r30,0 + 2798: e8 00 82 41 beq 2880 lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; - 27ac: 20 65 c4 7b rldicl r4,r30,12,52 + 279c: 20 65 c4 7b rldicl r4,r30,12,52 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 27b0: 78 db 63 7f mr r3,r27 + 27a0: 78 db 63 7f mr r3,r27 for_each_nest_rmap_safe(cursor, entry, &rmap) - 27b4: 00 00 ff eb ld r31,0(r31) + 27a4: 00 00 ff eb ld r31,0(r31) unsigned int shift, lpid; - 27b8: 24 00 21 91 stw r9,36(r1) + 27a8: 24 00 21 91 stw r9,36(r1) gpa = n_rmap & RMAP_NESTED_GPA_MASK; - 27bc: e4 61 de 7b rldicr r30,r30,12,39 + 27ac: e4 61 de 7b rldicr r30,r30,12,39 lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; - 27c0: 78 23 9d 7c mr r29,r4 + 27b0: 78 23 9d 7c mr r29,r4 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 27c4: 01 00 00 48 bl 27c4 - 27c8: 00 00 00 60 nop + 27b4: 01 00 00 48 bl 27b4 + 27b8: 00 00 00 60 nop gpa = n_rmap & RMAP_NESTED_GPA_MASK; - 27cc: 02 a3 de 7b rldicl r30,r30,52,12 + 27bc: 02 a3 de 7b rldicl r30,r30,52,12 if (!gp) - 27d0: 00 00 23 2c cmpdi r3,0 - 27d4: 70 00 82 41 beq 2844 + 27c0: 00 00 23 2c cmpdi r3,0 + 27c4: 70 00 82 41 beq 2834 pte = __find_linux_pte(gp->shadow_pgtable, ea, NULL, hshift); - 27d8: 10 00 63 e8 ld r3,16(r3) - 27dc: 24 00 c1 38 addi r6,r1,36 - 27e0: 00 00 a0 38 li r5,0 - 27e4: 78 f3 c4 7f mr r4,r30 - 27e8: 01 00 00 48 bl 27e8 - 27ec: 00 00 00 60 nop + 27c8: 10 00 63 e8 ld r3,16(r3) + 27cc: 24 00 c1 38 addi r6,r1,36 + 27d0: 00 00 a0 38 li r5,0 + 27d4: 78 f3 c4 7f mr r4,r30 + 27d8: 01 00 00 48 bl 27d8 + 27dc: 00 00 00 60 nop if (ptep && pte_present(*ptep) && ((pte_val(*ptep) & mask) == hpa)) { - 27f0: 00 00 23 2c cmpdi r3,0 - 27f4: 50 00 82 41 beq 2844 - 27f8: 00 00 23 e9 ld r9,0(r3) + 27e0: 00 00 23 2c cmpdi r3,0 + 27e4: 50 00 82 41 beq 2834 + 27e8: 00 00 23 e9 ld r9,0(r3) return (pte_raw(pte) & cpu_to_be64(_PAGE_PRESENT | _PAGE_PTE)) == - 27fc: 32 06 2a 55 rlwinm r10,r9,0,24,25 + 27ec: 32 06 2a 55 rlwinm r10,r9,0,24,25 if (pte_hw_valid(pte)) - 2800: c0 00 2a 2c cmpdi r10,192 - 2804: 10 00 82 41 beq 2814 + 27f0: c0 00 2a 2c cmpdi r10,192 + 27f4: 10 00 82 41 beq 2804 return (pte_raw(pte) & cpu_to_be64(_PAGE_INVALID | _PAGE_PTE)) == - 2808: 74 06 2a 55 rlwinm r10,r9,0,25,26 - 280c: 60 00 2a 2c cmpdi r10,96 - 2810: 34 00 82 40 bne 2844 + 27f8: 74 06 2a 55 rlwinm r10,r9,0,25,26 + 27fc: 60 00 2a 2c cmpdi r10,96 + 2800: 34 00 82 40 bne 2834 typedef struct { __be64 pte; } pte_t; #define __pte(x) ((pte_t) { cpu_to_be64(x) }) #define __pte_raw(x) ((pte_t) { (x) }) static inline unsigned long pte_val(pte_t x) { return be64_to_cpu(x.pte); - 2814: 22 00 28 79 rldicl r8,r9,32,32 - 2818: 3e c0 2a 55 rotlwi r10,r9,24 - 281c: 3e c0 07 55 rotlwi r7,r8,24 - 2820: 1e 42 2a 51 rlwimi r10,r9,8,8,15 - 2824: 1e 42 07 51 rlwimi r7,r8,8,8,15 - 2828: 3e 46 2a 51 rlwimi r10,r9,8,24,31 - 282c: 3e 46 07 51 rlwimi r7,r8,8,24,31 - 2830: c6 07 4a 79 rldicr r10,r10,32,31 - 2834: 78 3b 4a 7d or r10,r10,r7 - 2838: 78 52 49 7f xor r9,r26,r10 - 283c: 39 e0 29 7d and. r9,r9,r28 - 2840: a0 00 82 41 beq 28e0 + 2804: 22 00 28 79 rldicl r8,r9,32,32 + 2808: 3e c0 2a 55 rotlwi r10,r9,24 + 280c: 3e c0 07 55 rotlwi r7,r8,24 + 2810: 1e 42 2a 51 rlwimi r10,r9,8,8,15 + 2814: 1e 42 07 51 rlwimi r7,r8,8,8,15 + 2818: 3e 46 2a 51 rlwimi r10,r9,8,24,31 + 281c: 3e 46 07 51 rlwimi r7,r8,8,24,31 + 2820: c6 07 4a 79 rldicr r10,r10,32,31 + 2824: 78 3b 4a 7d or r10,r10,r7 + 2828: 78 52 49 7f xor r9,r26,r10 + 282c: 39 e0 29 7d and. r9,r9,r28 + 2830: a0 00 82 41 beq 28d0 for_each_nest_rmap_safe(cursor, entry, &rmap) - 2844: 00 00 3f 2c cmpdi r31,0 - 2848: 48 00 82 41 beq 2890 - 284c: 01 00 e9 73 andi. r9,r31,1 - 2850: 50 ff 82 41 beq 27a0 + 2834: 00 00 3f 2c cmpdi r31,0 + 2838: 48 00 82 41 beq 2880 + 283c: 01 00 e9 73 andi. r9,r31,1 + 2840: 50 ff 82 41 beq 2790 lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; - 2854: 20 65 e4 7b rldicl r4,r31,12,52 + 2844: 20 65 e4 7b rldicl r4,r31,12,52 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2858: 78 db 63 7f mr r3,r27 + 2848: 78 db 63 7f mr r3,r27 unsigned int shift, lpid; - 285c: 24 00 c1 92 stw r22,36(r1) + 284c: 24 00 c1 92 stw r22,36(r1) gpa = n_rmap & RMAP_NESTED_GPA_MASK; - 2860: e4 61 fe 7b rldicr r30,r31,12,39 + 2850: e4 61 fe 7b rldicr r30,r31,12,39 lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; - 2864: 78 23 9d 7c mr r29,r4 + 2854: 78 23 9d 7c mr r29,r4 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2868: 01 00 00 48 bl 2868 - 286c: 00 00 00 60 nop + 2858: 01 00 00 48 bl 2858 + 285c: 00 00 00 60 nop gpa = n_rmap & RMAP_NESTED_GPA_MASK; - 2870: 02 a3 de 7b rldicl r30,r30,52,12 + 2860: 02 a3 de 7b rldicl r30,r30,52,12 if (!gp) - 2874: 00 00 23 2c cmpdi r3,0 - 2878: 18 00 82 41 beq 2890 + 2864: 00 00 23 2c cmpdi r3,0 + 2868: 18 00 82 41 beq 2880 for_each_nest_rmap_safe(cursor, entry, &rmap) - 287c: 00 00 e0 3b li r31,0 - 2880: 58 ff ff 4b b 27d8 - 2884: 00 00 00 60 nop - 2888: 00 00 00 60 nop - 288c: 00 00 42 60 ori r2,r2,0 - 2890: 90 00 01 e8 ld r0,144(r1) - 2894: 30 00 c1 ea ld r22,48(r1) - 2898: 38 00 e1 ea ld r23,56(r1) - 289c: 40 00 01 eb ld r24,64(r1) - 28a0: 48 00 21 eb ld r25,72(r1) - 28a4: 50 00 41 eb ld r26,80(r1) - 28a8: 58 00 61 eb ld r27,88(r1) - 28ac: 60 00 81 eb ld r28,96(r1) - 28b0: 68 00 a1 eb ld r29,104(r1) - 28b4: 70 00 c1 eb ld r30,112(r1) - 28b8: a6 03 08 7c mtlr r0 -} - 28bc: 28 00 41 e9 ld r10,40(r1) - 28c0: 78 0c 2d e9 ld r9,3192(r13) - 28c4: 79 4a 4a 7d xor. r10,r10,r9 - 28c8: 00 00 20 39 li r9,0 - 28cc: 94 00 82 40 bne 2960 - 28d0: 80 00 21 38 addi r1,r1,128 - 28d4: f8 ff e1 eb ld r31,-8(r1) - 28d8: 20 00 80 4e blr - 28dc: 00 00 42 60 ori r2,r2,0 + 286c: 00 00 e0 3b li r31,0 + 2870: 58 ff ff 4b b 27c8 + 2874: 00 00 00 60 nop + 2878: 00 00 00 60 nop + 287c: 00 00 42 60 ori r2,r2,0 + 2880: 90 00 01 e8 ld r0,144(r1) + 2884: 30 00 c1 ea ld r22,48(r1) + 2888: 38 00 e1 ea ld r23,56(r1) + 288c: 40 00 01 eb ld r24,64(r1) + 2890: 48 00 21 eb ld r25,72(r1) + 2894: 50 00 41 eb ld r26,80(r1) + 2898: 58 00 61 eb ld r27,88(r1) + 289c: 60 00 81 eb ld r28,96(r1) + 28a0: 68 00 a1 eb ld r29,104(r1) + 28a4: 70 00 c1 eb ld r30,112(r1) + 28a8: a6 03 08 7c mtlr r0 +} + 28ac: 28 00 41 e9 ld r10,40(r1) + 28b0: 78 0c 2d e9 ld r9,3192(r13) + 28b4: 79 4a 4a 7d xor. r10,r10,r9 + 28b8: 00 00 20 39 li r9,0 + 28bc: 94 00 82 40 bne 2950 + 28c0: 80 00 21 38 addi r1,r1,128 + 28c4: f8 ff e1 eb ld r31,-8(r1) + 28c8: 20 00 80 4e blr + 28cc: 00 00 42 60 ori r2,r2,0 " andc %1,%0,%5 \n" " or %1,%1,%4 \n" " stdcx. %1,0,%3 \n" " bne- 1b" : "=&r" (old_be), "=&r" (tmp_be), "=m" (*ptep) : "r" (ptep), "r" (cpu_to_be64(set)), "r" (cpu_to_be64(clr)) - 28e0: 22 00 0a 7b rldicl r10,r24,32,32 - 28e4: 3e c0 09 57 rotlwi r9,r24,24 - 28e8: 3e c0 48 55 rotlwi r8,r10,24 - 28ec: 1e 42 09 53 rlwimi r9,r24,8,8,15 - 28f0: 1e 42 48 51 rlwimi r8,r10,8,8,15 - 28f4: 3e 46 09 53 rlwimi r9,r24,8,24,31 - 28f8: 3e 46 48 51 rlwimi r8,r10,8,24,31 - 28fc: c6 07 29 79 rldicr r9,r9,32,31 - 2900: 3e c0 2a 57 rotlwi r10,r25,24 - 2904: 78 43 29 7d or r9,r9,r8 - 2908: 22 00 28 7b rldicl r8,r25,32,32 - 290c: 1e 42 2a 53 rlwimi r10,r25,8,8,15 - 2910: 3e c0 07 55 rotlwi r7,r8,24 - 2914: 3e 46 2a 53 rlwimi r10,r25,8,24,31 - 2918: 1e 42 07 51 rlwimi r7,r8,8,8,15 - 291c: c6 07 4a 79 rldicr r10,r10,32,31 - 2920: 3e 46 07 51 rlwimi r7,r8,8,24,31 - 2924: 78 3b 4a 7d or r10,r10,r7 + 28d0: 22 00 0a 7b rldicl r10,r24,32,32 + 28d4: 3e c0 09 57 rotlwi r9,r24,24 + 28d8: 3e c0 48 55 rotlwi r8,r10,24 + 28dc: 1e 42 09 53 rlwimi r9,r24,8,8,15 + 28e0: 1e 42 48 51 rlwimi r8,r10,8,8,15 + 28e4: 3e 46 09 53 rlwimi r9,r24,8,24,31 + 28e8: 3e 46 48 51 rlwimi r8,r10,8,24,31 + 28ec: c6 07 29 79 rldicr r9,r9,32,31 + 28f0: 3e c0 2a 57 rotlwi r10,r25,24 + 28f4: 78 43 29 7d or r9,r9,r8 + 28f8: 22 00 28 7b rldicl r8,r25,32,32 + 28fc: 1e 42 2a 53 rlwimi r10,r25,8,8,15 + 2900: 3e c0 07 55 rotlwi r7,r8,24 + 2904: 3e 46 2a 53 rlwimi r10,r25,8,24,31 + 2908: 1e 42 07 51 rlwimi r7,r8,8,8,15 + 290c: c6 07 4a 79 rldicr r10,r10,32,31 + 2910: 3e 46 07 51 rlwimi r7,r8,8,24,31 + 2914: 78 3b 4a 7d or r10,r10,r7 __asm__ __volatile__( - 2928: a8 18 00 7d ldarx r8,0,r3 - 292c: 78 50 07 7d andc r7,r8,r10 - 2930: 78 4b e7 7c or r7,r7,r9 - 2934: ad 19 e0 7c stdcx. r7,0,r3 - 2938: f0 ff c2 40 bne- 2928 + 2918: a8 18 00 7d ldarx r8,0,r3 + 291c: 78 50 07 7d andc r7,r8,r10 + 2920: 78 4b e7 7c or r7,r7,r9 + 2924: ad 19 e0 7c stdcx. r7,0,r3 + 2928: f0 ff c2 40 bne- 2918 kvmppc_radix_tlbie_page(kvm, gpa, shift, lpid); - 293c: 24 00 a1 80 lwz r5,36(r1) - 2940: 20 05 a6 7b clrldi r6,r29,52 - 2944: 78 f3 c4 7f mr r4,r30 - 2948: 78 bb e3 7e mr r3,r23 - 294c: 01 00 00 48 bl 294c - 2950: 00 00 00 60 nop - 2954: f0 fe ff 4b b 2844 - 2958: 60 00 81 eb ld r28,96(r1) - 295c: 60 ff ff 4b b 28bc - 2960: a6 02 08 7c mflr r0 - 2964: 30 00 c1 fa std r22,48(r1) - 2968: 38 00 e1 fa std r23,56(r1) - 296c: 40 00 01 fb std r24,64(r1) - 2970: 48 00 21 fb std r25,72(r1) - 2974: 90 00 01 f8 std r0,144(r1) - 2978: 50 00 41 fb std r26,80(r1) - 297c: 58 00 61 fb std r27,88(r1) - 2980: 60 00 81 fb std r28,96(r1) - 2984: 68 00 a1 fb std r29,104(r1) - 2988: 70 00 c1 fb std r30,112(r1) -} - 298c: 01 00 00 48 bl 298c - 2990: 00 00 00 60 nop - 2994: 00 00 00 60 nop - 2998: 00 00 00 60 nop - 299c: 00 00 42 60 ori r2,r2,0 - ... - -00000000000029a8 : -{ - 29a8: f8 ff 4c e8 ld r2,-8(r12) - 29ac: 14 62 42 7c add r2,r2,r12 - 29b0: a6 02 08 7c mflr r0 - 29b4: 01 00 00 48 bl 29b4 - 29b8: 98 ff 61 fa std r19,-104(r1) - 29bc: 51 ff 21 f8 stdu r1,-176(r1) + 292c: 24 00 a1 80 lwz r5,36(r1) + 2930: 20 05 a6 7b clrldi r6,r29,52 + 2934: 78 f3 c4 7f mr r4,r30 + 2938: 78 bb e3 7e mr r3,r23 + 293c: 01 00 00 48 bl 293c + 2940: 00 00 00 60 nop + 2944: f0 fe ff 4b b 2834 + 2948: 60 00 81 eb ld r28,96(r1) + 294c: 60 ff ff 4b b 28ac + 2950: a6 02 08 7c mflr r0 + 2954: 30 00 c1 fa std r22,48(r1) + 2958: 38 00 e1 fa std r23,56(r1) + 295c: 40 00 01 fb std r24,64(r1) + 2960: 48 00 21 fb std r25,72(r1) + 2964: 90 00 01 f8 std r0,144(r1) + 2968: 50 00 41 fb std r26,80(r1) + 296c: 58 00 61 fb std r27,88(r1) + 2970: 60 00 81 fb std r28,96(r1) + 2974: 68 00 a1 fb std r29,104(r1) + 2978: 70 00 c1 fb std r30,112(r1) +} + 297c: 01 00 00 48 bl 297c + 2980: 00 00 00 60 nop + 2984: 00 00 00 60 nop + 2988: 00 00 00 60 nop + 298c: 00 00 42 60 ori r2,r2,0 + ... + +0000000000002998 : +{ + 2998: f8 ff 4c e8 ld r2,-8(r12) + 299c: 14 62 42 7c add r2,r2,r12 + 29a0: a6 02 08 7c mflr r0 + 29a4: 01 00 00 48 bl 29a4 + 29a8: 98 ff 61 fa std r19,-104(r1) + 29ac: 51 ff 21 f8 stdu r1,-176(r1) if (!memslot) - 29c0: 79 23 93 7c mr. r19,r4 + 29b0: 79 23 93 7c mr. r19,r4 { - 29c4: 78 0c 2d e9 ld r9,3192(r13) - 29c8: 28 00 21 f9 std r9,40(r1) - 29cc: 00 00 20 39 li r9,0 + 29b4: 78 0c 2d e9 ld r9,3192(r13) + 29b8: 28 00 21 f9 std r9,40(r1) + 29bc: 00 00 20 39 li r9,0 if (!memslot) - 29d0: 34 02 82 41 beq 2c04 + 29c0: 34 02 82 41 beq 2bf4 gfn = (gpa >> PAGE_SHIFT) - memslot->base_gfn; - 29d4: 50 00 81 fa std r20,80(r1) - 29d8: 68 00 e1 fa std r23,104(r1) - 29dc: 02 84 a5 78 rldicl r5,r5,48,16 + 29c4: 50 00 81 fa std r20,80(r1) + 29c8: 68 00 e1 fa std r23,104(r1) + 29cc: 02 84 a5 78 rldicl r5,r5,48,16 end_gfn = gfn + (nbytes >> PAGE_SHIFT); - 29e0: 02 84 f4 78 rldicl r20,r7,48,16 + 29d0: 02 84 f4 78 rldicl r20,r7,48,16 addr_mask = PTE_RPN_MASK & ~(nbytes - 1); - 29e4: d0 00 e7 7c neg r7,r7 - 29e8: 78 00 21 fb std r25,120(r1) + 29d4: d0 00 e7 7c neg r7,r7 + 29d8: 78 00 21 fb std r25,120(r1) gfn = (gpa >> PAGE_SHIFT) - memslot->base_gfn; - 29ec: b0 00 33 eb ld r25,176(r19) + 29dc: b0 00 33 eb ld r25,176(r19) addr_mask = PTE_RPN_MASK & ~(nbytes - 1); - 29f0: 24 59 f7 78 rldicr r23,r7,11,36 - 29f4: c2 aa f7 7a rldicl r23,r23,53,11 + 29e0: 24 59 f7 78 rldicr r23,r7,11,36 + 29e4: c2 aa f7 7a rldicl r23,r23,53,11 gfn = (gpa >> PAGE_SHIFT) - memslot->base_gfn; - 29f8: 50 28 39 7f subf r25,r25,r5 + 29e8: 50 28 39 7f subf r25,r25,r5 end_gfn = gfn + (nbytes >> PAGE_SHIFT); - 29fc: 14 ca 94 7e add r20,r20,r25 + 29ec: 14 ca 94 7e add r20,r20,r25 for (; gfn < end_gfn; gfn++) { - 2a00: 40 a0 39 7c cmpld r25,r20 - 2a04: 20 02 80 40 bge 2c24 - 2a08: a6 02 08 7c mflr r0 - 2a0c: 40 00 41 fa std r18,64(r1) - 2a10: 58 00 a1 fa std r21,88(r1) - 2a14: 78 1b 72 7c mr r18,r3 - 2a18: 00 00 a0 3a li r21,0 - 2a1c: 60 00 c1 fa std r22,96(r1) - 2a20: 70 00 01 fb std r24,112(r1) - 2a24: 78 33 d6 7c mr r22,r6 + 29f0: 40 a0 39 7c cmpld r25,r20 + 29f4: 20 02 80 40 bge 2c14 + 29f8: a6 02 08 7c mflr r0 + 29fc: 40 00 41 fa std r18,64(r1) + 2a00: 58 00 a1 fa std r21,88(r1) + 2a04: 78 1b 72 7c mr r18,r3 + 2a08: 00 00 a0 3a li r21,0 + 2a0c: 60 00 c1 fa std r22,96(r1) + 2a10: 70 00 01 fb std r24,112(r1) + 2a14: 78 33 d6 7c mr r22,r6 unsigned int shift, lpid; - 2a28: 00 00 00 3b li r24,0 - 2a2c: 80 00 41 fb std r26,128(r1) + 2a18: 00 00 00 3b li r24,0 + 2a1c: 80 00 41 fb std r26,128(r1) return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2a30: 60 0c 43 3b addi r26,r3,3168 - 2a34: c0 00 01 f8 std r0,192(r1) - 2a38: 38 00 21 fa std r17,56(r1) - 2a3c: 88 00 61 fb std r27,136(r1) - 2a40: 90 00 81 fb std r28,144(r1) - 2a44: 98 00 a1 fb std r29,152(r1) - 2a48: a0 00 c1 fb std r30,160(r1) - 2a4c: a8 00 e1 fb std r31,168(r1) + 2a20: 60 0c 43 3b addi r26,r3,3168 + 2a24: c0 00 01 f8 std r0,192(r1) + 2a28: 38 00 21 fa std r17,56(r1) + 2a2c: 88 00 61 fb std r27,136(r1) + 2a30: 90 00 81 fb std r28,144(r1) + 2a34: 98 00 a1 fb std r29,152(r1) + 2a38: a0 00 c1 fb std r30,160(r1) + 2a3c: a8 00 e1 fb std r31,168(r1) unsigned long *rmap = &memslot->arch.rmap[gfn]; - 2a50: c8 00 33 e9 ld r9,200(r19) - 2a54: 24 1f 2a 7b rldicr r10,r25,3,60 - 2a58: 14 52 29 7d add r9,r9,r10 + 2a40: c8 00 33 e9 ld r9,200(r19) + 2a44: 24 1f 2a 7b rldicr r10,r25,3,60 + 2a48: 14 52 29 7d add r9,r9,r10 return xchg(&head->first, NULL); + 2a4c: ac 04 00 7c hwsync + 2a50: a8 48 e0 7f ldarx r31,0,r9 + 2a54: ad 49 a0 7e stdcx. r21,0,r9 + 2a58: f8 ff c2 40 bne- 2a50 2a5c: ac 04 00 7c hwsync - 2a60: a8 48 e0 7f ldarx r31,0,r9 - 2a64: ad 49 a0 7e stdcx. r21,0,r9 - 2a68: f8 ff c2 40 bne- 2a60 - 2a6c: ac 04 00 7c hwsync for_each_nest_rmap_safe(cursor, entry, &rmap) { - 2a70: 00 00 3f 2c cmpdi r31,0 - 2a74: 58 00 82 40 bne 2acc - 2a78: 40 01 00 48 b 2bb8 - 2a7c: 00 00 42 60 ori r2,r2,0 - 2a80: 08 00 df eb ld r30,8(r31) - 2a84: 00 00 3e 2c cmpdi r30,0 - 2a88: 30 01 82 41 beq 2bb8 + 2a60: 00 00 3f 2c cmpdi r31,0 + 2a64: 58 00 82 40 bne 2abc + 2a68: 40 01 00 48 b 2ba8 + 2a6c: 00 00 42 60 ori r2,r2,0 + 2a70: 08 00 df eb ld r30,8(r31) + 2a74: 00 00 3e 2c cmpdi r30,0 + 2a78: 30 01 82 41 beq 2ba8 lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; - 2a8c: 20 65 dc 7b rldicl r28,r30,12,52 + 2a7c: 20 65 dc 7b rldicl r28,r30,12,52 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2a90: 78 d3 43 7f mr r3,r26 + 2a80: 78 d3 43 7f mr r3,r26 for_each_nest_rmap_safe(cursor, entry, &rmap) { - 2a94: 00 00 3f ea ld r17,0(r31) + 2a84: 00 00 3f ea ld r17,0(r31) unsigned int shift, lpid; - 2a98: 24 00 21 91 stw r9,36(r1) - 2a9c: 78 fb fb 7f mr r27,r31 + 2a88: 24 00 21 91 stw r9,36(r1) + 2a8c: 78 fb fb 7f mr r27,r31 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2aa0: 78 e3 84 7f mr r4,r28 - 2aa4: 01 00 00 48 bl 2aa4 - 2aa8: 00 00 00 60 nop + 2a90: 78 e3 84 7f mr r4,r28 + 2a94: 01 00 00 48 bl 2a94 + 2a98: 00 00 00 60 nop for_each_nest_rmap_safe(cursor, entry, &rmap) { - 2aac: 78 8b 3f 7e mr r31,r17 + 2a9c: 78 8b 3f 7e mr r31,r17 if (!gp) - 2ab0: 79 1b 7d 7c mr. r29,r3 - 2ab4: 4c 00 82 40 bne 2b00 + 2aa0: 79 1b 7d 7c mr. r29,r3 + 2aa4: 4c 00 82 40 bne 2af0 kfree(cursor); - 2ab8: 78 db 63 7f mr r3,r27 - 2abc: 01 00 00 48 bl 2abc - 2ac0: 00 00 00 60 nop + 2aa8: 78 db 63 7f mr r3,r27 + 2aac: 01 00 00 48 bl 2aac + 2ab0: 00 00 00 60 nop for_each_nest_rmap_safe(cursor, entry, &rmap) { - 2ac4: 00 00 3f 2c cmpdi r31,0 - 2ac8: f0 00 82 41 beq 2bb8 - 2acc: 01 00 e9 73 andi. r9,r31,1 - 2ad0: 78 fb fe 7f mr r30,r31 - 2ad4: ac ff 82 41 beq 2a80 + 2ab4: 00 00 3f 2c cmpdi r31,0 + 2ab8: f0 00 82 41 beq 2ba8 + 2abc: 01 00 e9 73 andi. r9,r31,1 + 2ac0: 78 fb fe 7f mr r30,r31 + 2ac4: ac ff 82 41 beq 2a70 lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; - 2ad8: 20 65 fc 7b rldicl r28,r31,12,52 + 2ac8: 20 65 fc 7b rldicl r28,r31,12,52 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2adc: 78 d3 43 7f mr r3,r26 + 2acc: 78 d3 43 7f mr r3,r26 unsigned int shift, lpid; - 2ae0: 24 00 01 93 stw r24,36(r1) + 2ad0: 24 00 01 93 stw r24,36(r1) return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2ae4: 78 e3 84 7f mr r4,r28 - 2ae8: 01 00 00 48 bl 2ae8 - 2aec: 00 00 00 60 nop + 2ad4: 78 e3 84 7f mr r4,r28 + 2ad8: 01 00 00 48 bl 2ad8 + 2adc: 00 00 00 60 nop if (!gp) - 2af0: 79 1b 7d 7c mr. r29,r3 - 2af4: bc 00 82 41 beq 2bb0 + 2ae0: 79 1b 7d 7c mr. r29,r3 + 2ae4: bc 00 82 41 beq 2ba0 for_each_nest_rmap_safe(cursor, entry, &rmap) { - 2af8: 00 00 e0 3b li r31,0 - 2afc: 00 00 60 3b li r27,0 + 2ae8: 00 00 e0 3b li r31,0 + 2aec: 00 00 60 3b li r27,0 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2b00: 78 e3 84 7f mr r4,r28 - 2b04: 78 d3 43 7f mr r3,r26 - 2b08: 01 00 00 48 bl 2b08 - 2b0c: 00 00 00 60 nop + 2af0: 78 e3 84 7f mr r4,r28 + 2af4: 78 d3 43 7f mr r3,r26 + 2af8: 01 00 00 48 bl 2af8 + 2afc: 00 00 00 60 nop if (!gp) - 2b10: 00 00 23 2c cmpdi r3,0 - 2b14: a4 ff 82 41 beq 2ab8 + 2b00: 00 00 23 2c cmpdi r3,0 + 2b04: a4 ff 82 41 beq 2aa8 gpa = n_rmap & RMAP_NESTED_GPA_MASK; - 2b18: e4 61 de 7b rldicr r30,r30,12,39 + 2b08: e4 61 de 7b rldicr r30,r30,12,39 pte = __find_linux_pte(gp->shadow_pgtable, ea, NULL, hshift); - 2b1c: 10 00 63 e8 ld r3,16(r3) - 2b20: 24 00 c1 38 addi r6,r1,36 - 2b24: 00 00 a0 38 li r5,0 + 2b0c: 10 00 63 e8 ld r3,16(r3) + 2b10: 24 00 c1 38 addi r6,r1,36 + 2b14: 00 00 a0 38 li r5,0 gpa = n_rmap & RMAP_NESTED_GPA_MASK; - 2b28: 02 a3 de 7b rldicl r30,r30,52,12 + 2b18: 02 a3 de 7b rldicl r30,r30,52,12 pte = __find_linux_pte(gp->shadow_pgtable, ea, NULL, hshift); - 2b2c: 78 f3 c4 7f mr r4,r30 - 2b30: 01 00 00 48 bl 2b30 - 2b34: 00 00 00 60 nop + 2b1c: 78 f3 c4 7f mr r4,r30 + 2b20: 01 00 00 48 bl 2b20 + 2b24: 00 00 00 60 nop if (ptep && pte_present(*ptep) && ((pte_val(*ptep) & mask) == hpa)) - 2b38: 79 1b 64 7c mr. r4,r3 - 2b3c: 7c ff 82 41 beq 2ab8 - 2b40: 00 00 24 e9 ld r9,0(r4) + 2b28: 79 1b 64 7c mr. r4,r3 + 2b2c: 7c ff 82 41 beq 2aa8 + 2b30: 00 00 24 e9 ld r9,0(r4) return (pte_raw(pte) & cpu_to_be64(_PAGE_PRESENT | _PAGE_PTE)) == - 2b44: 32 06 2a 55 rlwinm r10,r9,0,24,25 + 2b34: 32 06 2a 55 rlwinm r10,r9,0,24,25 if (pte_hw_valid(pte)) - 2b48: c0 00 2a 2c cmpdi r10,192 - 2b4c: 10 00 82 41 beq 2b5c + 2b38: c0 00 2a 2c cmpdi r10,192 + 2b3c: 10 00 82 41 beq 2b4c return (pte_raw(pte) & cpu_to_be64(_PAGE_INVALID | _PAGE_PTE)) == - 2b50: 74 06 2a 55 rlwinm r10,r9,0,25,26 - 2b54: 60 00 2a 2c cmpdi r10,96 - 2b58: 60 ff 82 40 bne 2ab8 - 2b5c: 22 00 28 79 rldicl r8,r9,32,32 - 2b60: 3e c0 2a 55 rotlwi r10,r9,24 - 2b64: 3e c0 07 55 rotlwi r7,r8,24 - 2b68: 1e 42 2a 51 rlwimi r10,r9,8,8,15 - 2b6c: 1e 42 07 51 rlwimi r7,r8,8,8,15 - 2b70: 3e 46 2a 51 rlwimi r10,r9,8,24,31 - 2b74: 3e 46 07 51 rlwimi r7,r8,8,24,31 - 2b78: c6 07 4a 79 rldicr r10,r10,32,31 - 2b7c: 78 3b 4a 7d or r10,r10,r7 - 2b80: 78 52 c9 7e xor r9,r22,r10 - 2b84: 39 b8 29 7d and. r9,r9,r23 - 2b88: 30 ff 82 40 bne 2ab8 + 2b40: 74 06 2a 55 rlwinm r10,r9,0,25,26 + 2b44: 60 00 2a 2c cmpdi r10,96 + 2b48: 60 ff 82 40 bne 2aa8 + 2b4c: 22 00 28 79 rldicl r8,r9,32,32 + 2b50: 3e c0 2a 55 rotlwi r10,r9,24 + 2b54: 3e c0 07 55 rotlwi r7,r8,24 + 2b58: 1e 42 2a 51 rlwimi r10,r9,8,8,15 + 2b5c: 1e 42 07 51 rlwimi r7,r8,8,8,15 + 2b60: 3e 46 2a 51 rlwimi r10,r9,8,24,31 + 2b64: 3e 46 07 51 rlwimi r7,r8,8,24,31 + 2b68: c6 07 4a 79 rldicr r10,r10,32,31 + 2b6c: 78 3b 4a 7d or r10,r10,r7 + 2b70: 78 52 c9 7e xor r9,r22,r10 + 2b74: 39 b8 29 7d and. r9,r9,r23 + 2b78: 30 ff 82 40 bne 2aa8 kvmppc_unmap_pte(kvm, ptep, gpa, shift, NULL, gp->shadow_lpid); - 2b8c: 0c 00 1d 81 lwz r8,12(r29) - 2b90: 24 00 c1 80 lwz r6,36(r1) - 2b94: 78 f3 c5 7f mr r5,r30 - 2b98: 00 00 e0 38 li r7,0 - 2b9c: 78 93 43 7e mr r3,r18 - 2ba0: 01 00 00 48 bl 2ba0 - 2ba4: 00 00 00 60 nop - 2ba8: 10 ff ff 4b b 2ab8 - 2bac: 00 00 42 60 ori r2,r2,0 + 2b7c: 0c 00 1d 81 lwz r8,12(r29) + 2b80: 24 00 c1 80 lwz r6,36(r1) + 2b84: 78 f3 c5 7f mr r5,r30 + 2b88: 00 00 e0 38 li r7,0 + 2b8c: 78 93 43 7e mr r3,r18 + 2b90: 01 00 00 48 bl 2b90 + 2b94: 00 00 00 60 nop + 2b98: 10 ff ff 4b b 2aa8 + 2b9c: 00 00 42 60 ori r2,r2,0 kfree(cursor); - 2bb0: 01 00 00 48 bl 2bb0 - 2bb4: 00 00 00 60 nop + 2ba0: 01 00 00 48 bl 2ba0 + 2ba4: 00 00 00 60 nop for (; gfn < end_gfn; gfn++) { - 2bb8: 01 00 39 3b addi r25,r25,1 - 2bbc: 40 c8 34 7c cmpld r20,r25 - 2bc0: 90 fe 82 40 bne 2a50 - 2bc4: c0 00 01 e8 ld r0,192(r1) - 2bc8: 38 00 21 ea ld r17,56(r1) - 2bcc: 40 00 41 ea ld r18,64(r1) - 2bd0: 50 00 81 ea ld r20,80(r1) - 2bd4: 58 00 a1 ea ld r21,88(r1) - 2bd8: 60 00 c1 ea ld r22,96(r1) - 2bdc: 68 00 e1 ea ld r23,104(r1) - 2be0: 70 00 01 eb ld r24,112(r1) - 2be4: 78 00 21 eb ld r25,120(r1) - 2be8: 80 00 41 eb ld r26,128(r1) - 2bec: a6 03 08 7c mtlr r0 - 2bf0: 88 00 61 eb ld r27,136(r1) - 2bf4: 90 00 81 eb ld r28,144(r1) - 2bf8: 98 00 a1 eb ld r29,152(r1) - 2bfc: a0 00 c1 eb ld r30,160(r1) - 2c00: a8 00 e1 eb ld r31,168(r1) -} - 2c04: 28 00 41 e9 ld r10,40(r1) - 2c08: 78 0c 2d e9 ld r9,3192(r13) - 2c0c: 79 4a 4a 7d xor. r10,r10,r9 - 2c10: 00 00 20 39 li r9,0 - 2c14: 20 00 82 40 bne 2c34 - 2c18: b0 00 21 38 addi r1,r1,176 - 2c1c: 98 ff 61 ea ld r19,-104(r1) - 2c20: 20 00 80 4e blr - 2c24: 50 00 81 ea ld r20,80(r1) - 2c28: 68 00 e1 ea ld r23,104(r1) - 2c2c: 78 00 21 eb ld r25,120(r1) - 2c30: d4 ff ff 4b b 2c04 - 2c34: a6 02 08 7c mflr r0 - 2c38: 38 00 21 fa std r17,56(r1) - 2c3c: 40 00 41 fa std r18,64(r1) - 2c40: 50 00 81 fa std r20,80(r1) - 2c44: 58 00 a1 fa std r21,88(r1) - 2c48: c0 00 01 f8 std r0,192(r1) - 2c4c: 60 00 c1 fa std r22,96(r1) - 2c50: 68 00 e1 fa std r23,104(r1) - 2c54: 70 00 01 fb std r24,112(r1) - 2c58: 78 00 21 fb std r25,120(r1) - 2c5c: 80 00 41 fb std r26,128(r1) - 2c60: 88 00 61 fb std r27,136(r1) - 2c64: 90 00 81 fb std r28,144(r1) - 2c68: 98 00 a1 fb std r29,152(r1) - 2c6c: a0 00 c1 fb std r30,160(r1) - 2c70: a8 00 e1 fb std r31,168(r1) - 2c74: 01 00 00 48 bl 2c74 - 2c78: 00 00 00 60 nop - 2c7c: 00 00 42 60 ori r2,r2,0 + 2ba8: 01 00 39 3b addi r25,r25,1 + 2bac: 40 c8 34 7c cmpld r20,r25 + 2bb0: 90 fe 82 40 bne 2a40 + 2bb4: c0 00 01 e8 ld r0,192(r1) + 2bb8: 38 00 21 ea ld r17,56(r1) + 2bbc: 40 00 41 ea ld r18,64(r1) + 2bc0: 50 00 81 ea ld r20,80(r1) + 2bc4: 58 00 a1 ea ld r21,88(r1) + 2bc8: 60 00 c1 ea ld r22,96(r1) + 2bcc: 68 00 e1 ea ld r23,104(r1) + 2bd0: 70 00 01 eb ld r24,112(r1) + 2bd4: 78 00 21 eb ld r25,120(r1) + 2bd8: 80 00 41 eb ld r26,128(r1) + 2bdc: a6 03 08 7c mtlr r0 + 2be0: 88 00 61 eb ld r27,136(r1) + 2be4: 90 00 81 eb ld r28,144(r1) + 2be8: 98 00 a1 eb ld r29,152(r1) + 2bec: a0 00 c1 eb ld r30,160(r1) + 2bf0: a8 00 e1 eb ld r31,168(r1) +} + 2bf4: 28 00 41 e9 ld r10,40(r1) + 2bf8: 78 0c 2d e9 ld r9,3192(r13) + 2bfc: 79 4a 4a 7d xor. r10,r10,r9 + 2c00: 00 00 20 39 li r9,0 + 2c04: 20 00 82 40 bne 2c24 + 2c08: b0 00 21 38 addi r1,r1,176 + 2c0c: 98 ff 61 ea ld r19,-104(r1) + 2c10: 20 00 80 4e blr + 2c14: 50 00 81 ea ld r20,80(r1) + 2c18: 68 00 e1 ea ld r23,104(r1) + 2c1c: 78 00 21 eb ld r25,120(r1) + 2c20: d4 ff ff 4b b 2bf4 + 2c24: a6 02 08 7c mflr r0 + 2c28: 38 00 21 fa std r17,56(r1) + 2c2c: 40 00 41 fa std r18,64(r1) + 2c30: 50 00 81 fa std r20,80(r1) + 2c34: 58 00 a1 fa std r21,88(r1) + 2c38: c0 00 01 f8 std r0,192(r1) + 2c3c: 60 00 c1 fa std r22,96(r1) + 2c40: 68 00 e1 fa std r23,104(r1) + 2c44: 70 00 01 fb std r24,112(r1) + 2c48: 78 00 21 fb std r25,120(r1) + 2c4c: 80 00 41 fb std r26,128(r1) + 2c50: 88 00 61 fb std r27,136(r1) + 2c54: 90 00 81 fb std r28,144(r1) + 2c58: 98 00 a1 fb std r29,152(r1) + 2c5c: a0 00 c1 fb std r30,160(r1) + 2c60: a8 00 e1 fb std r31,168(r1) + 2c64: 01 00 00 48 bl 2c64 + 2c68: 00 00 00 60 nop + 2c6c: 00 00 42 60 ori r2,r2,0 ... -0000000000002c88 : +0000000000002c78 : * This handles the H_TLB_INVALIDATE hcall. * Parameters are (r4) tlbie instruction code, (r5) rS contents, * (r6) rB contents. */ long kvmhv_do_nested_tlbie(struct kvm_vcpu *vcpu) { - 2c88: f8 ff 4c e8 ld r2,-8(r12) - 2c8c: 14 62 42 7c add r2,r2,r12 - 2c90: a6 02 08 7c mflr r0 - 2c94: 01 00 00 48 bl 2c94 - 2c98: e8 ff a1 fb std r29,-24(r1) - 2c9c: a1 ff 21 f8 stdu r1,-96(r1) - 2ca0: 78 0c 2d e9 ld r9,3192(r13) - 2ca4: 28 00 21 f9 std r9,40(r1) - 2ca8: 00 00 20 39 li r9,0 + 2c78: f8 ff 4c e8 ld r2,-8(r12) + 2c7c: 14 62 42 7c add r2,r2,r12 + 2c80: a6 02 08 7c mflr r0 + 2c84: 01 00 00 48 bl 2c84 + 2c88: e8 ff a1 fb std r29,-24(r1) + 2c8c: a1 ff 21 f8 stdu r1,-96(r1) + 2c90: 78 0c 2d e9 ld r9,3192(r13) + 2c94: 28 00 21 f9 std r9,40(r1) + 2c98: 00 00 20 39 li r9,0 int ret; ret = kvmhv_emulate_priv_tlbie(vcpu, kvmppc_get_gpr(vcpu, 4), - 2cac: 20 0e 23 e9 ld r9,3616(r3) - 2cb0: 30 0e a3 e8 ld r5,3632(r3) + 2c9c: 20 0e 23 e9 ld r9,3616(r3) + 2ca0: 30 0e a3 e8 ld r5,3632(r3) struct kvm *kvm = vcpu->kvm; - 2cb4: 00 00 a3 eb ld r29,0(r3) + 2ca4: 00 00 a3 eb ld r29,0(r3) return r_val & 0xffffffff; - 2cb8: 28 0e 83 e8 ld r4,3624(r3) + 2ca8: 28 0e 83 e8 ld r4,3624(r3) if ((!r) || (prs) || (ric == 3) || (is == 1) || - 2cbc: 01 00 2a 75 andis. r10,r9,1 - 2cc0: d4 01 82 41 beq 2e94 - 2cc4: 50 00 c1 fb std r30,80(r1) - 2cc8: be 77 3e 55 rlwinm r30,r9,14,30,31 - 2ccc: fe 7f 29 55 rlwinm r9,r9,15,31,31 - 2cd0: 00 00 09 2c cmpwi r9,0 - 2cd4: bc 01 82 40 bne 2e90 - 2cd8: 03 00 1e 28 cmplwi r30,3 - 2cdc: b4 01 82 41 beq 2e90 - 2ce0: be b7 aa 54 rlwinm r10,r5,22,30,31 - 2ce4: 01 00 0a 2c cmpwi r10,1 - 2ce8: a8 01 82 41 beq 2e90 - 2cec: 00 00 0a 2c cmpwi r10,0 - 2cf0: 60 00 82 40 bne 2d50 + 2cac: 01 00 2a 75 andis. r10,r9,1 + 2cb0: d4 01 82 41 beq 2e84 + 2cb4: 50 00 c1 fb std r30,80(r1) + 2cb8: be 77 3e 55 rlwinm r30,r9,14,30,31 + 2cbc: fe 7f 29 55 rlwinm r9,r9,15,31,31 + 2cc0: 00 00 09 2c cmpwi r9,0 + 2cc4: bc 01 82 40 bne 2e80 + 2cc8: 03 00 1e 28 cmplwi r30,3 + 2ccc: b4 01 82 41 beq 2e80 + 2cd0: be b7 aa 54 rlwinm r10,r5,22,30,31 + 2cd4: 01 00 0a 2c cmpwi r10,1 + 2cd8: a8 01 82 41 beq 2e80 + 2cdc: 00 00 0a 2c cmpwi r10,0 + 2ce0: 60 00 82 40 bne 2d40 ((!is) && (ric == 1 || ric == 2))) - 2cf4: ff ff de 3b addi r30,r30,-1 - 2cf8: 01 00 1e 28 cmplwi r30,1 - 2cfc: 94 01 81 40 ble 2e90 + 2ce4: ff ff de 3b addi r30,r30,-1 + 2ce8: 01 00 1e 28 cmplwi r30,1 + 2cec: 94 01 81 40 ble 2e80 ret = kvmhv_emulate_tlbie_tlb_addr(vcpu, lpid, ap, epn); - 2d00: a6 02 08 7c mflr r0 - 2d04: 02 a3 a6 78 rldicl r6,r5,52,12 - 2d08: b4 07 84 7c extsw r4,r4 - 2d0c: 62 df a5 78 rldicl r5,r5,59,61 - 2d10: 70 00 01 f8 std r0,112(r1) - 2d14: 01 00 00 48 bl 2d14 + 2cf0: a6 02 08 7c mflr r0 + 2cf4: 02 a3 a6 78 rldicl r6,r5,52,12 + 2cf8: b4 07 84 7c extsw r4,r4 + 2cfc: 62 df a5 78 rldicl r5,r5,59,61 + 2d00: 70 00 01 f8 std r0,112(r1) + 2d04: 01 00 00 48 bl 2d04 kvmppc_get_gpr(vcpu, 5), kvmppc_get_gpr(vcpu, 6)); if (ret) - 2d18: 00 00 03 2c cmpwi r3,0 - 2d1c: b0 01 82 40 bne 2ecc - 2d20: 70 00 01 e8 ld r0,112(r1) - 2d24: 50 00 c1 eb ld r30,80(r1) + 2d08: 00 00 03 2c cmpwi r3,0 + 2d0c: b0 01 82 40 bne 2ebc + 2d10: 70 00 01 e8 ld r0,112(r1) + 2d14: 50 00 c1 eb ld r30,80(r1) return H_PARAMETER; return H_SUCCESS; - 2d28: 00 00 60 38 li r3,0 - 2d2c: a6 03 08 7c mtlr r0 + 2d18: 00 00 60 38 li r3,0 + 2d1c: a6 03 08 7c mtlr r0 } - 2d30: 28 00 41 e9 ld r10,40(r1) - 2d34: 78 0c 2d e9 ld r9,3192(r13) - 2d38: 79 4a 4a 7d xor. r10,r10,r9 - 2d3c: 00 00 20 39 li r9,0 - 2d40: 6c 01 82 40 bne 2eac - 2d44: 60 00 21 38 addi r1,r1,96 - 2d48: e8 ff a1 eb ld r29,-24(r1) - 2d4c: 20 00 80 4e blr + 2d20: 28 00 41 e9 ld r10,40(r1) + 2d24: 78 0c 2d e9 ld r9,3192(r13) + 2d28: 79 4a 4a 7d xor. r10,r10,r9 + 2d2c: 00 00 20 39 li r9,0 + 2d30: 6c 01 82 40 bne 2e9c + 2d34: 60 00 21 38 addi r1,r1,96 + 2d38: e8 ff a1 eb ld r29,-24(r1) + 2d3c: 20 00 80 4e blr switch (is) { - 2d50: 02 00 0a 2c cmpwi r10,2 - 2d54: a6 02 08 7c mflr r0 - 2d58: 58 00 e1 fb std r31,88(r1) - 2d5c: 78 1b 7f 7c mr r31,r3 - 2d60: 70 00 01 f8 std r0,112(r1) - 2d64: cc 00 82 41 beq 2e30 - 2d68: 78 eb a3 7f mr r3,r29 - 2d6c: 38 00 61 fb std r27,56(r1) - 2d70: 40 00 81 fb std r28,64(r1) + 2d40: 02 00 0a 2c cmpwi r10,2 + 2d44: a6 02 08 7c mflr r0 + 2d48: 58 00 e1 fb std r31,88(r1) + 2d4c: 78 1b 7f 7c mr r31,r3 + 2d50: 70 00 01 f8 std r0,112(r1) + 2d54: cc 00 82 41 beq 2e20 + 2d58: 78 eb a3 7f mr r3,r29 + 2d5c: 38 00 61 fb std r27,56(r1) + 2d60: 40 00 81 fb std r28,64(r1) kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); - 2d74: b4 07 de 7f extsw r30,r30 + 2d64: b4 07 de 7f extsw r30,r30 idr_for_each_entry(&kvm->arch.kvm_nested_guest_idr, gp, lpid) { - 2d78: 60 0c 9d 3b addi r28,r29,3168 - 2d7c: 00 00 60 3b li r27,0 + 2d68: 60 0c 9d 3b addi r28,r29,3168 + 2d6c: 00 00 60 3b li r27,0 int lpid; - 2d80: 24 00 21 91 stw r9,36(r1) - 2d84: 01 00 00 48 bl 2d84 - 2d88: 00 00 00 60 nop + 2d70: 24 00 21 91 stw r9,36(r1) + 2d74: 01 00 00 48 bl 2d74 + 2d78: 00 00 00 60 nop idr_for_each_entry(&kvm->arch.kvm_nested_guest_idr, gp, lpid) { - 2d8c: 00 00 20 39 li r9,0 - 2d90: 4c 00 00 48 b 2ddc - 2d94: 00 00 00 60 nop - 2d98: 00 00 00 60 nop - 2d9c: 00 00 42 60 ori r2,r2,0 + 2d7c: 00 00 20 39 li r9,0 + 2d80: 4c 00 00 48 b 2dcc + 2d84: 00 00 00 60 nop + 2d88: 00 00 00 60 nop + 2d8c: 00 00 42 60 ori r2,r2,0 if (unlikely(ms->mmiowb_pending)) { - 2da0: 00 00 0a 2c cmpwi r10,0 - 2da4: dc 00 82 40 bne 2e80 + 2d90: 00 00 0a 2c cmpwi r10,0 + 2d94: dc 00 82 40 bne 2e70 ms->nesting_count--; - 2da8: 80 0c 49 a1 lhz r10,3200(r9) - 2dac: ff ff 4a 39 addi r10,r10,-1 - 2db0: 80 0c 49 b1 sth r10,3200(r9) - 2db4: ac 04 20 7c lwsync - 2db8: 00 00 7d b3 sth r27,0(r29) + 2d98: 80 0c 49 a1 lhz r10,3200(r9) + 2d9c: ff ff 4a 39 addi r10,r10,-1 + 2da0: 80 0c 49 b1 sth r10,3200(r9) + 2da4: ac 04 20 7c lwsync + 2da8: 00 00 7d b3 sth r27,0(r29) kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); - 2dbc: 00 00 7f e8 ld r3,0(r31) - 2dc0: 78 f3 c5 7f mr r5,r30 - 2dc4: 01 00 00 48 bl 2dc4 - 2dc8: 78 eb a3 7f mr r3,r29 - 2dcc: 01 00 00 48 bl 2dcc - 2dd0: 00 00 00 60 nop + 2dac: 00 00 7f e8 ld r3,0(r31) + 2db0: 78 f3 c5 7f mr r5,r30 + 2db4: 01 00 00 48 bl 2db4 + 2db8: 78 eb a3 7f mr r3,r29 + 2dbc: 01 00 00 48 bl 2dbc + 2dc0: 00 00 00 60 nop idr_for_each_entry(&kvm->arch.kvm_nested_guest_idr, gp, lpid) { - 2dd4: 24 00 21 81 lwz r9,36(r1) - 2dd8: 01 00 29 39 addi r9,r9,1 - 2ddc: 24 00 81 38 addi r4,r1,36 - 2de0: 78 e3 83 7f mr r3,r28 - 2de4: 24 00 21 91 stw r9,36(r1) - 2de8: 01 00 00 48 bl 2de8 - 2dec: 00 00 00 60 nop - 2df0: 79 1b 64 7c mr. r4,r3 + 2dc4: 24 00 21 81 lwz r9,36(r1) + 2dc8: 01 00 29 39 addi r9,r9,1 + 2dcc: 24 00 81 38 addi r4,r1,36 + 2dd0: 78 e3 83 7f mr r3,r28 + 2dd4: 24 00 21 91 stw r9,36(r1) + 2dd8: 01 00 00 48 bl 2dd8 + 2ddc: 00 00 00 60 nop + 2de0: 79 1b 64 7c mr. r4,r3 if (unlikely(ms->mmiowb_pending)) { - 2df4: 82 0c 4d a1 lhz r10,3202(r13) + 2de4: 82 0c 4d a1 lhz r10,3202(r13) struct mmiowb_state *ms = __mmiowb_state(); - 2df8: 78 6b a9 7d mr r9,r13 - 2dfc: a4 ff 82 40 bne 2da0 + 2de8: 78 6b a9 7d mr r9,r13 + 2dec: a4 ff 82 40 bne 2d90 if (unlikely(ms->mmiowb_pending)) { - 2e00: 00 00 0a 2c cmpwi r10,0 - 2e04: 9c 00 82 40 bne 2ea0 + 2df0: 00 00 0a 2c cmpwi r10,0 + 2df4: 9c 00 82 40 bne 2e90 ms->nesting_count--; - 2e08: 80 0c 49 a1 lhz r10,3200(r9) - 2e0c: ff ff 4a 39 addi r10,r10,-1 - 2e10: 80 0c 49 b1 sth r10,3200(r9) - 2e14: ac 04 20 7c lwsync - 2e18: 00 00 20 39 li r9,0 - 2e1c: 00 00 3d b1 sth r9,0(r29) + 2df8: 80 0c 49 a1 lhz r10,3200(r9) + 2dfc: ff ff 4a 39 addi r10,r10,-1 + 2e00: 80 0c 49 b1 sth r10,3200(r9) + 2e04: ac 04 20 7c lwsync + 2e08: 00 00 20 39 li r9,0 + 2e0c: 00 00 3d b1 sth r9,0(r29) if (ret) - 2e20: 38 00 61 eb ld r27,56(r1) - 2e24: 40 00 81 eb ld r28,64(r1) - 2e28: 58 00 e1 eb ld r31,88(r1) - 2e2c: f4 fe ff 4b b 2d20 + 2e10: 38 00 61 eb ld r27,56(r1) + 2e14: 40 00 81 eb ld r28,64(r1) + 2e18: 58 00 e1 eb ld r31,88(r1) + 2e1c: f4 fe ff 4b b 2d10 gp = kvmhv_get_nested(kvm, lpid, false); - 2e30: 78 eb a3 7f mr r3,r29 - 2e34: b4 07 84 7c extsw r4,r4 - 2e38: 00 00 a0 38 li r5,0 - 2e3c: 01 00 00 48 bl 2e3c + 2e20: 78 eb a3 7f mr r3,r29 + 2e24: b4 07 84 7c extsw r4,r4 + 2e28: 00 00 a0 38 li r5,0 + 2e2c: 01 00 00 48 bl 2e2c if (gp) { - 2e40: 79 1b 7d 7c mr. r29,r3 - 2e44: 2c 00 82 41 beq 2e70 + 2e30: 79 1b 7d 7c mr. r29,r3 + 2e34: 2c 00 82 41 beq 2e60 kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); - 2e48: 00 00 7f e8 ld r3,0(r31) - 2e4c: b4 07 c5 7f extsw r5,r30 - 2e50: 78 eb a4 7f mr r4,r29 - 2e54: 01 00 00 48 bl 2e54 + 2e38: 00 00 7f e8 ld r3,0(r31) + 2e3c: b4 07 c5 7f extsw r5,r30 + 2e40: 78 eb a4 7f mr r4,r29 + 2e44: 01 00 00 48 bl 2e44 kvmhv_put_nested(gp); - 2e58: 78 eb a3 7f mr r3,r29 - 2e5c: 01 00 00 48 bl 2e5c + 2e48: 78 eb a3 7f mr r3,r29 + 2e4c: 01 00 00 48 bl 2e4c if (ret) + 2e50: 58 00 e1 eb ld r31,88(r1) + 2e54: bc fe ff 4b b 2d10 + 2e58: 00 00 00 60 nop + 2e5c: 00 00 42 60 ori r2,r2,0 2e60: 58 00 e1 eb ld r31,88(r1) - 2e64: bc fe ff 4b b 2d20 + 2e64: ac fe ff 4b b 2d10 2e68: 00 00 00 60 nop 2e6c: 00 00 42 60 ori r2,r2,0 - 2e70: 58 00 e1 eb ld r31,88(r1) - 2e74: ac fe ff 4b b 2d20 - 2e78: 00 00 00 60 nop - 2e7c: 00 00 42 60 ori r2,r2,0 ms->mmiowb_pending = 0; - 2e80: 00 00 40 39 li r10,0 - 2e84: 82 0c 49 b1 sth r10,3202(r9) + 2e70: 00 00 40 39 li r10,0 + 2e74: 82 0c 49 b1 sth r10,3202(r9) mmiowb(); - 2e88: ac 04 00 7c hwsync - 2e8c: 1c ff ff 4b b 2da8 - 2e90: 50 00 c1 eb ld r30,80(r1) + 2e78: ac 04 00 7c hwsync + 2e7c: 1c ff ff 4b b 2d98 + 2e80: 50 00 c1 eb ld r30,80(r1) return H_PARAMETER; - 2e94: fc ff 60 38 li r3,-4 - 2e98: 98 fe ff 4b b 2d30 - 2e9c: 00 00 42 60 ori r2,r2,0 + 2e84: fc ff 60 38 li r3,-4 + 2e88: 98 fe ff 4b b 2d20 + 2e8c: 00 00 42 60 ori r2,r2,0 ms->mmiowb_pending = 0; - 2ea0: 82 0c 8d b0 sth r4,3202(r13) + 2e90: 82 0c 8d b0 sth r4,3202(r13) mmiowb(); - 2ea4: ac 04 00 7c hwsync - 2ea8: 60 ff ff 4b b 2e08 - 2eac: a6 02 08 7c mflr r0 - 2eb0: 38 00 61 fb std r27,56(r1) - 2eb4: 40 00 81 fb std r28,64(r1) - 2eb8: 50 00 c1 fb std r30,80(r1) - 2ebc: 58 00 e1 fb std r31,88(r1) - 2ec0: 70 00 01 f8 std r0,112(r1) -} - 2ec4: 01 00 00 48 bl 2ec4 - 2ec8: 00 00 00 60 nop - 2ecc: 70 00 01 e8 ld r0,112(r1) - 2ed0: 50 00 c1 eb ld r30,80(r1) + 2e94: ac 04 00 7c hwsync + 2e98: 60 ff ff 4b b 2df8 + 2e9c: a6 02 08 7c mflr r0 + 2ea0: 38 00 61 fb std r27,56(r1) + 2ea4: 40 00 81 fb std r28,64(r1) + 2ea8: 50 00 c1 fb std r30,80(r1) + 2eac: 58 00 e1 fb std r31,88(r1) + 2eb0: 70 00 01 f8 std r0,112(r1) +} + 2eb4: 01 00 00 48 bl 2eb4 + 2eb8: 00 00 00 60 nop + 2ebc: 70 00 01 e8 ld r0,112(r1) + 2ec0: 50 00 c1 eb ld r30,80(r1) return H_PARAMETER; - 2ed4: fc ff 60 38 li r3,-4 - 2ed8: a6 03 08 7c mtlr r0 - 2edc: 54 fe ff 4b b 2d30 + 2ec4: fc ff 60 38 li r3,-4 + 2ec8: a6 03 08 7c mtlr r0 + 2ecc: 54 fe ff 4b b 2d20 ... -0000000000002ee8 : +0000000000002ed8 : * as part of H_RPT_INVALIDATE hcall. */ long do_h_rpt_invalidate_pat(struct kvm_vcpu *vcpu, unsigned long lpid, unsigned long type, unsigned long pg_sizes, unsigned long start, unsigned long end) { - 2ee8: f8 ff 4c e8 ld r2,-8(r12) - 2eec: 14 62 42 7c add r2,r2,r12 - 2ef0: a6 02 08 7c mflr r0 - 2ef4: 01 00 00 48 bl 2ef4 - 2ef8: a6 02 08 7c mflr r0 - 2efc: b8 ff e1 fa std r23,-72(r1) - 2f00: d0 ff 41 fb std r26,-48(r1) - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2f04: b4 07 97 7c extsw r23,r4 -{ - 2f08: 78 33 da 7c mr r26,r6 - 2f0c: d8 ff 61 fb std r27,-40(r1) - 2f10: e0 ff 81 fb std r28,-32(r1) - 2f14: 78 3b fb 7c mr r27,r7 - 2f18: 78 43 1c 7d mr r28,r8 - 2f1c: e8 ff a1 fb std r29,-24(r1) - 2f20: f0 ff c1 fb std r30,-16(r1) - 2f24: 78 1b 7d 7c mr r29,r3 + 2ed8: f8 ff 4c e8 ld r2,-8(r12) + 2edc: 14 62 42 7c add r2,r2,r12 + 2ee0: a6 02 08 7c mflr r0 + 2ee4: 01 00 00 48 bl 2ee4 + 2ee8: a6 02 08 7c mflr r0 + 2eec: b8 ff e1 fa std r23,-72(r1) + 2ef0: d0 ff 41 fb std r26,-48(r1) + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); + 2ef4: b4 07 97 7c extsw r23,r4 +{ + 2ef8: 78 33 da 7c mr r26,r6 + 2efc: d8 ff 61 fb std r27,-40(r1) + 2f00: e0 ff 81 fb std r28,-32(r1) + 2f04: 78 3b fb 7c mr r27,r7 + 2f08: 78 43 1c 7d mr r28,r8 + 2f0c: e8 ff a1 fb std r29,-24(r1) + 2f10: f0 ff c1 fb std r30,-16(r1) + 2f14: 78 1b 7d 7c mr r29,r3 * partition table entries for L2. This happens even before the * corresponding shadow lpid is created in HV which happens in * H_ENTER_NESTED call. Since we can't differentiate this case from * the invalid case, we ignore such flush requests and return success. */ if (!__find_nested(vcpu->kvm, lpid)) - 2f28: 78 23 9e 7c mr r30,r4 + 2f18: 78 23 9e 7c mr r30,r4 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2f2c: 78 bb e4 7e mr r4,r23 + 2f1c: 78 bb e4 7e mr r4,r23 { - 2f30: f8 ff e1 fb std r31,-8(r1) - 2f34: 10 00 01 f8 std r0,16(r1) - 2f38: 78 2b bf 7c mr r31,r5 - 2f3c: 71 ff 21 f8 stdu r1,-144(r1) - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2f40: 00 00 63 e8 ld r3,0(r3) - 2f44: 60 0c 63 38 addi r3,r3,3168 - 2f48: 01 00 00 48 bl 2f48 - 2f4c: 00 00 00 60 nop + 2f20: f8 ff e1 fb std r31,-8(r1) + 2f24: 10 00 01 f8 std r0,16(r1) + 2f28: 78 2b bf 7c mr r31,r5 + 2f2c: 71 ff 21 f8 stdu r1,-144(r1) + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); + 2f30: 00 00 63 e8 ld r3,0(r3) + 2f34: 60 0c 63 38 addi r3,r3,3168 + 2f38: 01 00 00 48 bl 2f38 + 2f3c: 00 00 00 60 nop if (!__find_nested(vcpu->kvm, lpid)) - 2f50: 00 00 23 2c cmpdi r3,0 - 2f54: 28 00 82 41 beq 2f7c + 2f40: 00 00 23 2c cmpdi r3,0 + 2f44: 28 00 82 41 beq 2f6c return H_SUCCESS; /* * A flush all request can be handled by a full lpid flush only. */ if ((type & H_RPTI_TYPE_NESTED_ALL) == H_RPTI_TYPE_NESTED_ALL) - 2f58: 3c 07 e9 57 rlwinm r9,r31,0,28,30 - 2f5c: 0e 00 29 2c cmpdi r9,14 - 2f60: 50 01 82 41 beq 30b0 + 2f48: 3c 07 e9 57 rlwinm r9,r31,0,28,30 + 2f4c: 0e 00 29 2c cmpdi r9,14 + 2f50: 50 01 82 41 beq 30a0 * if (ret) * return H_P4; * } */ if (start == 0 && end == -1) - 2f64: 00 00 3b 2c cmpdi r27,0 - 2f68: 0c 00 82 40 bne 2f74 - 2f6c: ff ff 3c 2c cmpdi r28,-1 - 2f70: 80 01 82 41 beq 30f0 + 2f54: 00 00 3b 2c cmpdi r27,0 + 2f58: 0c 00 82 40 bne 2f64 + 2f5c: ff ff 3c 2c cmpdi r28,-1 + 2f60: 80 01 82 41 beq 30e0 return do_tlb_invalidate_nested_all(vcpu, lpid, RIC_FLUSH_TLB); if (type & H_RPTI_TYPE_TLB) - 2f74: 02 00 ff 73 andi. r31,r31,2 - 2f78: 38 00 82 40 bne 2fb0 + 2f64: 02 00 ff 73 andi. r31,r31,2 + 2f68: 38 00 82 40 bne 2fa0 return do_tlb_invalidate_nested_tlb(vcpu, lpid, pg_sizes, start, end); return H_SUCCESS; } - 2f7c: 90 00 21 38 addi r1,r1,144 + 2f6c: 90 00 21 38 addi r1,r1,144 return do_tlb_invalidate_nested_all(vcpu, lpid, RIC_FLUSH_ALL); - 2f80: 00 00 60 38 li r3,0 + 2f70: 00 00 60 38 li r3,0 } - 2f84: 10 00 01 e8 ld r0,16(r1) - 2f88: b8 ff e1 ea ld r23,-72(r1) - 2f8c: d0 ff 41 eb ld r26,-48(r1) - 2f90: d8 ff 61 eb ld r27,-40(r1) - 2f94: e0 ff 81 eb ld r28,-32(r1) - 2f98: e8 ff a1 eb ld r29,-24(r1) - 2f9c: f0 ff c1 eb ld r30,-16(r1) - 2fa0: f8 ff e1 eb ld r31,-8(r1) - 2fa4: a6 03 08 7c mtlr r0 - 2fa8: 20 00 80 4e blr - 2fac: 00 00 42 60 ori r2,r2,0 - 2fb0: 00 00 22 3d addis r9,r2,0 - 2fb4: 50 00 01 fb std r24,80(r1) - 2fb8: 28 00 61 fa std r19,40(r1) - 2fbc: b4 07 de 7f extsw r30,r30 + 2f74: 10 00 01 e8 ld r0,16(r1) + 2f78: b8 ff e1 ea ld r23,-72(r1) + 2f7c: d0 ff 41 eb ld r26,-48(r1) + 2f80: d8 ff 61 eb ld r27,-40(r1) + 2f84: e0 ff 81 eb ld r28,-32(r1) + 2f88: e8 ff a1 eb ld r29,-24(r1) + 2f8c: f0 ff c1 eb ld r30,-16(r1) + 2f90: f8 ff e1 eb ld r31,-8(r1) + 2f94: a6 03 08 7c mtlr r0 + 2f98: 20 00 80 4e blr + 2f9c: 00 00 42 60 ori r2,r2,0 + 2fa0: 00 00 22 3d addis r9,r2,0 + 2fa4: 50 00 01 fb std r24,80(r1) + 2fa8: 28 00 61 fa std r19,40(r1) + 2fac: b4 07 de 7f extsw r30,r30 int ret = H_P4; - 2fc0: c7 ff 60 38 li r3,-57 + 2fb0: c7 ff 60 38 li r3,-57 page_size = 1UL << def->shift; - 2fc4: 01 00 60 3a li r19,1 - 2fc8: 30 00 81 fa std r20,48(r1) - 2fcc: 38 00 a1 fa std r21,56(r1) + 2fb4: 01 00 60 3a li r19,1 + 2fb8: 30 00 81 fa std r20,48(r1) + 2fbc: 38 00 a1 fa std r21,56(r1) nr_pages = (end - start) >> def->shift; - 2fd0: 50 e0 9b 7e subf r20,r27,r28 - 2fd4: 00 00 09 eb ld r24,0(r9) - 2fd8: 40 00 c1 fa std r22,64(r1) - 2fdc: 58 00 21 fb std r25,88(r1) - 2fe0: 00 06 b8 3a addi r21,r24,1536 + 2fc0: 50 e0 9b 7e subf r20,r27,r28 + 2fc4: 00 00 09 eb ld r24,0(r9) + 2fc8: 40 00 c1 fa std r22,64(r1) + 2fcc: 58 00 21 fb std r25,88(r1) + 2fd0: 00 06 b8 3a addi r21,r24,1536 if (!(pg_sizes & def->h_rpt_pgsize)) - 2fe4: 50 00 38 e9 ld r9,80(r24) - 2fe8: 39 48 49 7f and. r9,r26,r9 - 2fec: 24 00 82 40 bne 3010 + 2fd4: 50 00 38 e9 ld r9,80(r24) + 2fd8: 39 48 49 7f and. r9,r26,r9 + 2fdc: 24 00 82 40 bne 3000 for (psize = 0; psize < MMU_PAGE_COUNT; psize++) { - 2ff0: 60 00 18 3b addi r24,r24,96 - 2ff4: 40 c0 35 7c cmpld r21,r24 - 2ff8: ec ff 82 40 bne 2fe4 + 2fe0: 60 00 18 3b addi r24,r24,96 + 2fe4: 40 c0 35 7c cmpld r21,r24 + 2fe8: ec ff 82 40 bne 2fd4 return ret; - 2ffc: b4 07 63 7c extsw r3,r3 - 3000: 6c 00 00 48 b 306c - 3004: 00 00 00 60 nop - 3008: 00 00 00 60 nop - 300c: 00 00 42 60 ori r2,r2,0 + 2fec: b4 07 63 7c extsw r3,r3 + 2ff0: 6c 00 00 48 b 305c + 2ff4: 00 00 00 60 nop + 2ff8: 00 00 00 60 nop + 2ffc: 00 00 42 60 ori r2,r2,0 flush_lpid = nr_pages > tlb_range_flush_page_ceiling; - 3010: 00 00 22 3d addis r9,r2,0 + 3000: 00 00 22 3d addis r9,r2,0 nr_pages = (end - start) >> def->shift; - 3014: 00 00 38 83 lwz r25,0(r24) + 3004: 00 00 38 83 lwz r25,0(r24) flush_lpid = nr_pages > tlb_range_flush_page_ceiling; - 3018: 00 00 29 e9 ld r9,0(r9) + 3008: 00 00 29 e9 ld r9,0(r9) nr_pages = (end - start) >> def->shift; - 301c: 36 cc 8a 7e srd r10,r20,r25 + 300c: 36 cc 8a 7e srd r10,r20,r25 if (flush_lpid) - 3020: 00 00 29 e9 ld r9,0(r9) - 3024: 40 48 2a 7c cmpld r10,r9 - 3028: fc 00 81 41 bgt 3124 + 3010: 00 00 29 e9 ld r9,0(r9) + 3014: 40 48 2a 7c cmpld r10,r9 + 3018: fc 00 81 41 bgt 3114 page_size = 1UL << def->shift; - 302c: 5a 00 d8 ea lwa r22,88(r24) - 3030: 36 c8 79 7e sld r25,r19,r25 - 3034: 78 db 7f 7f mr r31,r27 - 3038: 0c 00 00 48 b 3044 - 303c: 00 00 42 60 ori r2,r2,0 + 301c: 5a 00 d8 ea lwa r22,88(r24) + 3020: 36 c8 79 7e sld r25,r19,r25 + 3024: 78 db 7f 7f mr r31,r27 + 3028: 0c 00 00 48 b 3034 + 302c: 00 00 42 60 ori r2,r2,0 } while (addr < end); - 3040: b0 ff 9d 40 ble cr7,2ff0 + 3030: b0 ff 9d 40 ble cr7,2fe0 ret = kvmhv_emulate_tlbie_tlb_addr(vcpu, lpid, ap, - 3044: 02 a3 e6 7b rldicl r6,r31,52,12 - 3048: 78 b3 c5 7e mr r5,r22 - 304c: 78 f3 c4 7f mr r4,r30 - 3050: 78 eb a3 7f mr r3,r29 + 3034: 02 a3 e6 7b rldicl r6,r31,52,12 + 3038: 78 b3 c5 7e mr r5,r22 + 303c: 78 f3 c4 7f mr r4,r30 + 3040: 78 eb a3 7f mr r3,r29 addr += page_size; - 3054: 14 ca ff 7f add r31,r31,r25 + 3044: 14 ca ff 7f add r31,r31,r25 ret = kvmhv_emulate_tlbie_tlb_addr(vcpu, lpid, ap, - 3058: 01 00 00 48 bl 3058 + 3048: 01 00 00 48 bl 3048 } while (addr < end); - 305c: 40 f8 bc 7f cmpld cr7,r28,r31 + 304c: 40 f8 bc 7f cmpld cr7,r28,r31 if (ret) - 3060: 00 00 03 2c cmpwi r3,0 - 3064: dc ff 82 41 beq 3040 + 3050: 00 00 03 2c cmpwi r3,0 + 3054: dc ff 82 41 beq 3030 return H_P4; - 3068: c7 ff 60 38 li r3,-57 - 306c: 28 00 61 ea ld r19,40(r1) - 3070: 30 00 81 ea ld r20,48(r1) - 3074: 38 00 a1 ea ld r21,56(r1) - 3078: 40 00 c1 ea ld r22,64(r1) - 307c: 50 00 01 eb ld r24,80(r1) - 3080: 58 00 21 eb ld r25,88(r1) -} - 3084: 90 00 21 38 addi r1,r1,144 - 3088: 10 00 01 e8 ld r0,16(r1) - 308c: b8 ff e1 ea ld r23,-72(r1) - 3090: d0 ff 41 eb ld r26,-48(r1) - 3094: d8 ff 61 eb ld r27,-40(r1) - 3098: e0 ff 81 eb ld r28,-32(r1) - 309c: e8 ff a1 eb ld r29,-24(r1) - 30a0: f0 ff c1 eb ld r30,-16(r1) - 30a4: f8 ff e1 eb ld r31,-8(r1) - 30a8: a6 03 08 7c mtlr r0 - 30ac: 20 00 80 4e blr + 3058: c7 ff 60 38 li r3,-57 + 305c: 28 00 61 ea ld r19,40(r1) + 3060: 30 00 81 ea ld r20,48(r1) + 3064: 38 00 a1 ea ld r21,56(r1) + 3068: 40 00 c1 ea ld r22,64(r1) + 306c: 50 00 01 eb ld r24,80(r1) + 3070: 58 00 21 eb ld r25,88(r1) +} + 3074: 90 00 21 38 addi r1,r1,144 + 3078: 10 00 01 e8 ld r0,16(r1) + 307c: b8 ff e1 ea ld r23,-72(r1) + 3080: d0 ff 41 eb ld r26,-48(r1) + 3084: d8 ff 61 eb ld r27,-40(r1) + 3088: e0 ff 81 eb ld r28,-32(r1) + 308c: e8 ff a1 eb ld r29,-24(r1) + 3090: f0 ff c1 eb ld r30,-16(r1) + 3094: f8 ff e1 eb ld r31,-8(r1) + 3098: a6 03 08 7c mtlr r0 + 309c: 20 00 80 4e blr gp = kvmhv_get_nested(kvm, lpid, false); - 30b0: 00 00 7d e8 ld r3,0(r29) - 30b4: 78 bb e4 7e mr r4,r23 - 30b8: 00 00 a0 38 li r5,0 - 30bc: 01 00 00 48 bl 30bc + 30a0: 00 00 7d e8 ld r3,0(r29) + 30a4: 78 bb e4 7e mr r4,r23 + 30a8: 00 00 a0 38 li r5,0 + 30ac: 01 00 00 48 bl 30ac if (gp) { - 30c0: 79 1b 7f 7c mr. r31,r3 - 30c4: b8 fe 82 41 beq 2f7c + 30b0: 79 1b 7f 7c mr. r31,r3 + 30b4: b8 fe 82 41 beq 2f6c kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); - 30c8: 00 00 7d e8 ld r3,0(r29) - 30cc: 02 00 a0 38 li r5,2 - 30d0: 78 fb e4 7f mr r4,r31 - 30d4: 01 00 00 48 bl 30d4 + 30b8: 00 00 7d e8 ld r3,0(r29) + 30bc: 02 00 a0 38 li r5,2 + 30c0: 78 fb e4 7f mr r4,r31 + 30c4: 01 00 00 48 bl 30c4 kvmhv_put_nested(gp); - 30d8: 78 fb e3 7f mr r3,r31 - 30dc: 01 00 00 48 bl 30dc - 30e0: 9c fe ff 4b b 2f7c - 30e4: 00 00 00 60 nop - 30e8: 00 00 00 60 nop - 30ec: 00 00 42 60 ori r2,r2,0 + 30c8: 78 fb e3 7f mr r3,r31 + 30cc: 01 00 00 48 bl 30cc + 30d0: 9c fe ff 4b b 2f6c + 30d4: 00 00 00 60 nop + 30d8: 00 00 00 60 nop + 30dc: 00 00 42 60 ori r2,r2,0 gp = kvmhv_get_nested(kvm, lpid, false); - 30f0: 00 00 7d e8 ld r3,0(r29) - 30f4: 78 bb e4 7e mr r4,r23 - 30f8: 00 00 a0 38 li r5,0 - 30fc: 01 00 00 48 bl 30fc + 30e0: 00 00 7d e8 ld r3,0(r29) + 30e4: 78 bb e4 7e mr r4,r23 + 30e8: 00 00 a0 38 li r5,0 + 30ec: 01 00 00 48 bl 30ec if (gp) { - 3100: 79 1b 7f 7c mr. r31,r3 - 3104: 78 fe 82 41 beq 2f7c + 30f0: 79 1b 7f 7c mr. r31,r3 + 30f4: 78 fe 82 41 beq 2f6c kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); - 3108: 00 00 7d e8 ld r3,0(r29) - 310c: 00 00 a0 38 li r5,0 - 3110: 78 fb e4 7f mr r4,r31 - 3114: 01 00 00 48 bl 3114 + 30f8: 00 00 7d e8 ld r3,0(r29) + 30fc: 00 00 a0 38 li r5,0 + 3100: 78 fb e4 7f mr r4,r31 + 3104: 01 00 00 48 bl 3104 kvmhv_put_nested(gp); - 3118: 78 fb e3 7f mr r3,r31 - 311c: 01 00 00 48 bl 311c - 3120: 5c fe ff 4b b 2f7c + 3108: 78 fb e3 7f mr r3,r31 + 310c: 01 00 00 48 bl 310c + 3110: 5c fe ff 4b b 2f6c gp = kvmhv_get_nested(kvm, lpid, false); - 3124: 00 00 7d e8 ld r3,0(r29) - 3128: 78 bb e4 7e mr r4,r23 - 312c: 00 00 a0 38 li r5,0 - 3130: 01 00 00 48 bl 3130 + 3114: 00 00 7d e8 ld r3,0(r29) + 3118: 78 bb e4 7e mr r4,r23 + 311c: 00 00 a0 38 li r5,0 + 3120: 01 00 00 48 bl 3120 if (gp) { - 3134: 79 1b 7f 7c mr. r31,r3 - 3138: 1c 00 82 41 beq 3154 + 3124: 79 1b 7f 7c mr. r31,r3 + 3128: 1c 00 82 41 beq 3144 kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); - 313c: 00 00 7d e8 ld r3,0(r29) - 3140: 00 00 a0 38 li r5,0 - 3144: 78 fb e4 7f mr r4,r31 - 3148: 01 00 00 48 bl 3148 + 312c: 00 00 7d e8 ld r3,0(r29) + 3130: 00 00 a0 38 li r5,0 + 3134: 78 fb e4 7f mr r4,r31 + 3138: 01 00 00 48 bl 3138 kvmhv_put_nested(gp); - 314c: 78 fb e3 7f mr r3,r31 - 3150: 01 00 00 48 bl 3150 - 3154: 28 00 61 ea ld r19,40(r1) - 3158: 30 00 81 ea ld r20,48(r1) - 315c: 38 00 a1 ea ld r21,56(r1) - 3160: 40 00 c1 ea ld r22,64(r1) - 3164: 50 00 01 eb ld r24,80(r1) - 3168: 58 00 21 eb ld r25,88(r1) - 316c: 10 fe ff 4b b 2f7c + 313c: 78 fb e3 7f mr r3,r31 + 3140: 01 00 00 48 bl 3140 + 3144: 28 00 61 ea ld r19,40(r1) + 3148: 30 00 81 ea ld r20,48(r1) + 314c: 38 00 a1 ea ld r21,56(r1) + 3150: 40 00 c1 ea ld r22,64(r1) + 3154: 50 00 01 eb ld r24,80(r1) + 3158: 58 00 21 eb ld r25,88(r1) + 315c: 10 fe ff 4b b 2f6c ... -0000000000003178 : +0000000000003168 : kvmhv_invalidate_shadow_pte(vcpu, gp, n_gpa, NULL); return RESUME_GUEST; } long int kvmhv_nested_page_fault(struct kvm_vcpu *vcpu) { - 3178: f8 ff 4c e8 ld r2,-8(r12) - 317c: 14 62 42 7c add r2,r2,r12 - 3180: a6 02 08 7c mflr r0 - 3184: 01 00 00 48 bl 3184 - 3188: a6 02 08 7c mflr r0 - 318c: 26 80 70 7d mfocrf r11,8 - 3190: b8 ff e1 fa std r23,-72(r1) - 3194: c0 ff 01 fb std r24,-64(r1) - 3198: c8 ff 21 fb std r25,-56(r1) - 319c: e8 ff a1 fb std r29,-24(r1) - 31a0: f0 ff c1 fb std r30,-16(r1) - 31a4: f8 ff e1 fb std r31,-8(r1) - 31a8: 78 1b 7f 7c mr r31,r3 - 31ac: 10 00 01 f8 std r0,16(r1) - 31b0: d0 ff 41 fb std r26,-48(r1) - 31b4: 08 00 61 91 stw r11,8(r1) - 31b8: b1 fe 21 f8 stdu r1,-336(r1) + 3168: f8 ff 4c e8 ld r2,-8(r12) + 316c: 14 62 42 7c add r2,r2,r12 + 3170: a6 02 08 7c mflr r0 + 3174: 01 00 00 48 bl 3174 + 3178: a6 02 08 7c mflr r0 + 317c: 26 80 70 7d mfocrf r11,8 + 3180: b8 ff e1 fa std r23,-72(r1) + 3184: c0 ff 01 fb std r24,-64(r1) + 3188: c8 ff 21 fb std r25,-56(r1) + 318c: e8 ff a1 fb std r29,-24(r1) + 3190: f0 ff c1 fb std r30,-16(r1) + 3194: f8 ff e1 fb std r31,-8(r1) + 3198: 78 1b 7f 7c mr r31,r3 + 319c: 10 00 01 f8 std r0,16(r1) + 31a0: d0 ff 41 fb std r26,-48(r1) + 31a4: 08 00 61 91 stw r11,8(r1) + 31a8: b1 fe 21 f8 stdu r1,-336(r1) struct kvm_nested_guest *gp = vcpu->arch.nested; - 31bc: 80 21 43 eb ld r26,8576(r3) + 31ac: 80 21 43 eb ld r26,8576(r3) { - 31c0: 78 0c 2d e9 ld r9,3192(r13) - 31c4: c8 00 21 f9 std r9,200(r1) - 31c8: 00 00 20 39 li r9,0 + 31b0: 78 0c 2d e9 ld r9,3192(r13) + 31b4: c8 00 21 f9 std r9,200(r1) + 31b8: 00 00 20 39 li r9,0 long int ret; mutex_lock(&gp->tlb_lock); - 31cc: 30 00 3a 3b addi r25,r26,48 - 31d0: 78 cb 23 7f mr r3,r25 - 31d4: 01 00 00 48 bl 31d4 - 31d8: 00 00 00 60 nop + 31bc: 30 00 3a 3b addi r25,r26,48 + 31c0: 78 cb 23 7f mr r3,r25 + 31c4: 01 00 00 48 bl 31c4 + 31c8: 00 00 00 60 nop struct rmap_nested *n_rmap; - 31dc: 00 00 20 39 li r9,0 + 31cc: 00 00 20 39 li r9,0 unsigned long dsisr = vcpu->arch.fault_dsisr; - 31e0: e0 1c bf 83 lwz r29,7392(r31) + 31d0: e0 1c bf 83 lwz r29,7392(r31) struct kvm *kvm = vcpu->kvm; - 31e4: 00 00 1f eb ld r24,0(r31) + 31d4: 00 00 1f eb ld r24,0(r31) unsigned long ea = vcpu->arch.fault_dar; - 31e8: d8 1c ff ea ld r23,7384(r31) + 31d8: d8 1c ff ea ld r23,7384(r31) struct kvmppc_pte gpte; - 31ec: 90 00 21 f9 std r9,144(r1) - 31f0: 98 00 21 f9 std r9,152(r1) - 31f4: a0 00 21 f9 std r9,160(r1) - 31f8: a8 00 21 f9 std r9,168(r1) - 31fc: b0 00 21 f9 std r9,176(r1) - 3200: b8 00 21 f9 std r9,184(r1) - 3204: 8c 01 be 57 rlwinm r30,r29,0,6,6 - 3208: c0 00 21 f9 std r9,192(r1) + 31dc: 90 00 21 f9 std r9,144(r1) + 31e0: 98 00 21 f9 std r9,152(r1) + 31e4: a0 00 21 f9 std r9,160(r1) + 31e8: a8 00 21 f9 std r9,168(r1) + 31ec: b0 00 21 f9 std r9,176(r1) + 31f0: b8 00 21 f9 std r9,184(r1) + 31f4: 8c 01 be 57 rlwinm r30,r29,0,6,6 + 31f8: c0 00 21 f9 std r9,192(r1) if (!gp->l1_gr_to_hr) { - 320c: 18 00 da e8 ld r6,24(r26) + 31fc: 18 00 da e8 ld r6,24(r26) struct rmap_nested *n_rmap; - 3210: 78 00 21 f9 std r9,120(r1) + 3200: 78 00 21 f9 std r9,120(r1) pte_t pte, *pte_p; - 3214: 80 00 21 f9 std r9,128(r1) + 3204: 80 00 21 f9 std r9,128(r1) unsigned int shift, l1_shift, level; - 3218: 70 00 21 91 stw r9,112(r1) - 321c: 74 00 21 91 stw r9,116(r1) + 3208: 70 00 21 91 stw r9,112(r1) + 320c: 74 00 21 91 stw r9,116(r1) if (!gp->l1_gr_to_hr) { - 3220: 00 00 26 2c cmpdi r6,0 - 3224: dc 02 82 41 beq 3500 + 3210: 00 00 26 2c cmpdi r6,0 + 3214: dc 02 82 41 beq 34f0 n_gpa = vcpu->arch.fault_gpa & ~0xF000000000000FFFULL; - 3228: 28 01 61 fb std r27,296(r1) - 322c: f0 1c 7f eb ld r27,7408(r31) + 3218: 28 01 61 fb std r27,296(r1) + 321c: f0 1c 7f eb ld r27,7408(r31) if (!(dsisr & DSISR_PRTABLE_FAULT)) - 3230: 02 00 a9 77 andis. r9,r29,2 + 3220: 02 00 a9 77 andis. r9,r29,2 n_gpa = vcpu->arch.fault_gpa & ~0xF000000000000FFFULL; - 3234: e4 23 7b 7b rldicr r27,r27,4,47 - 3238: 02 e1 7b 7b rldicl r27,r27,60,4 + 3224: e4 23 7b 7b rldicr r27,r27,4,47 + 3228: 02 e1 7b 7b rldicl r27,r27,60,4 if (!(dsisr & DSISR_PRTABLE_FAULT)) - 323c: 0c 00 82 40 bne 3248 + 322c: 0c 00 82 40 bne 3238 n_gpa |= ea & 0xFFF; - 3240: 20 05 e9 7a clrldi r9,r23,52 - 3244: 78 4b 7b 7f or r27,r27,r9 + 3230: 20 05 e9 7a clrldi r9,r23,52 + 3234: 78 4b 7b 7f or r27,r27,r9 u64 fault_addr, flags = dsisr & DSISR_ISSTORE; - 3248: 00 00 20 39 li r9,0 + 3238: 00 00 20 39 li r9,0 ret = kvmppc_mmu_walk_radix_tree(vcpu, n_gpa, gpte_p, gp->l1_gr_to_hr, - 324c: 90 00 a1 38 addi r5,r1,144 - 3250: 88 00 e1 38 addi r7,r1,136 - 3254: 78 db 64 7f mr r4,r27 - 3258: 78 fb e3 7f mr r3,r31 + 323c: 90 00 a1 38 addi r5,r1,144 + 3240: 88 00 e1 38 addi r7,r1,136 + 3244: 78 db 64 7f mr r4,r27 + 3248: 78 fb e3 7f mr r3,r31 u64 fault_addr, flags = dsisr & DSISR_ISSTORE; - 325c: 88 00 21 f9 std r9,136(r1) + 324c: 88 00 21 f9 std r9,136(r1) ret = kvmppc_mmu_walk_radix_tree(vcpu, n_gpa, gpte_p, gp->l1_gr_to_hr, - 3260: 01 00 00 48 bl 3260 - 3264: 00 00 00 60 nop + 3250: 01 00 00 48 bl 3250 + 3254: 00 00 00 60 nop if (ret) { - 3268: 00 00 03 2c cmpwi r3,0 - 326c: 34 00 82 41 beq 32a0 + 3258: 00 00 03 2c cmpwi r3,0 + 325c: 34 00 82 41 beq 3290 if (ret == -EINVAL) { - 3270: ea ff 03 2c cmpwi r3,-22 - 3274: bc 06 82 41 beq 3930 + 3260: ea ff 03 2c cmpwi r3,-22 + 3264: bc 06 82 41 beq 3920 } else if (ret == -ENOENT) { - 3278: fe ff 03 2c cmpwi r3,-2 - 327c: c4 06 82 41 beq 3940 + 3268: fe ff 03 2c cmpwi r3,-2 + 326c: c4 06 82 41 beq 3930 } else if (ret == -EFAULT) { - 3280: f2 ff 03 2c cmpwi r3,-14 - 3284: 4c 06 82 41 beq 38d0 + 3270: f2 ff 03 2c cmpwi r3,-14 + 3274: 4c 06 82 41 beq 38c0 if (ret == RESUME_HOST && - 3288: 02 00 23 2c cmpdi r3,2 + 3278: 02 00 23 2c cmpdi r3,2 ret = kvmhv_translate_addr_nested(vcpu, gp, n_gpa, dsisr, &gpte); - 328c: 78 1b 7e 7c mr r30,r3 + 327c: 78 1b 7e 7c mr r30,r3 if (ret == RESUME_HOST && - 3290: 04 02 82 41 beq 3494 - 3294: 28 01 61 eb ld r27,296(r1) - 3298: 10 02 00 48 b 34a8 - 329c: 00 00 42 60 ori r2,r2,0 - 32a0: 30 01 81 fb std r28,304(r1) + 3280: 04 02 82 41 beq 3484 + 3284: 28 01 61 eb ld r27,296(r1) + 3288: 10 02 00 48 b 3498 + 328c: 00 00 42 60 ori r2,r2,0 + 3290: 30 01 81 fb std r28,304(r1) bool writing = !!(dsisr & DSISR_ISSTORE); - 32a4: 34 00 dc 7f cntlzw r28,r30 + 3294: 34 00 dc 7f cntlzw r28,r30 if (dsisr & DSISR_ISSTORE) { - 32a8: 00 00 1e 2e cmpwi cr4,r30,0 - 32ac: e8 00 61 fa std r19,232(r1) - 32b0: f8 00 a1 fa std r21,248(r1) - 32b4: f0 00 81 fa std r20,240(r1) + 3298: 00 00 1e 2e cmpwi cr4,r30,0 + 329c: e8 00 61 fa std r19,232(r1) + 32a0: f8 00 a1 fa std r21,248(r1) + 32a4: f0 00 81 fa std r20,240(r1) unsigned long dsisr = vcpu->arch.fault_dsisr; - 32b8: 20 00 b5 7b clrldi r21,r29,32 - 32bc: 00 01 c1 fa std r22,256(r1) + 32a8: 20 00 b5 7b clrldi r21,r29,32 + 32ac: 00 01 c1 fa std r22,256(r1) bool writing = !!(dsisr & DSISR_ISSTORE); - 32c0: 7e d9 9c 57 rlwinm r28,r28,27,5,31 - 32c4: 01 00 93 6b xori r19,r28,1 + 32b0: 7e d9 9c 57 rlwinm r28,r28,27,5,31 + 32b4: 01 00 93 6b xori r19,r28,1 if (dsisr & DSISR_ISSTORE) { - 32c8: a8 02 92 41 beq cr4,3570 + 32b8: a8 02 92 41 beq cr4,3560 if (!gpte_p->may_write) { - 32cc: a8 00 21 e9 ld r9,168(r1) - 32d0: 02 00 29 71 andi. r9,r9,2 - 32d4: 7c 01 82 41 beq 3450 + 32bc: a8 00 21 e9 ld r9,168(r1) + 32c0: 02 00 29 71 andi. r9,r9,2 + 32c4: 7c 01 82 41 beq 3440 if (dsisr & DSISR_SET_RC) { - 32d8: 04 00 a9 77 andis. r9,r29,4 - 32dc: c4 03 82 40 bne 36a0 - 32e0: e0 00 41 fa std r18,224(r1) + 32c8: 04 00 a9 77 andis. r9,r29,4 + 32cc: c4 03 82 40 bne 3690 + 32d0: e0 00 41 fa std r18,224(r1) l1_shift = gpte.page_shift; - 32e4: c1 00 81 8a lbz r20,193(r1) - 32e8: 3e 06 92 56 clrlwi r18,r20,24 + 32d4: c1 00 81 8a lbz r20,193(r1) + 32d8: 3e 06 92 56 clrlwi r18,r20,24 if (l1_shift < PAGE_SHIFT) { - 32ec: 0f 00 12 28 cmplwi r18,15 - 32f0: b8 07 81 40 ble 3aa8 + 32dc: 0f 00 12 28 cmplwi r18,15 + 32e0: b8 07 81 40 ble 3a98 gpa = gpte.raddr; - 32f4: a0 00 c1 ea ld r22,160(r1) + 32e4: a0 00 c1 ea ld r22,160(r1) memslot = gfn_to_memslot(kvm, gfn); - 32f8: 78 c3 03 7f mr r3,r24 - 32fc: 02 84 c4 7a rldicl r4,r22,48,16 - 3300: 01 00 00 48 bl 3300 - 3304: 00 00 00 60 nop + 32e8: 78 c3 03 7f mr r3,r24 + 32ec: 02 84 c4 7a rldicl r4,r22,48,16 + 32f0: 01 00 00 48 bl 32f0 + 32f4: 00 00 00 60 nop if (!memslot || (memslot->flags & KVM_MEMSLOT_INVALID)) { - 3308: 79 1b 7d 7c mr. r29,r3 - 330c: 18 02 82 41 beq 3524 - 3310: d8 00 21 fa std r17,216(r1) - 3314: d8 00 3d 81 lwz r9,216(r29) - 3318: 01 00 31 75 andis. r17,r9,1 - 331c: 04 02 82 40 bne 3520 + 32f8: 79 1b 7d 7c mr. r29,r3 + 32fc: 18 02 82 41 beq 3514 + 3300: d8 00 21 fa std r17,216(r1) + 3304: d8 00 3d 81 lwz r9,216(r29) + 3308: 01 00 31 75 andis. r17,r9,1 + 330c: 04 02 82 40 bne 3510 if (memslot->flags & KVM_MEM_READONLY) { - 3320: 02 00 29 71 andi. r9,r9,2 - 3324: ac 06 82 41 beq 39d0 + 3310: 02 00 29 71 andi. r9,r9,2 + 3314: ac 06 82 41 beq 39c0 if (writing) { - 3328: c8 05 92 40 bne cr4,38f0 + 3318: c8 05 92 40 bne cr4,38e0 kvm_ro = true; - 332c: 01 00 c0 3b li r30,1 + 331c: 01 00 c0 3b li r30,1 mmu_seq = kvm->mmu_invalidate_seq; - 3330: e8 4c f8 ea ld r23,19688(r24) + 3320: e8 4c f8 ea ld r23,19688(r24) smp_rmb(); - 3334: ac 04 20 7c lwsync + 3324: ac 04 20 7c lwsync pte = __pte(0); - 3338: 00 00 20 39 li r9,0 - 333c: 78 c3 03 7f mr r3,r24 - 3340: 80 00 21 f9 std r9,128(r1) - 3344: 01 00 00 48 bl 3344 - 3348: 00 00 00 60 nop + 3328: 00 00 20 39 li r9,0 + 332c: 78 c3 03 7f mr r3,r24 + 3330: 80 00 21 f9 std r9,128(r1) + 3334: 01 00 00 48 bl 3334 + 3338: 00 00 00 60 nop { pte_t *pte; VM_WARN(!spin_is_locked(&kvm->mmu_lock), "%s called with kvm mmu_lock not held \n", __func__); pte = __find_linux_pte(kvm->arch.pgtable, ea, NULL, hshift); - 334c: 50 0b 78 e8 ld r3,2896(r24) - 3350: 78 b3 c4 7e mr r4,r22 - 3354: 00 00 a0 38 li r5,0 - 3358: 70 00 c1 38 addi r6,r1,112 - 335c: 01 00 00 48 bl 335c - 3360: 00 00 00 60 nop + 333c: 50 0b 78 e8 ld r3,2896(r24) + 3340: 78 b3 c4 7e mr r4,r22 + 3344: 00 00 a0 38 li r5,0 + 3348: 70 00 c1 38 addi r6,r1,112 + 334c: 01 00 00 48 bl 334c + 3350: 00 00 00 60 nop if (!shift) - 3364: 70 00 21 81 lwz r9,112(r1) - 3368: 00 00 09 2c cmpwi r9,0 - 336c: 0c 00 82 40 bne 3378 + 3354: 70 00 21 81 lwz r9,112(r1) + 3358: 00 00 09 2c cmpwi r9,0 + 335c: 0c 00 82 40 bne 3368 shift = PAGE_SHIFT; - 3370: 10 00 20 39 li r9,16 - 3374: 70 00 21 91 stw r9,112(r1) + 3360: 10 00 20 39 li r9,16 + 3364: 70 00 21 91 stw r9,112(r1) if (pte_p) - 3378: 00 00 23 2c cmpdi r3,0 - 337c: 0c 00 82 41 beq 3388 + 3368: 00 00 23 2c cmpdi r3,0 + 336c: 0c 00 82 41 beq 3378 pte = *pte_p; - 3380: 00 00 23 e9 ld r9,0(r3) - 3384: 80 00 21 f9 std r9,128(r1) + 3370: 00 00 23 e9 ld r9,0(r3) + 3374: 80 00 21 f9 std r9,128(r1) if (unlikely(ms->mmiowb_pending)) { - 3388: 82 0c 4d a1 lhz r10,3202(r13) + 3378: 82 0c 4d a1 lhz r10,3202(r13) struct mmiowb_state *ms = __mmiowb_state(); - 338c: 78 6b a9 7d mr r9,r13 + 337c: 78 6b a9 7d mr r9,r13 if (unlikely(ms->mmiowb_pending)) { - 3390: 00 00 0a 2c cmpwi r10,0 - 3394: 9c 06 82 40 bne 3a30 + 3380: 00 00 0a 2c cmpwi r10,0 + 3384: 9c 06 82 40 bne 3a20 ms->nesting_count--; - 3398: 80 0c 49 a1 lhz r10,3200(r9) - 339c: ff ff 4a 39 addi r10,r10,-1 - 33a0: 80 0c 49 b1 sth r10,3200(r9) - 33a4: ac 04 20 7c lwsync - 33a8: 00 00 20 39 li r9,0 - 33ac: 00 00 38 b1 sth r9,0(r24) + 3388: 80 0c 49 a1 lhz r10,3200(r9) + 338c: ff ff 4a 39 addi r10,r10,-1 + 3390: 80 0c 49 b1 sth r10,3200(r9) + 3394: ac 04 20 7c lwsync + 3398: 00 00 20 39 li r9,0 + 339c: 00 00 38 b1 sth r9,0(r24) if (!pte_present(pte) || (writing && !(pte_val(pte) & _PAGE_WRITE))) { - 33b0: 80 00 81 e8 ld r4,128(r1) + 33a0: 80 00 81 e8 ld r4,128(r1) return (pte_raw(pte) & cpu_to_be64(_PAGE_PRESENT | _PAGE_PTE)) == - 33b4: 32 06 89 54 rlwinm r9,r4,0,24,25 + 33a4: 32 06 89 54 rlwinm r9,r4,0,24,25 if (pte_hw_valid(pte)) - 33b8: c0 00 29 2c cmpdi r9,192 - 33bc: 34 04 82 41 beq 37f0 + 33a8: c0 00 29 2c cmpdi r9,192 + 33ac: 34 04 82 41 beq 37e0 return (pte_raw(pte) & cpu_to_be64(_PAGE_INVALID | _PAGE_PTE)) == - 33c0: 74 06 89 54 rlwinm r9,r4,0,25,26 - 33c4: 60 00 29 2c cmpdi r9,96 - 33c8: 28 04 82 41 beq 37f0 + 33b0: 74 06 89 54 rlwinm r9,r4,0,25,26 + 33b4: 60 00 29 2c cmpdi r9,96 + 33b8: 28 04 82 41 beq 37e0 ret = kvmppc_book3s_instantiate_page(vcpu, gpa, memslot, - 33cc: e0 07 c7 7b clrldi r7,r30,63 - 33d0: e0 07 66 7a clrldi r6,r19,63 - 33d4: 78 fb e3 7f mr r3,r31 - 33d8: 74 00 21 39 addi r9,r1,116 - 33dc: 80 00 01 39 addi r8,r1,128 - 33e0: 78 eb a5 7f mr r5,r29 - 33e4: 78 b3 c4 7e mr r4,r22 - 33e8: 01 00 00 48 bl 33e8 - 33ec: 00 00 00 60 nop + 33bc: e0 07 c7 7b clrldi r7,r30,63 + 33c0: e0 07 66 7a clrldi r6,r19,63 + 33c4: 78 fb e3 7f mr r3,r31 + 33c8: 74 00 21 39 addi r9,r1,116 + 33cc: 80 00 01 39 addi r8,r1,128 + 33d0: 78 eb a5 7f mr r5,r29 + 33d4: 78 b3 c4 7e mr r4,r22 + 33d8: 01 00 00 48 bl 33d8 + 33dc: 00 00 00 60 nop if (ret == -EAGAIN) - 33f0: f5 ff 23 2c cmpdi r3,-11 + 33e0: f5 ff 23 2c cmpdi r3,-11 ret = kvmppc_book3s_instantiate_page(vcpu, gpa, memslot, - 33f4: 78 1b 7e 7c mr r30,r3 + 33e4: 78 1b 7e 7c mr r30,r3 if (ret == -EAGAIN) - 33f8: 0c 05 82 41 beq 3904 + 33e8: 0c 05 82 41 beq 38f4 else if (ret) - 33fc: 00 00 23 2c cmpdi r3,0 - 3400: ac 03 82 40 bne 37ac + 33ec: 00 00 23 2c cmpdi r3,0 + 33f0: ac 03 82 40 bne 379c return PUD_SHIFT; - 3404: 00 00 42 3d addis r10,r2,0 + 33f4: 00 00 42 3d addis r10,r2,0 shift = kvmppc_radix_level_to_shift(level); - 3408: 74 00 21 81 lwz r9,116(r1) + 33f8: 74 00 21 81 lwz r9,116(r1) return PUD_SHIFT; - 340c: 00 00 0a e9 ld r8,0(r10) - 3410: 00 00 42 3d addis r10,r2,0 + 33fc: 00 00 0a e9 ld r8,0(r10) + 3400: 00 00 42 3d addis r10,r2,0 switch (level) { - 3414: 01 00 09 28 cmplwi r9,1 + 3404: 01 00 09 28 cmplwi r9,1 return PUD_SHIFT; - 3418: 00 00 4a e9 ld r10,0(r10) - 341c: 00 00 a8 e8 ld r5,0(r8) - 3420: 00 00 ea e8 ld r7,0(r10) + 3408: 00 00 4a e9 ld r10,0(r10) + 340c: 00 00 a8 e8 ld r5,0(r8) + 3410: 00 00 ea e8 ld r7,0(r10) switch (level) { - 3424: 1c 06 82 41 beq 3a40 - 3428: 02 00 09 28 cmplwi r9,2 - 342c: d4 05 82 40 bne 3a00 + 3414: 1c 06 82 41 beq 3a30 + 3418: 02 00 09 28 cmplwi r9,2 + 341c: d4 05 82 40 bne 39f0 return PUD_SHIFT; - 3430: 14 3a 05 7d add r8,r5,r7 + 3420: 14 3a 05 7d add r8,r5,r7 gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; - 3434: 01 00 60 38 li r3,1 + 3424: 01 00 60 38 li r3,1 return PUD_SHIFT; - 3438: 10 00 08 39 addi r8,r8,16 + 3428: 10 00 08 39 addi r8,r8,16 gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; - 343c: 36 40 63 7c sld r3,r3,r8 - 3440: d0 00 e3 7f neg r31,r3 - 3444: 80 00 81 e8 ld r4,128(r1) + 342c: 36 40 63 7c sld r3,r3,r8 + 3430: d0 00 e3 7f neg r31,r3 + 3434: 80 00 81 e8 ld r4,128(r1) shift = kvmppc_radix_level_to_shift(level); - 3448: 70 00 01 91 stw r8,112(r1) - 344c: d0 03 00 48 b 381c + 3438: 70 00 01 91 stw r8,112(r1) + 343c: d0 03 00 48 b 380c flags |= DSISR_PROTFAULT; - 3450: 00 08 de 67 oris r30,r30,2048 + 3440: 00 08 de 67 oris r30,r30,2048 goto forward_to_l1; - 3454: e8 00 61 ea ld r19,232(r1) - 3458: f0 00 81 ea ld r20,240(r1) - 345c: f8 00 a1 ea ld r21,248(r1) - 3460: 00 01 c1 ea ld r22,256(r1) - 3464: 30 01 81 eb ld r28,304(r1) + 3444: e8 00 61 ea ld r19,232(r1) + 3448: f0 00 81 ea ld r20,240(r1) + 344c: f8 00 a1 ea ld r21,248(r1) + 3450: 00 01 c1 ea ld r22,256(r1) + 3454: 30 01 81 eb ld r28,304(r1) flags |= DSISR_PROTFAULT; - 3468: 20 00 c8 7b clrldi r8,r30,32 + 3458: 20 00 c8 7b clrldi r8,r30,32 if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { - 346c: a4 1d 5f 81 lwz r10,7588(r31) + 345c: a4 1d 5f 81 lwz r10,7588(r31) vcpu->arch.fault_dsisr = flags; - 3470: e0 1c df 93 stw r30,7392(r31) + 3460: e0 1c df 93 stw r30,7392(r31) if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { - 3474: 20 0e 0a 2c cmpwi r10,3616 - 3478: 1c 00 82 40 bne 3494 + 3464: 20 0e 0a 2c cmpwi r10,3616 + 3468: 1c 00 82 40 bne 3484 vcpu->arch.shregs.msr &= SRR1_MSR_BITS; - 347c: d8 1e 3f e9 ld r9,7896(r31) - 3480: c0 87 40 3d lis r10,-30784 - 3484: ff ff 4a 61 ori r10,r10,65535 - 3488: 38 50 29 7d and r9,r9,r10 + 346c: d8 1e 3f e9 ld r9,7896(r31) + 3470: c0 87 40 3d lis r10,-30784 + 3474: ff ff 4a 61 ori r10,r10,65535 + 3478: 38 50 29 7d and r9,r9,r10 vcpu->arch.shregs.msr |= flags; - 348c: 78 43 29 7d or r9,r9,r8 - 3490: d8 1e 3f f9 std r9,7896(r31) + 347c: 78 43 29 7d or r9,r9,r8 + 3480: d8 1e 3f f9 std r9,7896(r31) if (ret == RESUME_HOST && - 3494: 0a 07 bd 57 rlwinm r29,r29,0,28,5 - 3498: f9 00 bd 57 rlwinm. r29,r29,0,3,28 - 349c: 38 03 82 40 bne 37d4 - 34a0: 28 01 61 eb ld r27,296(r1) + 3484: 0a 07 bd 57 rlwinm r29,r29,0,28,5 + 3488: f9 00 bd 57 rlwinm. r29,r29,0,3,28 + 348c: 38 03 82 40 bne 37c4 + 3490: 28 01 61 eb ld r27,296(r1) return RESUME_HOST; - 34a4: 02 00 c0 3b li r30,2 + 3494: 02 00 c0 3b li r30,2 ret = __kvmhv_nested_page_fault(vcpu, gp); mutex_unlock(&gp->tlb_lock); - 34a8: 78 cb 23 7f mr r3,r25 - 34ac: 01 00 00 48 bl 34ac - 34b0: 00 00 00 60 nop + 3498: 78 cb 23 7f mr r3,r25 + 349c: 01 00 00 48 bl 349c + 34a0: 00 00 00 60 nop return ret; } - 34b4: c8 00 41 e9 ld r10,200(r1) - 34b8: 78 0c 2d e9 ld r9,3192(r13) - 34bc: 79 4a 4a 7d xor. r10,r10,r9 - 34c0: 00 00 20 39 li r9,0 - 34c4: bc 05 82 40 bne 3a80 - 34c8: 50 01 21 38 addi r1,r1,336 - 34cc: 78 f3 c3 7f mr r3,r30 - 34d0: 10 00 01 e8 ld r0,16(r1) - 34d4: 08 00 61 81 lwz r11,8(r1) - 34d8: b8 ff e1 ea ld r23,-72(r1) - 34dc: c0 ff 01 eb ld r24,-64(r1) - 34e0: c8 ff 21 eb ld r25,-56(r1) - 34e4: d0 ff 41 eb ld r26,-48(r1) - 34e8: e8 ff a1 eb ld r29,-24(r1) - 34ec: f0 ff c1 eb ld r30,-16(r1) - 34f0: f8 ff e1 eb ld r31,-8(r1) - 34f4: a6 03 08 7c mtlr r0 - 34f8: 20 81 70 7d mtocrf 8,r11 - 34fc: 20 00 80 4e blr + 34a4: c8 00 41 e9 ld r10,200(r1) + 34a8: 78 0c 2d e9 ld r9,3192(r13) + 34ac: 79 4a 4a 7d xor. r10,r10,r9 + 34b0: 00 00 20 39 li r9,0 + 34b4: bc 05 82 40 bne 3a70 + 34b8: 50 01 21 38 addi r1,r1,336 + 34bc: 78 f3 c3 7f mr r3,r30 + 34c0: 10 00 01 e8 ld r0,16(r1) + 34c4: 08 00 61 81 lwz r11,8(r1) + 34c8: b8 ff e1 ea ld r23,-72(r1) + 34cc: c0 ff 01 eb ld r24,-64(r1) + 34d0: c8 ff 21 eb ld r25,-56(r1) + 34d4: d0 ff 41 eb ld r26,-48(r1) + 34d8: e8 ff a1 eb ld r29,-24(r1) + 34dc: f0 ff c1 eb ld r30,-16(r1) + 34e0: f8 ff e1 eb ld r31,-8(r1) + 34e4: a6 03 08 7c mtlr r0 + 34e8: 20 81 70 7d mtocrf 8,r11 + 34ec: 20 00 80 4e blr kvmhv_update_ptbl_cache(gp); - 3500: 78 d3 43 7f mr r3,r26 - 3504: 01 00 00 48 bl 3504 + 34f0: 78 d3 43 7f mr r3,r26 + 34f4: 01 00 00 48 bl 34f4 if (!gp->l1_gr_to_hr) - 3508: 18 00 da e8 ld r6,24(r26) - 350c: 00 00 26 2c cmpdi r6,0 - 3510: 18 fd 82 40 bne 3228 - 3514: 90 ff ff 4b b 34a4 - 3518: 00 00 00 60 nop - 351c: 00 00 42 60 ori r2,r2,0 - 3520: d8 00 21 ea ld r17,216(r1) + 34f8: 18 00 da e8 ld r6,24(r26) + 34fc: 00 00 26 2c cmpdi r6,0 + 3500: 18 fd 82 40 bne 3218 + 3504: 90 ff ff 4b b 3494 + 3508: 00 00 00 60 nop + 350c: 00 00 42 60 ori r2,r2,0 + 3510: d8 00 21 ea ld r17,216(r1) if (dsisr & (DSISR_PRTABLE_FAULT | DSISR_BADACCESS)) { - 3524: 02 04 a9 76 andis. r9,r21,1026 - 3528: 38 01 82 40 bne 3660 + 3514: 02 04 a9 76 andis. r9,r21,1026 + 3518: 38 01 82 40 bne 3650 return kvmppc_hv_emulate_mmio(vcpu, gpa, ea, writing); - 352c: b4 07 66 7e extsw r6,r19 - 3530: 78 bb e5 7e mr r5,r23 - 3534: 78 b3 c4 7e mr r4,r22 - 3538: 78 fb e3 7f mr r3,r31 - 353c: 01 00 00 48 bl 353c - 3540: 00 00 00 60 nop - 3544: 78 1b 7e 7c mr r30,r3 - 3548: e0 00 41 ea ld r18,224(r1) - 354c: e8 00 61 ea ld r19,232(r1) - 3550: f0 00 81 ea ld r20,240(r1) - 3554: f8 00 a1 ea ld r21,248(r1) - 3558: 00 01 c1 ea ld r22,256(r1) - 355c: 28 01 61 eb ld r27,296(r1) - 3560: 30 01 81 eb ld r28,304(r1) - 3564: 44 ff ff 4b b 34a8 - 3568: 00 00 00 60 nop - 356c: 00 00 42 60 ori r2,r2,0 + 351c: b4 07 66 7e extsw r6,r19 + 3520: 78 bb e5 7e mr r5,r23 + 3524: 78 b3 c4 7e mr r4,r22 + 3528: 78 fb e3 7f mr r3,r31 + 352c: 01 00 00 48 bl 352c + 3530: 00 00 00 60 nop + 3534: 78 1b 7e 7c mr r30,r3 + 3538: e0 00 41 ea ld r18,224(r1) + 353c: e8 00 61 ea ld r19,232(r1) + 3540: f0 00 81 ea ld r20,240(r1) + 3544: f8 00 a1 ea ld r21,248(r1) + 3548: 00 01 c1 ea ld r22,256(r1) + 354c: 28 01 61 eb ld r27,296(r1) + 3550: 30 01 81 eb ld r28,304(r1) + 3554: 44 ff ff 4b b 3498 + 3558: 00 00 00 60 nop + 355c: 00 00 42 60 ori r2,r2,0 } else if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { - 3570: a4 1d 3f 81 lwz r9,7588(r31) - 3574: 20 0e 09 2c cmpwi r9,3616 + 3560: a4 1d 3f 81 lwz r9,7588(r31) + 3564: 20 0e 09 2c cmpwi r9,3616 if (!gpte_p->may_execute) { - 3578: a8 00 21 e9 ld r9,168(r1) + 3568: a8 00 21 e9 ld r9,168(r1) } else if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { - 357c: 44 01 82 41 beq 36c0 + 356c: 44 01 82 41 beq 36b0 if (!gpte_p->may_read && !gpte_p->may_write) { - 3580: 01 00 2a 71 andi. r10,r9,1 - 3584: 0c 00 82 40 bne 3590 - 3588: 02 00 29 71 andi. r9,r9,2 - 358c: 84 04 82 41 beq 3a10 + 3570: 01 00 2a 71 andi. r10,r9,1 + 3574: 0c 00 82 40 bne 3580 + 3578: 02 00 29 71 andi. r9,r9,2 + 357c: 84 04 82 41 beq 3a00 if (dsisr & DSISR_SET_RC) { - 3590: 04 00 a9 77 andis. r9,r29,4 - 3594: 4c fd 82 41 beq 32e0 + 3580: 04 00 a9 77 andis. r9,r29,4 + 3584: 4c fd 82 41 beq 32d0 ret = kvmhv_handle_nested_set_rc(vcpu, gp, n_gpa, gpte, dsisr); - 3598: 00 00 df eb ld r30,0(r31) - 359c: a0 00 c1 ea ld r22,160(r1) + 3588: 00 00 df eb ld r30,0(r31) + 358c: a0 00 c1 ea ld r22,160(r1) pgflags = _PAGE_ACCESSED; - 35a0: 00 01 20 39 li r9,256 - 35a4: b8 00 41 e9 ld r10,184(r1) + 3590: 00 01 20 39 li r9,256 + 3594: b8 00 41 e9 ld r10,184(r1) if (pgflags & ~gpte.rc) - 35a8: 79 50 29 7d andc. r9,r9,r10 - 35ac: 64 03 82 40 bne 3910 - 35b0: 78 f3 c3 7f mr r3,r30 + 3598: 79 50 29 7d andc. r9,r9,r10 + 359c: 64 03 82 40 bne 3900 + 35a0: 78 f3 c3 7f mr r3,r30 ret = kvmppc_hv_handle_set_rc(kvm, false, writing, - 35b4: 3e 06 74 56 clrlwi r20,r19,24 - 35b8: 01 00 00 48 bl 35b8 - 35bc: 00 00 00 60 nop - 35c0: d8 09 fe 80 lwz r7,2520(r30) - 35c4: 78 b3 c6 7e mr r6,r22 - 35c8: 78 a3 85 7e mr r5,r20 - 35cc: 00 00 80 38 li r4,0 - 35d0: 78 f3 c3 7f mr r3,r30 - 35d4: 01 00 00 48 bl 35d4 - 35d8: 00 00 00 60 nop + 35a4: 3e 06 74 56 clrlwi r20,r19,24 + 35a8: 01 00 00 48 bl 35a8 + 35ac: 00 00 00 60 nop + 35b0: d8 09 fe 80 lwz r7,2520(r30) + 35b4: 78 b3 c6 7e mr r6,r22 + 35b8: 78 a3 85 7e mr r5,r20 + 35bc: 00 00 80 38 li r4,0 + 35c0: 78 f3 c3 7f mr r3,r30 + 35c4: 01 00 00 48 bl 35c4 + 35c8: 00 00 00 60 nop if (!ret) { - 35dc: 00 00 23 2c cmpdi r3,0 - 35e0: 28 00 82 41 beq 3608 + 35cc: 00 00 23 2c cmpdi r3,0 + 35d0: 28 00 82 41 beq 35f8 ret = kvmppc_hv_handle_set_rc(kvm, true, writing, - 35e4: 08 00 fa 80 lwz r7,8(r26) - 35e8: 78 a3 85 7e mr r5,r20 - 35ec: 78 db 66 7f mr r6,r27 - 35f0: 01 00 80 38 li r4,1 - 35f4: 78 f3 c3 7f mr r3,r30 - 35f8: 01 00 00 48 bl 35f8 - 35fc: 00 00 00 60 nop + 35d4: 08 00 fa 80 lwz r7,8(r26) + 35d8: 78 a3 85 7e mr r5,r20 + 35dc: 78 db 66 7f mr r6,r27 + 35e0: 01 00 80 38 li r4,1 + 35e4: 78 f3 c3 7f mr r3,r30 + 35e8: 01 00 00 48 bl 35e8 + 35ec: 00 00 00 60 nop if (!ret) - 3600: 00 00 23 2c cmpdi r3,0 - 3604: bc 03 82 40 bne 39c0 + 35f0: 00 00 23 2c cmpdi r3,0 + 35f4: bc 03 82 40 bne 39b0 ret = -EINVAL; - 3608: ea ff 00 39 li r8,-22 + 35f8: ea ff 00 39 li r8,-22 if (unlikely(ms->mmiowb_pending)) { - 360c: 82 0c 2d a1 lhz r9,3202(r13) + 35fc: 82 0c 2d a1 lhz r9,3202(r13) struct mmiowb_state *ms = __mmiowb_state(); - 3610: 78 6b aa 7d mr r10,r13 + 3600: 78 6b aa 7d mr r10,r13 if (unlikely(ms->mmiowb_pending)) { - 3614: 00 00 09 2c cmpwi r9,0 - 3618: 58 04 82 40 bne 3a70 + 3604: 00 00 09 2c cmpwi r9,0 + 3608: 58 04 82 40 bne 3a60 ms->nesting_count--; - 361c: 80 0c 2a a1 lhz r9,3200(r10) - 3620: ff ff 29 39 addi r9,r9,-1 - 3624: 80 0c 2a b1 sth r9,3200(r10) - 3628: ac 04 20 7c lwsync - 362c: 00 00 20 39 li r9,0 - 3630: 00 00 3e b1 sth r9,0(r30) + 360c: 80 0c 2a a1 lhz r9,3200(r10) + 3610: ff ff 29 39 addi r9,r9,-1 + 3614: 80 0c 2a b1 sth r9,3200(r10) + 3618: ac 04 20 7c lwsync + 361c: 00 00 20 39 li r9,0 + 3620: 00 00 3e b1 sth r9,0(r30) if (ret) - 3634: 00 00 28 2c cmpdi r8,0 - 3638: 88 01 82 40 bne 37c0 + 3624: 00 00 28 2c cmpdi r8,0 + 3628: 88 01 82 40 bne 37b0 if (!(dsisr & (DSISR_BAD_FAULT_64S | DSISR_NOHPTE | - 363c: 1a ec 20 3d lis r9,-5094 - 3640: 0e 40 29 61 ori r9,r9,16398 - 3644: 38 48 a9 7f and r9,r29,r9 - 3648: 00 00 09 2c cmpwi r9,0 - 364c: 2c 00 82 41 beq 3678 + 362c: 1a ec 20 3d lis r9,-5094 + 3630: 0e 40 29 61 ori r9,r9,16398 + 3634: 38 48 a9 7f and r9,r29,r9 + 3638: 00 00 09 2c cmpwi r9,0 + 363c: 2c 00 82 41 beq 3668 dsisr &= ~DSISR_SET_RC; - 3650: 42 68 b5 7a rldicl r21,r21,45,1 - 3654: e0 00 41 fa std r18,224(r1) - 3658: 00 98 b5 7a rotldi r21,r21,19 - 365c: 88 fc ff 4b b 32e4 + 3640: 42 68 b5 7a rldicl r21,r21,45,1 + 3644: e0 00 41 fa std r18,224(r1) + 3648: 00 98 b5 7a rotldi r21,r21,19 + 364c: 88 fc ff 4b b 32d4 kvmppc_core_queue_data_storage(vcpu, ea, dsisr); - 3660: 78 ab a5 7e mr r5,r21 - 3664: 78 bb e4 7e mr r4,r23 - 3668: 78 fb e3 7f mr r3,r31 - 366c: 01 00 00 48 bl 366c - 3670: 00 00 00 60 nop + 3650: 78 ab a5 7e mr r5,r21 + 3654: 78 bb e4 7e mr r4,r23 + 3658: 78 fb e3 7f mr r3,r31 + 365c: 01 00 00 48 bl 365c + 3660: 00 00 00 60 nop return RESUME_GUEST; - 3674: e0 00 41 ea ld r18,224(r1) - 3678: e8 00 61 ea ld r19,232(r1) - 367c: f0 00 81 ea ld r20,240(r1) - 3680: f8 00 a1 ea ld r21,248(r1) - 3684: 00 01 c1 ea ld r22,256(r1) - 3688: 30 01 81 eb ld r28,304(r1) - 368c: 28 01 61 eb ld r27,296(r1) + 3664: e0 00 41 ea ld r18,224(r1) + 3668: e8 00 61 ea ld r19,232(r1) + 366c: f0 00 81 ea ld r20,240(r1) + 3670: f8 00 a1 ea ld r21,248(r1) + 3674: 00 01 c1 ea ld r22,256(r1) + 3678: 30 01 81 eb ld r28,304(r1) + 367c: 28 01 61 eb ld r27,296(r1) return RESUME_GUEST; - 3690: 00 00 c0 3b li r30,0 - 3694: 14 fe ff 4b b 34a8 - 3698: 00 00 00 60 nop - 369c: 00 00 42 60 ori r2,r2,0 + 3680: 00 00 c0 3b li r30,0 + 3684: 14 fe ff 4b b 3498 + 3688: 00 00 00 60 nop + 368c: 00 00 42 60 ori r2,r2,0 ret = kvmhv_handle_nested_set_rc(vcpu, gp, n_gpa, gpte, dsisr); - 36a0: 00 00 df eb ld r30,0(r31) - 36a4: a0 00 c1 ea ld r22,160(r1) + 3690: 00 00 df eb ld r30,0(r31) + 3694: a0 00 c1 ea ld r22,160(r1) pgflags |= _PAGE_DIRTY; - 36a8: 80 01 20 39 li r9,384 - 36ac: b8 00 41 e9 ld r10,184(r1) + 3698: 80 01 20 39 li r9,384 + 369c: b8 00 41 e9 ld r10,184(r1) if (writing) - 36b0: f8 fe ff 4b b 35a8 - 36b4: 00 00 00 60 nop - 36b8: 00 00 00 60 nop - 36bc: 00 00 42 60 ori r2,r2,0 + 36a0: f8 fe ff 4b b 3598 + 36a4: 00 00 00 60 nop + 36a8: 00 00 00 60 nop + 36ac: 00 00 42 60 ori r2,r2,0 if (!gpte_p->may_execute) { - 36c0: 04 00 29 71 andi. r9,r9,4 - 36c4: cc fe 82 40 bne 3590 + 36b0: 04 00 29 71 andi. r9,r9,4 + 36b4: cc fe 82 40 bne 3580 vcpu->arch.fault_dsisr = flags; - 36c8: 00 10 20 3d lis r9,4096 + 36b8: 00 10 20 3d lis r9,4096 flags |= SRR1_ISI_N_G_OR_CIP; - 36cc: 00 10 00 3d lis r8,4096 + 36bc: 00 10 00 3d lis r8,4096 vcpu->arch.fault_dsisr = flags; - 36d0: e0 1c 3f 91 stw r9,7392(r31) + 36c0: e0 1c 3f 91 stw r9,7392(r31) if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { - 36d4: e8 00 61 ea ld r19,232(r1) - 36d8: f0 00 81 ea ld r20,240(r1) - 36dc: f8 00 a1 ea ld r21,248(r1) - 36e0: 00 01 c1 ea ld r22,256(r1) - 36e4: 30 01 81 eb ld r28,304(r1) - 36e8: 94 fd ff 4b b 347c + 36c4: e8 00 61 ea ld r19,232(r1) + 36c8: f0 00 81 ea ld r20,240(r1) + 36cc: f8 00 a1 ea ld r21,248(r1) + 36d0: 00 01 c1 ea ld r22,256(r1) + 36d4: 30 01 81 eb ld r28,304(r1) + 36d8: 94 fd ff 4b b 346c + 36dc: 00 00 42 60 ori r2,r2,0 + 36e0: 01 00 20 3a li r17,1 + 36e4: 00 00 00 60 nop + 36e8: 00 00 00 60 nop 36ec: 00 00 42 60 ori r2,r2,0 - 36f0: 01 00 20 3a li r17,1 - 36f4: 00 00 00 60 nop - 36f8: 00 00 00 60 nop - 36fc: 00 00 42 60 ori r2,r2,0 return kmalloc_trace( - 3700: 00 00 22 3d addis r9,r2,0 + 36f0: 00 00 22 3d addis r9,r2,0 n_gpa &= ~((1UL << shift) - 1); - 3704: ff ff c0 3b li r30,-1 - 3708: 10 00 a0 38 li r5,16 - 370c: c0 0d 80 38 li r4,3520 + 36f4: ff ff c0 3b li r30,-1 + 36f8: 10 00 a0 38 li r5,16 + 36fc: c0 0d 80 38 li r4,3520 level = kvmppc_radix_shift_to_level(shift); - 3710: 74 00 21 92 stw r17,116(r1) - 3714: 00 00 29 e9 ld r9,0(r9) + 3700: 74 00 21 92 stw r17,116(r1) + 3704: 00 00 29 e9 ld r9,0(r9) n_gpa &= ~((1UL << shift) - 1); - 3718: 36 40 de 7f sld r30,r30,r8 - 371c: 38 d8 de 7f and r30,r30,r27 - 3720: 20 00 69 e8 ld r3,32(r9) - 3724: 01 00 00 48 bl 3724 - 3728: 00 00 00 60 nop - if (unlikely(!n_rmap)) - 372c: 00 00 23 2c cmpdi r3,0 - 3730: 78 1b 69 7c mr r9,r3 + 3708: 36 40 de 7f sld r30,r30,r8 + 370c: 38 d8 de 7f and r30,r30,r27 + 3710: 20 00 69 e8 ld r3,32(r9) + 3714: 01 00 00 48 bl 3714 + 3718: 00 00 00 60 nop + if (!n_rmap) + 371c: 00 00 23 2c cmpdi r3,0 + 3720: 78 1b 69 7c mr r9,r3 n_rmap = kzalloc(sizeof(*n_rmap), GFP_KERNEL); - 3734: 78 00 61 f8 std r3,120(r1) - if (unlikely(!n_rmap)) - 3738: cc 01 82 41 beq 3904 + 3724: 78 00 61 f8 std r3,120(r1) + if (!n_rmap) + 3728: cc 01 82 41 beq 38f4 (((unsigned long) gp->l1_lpid) << RMAP_NESTED_LPID_SHIFT); - 373c: 0a 00 5a e9 lwa r10,8(r26) + 372c: 0a 00 5a e9 lwa r10,8(r26) n_rmap->rmap = (n_gpa & RMAP_NESTED_GPA_MASK) | - 3740: e4 61 c4 7b rldicr r4,r30,12,39 + 3730: e4 61 c4 7b rldicr r4,r30,12,39 ret = kvmppc_create_pte(kvm, gp->shadow_pgtable, pte, n_gpa, level, - 3744: 74 00 e1 80 lwz r7,116(r1) - 3748: 78 f3 c6 7f mr r6,r30 - 374c: 78 00 01 38 addi r0,r1,120 - 3750: 78 bb e8 7e mr r8,r23 - 3754: 80 00 a1 e8 ld r5,128(r1) - 3758: 78 c3 03 7f mr r3,r24 + 3734: 74 00 e1 80 lwz r7,116(r1) + 3738: 78 f3 c6 7f mr r6,r30 + 373c: 78 00 01 38 addi r0,r1,120 + 3740: 78 bb e8 7e mr r8,r23 + 3744: 80 00 a1 e8 ld r5,128(r1) + 3748: 78 c3 03 7f mr r3,r24 n_rmap->rmap = (n_gpa & RMAP_NESTED_GPA_MASK) | - 375c: 02 a3 84 78 rldicl r4,r4,52,12 + 374c: 02 a3 84 78 rldicl r4,r4,52,12 (((unsigned long) gp->l1_lpid) << RMAP_NESTED_LPID_SHIFT); - 3760: c6 a2 4a 79 rldicr r10,r10,52,11 + 3750: c6 a2 4a 79 rldicr r10,r10,52,11 n_rmap->rmap = (n_gpa & RMAP_NESTED_GPA_MASK) | - 3764: 78 23 4a 7d or r10,r10,r4 - 3768: 08 00 49 f9 std r10,8(r9) + 3754: 78 23 4a 7d or r10,r10,r4 + 3758: 08 00 49 f9 std r10,8(r9) rmapp = &memslot->arch.rmap[gfn - memslot->base_gfn]; - 376c: b0 00 7d e9 ld r11,176(r29) - 3770: c8 00 5d e9 ld r10,200(r29) + 375c: b0 00 7d e9 ld r11,176(r29) + 3760: c8 00 5d e9 ld r10,200(r29) ret = kvmppc_create_pte(kvm, gp->shadow_pgtable, pte, n_gpa, level, - 3774: 0c 00 3a 81 lwz r9,12(r26) - 3778: 10 00 9a e8 ld r4,16(r26) - 377c: 60 00 01 f8 std r0,96(r1) + 3764: 0c 00 3a 81 lwz r9,12(r26) + 3768: 10 00 9a e8 ld r4,16(r26) + 376c: 60 00 01 f8 std r0,96(r1) rmapp = &memslot->arch.rmap[gfn - memslot->base_gfn]; - 3780: 50 f8 6b 7d subf r11,r11,r31 - 3784: 24 1f 6b 79 rldicr r11,r11,3,60 + 3770: 50 f8 6b 7d subf r11,r11,r31 + 3774: 24 1f 6b 79 rldicr r11,r11,3,60 ret = kvmppc_create_pte(kvm, gp->shadow_pgtable, pte, n_gpa, level, - 3788: 14 5a 4a 7d add r10,r10,r11 - 378c: 01 00 00 48 bl 378c - 3790: 00 00 00 60 nop - 3794: 78 1b 7e 7c mr r30,r3 + 3778: 14 5a 4a 7d add r10,r10,r11 + 377c: 01 00 00 48 bl 377c + 3780: 00 00 00 60 nop + 3784: 78 1b 7e 7c mr r30,r3 kfree(n_rmap); - 3798: 78 00 61 e8 ld r3,120(r1) - 379c: 01 00 00 48 bl 379c - 37a0: 00 00 00 60 nop + 3788: 78 00 61 e8 ld r3,120(r1) + 378c: 01 00 00 48 bl 378c + 3790: 00 00 00 60 nop if (ret == -EAGAIN) - 37a4: f5 ff 3e 2c cmpdi r30,-11 - 37a8: 5c 01 82 41 beq 3904 - 37ac: d8 00 21 ea ld r17,216(r1) - 37b0: 98 fd ff 4b b 3548 - 37b4: 00 00 00 60 nop - 37b8: 00 00 00 60 nop - 37bc: 00 00 42 60 ori r2,r2,0 - 37c0: e8 00 61 ea ld r19,232(r1) - 37c4: f0 00 81 ea ld r20,240(r1) - 37c8: f8 00 a1 ea ld r21,248(r1) - 37cc: 00 01 c1 ea ld r22,256(r1) - 37d0: 30 01 81 eb ld r28,304(r1) + 3794: f5 ff 3e 2c cmpdi r30,-11 + 3798: 5c 01 82 41 beq 38f4 + 379c: d8 00 21 ea ld r17,216(r1) + 37a0: 98 fd ff 4b b 3538 + 37a4: 00 00 00 60 nop + 37a8: 00 00 00 60 nop + 37ac: 00 00 42 60 ori r2,r2,0 + 37b0: e8 00 61 ea ld r19,232(r1) + 37b4: f0 00 81 ea ld r20,240(r1) + 37b8: f8 00 a1 ea ld r21,248(r1) + 37bc: 00 01 c1 ea ld r22,256(r1) + 37c0: 30 01 81 eb ld r28,304(r1) kvmhv_invalidate_shadow_pte(vcpu, gp, n_gpa, NULL); - 37d4: 00 00 7f e8 ld r3,0(r31) - 37d8: 78 db 65 7f mr r5,r27 - 37dc: 78 d3 44 7f mr r4,r26 - 37e0: 00 00 c0 38 li r6,0 - 37e4: 01 00 00 48 bl 37e4 + 37c4: 00 00 7f e8 ld r3,0(r31) + 37c8: 78 db 65 7f mr r5,r27 + 37cc: 78 d3 44 7f mr r4,r26 + 37d0: 00 00 c0 38 li r6,0 + 37d4: 01 00 00 48 bl 37d4 return RESUME_GUEST; - 37e8: a4 fe ff 4b b 368c - 37ec: 00 00 42 60 ori r2,r2,0 + 37d8: a4 fe ff 4b b 367c + 37dc: 00 00 42 60 ori r2,r2,0 if (!pte_present(pte) || (writing && !(pte_val(pte) & _PAGE_WRITE))) { - 37f0: c0 01 92 40 bne cr4,39b0 + 37e0: c0 01 92 40 bne cr4,39a0 if (PMD_SHIFT < l1_shift) - 37f4: 00 00 22 3d addis r9,r2,0 + 37e4: 00 00 22 3d addis r9,r2,0 gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; - 37f8: 70 00 01 81 lwz r8,112(r1) - 37fc: 01 00 60 38 li r3,1 + 37e8: 70 00 01 81 lwz r8,112(r1) + 37ec: 01 00 60 38 li r3,1 if (PMD_SHIFT < l1_shift) - 3800: 00 00 49 e9 ld r10,0(r9) + 37f0: 00 00 49 e9 ld r10,0(r9) if (shift == PUD_SHIFT) - 3804: 00 00 22 3d addis r9,r2,0 - 3808: 00 00 29 e9 ld r9,0(r9) + 37f4: 00 00 22 3d addis r9,r2,0 + 37f8: 00 00 29 e9 ld r9,0(r9) gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; - 380c: 36 40 63 7c sld r3,r3,r8 + 37fc: 36 40 63 7c sld r3,r3,r8 if (PMD_SHIFT < l1_shift) - 3810: 00 00 aa e8 ld r5,0(r10) + 3800: 00 00 aa e8 ld r5,0(r10) gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; - 3814: d0 00 e3 7f neg r31,r3 + 3804: d0 00 e3 7f neg r31,r3 if (shift == PUD_SHIFT) - 3818: 00 00 e9 e8 ld r7,0(r9) + 3808: 00 00 e9 e8 ld r7,0(r9) perm |= gpte.may_read ? 0UL : _PAGE_READ; - 381c: a8 00 21 89 lbz r9,168(r1) + 380c: a8 00 21 89 lbz r9,168(r1) perm |= (gpte.rc & _PAGE_ACCESSED) ? 0UL : _PAGE_ACCESSED; - 3820: b8 00 c1 eb ld r30,184(r1) + 3810: b8 00 c1 eb ld r30,184(r1) gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; - 3824: 38 f8 df 7e and r31,r22,r31 + 3814: 38 f8 df 7e and r31,r22,r31 perm |= ((gpte.rc & _PAGE_DIRTY) && writing) ? 0UL : _PAGE_DIRTY; - 3828: 80 00 00 38 li r0,128 + 3818: 80 00 00 38 li r0,128 gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; - 382c: 02 84 ff 7b rldicl r31,r31,48,16 - perm |= gpte.may_read ? 0UL : _PAGE_READ; - 3830: f8 48 26 7d not r6,r9 + 381c: 02 84 ff 7b rldicl r31,r31,48,16 perm |= gpte.may_write ? 0UL : _PAGE_WRITE; - 3834: 02 00 2b 69 xori r11,r9,2 + 3820: 02 00 26 69 xori r6,r9,2 + perm |= gpte.may_read ? 0UL : _PAGE_READ; + 3824: f8 48 2b 7d not r11,r9 perm |= gpte.may_execute ? 0UL : _PAGE_EXEC; - 3838: 04 00 29 69 xori r9,r9,4 + 3828: 04 00 29 69 xori r9,r9,4 perm |= (gpte.rc & _PAGE_ACCESSED) ? 0UL : _PAGE_ACCESSED; - 383c: 00 01 ca 6b xori r10,r30,256 + 382c: 00 01 ca 6b xori r10,r30,256 perm |= ((gpte.rc & _PAGE_DIRTY) && writing) ? 0UL : _PAGE_DIRTY; - 3840: 80 00 de 73 andi. r30,r30,128 - perm |= gpte.may_read ? 0UL : _PAGE_READ; - 3844: 68 17 c6 78 rldic r6,r6,2,61 + 3830: 80 00 de 73 andi. r30,r30,128 perm |= gpte.may_write ? 0UL : _PAGE_WRITE; - 3848: bc 07 6b 55 rlwinm r11,r11,0,30,30 + 3834: bc 07 c6 54 rlwinm r6,r6,0,30,30 + perm |= gpte.may_read ? 0UL : _PAGE_READ; + 3838: 68 17 6b 79 rldic r11,r11,2,61 perm |= gpte.may_execute ? 0UL : _PAGE_EXEC; - 384c: e2 f7 29 79 rldicl r9,r9,62,63 + 383c: e2 f7 29 79 rldicl r9,r9,62,63 perm |= (gpte.rc & _PAGE_ACCESSED) ? 0UL : _PAGE_ACCESSED; - 3850: ee 05 4a 55 rlwinm r10,r10,0,23,23 + 3840: ee 05 4a 55 rlwinm r10,r10,0,23,23 perm |= gpte.may_write ? 0UL : _PAGE_WRITE; - 3854: 78 5b c6 7c or r6,r6,r11 + 3844: 78 5b c6 7c or r6,r6,r11 perm |= gpte.may_execute ? 0UL : _PAGE_EXEC; - 3858: 78 33 29 7d or r9,r9,r6 + 3848: 78 33 29 7d or r9,r9,r6 perm |= (gpte.rc & _PAGE_ACCESSED) ? 0UL : _PAGE_ACCESSED; - 385c: 78 4b 49 7d or r9,r10,r9 + 384c: 78 4b 49 7d or r9,r10,r9 perm |= ((gpte.rc & _PAGE_DIRTY) && writing) ? 0UL : _PAGE_DIRTY; - 3860: 08 00 82 41 beq 3868 - 3864: 28 3e 80 7b rldic r0,r28,7,56 + 3850: 08 00 82 41 beq 3858 + 3854: 28 3e 80 7b rldic r0,r28,7,56 pte = __pte(pte_val(pte) & ~perm); - 3868: f8 00 29 7d nor r9,r9,r0 + 3858: f8 00 29 7d nor r9,r9,r0 if (shift > l1_shift) { - 386c: 40 40 12 7c cmplw r18,r8 + 385c: 40 40 12 7c cmplw r18,r8 pte = __pte(pte_val(pte) & ~perm); - 3870: 22 00 26 79 rldicl r6,r9,32,32 - 3874: 3e c0 2a 55 rotlwi r10,r9,24 - 3878: 3e c0 cb 54 rotlwi r11,r6,24 - 387c: 1e 42 2a 51 rlwimi r10,r9,8,8,15 - 3880: 1e 42 cb 50 rlwimi r11,r6,8,8,15 - 3884: 3e 46 2a 51 rlwimi r10,r9,8,24,31 - 3888: 3e 46 cb 50 rlwimi r11,r6,8,24,31 - 388c: c6 07 4a 79 rldicr r10,r10,32,31 - 3890: 78 5b 4a 7d or r10,r10,r11 - 3894: 38 20 49 7d and r9,r10,r4 + 3860: 22 00 26 79 rldicl r6,r9,32,32 + 3864: 3e c0 2a 55 rotlwi r10,r9,24 + 3868: 3e c0 cb 54 rotlwi r11,r6,24 + 386c: 1e 42 2a 51 rlwimi r10,r9,8,8,15 + 3870: 1e 42 cb 50 rlwimi r11,r6,8,8,15 + 3874: 3e 46 2a 51 rlwimi r10,r9,8,24,31 + 3878: 3e 46 cb 50 rlwimi r11,r6,8,24,31 + 387c: c6 07 4a 79 rldicr r10,r10,32,31 + 3880: 78 5b 4a 7d or r10,r10,r11 + 3884: 38 20 49 7d and r9,r10,r4 if (shift > l1_shift) { - 3898: b8 00 80 41 blt 3950 + 3888: b8 00 80 41 blt 3940 level = kvmppc_radix_shift_to_level(shift); - 389c: 78 43 04 7d mr r4,r8 + 388c: 78 43 04 7d mr r4,r8 if (shift == PUD_SHIFT) - 38a0: 20 00 06 79 clrldi r6,r8,32 + 3890: 20 00 06 79 clrldi r6,r8,32 pte = __pte(pte_val(pte) & ~perm); - 38a4: 80 00 21 f9 std r9,128(r1) + 3894: 80 00 21 f9 std r9,128(r1) if (shift == PUD_SHIFT) - 38a8: 14 3a e5 7c add r7,r5,r7 - 38ac: 10 00 e7 38 addi r7,r7,16 - 38b0: 00 30 27 7c cmpd r7,r6 - 38b4: ac 01 82 41 beq 3a60 + 3898: 14 3a e5 7c add r7,r5,r7 + 389c: 10 00 e7 38 addi r7,r7,16 + 38a0: 00 30 27 7c cmpd r7,r6 + 38a4: ac 01 82 41 beq 3a50 if (shift == PMD_SHIFT) - 38b8: 10 00 a5 38 addi r5,r5,16 - 38bc: 00 30 25 7c cmpd r5,r6 - 38c0: 30 fe 82 41 beq 36f0 + 38a8: 10 00 a5 38 addi r5,r5,16 + 38ac: 00 30 25 7c cmpd r5,r6 + 38b0: 30 fe 82 41 beq 36e0 if (shift == PAGE_SHIFT) - 38c4: 10 00 04 2c cmpwi r4,16 - 38c8: 38 fe 82 41 beq 3700 + 38b4: 10 00 04 2c cmpwi r4,16 + 38b8: 38 fe 82 41 beq 36f0 WARN_ON_ONCE(1); - 38cc: 00 00 e0 0f twui r0,0 + 38bc: 00 00 e0 0f twui r0,0 vcpu->arch.fault_gpa = fault_addr; - 38d0: 88 00 41 e9 ld r10,136(r1) - 38d4: 02 00 de 67 oris r30,r30,2 + 38c0: 88 00 41 e9 ld r10,136(r1) + 38c4: 02 00 de 67 oris r30,r30,2 flags |= DSISR_PRTABLE_FAULT; - 38d8: 20 00 c8 7b clrldi r8,r30,32 + 38c8: 20 00 c8 7b clrldi r8,r30,32 vcpu->arch.fault_gpa = fault_addr; - 38dc: f0 1c 5f f9 std r10,7408(r31) - 38e0: 8c fb ff 4b b 346c - 38e4: 00 00 00 60 nop - 38e8: 00 00 00 60 nop - 38ec: 00 00 42 60 ori r2,r2,0 + 38cc: f0 1c 5f f9 std r10,7408(r31) + 38d0: 8c fb ff 4b b 345c + 38d4: 00 00 00 60 nop + 38d8: 00 00 00 60 nop + 38dc: 00 00 42 60 ori r2,r2,0 kvmppc_core_queue_data_storage(vcpu, ea, - 38f0: 78 bb e4 7e mr r4,r23 - 38f4: 78 fb e3 7f mr r3,r31 - 38f8: 00 0a a0 3c lis r5,2560 - 38fc: 01 00 00 48 bl 38fc - 3900: 00 00 00 60 nop + 38e0: 78 bb e4 7e mr r4,r23 + 38e4: 78 fb e3 7f mr r3,r31 + 38e8: 00 0a a0 3c lis r5,2560 + 38ec: 01 00 00 48 bl 38ec + 38f0: 00 00 00 60 nop return RESUME_GUEST; - 3904: d8 00 21 ea ld r17,216(r1) - 3908: 6c fd ff 4b b 3674 - 390c: 00 00 42 60 ori r2,r2,0 - 3910: e8 00 61 ea ld r19,232(r1) - 3914: f0 00 81 ea ld r20,240(r1) - 3918: f8 00 a1 ea ld r21,248(r1) - 391c: 00 01 c1 ea ld r22,256(r1) - 3920: 28 01 61 eb ld r27,296(r1) - 3924: 30 01 81 eb ld r28,304(r1) - 3928: 7c fb ff 4b b 34a4 - 392c: 00 00 42 60 ori r2,r2,0 + 38f4: d8 00 21 ea ld r17,216(r1) + 38f8: 6c fd ff 4b b 3664 + 38fc: 00 00 42 60 ori r2,r2,0 + 3900: e8 00 61 ea ld r19,232(r1) + 3904: f0 00 81 ea ld r20,240(r1) + 3908: f8 00 a1 ea ld r21,248(r1) + 390c: 00 01 c1 ea ld r22,256(r1) + 3910: 28 01 61 eb ld r27,296(r1) + 3914: 30 01 81 eb ld r28,304(r1) + 3918: 7c fb ff 4b b 3494 + 391c: 00 00 42 60 ori r2,r2,0 flags |= DSISR_UNSUPP_MMU; - 3930: 08 00 de 67 oris r30,r30,8 + 3920: 08 00 de 67 oris r30,r30,8 + 3924: 20 00 c8 7b clrldi r8,r30,32 + 3928: 34 fb ff 4b b 345c + 392c: 00 00 42 60 ori r2,r2,0 + flags |= DSISR_NOHPTE; + 3930: 00 40 de 67 oris r30,r30,16384 3934: 20 00 c8 7b clrldi r8,r30,32 - 3938: 34 fb ff 4b b 346c + 3938: 24 fb ff 4b b 345c 393c: 00 00 42 60 ori r2,r2,0 - flags |= DSISR_NOHPTE; - 3940: 00 40 de 67 oris r30,r30,16384 - 3944: 20 00 c8 7b clrldi r8,r30,32 - 3948: 24 fb ff 4b b 346c - 394c: 00 00 42 60 ori r2,r2,0 if (PMD_SHIFT < l1_shift) - 3950: 3e 06 94 56 clrlwi r20,r20,24 - 3954: 10 00 45 39 addi r10,r5,16 - 3958: 40 a0 2a 7c cmpld r10,r20 - 395c: 84 00 80 40 bge 39e0 + 3940: 3e 06 94 56 clrlwi r20,r20,24 + 3944: 10 00 45 39 addi r10,r5,16 + 3948: 40 a0 2a 7c cmpld r10,r20 + 394c: 84 00 80 40 bge 39d0 actual_shift = PMD_SHIFT; - 3960: 10 00 05 39 addi r8,r5,16 + 3950: 10 00 05 39 addi r8,r5,16 mask = (1UL << shift) - (1UL << actual_shift); - 3964: 01 00 40 39 li r10,1 + 3954: 01 00 40 39 li r10,1 level = kvmppc_radix_shift_to_level(shift); - 3968: 78 43 04 7d mr r4,r8 + 3958: 78 43 04 7d mr r4,r8 mask = (1UL << shift) - (1UL << actual_shift); - 396c: 36 40 4a 7d sld r10,r10,r8 + 395c: 36 40 4a 7d sld r10,r10,r8 if (shift == PUD_SHIFT) - 3970: 20 00 06 79 clrldi r6,r8,32 + 3960: 20 00 06 79 clrldi r6,r8,32 mask = (1UL << shift) - (1UL << actual_shift); - 3974: 50 18 4a 7d subf r10,r10,r3 + 3964: 50 18 4a 7d subf r10,r10,r3 shift = actual_shift; - 3978: 70 00 01 91 stw r8,112(r1) + 3968: 70 00 01 91 stw r8,112(r1) pte = __pte(pte_val(pte) | (gpa & mask)); - 397c: 38 b0 4a 7d and r10,r10,r22 - 3980: 22 00 4b 79 rldicl r11,r10,32,32 - 3984: 3e c0 43 55 rotlwi r3,r10,24 - 3988: 3e c0 60 55 rotlwi r0,r11,24 - 398c: 1e 42 43 51 rlwimi r3,r10,8,8,15 - 3990: 1e 42 60 51 rlwimi r0,r11,8,8,15 - 3994: 3e 46 43 51 rlwimi r3,r10,8,24,31 - 3998: 3e 46 60 51 rlwimi r0,r11,8,24,31 - 399c: c6 07 63 78 rldicr r3,r3,32,31 - 39a0: 78 03 63 7c or r3,r3,r0 - 39a4: 78 1b 29 7d or r9,r9,r3 - 39a8: 80 00 21 f9 std r9,128(r1) + 396c: 38 b0 4a 7d and r10,r10,r22 + 3970: 22 00 4b 79 rldicl r11,r10,32,32 + 3974: 3e c0 43 55 rotlwi r3,r10,24 + 3978: 3e c0 60 55 rotlwi r0,r11,24 + 397c: 1e 42 43 51 rlwimi r3,r10,8,8,15 + 3980: 1e 42 60 51 rlwimi r0,r11,8,8,15 + 3984: 3e 46 43 51 rlwimi r3,r10,8,24,31 + 3988: 3e 46 60 51 rlwimi r0,r11,8,24,31 + 398c: c6 07 63 78 rldicr r3,r3,32,31 + 3990: 78 03 63 7c or r3,r3,r0 + 3994: 78 1b 29 7d or r9,r9,r3 + 3998: 80 00 21 f9 std r9,128(r1) shift = actual_shift; - 39ac: fc fe ff 4b b 38a8 + 399c: fc fe ff 4b b 3898 if (!pte_present(pte) || (writing && !(pte_val(pte) & _PAGE_WRITE))) { - 39b0: e1 3f 89 78 rldicl. r9,r4,7,63 - 39b4: 18 fa 82 41 beq 33cc - 39b8: 3c fe ff 4b b 37f4 - 39bc: 00 00 42 60 ori r2,r2,0 + 39a0: e1 3f 89 78 rldicl. r9,r4,7,63 + 39a4: 18 fa 82 41 beq 33bc + 39a8: 3c fe ff 4b b 37e4 + 39ac: 00 00 42 60 ori r2,r2,0 ret = 0; - 39c0: 00 00 00 39 li r8,0 - 39c4: 48 fc ff 4b b 360c + 39b0: 00 00 00 39 li r8,0 + 39b4: 48 fc ff 4b b 35fc + 39b8: 00 00 00 60 nop + 39bc: 00 00 42 60 ori r2,r2,0 + bool kvm_ro = false; + 39c0: 00 00 c0 3b li r30,0 + 39c4: 5c f9 ff 4b b 3320 39c8: 00 00 00 60 nop 39cc: 00 00 42 60 ori r2,r2,0 - bool kvm_ro = false; - 39d0: 00 00 c0 3b li r30,0 - 39d4: 5c f9 ff 4b b 3330 - 39d8: 00 00 00 60 nop - 39dc: 00 00 42 60 ori r2,r2,0 - 39e0: 10 00 c0 38 li r6,16 - 39e4: 10 00 80 38 li r4,16 - 39e8: 01 00 40 3d lis r10,1 + 39d0: 10 00 c0 38 li r6,16 + 39d4: 10 00 80 38 li r4,16 + 39d8: 01 00 40 3d lis r10,1 unsigned int actual_shift = PAGE_SHIFT; - 39ec: 10 00 00 39 li r8,16 - 39f0: 84 ff ff 4b b 3974 - 39f4: 00 00 00 60 nop - 39f8: 00 00 00 60 nop - 39fc: 00 00 42 60 ori r2,r2,0 + 39dc: 10 00 00 39 li r8,16 + 39e0: 84 ff ff 4b b 3964 + 39e4: 00 00 00 60 nop + 39e8: 00 00 00 60 nop + 39ec: 00 00 42 60 ori r2,r2,0 switch (level) { - 3a00: ff ff e0 3f lis r31,-1 - 3a04: 01 00 60 3c lis r3,1 - 3a08: 10 00 00 39 li r8,16 - 3a0c: 38 fa ff 4b b 3444 + 39f0: ff ff e0 3f lis r31,-1 + 39f4: 01 00 60 3c lis r3,1 + 39f8: 10 00 00 39 li r8,16 + 39fc: 38 fa ff 4b b 3434 vcpu->arch.fault_dsisr = flags; - 3a10: 00 08 20 3d lis r9,2048 - 3a14: e0 1c 3f 91 stw r9,7392(r31) + 3a00: 00 08 20 3d lis r9,2048 + 3a04: e0 1c 3f 91 stw r9,7392(r31) if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { - 3a18: e8 00 61 ea ld r19,232(r1) - 3a1c: f0 00 81 ea ld r20,240(r1) - 3a20: f8 00 a1 ea ld r21,248(r1) - 3a24: 00 01 c1 ea ld r22,256(r1) - 3a28: 30 01 81 eb ld r28,304(r1) - 3a2c: 68 fa ff 4b b 3494 + 3a08: e8 00 61 ea ld r19,232(r1) + 3a0c: f0 00 81 ea ld r20,240(r1) + 3a10: f8 00 a1 ea ld r21,248(r1) + 3a14: 00 01 c1 ea ld r22,256(r1) + 3a18: 30 01 81 eb ld r28,304(r1) + 3a1c: 68 fa ff 4b b 3484 ms->mmiowb_pending = 0; - 3a30: 00 00 40 39 li r10,0 - 3a34: 82 0c 4d b1 sth r10,3202(r13) + 3a20: 00 00 40 39 li r10,0 + 3a24: 82 0c 4d b1 sth r10,3202(r13) mmiowb(); - 3a38: ac 04 00 7c hwsync - 3a3c: 5c f9 ff 4b b 3398 + 3a28: ac 04 00 7c hwsync + 3a2c: 5c f9 ff 4b b 3388 return PMD_SHIFT; - 3a40: 10 00 05 39 addi r8,r5,16 + 3a30: 10 00 05 39 addi r8,r5,16 gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; - 3a44: 01 00 60 38 li r3,1 - 3a48: 36 40 63 7c sld r3,r3,r8 - 3a4c: d0 00 e3 7f neg r31,r3 + 3a34: 01 00 60 38 li r3,1 + 3a38: 36 40 63 7c sld r3,r3,r8 + 3a3c: d0 00 e3 7f neg r31,r3 return PMD_SHIFT; - 3a50: f4 f9 ff 4b b 3444 - 3a54: 00 00 00 60 nop + 3a40: f4 f9 ff 4b b 3434 + 3a44: 00 00 00 60 nop + 3a48: 00 00 00 60 nop + 3a4c: 00 00 42 60 ori r2,r2,0 + 3a50: 02 00 20 3a li r17,2 + 3a54: 9c fc ff 4b b 36f0 3a58: 00 00 00 60 nop 3a5c: 00 00 42 60 ori r2,r2,0 - 3a60: 02 00 20 3a li r17,2 - 3a64: 9c fc ff 4b b 3700 - 3a68: 00 00 00 60 nop - 3a6c: 00 00 42 60 ori r2,r2,0 ms->mmiowb_pending = 0; - 3a70: 00 00 20 39 li r9,0 - 3a74: 82 0c 2d b1 sth r9,3202(r13) + 3a60: 00 00 20 39 li r9,0 + 3a64: 82 0c 2d b1 sth r9,3202(r13) mmiowb(); - 3a78: ac 04 00 7c hwsync - 3a7c: a0 fb ff 4b b 361c - 3a80: d8 00 21 fa std r17,216(r1) - 3a84: e0 00 41 fa std r18,224(r1) - 3a88: e8 00 61 fa std r19,232(r1) - 3a8c: f0 00 81 fa std r20,240(r1) - 3a90: f8 00 a1 fa std r21,248(r1) - 3a94: 00 01 c1 fa std r22,256(r1) - 3a98: 28 01 61 fb std r27,296(r1) - 3a9c: 30 01 81 fb std r28,304(r1) + 3a68: ac 04 00 7c hwsync + 3a6c: a0 fb ff 4b b 360c + 3a70: d8 00 21 fa std r17,216(r1) + 3a74: e0 00 41 fa std r18,224(r1) + 3a78: e8 00 61 fa std r19,232(r1) + 3a7c: f0 00 81 fa std r20,240(r1) + 3a80: f8 00 a1 fa std r21,248(r1) + 3a84: 00 01 c1 fa std r22,256(r1) + 3a88: 28 01 61 fb std r27,296(r1) + 3a8c: 30 01 81 fb std r28,304(r1) } - 3aa0: 01 00 00 48 bl 3aa0 - 3aa4: 00 00 00 60 nop + 3a90: 01 00 00 48 bl 3a90 + 3a94: 00 00 00 60 nop pr_err("KVM: L1 guest page shift (%d) less than our own (%d)\n", - 3aa8: 00 00 22 3d addis r9,r2,0 - 3aac: 3e 06 44 56 clrlwi r4,r18,24 - 3ab0: 10 00 a0 38 li r5,16 + 3a98: 00 00 22 3d addis r9,r2,0 + 3a9c: 3e 06 44 56 clrlwi r4,r18,24 + 3aa0: 10 00 a0 38 li r5,16 return -EINVAL; - 3ab4: ea ff c0 3b li r30,-22 + 3aa4: ea ff c0 3b li r30,-22 pr_err("KVM: L1 guest page shift (%d) less than our own (%d)\n", - 3ab8: 00 00 69 e8 ld r3,0(r9) - 3abc: 01 00 00 48 bl 3abc - 3ac0: 00 00 00 60 nop + 3aa8: 00 00 69 e8 ld r3,0(r9) + 3aac: 01 00 00 48 bl 3aac + 3ab0: 00 00 00 60 nop return -EINVAL; - 3ac4: 84 fa ff 4b b 3548 - 3ac8: 00 00 00 60 nop - 3acc: 00 00 42 60 ori r2,r2,0 + 3ab4: 84 fa ff 4b b 3538 + 3ab8: 00 00 00 60 nop + 3abc: 00 00 42 60 ori r2,r2,0 ... -0000000000003ad8 : +0000000000003ac8 : int kvmhv_nested_next_lpid(struct kvm *kvm, int lpid) { - 3ad8: f8 ff 4c e8 ld r2,-8(r12) - 3adc: 14 62 42 7c add r2,r2,r12 - 3ae0: a6 02 08 7c mflr r0 - 3ae4: 01 00 00 48 bl 3ae4 - 3ae8: a6 02 08 7c mflr r0 - 3aec: f8 ff e1 fb std r31,-8(r1) + 3ac8: f8 ff 4c e8 ld r2,-8(r12) + 3acc: 14 62 42 7c add r2,r2,r12 + 3ad0: a6 02 08 7c mflr r0 + 3ad4: 01 00 00 48 bl 3ad4 + 3ad8: a6 02 08 7c mflr r0 + 3adc: f8 ff e1 fb std r31,-8(r1) int ret = lpid + 1; - 3af0: 01 00 84 38 addi r4,r4,1 + 3ae0: 01 00 84 38 addi r4,r4,1 { - 3af4: 78 1b 7f 7c mr r31,r3 - 3af8: 10 00 01 f8 std r0,16(r1) - 3afc: c1 ff 21 f8 stdu r1,-64(r1) - 3b00: 78 0c 2d e9 ld r9,3192(r13) - 3b04: 28 00 21 f9 std r9,40(r1) - 3b08: 00 00 20 39 li r9,0 + 3ae4: 78 1b 7f 7c mr r31,r3 + 3ae8: 10 00 01 f8 std r0,16(r1) + 3aec: c1 ff 21 f8 stdu r1,-64(r1) + 3af0: 78 0c 2d e9 ld r9,3192(r13) + 3af4: 28 00 21 f9 std r9,40(r1) + 3af8: 00 00 20 39 li r9,0 int ret = lpid + 1; - 3b0c: 24 00 81 90 stw r4,36(r1) - 3b10: 01 00 00 48 bl 3b10 - 3b14: 00 00 00 60 nop + 3afc: 24 00 81 90 stw r4,36(r1) + 3b00: 01 00 00 48 bl 3b00 + 3b04: 00 00 00 60 nop spin_lock(&kvm->mmu_lock); if (!idr_get_next(&kvm->arch.kvm_nested_guest_idr, &ret)) - 3b18: 60 0c 7f 38 addi r3,r31,3168 - 3b1c: 24 00 81 38 addi r4,r1,36 - 3b20: 01 00 00 48 bl 3b20 - 3b24: 00 00 00 60 nop - 3b28: 00 00 23 2c cmpdi r3,0 - 3b2c: 64 00 82 41 beq 3b90 + 3b08: 60 0c 7f 38 addi r3,r31,3168 + 3b0c: 24 00 81 38 addi r4,r1,36 + 3b10: 01 00 00 48 bl 3b10 + 3b14: 00 00 00 60 nop + 3b18: 00 00 23 2c cmpdi r3,0 + 3b1c: 64 00 82 41 beq 3b80 if (unlikely(ms->mmiowb_pending)) { - 3b30: 82 0c 4d a1 lhz r10,3202(r13) + 3b20: 82 0c 4d a1 lhz r10,3202(r13) struct mmiowb_state *ms = __mmiowb_state(); - 3b34: 78 6b a9 7d mr r9,r13 + 3b24: 78 6b a9 7d mr r9,r13 if (unlikely(ms->mmiowb_pending)) { - 3b38: 00 00 0a 2c cmpwi r10,0 - 3b3c: 6c 00 82 40 bne 3ba8 + 3b28: 00 00 0a 2c cmpwi r10,0 + 3b2c: 6c 00 82 40 bne 3b98 ms->nesting_count--; - 3b40: 80 0c 49 a1 lhz r10,3200(r9) - 3b44: ff ff 4a 39 addi r10,r10,-1 - 3b48: 80 0c 49 b1 sth r10,3200(r9) - 3b4c: ac 04 20 7c lwsync - 3b50: 00 00 20 39 li r9,0 - 3b54: 00 00 3f b1 sth r9,0(r31) + 3b30: 80 0c 49 a1 lhz r10,3200(r9) + 3b34: ff ff 4a 39 addi r10,r10,-1 + 3b38: 80 0c 49 b1 sth r10,3200(r9) + 3b3c: ac 04 20 7c lwsync + 3b40: 00 00 20 39 li r9,0 + 3b44: 00 00 3f b1 sth r9,0(r31) ret = -1; spin_unlock(&kvm->mmu_lock); return ret; } - 3b58: 28 00 41 e9 ld r10,40(r1) - 3b5c: 78 0c 2d e9 ld r9,3192(r13) - 3b60: 79 4a 4a 7d xor. r10,r10,r9 - 3b64: 00 00 20 39 li r9,0 + 3b48: 28 00 41 e9 ld r10,40(r1) + 3b4c: 78 0c 2d e9 ld r9,3192(r13) + 3b50: 79 4a 4a 7d xor. r10,r10,r9 + 3b54: 00 00 20 39 li r9,0 return ret; - 3b68: 26 00 61 e8 lwa r3,36(r1) + 3b58: 26 00 61 e8 lwa r3,36(r1) } - 3b6c: 4c 00 82 40 bne 3bb8 - 3b70: 40 00 21 38 addi r1,r1,64 - 3b74: 10 00 01 e8 ld r0,16(r1) - 3b78: f8 ff e1 eb ld r31,-8(r1) - 3b7c: a6 03 08 7c mtlr r0 - 3b80: 20 00 80 4e blr - 3b84: 00 00 00 60 nop - 3b88: 00 00 00 60 nop - 3b8c: 00 00 42 60 ori r2,r2,0 + 3b5c: 4c 00 82 40 bne 3ba8 + 3b60: 40 00 21 38 addi r1,r1,64 + 3b64: 10 00 01 e8 ld r0,16(r1) + 3b68: f8 ff e1 eb ld r31,-8(r1) + 3b6c: a6 03 08 7c mtlr r0 + 3b70: 20 00 80 4e blr + 3b74: 00 00 00 60 nop + 3b78: 00 00 00 60 nop + 3b7c: 00 00 42 60 ori r2,r2,0 if (unlikely(ms->mmiowb_pending)) { - 3b90: 82 0c 4d a1 lhz r10,3202(r13) + 3b80: 82 0c 4d a1 lhz r10,3202(r13) ret = -1; - 3b94: ff ff 20 39 li r9,-1 - 3b98: 24 00 21 91 stw r9,36(r1) + 3b84: ff ff 20 39 li r9,-1 + 3b88: 24 00 21 91 stw r9,36(r1) struct mmiowb_state *ms = __mmiowb_state(); - 3b9c: 78 6b a9 7d mr r9,r13 + 3b8c: 78 6b a9 7d mr r9,r13 if (unlikely(ms->mmiowb_pending)) { - 3ba0: 00 00 0a 2c cmpwi r10,0 - 3ba4: 9c ff 82 41 beq 3b40 + 3b90: 00 00 0a 2c cmpwi r10,0 + 3b94: 9c ff 82 41 beq 3b30 ms->mmiowb_pending = 0; - 3ba8: 00 00 40 39 li r10,0 - 3bac: 82 0c 4d b1 sth r10,3202(r13) + 3b98: 00 00 40 39 li r10,0 + 3b9c: 82 0c 4d b1 sth r10,3202(r13) mmiowb(); - 3bb0: ac 04 00 7c hwsync - 3bb4: 8c ff ff 4b b 3b40 + 3ba0: ac 04 00 7c hwsync + 3ba4: 8c ff ff 4b b 3b30 } - 3bb8: 01 00 00 48 bl 3bb8 - 3bbc: 00 00 00 60 nop + 3ba8: 01 00 00 48 bl 3ba8 + 3bac: 00 00 00 60 nop Disassembly of section .bss: @@ -5636,7 +5632,7 @@ Disassembly of section .debug_info: 10: 00 00 1d 00 .long 0x1d0000 ... *addr = swab64(*addr); - 20: 00 00 00 c0 lfs f0,0(0) + 20: 00 00 00 b0 sth r0,0(0) 24: 3b 00 00 00 .long 0x3b 28: 00 00 00 00 .long 0x0 2c: 00 00 00 4f mcrf cr6,cr0 @@ -6256,12 +6252,12 @@ static bool kvmhv_invalidate_shadow_pte( 6b0: 00 22 d2 01 attn pseries_partition_tb = kmalloc(sizeof(struct patb_entry) << ptb_order, 6b4: 11 9b 04 00 .long 0x49b11 - if (unlikely(!pseries_partition_tb)) { + if (!pseries_partition_tb) { 6b8: 00 d8 02 05 .long 0x502d800 pseries_partition_tb = kmalloc(sizeof(struct patb_entry) << ptb_order, 6bc: 00 00 00 00 .long 0x0 6c0: 22 d3 01 0f twnei r1,-11486 - if (unlikely(!pseries_partition_tb)) { + if (!pseries_partition_tb) { 6c4: 5c 00 00 00 .long 0x5c ptcr = __pa(pseries_partition_tb) | (ptb_order - 12); 6c8: e0 02 05 00 .long 0x502e0 @@ -6401,7 +6397,7 @@ static bool kvmhv_invalidate_shadow_pte( 864: 3f 10 2f 00 .long 0x2f103f 868: 00 00 00 01 .long 0x1000000 86c: 00 00 00 00 .long 0x0 - 870: 23 40 0e 4b bla ff0e4020 + 870: 23 40 0e 4b bla ff0e4020 struct patb_entry ptbl_entry; 874: 00 00 00 08 tdi 0,r0,0 { @@ -6634,7 +6630,7 @@ static void kvmhv_emulate_tlbie_lpid(str b38: 00 00 29 17 .long 0x17290000 b3c: 10 2f 00 00 .long 0x2f10 struct kvm *kvm = gp->l1_host; - b40: 00 20 00 4b b ffffffffff002b40 + b40: 00 20 00 4b b ffffffffff002b40 b44: 00 00 00 00 .long 0x0 b48: 10 01 24 da stfd f17,272(r4) b4c: 06 30 0d 00 .long 0xd3006 @@ -7217,7 +7213,7 @@ static void kvmhv_emulate_tlbie_lpid(str 1270: 00 08 20 2f cmpdi cr6,r0,2048 1274: 69 00 00 30 addic r0,r0,105 1278: 01 00 00 00 .long 0x1 - if (unlikely(!gp)) + if (!gp) 127c: 00 35 c3 0b tdi 30,r3,13568 1280: a5 03 00 00 .long 0x3a5 1284: 34 01 00 00 .long 0x134 @@ -7234,7 +7230,7 @@ static void kvmhv_emulate_tlbie_lpid(str 12a0: 00 0f 2f 00 .long 0x2f0f00 12a4: 00 00 02 00 .long 0x20000 12a8: 1b 00 00 00 .long 0x1b - 12ac: 00 f8 16 48 b 170aac + 12ac: 00 f8 16 48 b 170aac 12b0: 02 08 4c 14 .long 0x144c0802 return (pgd_t *)__get_free_page(pgtable_gfp_flags(mm, PGALLOC_GFP)); 12b4: 00 00 02 00 .long 0x20000 @@ -7279,7 +7275,7 @@ static void kvmhv_emulate_tlbie_lpid(str 1324: 00 30 02 00 .long 0x23000 1328: 00 00 00 16 .long 0x16000000 kvmhv_release_nested(newgp); - 132c: 52 02 06 48 ba 60250 + 132c: 52 02 06 48 ba 60250 1330: 01 00 00 38 li r0,1 return NULL; 1334: 02 00 00 00 .long 0x2 @@ -7321,13 +7317,11 @@ static void kvmhv_emulate_tlbie_lpid(str 13a4: 00 00 00 00 .long 0x0 13a8: 16 5b 02 06 .long 0x6025b16 13ac: 52 01 00 00 .long 0x152 - ms->mmiowb_pending = 0; + pgd = kmem_cache_alloc(PGT_CACHE(PGD_INDEX_SIZE), 13b0: 80 02 00 00 .long 0x280 13b4: 00 00 16 5c rlwnm r22,r0,r0,0,0 - mmiowb(); 13b8: 02 06 52 01 .long 0x1520602 13bc: 00 00 88 02 .long 0x2880000 - pgd = kmem_cache_alloc(PGT_CACHE(PGD_INDEX_SIZE), 13c0: 00 00 00 00 .long 0x0 13c4: 16 5d 02 06 .long 0x6025d16 13c8: 52 01 00 00 .long 0x152 @@ -7335,11 +7329,13 @@ static void kvmhv_emulate_tlbie_lpid(str 13d0: 00 00 16 5e rlwnm r22,r16,r0,0,0 13d4: 02 06 52 01 .long 0x1520602 13d8: 00 00 98 02 .long 0x2980000 + if (unlikely(!pgd)) 13dc: 00 00 00 00 .long 0x0 + ms->mmiowb_pending = 0; 13e0: 16 60 02 06 .long 0x6026016 13e4: 52 01 00 00 .long 0x152 + mmiowb(); 13e8: a0 02 00 00 .long 0x2a0 - if (unlikely(!pgd)) 13ec: 00 00 16 61 ori r22,r8,0 pgd_free(kvm->mm, gp->shadow_pgtable); 13f0: 02 06 52 01 .long 0x1520602 @@ -7422,7 +7418,7 @@ static void kvmhv_emulate_tlbie_lpid(str 14ec: f7 14 00 00 .long 0x14f7 if (unlikely(ms->mmiowb_pending)) { 14f0: 0f 2f 00 00 .long 0x2f0f - 14f4: 00 3f 00 4b b ffffffffff0053f4 + 14f4: 00 3f 00 4b b ffffffffff0053f4 14f8: 00 00 00 00 .long 0x0 ms->nesting_count--; 14fc: 38 10 17 c9 lfd f8,4152(r23) @@ -7980,7 +7976,7 @@ static void kvmhv_emulate_tlbie_lpid(str delta_spurr = vcpu->arch.spurr - l2_hv.spurr; 1b04: 08 01 00 00 .long 0x108 delta_ic = vcpu->arch.ic - l2_hv.ic; - 1b08: 00 00 10 48 b 101b08 + 1b08: 00 00 10 48 b 101b08 hr->srr0 = vcpu->arch.shregs.srr0; 1b0c: 06 c5 00 00 .long 0xc506 1b10: 00 0c 01 00 .long 0x10c00 @@ -8313,7 +8309,7 @@ static void kvmhv_emulate_tlbie_lpid(str 1e4c: c5 00 00 00 .long 0xc5 1e50: 28 02 00 00 .long 0x228 return H_BAD_MODE; - 1e54: 00 00 14 48 b 141e54 + 1e54: 00 00 14 48 b 141e54 1e58: 01 06 c5 00 .long 0xc50601 1e5c: 00 00 2c 02 .long 0x22c0000 byteswap_hv_regs(&l2_hv); @@ -8348,7 +8344,7 @@ static void kvmhv_emulate_tlbie_lpid(str 1ebc: c5 00 00 00 .long 0xc5 1ec0: 78 02 00 00 .long 0x278 1ec4: 00 00 14 58 rlmi r20,r0,r0,0,0 - 1ec8: 01 0b f2 49 bl 1f229c8 + 1ec8: 01 0b f2 49 bl 1f229c8 1ecc: 00 00 80 02 .long 0x2800000 return kvm_vcpu_write_guest(vcpu, hv_ptr, l2_hv, size) || 1ed0: 00 00 00 00 .long 0x0 @@ -8565,7 +8561,7 @@ static void kvmhv_emulate_tlbie_lpid(str 216c: 06 00 00 00 .long 0x6 2170: 00 05 06 00 .long 0x60500 2174: 00 00 00 06 .long 0x6000000 - if (unlikely(!buf)) + if (!buf) 2178: 06 00 00 00 .long 0x6 217c: 00 07 06 00 .long 0x60700 gp = kvmhv_get_nested(vcpu->kvm, l1_lpid, false); @@ -8711,45 +8707,45 @@ static void kvmhv_emulate_tlbie_lpid(str rc = kvm_vcpu_write_guest(vcpu, gp_to, buf, n); 2338: 00 00 3b 85 lwzu r9,0(r27) 233c: 08 8c 20 00 .long 0x208c08 - return H_NO_MEM; + return H_PARAMETER; 2340: 00 04 01 00 .long 0x10400 2344: 00 00 00 3b li r24,0 2348: 86 09 52 01 .long 0x1520986 234c: 00 00 08 01 .long 0x1080000 + WARN_ON_ONCE(idx & ~0x1); 2350: 00 00 00 00 .long 0x0 2354: 3b 87 09 52 rlwimi. r9,r16,16,28,29 2358: 01 00 00 10 vmul10cuq v0,v0 235c: 01 00 00 00 .long 0x1 - return H_PARAMETER; 2360: 00 3b 88 08 tdeqi r8,15104 + return H_NO_MEM; 2364: ac 1a 00 00 .long 0x1aac 2368: 18 00 18 20 subfic r0,r24,24 236c: 3b 8b 03 b6 sthu r16,-29893(r3) - WARN_ON_ONCE(idx & ~0x1); 2370: 23 00 00 33 addic r24,r0,35 2374: 00 00 00 00 .long 0x0 2378: 3b 8c 1a e9 .long 0xe91a8c3b 237c: 21 00 00 08 tdi 0,r0,33 2380: 00 01 00 00 .long 0x100 2384: 00 00 3b 8d lbzu r9,0(r27) +{ 2388: 08 08 01 00 .long 0x10808 238c: 00 01 01 00 .long 0x10100 2390: 00 00 00 3b li r24,0 2394: 8e 08 6e 19 .long 0x196e088e -{ 2398: 00 00 02 01 .long 0x1020000 239c: 00 00 00 00 .long 0x0 23a0: 3b 8f 09 52 rlwimi. r9,r16,17,28,29 23a4: 01 00 00 08 tdi 0,r0,1 + for (psize = 0; psize < MMU_PAGE_COUNT; psize++) { 23a8: 01 00 00 00 .long 0x1 + int shift, shadow_shift; 23ac: 00 3b 90 08 tdeqi r16,15104 +{ 23b0: 9e 19 00 00 .long 0x199e 23b4: 10 00 18 20 subfic r0,r24,16 - for (psize = 0; psize < MMU_PAGE_COUNT; psize++) { 23b8: 3b 93 03 02 .long 0x203933b - int shift, shadow_shift; 23bc: 24 00 00 33 addic r24,r0,36 -{ 23c0: 00 00 00 00 .long 0x0 23c4: 3b 94 1b 0c twi 0,r27,-27589 23c8: 22 00 00 08 tdi 0,r0,34 @@ -8758,102 +8754,102 @@ static void kvmhv_emulate_tlbie_lpid(str 23d4: 08 08 01 00 .long 0x10808 23d8: 00 01 01 00 .long 0x10100 23dc: 00 00 00 3b li r24,0 + struct kvm *kvm = vcpu->kvm; 23e0: 96 08 6e 19 .long 0x196e0896 + int shift, shadow_shift; 23e4: 00 00 02 01 .long 0x1020000 23e8: 00 00 00 00 .long 0x0 23ec: 3b 97 09 52 rlwimi. r9,r16,18,28,29 - struct kvm *kvm = vcpu->kvm; + if (mmu_psize_defs[psize].ap == ap) 23f0: 01 00 00 08 tdi 0,r0,1 - int shift, shadow_shift; + for (psize = 0; psize < MMU_PAGE_COUNT; psize++) { 23f4: 01 00 00 00 .long 0x1 + if (mmu_psize_defs[psize].ap == ap) 23f8: 00 3b 98 08 tdeqi r24,15104 23fc: 9e 19 00 00 .long 0x199e - if (mmu_psize_defs[psize].ap == ap) - 2400: 10 00 18 20 subfic r0,r24,16 for (psize = 0; psize < MMU_PAGE_COUNT; psize++) { + 2400: 10 00 18 20 subfic r0,r24,16 2404: 3b 9b 03 4e .long 0x4e039b3b - if (mmu_psize_defs[psize].ap == ap) 2408: 24 00 00 33 addic r24,r0,36 + if (mmu_psize_defs[psize].ap == ap) 240c: 00 00 00 00 .long 0x0 - for (psize = 0; psize < MMU_PAGE_COUNT; psize++) { 2410: 3b 9c 1a 2f cmpwi cr6,r26,-25541 2414: 22 00 00 08 tdi 0,r0,34 + return mmu_psize_defs[psize].shift; 2418: 00 01 00 00 .long 0x100 - if (mmu_psize_defs[psize].ap == ap) 241c: 00 00 3b 9d stbu r9,0(r27) + shift = ap_to_shift(ap); 2420: 08 08 01 00 .long 0x10808 + if (shift < 0) 2424: 00 01 01 00 .long 0x10100 - return mmu_psize_defs[psize].shift; 2428: 00 00 00 3b li r24,0 + gp = kvmhv_get_nested(kvm, lpid, false); 242c: 9e 08 6e 19 .long 0x196e089e - shift = ap_to_shift(ap); 2430: 00 00 02 01 .long 0x1020000 - if (shift < 0) + if (!gp) /* No such guest -> nothing to do */ 2434: 00 00 00 00 .long 0x0 2438: 3b 9f 09 52 rlwimi. r9,r16,19,28,29 - gp = kvmhv_get_nested(kvm, lpid, false); 243c: 01 00 00 08 tdi 0,r0,1 + addr &= ~((1UL << shift) - 1); 2440: 01 00 00 00 .long 0x1 - if (!gp) /* No such guest -> nothing to do */ + npages = 1UL << (shift - PAGE_SHIFT); 2444: 00 3b a0 08 tdlgei r0,15104 2448: 9e 19 00 00 .long 0x199e + mutex_lock(&gp->tlb_lock); 244c: 10 00 18 20 subfic r0,r24,16 - addr &= ~((1UL << shift) - 1); + addr = epn << 12; 2450: 3b a3 03 9a stb r16,-23749(r3) - npages = 1UL << (shift - PAGE_SHIFT); + npages -= 1UL << (shadow_shift - PAGE_SHIFT); 2454: 24 00 00 33 addic r24,r0,36 + addr &= ~((1UL << shift) - 1); 2458: 00 00 00 00 .long 0x0 mutex_lock(&gp->tlb_lock); 245c: 3b a4 1b 52 rlwimi. r27,r16,20,16,29 - addr = epn << 12; + npages = 1UL << (shift - PAGE_SHIFT); 2460: 22 00 00 08 tdi 0,r0,34 - npages -= 1UL << (shadow_shift - PAGE_SHIFT); - 2464: 00 01 00 00 .long 0x100 addr &= ~((1UL << shift) - 1); + 2464: 00 01 00 00 .long 0x100 2468: 00 00 3b a5 lhzu r9,0(r27) mutex_lock(&gp->tlb_lock); 246c: 08 08 01 00 .long 0x10808 - npages = 1UL << (shift - PAGE_SHIFT); 2470: 00 01 01 00 .long 0x10100 - addr &= ~((1UL << shift) - 1); 2474: 00 00 00 3b li r24,0 2478: a6 08 6e 19 .long 0x196e08a6 - mutex_lock(&gp->tlb_lock); 247c: 00 00 02 01 .long 0x1020000 + kvmhv_invalidate_shadow_pte(vcpu, gp, addr, &shadow_shift); 2480: 00 00 00 00 .long 0x0 2484: 3b a7 09 52 rlwimi. r9,r16,20,28,29 2488: 01 00 00 08 tdi 0,r0,1 248c: 01 00 00 00 .long 0x1 - kvmhv_invalidate_shadow_pte(vcpu, gp, addr, &shadow_shift); 2490: 00 3b a8 08 tdlgei r8,15104 + npages -= 1UL << (shadow_shift - PAGE_SHIFT); 2494: 9e 19 00 00 .long 0x199e 2498: 10 00 18 20 subfic r0,r24,16 + addr += 1UL << shadow_shift; 249c: 3b ab 03 e6 lxssp v16,-21704(r3) - 24a0: 24 00 00 33 addic r24,r0,36 npages -= 1UL << (shadow_shift - PAGE_SHIFT); + 24a0: 24 00 00 33 addic r24,r0,36 + addr += 1UL << shadow_shift; 24a4: 00 00 00 00 .long 0x0 + } while (npages > 0); 24a8: 3b ac 19 75 andis. r25,r8,44091 - addr += 1UL << shadow_shift; 24ac: 22 00 00 08 tdi 0,r0,34 - npages -= 1UL << (shadow_shift - PAGE_SHIFT); + mutex_unlock(&gp->tlb_lock); 24b0: 00 01 00 00 .long 0x100 - addr += 1UL << shadow_shift; 24b4: 00 00 3b ad lhau r9,0(r27) - } while (npages > 0); 24b8: 08 08 01 00 .long 0x10808 + kvmhv_put_nested(gp); 24bc: 00 01 01 00 .long 0x10100 - mutex_unlock(&gp->tlb_lock); 24c0: 00 00 00 3b li r24,0 24c4: ae 08 6e 19 .long 0x196e08ae 24c8: 00 00 02 01 .long 0x1020000 - kvmhv_put_nested(gp); + return 0; 24cc: 00 00 00 00 .long 0x0 +} 24d0: 3b af 09 52 rlwimi. r9,r16,21,28,29 24d4: 01 00 00 08 tdi 0,r0,1 24d8: 01 00 00 00 .long 0x1 - return 0; 24dc: 00 3b b0 08 tdlgei r16,15104 -} 24e0: 9e 19 00 00 .long 0x199e 24e4: 10 00 18 20 subfic r0,r24,16 24e8: 3b b3 03 32 addic r16,r3,-19653 @@ -8866,261 +8862,261 @@ static void kvmhv_emulate_tlbie_lpid(str 2504: 08 08 01 00 .long 0x10808 2508: 00 01 01 00 .long 0x10100 250c: 00 00 00 3b li r24,0 + return -EINVAL; 2510: b6 08 6e 19 .long 0x196e08b6 2514: 00 00 02 01 .long 0x1020000 2518: 00 00 00 00 .long 0x0 251c: 3b b7 09 52 rlwimi. r9,r16,22,28,29 - return -EINVAL; +} 2520: 01 00 00 08 tdi 0,r0,1 2524: 01 00 00 00 .long 0x1 2528: 00 3b b8 08 tdlgei r24,15104 252c: 9e 19 00 00 .long 0x199e -} 2530: 10 00 27 20 subfic r1,r7,16 2534: 3b 7f 02 90 stw r0,32571(r2) +{ 2538: 25 00 00 12 vmsummbm v16,v0,v0,v0 253c: 00 00 00 00 .long 0x0 2540: 3b 89 05 f7 stxssp v24,-30408(r5) 2544: 22 00 00 12 vmladduhm v16,v0,v0,v0 -{ 2548: 00 00 00 00 .long 0x0 254c: 3b 91 05 6a xori r5,r16,37179 2550: 23 00 00 12 vmsumudm v16,v0,v0,v0 + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2554: 00 00 00 00 .long 0x0 2558: 3b 99 05 b6 sthu r16,-26309(r5) +{ 255c: 23 00 00 12 vmsumudm v16,v0,v0,v0 2560: 00 00 00 00 .long 0x0 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2564: 3b a1 05 02 .long 0x205a13b 2568: 24 00 00 12 vmsumubm v16,v0,v0,v0 -{ + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 256c: 00 00 00 00 .long 0x0 2570: 3b a9 05 4e .long 0x4e05a93b + if (!gp) 2574: 24 00 00 12 vmsumubm v16,v0,v0,v0 2578: 00 00 00 00 .long 0x0 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); + pte = __find_linux_pte(gp->shadow_pgtable, ea, NULL, hshift); 257c: 3b b1 05 9a stb r16,-20165(r5) 2580: 24 00 00 12 vmsumubm v16,v0,v0,v0 - if (!gp) 2584: 00 00 00 00 .long 0x0 2588: 3b b9 05 e6 lxssp v16,-18120(r5) - pte = __find_linux_pte(gp->shadow_pgtable, ea, NULL, hshift); 258c: 24 00 00 00 .long 0x24 2590: 0b 00 00 00 .long 0xb +} 2594: 00 48 3b 72 andi. r27,r17,18432 2598: 08 4b 26 00 .long 0x264b08 259c: 00 33 00 00 .long 0x3300 25a0: 00 00 3b 73 andi. r27,r25,0 -} 25a4: 13 ac 20 00 .long 0x20ac13 25a8: 00 08 00 01 .long 0x1000800 25ac: 00 00 00 00 .long 0x0 25b0: 3b 74 07 08 tdi 0,r7,29755 25b4: 01 00 00 01 .long 0x1000001 +{ 25b8: 33 00 00 00 .long 0x33 25bc: 00 3b 75 14 .long 0x14753b00 25c0: c3 20 00 00 .long 0x20c3 25c4: 08 10 33 00 .long 0x331008 -{ 25c8: 00 00 00 3b li r24,0 25cc: 76 15 09 21 subfic r8,r9,5494 25d0: 00 00 08 18 lxvp vs0,0(r8) + struct llist_node *entry = ((struct llist_head *) rmapp)->first; 25d4: 33 00 00 00 .long 0x33 + u64 rmap, new_rmap = (*n_rmap)->rmap; 25d8: 00 3b 77 15 .long 0x15773b00 + if (!(*rmapp)) { 25dc: 3e 21 00 00 .long 0x213e + u64 rmap, new_rmap = (*n_rmap)->rmap; 25e0: 08 20 33 00 .long 0x332008 - struct llist_node *entry = ((struct llist_head *) rmapp)->first; + if (!(*rmapp)) { 25e4: 00 00 00 3b li r24,0 - u64 rmap, new_rmap = (*n_rmap)->rmap; 25e8: 78 16 8b 21 subfic r12,r11,5752 - if (!(*rmapp)) { 25ec: 00 00 08 28 cmplwi r8,0 - u64 rmap, new_rmap = (*n_rmap)->rmap; 25f0: 33 00 00 00 .long 0x33 - if (!(*rmapp)) { 25f4: 00 3b 79 17 .long 0x17793b00 25f8: ec 20 00 00 .long 0x20ec 25fc: 08 30 01 00 .long 0x13008 + for_each_nest_rmap_safe(cursor, entry, &rmap) { 2600: 00 00 00 3b li r24,0 2604: 7a 09 df 02 .long 0x2df097a + return !((rmap_1 ^ rmap_2) & (RMAP_NESTED_LPID_MASK | 2608: 00 00 07 0e twlti r7,0 + if (kvmhv_n_rmap_is_equal(rmap, new_rmap)) 260c: 63 70 75 00 .long 0x757063 - for_each_nest_rmap_safe(cursor, entry, &rmap) { 2610: 3b 7b 08 20 subfic r0,r8,31547 + if (rmap & RMAP_NESTED_IS_SINGLE_ENTRY) /* Not previously a list */ 2614: 01 00 00 08 tdi 0,r0,1 - return !((rmap_1 ^ rmap_2) & (RMAP_NESTED_LPID_MASK | 2618: 01 00 00 00 .long 0x1 - if (kvmhv_n_rmap_is_equal(rmap, new_rmap)) 261c: 00 3b 7c 08 tdi 3,r28,15104 2620: 52 01 00 00 .long 0x152 - if (rmap & RMAP_NESTED_IS_SINGLE_ENTRY) /* Not previously a list */ + return llist_add_batch(new, new, head); 2624: 10 01 00 00 .long 0x110 2628: 00 00 3b 7d cmpd cr2,r27,r0 262c: 08 52 01 00 .long 0x15208 2630: 00 18 01 00 .long 0x11800 - return llist_add_batch(new, new, head); + *n_rmap = NULL; 2634: 00 00 00 3b li r24,0 2638: 7e 08 52 01 .long 0x152087e 263c: 00 00 20 0e twi 17,r0,0 2640: 75 00 3b ba lm r17,117(r27) - *n_rmap = NULL; +} 2644: 04 32 25 00 .long 0x253204 2648: 00 28 00 43 bdnz- 4e48 <.debug_info+0x4e48> + *n_rmap = NULL; 264c: 00 00 00 00 .long 0x0 - 2650: 88 08 3b d1 stfs f9,2184(r27) } + 2650: 88 08 3b d1 stfs f9,2184(r27) 2654: 08 ac 26 00 .long 0x26ac08 2658: 00 01 00 00 .long 0x100 - *n_rmap = NULL; 265c: 00 00 3b d2 stfs f17,0(r27) -} + for_each_nest_rmap_safe(cursor, entry, &rmap) { 2660: 06 c5 00 00 .long 0xc506 2664: 00 00 01 00 .long 0x10000 + return !((rmap_1 ^ rmap_2) & (RMAP_NESTED_LPID_MASK | 2668: 00 00 00 3b li r24,0 + if (kvmhv_n_rmap_is_equal(rmap, new_rmap)) 266c: d3 1d ac 26 dozi r21,r12,7635 for_each_nest_rmap_safe(cursor, entry, &rmap) { 2670: 00 00 08 09 tdgti r8,0 2674: 00 00 00 00 .long 0x0 - return !((rmap_1 ^ rmap_2) & (RMAP_NESTED_LPID_MASK | - 2678: 3b d5 06 c5 lfsu f8,-10949(r6) if (kvmhv_n_rmap_is_equal(rmap, new_rmap)) - 267c: 00 00 00 d8 stfd f0,0(0) + 2678: 3b d5 06 c5 lfsu f8,-10949(r6) for_each_nest_rmap_safe(cursor, entry, &rmap) { + 267c: 00 00 00 d8 stfd f0,0(0) 2680: 02 09 00 00 .long 0x902 2684: 00 00 3b d6 stfsu f17,0(r27) - if (kvmhv_n_rmap_is_equal(rmap, new_rmap)) 2688: 1d ac 26 00 .long 0x26ac1d - for_each_nest_rmap_safe(cursor, entry, &rmap) { 268c: 00 e0 02 09 tdgti r2,-8192 + *rmapp = 0UL; 2690: 00 00 00 00 .long 0x0 2694: 3b d8 06 c5 lfsu f8,-10181(r6) 2698: 00 00 00 b0 sth r0,0(0) 269c: 05 09 00 00 .long 0x905 - *rmapp = 0UL; 26a0: 00 00 3b d9 stfd f9,0(r27) 26a4: 1e ac 26 00 .long 0x26ac1e 26a8: 00 b8 05 00 .long 0x5b800 + (*n_rmap)->list.next = (struct llist_node *) rmap; 26ac: 0d 90 25 00 .long 0x25900d 26b0: 00 bc 26 00 .long 0x26bc00 26b4: 00 0f 2f 00 .long 0x2f0f00 26b8: 00 00 09 00 .long 0x90000 - (*n_rmap)->list.next = (struct llist_node *) rmap; 26bc: 0b 00 00 00 .long 0xb 26c0: 00 04 3c 07 .long 0x73c0400 +} 26c4: 08 e4 26 00 .long 0x26e408 26c8: 00 01 00 00 .long 0x100 26cc: 00 00 3c 08 tdlgti r28,0 + *rmapp = new_rmap | RMAP_NESTED_IS_SINGLE_ENTRY; 26d0: 06 20 01 00 .long 0x12006 } 26d4: 00 00 01 00 .long 0x10000 + *rmapp = new_rmap | RMAP_NESTED_IS_SINGLE_ENTRY; 26d8: 00 00 00 3c lis r0,0 +} 26dc: 09 06 20 01 .long 0x1200609 - *rmapp = new_rmap | RMAP_NESTED_IS_SINGLE_ENTRY; 26e0: 00 00 02 00 .long 0x20000 -} 26e4: 55 00 00 00 .long 0x55 - *rmapp = new_rmap | RMAP_NESTED_IS_SINGLE_ENTRY; 26e8: 00 00 0d 80 lwz r0,0(r13) -} 26ec: 3d 41 61 2a cmpldi cr4,r1,16701 26f0: 00 00 01 00 .long 0x10000 26f4: 00 00 00 3d lis r8,0 +{ 26f8: 4a 11 d1 2a cmplwi cr5,r17,4426 26fc: 00 00 00 01 .long 0x1000000 2700: 00 00 00 00 .long 0x0 2704: 3d 57 06 20 subfic r0,r6,22333 -{ + if ((clr | set) & ~(_PAGE_DIRTY | _PAGE_ACCESSED)) 2708: 01 00 00 08 tdi 0,r0,1 +{ 270c: 01 00 00 00 .long 0x1 2710: 00 3d 58 06 .long 0x6583d00 - 2714: 20 01 00 00 .long 0x120 if ((clr | set) & ~(_PAGE_DIRTY | _PAGE_ACCESSED)) + 2714: 20 01 00 00 .long 0x120 + struct llist_node *entry = ((struct llist_head *) rmapp)->first; 2718: 0a 01 00 00 .long 0x10a { 271c: 00 00 3d 5b rlmi r29,r25,r0,0,0 2720: 06 52 01 00 .long 0x15206 - if ((clr | set) & ~(_PAGE_DIRTY | _PAGE_ACCESSED)) 2724: 00 10 01 00 .long 0x11000 - struct llist_node *entry = ((struct llist_head *) rmapp)->first; + if ((clr | set) & ~(_PAGE_DIRTY | _PAGE_ACCESSED)) 2728: 00 00 00 3d lis r8,0 -{ 272c: 5c 06 52 01 .long 0x152065c + mask = PTE_RPN_MASK & ~(nbytes - 1); 2730: 00 00 18 01 .long 0x1180000 + for_each_nest_rmap_safe(cursor, entry, &rmap) 2734: 00 00 00 00 .long 0x0 - if ((clr | set) & ~(_PAGE_DIRTY | _PAGE_ACCESSED)) 2738: 3d 5d 06 52 rlwimi. r6,r16,11,20,30 - 273c: 01 00 00 20 subfic r0,r0,1 mask = PTE_RPN_MASK & ~(nbytes - 1); + 273c: 01 00 00 20 subfic r0,r0,1 2740: 01 00 00 00 .long 0x1 for_each_nest_rmap_safe(cursor, entry, &rmap) 2744: 00 3d 5e 08 tdllti r30,15616 2748: 9b 04 00 00 .long 0x49b - mask = PTE_RPN_MASK & ~(nbytes - 1); 274c: 28 01 00 00 .long 0x128 2750: 00 00 3d 5f rlwnm r29,r25,r0,0,0 - for_each_nest_rmap_safe(cursor, entry, &rmap) + unsigned int shift, lpid; 2754: 06 52 01 00 .long 0x15206 2758: 00 30 01 00 .long 0x13000 275c: 00 00 00 3d lis r8,0 2760: 60 06 16 01 .long 0x1160660 - unsigned int shift, lpid; 2764: 00 00 38 01 .long 0x1380000 2768: 00 00 00 00 .long 0x0 276c: 3d 61 05 08 tdi 0,r5,24893 2770: 01 00 00 3a li r16,1 2774: 01 00 00 00 .long 0x1 + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2778: 00 3d 63 05 .long 0x5633d00 277c: 08 01 00 00 .long 0x108 2780: 3b 01 00 00 .long 0x13b 2784: 00 00 3d 66 oris r29,r17,0 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2788: 15 d6 2a 00 .long 0x2ad615 278c: 00 40 01 00 .long 0x14000 + for_each_nest_rmap_safe(cursor, entry, &rmap) 2790: 00 00 00 3d lis r8,0 2794: 68 14 e0 2a cmpldi cr5,r0,5224 2798: 00 00 48 01 .long 0x1480000 + lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; 279c: 00 00 00 00 .long 0x0 - for_each_nest_rmap_safe(cursor, entry, &rmap) + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 27a0: 3d 69 14 e0 lq r0,26928(r20) + for_each_nest_rmap_safe(cursor, entry, &rmap) 27a4: 2a 00 00 50 rlwimi r0,r0,0,0,21 + unsigned int shift, lpid; 27a8: 01 00 00 00 .long 0x1 - lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; + gpa = n_rmap & RMAP_NESTED_GPA_MASK; 27ac: 00 3d 6b 06 .long 0x66b3d00 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); + lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; 27b0: 52 01 00 00 .long 0x152 - for_each_nest_rmap_safe(cursor, entry, &rmap) + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 27b4: 58 50 00 00 .long 0x5058 - unsigned int shift, lpid; 27b8: 00 00 3d 72 andi. r29,r17,0 gpa = n_rmap & RMAP_NESTED_GPA_MASK; 27bc: 06 e5 2a 00 .long 0x2ae506 - lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; + if (!gp) 27c0: 00 80 80 01 .long 0x1808000 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 27c4: 00 00 00 00 .long 0x0 + pte = __find_linux_pte(gp->shadow_pgtable, ea, NULL, hshift); 27c8: 3d 76 06 20 subfic r0,r6,30269 - gpa = n_rmap & RMAP_NESTED_GPA_MASK; 27cc: 01 00 00 d0 stfs f0,1(0) - if (!gp) 27d0: 01 00 00 00 .long 0x1 27d4: 00 3d 77 05 .long 0x5773d00 - pte = __find_linux_pte(gp->shadow_pgtable, ea, NULL, hshift); 27d8: 08 01 00 00 .long 0x108 27dc: d2 01 00 00 .long 0x1d2 + if (ptep && pte_present(*ptep) && ((pte_val(*ptep) & mask) == hpa)) { 27e0: 00 00 3d 78 rotldi r29,r1,0 27e4: 05 08 01 00 .long 0x10805 27e8: 00 d3 01 00 .long 0x1d300 + return (pte_raw(pte) & cpu_to_be64(_PAGE_PRESENT | _PAGE_PTE)) == 27ec: 00 00 00 3d lis r8,0 - if (ptep && pte_present(*ptep) && ((pte_val(*ptep) & mask) == hpa)) { + if (pte_hw_valid(pte)) 27f0: 7c 06 3e 01 .long 0x13e067c 27f4: 00 00 d4 01 .long 0x1d40000 + return (pte_raw(pte) & cpu_to_be64(_PAGE_INVALID | _PAGE_PTE)) == 27f8: 00 00 00 00 .long 0x0 - return (pte_raw(pte) & cpu_to_be64(_PAGE_PRESENT | _PAGE_PTE)) == 27fc: 3d 7d 06 3e addis r16,r6,32061 - if (pte_hw_valid(pte)) 2800: 01 00 00 d8 stfd f0,1(0) 2804: 01 00 00 00 .long 0x1 - return (pte_raw(pte) & cpu_to_be64(_PAGE_INVALID | _PAGE_PTE)) == 2808: 00 3d 7e 06 .long 0x67e3d00 280c: cc 1f 00 00 .long 0x1fcc 2810: dc 01 00 00 .long 0x1dc @@ -9132,34 +9128,34 @@ static void kvmhv_emulate_tlbie_lpid(str 2828: 00 00 04 01 .long 0x1040000 282c: 09 00 00 00 .long 0x9 2830: 00 3d a4 16 .long 0x16a43d00 + for_each_nest_rmap_safe(cursor, entry, &rmap) 2834: a4 37 00 00 .long 0x37a4 2838: 08 09 09 00 .long 0x90908 283c: 00 00 00 3d lis r8,0 2840: a5 06 52 01 .long 0x15206a5 - for_each_nest_rmap_safe(cursor, entry, &rmap) + lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; 2844: 00 00 10 09 tdgti r16,0 + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2848: 09 00 00 00 .long 0x9 + unsigned int shift, lpid; 284c: 00 3d a6 06 .long 0x6a63d00 + gpa = n_rmap & RMAP_NESTED_GPA_MASK; 2850: 52 01 00 00 .long 0x152 lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; 2854: 18 09 09 00 .long 0x90918 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2858: 00 00 00 3d lis r8,0 - unsigned int shift, lpid; 285c: a7 06 52 01 .long 0x15206a7 gpa = n_rmap & RMAP_NESTED_GPA_MASK; 2860: 00 00 20 09 tdi 9,r0,0 - lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; + if (!gp) 2864: 09 00 00 00 .long 0x9 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2868: 00 3d a9 06 .long 0x6a93d00 + for_each_nest_rmap_safe(cursor, entry, &rmap) 286c: 52 01 00 00 .long 0x152 - gpa = n_rmap & RMAP_NESTED_GPA_MASK; 2870: 28 09 09 00 .long 0x90928 - if (!gp) 2874: 00 00 00 3d lis r8,0 2878: af 05 08 01 .long 0x10805af - for_each_nest_rmap_safe(cursor, entry, &rmap) 287c: 00 00 30 09 tdi 9,r16,0 2880: 09 00 00 00 .long 0x9 2884: 00 3d b0 05 .long 0x5b03d00 @@ -9172,21 +9168,21 @@ static void kvmhv_emulate_tlbie_lpid(str 28a0: 00 3d b3 05 .long 0x5b33d00 28a4: 08 01 00 00 .long 0x108 28a8: 33 09 09 00 .long 0x90933 +} 28ac: 00 00 00 3d lis r8,0 28b0: b4 05 08 01 .long 0x10805b4 28b4: 00 00 34 09 tdi 9,r20,0 28b8: 09 00 00 00 .long 0x9 -} 28bc: 00 3d b6 05 .long 0x5b63d00 28c0: 08 01 00 00 .long 0x108 28c4: 35 09 09 00 .long 0x90935 28c8: 00 00 00 3d lis r8,0 28cc: b8 06 52 01 .long 0x15206b8 + : "r" (ptep), "r" (cpu_to_be64(set)), "r" (cpu_to_be64(clr)) 28d0: 00 00 38 09 tdi 9,r24,0 28d4: 09 00 00 00 .long 0x9 28d8: 00 3d ba 06 .long 0x6ba3d00 28dc: 52 01 00 00 .long 0x152 - : "r" (ptep), "r" (cpu_to_be64(set)), "r" (cpu_to_be64(clr)) 28e0: 40 09 09 00 .long 0x90940 28e4: 00 00 00 3d lis r8,0 28e8: c0 10 2f 00 .long 0x2f10c0 @@ -9201,17 +9197,17 @@ static void kvmhv_emulate_tlbie_lpid(str 290c: 06 e5 2a 00 .long 0x2ae506 2910: 00 b0 09 09 tdgti r9,-20480 2914: 00 00 00 00 .long 0x0 + __asm__ __volatile__( 2918: 3d dd 08 9b stb r24,-8899(r8) 291c: 04 00 00 00 .long 0x4 2920: 0a 09 00 00 .long 0x90a 2924: 00 00 3d de stfdu f17,0(r29) - __asm__ __volatile__( 2928: 08 9b 04 00 .long 0x49b08 + kvmppc_radix_tlbie_page(kvm, gpa, shift, lpid); 292c: 00 08 0a 09 tdgti r10,2048 2930: 00 00 00 00 .long 0x0 2934: 3d e0 06 20 subfic r0,r6,-8131 2938: 01 00 00 10 vmul10cuq v0,v0 - kvmppc_radix_tlbie_page(kvm, gpa, shift, lpid); 293c: 0a 09 00 00 .long 0x90a 2940: 00 00 3d e6 psq_lu f17,0(r29),0,0 2944: 06 20 01 00 .long 0x12006 @@ -9228,142 +9224,144 @@ static void kvmhv_emulate_tlbie_lpid(str 2970: 01 00 00 18 stxvp vs0,0(0) 2974: 0a 09 00 00 .long 0x90a 2978: 00 00 3d eb ld r25,0(r29) +} 297c: 05 08 01 00 .long 0x10805 2980: 00 1c 0a 09 tdgti r10,7168 2984: 00 00 00 00 .long 0x0 2988: 3d ee 1d e1 lq r8,-4560(r29) -} 298c: 1f 00 00 20 subfic r0,r0,31 2990: 0a 09 00 00 .long 0x90a 2994: 00 00 3d ef .long 0xef3d0000 +{ 2998: 06 52 01 00 .long 0x15206 299c: 00 68 0a 09 tdgti r10,26624 29a0: 00 00 00 00 .long 0x0 29a4: 3d f0 14 e0 lq r0,-4048(r20) -{ 29a8: 2a 00 00 70 andi. r0,r0,42 29ac: 0a 09 00 00 .long 0x90a + if (!memslot) 29b0: 00 00 3d f7 psq_stu f25,0(r29),0,0 +{ 29b4: 1b 4b 1c 00 .long 0x1c4b1b 29b8: 00 78 0a 09 tdgti r10,30720 29bc: 00 00 00 00 .long 0x0 if (!memslot) 29c0: 3d fd 20 a9 lha r9,-707(0) -{ + gfn = (gpa >> PAGE_SHIFT) - memslot->base_gfn; 29c4: 37 00 00 88 lbz r0,55(0) 29c8: 0b 48 00 00 .long 0x480b 29cc: 00 00 3d 05 .long 0x53d0000 - if (!memslot) + end_gfn = gfn + (nbytes >> PAGE_SHIFT); 29d0: 01 06 e5 2a cmpldi cr5,r5,1537 - gfn = (gpa >> PAGE_SHIFT) - memslot->base_gfn; + addr_mask = PTE_RPN_MASK & ~(nbytes - 1); 29d4: 00 00 80 00 .long 0x800000 29d8: 0c 05 00 00 .long 0x50c + gfn = (gpa >> PAGE_SHIFT) - memslot->base_gfn; 29dc: 00 00 3d 06 .long 0x63d0000 - end_gfn = gfn + (nbytes >> PAGE_SHIFT); - 29e0: 01 08 9b 04 .long 0x49b0801 addr_mask = PTE_RPN_MASK & ~(nbytes - 1); + 29e0: 01 08 9b 04 .long 0x49b0801 29e4: 00 00 50 0c twllti r16,0 - 29e8: 05 00 00 00 .long 0x5 gfn = (gpa >> PAGE_SHIFT) - memslot->base_gfn; + 29e8: 05 00 00 00 .long 0x5 + end_gfn = gfn + (nbytes >> PAGE_SHIFT); 29ec: 00 3d 07 01 .long 0x1073d00 - addr_mask = PTE_RPN_MASK & ~(nbytes - 1); + for (; gfn < end_gfn; gfn++) { 29f0: 06 52 01 00 .long 0x15206 29f4: 00 58 0c 05 .long 0x50c5800 - gfn = (gpa >> PAGE_SHIFT) - memslot->base_gfn; 29f8: 00 00 00 00 .long 0x0 - end_gfn = gfn + (nbytes >> PAGE_SHIFT); 29fc: 3d 0a 01 06 .long 0x6010a3d - for (; gfn < end_gfn; gfn++) { 2a00: ae 37 00 00 .long 0x37ae 2a04: 60 0c 05 00 .long 0x50c60 2a08: 00 00 00 3d lis r8,0 2a0c: 10 01 14 b3 sth r24,272(r20) 2a10: 37 00 00 68 xori r0,r0,55 2a14: 0c 05 00 00 .long 0x50c + unsigned int shift, lpid; 2a18: 00 00 3d 11 vaddubm v9,v29,v0 2a1c: 01 06 20 01 .long 0x1200601 + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2a20: 00 00 70 0c twi 3,r16,0 2a24: 05 00 00 00 .long 0x5 - unsigned int shift, lpid; 2a28: 00 3d 15 01 .long 0x1153d00 2a2c: 10 2f 00 00 .long 0x2f10 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2a30: 00 78 0c 05 .long 0x50c7800 2a34: 00 00 00 00 .long 0x0 2a38: 3d 18 01 16 .long 0x1601183d 2a3c: bc 26 00 00 .long 0x26bc + unsigned long *rmap = &memslot->arch.rmap[gfn]; 2a40: 80 0c 05 00 .long 0x50c80 2a44: 00 00 00 3d lis r8,0 2a48: 1b 01 13 b8 lm r0,283(r19) + return xchg(&head->first, NULL); 2a4c: 37 00 00 88 lbz r0,55(0) - unsigned long *rmap = &memslot->arch.rmap[gfn]; 2a50: 0c 05 00 00 .long 0x50c 2a54: 00 00 3d 1c mulli r1,r29,0 2a58: 01 05 08 01 .long 0x1080501 - return xchg(&head->first, NULL); 2a5c: 00 00 90 0c tweqi r16,0 + for_each_nest_rmap_safe(cursor, entry, &rmap) { 2a60: 00 a2 01 00 attn 2a64: 00 00 00 3d lis r8,0 2a68: 25 1e 70 2a cmpldi cr4,r16,7717 2a6c: 00 00 01 5d rlwnm r1,r8,r0,0,0 - for_each_nest_rmap_safe(cursor, entry, &rmap) { 2a70: 04 e4 26 00 .long 0x26e404 2a74: 00 18 02 3d addis r8,r2,6144 2a78: c3 03 99 2a cmplwi cr5,r25,963 + lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; 2a7c: 00 00 01 00 .long 0x10000 + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2a80: 00 00 00 3d lis r8,0 + for_each_nest_rmap_safe(cursor, entry, &rmap) { 2a84: c5 07 08 01 .long 0x10807c5 + unsigned int shift, lpid; 2a88: 00 00 00 01 .long 0x1000000 - lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; 2a8c: 00 00 00 00 .long 0x0 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2a90: 3d c7 07 08 tdi 0,r7,-14531 - for_each_nest_rmap_safe(cursor, entry, &rmap) { 2a94: 01 00 00 01 .long 0x1000001 - unsigned int shift, lpid; 2a98: 00 18 10 3d addis r8,r16,6144 + for_each_nest_rmap_safe(cursor, entry, &rmap) { 2a9c: cb 03 bd 2a cmpldi cr5,r29,971 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); + if (!gp) 2aa0: 00 00 01 00 .long 0x10000 2aa4: 00 00 00 3d lis r8,0 + kfree(cursor); 2aa8: ce 08 52 01 .long 0x15208ce - for_each_nest_rmap_safe(cursor, entry, &rmap) { 2aac: 00 00 00 01 .long 0x1000000 - if (!gp) 2ab0: 00 00 00 00 .long 0x0 + for_each_nest_rmap_safe(cursor, entry, &rmap) { 2ab4: 3d d0 0d a5 lhzu r8,-12227(r13) - kfree(cursor); 2ab8: 03 00 00 08 tdi 0,r0,3 2abc: 00 27 10 3d addis r8,r16,9984 2ac0: c1 02 d1 2a cmplwi cr5,r17,705 - for_each_nest_rmap_safe(cursor, entry, &rmap) { 2ac4: 00 00 32 75 andis. r18,r9,0 + lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; 2ac8: 2a 00 00 32 addic r16,r0,42 + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2acc: 99 2a 00 00 .long 0x2a99 + unsigned int shift, lpid; 2ad0: 00 04 1c 17 .long 0x171c0400 + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2ad4: 00 00 04 f2 xsaddsp vs16,vs4,vs0 - lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; 2ad8: 19 00 00 10 vextdubvrx v0,v0,v0,r0 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2adc: 00 00 00 00 .long 0x0 - unsigned int shift, lpid; + if (!gp) 2ae0: 04 db 2a 00 .long 0x2adb04 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2ae4: 00 0d 52 01 .long 0x1520d00 + for_each_nest_rmap_safe(cursor, entry, &rmap) { 2ae8: 00 00 f5 2a cmpldi cr5,r21,0 2aec: 00 00 0f 2f cmpwi cr6,r15,0 - if (!gp) + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2af0: 00 00 00 09 tdgti r0,0 2af4: 00 59 00 00 .long 0x5900 - for_each_nest_rmap_safe(cursor, entry, &rmap) { 2af8: 00 00 80 18 lxvp vs4,0(0) 2afc: 80 3e e1 02 .long 0x2e13e80 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); + if (!gp) 2b00: a4 37 00 00 .long 0x37a4 2b04: 4c 00 00 00 .long 0x4c + gpa = n_rmap & RMAP_NESTED_GPA_MASK; 2b08: 00 3e e7 02 .long 0x2e73e00 + pte = __find_linux_pte(gp->shadow_pgtable, ea, NULL, hshift); 2b0c: 16 05 3e 00 .long 0x3e0516 - if (!gp) 2b10: 00 80 00 05 .long 0x5008000 2b14: 00 00 00 00 .long 0x0 gpa = n_rmap & RMAP_NESTED_GPA_MASK; @@ -9372,22 +9370,20 @@ static void kvmhv_emulate_tlbie_lpid(str 2b1c: 5c 00 00 00 .long 0x5c 2b20: 00 01 05 00 .long 0x50100 2b24: 00 00 00 3e lis r16,0 - gpa = n_rmap & RMAP_NESTED_GPA_MASK; + if (ptep && pte_present(*ptep) && ((pte_val(*ptep) & mask) == hpa)) 2b28: f6 02 0b 9b stb r24,758(r11) - pte = __find_linux_pte(gp->shadow_pgtable, ea, NULL, hshift); 2b2c: 04 00 00 08 tdi 0,r0,4 2b30: 01 05 00 00 .long 0x501 + return (pte_raw(pte) & cpu_to_be64(_PAGE_PRESENT | _PAGE_PTE)) == 2b34: 00 00 3e f7 psq_stu f25,0(r30),0,0 - if (ptep && pte_present(*ptep) && ((pte_val(*ptep) & mask) == hpa)) + if (pte_hw_valid(pte)) 2b38: 02 0f 2b 41 bdnzta 4*cr2+so,f00 <.debug_info+0xf00> 2b3c: 00 00 10 01 .long 0x1100000 + return (pte_raw(pte) & cpu_to_be64(_PAGE_INVALID | _PAGE_PTE)) == 2b40: 05 00 00 00 .long 0x5 - return (pte_raw(pte) & cpu_to_be64(_PAGE_PRESENT | _PAGE_PTE)) == 2b44: 00 3e f9 02 .long 0x2f93e00 - if (pte_hw_valid(pte)) 2b48: 11 5c 00 00 .long 0x5c11 2b4c: 00 14 01 05 .long 0x5011400 - return (pte_raw(pte) & cpu_to_be64(_PAGE_INVALID | _PAGE_PTE)) == 2b50: 00 00 00 00 .long 0x0 2b54: 3e fa 02 11 vsubeuqm v8,v2,v31,v8 2b58: 5c 00 00 00 .long 0x5c @@ -9399,24 +9395,24 @@ static void kvmhv_emulate_tlbie_lpid(str 2b70: 00 00 3e fe .long 0xfe3e0000 2b74: 02 1c c2 3f addis r30,r2,7170 2b78: 00 00 20 01 .long 0x1200000 + kvmppc_unmap_pte(kvm, ptep, gpa, shift, NULL, gp->shadow_lpid); 2b7c: 05 00 00 00 .long 0x5 2b80: 00 3e ff 02 .long 0x2ff3e00 2b84: 11 5c 00 00 .long 0x5c11 2b88: 00 30 01 05 .long 0x5013000 - kvmppc_unmap_pte(kvm, ptep, gpa, shift, NULL, gp->shadow_lpid); 2b8c: 00 00 00 00 .long 0x0 2b90: 3e 00 03 12 vsubeuqm v16,v3,v0,v0 2b94: 2f 00 00 00 .long 0x2f 2b98: 38 01 05 00 .long 0x50138 2b9c: 00 00 00 3e lis r16,0 + kfree(cursor); 2ba0: 01 03 17 a4 lhzu r0,769(r23) 2ba4: 37 00 00 40 bdnzfla lt,34 <.debug_info+0x34> + for (; gfn < end_gfn; gfn++) { 2ba8: 01 05 00 00 .long 0x501 2bac: 00 00 3e 0a tdi 17,r30,0 - kfree(cursor); 2bb0: 03 09 c5 00 .long 0xc50903 2bb4: 00 00 48 01 .long 0x1480000 - for (; gfn < end_gfn; gfn++) { 2bb8: 05 00 00 00 .long 0x5 2bbc: 00 3e 0b 03 .long 0x30b3e00 2bc0: 09 c5 00 00 .long 0xc509 @@ -9432,11 +9428,11 @@ static void kvmhv_emulate_tlbie_lpid(str 2be8: 00 00 3e 10 vaddubm v1,v30,v0 2bec: 03 09 c5 00 .long 0xc50903 2bf0: 00 00 58 01 .long 0x1580000 +} 2bf4: 05 00 00 00 .long 0x5 2bf8: 00 3e 11 03 .long 0x3113e00 2bfc: 09 c5 00 00 .long 0xc509 2c00: 00 5c 01 05 .long 0x5015c00 -} 2c04: 00 00 00 00 .long 0x0 2c08: 3e 12 03 11 vsubeuqm v8,v3,v2,v8 2c0c: 5c 00 00 00 .long 0x5c @@ -9466,28 +9462,28 @@ static void kvmhv_emulate_tlbie_lpid(str 2c6c: 05 00 00 00 .long 0x5 2c70: 00 3e 34 03 .long 0x3343e00 2c74: 15 01 04 00 .long 0x40115 +{ 2c78: 00 80 04 05 .long 0x5048000 2c7c: 00 00 00 00 .long 0x0 2c80: 3e 38 03 11 vsubeuqm v8,v3,v7,v0 2c84: 5c 00 00 00 .long 0x5c -{ 2c88: 88 04 05 00 .long 0x50488 2c8c: 00 00 00 3e lis r16,0 2c90: 3b 03 11 5c rlwnm. r17,r0,r0,12,29 2c94: 00 00 00 8c .long 0x8c000000 2c98: 04 05 00 00 .long 0x504 + ret = kvmhv_emulate_priv_tlbie(vcpu, kvmppc_get_gpr(vcpu, 4), 2c9c: 00 00 3e 3c addis r1,r30,0 2ca0: 03 09 c5 00 .long 0xc50903 + struct kvm *kvm = vcpu->kvm; 2ca4: 00 00 90 04 .long 0x4900000 + return r_val & 0xffffffff; 2ca8: 05 00 00 00 .long 0x5 - ret = kvmhv_emulate_priv_tlbie(vcpu, kvmppc_get_gpr(vcpu, 4), + if ((!r) || (prs) || (ric == 3) || (is == 1) || 2cac: 00 3e 3d 03 .long 0x33d3e00 2cb0: 15 8c 58 00 .long 0x588c15 - struct kvm *kvm = vcpu->kvm; 2cb4: 00 98 04 05 .long 0x5049800 - return r_val & 0xffffffff; 2cb8: 00 00 00 00 .long 0x0 - if ((!r) || (prs) || (ric == 3) || (is == 1) || 2cbc: 3e 3e 03 0f twnei r3,15934 2cc0: 91 58 00 00 .long 0x5891 2cc4: a0 04 05 00 .long 0x504a0 @@ -9498,219 +9494,219 @@ static void kvmhv_emulate_tlbie_lpid(str 2cd8: 00 00 3e 40 bdnzf 4*cr7+eq,2cd8 <.debug_info+0x2cd8> 2cdc: 03 0b 9b 04 .long 0x49b0b03 2ce0: 00 00 a8 05 .long 0x5a80000 + ((!is) && (ric == 1 || ric == 2))) 2ce4: 05 00 00 00 .long 0x5 2ce8: 00 3e 42 03 .long 0x3423e00 2cec: 13 b2 00 00 .long 0xb213 + ret = kvmhv_emulate_tlbie_tlb_addr(vcpu, lpid, ap, epn); 2cf0: 00 b0 05 05 .long 0x505b000 - ((!is) && (ric == 1 || ric == 2))) 2cf4: 00 00 00 00 .long 0x0 2cf8: 3e 44 03 13 vsubeuqm v24,v3,v8,v16 2cfc: b2 00 00 00 .long 0xb2 - ret = kvmhv_emulate_tlbie_tlb_addr(vcpu, lpid, ap, epn); 2d00: b2 05 05 00 .long 0x505b2 2d04: 00 00 00 3e lis r16,0 + if (ret) 2d08: 56 03 09 c5 lfsu f8,854(r9) 2d0c: 00 00 00 b4 .long 0xb4000000 2d10: 05 05 00 00 .long 0x505 2d14: 00 00 3e 57 rlwinm r30,r25,0,0,0 - if (ret) + return H_SUCCESS; 2d18: 03 09 c5 00 .long 0xc50903 2d1c: 00 00 b8 05 .long 0x5b80000 +} 2d20: 05 00 00 00 .long 0x5 2d24: 00 3e 58 03 .long 0x3583e00 - return H_SUCCESS; 2d28: 15 fd 57 00 .long 0x57fd15 2d2c: 00 bc 05 05 .long 0x505bc00 -} 2d30: 00 00 00 00 .long 0x0 2d34: 3e 59 03 14 .long 0x1403593e 2d38: d4 03 00 00 .long 0x3d4 2d3c: c0 05 05 00 .long 0x505c0 + switch (is) { 2d40: 00 00 00 3e lis r16,0 2d44: 5a 03 14 d4 stfsu f0,858(r20) 2d48: 03 00 00 d0 stfs f0,3(0) 2d4c: 05 05 00 00 .long 0x505 - switch (is) { 2d50: 00 00 3e 5b rlmi r30,r25,r0,0,0 2d54: 03 09 c5 00 .long 0xc50903 2d58: 00 00 e0 05 .long 0x5e00000 2d5c: 05 00 00 00 .long 0x5 2d60: 00 3e 5e 03 .long 0x35e3e00 + kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); 2d64: 15 1a 54 00 .long 0x541a15 + idr_for_each_entry(&kvm->arch.kvm_nested_guest_idr, gp, lpid) { 2d68: 00 e8 05 05 .long 0x505e800 2d6c: 00 00 00 00 .long 0x0 + int lpid; 2d70: 3e 60 03 14 .long 0x1403603e - kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); 2d74: d4 03 00 00 .long 0x3d4 - idr_for_each_entry(&kvm->arch.kvm_nested_guest_idr, gp, lpid) { 2d78: 08 06 05 00 .long 0x50608 + idr_for_each_entry(&kvm->arch.kvm_nested_guest_idr, gp, lpid) { 2d7c: 00 00 00 3e lis r16,0 - int lpid; 2d80: 62 03 15 ca lfd f16,866(r21) 2d84: 44 00 00 18 .long 0x18000044 2d88: 06 48 00 00 .long 0x4806 - idr_for_each_entry(&kvm->arch.kvm_nested_guest_idr, gp, lpid) { 2d8c: 00 00 3e 63 ori r30,r25,0 + if (unlikely(ms->mmiowb_pending)) { 2d90: 03 13 ff 44 .long 0x44ff1303 2d94: 00 00 08 40 bdnzf 4*cr2+lt,2d94 <.debug_info+0x2d94> + ms->nesting_count--; 2d98: 06 30 6d 6d xoris r13,r11,12294 2d9c: 00 3e 66 03 .long 0x3663e00 - if (unlikely(ms->mmiowb_pending)) { 2da0: 15 ba 58 00 .long 0x58ba15 2da4: 00 58 06 05 .long 0x5065800 - ms->nesting_count--; 2da8: 00 00 00 00 .long 0x0 + kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); 2dac: 3e 67 03 15 .long 0x1503673e 2db0: ba 58 00 00 .long 0x58ba 2db4: 60 06 05 00 .long 0x50660 2db8: 00 00 00 3e lis r16,0 - kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); 2dbc: 69 03 09 c5 lfsu f8,873(r9) 2dc0: 00 00 00 68 xnop + idr_for_each_entry(&kvm->arch.kvm_nested_guest_idr, gp, lpid) { 2dc4: 06 05 00 00 .long 0x506 2dc8: 00 00 3e 6a xori r30,r17,0 2dcc: 03 09 c5 00 .long 0xc50903 2dd0: 00 00 6c 06 .long 0x66c0000 - idr_for_each_entry(&kvm->arch.kvm_nested_guest_idr, gp, lpid) { 2dd4: 05 00 00 00 .long 0x5 2dd8: 00 3e 6b 03 .long 0x36b3e00 2ddc: 09 c5 00 00 .long 0xc509 2de0: 00 70 06 05 .long 0x5067000 + if (unlikely(ms->mmiowb_pending)) { 2de4: 00 00 00 00 .long 0x0 + struct mmiowb_state *ms = __mmiowb_state(); 2de8: 3e 6d 03 09 tdgti r3,27966 2dec: c5 00 00 00 .long 0xc5 - 2df0: 74 06 05 00 .long 0x50674 if (unlikely(ms->mmiowb_pending)) { + 2df0: 74 06 05 00 .long 0x50674 2df4: 00 00 00 3e lis r16,0 - struct mmiowb_state *ms = __mmiowb_state(); + ms->nesting_count--; 2df8: 6f 03 12 2f cmpwi cr6,r18,879 2dfc: 00 00 00 78 rotldi r0,r0,0 - if (unlikely(ms->mmiowb_pending)) { 2e00: 06 05 00 00 .long 0x506 2e04: 00 00 3e 72 andi. r30,r17,0 - ms->nesting_count--; 2e08: 03 11 5c 00 .long 0x5c1103 2e0c: 00 00 80 06 .long 0x6800000 + if (ret) 2e10: 21 00 00 00 .long 0x21 2e14: 00 3e 75 03 .long 0x3753e00 2e18: 0d 5c 00 00 .long 0x5c0d 2e1c: 00 01 20 34 addic. r1,r0,256 - if (ret) + gp = kvmhv_get_nested(kvm, lpid, false); 2e20: 21 00 00 00 .long 0x21 2e24: 00 3e 76 03 .long 0x3763e00 2e28: 0d 5c 00 00 .long 0x5c0d 2e2c: 00 01 21 34 addic. r1,r1,256 - gp = kvmhv_get_nested(kvm, lpid, false); + if (gp) { 2e30: 21 00 00 00 .long 0x21 2e34: 00 3e 77 03 .long 0x3773e00 + kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); 2e38: 0d 5c 00 00 .long 0x5c0d 2e3c: 00 01 22 34 addic. r1,r2,256 - if (gp) { 2e40: 21 00 00 00 .long 0x21 2e44: 00 3e 8b 03 .long 0x38b3e00 - kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); + kvmhv_put_nested(gp); 2e48: 0d 5c 00 00 .long 0x5c0d 2e4c: 00 01 40 34 addic. r2,r0,256 + if (ret) 2e50: 21 00 00 00 .long 0x21 2e54: 00 3e 8e 03 .long 0x38e3e00 - kvmhv_put_nested(gp); 2e58: 0d 5c 00 00 .long 0x5c0d 2e5c: 00 01 41 34 addic. r2,r1,256 - if (ret) 2e60: 21 00 00 00 .long 0x21 2e64: 00 3e 8f 03 .long 0x38f3e00 2e68: 0d 5c 00 00 .long 0x5c0d 2e6c: 00 01 42 34 addic. r2,r2,256 + ms->mmiowb_pending = 0; 2e70: 21 00 00 00 .long 0x21 2e74: 00 3e 91 03 .long 0x3913e00 + mmiowb(); 2e78: 0d 5c 00 00 .long 0x5c0d 2e7c: 00 01 43 34 addic. r2,r3,256 - ms->mmiowb_pending = 0; 2e80: 21 00 00 00 .long 0x21 + return H_PARAMETER; 2e84: 00 3e 94 03 .long 0x3943e00 - mmiowb(); 2e88: 0d 5c 00 00 .long 0x5c0d 2e8c: 00 01 44 34 addic. r2,r4,256 + ms->mmiowb_pending = 0; 2e90: 21 00 00 00 .long 0x21 - return H_PARAMETER; + mmiowb(); 2e94: 00 3e 9f 03 .long 0x39f3e00 2e98: 0d 5c 00 00 .long 0x5c0d 2e9c: 00 01 45 34 addic. r2,r5,256 - ms->mmiowb_pending = 0; 2ea0: 21 00 00 00 .long 0x21 - mmiowb(); 2ea4: 00 3e a1 03 .long 0x3a13e00 2ea8: 0d 5c 00 00 .long 0x5c0d 2eac: 00 01 46 34 addic. r2,r6,256 2eb0: 21 00 00 00 .long 0x21 +} 2eb4: 00 3e b0 03 .long 0x3b03e00 2eb8: 0d 5c 00 00 .long 0x5c0d 2ebc: 00 01 47 34 addic. r2,r7,256 2ec0: 21 00 00 00 .long 0x21 -} + return H_PARAMETER; 2ec4: 00 3e ba 03 .long 0x3ba3e00 2ec8: 22 5c 00 00 .long 0x5c22 2ecc: 00 01 48 34 addic. r2,r8,256 2ed0: 05 00 00 00 .long 0x5 - return H_PARAMETER; 2ed4: 00 3e bd 03 .long 0x3bd3e00 +{ 2ed8: 12 2f 00 00 .long 0x2f12 2edc: 00 90 06 05 .long 0x5069000 2ee0: 00 00 00 00 .long 0x0 2ee4: 3e bf 03 18 .long 0x1803bf3e -{ 2ee8: a4 0f 00 00 .long 0xfa4 2eec: 98 06 30 70 andi. r16,r1,1688 2ef0: 69 64 00 3e lis r16,25705 + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2ef4: c1 03 0b c7 lfsu f24,961(r11) +{ 2ef8: 02 00 00 d0 stfs f0,2(0) 2efc: 06 05 00 00 .long 0x506 2f00: 00 00 3e c2 lfs f17,0(r30) - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2f04: 03 0b c7 02 .long 0x2c70b03 -{ 2f08: 00 00 d4 06 .long 0x6d40000 2f0c: 05 00 00 00 .long 0x5 2f10: 00 3e c6 03 .long 0x3c63e00 2f14: 12 2f 00 00 .long 0x2f12 + if (!__find_nested(vcpu->kvm, lpid)) 2f18: 00 d8 06 05 .long 0x506d800 + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2f1c: 00 00 00 00 .long 0x0 +{ 2f20: 3e cf 03 1c mulli r0,r3,-12482 2f24: a4 37 00 00 .long 0x37a4 - if (!__find_nested(vcpu->kvm, lpid)) 2f28: e0 06 05 00 .long 0x506e0 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2f2c: 00 00 00 3e lis r16,0 -{ + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2f30: d2 03 1c a4 lhzu r0,978(r28) 2f34: 37 00 00 e8 .long 0xe8000037 2f38: 06 05 00 00 .long 0x506 2f3c: 00 00 3e d7 stfsu f25,0(r30) - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); + if (!__find_nested(vcpu->kvm, lpid)) 2f40: 03 14 d4 03 .long 0x3d41403 2f44: 00 00 f0 06 .long 0x6f00000 + if ((type & H_RPTI_TYPE_NESTED_ALL) == H_RPTI_TYPE_NESTED_ALL) 2f48: 05 00 00 00 .long 0x5 2f4c: 00 3e d8 03 .long 0x3d83e00 - if (!__find_nested(vcpu->kvm, lpid)) 2f50: 14 d4 03 00 .long 0x3d414 + if (start == 0 && end == -1) 2f54: 00 00 07 05 .long 0x5070000 - if ((type & H_RPTI_TYPE_NESTED_ALL) == H_RPTI_TYPE_NESTED_ALL) 2f58: 00 00 00 00 .long 0x0 2f5c: 3e d9 03 17 .long 0x1703d93e 2f60: a4 37 00 00 .long 0x37a4 - if (start == 0 && end == -1) + if (type & H_RPTI_TYPE_TLB) 2f64: 10 07 05 00 .long 0x50710 2f68: 00 00 00 3e lis r16,0 +} 2f6c: e1 03 14 d4 stfsu f0,993(r20) + return do_tlb_invalidate_nested_all(vcpu, lpid, RIC_FLUSH_ALL); 2f70: 03 00 00 18 .long 0x18000003 - if (type & H_RPTI_TYPE_TLB) +} 2f74: 07 05 00 00 .long 0x507 2f78: 00 00 3e e2 psq_l f17,0(r30),0,0 -} 2f7c: 03 14 d4 03 .long 0x3d41403 - return do_tlb_invalidate_nested_all(vcpu, lpid, RIC_FLUSH_ALL); 2f80: 00 00 28 07 .long 0x7280000 -} 2f84: 05 00 00 00 .long 0x5 2f88: 00 3e e5 03 .long 0x3e53e00 2f8c: 10 bb 4e 00 .long 0x4ebb10 @@ -9722,79 +9718,79 @@ static void kvmhv_emulate_tlbie_lpid(str 2fa4: 00 00 00 3e lis r16,0 2fa8: e7 03 14 d4 stfsu f0,999(r20) 2fac: 03 00 00 80 lwz r0,3(0) + int ret = H_P4; 2fb0: 07 05 00 00 .long 0x507 + page_size = 1UL << def->shift; 2fb4: 00 00 3e e8 ld r1,0(r30) 2fb8: 03 14 d4 03 .long 0x3d41403 2fbc: 00 00 90 07 .long 0x7900000 - int ret = H_P4; + nr_pages = (end - start) >> def->shift; 2fc0: 05 00 00 00 .long 0x5 - page_size = 1UL << def->shift; 2fc4: 00 3e ea 03 .long 0x3ea3e00 2fc8: 16 f7 58 00 .long 0x58f716 2fcc: 00 a0 07 05 .long 0x507a000 - nr_pages = (end - start) >> def->shift; 2fd0: 00 00 00 00 .long 0x0 + if (!(pg_sizes & def->h_rpt_pgsize)) 2fd4: 3e ed 03 10 vsubeuqm v0,v3,v29,v20 2fd8: 3c 40 00 00 .long 0x403c 2fdc: a8 07 05 00 .long 0x507a8 + for (psize = 0; psize < MMU_PAGE_COUNT; psize++) { 2fe0: 00 00 00 3e lis r16,0 - if (!(pg_sizes & def->h_rpt_pgsize)) 2fe4: f0 03 10 3c addis r0,r16,1008 2fe8: 40 00 00 b0 sth r0,64(0) + return ret; 2fec: 07 05 00 00 .long 0x507 - for (psize = 0; psize < MMU_PAGE_COUNT; psize++) { 2ff0: 00 00 3e f3 xsaddsp vs25,vs30,vs0 2ff4: 03 0b 9b 04 .long 0x49b0b03 2ff8: 00 00 b8 07 .long 0x7b80000 - return ret; 2ffc: 05 00 00 00 .long 0x5 + flush_lpid = nr_pages > tlb_range_flush_page_ceiling; 3000: 00 3e f5 03 .long 0x3f53e00 + nr_pages = (end - start) >> def->shift; 3004: 09 52 01 00 .long 0x15209 + flush_lpid = nr_pages > tlb_range_flush_page_ceiling; 3008: 00 c0 07 05 .long 0x507c000 + nr_pages = (end - start) >> def->shift; 300c: 00 00 00 00 .long 0x0 - flush_lpid = nr_pages > tlb_range_flush_page_ceiling; + if (flush_lpid) 3010: 3e f6 03 09 tdgti r3,-2498 - nr_pages = (end - start) >> def->shift; 3014: 52 01 00 00 .long 0x152 - flush_lpid = nr_pages > tlb_range_flush_page_ceiling; 3018: c8 07 05 00 .long 0x507c8 - nr_pages = (end - start) >> def->shift; + page_size = 1UL << def->shift; 301c: 00 00 00 3e lis r16,0 - if (flush_lpid) 3020: fb 03 09 52 rlwimi. r9,r16,0,15,29 3024: 01 00 00 d0 stfs f0,1(0) 3028: 07 05 00 00 .long 0x507 - page_size = 1UL << def->shift; 302c: 00 00 3e fc .long 0xfc3e0000 + } while (addr < end); 3030: 03 17 40 53 rlwimi. r0,r26,2,28,1 + ret = kvmhv_emulate_tlbie_tlb_addr(vcpu, lpid, ap, 3034: 00 00 d8 07 .long 0x7d80000 3038: 05 00 00 00 .long 0x5 303c: 00 3e fe 03 .long 0x3fe3e00 - } while (addr < end); 3040: 11 a9 53 00 .long 0x53a911 - ret = kvmhv_emulate_tlbie_tlb_addr(vcpu, lpid, ap, + addr += page_size; 3044: 00 f0 07 05 .long 0x507f000 + ret = kvmhv_emulate_tlbie_tlb_addr(vcpu, lpid, ap, 3048: 00 00 00 00 .long 0x0 + } while (addr < end); 304c: 3e 05 04 12 vsubeuqm v16,v4,v0,v20 + if (ret) 3050: 2f 00 00 00 .long 0x2f - addr += page_size; 3054: 20 08 05 00 .long 0x50820 - ret = kvmhv_emulate_tlbie_tlb_addr(vcpu, lpid, ap, + return H_P4; 3058: 00 00 00 3e lis r16,0 - } while (addr < end); 305c: 06 04 12 2f cmpwi cr6,r18,1030 - if (ret) 3060: 00 00 00 28 cmplwi r0,0 3064: 08 05 00 00 .long 0x508 - return H_P4; 3068: 00 00 3e 09 tdi 9,r30,0 306c: 04 09 52 01 .long 0x1520904 3070: 00 00 30 08 tdlgti r16,0 +} 3074: 05 00 00 00 .long 0x5 3078: 00 3e 0c 04 .long 0x40c3e00 307c: 09 52 01 00 .long 0x15209 3080: 00 38 08 05 .long 0x5083800 -} 3084: 00 00 00 00 .long 0x0 3088: 3e 0f 04 12 vsubeuqm v16,v4,v1,v28 308c: 2f 00 00 00 .long 0x2f @@ -9802,61 +9798,61 @@ static void kvmhv_emulate_tlbie_lpid(str 3094: 00 00 00 3e lis r16,0 3098: 10 04 12 2f cmpwi cr6,r18,1040 309c: 00 00 00 48 b 309c <.debug_info+0x309c> + gp = kvmhv_get_nested(kvm, lpid, false); 30a0: 08 05 00 00 .long 0x508 30a4: 00 00 3e 13 vaddubm v25,v30,v0 30a8: 04 1a e8 4e addpcis r23,6672 30ac: 00 00 50 08 tdllti r16,0 - gp = kvmhv_get_nested(kvm, lpid, false); + if (gp) { 30b0: 05 00 00 00 .long 0x5 30b4: 00 3e 1c 04 .long 0x41c3e00 + kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); 30b8: 1c 4d 5a 00 .long 0x5a4d1c 30bc: 00 a0 08 05 .long 0x508a000 - if (gp) { 30c0: 00 00 00 00 .long 0x0 30c4: 3e 1f 04 1c mulli r0,r4,7998 - kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); + kvmhv_put_nested(gp); 30c8: 4d 5a 00 00 .long 0x5a4d 30cc: a8 08 05 00 .long 0x508a8 30d0: 00 00 00 3e lis r16,0 30d4: 22 04 1c 4d .long 0x4d1c0422 - kvmhv_put_nested(gp); 30d8: 5a 00 00 b0 sth r0,90(0) 30dc: 08 05 00 00 .long 0x508 + gp = kvmhv_get_nested(kvm, lpid, false); 30e0: 00 00 3e 26 dozi r17,r30,0 30e4: 04 10 2f 5b rlmi r15,r25,r2,0,2 30e8: 00 00 b8 08 tdlgei r24,0 30ec: 05 00 00 00 .long 0x5 - gp = kvmhv_get_nested(kvm, lpid, false); + if (gp) { 30f0: 00 3e 30 04 .long 0x4303e00 30f4: 0a 9c 20 00 .long 0x209c0a + kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); 30f8: 00 c0 08 05 .long 0x508c000 30fc: 00 00 00 00 .long 0x0 - if (gp) { 3100: 3e 32 04 15 .long 0x1504323e 3104: 39 5b 00 00 .long 0x5b39 - kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); + kvmhv_put_nested(gp); 3108: d0 08 05 00 .long 0x508d0 310c: 00 00 00 3e lis r16,0 3110: 35 04 14 8a lbz r16,1077(r20) + gp = kvmhv_get_nested(kvm, lpid, false); 3114: 44 00 00 d8 stfd f0,68(0) - kvmhv_put_nested(gp); 3118: 08 05 00 00 .long 0x508 311c: 00 00 3e 36 addic. r17,r30,0 3120: 04 14 af 44 .long 0x44af1404 - gp = kvmhv_get_nested(kvm, lpid, false); + if (gp) { 3124: 00 00 e0 08 tdi 7,r0,0 3128: 05 00 00 00 .long 0x5 + kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); 312c: 00 3e 39 04 .long 0x4393e00 3130: 12 2f 00 00 .long 0x2f12 - if (gp) { 3134: 00 f0 08 05 .long 0x508f000 3138: 00 00 00 00 .long 0x0 - kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); + kvmhv_put_nested(gp); 313c: 3e 3a 04 12 vsubeuqm v16,v4,v7,v8 3140: 2f 00 00 00 .long 0x2f 3144: f8 08 30 66 oris r16,r17,2296 3148: 73 00 3e 3d addis r9,r30,115 - kvmhv_put_nested(gp); 314c: 04 15 43 5b rlmi r3,r26,r2,20,2 3150: 00 00 00 09 tdgti r0,0 3154: 05 00 00 00 .long 0x5 @@ -9864,15 +9860,15 @@ static void kvmhv_emulate_tlbie_lpid(str 315c: 18 4d 5b 00 .long 0x5b4d18 3160: 00 08 09 05 .long 0x5090800 3164: 00 00 00 00 .long 0x0 +{ 3168: 3e 43 04 19 .long 0x1904433e 316c: 57 5b 00 00 .long 0x5b57 3170: 10 09 05 00 .long 0x50910 3174: 00 00 00 3e lis r16,0 -{ 3178: 47 04 14 df stfdu f24,1095(r20) 317c: 5b 00 00 18 .long 0x1800005b 3180: 09 05 00 00 .long 0x509 - 3184: 00 00 3e 4a b fffffffffe3e3184 + 3184: 00 00 3e 4a b fffffffffe3e3184 3188: 04 19 8c 52 rlwimi r12,r20,3,4,2 318c: 00 00 20 09 tdi 9,r0,0 3190: 05 00 00 00 .long 0x5 @@ -9882,152 +9878,152 @@ static void kvmhv_emulate_tlbie_lpid(str 31a0: 00 00 00 00 .long 0x0 31a4: 3e 4c 04 0d twgti r4,19518 31a8: f2 49 00 00 .long 0x49f2 + struct kvm_nested_guest *gp = vcpu->arch.nested; 31ac: 30 09 05 00 .long 0x50930 +{ 31b0: 00 00 00 3e lis r16,0 31b4: 4d 04 0d f2 xsnmaddmsp vs48,vs45,vs0 31b8: 49 00 00 38 li r0,73 - struct kvm_nested_guest *gp = vcpu->arch.nested; + mutex_lock(&gp->tlb_lock); 31bc: 09 05 00 00 .long 0x509 -{ 31c0: 00 00 3e 4f .long 0x4f3e0000 - 31c4: 04 0d f2 49 b 1f23ec8 + 31c4: 04 0d f2 49 b 1f23ec8 31c8: 00 00 40 09 tdi 10,r0,0 - mutex_lock(&gp->tlb_lock); + struct rmap_nested *n_rmap; 31cc: 05 00 00 00 .long 0x5 + unsigned long dsisr = vcpu->arch.fault_dsisr; 31d0: 00 3e 50 04 .long 0x4503e00 + struct kvm *kvm = vcpu->kvm; 31d4: 15 60 4d 00 .long 0x4d6015 + unsigned long ea = vcpu->arch.fault_dar; 31d8: 00 48 09 05 .long 0x5094800 - struct rmap_nested *n_rmap; + struct kvmppc_pte gpte; 31dc: 00 00 00 00 .long 0x0 - unsigned long dsisr = vcpu->arch.fault_dsisr; 31e0: 3e 51 04 12 vsubeuqm v16,v4,v10,v4 - struct kvm *kvm = vcpu->kvm; 31e4: 2f 00 00 00 .long 0x2f - unsigned long ea = vcpu->arch.fault_dar; 31e8: 60 09 05 00 .long 0x50960 - struct kvmppc_pte gpte; 31ec: 00 00 00 3e lis r16,0 31f0: 52 04 0c 16 .long 0x160c0452 31f4: 03 00 00 68 xori r0,r0,3 31f8: 09 05 00 00 .long 0x509 + if (!gp->l1_gr_to_hr) { 31fc: 00 00 3e 53 rlwimi r30,r25,0,0,0 + struct rmap_nested *n_rmap; 3200: 04 11 5c 00 .long 0x5c1104 + pte_t pte, *pte_p; 3204: 00 00 70 09 tdi 11,r16,0 + unsigned int shift, l1_shift, level; 3208: 05 00 00 00 .long 0x5 - if (!gp->l1_gr_to_hr) { 320c: 00 3e 55 04 .long 0x4553e00 - struct rmap_nested *n_rmap; + if (!gp->l1_gr_to_hr) { 3210: 19 86 04 00 .long 0x48619 - pte_t pte, *pte_p; 3214: 00 78 09 05 .long 0x5097800 - unsigned int shift, l1_shift, level; + n_gpa = vcpu->arch.fault_gpa & ~0xF000000000000FFFULL; 3218: 00 00 00 00 .long 0x0 321c: 3e 59 04 19 .long 0x1904593e - if (!gp->l1_gr_to_hr) { + if (!(dsisr & DSISR_PRTABLE_FAULT)) 3220: 31 5c 00 00 .long 0x5c31 - 3224: 80 09 05 00 .long 0x50980 n_gpa = vcpu->arch.fault_gpa & ~0xF000000000000FFFULL; + 3224: 80 09 05 00 .long 0x50980 3228: 00 00 00 3e lis r16,0 - 322c: 5b 04 0c ee .long 0xee0c045b if (!(dsisr & DSISR_PRTABLE_FAULT)) + 322c: 5b 04 0c ee .long 0xee0c045b + n_gpa |= ea & 0xFFF; 3230: 42 00 00 88 lbz r0,66(0) - n_gpa = vcpu->arch.fault_gpa & ~0xF000000000000FFFULL; 3234: 09 05 00 00 .long 0x509 + u64 fault_addr, flags = dsisr & DSISR_ISSTORE; 3238: 00 00 3e 5c rlwnm r30,r1,r0,0,0 - if (!(dsisr & DSISR_PRTABLE_FAULT)) + ret = kvmppc_mmu_walk_radix_tree(vcpu, n_gpa, gpte_p, gp->l1_gr_to_hr, 323c: 04 11 5c 00 .long 0x5c1104 - n_gpa |= ea & 0xFFF; 3240: 00 00 8c 09 tdgei r12,0 3244: 05 00 00 00 .long 0x5 - u64 fault_addr, flags = dsisr & DSISR_ISSTORE; 3248: 00 3e 5e 04 .long 0x45e3e00 - ret = kvmppc_mmu_walk_radix_tree(vcpu, n_gpa, gpte_p, gp->l1_gr_to_hr, + u64 fault_addr, flags = dsisr & DSISR_ISSTORE; 324c: 13 ff 48 00 .long 0x48ff13 + ret = kvmppc_mmu_walk_radix_tree(vcpu, n_gpa, gpte_p, gp->l1_gr_to_hr, 3250: 00 90 09 05 .long 0x5099000 3254: 00 00 00 00 .long 0x0 + if (ret) { 3258: 3e 5f 04 1f mulli r24,r4,24382 - u64 fault_addr, flags = dsisr & DSISR_ISSTORE; 325c: e4 4d 00 00 .long 0x4de4 - ret = kvmppc_mmu_walk_radix_tree(vcpu, n_gpa, gpte_p, gp->l1_gr_to_hr, + if (ret == -EINVAL) { 3260: a0 09 05 00 .long 0x509a0 3264: 00 00 00 3e lis r16,0 - if (ret) { + } else if (ret == -ENOENT) { 3268: 62 04 09 52 rlwimi r9,r16,0,17,17 326c: 01 00 00 a0 lhz r0,1(0) - if (ret == -EINVAL) { + } else if (ret == -EFAULT) { 3270: 09 05 00 00 .long 0x509 3274: 00 00 3e 63 ori r30,r25,0 - } else if (ret == -ENOENT) { + if (ret == RESUME_HOST && 3278: 04 09 52 01 .long 0x1520904 + ret = kvmhv_translate_addr_nested(vcpu, gp, n_gpa, dsisr, &gpte); 327c: 00 00 a8 09 tdi 13,r8,0 - } else if (ret == -EFAULT) { + if (ret == RESUME_HOST && 3280: 05 00 00 00 .long 0x5 3284: 00 3e 66 04 .long 0x4663e00 - if (ret == RESUME_HOST && 3288: 0f ad 40 00 .long 0x40ad0f - ret = kvmhv_translate_addr_nested(vcpu, gp, n_gpa, dsisr, &gpte); 328c: 00 b0 09 05 .long 0x509b000 - if (ret == RESUME_HOST && 3290: 00 00 00 00 .long 0x0 + bool writing = !!(dsisr & DSISR_ISSTORE); 3294: 3e 69 04 13 vsubeuqm v24,v4,v13,v4 + if (dsisr & DSISR_ISSTORE) { 3298: ce 0a 00 00 .long 0xace 329c: b4 09 05 00 .long 0x509b4 32a0: 00 00 00 3e lis r16,0 - bool writing = !!(dsisr & DSISR_ISSTORE); 32a4: 6b 04 16 22 subfic r16,r22,1131 - if (dsisr & DSISR_ISSTORE) { + unsigned long dsisr = vcpu->arch.fault_dsisr; 32a8: 58 00 00 b8 lm r0,88(0) 32ac: 09 05 00 00 .long 0x509 + bool writing = !!(dsisr & DSISR_ISSTORE); 32b0: 00 00 3e 6f xoris r30,r25,0 32b4: 04 19 54 45 .long 0x45541904 - unsigned long dsisr = vcpu->arch.fault_dsisr; + if (dsisr & DSISR_ISSTORE) { 32b8: 00 00 c0 09 tdi 14,r0,0 + if (!gpte_p->may_write) { 32bc: 05 00 00 00 .long 0x5 - bool writing = !!(dsisr & DSISR_ISSTORE); 32c0: 00 3e 71 04 .long 0x4713e00 32c4: 17 a4 37 00 .long 0x37a417 - if (dsisr & DSISR_ISSTORE) { + if (dsisr & DSISR_SET_RC) { 32c8: 00 d0 09 05 .long 0x509d000 - if (!gpte_p->may_write) { 32cc: 00 00 00 00 .long 0x0 32d0: 3e 73 04 1b .long 0x1b04733e + l1_shift = gpte.page_shift; 32d4: 3b 5c 00 00 .long 0x5c3b - if (dsisr & DSISR_SET_RC) { 32d8: d8 09 05 00 .long 0x509d8 + if (l1_shift < PAGE_SHIFT) { 32dc: 00 00 00 3e lis r16,0 32e0: 98 04 0b 9b stb r24,1176(r11) - l1_shift = gpte.page_shift; + gpa = gpte.raddr; 32e4: 04 00 00 e0 psq_l f0,4(r0),0,0 + memslot = gfn_to_memslot(kvm, gfn); 32e8: 09 05 00 00 .long 0x509 - if (l1_shift < PAGE_SHIFT) { 32ec: 00 00 3e 9b stb r25,0(r30) 32f0: 04 15 45 5c rlwnm r5,r2,r2,20,2 - gpa = gpte.raddr; 32f4: 00 00 e8 09 tdi 15,r8,0 - memslot = gfn_to_memslot(kvm, gfn); + if (!memslot || (memslot->flags & KVM_MEMSLOT_INVALID)) { 32f8: 05 00 00 00 .long 0x5 32fc: 00 3e 9e 04 .long 0x49e3e00 3300: 15 4f 5c 00 .long 0x5c4f15 3304: 00 f0 09 05 .long 0x509f000 - if (!memslot || (memslot->flags & KVM_MEMSLOT_INVALID)) { 3308: 00 00 00 00 .long 0x0 330c: 3e a1 04 19 .long 0x1904a13e + if (memslot->flags & KVM_MEM_READONLY) { 3310: 59 5c 00 00 .long 0x5c59 3314: f8 09 05 00 .long 0x509f8 + if (writing) { 3318: 00 00 00 3e lis r16,0 + kvm_ro = true; 331c: a3 04 1c 63 ori r28,r24,1187 - if (memslot->flags & KVM_MEM_READONLY) { + mmu_seq = kvm->mmu_invalidate_seq; 3320: 5c 00 00 00 .long 0x5c + smp_rmb(); 3324: 0a 05 00 00 .long 0x50a - if (writing) { + pte = __pte(0); 3328: 00 00 3e a5 lhzu r9,0(r30) - kvm_ro = true; 332c: 04 16 9d 5c rlwnm r29,r4,r2,24,2 - mmu_seq = kvm->mmu_invalidate_seq; 3330: 00 00 08 0a tdlti r8,0 - smp_rmb(); 3334: 05 00 00 00 .long 0x5 - pte = __pte(0); 3338: 00 3e a8 04 .long 0x4a83e00 333c: 1b a7 5c 00 .long 0x5ca71b 3340: 00 10 0a 05 .long 0x50a1000 @@ -10035,134 +10031,134 @@ static void kvmhv_emulate_tlbie_lpid(str 3348: 3e ab 04 12 vsubeuqm v16,v4,v21,v12 334c: 2f 00 00 00 .long 0x2f 3350: 18 0a 05 00 .long 0x50a18 + if (!shift) 3354: 00 00 00 3e lis r16,0 3358: ac 04 15 ac lhau r0,1196(r21) 335c: 5c 00 00 20 subfic r0,r0,92 + shift = PAGE_SHIFT; 3360: 0a 05 00 00 .long 0x50a - if (!shift) 3364: 00 00 3e ae lhau r17,0(r30) + if (pte_p) 3368: 04 1c 52 4e addpcis r18,7204 336c: 00 00 28 0a tdi 17,r8,0 - shift = PAGE_SHIFT; + pte = *pte_p; 3370: 05 00 00 00 .long 0x5 3374: 00 3e b5 04 .long 0x4b53e00 - if (pte_p) + if (unlikely(ms->mmiowb_pending)) { 3378: 09 52 01 00 .long 0x15209 + struct mmiowb_state *ms = __mmiowb_state(); 337c: 00 60 0a 05 .long 0x50a6000 - pte = *pte_p; + if (unlikely(ms->mmiowb_pending)) { 3380: 00 00 00 00 .long 0x0 3384: 3e b7 04 09 tdgti r4,-18626 - if (unlikely(ms->mmiowb_pending)) { + ms->nesting_count--; 3388: 52 01 00 00 .long 0x152 - struct mmiowb_state *ms = __mmiowb_state(); 338c: 68 0a 05 00 .long 0x50a68 - if (unlikely(ms->mmiowb_pending)) { 3390: 00 00 00 3e lis r16,0 3394: b9 04 09 52 rlwimi. r9,r16,0,18,28 - ms->nesting_count--; 3398: 01 00 00 70 andi. r0,r0,1 339c: 0a 05 00 00 .long 0x50a + if (!pte_present(pte) || (writing && !(pte_val(pte) & _PAGE_WRITE))) { 33a0: 00 00 3e bd stmw r9,0(r30) - 33a4: 04 0f 55 49 b 15542a8 + return (pte_raw(pte) & cpu_to_be64(_PAGE_PRESENT | _PAGE_PTE)) == + 33a4: 04 0f 55 49 b 15542a8 + if (pte_hw_valid(pte)) 33a8: 00 00 78 0a tdi 19,r24,0 33ac: 05 00 00 00 .long 0x5 - if (!pte_present(pte) || (writing && !(pte_val(pte) & _PAGE_WRITE))) { + return (pte_raw(pte) & cpu_to_be64(_PAGE_INVALID | _PAGE_PTE)) == 33b0: 00 3e bf 04 .long 0x4bf3e00 - return (pte_raw(pte) & cpu_to_be64(_PAGE_PRESENT | _PAGE_PTE)) == 33b4: 17 ea 45 00 .long 0x45ea17 - if (pte_hw_valid(pte)) 33b8: 00 98 0a 05 .long 0x50a9800 + ret = kvmppc_book3s_instantiate_page(vcpu, gpa, memslot, 33bc: 00 00 00 00 .long 0x0 - return (pte_raw(pte) & cpu_to_be64(_PAGE_INVALID | _PAGE_PTE)) == 33c0: 3e c0 04 09 tdgti r4,-16322 33c4: c5 00 00 00 .long 0xc5 33c8: 9c 0a 05 00 .long 0x50a9c - ret = kvmppc_book3s_instantiate_page(vcpu, gpa, memslot, 33cc: 00 00 00 3e lis r16,0 33d0: c1 04 09 c5 lfsu f8,1217(r9) 33d4: 00 00 00 a0 lhz r0,0(0) 33d8: 0a 05 00 00 .long 0x50a 33dc: 00 00 3e c5 lfsu f9,0(r30) + if (ret == -EAGAIN) 33e0: 04 19 b6 5c rlwnm r22,r5,r3,4,2 + ret = kvmppc_book3s_instantiate_page(vcpu, gpa, memslot, 33e4: 00 00 a8 0a tdi 21,r8,0 + if (ret == -EAGAIN) 33e8: 05 00 00 00 .long 0x5 + else if (ret) 33ec: 00 3e c7 04 .long 0x4c73e00 - if (ret == -EAGAIN) 33f0: 14 d4 03 00 .long 0x3d414 - ret = kvmppc_book3s_instantiate_page(vcpu, gpa, memslot, + return PUD_SHIFT; 33f4: 00 b0 0a 05 .long 0x50ab000 - if (ret == -EAGAIN) + shift = kvmppc_radix_level_to_shift(level); 33f8: 00 00 00 00 .long 0x0 - else if (ret) + return PUD_SHIFT; 33fc: 3e ce 04 22 subfic r16,r4,-12738 3400: c0 5c 00 00 .long 0x5cc0 - return PUD_SHIFT; + switch (level) { 3404: c0 0a 05 00 .long 0x50ac0 - shift = kvmppc_radix_level_to_shift(level); - 3408: 00 00 00 3e lis r16,0 return PUD_SHIFT; + 3408: 00 00 00 3e lis r16,0 340c: d2 04 14 d4 stfsu f0,1234(r20) 3410: 03 00 00 c8 lfd f0,3(0) switch (level) { 3414: 0a 05 00 00 .long 0x50a - return PUD_SHIFT; 3418: 00 00 3e d3 stfs f25,0(r30) 341c: 04 1a ca 5c rlwnm r10,r6,r3,8,2 + return PUD_SHIFT; 3420: 00 00 d8 0a tdi 22,r24,0 - switch (level) { + gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; 3424: 05 00 00 00 .long 0x5 + return PUD_SHIFT; 3428: 00 3e d4 04 .long 0x4d43e00 + gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; 342c: 11 38 43 00 .long 0x433811 - return PUD_SHIFT; 3430: 00 e0 0a 05 .long 0x50ae000 - gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; 3434: 00 00 00 00 .long 0x0 - return PUD_SHIFT; + shift = kvmppc_radix_level_to_shift(level); 3438: 3e d5 04 11 vsubeuqm v8,v4,v26,v20 - gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; 343c: 5c 00 00 00 .long 0x5c + flags |= DSISR_PROTFAULT; 3440: 00 0b 05 00 .long 0x50b00 + goto forward_to_l1; 3444: 00 00 00 3e lis r16,0 - shift = kvmppc_radix_level_to_shift(level); 3448: d8 04 1d d4 stfsu f0,1240(r29) 344c: 5c 00 00 08 tdi 0,r0,92 - flags |= DSISR_PROTFAULT; 3450: 0b 05 00 00 .long 0x50b - goto forward_to_l1; 3454: 00 00 3e d9 stfd f9,0(r30) + flags |= DSISR_PROTFAULT; 3458: 04 11 38 43 bc+ 25,4*cr6+lt,455c <.debug_info+0x455c> + if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { 345c: 00 00 10 0b tdnei r16,0 + vcpu->arch.fault_dsisr = flags; 3460: 05 00 00 00 .long 0x5 + if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { 3464: 00 3e da 04 .long 0x4da3e00 - flags |= DSISR_PROTFAULT; 3468: 14 d4 03 00 .long 0x3d414 - if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { + vcpu->arch.shregs.msr &= SRR1_MSR_BITS; 346c: 00 30 0b 05 .long 0x50b3000 - vcpu->arch.fault_dsisr = flags; 3470: 00 00 00 00 .long 0x0 - if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { 3474: 3e e1 04 15 .long 0x1504e13e 3478: de 5c 00 00 .long 0x5cde - vcpu->arch.shregs.msr &= SRR1_MSR_BITS; + vcpu->arch.shregs.msr |= flags; 347c: 40 0b 05 00 .long 0x50b40 3480: 00 00 00 3e lis r16,0 + if (ret == RESUME_HOST && 3484: e2 04 0b 9f stbu r24,1250(r11) 3488: 00 00 00 48 b 3488 <.debug_info+0x3488> - vcpu->arch.shregs.msr |= flags; 348c: 0b 05 00 00 .long 0x50b 3490: 00 00 3e e3 psq_l f25,0(r30),0,0 - if (ret == RESUME_HOST && + return RESUME_HOST; 3494: 04 0b 9f 00 .long 0x9f0b04 + mutex_unlock(&gp->tlb_lock); 3498: 00 00 4a 0b tdi 26,r10,0 349c: 05 00 00 00 .long 0x5 34a0: 00 3e e6 04 .long 0x4e63e00 - return RESUME_HOST; +} 34a4: 09 c5 00 00 .long 0xc509 - mutex_unlock(&gp->tlb_lock); 34a8: 00 4c 0b 05 .long 0x50b4c00 34ac: 00 00 00 00 .long 0x0 34b0: 3e e7 04 11 vsubeuqm v8,v4,v28,v28 -} 34b4: 5c 00 00 00 .long 0x5c 34b8: 50 0b 05 00 .long 0x50b50 34bc: 00 00 00 3e lis r16,0 @@ -10178,25 +10174,25 @@ static void kvmhv_emulate_tlbie_lpid(str 34e4: 00 60 0b 05 .long 0x50b6000 34e8: 00 00 00 00 .long 0x0 34ec: 3e ec 04 09 tdgti r4,-5058 + kvmhv_update_ptbl_cache(gp); 34f0: 52 01 00 00 .long 0x152 34f4: 68 0b 05 00 .long 0x50b68 + if (!gp->l1_gr_to_hr) 34f8: 00 00 00 3e lis r16,0 34fc: ed 04 09 52 rlwimi. r9,r16,0,19,22 - kvmhv_update_ptbl_cache(gp); 3500: 01 00 00 70 andi. r0,r0,1 3504: 0b 05 00 00 .long 0x50b - if (!gp->l1_gr_to_hr) 3508: 00 00 3e ee .long 0xee3e0000 350c: 04 09 52 01 .long 0x1520904 3510: 00 00 78 0b tdi 27,r24,0 + if (dsisr & (DSISR_PRTABLE_FAULT | DSISR_BADACCESS)) { 3514: 48 00 00 00 .long 0x48 3518: 00 3e ef 04 .long 0x4ef3e00 + return kvmppc_hv_emulate_mmio(vcpu, gpa, ea, writing); 351c: 18 5e 04 00 .long 0x45e18 3520: 00 08 80 0b tdi 28,r0,2048 - if (dsisr & (DSISR_PRTABLE_FAULT | DSISR_BADACCESS)) { 3524: 05 00 00 00 .long 0x5 3528: 00 3e f9 04 .long 0x4f93e00 - return kvmppc_hv_emulate_mmio(vcpu, gpa, ea, writing); 352c: 1c e8 5c 00 .long 0x5ce81c 3530: 00 90 0b 05 .long 0x50b9000 3534: 00 00 00 00 .long 0x0 @@ -10210,130 +10206,130 @@ static void kvmhv_emulate_tlbie_lpid(str 3554: 00 00 3e 12 vaddubm v17,v30,v0 3558: 05 12 98 12 vsrq v20,v24,v2 355c: 00 00 a8 0b tdi 29,r8,0 + } else if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { 3560: 05 00 00 00 .long 0x5 3564: 00 3e 14 05 .long 0x5143e00 + if (!gpte_p->may_execute) { 3568: 12 2f 00 00 .long 0x2f12 - 356c: 00 c0 0b 05 .long 0x50bc000 } else if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { + 356c: 00 c0 0b 05 .long 0x50bc000 + if (!gpte_p->may_read && !gpte_p->may_write) { 3570: 00 00 00 00 .long 0x0 3574: 3e 18 05 16 .long 0x1605183e - if (!gpte_p->may_execute) { 3578: f2 5c 00 00 .long 0x5cf2 - } else if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { 357c: c8 0b 05 00 .long 0x50bc8 - if (!gpte_p->may_read && !gpte_p->may_write) { + if (dsisr & DSISR_SET_RC) { 3580: 00 00 00 3e lis r16,0 3584: 19 05 06 3e addis r16,r6,1305 + ret = kvmhv_handle_nested_set_rc(vcpu, gp, n_gpa, gpte, dsisr); 3588: 01 00 00 d0 stfs f0,1(0) 358c: 0b 05 00 00 .long 0x50b - if (dsisr & DSISR_SET_RC) { + pgflags = _PAGE_ACCESSED; 3590: 00 00 3e 1a lxvp vs48,0(r30) 3594: 05 06 3e 01 .long 0x13e0605 - ret = kvmhv_handle_nested_set_rc(vcpu, gp, n_gpa, gpte, dsisr); + if (pgflags & ~gpte.rc) 3598: 00 00 d4 0b tdi 30,r20,0 359c: 05 00 00 00 .long 0x5 - pgflags = _PAGE_ACCESSED; 35a0: 00 3e 1f 05 .long 0x51f3e00 + ret = kvmppc_hv_handle_set_rc(kvm, false, writing, 35a4: 10 2f 00 00 .long 0x2f10 - if (pgflags & ~gpte.rc) 35a8: 00 d8 0b 05 .long 0x50bd800 35ac: 00 00 00 00 .long 0x0 35b0: 3e 23 05 09 tdgti r5,9022 - ret = kvmppc_hv_handle_set_rc(kvm, false, writing, 35b4: c5 00 00 00 .long 0xc5 35b8: e0 0b 05 00 .long 0x50be0 35bc: 00 00 00 3e lis r16,0 35c0: 24 05 09 c5 lfsu f8,1316(r9) 35c4: 00 00 00 e4 psq_lu f0,0(r0),0,0 35c8: 0b 05 00 00 .long 0x50b + if (!ret) { 35cc: 00 00 3e 27 dozi r25,r30,0 35d0: 05 1e 4b 4e addpcis r18,7703 + ret = kvmppc_hv_handle_set_rc(kvm, true, writing, 35d4: 00 00 e8 0b tdui r8,0 35d8: 8a 01 4d 58 rlmi r13,r2,r0,6,5 - if (!ret) { 35dc: 00 00 e8 0b tdui r8,0 35e0: 05 00 00 00 .long 0x5 - ret = kvmppc_hv_handle_set_rc(kvm, true, writing, 35e4: 00 3e 2f 05 .long 0x52f3e00 35e8: 1b fc 5c 00 .long 0x5cfc1b 35ec: 00 f8 0b 05 .long 0x50bf800 + if (!ret) 35f0: 00 00 00 00 .long 0x0 35f4: 3e 31 05 14 .long 0x1405313e + ret = -EINVAL; 35f8: 16 4e 00 00 .long 0x4e16 + if (unlikely(ms->mmiowb_pending)) { 35fc: 00 0c 05 00 .long 0x50c00 - if (!ret) + struct mmiowb_state *ms = __mmiowb_state(); 3600: 00 00 00 3e lis r16,0 + if (unlikely(ms->mmiowb_pending)) { 3604: 34 05 1b 06 .long 0x61b0534 - ret = -EINVAL; 3608: 5d 00 00 10 vextduwvrx v0,v0,v0,r1 - if (unlikely(ms->mmiowb_pending)) { + ms->nesting_count--; 360c: 0c 05 00 00 .long 0x50c - struct mmiowb_state *ms = __mmiowb_state(); 3610: 00 00 3e 3f addis r25,r30,0 - if (unlikely(ms->mmiowb_pending)) { 3614: 05 09 c5 00 .long 0xc50905 3618: 00 00 18 0c twi 0,r24,0 - ms->nesting_count--; 361c: 05 00 00 00 .long 0x5 3620: 00 3e 40 05 .long 0x5403e00 + if (ret) 3624: 09 c5 00 00 .long 0xc509 3628: 00 1c 0c 05 .long 0x50c1c00 + if (!(dsisr & (DSISR_BAD_FAULT_64S | DSISR_NOHPTE | 362c: 00 00 00 00 .long 0x0 3630: 3e 42 05 12 vsubeuqm v16,v5,v8,v8 - if (ret) 3634: 2f 00 00 00 .long 0x2f 3638: 20 0c 05 00 .long 0x50c20 - if (!(dsisr & (DSISR_BAD_FAULT_64S | DSISR_NOHPTE | 363c: 00 00 00 3e lis r16,0 + dsisr &= ~DSISR_SET_RC; 3640: 4c 05 09 52 rlwimi r9,r16,0,21,6 3644: 01 00 00 28 cmplwi r0,1 3648: 0c 05 00 00 .long 0x50c 364c: 00 00 3e 4d .long 0x4d3e0000 - dsisr &= ~DSISR_SET_RC; + kvmppc_core_queue_data_storage(vcpu, ea, dsisr); 3650: 05 09 52 01 .long 0x1520905 3654: 00 00 30 0c twlgti r16,0 3658: 05 00 00 00 .long 0x5 365c: 00 3e 67 05 .long 0x5673e00 - kvmppc_core_queue_data_storage(vcpu, ea, dsisr); 3660: 09 c5 00 00 .long 0xc509 + return RESUME_GUEST; 3664: 00 38 0c 05 .long 0x50c3800 3668: 00 00 00 00 .long 0x0 366c: 3e 68 05 09 tdgti r5,26686 3670: c5 00 00 00 .long 0xc5 - return RESUME_GUEST; 3674: 3c 0c 05 00 .long 0x50c3c 3678: 00 00 00 3e lis r16,0 367c: 6b 05 1c 52 rlwimi. r28,r16,0,21,21 + return RESUME_GUEST; 3680: 5d 00 00 40 bdnzfl lt,36dc <.debug_info+0x36dc> 3684: 0c 05 00 00 .long 0x50c 3688: 00 00 3e 6e xoris r30,r17,0 368c: 05 16 f8 00 .long 0xf81605 - return RESUME_GUEST; + ret = kvmhv_handle_nested_set_rc(vcpu, gp, n_gpa, gpte, dsisr); 3690: 00 00 48 0c twllti r8,0 3694: 05 00 00 00 .long 0x5 + pgflags |= _PAGE_DIRTY; 3698: 00 3e 74 05 .long 0x5743e00 369c: 0d a5 03 00 .long 0x3a50d - ret = kvmhv_handle_nested_set_rc(vcpu, gp, n_gpa, gpte, dsisr); + if (writing) 36a0: 00 50 0c 05 .long 0x50c5000 36a4: 00 00 00 00 .long 0x0 - pgflags |= _PAGE_DIRTY; 36a8: 3e 77 05 0d twgti r5,30526 36ac: a5 03 00 00 .long 0x3a5 - if (writing) + if (!gpte_p->may_execute) { 36b0: 54 0c 05 00 .long 0x50c54 36b4: 00 00 00 3e lis r16,0 + vcpu->arch.fault_dsisr = flags; 36b8: 7c 05 12 2f cmpwi cr6,r18,1404 + flags |= SRR1_ISI_N_G_OR_CIP; 36bc: 00 00 00 58 rlmi r0,r0,r0,0,0 - if (!gpte_p->may_execute) { + vcpu->arch.fault_dsisr = flags; 36c0: 0c 05 00 00 .long 0x50c + if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { 36c4: 00 00 3e 99 stb r9,0(r30) - vcpu->arch.fault_dsisr = flags; 36c8: 05 16 5c 5d rlwnm. r28,r10,r2,24,2 - flags |= SRR1_ISI_N_G_OR_CIP; 36cc: 00 00 60 0c twi 3,r0,0 - vcpu->arch.fault_dsisr = flags; 36d0: 05 00 00 00 .long 0x5 - if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { 36d4: 00 3e 9a 05 .long 0x59a3e00 36d8: 0b 76 03 00 .long 0x3760b 36dc: 00 68 0c 05 .long 0x50c6800 @@ -10341,70 +10337,70 @@ static void kvmhv_emulate_tlbie_lpid(str 36e4: 3e 9b 05 09 tdgti r5,-25794 36e8: c5 00 00 00 .long 0xc5 36ec: 6c 0c 05 00 .long 0x50c6c + return kmalloc_trace( 36f0: 00 00 00 3e lis r16,0 + n_gpa &= ~((1UL << shift) - 1); 36f4: 9e 05 11 5c rlwnm r17,r0,r0,22,15 36f8: 00 00 00 70 andi. r0,r0,0 36fc: 0c 05 00 00 .long 0x50c - return kmalloc_trace( + level = kvmppc_radix_shift_to_level(shift); 3700: 00 00 3e a1 lhz r9,0(r30) - n_gpa &= ~((1UL << shift) - 1); 3704: 05 16 5c 5d rlwnm. r28,r10,r2,24,2 + n_gpa &= ~((1UL << shift) - 1); 3708: 00 00 78 0c twi 3,r24,0 370c: 05 00 00 00 .long 0x5 - level = kvmppc_radix_shift_to_level(shift); 3710: 00 3e a9 05 .long 0x5a93e00 3714: 17 b6 5d 00 .long 0x5db617 - n_gpa &= ~((1UL << shift) - 1); 3718: 00 80 0c 05 .long 0x50c8000 + if (!n_rmap) 371c: 00 00 00 00 .long 0x0 3720: 3e af 05 14 .long 0x1405af3e + n_rmap = kzalloc(sizeof(*n_rmap), GFP_KERNEL); 3724: 44 58 00 00 .long 0x5844 + if (!n_rmap) 3728: 88 0c 05 00 .long 0x50c88 - if (unlikely(!n_rmap)) + (((unsigned long) gp->l1_lpid) << RMAP_NESTED_LPID_SHIFT); 372c: 00 00 00 3e lis r16,0 + n_rmap->rmap = (n_gpa & RMAP_NESTED_GPA_MASK) | 3730: b6 05 09 c5 lfsu f8,1462(r9) - n_rmap = kzalloc(sizeof(*n_rmap), GFP_KERNEL); + ret = kvmppc_create_pte(kvm, gp->shadow_pgtable, pte, n_gpa, level, 3734: 00 00 00 88 lbz r0,0(0) - if (unlikely(!n_rmap)) 3738: 0c 05 00 00 .long 0x50c - (((unsigned long) gp->l1_lpid) << RMAP_NESTED_LPID_SHIFT); 373c: 00 00 3e b8 lm r1,0(r30) - n_rmap->rmap = (n_gpa & RMAP_NESTED_GPA_MASK) | 3740: 05 17 a4 37 addic. r29,r4,5893 - ret = kvmppc_create_pte(kvm, gp->shadow_pgtable, pte, n_gpa, level, 3744: 00 00 90 0c tweqi r16,0 3748: 05 00 00 00 .long 0x5 + n_rmap->rmap = (n_gpa & RMAP_NESTED_GPA_MASK) | 374c: 00 3e b9 05 .long 0x5b93e00 + (((unsigned long) gp->l1_lpid) << RMAP_NESTED_LPID_SHIFT); 3750: 15 92 43 00 .long 0x439215 + n_rmap->rmap = (n_gpa & RMAP_NESTED_GPA_MASK) | 3754: 00 98 0c 05 .long 0x50c9800 3758: 00 00 00 00 .long 0x0 - n_rmap->rmap = (n_gpa & RMAP_NESTED_GPA_MASK) | + rmapp = &memslot->arch.rmap[gfn - memslot->base_gfn]; 375c: 3e c0 05 0f twnei r5,-16322 - (((unsigned long) gp->l1_lpid) << RMAP_NESTED_LPID_SHIFT); 3760: 2b 41 00 00 .long 0x412b - n_rmap->rmap = (n_gpa & RMAP_NESTED_GPA_MASK) | + ret = kvmppc_create_pte(kvm, gp->shadow_pgtable, pte, n_gpa, level, 3764: c0 0c 05 00 .long 0x50cc0 3768: 00 00 00 3e lis r16,0 - rmapp = &memslot->arch.rmap[gfn - memslot->base_gfn]; 376c: cb 05 22 c0 lfs f1,1483(r2) + rmapp = &memslot->arch.rmap[gfn - memslot->base_gfn]; 3770: 5d 00 00 c8 lfd f0,93(0) - ret = kvmppc_create_pte(kvm, gp->shadow_pgtable, pte, n_gpa, level, 3774: 0c 05 00 00 .long 0x50c + ret = kvmppc_create_pte(kvm, gp->shadow_pgtable, pte, n_gpa, level, 3778: 00 00 3e cd lfdu f9,0(r30) 377c: 05 17 ca 5d rlwnm. r10,r14,r2,28,2 - rmapp = &memslot->arch.rmap[gfn - memslot->base_gfn]; 3780: 00 00 d0 0c twllei r16,0 3784: 05 00 00 00 .long 0x5 - ret = kvmppc_create_pte(kvm, gp->shadow_pgtable, pte, n_gpa, level, + kfree(n_rmap); 3788: 00 3e e1 05 .long 0x5e13e00 378c: 22 65 3f 00 .long 0x3f6522 - 3790: 00 d8 0c 48 b d0f90 + 3790: 00 d8 0c 48 b d0f90 + if (ret == -EAGAIN) 3794: 00 00 00 00 .long 0x0 - kfree(n_rmap); 3798: 3e 02 06 18 .long 0x1806023e 379c: 0b 3b 00 00 .long 0x3b0b 37a0: 10 e0 0c 00 .long 0xce010 - if (ret == -EAGAIN) 37a4: 04 f5 2a 00 .long 0x2af504 37a8: 00 04 64 20 subfic r3,r4,1024 37ac: 00 00 04 08 tdi 0,r4,0 @@ -10413,131 +10409,131 @@ static void kvmhv_emulate_tlbie_lpid(str 37b8: 04 4b 26 00 .long 0x264b04 37bc: 00 a3 01 00 .long 0x1a300 37c0: 00 00 00 3f lis r24,0 + kvmhv_invalidate_shadow_pte(vcpu, gp, n_gpa, NULL); 37c4: ab 05 18 2f cmpwi cr6,r24,1451 37c8: 00 00 00 01 .long 0x1000000 37cc: 51 43 00 00 .long 0x4351 37d0: 00 00 60 01 .long 0x1600000 - kvmhv_invalidate_shadow_pte(vcpu, gp, n_gpa, NULL); 37d4: 40 21 08 91 stw r8,8512(r8) + return RESUME_GUEST; 37d8: 38 00 00 0e twlti r0,56 37dc: 67 70 72 00 .long 0x727067 + if (!pte_present(pte) || (writing && !(pte_val(pte) & _PAGE_WRITE))) { 37e0: 40 26 10 91 stw r8,9792(r16) + if (PMD_SHIFT < l1_shift) 37e4: 38 00 00 00 .long 0x38 - return RESUME_GUEST; + gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; 37e8: 2f 6e 69 70 andi. r9,r3,28207 37ec: 00 40 27 10 vaddubm v1,v7,v8 - if (!pte_present(pte) || (writing && !(pte_val(pte) & _PAGE_WRITE))) { - 37f0: 2f 00 00 00 .long 0x2f if (PMD_SHIFT < l1_shift) + 37f0: 2f 00 00 00 .long 0x2f + if (shift == PUD_SHIFT) 37f4: 00 01 2f 6d xoris r15,r9,256 - gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; 37f8: 73 72 00 40 bdnzfla lt,7270 <.debug_info+0x7270> + gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; 37fc: 28 10 2f 00 .long 0x2f1028 if (PMD_SHIFT < l1_shift) 3800: 00 00 08 01 .long 0x1080000 - if (shift == PUD_SHIFT) + gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; 3804: 09 00 00 00 .long 0x9 + if (shift == PUD_SHIFT) 3808: 00 40 29 10 vaddubm v1,v9,v8 - gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; + perm |= gpte.may_read ? 0UL : _PAGE_READ; 380c: 2f 00 00 00 .long 0x2f - if (PMD_SHIFT < l1_shift) + perm |= (gpte.rc & _PAGE_ACCESSED) ? 0UL : _PAGE_ACCESSED; 3810: 10 01 2f 63 ori r15,r25,272 gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; 3814: 74 72 00 40 bdnzf lt,aa88 <.debug_info+0xaa88> - if (shift == PUD_SHIFT) + perm |= ((gpte.rc & _PAGE_DIRTY) && writing) ? 0UL : _PAGE_DIRTY; 3818: 2a 10 2f 00 .long 0x2f102a - perm |= gpte.may_read ? 0UL : _PAGE_READ; + gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; 381c: 00 00 18 01 .long 0x1180000 - perm |= (gpte.rc & _PAGE_ACCESSED) ? 0UL : _PAGE_ACCESSED; + perm |= gpte.may_write ? 0UL : _PAGE_WRITE; 3820: 09 00 00 00 .long 0x9 - gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; + perm |= gpte.may_read ? 0UL : _PAGE_READ; 3824: 00 40 2b 10 vaddubm v1,v11,v8 - perm |= ((gpte.rc & _PAGE_DIRTY) && writing) ? 0UL : _PAGE_DIRTY; + perm |= gpte.may_execute ? 0UL : _PAGE_EXEC; 3828: 2f 00 00 00 .long 0x2f - gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; + perm |= (gpte.rc & _PAGE_ACCESSED) ? 0UL : _PAGE_ACCESSED; 382c: 20 01 2f 78 clrldi r15,r1,36 - perm |= gpte.may_read ? 0UL : _PAGE_READ; + perm |= ((gpte.rc & _PAGE_DIRTY) && writing) ? 0UL : _PAGE_DIRTY; 3830: 65 72 00 40 bdnzfl lt,aa94 <.debug_info+0xaa94> perm |= gpte.may_write ? 0UL : _PAGE_WRITE; 3834: 2c 10 2f 00 .long 0x2f102c - perm |= gpte.may_execute ? 0UL : _PAGE_EXEC; + perm |= gpte.may_read ? 0UL : _PAGE_READ; 3838: 00 00 28 01 .long 0x1280000 - perm |= (gpte.rc & _PAGE_ACCESSED) ? 0UL : _PAGE_ACCESSED; + perm |= gpte.may_execute ? 0UL : _PAGE_EXEC; 383c: 2f 63 63 72 andi. r3,r19,25391 - perm |= ((gpte.rc & _PAGE_DIRTY) && writing) ? 0UL : _PAGE_DIRTY; + perm |= (gpte.rc & _PAGE_ACCESSED) ? 0UL : _PAGE_ACCESSED; 3840: 00 40 2d 10 vaddubm v1,v13,v8 - perm |= gpte.may_read ? 0UL : _PAGE_READ; - 3844: 2f 00 00 00 .long 0x2f perm |= gpte.may_write ? 0UL : _PAGE_WRITE; - 3848: 30 01 09 00 .long 0x90130 + 3844: 2f 00 00 00 .long 0x2f perm |= gpte.may_execute ? 0UL : _PAGE_EXEC; - 384c: 00 00 00 40 bdnzf lt,384c <.debug_info+0x384c> + 3848: 30 01 09 00 .long 0x90130 perm |= (gpte.rc & _PAGE_ACCESSED) ? 0UL : _PAGE_ACCESSED; + 384c: 00 00 00 40 bdnzf lt,384c <.debug_info+0x384c> + perm |= ((gpte.rc & _PAGE_DIRTY) && writing) ? 0UL : _PAGE_DIRTY; 3850: 2f 10 2f 00 .long 0x2f102f - perm |= gpte.may_write ? 0UL : _PAGE_WRITE; 3854: 00 00 38 01 .long 0x1380000 - perm |= gpte.may_execute ? 0UL : _PAGE_EXEC; + pte = __pte(pte_val(pte) & ~perm); 3858: 09 00 00 00 .long 0x9 - perm |= (gpte.rc & _PAGE_ACCESSED) ? 0UL : _PAGE_ACCESSED; + if (shift > l1_shift) { 385c: 00 40 34 10 vaddubm v1,v20,v8 - perm |= ((gpte.rc & _PAGE_DIRTY) && writing) ? 0UL : _PAGE_DIRTY; + pte = __pte(pte_val(pte) & ~perm); 3860: 2f 00 00 00 .long 0x2f 3864: 40 01 2f 64 oris r15,r1,320 - pte = __pte(pte_val(pte) & ~perm); 3868: 61 72 00 40 bdnzfl lt,aac8 <.debug_info+0xaac8> - if (shift > l1_shift) { 386c: 37 10 2f 00 .long 0x2f1037 - pte = __pte(pte_val(pte) & ~perm); 3870: 00 00 48 01 .long 0x1480000 3874: 09 00 00 00 .long 0x9 3878: 00 40 38 10 vaddubm v1,v24,v8 387c: 2f 00 00 00 .long 0x2f 3880: 50 01 09 00 .long 0x90150 3884: 00 00 00 40 bdnzf lt,3884 <.debug_info+0x3884> + if (shift > l1_shift) { 3888: 39 10 2f 00 .long 0x2f1039 + level = kvmppc_radix_shift_to_level(shift); 388c: 00 00 58 01 .long 0x1580000 + if (shift == PUD_SHIFT) 3890: 00 0d 2f 00 .long 0x2f0d00 + pte = __pte(pte_val(pte) & ~perm); 3894: 00 00 a1 38 addi r5,r1,0 - if (shift > l1_shift) { + if (shift == PUD_SHIFT) 3898: 00 00 0f 2f cmpwi cr6,r15,0 - level = kvmppc_radix_shift_to_level(shift); 389c: 00 00 00 1f mulli r24,r0,0 - if (shift == PUD_SHIFT) 38a0: 00 27 08 2a cmplwi cr4,r8,9984 - pte = __pte(pte_val(pte) & ~perm); 38a4: 2f 04 c3 38 addi r6,r3,1071 - if (shift == PUD_SHIFT) + if (shift == PMD_SHIFT) 38a8: 00 00 3b 64 oris r27,r1,0 38ac: 61 72 00 2a cmplwi cr4,r0,29281 38b0: 30 13 2f 00 .long 0x2f1330 + if (shift == PAGE_SHIFT) 38b4: 00 00 12 00 .long 0x120000 - if (shift == PMD_SHIFT) 38b8: 00 00 00 2a cmplwi cr4,r0,0 + WARN_ON_ONCE(1); 38bc: 31 13 2f 00 .long 0x2f1331 + vcpu->arch.fault_gpa = fault_addr; 38c0: 00 00 00 27 dozi r24,r0,0 - if (shift == PAGE_SHIFT) 38c4: 08 2a 33 04 .long 0x4332a08 + flags |= DSISR_PRTABLE_FAULT; 38c8: e5 38 00 00 .long 0x38e5 - WARN_ON_ONCE(1); - 38cc: 12 00 00 00 .long 0x12 vcpu->arch.fault_gpa = fault_addr; + 38cc: 12 00 00 00 .long 0x12 38d0: 00 2a 34 13 vaddubs v25,v20,v5 38d4: 2f 00 00 00 .long 0x2f - flags |= DSISR_PRTABLE_FAULT; 38d8: 3b 65 73 72 andi. r19,r19,25915 - vcpu->arch.fault_gpa = fault_addr; 38dc: 00 2a 35 13 vaddubs v25,v21,v5 + kvmppc_core_queue_data_storage(vcpu, ea, 38e0: 2f 00 00 00 .long 0x2f 38e4: 00 7a 60 01 attn 38e8: 2a 20 03 97 stwu r24,8234(r3) 38ec: 39 00 00 0e twlti r0,57 - kvmppc_core_queue_data_storage(vcpu, ea, 38f0: 67 70 72 00 .long 0x727067 + return RESUME_GUEST; 38f4: 2a 21 12 91 stw r8,8490(r18) 38f8: 38 00 00 00 .long 0x38 38fc: 2f 6e 69 70 andi. r9,r3,28207 3900: 00 2a 22 12 vaddubs v17,v2,v5 - return RESUME_GUEST; 3904: 2f 00 00 00 .long 0x2f 3908: 00 01 2f 6d xoris r15,r9,256 390c: 73 72 00 2a cmplwi cr4,r0,29299 @@ -10545,40 +10541,40 @@ static void kvmhv_emulate_tlbie_lpid(str 3914: 00 00 08 01 .long 0x1080000 3918: 09 00 00 00 .long 0x9 391c: 00 2a 24 12 vaddubs v17,v4,v5 + flags |= DSISR_UNSUPP_MMU; 3920: 2f 00 00 00 .long 0x2f 3924: 10 01 2f 63 ori r15,r25,272 3928: 74 72 00 2a cmplwi cr4,r0,29300 392c: 25 12 2f 00 .long 0x2f1225 - flags |= DSISR_UNSUPP_MMU; + flags |= DSISR_NOHPTE; 3930: 00 00 18 01 .long 0x1180000 3934: 09 00 00 00 .long 0x9 3938: 00 2a 26 12 vaddubs v17,v6,v5 393c: 2f 00 00 00 .long 0x2f - flags |= DSISR_NOHPTE; + if (PMD_SHIFT < l1_shift) 3940: 20 01 2f 78 clrldi r15,r1,36 3944: 65 72 00 2a cmplwi cr4,r0,29285 3948: 27 12 2f 00 .long 0x2f1227 394c: 00 00 28 01 .long 0x1280000 - if (PMD_SHIFT < l1_shift) + actual_shift = PMD_SHIFT; 3950: 2f 63 63 72 andi. r3,r19,25391 + mask = (1UL << shift) - (1UL << actual_shift); 3954: 00 2a 28 12 vaddubs v17,v8,v5 + level = kvmppc_radix_shift_to_level(shift); 3958: 2f 00 00 00 .long 0x2f + mask = (1UL << shift) - (1UL << actual_shift); 395c: 30 01 09 00 .long 0x90130 - actual_shift = PMD_SHIFT; + if (shift == PUD_SHIFT) 3960: 00 00 00 2a cmplwi cr4,r0,0 mask = (1UL << shift) - (1UL << actual_shift); 3964: 2a 12 2f 00 .long 0x2f122a - level = kvmppc_radix_shift_to_level(shift); + shift = actual_shift; 3968: 00 00 38 01 .long 0x1380000 - mask = (1UL << shift) - (1UL << actual_shift); + pte = __pte(pte_val(pte) | (gpa & mask)); 396c: 09 00 00 00 .long 0x9 - if (shift == PUD_SHIFT) 3970: 00 2a 2e 12 vaddubs v17,v14,v5 - mask = (1UL << shift) - (1UL << actual_shift); 3974: 2f 00 00 00 .long 0x2f - shift = actual_shift; 3978: 40 01 67 a1 lhz r11,320(r7) - pte = __pte(pte_val(pte) | (gpa & mask)); 397c: 38 00 00 48 b 39b4 <.debug_info+0x39b4> 3980: 01 67 c3 38 addi r6,r3,26369 3984: 00 00 50 01 .long 0x1500000 @@ -10587,88 +10583,90 @@ static void kvmhv_emulate_tlbie_lpid(str 3990: 2f 00 00 00 .long 0x2f 3994: 58 01 00 81 lwz r8,344(0) 3998: 01 60 01 2a cmplwi cr4,r1,24577 + shift = actual_shift; 399c: 1e 02 b4 39 addi r13,r20,542 + if (!pte_present(pte) || (writing && !(pte_val(pte) & _PAGE_WRITE))) { 39a0: 00 00 12 00 .long 0x120000 39a4: 00 00 00 2a cmplwi cr4,r0,0 39a8: 1f 17 cd 37 addic. r30,r13,5919 - shift = actual_shift; 39ac: 00 00 32 e5 psq_lu f9,0(r18),0,0 - if (!pte_present(pte) || (writing && !(pte_val(pte) & _PAGE_WRITE))) { + ret = 0; 39b0: 38 00 00 00 .long 0x38 39b4: 27 08 2a 41 bdnztla 4*cr2+eq,824 <.debug_info+0x824> 39b8: 04 d6 39 00 .long 0x39d604 39bc: 00 12 00 00 attn - ret = 0; + bool kvm_ro = false; 39c0: 00 00 2a 43 bc+ 25,4*cr2+eq,39c0 <.debug_info+0x39c0> 39c4: 13 2f 00 00 .long 0x2f13 39c8: 00 3b 61 6d xoris r1,r11,15104 39cc: 72 00 2a 46 .long 0x462a0072 - bool kvm_ro = false; 39d0: 13 2f 00 00 .long 0x2f13 39d4: 00 00 18 20 subfic r0,r24,0 39d8: 2a 3c 03 0d twgti r3,15402 + unsigned int actual_shift = PAGE_SHIFT; 39dc: 3a 00 00 0e twlti r0,58 39e0: 70 70 72 00 .long 0x727070 39e4: 2a 3e 12 2f cmpwi cr6,r18,15914 39e8: 00 00 00 00 .long 0x0 - unsigned int actual_shift = PAGE_SHIFT; 39ec: 01 00 00 00 .long 0x1 + switch (level) { 39f0: 00 2a 3f 12 vaddubs v17,v31,v5 39f4: 2f 00 00 00 .long 0x2f 39f8: 08 20 b4 39 addi r13,r20,8200 39fc: 00 00 10 01 .long 0x1100000 - switch (level) { + vcpu->arch.fault_dsisr = flags; 3a00: 00 00 00 00 .long 0x0 3a04: 2a 4a 12 2f cmpwi cr6,r18,18986 + if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { 3a08: 00 00 00 18 lxvp vs0,0(0) 3a0c: 00 27 20 2a cmpldi cr4,r0,9984 - vcpu->arch.fault_dsisr = flags; 3a10: 3b 02 28 3a addi r17,r8,571 3a14: 00 00 32 d6 stfsu f17,0(r18) - if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { 3a18: 39 00 00 12 ps_msub. f16,f0,f0,f0 3a1c: 00 00 00 00 .long 0x0 + ms->mmiowb_pending = 0; 3a20: 2a 4d 11 28 cmplwi r17,19754 3a24: 3a 00 00 00 .long 0x3a + mmiowb(); 3a28: 0d 2f 00 00 .long 0x2f0d 3a2c: 00 38 3a 00 .long 0x3a3800 - ms->mmiowb_pending = 0; + return PMD_SHIFT; 3a30: 00 0f 2f 00 .long 0x2f0f00 + gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; 3a34: 00 00 03 00 .long 0x30000 - mmiowb(); 3a38: 0b 00 00 00 .long 0xb 3a3c: 00 10 41 0f twi 26,r1,4096 return PMD_SHIFT; 3a40: 08 87 3a 00 .long 0x3a8708 - gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; 3a44: 00 01 00 00 .long 0x100 3a48: 00 00 41 10 vaddubm v2,v1,v0 3a4c: 10 2f 00 00 .long 0x2f10 - return PMD_SHIFT; 3a50: 00 00 01 00 .long 0x10000 3a54: 00 00 00 41 bdnzt lt,3a54 <.debug_info+0x3a54> 3a58: 11 07 20 01 .long 0x1200711 3a5c: 00 00 08 0e twlti r8,0 + ms->mmiowb_pending = 0; 3a60: 6c 65 6e 00 .long 0x6e656c 3a64: 41 12 07 20 subfic r0,r7,4673 + mmiowb(); 3a68: 01 00 00 0a tdlti r0,1 3a6c: 01 00 00 00 .long 0x1 - ms->mmiowb_pending = 0; 3a70: 00 41 13 07 .long 0x7134100 3a74: 20 01 00 00 .long 0x120 - mmiowb(); 3a78: 0c 01 00 00 .long 0x10c 3a7c: 00 00 41 14 .long 0x14410000 3a80: 06 08 01 00 .long 0x10806 3a84: 00 0e 00 55 rlwinm r0,r8,1,24,0 3a88: 00 00 00 00 .long 0x0 3a8c: 10 02 10 42 bc 16,4*cr4+lt,3c9c <.debug_info+0x3c9c> +} 3a90: 53 b2 3a 00 .long 0x3ab253 3a94: 00 52 66 70 andi. r6,r3,20992 + pr_err("KVM: L1 guest page shift (%d) less than our own (%d)\n", 3a98: 72 00 42 54 rlwinm r2,r2,0,1,25 3a9c: 06 b2 3a 00 .long 0x3ab206 -} 3aa0: 00 10 00 09 tdgti r0,4096 + return -EINVAL; 3aa4: 00 00 00 00 .long 0x0 pr_err("KVM: L1 guest page shift (%d) less than our own (%d)\n", 3aa8: 42 55 06 52 rlwimi r6,r16,10,21,1 @@ -10676,91 +10674,89 @@ static void kvmhv_emulate_tlbie_lpid(str 3ab0: 02 00 0d 52 rlwimi r13,r16,0,0,1 return -EINVAL; 3ab4: 01 00 00 c8 lfd f0,1(0) - pr_err("KVM: L1 guest page shift (%d) less than our own (%d)\n", 3ab8: 3a 00 00 0f twnei r0,58 3abc: 2f 00 00 00 .long 0x2f 3ac0: 1f 0f 2f 00 .long 0x2f0f1f - return -EINVAL; 3ac4: 00 00 01 00 .long 0x10000 +{ 3ac8: 55 00 00 00 .long 0x55 3acc: 00 10 02 10 vaddubm v0,v2,v2 3ad0: 42 59 f3 3a addi r23,r19,22850 3ad4: 00 00 52 76 andis. r18,r18,0 -{ 3ad8: 72 00 42 5a rlmi r2,r18,r0,1,25 3adc: 0c f3 3a 00 .long 0x3af30c + int ret = lpid + 1; 3ae0: 00 10 00 70 andi. r0,r0,4096 +{ 3ae4: 00 00 00 00 .long 0x0 3ae8: 42 5b 0c 90 stw r0,23362(r12) 3aec: 01 00 00 10 vmul10cuq v0,v0 - int ret = lpid + 1; 3af0: 00 02 00 71 andi. r0,r8,512 -{ 3af4: 90 01 00 00 .long 0x190 3af8: 10 04 3b 00 .long 0x3b0410 + int ret = lpid + 1; 3afc: 00 0f 2f 00 .long 0x2f0f00 3b00: 00 00 1f 00 .long 0x1f0000 3b04: 6f 00 00 00 .long 0x6f + if (!idr_get_next(&kvm->arch.kvm_nested_guest_idr, &ret)) 3b08: 00 42 5e 55 rlwinm r30,r10,8,8,0 - int ret = lpid + 1; 3b0c: 00 00 00 00 .long 0x0 3b10: 30 0b 10 42 bc 16,4*cr4+lt,4640 <.debug_info+0x4640> 3b14: 85 d1 3d 00 .long 0x3dd185 - if (!idr_get_next(&kvm->arch.kvm_nested_guest_idr, &ret)) 3b18: 00 0e 6b 73 andi. r11,r27,3584 3b1c: 70 00 42 86 lwzu r18,112(r2) + if (unlikely(ms->mmiowb_pending)) { 3b20: 10 2f 00 00 .long 0x2f10 + struct mmiowb_state *ms = __mmiowb_state(); 3b24: 00 00 01 00 .long 0x10000 + if (unlikely(ms->mmiowb_pending)) { 3b28: 00 00 00 42 bdnz 3b28 <.debug_info+0x3b28> 3b2c: 89 10 2f 00 .long 0x2f1089 - if (unlikely(ms->mmiowb_pending)) { + ms->nesting_count--; 3b30: 00 00 08 01 .long 0x1080000 - struct mmiowb_state *ms = __mmiowb_state(); 3b34: 00 00 00 00 .long 0x0 - if (unlikely(ms->mmiowb_pending)) { 3b38: 42 8b 12 92 stw r16,-29886(r18) 3b3c: 08 00 00 10 vmuloub v0,v0,v0 - ms->nesting_count--; 3b40: 01 00 00 00 .long 0x1 3b44: 00 42 a6 13 vaddubs v29,v6,v8 +} 3b48: 04 3b 00 00 .long 0x3b04 3b4c: 18 50 00 00 .long 0x5018 3b50: 00 00 42 a8 lha r2,0(r2) 3b54: 19 87 3a 00 .long 0x3a8719 -} + return ret; 3b58: 00 10 20 09 tdi 9,r0,4096 +} 3b5c: 00 00 00 00 .long 0x0 3b60: 42 a9 1a d1 stfs f8,-22206(r26) 3b64: 3d 00 00 30 addic r0,r0,61 - return ret; 3b68: 02 09 00 00 .long 0x902 -} 3b6c: 00 00 42 ab lha r26,0(r2) 3b70: 07 c5 00 00 .long 0xc507 3b74: 00 38 02 09 tdgti r2,14336 3b78: 00 00 00 00 .long 0x0 3b7c: 42 ac 0f 5c rlwnm r15,r0,r21,17,1 + if (unlikely(ms->mmiowb_pending)) { 3b80: 00 00 00 3c lis r0,0 + ret = -1; 3b84: 02 09 00 00 .long 0x902 3b88: 00 00 42 ae lhau r18,0(r2) + struct mmiowb_state *ms = __mmiowb_state(); 3b8c: 15 d6 3d 00 .long 0x3dd615 if (unlikely(ms->mmiowb_pending)) { 3b90: 00 40 02 09 tdgti r2,16384 - ret = -1; 3b94: 00 00 00 00 .long 0x0 + ms->mmiowb_pending = 0; 3b98: 42 b3 15 d6 stfsu f16,-19646(r21) - struct mmiowb_state *ms = __mmiowb_state(); 3b9c: 3d 00 00 50 rlwimi. r0,r0,0,0,30 - if (unlikely(ms->mmiowb_pending)) { + mmiowb(); 3ba0: 02 09 00 00 .long 0x902 3ba4: 00 00 42 b5 sthu r10,0(r2) - ms->mmiowb_pending = 0; +} 3ba8: 1c f0 3d 00 .long 0x3df01c 3bac: 00 60 02 09 tdgti r2,24576 - mmiowb(); 3bb0: 00 00 00 00 .long 0x0 3bb4: 42 b6 10 2f cmpwi cr6,r16,-18878 -} 3bb8: 00 00 00 80 lwz r0,0(0) 3bbc: 02 09 00 00 .long 0x902 3bc0: 00 00 42 b7 sthu r26,0(r2) @@ -11059,7 +11055,7 @@ static void kvmhv_emulate_tlbie_lpid(str 4054: 00 04 5c 00 .long 0x5c0400 4058: 00 00 2e 00 .long 0x2e0000 405c: 00 00 00 5c rlwnm r0,r0,r0,0,0 - 4060: 00 00 00 49 b 1004060 + 4060: 00 00 00 49 b 1004060 4064: 55 06 83 40 bnsl 46b8 <.debug_info+0x46b8> 4068: 00 00 06 00 .long 0x60000 406c: 00 00 00 00 .long 0x0 @@ -11074,17 +11070,17 @@ static void kvmhv_emulate_tlbie_lpid(str 4090: 00 4a 13 17 .long 0x17134a00 4094: b3 0a 00 00 .long 0xab3 4098: 00 0b 00 00 .long 0xb00 - 409c: 00 00 04 4a b fffffffffe04409c + 409c: 00 00 04 4a b fffffffffe04409c 40a0: 11 10 ad 40 blel cr3,50b0 <.debug_info+0x50b0> 40a4: 00 00 20 83 lwz r25,0(0) 40a8: 40 00 00 00 .long 0x40 40ac: 00 11 00 00 .long 0x1100 40b0: 00 00 4a 1d mulli r10,r10,0 40b4: 03 99 40 00 .long 0x409903 - 40b8: 00 18 08 4b b ffffffffff0858b8 + 40b8: 00 18 08 4b b ffffffffff0858b8 40bc: 19 09 d0 40 bgel- cr4,49d4 <.debug_info+0x49d4> 40c0: 00 00 01 00 .long 0x10000 - 40c4: 00 00 00 4b b ffffffffff0040c4 + 40c4: 00 00 00 4b b ffffffffff0040c4 40c8: 1a 10 99 0a tdlei r25,4122 40cc: 00 00 00 00 .long 0x0 40d0: 11 00 00 00 .long 0x11 @@ -11622,10 +11618,10 @@ static void kvmhv_emulate_tlbie_lpid(str 4920: 0b a5 03 00 .long 0x3a50b 4924: 00 04 01 00 .long 0x10400 4928: 00 00 00 5d rlwnm r0,r8,r0,0,0 - 492c: 28 19 39 49 b 1396254 + 492c: 28 19 39 49 b 1396254 4930: 00 00 08 00 .long 0x80000 4934: 10 00 00 00 .long 0x10 - 4938: 00 04 34 49 b 1344d38 + 4938: 00 04 34 49 b 1344d38 493c: 00 00 18 20 subfic r0,r24,0 4940: 5e 63 09 55 rlwinm r9,r8,12,13,15 4944: 49 00 00 01 .long 0x1000049 @@ -11638,7 +11634,7 @@ static void kvmhv_emulate_tlbie_lpid(str 4960: 00 3c 00 00 .long 0x3c00 4964: 00 00 07 5c rlwnm r7,r0,r0,0,0 4968: 00 00 00 5e rlwnm r0,r16,r0,0,0 - 496c: 8e 01 a3 49 ba 1a3018c + 496c: 8e 01 a3 49 ba 1a3018c 4970: 00 00 06 00 .long 0x60000 4974: 00 00 00 00 .long 0x0 4978: 06 00 00 00 .long 0x6 @@ -11673,13 +11669,13 @@ static void kvmhv_emulate_tlbie_lpid(str 49ec: 2f 00 00 00 .long 0x2f 49f0: 00 00 11 00 .long 0x110000 49f4: 00 00 00 60 nop - 49f8: 13 03 cb 49 bla 1cb0310 + 49f8: 13 03 cb 49 bla 1cb0310 49fc: 00 00 11 00 .long 0x110000 4a00: 00 00 00 61 ori r0,r8,0 4a04: 52 0e b6 01 .long 0x1b60e52 4a08: 00 00 11 00 .long 0x110000 4a0c: 00 00 00 61 ori r0,r8,0 - 4a10: 53 1e 16 4a bla fe161e50 + 4a10: 53 1e 16 4a bla fe161e50 4a14: 00 00 04 fe fcmpu cr4,f4,f0 4a18: 49 00 00 11 .long 0x11000049 4a1c: 00 00 00 00 .long 0x0 @@ -11700,7 +11696,7 @@ static void kvmhv_emulate_tlbie_lpid(str 4a58: 0f 9b 04 00 .long 0x49b0f 4a5c: 00 00 11 00 .long 0x110000 4a60: 00 00 00 62 ori r0,r16,0 - 4a64: 0b 03 38 4a bla fe380308 + 4a64: 0b 03 38 4a bla fe380308 4a68: 00 00 18 08 tdi 0,r24,0 4a6c: 62 27 02 8e lbzu r16,10082(r2) 4a70: 4a 00 00 01 .long 0x100004a @@ -11739,7 +11735,7 @@ static void kvmhv_emulate_tlbie_lpid(str 4af4: 62 38 0c 5e rlwnm r12,r16,r7,1,17 4af8: 4a 00 00 08 tdi 0,r0,74 4afc: 00 18 20 62 ori r0,r17,6144 - 4b00: 3c 02 48 4b b ffffffffff484d3c + 4b00: 3c 02 48 4b b ffffffffff484d3c 4b04: 00 00 01 00 .long 0x10000 4b08: 00 00 00 62 ori r0,r16,0 4b0c: 3d 12 e0 01 .long 0x1e0123d @@ -11770,20 +11766,20 @@ static void kvmhv_emulate_tlbie_lpid(str 4b70: 62 5b 12 9b stb r24,23394(r18) 4b74: 04 00 00 10 vrlb v0,v0,v0 4b78: 00 0d 50 00 .long 0x500d00 - 4b7c: 00 00 89 4b b ffffffffff894b7c + 4b7c: 00 00 89 4b b ffffffffff894b7c 4b80: 00 00 0f 2f cmpwi cr6,r15,0 4b84: 00 00 00 07 .long 0x7000000 4b88: 00 18 0c 62 ori r12,r16,6144 - 4b8c: 5e 04 ad 4b ba ffad045c + 4b8c: 5e 04 ad 4b ba ffad045c 4b90: 00 00 01 00 .long 0x10000 4b94: 00 00 00 62 ori r0,r16,0 - 4b98: 5f 0a 79 4b bla ff790a5c + 4b98: 5f 0a 79 4b bla ff790a5c 4b9c: 00 00 00 01 .long 0x1000000 4ba0: 00 00 00 00 .long 0x0 4ba4: 62 60 0b cd lfdu f8,24674(r11) 4ba8: 00 00 00 08 tdi 0,r0,0 4bac: 00 18 10 62 ori r16,r16,6144 - 4bb0: 63 04 de 4b bla ffde0460 + 4bb0: 63 04 de 4b bla ffde0460 4bb4: 00 00 01 00 .long 0x10000 4bb8: 00 00 00 62 ori r0,r16,0 4bbc: 64 13 2f 00 .long 0x2f1364 @@ -11804,7 +11800,7 @@ static void kvmhv_emulate_tlbie_lpid(str 4bf8: 62 56 0a 9f stbu r24,22114(r10) 4bfc: 00 00 00 12 vaddubm v16,v0,v0 4c00: 00 00 00 00 .long 0x0 - 4c04: 62 5c 06 48 ba 65c60 + 4c04: 62 5c 06 48 ba 65c60 4c08: 4b 00 00 12 .long 0x1200004b 4c0c: 00 00 00 00 .long 0x0 4c10: 62 61 06 89 lbz r8,24930(r6) @@ -11882,7 +11878,7 @@ static void kvmhv_emulate_tlbie_lpid(str 4d30: 96 4c 00 00 .long 0x4c96 4d34: 10 00 0b 00 .long 0xb0010 4d38: 00 00 00 30 addic r0,r0,0 - 4d3c: 63 0c 10 4a bla fe100c60 + 4d3c: 63 0c 10 4a bla fe100c60 4d40: 4d 00 00 20 subfic r0,r0,77 4d44: f8 4c 00 00 .long 0x4cf8 4d48: 00 00 11 00 .long 0x110000 @@ -11899,7 +11895,7 @@ static void kvmhv_emulate_tlbie_lpid(str 4d74: 13 d4 03 00 .long 0x3d413 4d78: 00 00 01 00 .long 0x10000 4d7c: 00 00 00 63 ori r0,r24,0 - 4d80: 22 0b f2 49 ba 1f20b20 + 4d80: 22 0b f2 49 ba 1f20b20 4d84: 00 00 10 00 .long 0x100000 4d88: 0b 00 00 00 .long 0xb 4d8c: 00 20 63 25 dozi r11,r3,8192 @@ -11938,7 +11934,7 @@ static void kvmhv_emulate_tlbie_lpid(str 4e10: 00 00 00 00 .long 0x0 4e14: 04 00 0b 00 .long 0xb0004 4e18: 00 00 00 10 vaddubm v0,v0,v0 - 4e1c: 65 27 08 4b bl ffffffffff087580 + 4e1c: 65 27 08 4b bl ffffffffff087580 4e20: 4e 00 00 01 .long 0x100004e 4e24: 00 00 00 00 .long 0x0 4e28: 65 28 0f 93 stw r24,10341(r15) @@ -12236,7 +12232,7 @@ static void kvmhv_emulate_tlbie_lpid(str 52b8: 00 20 20 69 xori r0,r9,8192 52bc: 3e 1d 53 00 .long 0x531d3e 52c0: 00 01 00 00 .long 0x100 - 52c4: 00 00 69 4b b ffffffffff6952c4 + 52c4: 00 00 69 4b b ffffffffff6952c4 52c8: 08 cd 00 00 .long 0xcd08 52cc: 00 00 01 00 .long 0x10000 52d0: 00 00 00 69 xori r0,r8,0 @@ -12468,14 +12464,14 @@ static void kvmhv_emulate_tlbie_lpid(str 5658: 3e 48 02 14 .long 0x1402483e 565c: d4 03 00 00 .long 0x3d4 5660: 00 02 00 00 attn - 5664: 00 00 3e 49 b 13e5664 + 5664: 00 00 3e 49 b 13e5664 5668: 02 12 2f 00 .long 0x2f1202 566c: 00 00 10 02 .long 0x2100000 5670: 00 00 00 00 .long 0x0 5674: 3e 4a 02 12 vsubeuqm v16,v2,v9,v8 5678: 2f 00 00 00 .long 0x2f 567c: 18 02 00 00 .long 0x218 - 5680: 00 00 3e 4b b ffffffffff3e5680 + 5680: 00 00 3e 4b b ffffffffff3e5680 5684: 02 11 5c 00 .long 0x5c1102 5688: 00 00 20 02 .long 0x2200000 568c: 00 00 00 00 .long 0x0 @@ -12516,7 +12512,7 @@ static void kvmhv_emulate_tlbie_lpid(str 5718: 09 52 01 00 .long 0x15209 571c: 00 38 02 00 .long 0x23800 5720: 00 00 00 3e lis r16,0 - 5724: 6c 02 09 48 b 95990 + 5724: 6c 02 09 48 b 95990 5728: 01 00 00 40 bdnzfl lt,5728 <.debug_info+0x5728> 572c: 02 00 00 00 .long 0x2 5730: 00 3e 6d 02 .long 0x26d3e00 @@ -13020,14 +13016,14 @@ static void kvmhv_emulate_tlbie_lpid(str 5ef8: 72 47 12 ce lfdu f16,18290(r18) 5efc: 0a 00 00 94 stu r0,10(0) 5f00: 01 09 00 00 .long 0x901 - 5f04: 00 00 72 48 b 725f04 + 5f04: 00 00 72 48 b 725f04 5f08: 13 c6 db 00 .long 0xdbc613 5f0c: 00 98 01 09 tdgti r1,-26624 5f10: 00 00 00 00 .long 0x0 5f14: 72 49 18 15 .long 0x15184972 5f18: 83 00 00 a0 lhz r0,131(0) 5f1c: 01 09 00 00 .long 0x901 - 5f20: 00 00 72 4b b ffffffffff725f20 + 5f20: 00 00 72 4b b ffffffffff725f20 5f24: 18 15 83 00 .long 0x831518 5f28: 00 a8 01 09 tdgti r1,-22528 5f2c: 00 00 00 00 .long 0x0 @@ -13301,7 +13297,7 @@ static void kvmhv_emulate_tlbie_lpid(str 635c: 00 78 4a 10 vaddubm v2,v10,v15 6360: 2f 00 00 00 .long 0x2f 6364: 90 01 00 00 .long 0x190 - 6368: 00 00 78 4b b ffffffffff786368 + 6368: 00 00 78 4b b ffffffffff786368 636c: 10 2f 00 00 .long 0x2f10 6370: 00 98 01 00 .long 0x19800 6374: 00 00 00 78 rotldi r0,r0,0 @@ -13394,7 +13390,7 @@ static void kvmhv_emulate_tlbie_lpid(str 64d0: 70 47 19 5e rlwnm r25,r16,r8,29,24 64d4: 04 00 00 08 tdi 0,r0,4 64d8: 00 01 00 00 .long 0x100 - 64dc: 00 00 70 48 b 7064dc + 64dc: 00 00 70 48 b 7064dc 64e0: 13 2f 00 00 .long 0x2f13 64e4: 00 10 00 6b xori r0,r24,4096 64e8: 18 70 40 fc frsp f2,f14 @@ -13732,7 +13728,7 @@ static void kvmhv_emulate_tlbie_lpid(str 6a18: 00 00 00 35 addic. r8,r0,0 6a1c: 48 01 0f 52 rlwimi r15,r16,0,5,4 6a20: 12 00 00 00 .long 0x12 - 6a24: 29 28 35 4b bl ffffffffff35924c + 6a24: 29 28 35 4b bl ffffffffff35924c 6a28: 01 03 9f 6a xori r31,r20,769 6a2c: 00 00 02 00 .long 0x20000 6a30: 00 00 00 35 addic. r8,r0,0 @@ -14262,7 +14258,7 @@ static void kvmhv_emulate_tlbie_lpid(str 7260: 00 0d 2f 00 .long 0x2f0d00 7264: 00 00 71 72 andi. r17,r19,0 7268: 00 00 0f 2f cmpwi cr6,r15,0 - 726c: 00 00 00 4b b ffffffffff00726c + 726c: 00 00 00 4b b ffffffffff00726c 7270: 00 0d 8c 65 oris r12,r12,3328 7274: 00 00 81 72 andi. r1,r20,0 7278: 00 00 0f 2f cmpwi cr6,r15,0 @@ -14991,7 +14987,7 @@ static void kvmhv_emulate_tlbie_lpid(str 7dc4: 82 1e 08 e6 lxsd v16,7808(r8) 7dc8: 7d 00 00 01 .long 0x100007d 7dcc: 00 00 00 00 .long 0x0 - 7dd0: 82 1f 0f 4b ba ff0f1f80 + 7dd0: 82 1f 0f 4b ba ff0f1f80 7dd4: 00 00 00 00 .long 0x0 7dd8: 01 00 00 00 .long 0x1 7ddc: 00 82 20 0c twlgti r0,-32256 @@ -15001,7 +14997,7 @@ static void kvmhv_emulate_tlbie_lpid(str 7dec: 82 54 08 35 addic. r8,r8,21634 7df0: 7e 00 00 01 .long 0x100007e 7df4: 00 00 00 00 .long 0x0 - 7df8: 82 55 0f 4b ba ff0f5580 + 7df8: 82 55 0f 4b ba ff0f5580 7dfc: 00 00 00 00 .long 0x0 7e00: 01 00 00 00 .long 0x1 7e04: 00 82 56 0e twi 18,r22,-32256 @@ -15445,7 +15441,7 @@ static void kvmhv_emulate_tlbie_lpid(str 84dc: 19 46 9c 00 .long 0x9c4619 84e0: 00 48 02 00 .long 0x24800 84e4: 00 00 00 86 lu r16,0(0) - 84e8: 31 02 0f 4b bl ffffffffff0f8718 + 84e8: 31 02 0f 4b bl ffffffffff0f8718 84ec: 00 00 00 50 rlwimi r0,r0,0,0,0 84f0: 02 00 00 00 .long 0x2 84f4: 00 86 32 02 .long 0x2328600 @@ -15918,7 +15914,7 @@ static void kvmhv_emulate_tlbie_lpid(str 8c40: 01 00 00 00 .long 0x1 8c44: 04 34 8c 00 .long 0x8c3404 8c48: 00 10 00 00 .long 0x1000 - 8c4c: 00 00 04 49 b 1048c4c + 8c4c: 00 00 04 49 b 1048c4c 8c50: 8c 00 00 1b .long 0x1b00008c 8c54: 00 00 00 00 .long 0x0 8c58: e0 85 ce 02 .long 0x2ce85e0 @@ -16045,7 +16041,7 @@ static void kvmhv_emulate_tlbie_lpid(str 8e3c: 64 12 34 90 stw r1,4708(r20) 8e40: 00 00 10 01 .long 0x1100000 8e44: 00 00 00 00 .long 0x0 - 8e48: 89 65 0f 4b bl ffffffffff0ff3d0 + 8e48: 89 65 0f 4b bl ffffffffff0ff3d0 8e4c: 00 00 00 18 lxvp vs0,0(0) 8e50: 01 00 00 00 .long 0x1 8e54: 00 89 67 07 .long 0x7678900 @@ -16121,7 +16117,7 @@ static void kvmhv_emulate_tlbie_lpid(str 8f6c: 8a 36 08 34 addic. r0,r8,13962 8f70: 90 00 00 01 .long 0x1000090 8f74: 00 00 00 00 .long 0x0 - 8f78: 8a 37 0f 4b ba ff0f3788 + 8f78: 8a 37 0f 4b ba ff0f3788 8f7c: 00 00 00 00 .long 0x0 8f80: 01 00 00 00 .long 0x1 8f84: 00 8a 38 12 vaddubs v17,v24,v17 @@ -16302,7 +16298,7 @@ static void kvmhv_emulate_tlbie_lpid(str 9240: 00 8c 49 0c twllti r9,-29696 9244: 2a 01 00 00 .long 0x12a 9248: 18 01 00 00 .long 0x118 - 924c: 00 00 8c 4a b fffffffffe8c924c + 924c: 00 00 8c 4a b fffffffffe8c924c 9250: 05 ff 00 00 .long 0xff05 9254: 00 1a 01 00 attn 9258: 00 00 00 8c .long 0x8c000000 @@ -16551,7 +16547,7 @@ static void kvmhv_emulate_tlbie_lpid(str 9624: 05 96 00 00 .long 0x9605 9628: 19 38 96 00 .long 0x963819 962c: 00 03 34 90 stw r1,768(r20) - 9630: 00 00 03 4b b ffffffffff039630 + 9630: 00 00 03 4b b ffffffffff039630 9634: 00 00 00 00 .long 0x0 9638: 04 28 96 00 .long 0x962804 963c: 00 0a c5 00 attn @@ -16596,7 +16592,7 @@ static void kvmhv_emulate_tlbie_lpid(str 96d8: 22 47 01 0f twnei r1,18210 96dc: 5c 00 00 00 .long 0x5c 96e0: 08 02 00 00 .long 0x208 - 96e4: 00 00 22 49 b 12296e4 + 96e4: 00 00 22 49 b 12296e4 96e8: 01 0f 5c 00 .long 0x5c0f01 96ec: 00 00 0c 02 .long 0x20c0000 96f0: 00 00 00 00 .long 0x0 @@ -17800,7 +17796,7 @@ static void kvmhv_emulate_tlbie_lpid(str a9a8: 38 43 00 00 .long 0x4338 a9ac: d0 03 05 00 .long 0x503d0 a9b0: 00 00 00 24 dozi r0,r0,0 - a9b4: bd 04 0e 4b bl ffffffffff0eae70 + a9b4: bd 04 0e 4b bl ffffffffff0eae70 a9b8: 00 00 00 f0 xsaddsp vs0,vs0,vs0 a9bc: 03 05 00 00 .long 0x503 a9c0: 00 00 24 bf stmw r25,0(r4) @@ -17858,7 +17854,7 @@ static void kvmhv_emulate_tlbie_lpid(str aa90: 05 00 00 00 .long 0x5 aa94: 00 24 ec 04 .long 0x4ec2400 aa98: 06 c5 00 00 .long 0xc506 - aa9c: 00 20 05 48 b 5ca9c + aa9c: 00 20 05 48 b 5ca9c aaa0: 00 00 00 00 .long 0x0 aaa4: 24 ef 04 0e twlti r4,-4316 aaa8: ad 40 00 00 .long 0x40ad @@ -17941,7 +17937,7 @@ static void kvmhv_emulate_tlbie_lpid(str abdc: 00 9a 49 06 .long 0x6499a00 abe0: c5 00 00 00 .long 0xc5 abe4: 10 01 00 00 .long 0x110 - abe8: 00 00 9a 4a b fffffffffe9aabe8 + abe8: 00 00 9a 4a b fffffffffe9aabe8 abec: 14 2c b3 00 .long 0xb32c14 abf0: 00 18 00 0a tdlti r0,6144 abf4: 02 ac 00 00 .long 0xac02 @@ -18292,7 +18288,7 @@ static void kvmhv_emulate_tlbie_lpid(str b158: 43 1d 10 b1 sth r8,7491(r16) b15c: 00 00 00 00 .long 0x0 b160: 0b 00 00 00 .long 0xb - b164: 00 10 68 4b b ffffffffff68c164 + b164: 00 10 68 4b b ffffffffff68c164 b168: 08 88 b1 00 .long 0xb18808 b16c: 00 01 00 00 .long 0x100 b170: 00 00 68 4c .long 0x4c680000 @@ -18327,7 +18323,7 @@ static void kvmhv_emulate_tlbie_lpid(str b1e4: 00 03 00 10 vaddsbs v0,v0,v0 b1e8: 00 00 00 00 .long 0x0 b1ec: 04 e7 b1 00 .long 0xb1e704 - b1f0: 00 0d a3 49 b 1a3bef0 + b1f0: 00 0d a3 49 b 1a3bef0 b1f4: 00 00 01 b2 sth r16,0(r1) b1f8: 00 00 0f 2f cmpwi cr6,r15,0 b1fc: 00 00 00 0f twnei r0,0 @@ -18609,7 +18605,7 @@ static void kvmhv_emulate_tlbie_lpid(str b64c: 64 00 a7 47 .long 0x47a70064 b650: 0a 11 43 00 .long 0x43110a b654: 00 12 00 00 attn - b658: 00 00 a7 48 b a7b658 + b658: 00 00 a7 48 b a7b658 b65c: 0d da b5 00 .long 0xb5da0d b660: 00 00 0b 00 .long 0xb0000 b664: 00 00 00 08 tdi 0,r0,0 @@ -18617,7 +18613,7 @@ static void kvmhv_emulate_tlbie_lpid(str b66c: b6 00 00 20 subfic r0,r0,182 b670: 34 b6 00 00 .long 0xb634 b674: 00 01 00 00 .long 0x100 - b678: 00 00 a7 4a b fffffffffea7b678 + b678: 00 00 a7 4a b fffffffffea7b678 b67c: 12 05 b6 00 .long 0xb60512 b680: 00 04 00 0b tdnei r0,1024 b684: 00 00 00 00 .long 0x0 @@ -18798,7 +18794,7 @@ static void kvmhv_emulate_tlbie_lpid(str b940: a7 48 01 08 tdi 0,r1,18599 b944: c4 b8 00 00 .long 0xb8c4 b948: 28 02 00 00 .long 0x228 - b94c: 00 00 a7 49 b 1a7b94c + b94c: 00 00 a7 49 b 1a7b94c b950: 01 08 b0 b8 lm r5,2049(r16) b954: 00 00 30 02 .long 0x2300000 b958: 00 00 00 00 .long 0x0 @@ -18876,7 +18872,7 @@ static void kvmhv_emulate_tlbie_lpid(str ba78: 06 52 01 00 .long 0x15206 ba7c: 00 30 02 00 .long 0x23000 ba80: 00 00 00 a7 .long 0xa7000000 - ba84: 5f 01 06 48 bla 6015c + ba84: 5f 01 06 48 bla 6015c ba88: 01 00 00 38 li r0,1 ba8c: 02 00 00 00 .long 0x2 ba90: 00 a7 61 01 .long 0x161a700 @@ -19083,7 +19079,7 @@ static void kvmhv_emulate_tlbie_lpid(str bdb4: 04 98 bb 00 .long 0xbb9804 bdb8: 00 04 a0 bd stmw r13,1024(0) bdbc: 00 00 04 97 stwu r24,0(r4) - bdc0: b8 00 00 4b b ffffffffff00be78 + bdc0: b8 00 00 4b b ffffffffff00be78 bdc4: 00 00 00 00 .long 0x0 bdc8: 38 01 a7 07 .long 0x7a70138 bdcc: 02 19 be 00 .long 0xbe1902 @@ -19418,7 +19414,7 @@ static void kvmhv_emulate_tlbie_lpid(str c2f0: 08 2b cb 00 .long 0xcb2b08 c2f4: 00 10 02 00 .long 0x21000 c2f8: 00 00 00 24 dozi r0,r0,0 - c2fc: 0c 07 17 49 b 117ca08 + c2fc: 0c 07 17 49 b 117ca08 c300: cb 00 00 18 .long 0x180000cb c304: 02 00 00 00 .long 0x2 c308: 00 24 0e 07 .long 0x70e2400 @@ -19756,7 +19752,7 @@ static void kvmhv_emulate_tlbie_lpid(str c838: b3 00 00 03 .long 0x30000b3 c83c: 46 c8 00 00 .long 0xc846 c840: 03 5c 00 00 .long 0x5c03 - c844: 00 00 04 4b b ffffffffff04c844 + c844: 00 00 04 4b b ffffffffff04c844 c848: c8 00 00 10 vmuloud v0,v0,v0 c84c: 00 00 00 00 .long 0x0 c850: 04 2d c8 00 .long 0xc82d04 @@ -20194,7 +20190,7 @@ static void kvmhv_emulate_tlbie_lpid(str cf10: 29 cf 00 00 .long 0xcf29 cf14: 03 bc c5 00 .long 0xc5bc03 cf18: 00 03 c5 00 .long 0xc50300 - cf1c: 00 00 03 4b b ffffffffff03cf1c + cf1c: 00 00 03 4b b ffffffffff03cf1c cf20: 00 00 00 03 .long 0x3000000 cf24: 9b 04 00 00 .long 0x49b cf28: 00 04 0b cf lfdu f24,1024(r11) @@ -20330,7 +20326,7 @@ static void kvmhv_emulate_tlbie_lpid(str d130: 00 00 00 48 b d130 <.debug_info+0xd130> d134: 06 00 00 00 .long 0x6 d138: 00 49 06 00 .long 0x64900 - d13c: 00 00 00 4a b fffffffffe00d13c + d13c: 00 00 00 4a b fffffffffe00d13c d140: 06 00 00 00 .long 0x6 d144: 00 4b 06 00 .long 0x64b00 d148: 00 00 00 4c mcrf cr0,cr0 @@ -20373,10 +20369,10 @@ static void kvmhv_emulate_tlbie_lpid(str d1dc: 06 00 00 00 .long 0x6 d1e0: 00 65 00 43 bdnz- 136e0 <.debug_info+0x136e0> d1e4: 00 00 00 00 .long 0x0 - d1e8: 80 02 91 49 b 191d468 + d1e8: 80 02 91 49 b 191d468 d1ec: 08 d0 d2 00 .long 0xd2d008 d1f0: 00 01 00 00 .long 0x100 - d1f4: 00 00 91 4a b fffffffffe91d1f4 + d1f4: 00 00 91 4a b fffffffffe91d1f4 d1f8: 06 c5 00 00 .long 0xc506 d1fc: 00 00 01 00 .long 0x10000 d200: 00 00 00 91 stw r8,0(0) @@ -20508,7 +20504,7 @@ static void kvmhv_emulate_tlbie_lpid(str d3f8: a4 12 30 d6 stfsu f17,4772(r16) d3fc: 00 00 98 01 .long 0x1980000 d400: 00 00 00 00 .long 0x0 - d404: 93 a5 08 49 bla 108a590 + d404: 93 a5 08 49 bla 108a590 d408: d6 00 00 a0 lhz r0,214(0) d40c: 01 00 00 00 .long 0x1 d410: 00 93 a6 08 tdlgei r6,-27904 @@ -20520,10 +20516,10 @@ static void kvmhv_emulate_tlbie_lpid(str d428: 00 10 93 47 .long 0x47931000 d42c: 08 58 d4 00 .long 0xd45808 d430: 00 01 00 00 .long 0x100 - d434: 00 00 93 48 b 93d434 + d434: 00 00 93 48 b 93d434 d438: 0f 5c 00 00 .long 0x5c0f d43c: 00 00 0e 69 xori r14,r8,0 - d440: 64 00 93 49 b 193d4a4 + d440: 64 00 93 49 b 193d4a4 d444: 0f 5c 00 00 .long 0x5c0f d448: 00 04 01 00 .long 0x10400 d44c: 00 00 00 93 stw r24,0(0) @@ -20599,7 +20595,7 @@ static void kvmhv_emulate_tlbie_lpid(str d564: 97 00 00 03 .long 0x3000097 d568: 16 03 00 00 .long 0x316 d56c: 00 04 4f d5 stfsu f10,1024(r15) - d570: 00 00 0a 4b b ffffffffff0ad570 + d570: 00 00 0a 4b b ffffffffff0ad570 d574: 00 00 00 81 lwz r8,0(0) d578: d5 00 00 03 .long 0x30000d5 d57c: 58 d4 00 00 .long 0xd458 @@ -20625,7 +20621,7 @@ static void kvmhv_emulate_tlbie_lpid(str d5cc: 0a c5 00 00 .long 0xc50a d5d0: 00 f4 d5 00 .long 0xd5f400 d5d4: 00 03 58 d4 stfsu f2,768(r24) - d5d8: 00 00 03 4b b ffffffffff03d5d8 + d5d8: 00 00 03 4b b ffffffffff03d5d8 d5dc: 00 00 00 03 .long 0x3000000 d5e0: 4b 00 00 00 .long 0x4b d5e4: 03 5c 00 00 .long 0x5c03 @@ -20745,7 +20741,7 @@ static void kvmhv_emulate_tlbie_lpid(str d7ac: 00 ab bd 0a tdi 21,r29,-21760 d7b0: 9b 04 00 00 .long 0x49b d7b4: 30 00 04 62 ori r4,r16,48 - d7b8: d6 00 00 4b ba ff0000d4 + d7b8: d6 00 00 4b ba ff0000d4 d7bc: 00 00 00 00 .long 0x0 d7c0: 08 01 ab fa std r21,264(r11) d7c4: 01 99 d9 00 .long 0xd99901 @@ -21272,10 +21268,10 @@ static void kvmhv_emulate_tlbie_lpid(str dfe8: 00 00 00 00 .long 0x0 dfec: 92 48 1a 7d mulhd r8,r26,r9 dff0: df 00 00 00 .long 0xdf - dff4: 27 04 92 4a bla fe920424 + dff4: 27 04 92 4a bla fe920424 dff8: 02 16 e0 00 .long 0xe01602 dffc: 00 12 00 00 attn - e000: 00 00 92 4b b ffffffffff92e000 + e000: 00 00 92 4b b ffffffffff92e000 e004: 09 3e 01 00 .long 0x13e09 e008: 00 12 00 00 attn e00c: 00 00 92 4c .long 0x4c920000 @@ -21437,7 +21433,7 @@ static void kvmhv_emulate_tlbie_lpid(str e27c: 00 38 b0 47 .long 0x47b03800 e280: 08 d4 e2 00 .long 0xe2d408 e284: 00 01 00 00 .long 0x100 - e288: 00 00 b0 48 b b0e288 + e288: 00 00 b0 48 b b0e288 e28c: 13 d4 03 00 .long 0x3d413 e290: 00 00 01 00 .long 0x10000 e294: 00 00 00 b0 sth r0,0(0) @@ -21859,7 +21855,7 @@ static void kvmhv_emulate_tlbie_lpid(str e914: 00 00 fb 03 .long 0x3fb0000 e918: 00 43 00 00 .long 0x4300 e91c: 00 00 d0 04 .long 0x4d00000 - e920: b2 b0 08 41 bdnzta 4*cr2+lt,ffffb0b0 + e920: b2 b0 08 41 bdnzta 4*cr2+lt,ffffb0b0 e924: e9 00 00 0e twlti r0,233 e928: 70 76 72 00 .long 0x727670 e92c: b2 b1 08 cd lfdu f8,-20046(r8) @@ -22099,7 +22095,7 @@ static void kvmhv_emulate_tlbie_lpid(str ecd4: 10 b3 49 01 .long 0x149b310 ecd8: 03 ec ec 00 .long 0xecec03 ecdc: 00 02 00 00 attn - ece0: 00 00 b3 4a b fffffffffeb3ece0 + ece0: 00 00 b3 4a b fffffffffeb3ece0 ece4: 01 1f 41 e9 ldu r10,7936(r1) ece8: 00 00 00 00 .long 0x0 ecec: 29 18 b3 4d .long 0x4db31829 @@ -22525,7 +22521,7 @@ static void kvmhv_emulate_tlbie_lpid(str f37c: 00 24 00 00 .long 0x2400 f380: 00 00 b3 0f twi 29,r19,0 f384: 02 08 09 82 lwz r16,2050(r9) - f388: 00 00 00 4b b ffffffffff00f388 + f388: 00 00 00 4b b ffffffffff00f388 f38c: 00 00 00 00 .long 0x0 f390: 30 09 b3 1a lxvp vs52,2352(r19) f394: 01 49 f4 00 .long 0xf44901 @@ -22627,7 +22623,7 @@ static void kvmhv_emulate_tlbie_lpid(str f514: af f4 00 00 .long 0xf4af f518: 23 f5 00 00 .long 0xf523 f51c: 0f 2f 00 00 .long 0x2f0f - f520: 00 07 00 4b b ffffffffff00fc20 + f520: 00 07 00 4b b ffffffffff00fc20 f524: 00 00 00 00 .long 0x0 f528: 50 02 b3 6d xoris r19,r13,592 f52c: 03 78 f5 00 .long 0xf57803 @@ -22777,7 +22773,7 @@ static void kvmhv_emulate_tlbie_lpid(str f76c: 00 b4 49 08 tdllti r9,-19456 f770: ec 00 00 00 .long 0xec f774: d8 01 00 00 .long 0x1d8 - f778: 00 00 b4 4a b fffffffffeb4f778 + f778: 00 00 b4 4a b fffffffffeb4f778 f77c: 08 ec 00 00 .long 0xec08 f780: 00 e0 01 00 .long 0x1e000 f784: 00 00 00 b4 .long 0xb4000000 @@ -22828,7 +22824,7 @@ static void kvmhv_emulate_tlbie_lpid(str f838: 00 14 4a 02 .long 0x24a1400 f83c: 06 3e 01 00 .long 0x13e06 f840: 00 d8 17 69 xori r23,r8,55296 - f844: 64 00 14 4b b ffffffffff14f8a8 + f844: 64 00 14 4b b ffffffffff14f8a8 f848: 02 08 9f 00 .long 0x9f0802 f84c: 00 00 dc 02 .long 0x2dc0000 f850: 00 00 00 00 .long 0x0 @@ -23080,7 +23076,7 @@ static void kvmhv_emulate_tlbie_lpid(str fc28: b6 5a 08 57 rlwinm r8,r24,11,10,27 fc2c: fc 00 00 01 .long 0x10000fc fc30: 00 00 00 00 .long 0x0 - fc34: b6 5b 1d 49 ba 11d5bb4 + fc34: b6 5b 1d 49 ba 11d5bb4 fc38: fb 00 00 00 .long 0xfb fc3c: 01 00 00 00 .long 0x1 fc40: 00 b6 5c 06 .long 0x65cb600 @@ -23250,7 +23246,7 @@ static void kvmhv_emulate_tlbie_lpid(str fed0: 04 cb fe 00 .long 0xfecb04 fed4: 00 4b 00 00 .long 0x4b00 fed8: 00 00 a0 42 .long 0x42a00000 - fedc: b6 16 01 49 ba 10116b4 + fedc: b6 16 01 49 ba 10116b4 fee0: 01 01 00 02 .long 0x2000101 fee4: 00 00 00 00 .long 0x0 fee8: b6 17 01 0f twnei r1,6070 @@ -23406,7 +23402,7 @@ static void kvmhv_emulate_tlbie_lpid(str 10140: 01 17 3f 04 .long 0x43f1701 10144: 01 00 a0 02 .long 0x2a00001 10148: 00 10 00 00 .long 0x1000 - 1014c: 00 00 04 49 b 105014c + 1014c: 00 00 04 49 b 105014c 10150: 01 01 00 0d twgti r0,257 10154: 2f 00 00 00 .long 0x2f 10158: 63 01 01 00 .long 0x10163 @@ -23891,7 +23887,7 @@ static void kvmhv_emulate_tlbie_lpid(str 108d4: 02 00 00 00 .long 0x2 108d8: 00 b6 dc 01 .long 0x1dcb600 108dc: 0f 5c 00 00 .long 0x5c0f - 108e0: 00 38 00 4b b ffffffffff0140e0 + 108e0: 00 38 00 4b b ffffffffff0140e0 108e4: 00 00 00 00 .long 0x0 108e8: 08 01 b6 df stfdu f29,264(r22) 108ec: 01 0f 09 01 .long 0x1090f01 @@ -24047,7 +24043,7 @@ static void kvmhv_emulate_tlbie_lpid(str 10b44: 47 02 08 2e cmpwi cr4,r8,583 10b48: 03 00 00 88 lbz r0,3(0) 10b4c: 12 05 00 00 .long 0x512 - 10b50: 00 00 b6 48 b b70b50 + 10b50: 00 00 b6 48 b b70b50 10b54: 02 08 2e 03 .long 0x32e0802 10b58: 00 00 90 12 vaddubm v20,v16,v0 10b5c: 05 00 00 00 .long 0x5 @@ -24953,7 +24949,7 @@ static void kvmhv_emulate_tlbie_lpid(str 1196c: 04 00 00 7a rldicr r0,r16,0,0 11970: 19 01 00 0f twnei r0,281 11974: 2f 00 00 00 .long 0x2f - 11978: 7f 00 29 48 bla 29007c + 11978: 7f 00 29 48 bla 29007c 1197c: 14 f3 02 02 .long 0x202f314 11980: bd 19 01 00 .long 0x119bd 11984: 02 00 00 00 .long 0x2 @@ -25258,7 +25254,7 @@ static void kvmhv_emulate_tlbie_lpid(str 11e30: 44 fb 00 00 .long 0xfb44 11e34: 03 44 1e 01 .long 0x11e4403 11e38: 00 03 63 f8 std r3,768(r3) - 11e3c: 00 00 03 4a b fffffffffe041e3c + 11e3c: 00 00 03 4a b fffffffffe041e3c 11e40: 1a 01 00 00 .long 0x11a 11e44: 04 5e f8 00 .long 0xf85e04 11e48: 00 04 26 1e mulli r17,r6,1024 @@ -25267,7 +25263,7 @@ static void kvmhv_emulate_tlbie_lpid(str 11e54: 44 fb 00 00 .long 0xfb44 11e58: 03 63 f8 00 .long 0xf86303 11e5c: 00 03 44 1e mulli r18,r4,768 - 11e60: 01 00 03 4a bl fffffffffe041e60 + 11e60: 01 00 03 4a bl fffffffffe041e60 11e64: 1a 01 00 00 .long 0x11a 11e68: 04 4e 1e 01 .long 0x11e4e04 11e6c: 00 0a df 02 attn @@ -25401,7 +25397,7 @@ static void kvmhv_emulate_tlbie_lpid(str 1206c: f1 06 01 00 .long 0x106f1 12070: 03 52 01 00 .long 0x15203 12074: 00 03 5f 9c stbu r2,768(r31) - 12078: 00 00 00 49 b 1012078 + 12078: 00 00 00 49 b 1012078 1207c: 00 00 00 00 .long 0x0 12080: 1a 71 02 0c twi 0,r2,28954 12084: c5 00 00 00 .long 0xc5 @@ -25611,7 +25607,7 @@ static void kvmhv_emulate_tlbie_lpid(str 123b4: 9b 04 00 00 .long 0x49b 123b8: 03 9b 04 00 .long 0x49b03 123bc: 00 03 2f 00 .long 0x2f0300 - 123c0: 00 00 00 49 b 10123c0 + 123c0: 00 00 00 49 b 10123c0 123c4: 00 00 00 00 .long 0x0 123c8: 14 d3 04 06 .long 0x604d314 123cc: df 02 00 00 .long 0x2df @@ -25674,7 +25670,7 @@ static void kvmhv_emulate_tlbie_lpid(str 124b0: 00 00 00 bd stmw r8,0(0) 124b4: 99 05 c5 00 .long 0xc50599 124b8: 00 00 c6 24 dozi r6,r6,0 - 124bc: 01 00 03 4b bl ffffffffff0424bc + 124bc: 01 00 03 4b bl ffffffffff0424bc 124c0: 00 00 00 92 stw r16,0(0) 124c4: 01 00 49 00 .long 0x490001 124c8: 00 00 00 14 .long 0x14000000 @@ -25713,7 +25709,7 @@ static void kvmhv_emulate_tlbie_lpid(str 1254c: 9c f7 00 00 .long 0xf79c 12550: 03 9b 04 00 .long 0x49b03 12554: 00 03 2f 00 .long 0x2f0300 - 12558: 00 00 00 49 b 1012558 + 12558: 00 00 00 49 b 1012558 1255c: 00 00 00 00 .long 0x0 12560: 14 e5 04 05 .long 0x504e514 12564: c5 00 00 00 .long 0xc5 @@ -27332,12 +27328,12 @@ static void kvmhv_emulate_tlbie_lpid(str 141dc: fb 00 00 00 .long 0xfb 141e0: 00 00 00 00 .long 0x0 141e4: 00 00 00 31 addic r8,r0,0 - 141e8: 67 70 00 4a bla fe007064 + 141e8: 67 70 00 4a bla fe007064 141ec: 04 1b 2a 17 .long 0x172a1b04 141f0: 01 00 00 00 .long 0x1 141f4: 00 00 00 00 .long 0x0 141f8: 00 00 26 00 .long 0x260000 - 141fc: 00 00 00 4b b ffffffffff0141fc + 141fc: 00 00 00 4b b ffffffffff0141fc 14200: 04 07 cd 01 .long 0x1cd0704 ... 1420c: 00 00 1c 00 .long 0x1c0000 @@ -27526,7 +27522,7 @@ static void kvmhv_emulate_tlbie_lpid(str ... 144fc: d4 02 00 00 .long 0x2d4 14500: 00 00 00 00 .long 0x0 - 14504: 01 9c ee 49 bl 1efe104 + 14504: 01 9c ee 49 bl 1efe104 14508: 01 00 3f 6b xori r31,r25,1 1450c: 76 6d 00 e6 lxsd v16,28020(0) 14510: 03 2f 44 fb .long 0xfb442f03 @@ -27581,14 +27577,14 @@ static void kvmhv_emulate_tlbie_lpid(str ... 145fc: 08 09 4a 01 .long 0x14a0908 ... - 14608: 00 1d fc 49 b 1fd6308 + 14608: 00 1d fc 49 b 1fd6308 1460c: 01 00 1e 00 .long 0x1e0001 14610: 00 00 00 0c twi 0,r0,0 14614: 30 4a 01 00 .long 0x14a30 ... 14620: 0c 3d 4a 01 .long 0x14a3d0c ... - 1462c: 00 0c 4a 4a b fffffffffe4b522c + 1462c: 00 0c 4a 4a b fffffffffe4b522c 14630: 01 00 00 00 .long 0x1 14634: 00 00 00 00 .long 0x0 14638: 00 00 14 42 bc 16,4*cr5+lt,14638 <.debug_info+0x14638> @@ -27643,7 +27639,7 @@ static void kvmhv_emulate_tlbie_lpid(str 14714: 00 0c 37 93 stw r25,3072(r23) 14718: 01 00 00 00 .long 0x1 ... - 14728: 00 14 7a 4a b fffffffffe7b5b28 + 14728: 00 14 7a 4a b fffffffffe7b5b28 1472c: 01 00 00 00 .long 0x1 14730: 00 00 00 00 .long 0x0 14734: 00 00 01 00 .long 0x10000 @@ -27653,7 +27649,7 @@ static void kvmhv_emulate_tlbie_lpid(str 14744: af 4a 01 00 .long 0x14aaf 14748: 08 a2 4a 01 .long 0x14aa208 ... - 14754: 00 08 95 4a b fffffffffe964f54 + 14754: 00 08 95 4a b fffffffffe964f54 14758: 01 00 00 00 .long 0x1 1475c: 00 00 00 00 .long 0x0 14760: 00 00 1d 88 lbz r0,0(r29) @@ -27661,7 +27657,7 @@ static void kvmhv_emulate_tlbie_lpid(str 14768: 00 00 00 00 .long 0x0 1476c: 0c bc 4a 01 .long 0x14abc0c ... - 14778: 00 0c c8 4a b fffffffffec95378 + 14778: 00 0c c8 4a b fffffffffec95378 1477c: 01 00 00 00 .long 0x1 14780: 00 00 00 00 .long 0x0 14784: 00 00 58 d5 stfsu f10,0(r24) @@ -27724,7 +27720,7 @@ static void kvmhv_emulate_tlbie_lpid(str 14880: 00 00 10 00 .long 0x100000 14884: 00 00 00 00 .long 0x0 14888: 00 00 01 63 ori r1,r24,0 - 1488c: 03 07 bf 48 bla bf0700 + 1488c: 03 07 bf 48 bla bf0700 14890: 01 00 08 2e cmpwi cr4,r8,1 14894: 69 01 00 00 .long 0x169 14898: 00 00 00 00 .long 0x0 @@ -29379,7 +29375,7 @@ static void kvmhv_emulate_tlbie_lpid(str 16630: 1f 92 01 00 .long 0x1921f ... 1663c: 04 00 00 00 .long 0x4 - 16640: 00 00 0c 4a b fffffffffe0d6640 + 16640: 00 00 0c 4a b fffffffffe0d6640 16644: 01 09 08 30 addic r0,r8,2305 16648: 92 01 00 00 .long 0x192 1664c: 00 00 00 00 .long 0x0 @@ -29721,7 +29717,7 @@ static void kvmhv_emulate_tlbie_lpid(str 16c20: 00 2e 02 06 .long 0x6022e00 16c24: cd 01 00 00 .long 0x1cd ... - 16c30: 9c 02 00 00 .long 0x29c + 16c30: 90 02 00 00 .long 0x290 16c34: 00 00 00 00 .long 0x0 16c38: 01 9c 9d 72 andi. r29,r20,39937 16c3c: 01 00 39 00 .long 0x390001 @@ -29889,7 +29885,7 @@ static void kvmhv_emulate_tlbie_lpid(str 16f40: 00 00 00 00 .long 0x0 16f44: 00 1c 24 01 .long 0x1241c00 16f48: 00 07 01 53 rlwimi r1,r24,0,28,0 - 16f4c: 02 8b 00 07 .long 0x7008b02 + 16f4c: 02 8a 00 07 .long 0x7008a02 16f50: 01 54 03 0a tdlti r3,21505 16f54: c0 2d 00 00 .long 0x2dc0 16f58: 00 14 4e 8d lbzu r10,5120(r14) @@ -30022,7 +30018,7 @@ static void kvmhv_emulate_tlbie_lpid(str 17194: 00 00 00 b4 .long 0xb4000000 17198: 25 01 00 a6 .long 0xa6000125 1719c: 71 01 00 07 .long 0x7000171 - 171a0: 01 53 02 89 lbz r8,21249(r2) + 171a0: 01 53 02 8c lbzu r0,21249(r2) 171a4: 00 00 13 00 .long 0x130000 171a8: 00 00 00 00 .long 0x0 171ac: 00 00 00 5b rlmi r0,r24,r0,0,0 @@ -30031,15 +30027,15 @@ static void kvmhv_emulate_tlbie_lpid(str 171b8: 01 53 02 8f lbzu r24,21249(r2) 171bc: 00 07 01 54 rlwinm r1,r0,0,28,0 171c0: 02 88 00 07 .long 0x7008802 - 171c4: 01 55 02 8c lbzu r0,21761(r2) + 171c4: 01 55 02 8b lbz r24,21761(r2) 171c8: 00 07 01 56 rlwinm r1,r16,0,28,0 - 171cc: 02 8b 00 00 .long 0x8b02 + 171cc: 02 8a 00 00 .long 0x8a02 171d0: 13 00 00 00 .long 0x13 171d4: 00 00 00 00 .long 0x0 171d8: 00 a2 25 01 attn 171dc: 00 e8 71 01 .long 0x171e800 171e0: 00 07 01 53 rlwimi r1,r24,0,28,0 - 171e4: 02 89 00 00 .long 0x8902 + 171e4: 02 8c 00 00 .long 0x8c02 171e8: 13 00 00 00 .long 0x13 171ec: 00 00 00 00 .long 0x0 171f0: 00 2a 51 01 attn @@ -30051,19 +30047,19 @@ static void kvmhv_emulate_tlbie_lpid(str 17208: 00 83 24 01 .long 0x1248300 1720c: 00 18 72 01 .long 0x1721800 17210: 00 07 01 53 rlwimi r1,r24,0,28,0 - 17214: 02 8c 00 00 .long 0x8c02 + 17214: 02 8b 00 00 .long 0x8b02 17218: 13 00 00 00 .long 0x13 1721c: 00 00 00 00 .long 0x0 17220: 00 94 23 01 .long 0x1239400 17224: 00 47 72 01 .long 0x1724700 17228: 00 07 01 54 rlwinm r1,r0,0,28,0 1722c: 02 87 00 07 .long 0x7008702 - 17230: 01 55 02 8a lbz r16,21761(r2) + 17230: 01 55 02 89 lbz r8,21761(r2) 17234: 00 07 01 56 rlwinm r1,r16,0,28,0 - 17238: 02 8c 00 07 .long 0x7008c02 + 17238: 02 8b 00 07 .long 0x7008b02 1723c: 01 57 01 30 addic r0,r1,22273 17240: 07 01 58 02 .long 0x2580107 - 17244: 8b 00 00 13 vdivuw v24,v0,v0 + 17244: 8a 00 00 13 .long 0x1300008a ... 17250: c6 24 01 00 .long 0x124c6 17254: 71 72 01 00 .long 0x17271 @@ -30071,19 +30067,19 @@ static void kvmhv_emulate_tlbie_lpid(str 1725c: 8f 00 07 01 .long 0x107008f 17260: 54 02 8d 00 .long 0x8d0254 17264: 07 01 55 02 .long 0x2550107 - 17268: 8c 00 07 01 .long 0x107008c - 1726c: 56 02 8b 00 .long 0x8b0256 + 17268: 8b 00 07 01 .long 0x107008b + 1726c: 56 02 8a 00 .long 0x8a0256 17270: 00 15 00 00 .long 0x1500 17274: 00 00 00 00 .long 0x0 17278: 00 00 94 23 subfic r28,r20,0 1727c: 01 00 07 01 .long 0x1070001 17280: 54 02 87 00 .long 0x870254 17284: 07 01 55 02 .long 0x2550107 - 17288: 8a 00 07 01 .long 0x107008a + 17288: 89 00 07 01 .long 0x1070089 1728c: 56 01 30 07 .long 0x7300156 - 17290: 01 57 02 8c lbzu r0,22273(r2) + 17290: 01 57 02 8b lbz r24,22273(r2) 17294: 00 07 01 58 rlmi r1,r0,r0,28,0 - 17298: 02 8b 00 00 .long 0x8b02 + 17298: 02 8a 00 00 .long 0x8a02 1729c: 00 5d 00 00 .long 0x5d00 172a0: 00 00 12 02 .long 0x2120000 172a4: 06 cd 01 00 .long 0x1cd06 @@ -30351,7 +30347,7 @@ static void kvmhv_emulate_tlbie_lpid(str 17718: 38 77 01 00 .long 0x17738 1771c: 07 01 53 03 .long 0x3530107 17720: 0a 08 f8 07 .long 0x7f8080a - 17724: 01 54 03 42 bcl 16,so,1cb24 + 17724: 01 54 03 42 bcl 16,so,1cb24 17728: 3f 24 07 01 .long 0x107243f 1772c: 55 02 8f 00 .long 0x8f0255 17730: 07 01 56 03 .long 0x3560107 @@ -30565,7 +30561,7 @@ static void kvmhv_emulate_tlbie_lpid(str 17af8: 00 00 00 00 .long 0x0 17afc: 00 00 00 59 rlmi r0,r8,r0,0,0 17b00: 24 01 00 07 .long 0x7000124 - 17b04: 01 53 03 40 bdnzfl so,1ce04 + 17b04: 01 53 03 40 bdnzfl so,1ce04 17b08: 40 24 07 01 .long 0x1072440 17b0c: 54 03 0a c0 lfs f0,852(r10) 17b10: 0c 00 00 00 .long 0xc @@ -30658,22 +30654,22 @@ static void kvmhv_emulate_tlbie_lpid(str 17c80: 00 00 00 00 .long 0x0 17c84: 00 00 00 26 dozi r16,r0,0 17c88: 00 00 00 00 .long 0x0 - 17c8c: 2a 01 06 48 ba 60128 + 17c8c: 2a 01 06 48 ba 60128 17c90: 01 00 00 00 .long 0x1 17c94: 00 00 00 00 .long 0x0 17c98: 00 00 00 26 dozi r16,r0,0 17c9c: 00 00 00 00 .long 0x0 - 17ca0: 2a 01 12 48 ba 120128 + 17ca0: 2a 01 12 48 ba 120128 17ca4: 01 00 00 00 .long 0x1 17ca8: 00 00 00 00 .long 0x0 17cac: 00 00 00 26 dozi r16,r0,0 17cb0: 00 00 00 00 .long 0x0 - 17cb4: 2a 01 1f 48 ba 1f0128 + 17cb4: 2a 01 1f 48 ba 1f0128 17cb8: 01 00 00 00 .long 0x1 17cbc: 00 00 00 00 .long 0x0 17cc0: 00 00 00 26 dozi r16,r0,0 17cc4: 00 00 00 00 .long 0x0 - 17cc8: 2a 01 29 48 ba 290128 + 17cc8: 2a 01 29 48 ba 290128 17ccc: 01 00 00 00 .long 0x1 17cd0: 00 00 00 00 .long 0x0 17cd4: 00 00 00 7d cmpw cr2,r0,r0 @@ -31352,7 +31348,7 @@ static void kvmhv_emulate_tlbie_lpid(str 18884: 01 00 00 2b cmplwi cr6,r0,1 18888: 00 00 00 00 .long 0x0 1888c: 01 d9 19 52 rlwimi. r25,r16,27,4,0 - 18890: 01 00 00 4a bl fffffffffe018890 + 18890: 01 00 00 4a bl fffffffffe018890 18894: 00 00 00 00 .long 0x0 18898: 01 db 06 c5 lfsu f8,-9471(r6) 1889c: 00 00 00 00 .long 0x0 @@ -31715,7 +31711,7 @@ static void kvmhv_emulate_tlbie_lpid(str 18e40: 00 00 03 55 rlwinm r3,r8,0,0,0 18e44: 8e 01 00 16 .long 0x1600018e 18e48: 00 00 00 00 .long 0x0 - 18e4c: 0d 7d 01 43 bcl- 24,gt,20b58 + 18e4c: 0d 7d 01 43 bcl- 24,gt,20b58 18e50: 76 03 00 00 .long 0x376 18e54: 00 42 00 00 attn 18e58: 00 00 12 95 stwu r8,0(r18) @@ -31752,7 +31748,7 @@ static void kvmhv_emulate_tlbie_lpid(str 18ed4: 00 00 2c 69 xori r12,r9,0 18ed8: 64 78 00 0e twlti r0,30820 18edc: fc 42 c5 00 .long 0xc542fc - 18ee0: 00 00 34 4a b fffffffffe358ee0 + 18ee0: 00 00 34 4a b fffffffffe358ee0 18ee4: 00 00 00 00 .long 0x0 18ee8: 0e ff 02 c5 lfsu f8,-242(r2) 18eec: 00 00 00 34 addic. r0,r0,0 @@ -31868,7 +31864,7 @@ static void kvmhv_emulate_tlbie_lpid(str 190a4: 00 15 db 31 addic r14,r27,5376 190a8: 9b 3f 00 00 .long 0x3f9b 190ac: 2b 00 00 00 .long 0x2b - 190b0: 00 15 db 49 b 1dca5b0 + 190b0: 00 15 db 49 b 1dca5b0 190b4: c1 21 01 00 .long 0x121c1 190b8: 00 3a 00 00 attn 190bc: 00 00 17 ca lfd f16,0(r23) @@ -31917,10 +31913,10 @@ static void kvmhv_emulate_tlbie_lpid(str 19168: 00 00 00 2c cmpwi r0,0 1916c: 73 65 74 00 .long 0x746573 19170: 18 9b 1b 2f cmpwi cr6,r27,-25832 - 19174: 00 00 00 4a b fffffffffe019174 + 19174: 00 00 00 4a b fffffffffe019174 19178: 00 00 00 00 .long 0x0 1917c: 18 9d 09 86 lwzu r16,-25320(r9) - 19180: 02 00 00 4a ba fe000000 + 19180: 02 00 00 4a ba fe000000 19184: 00 00 00 00 .long 0x0 19188: 18 9d 11 86 lwzu r16,-25320(r17) 1918c: 02 00 00 00 .long 0x2 @@ -32029,7 +32025,7 @@ static void kvmhv_emulate_tlbie_lpid(str 19328: 9c 00 00 2c cmpwi r0,156 1932c: 76 61 6c 00 .long 0x6c6176 19330: 13 c9 2a 2f cmpdi cr6,r10,-14061 - 19334: 00 00 00 4a b fffffffffe019334 + 19334: 00 00 00 4a b fffffffffe019334 19338: 00 00 00 00 .long 0x0 1933c: 13 cb 10 2f cmpwi cr6,r16,-13549 19340: 00 00 00 00 .long 0x0 @@ -32042,7 +32038,7 @@ static void kvmhv_emulate_tlbie_lpid(str 1935c: 0e 00 00 2c cmpwi r0,14 19360: 76 61 6c 00 .long 0x6c6176 19364: 13 a8 2a 2f cmpdi cr6,r10,-22509 - 19368: 00 00 00 4a b fffffffffe019368 + 19368: 00 00 00 4a b fffffffffe019368 1936c: 00 00 00 00 .long 0x0 19370: 13 aa 10 2f cmpwi cr6,r16,-21997 19374: 00 00 00 00 .long 0x0 @@ -32055,7 +32051,7 @@ static void kvmhv_emulate_tlbie_lpid(str 19390: 93 01 00 2c cmpwi r0,403 19394: 76 61 6c 00 .long 0x6c6176 19398: 13 87 2a 2f cmpdi cr6,r10,-30957 - 1939c: 00 00 00 4a b fffffffffe01939c + 1939c: 00 00 00 4a b fffffffffe01939c 193a0: 00 00 00 00 .long 0x0 193a4: 13 89 10 2f cmpwi cr6,r16,-30445 193a8: 00 00 00 00 .long 0x0 @@ -32077,7 +32073,7 @@ static void kvmhv_emulate_tlbie_lpid(str 193e8: 00 00 c0 55 rlwinm r0,r14,0,0,0 193ec: 1d 03 09 94 stwu r0,797(r9) 193f0: 01 00 2c 76 andis. r12,r17,1 - 193f4: 00 c0 55 4a b fffffffffe5753f4 + 193f4: 00 c0 55 4a b fffffffffe5753f4 193f8: e9 d2 00 00 .long 0xd2e9 193fc: 2b 00 00 00 .long 0x2b 19400: 00 c0 55 54 rlwinm r21,r2,24,0,0 @@ -32381,7 +32377,7 @@ static void kvmhv_emulate_tlbie_lpid(str ... 19964: 0c 52 41 01 .long 0x141520c ... - 19970: 00 08 2c 41 bdnzt 4*cr3+lt,1a170 + 19970: 00 08 2c 41 bdnzt 4*cr3+lt,1a170 19974: 01 00 00 00 .long 0x1 19978: 00 00 00 00 .long 0x0 1997c: 00 00 14 9c stbu r0,0(r20) @@ -32591,7 +32587,7 @@ static void kvmhv_emulate_tlbie_lpid(str 19d30: 00 00 13 00 .long 0x130000 19d34: 00 00 00 00 .long 0x0 19d38: 00 00 00 30 addic r0,r0,0 - 19d3c: 23 01 00 4a bla fe000120 + 19d3c: 23 01 00 4a bla fe000120 19d40: 9d 01 00 07 .long 0x700019d 19d44: 01 53 02 8e lbzu r16,21249(r2) 19d48: 00 00 2a 00 .long 0x2a0000 @@ -32760,7 +32756,7 @@ Disassembly of section .debug_abbrev: 0: 01 0d 00 03 .long 0x3000d01 4: 0e 3a 0b 3b addi r24,r11,14862 for (; addr < ((unsigned long *) (regs + 1)); addr++) - 8: 0b 39 0b 49 bla 10b3908 + 8: 0b 39 0b 49 bla 10b3908 c: 13 38 0b 00 .long 0xb3813 10: 00 02 0d 00 attn 14: 03 0e 3a 0b tdi 25,r26,3587 @@ -32770,7 +32766,7 @@ Disassembly of section .debug_abbrev: 20: 00 00 03 05 .long 0x5030000 24: 00 49 13 00 .long 0x134900 28: 00 04 0f 00 .long 0xf0400 - 2c: 0b 21 08 49 bla 1082108 + 2c: 0b 21 08 49 bla 1082108 30: 13 00 00 05 .long 0x5000013 34: 0d 00 03 0e twlti r3,13 38: 3a 0b 3b 05 .long 0x53b0b3a @@ -32823,7 +32819,7 @@ Disassembly of section .debug_abbrev: hr->lpcr = swab64(hr->lpcr); a8: 08 3a 0b 3b addi r24,r11,14856 hr->pcr = swab64(hr->pcr) | PCR_MASK; - ac: 0b 39 0b 49 bla 10b3908 + ac: 0b 39 0b 49 bla 10b3908 hr->hfscr = swab64(hr->hfscr); b0: 13 38 0b 00 .long 0xb3813 hr->tb_offset = swab64(hr->tb_offset); @@ -32872,7 +32868,7 @@ Disassembly of section .debug_abbrev: hr->amor = swab64(hr->amor); 114: 0e 3a 0b 3b addi r24,r11,14862 hr->dpdes = swab64(hr->dpdes); - 118: 05 39 0b 49 bl 10b3a1c + 118: 05 39 0b 49 bl 10b3a1c hr->hfscr = swab64(hr->hfscr); 11c: 13 00 00 17 .long 0x17000013 hr->tb_offset = swab64(hr->tb_offset); @@ -32896,7 +32892,7 @@ Disassembly of section .debug_abbrev: hr->vtb = swab64(hr->vtb); 144: 01 13 00 00 .long 0x1301 hr->srr1 = swab64(hr->srr1); - 148: 1a 26 00 49 ba 1002618 + 148: 1a 26 00 49 ba 1002618 hr->sprg[0] = swab64(hr->sprg[0]); 14c: 13 00 00 1b .long 0x1b000013 hr->vtb = swab64(hr->vtb); @@ -32912,7 +32908,7 @@ Disassembly of section .debug_abbrev: hr->hdsisr = swab64(hr->hdsisr); 164: 0e 3a 0b 3b addi r24,r11,14862 hr->sprg[1] = swab64(hr->sprg[1]); - 168: 05 39 0b 49 bl 10b3a6c + 168: 05 39 0b 49 bl 10b3a6c hr->sprg[2] = swab64(hr->sprg[2]); 16c: 13 00 00 1d mulli r8,r0,19 hr->hdsisr = swab64(hr->hdsisr); @@ -33017,7 +33013,7 @@ Disassembly of section .debug_abbrev: 26c: 2e 04 01 03 .long 0x301042e 270: 0e 3e 21 07 .long 0x7213e0e rc = plpar_hcall_norets(H_TLB_INVALIDATE, H_TLBIE_P1_ENC(2, 0, 1), - 274: 0b 21 04 49 bla 1042108 + 274: 0b 21 04 49 bla 1042108 278: 13 3a 0b 3b addi r24,r11,14867 27c: 0b 39 0b 01 .long 0x10b390b 280: 13 00 00 2f cmpwi cr6,r0,19 @@ -33029,7 +33025,7 @@ Disassembly of section .debug_abbrev: 294: 30 0d 00 03 .long 0x3000d30 pr_err("KVM: TLB LPID invalidation hcall failed, rc=%ld\n", rc); 298: 08 3a 0b 3b addi r24,r11,14856 - 29c: 05 39 0b 49 bl 10b3ba0 + 29c: 05 39 0b 49 bl 10b3ba0 2a0: 13 38 05 00 .long 0x53813 2a4: 00 31 34 00 .long 0x343100 2a8: 03 08 3a 21 subfic r9,r26,2051 @@ -33080,7 +33076,7 @@ Disassembly of section .debug_abbrev: static bool kvmhv_invalidate_shadow_pte(struct kvm_vcpu *vcpu, 338: 01 03 0e 3a addi r16,r14,769 33c: 0b 3b 0b 39 addi r8,r11,15115 - 340: 0b 27 19 49 bla 1192708 + 340: 0b 27 19 49 bla 1192708 344: 13 20 0b 01 .long 0x10b2013 348: 13 00 00 3b li r24,19 34c: 0d 00 03 08 tdi 0,r3,13 @@ -33146,7 +33142,7 @@ static bool kvmhv_invalidate_shadow_pte( 3fc: 19 03 0e 3a addi r16,r14,793 400: 0b 3b 0b 39 addi r8,r11,15115 ms->nesting_count--; - 404: 0b 27 19 49 bla 1192708 + 404: 0b 27 19 49 bla 1192708 408: 13 3c 19 01 .long 0x1193c13 40c: 13 00 00 46 .long 0x46000013 410: 1d 01 31 13 vextduwvrx v25,v17,v0,r4 @@ -33161,15 +33157,15 @@ static bool kvmhv_invalidate_shadow_pte( } 42c: 48 0d 00 03 .long 0x3000d48 430: 0e 3a 0b 3b addi r24,r11,14862 - 434: 05 39 0b 49 bl 10b3d38 + 434: 05 39 0b 49 bl 10b3d38 438: 13 88 01 0b tdnei r1,-30701 43c: 38 05 00 00 .long 0x538 440: 49 2e 01 3f addis r24,r1,11849 444: 19 03 0e 3a addi r16,r14,793 448: 0b 3b 05 39 addi r8,r5,15115 - 44c: 0b 27 19 49 bla 1192708 + 44c: 0b 27 19 49 bla 1192708 450: 13 3c 19 01 .long 0x1193c13 - 454: 13 00 00 4a bla fe000010 + 454: 13 00 00 4a bla fe000010 458: 34 00 03 0e twlti r3,52 45c: 3a 0b 3b 0b tdi 25,r27,2874 shift = PAGE_SHIFT; @@ -33182,7 +33178,7 @@ static bool kvmhv_invalidate_shadow_pte( 474: 01 13 00 00 .long 0x1301 478: 4c 0d 00 03 .long 0x3000d4c 47c: 0e 3a 0b 3b addi r24,r11,14862 - 480: 05 39 0b 49 bl 10b3d84 + 480: 05 39 0b 49 bl 10b3d84 484: 13 88 01 0b tdnei r1,-30701 488: 38 0b 00 00 .long 0xb38 if (unlikely(ms->mmiowb_pending)) { @@ -33190,7 +33186,7 @@ static bool kvmhv_invalidate_shadow_pte( struct mmiowb_state *ms = __mmiowb_state(); 490: 0e 3a 0b 3b addi r24,r11,14862 if (unlikely(ms->mmiowb_pending)) { - 494: 05 39 0b 49 bl 10b3d98 + 494: 05 39 0b 49 bl 10b3d98 498: 13 0d 21 01 .long 0x1210d13 ms->mmiowb_pending = 0; 49c: 6b 0b 00 00 .long 0xb6b @@ -33278,7 +33274,7 @@ static bool kvmhv_invalidate_shadow_pte( 57c: 34 00 03 0e twlti r3,52 580: 3a 21 01 3b addi r24,r1,8506 hr->cfar = vcpu->arch.cfar; - 584: 05 39 0b 49 bl 10b3e88 + 584: 05 39 0b 49 bl 10b3e88 588: 13 02 18 00 .long 0x180213 hr->ppr = vcpu->arch.ppr; 58c: 00 5d 2e 01 .long 0x12e5d00 @@ -33301,7 +33297,7 @@ static bool kvmhv_invalidate_shadow_pte( struct kvmppc_vcore *vc = vcpu->arch.vcore; 5bc: 21 1c 3b 0b tdi 25,r27,7201 vc->dpdes = hr->dpdes; - 5c0: 39 21 0f 49 bl 10f26f8 + 5c0: 39 21 0f 49 bl 10f26f8 vcpu->arch.hfscr = hr->hfscr; 5c4: 13 00 00 60 ori r0,r0,19 5c8: 34 00 03 0e twlti r3,52 @@ -33351,7 +33347,7 @@ static bool kvmhv_invalidate_shadow_pte( 63c: 66 34 00 03 .long 0x3003466 640: 08 3a 0b 3b addi r24,r11,14856 vcpu->arch.cfar = hr->cfar; - 644: 0b 39 0b 49 bla 10b3908 + 644: 0b 39 0b 49 bla 10b3908 648: 13 00 00 67 oris r0,r24,19 vcpu->arch.ppr = hr->ppr; 64c: 0d 00 49 13 psq_lx f26,r9,r0,0,0 @@ -33386,24 +33382,24 @@ static bool kvmhv_invalidate_shadow_pte( 6ac: 39 0b 49 13 ps_msub. f26,f9,f12,f1 6b0: 38 06 00 00 .long 0x638 pseries_partition_tb = kmalloc(sizeof(struct patb_entry) << ptb_order, - 6b4: 6e 35 00 49 ba 100356c - if (unlikely(!pseries_partition_tb)) { + 6b4: 6e 35 00 49 ba 100356c + if (!pseries_partition_tb) { 6b8: 13 00 00 6f xoris r0,r24,19 pseries_partition_tb = kmalloc(sizeof(struct patb_entry) << ptb_order, 6bc: 13 00 03 0e twlti r3,19 6c0: 0b 21 00 3a li r16,8459 - if (unlikely(!pseries_partition_tb)) { + if (!pseries_partition_tb) { 6c4: 0b 3b 0b 39 addi r8,r11,15115 ptcr = __pa(pseries_partition_tb) | (ptb_order - 12); 6c8: 21 08 00 00 .long 0x821 rc = plpar_hcall_norets(H_SET_PARTITION_TABLE, ptcr); 6cc: 70 0d 00 03 .long 0x3000d70 6d0: 0e 3a 0b 3b addi r24,r11,14862 - 6d4: 0b 39 0b 49 bla 10b3908 + 6d4: 0b 39 0b 49 bla 10b3908 6d8: 13 88 01 0b tdnei r1,-30701 6dc: 38 05 00 00 .long 0x538 if (rc != H_SUCCESS) { - 6e0: 71 01 01 49 bl 1010850 + 6e0: 71 01 01 49 bl 1010850 6e4: 13 88 01 0b tdnei r1,-30701 return 0; 6e8: 01 13 00 00 .long 0x1301 @@ -33527,7 +33523,7 @@ static bool kvmhv_invalidate_shadow_pte( 854: 01 16 00 03 .long 0x3001601 { 858: 0e 3a 0b 3b addi r24,r11,14862 - 85c: 0b 39 0b 49 bla 10b3908 + 85c: 0b 39 0b 49 bla 10b3908 860: 13 88 01 21 subfic r8,r1,-30701 864: 10 00 00 88 lbz r0,16(0) 868: 01 13 01 03 .long 0x3011301 @@ -33540,7 +33536,7 @@ static bool kvmhv_invalidate_shadow_pte( 87c: 13 00 00 89 lbz r8,19(0) 880: 01 0d 00 03 .long 0x3000d01 884: 0e 3a 0b 3b addi r24,r11,14862 - 888: 05 39 0b 49 bl 10b418c + 888: 05 39 0b 49 bl 10b418c struct kvm *kvm = gp->l1_host; 88c: 13 88 01 21 subfic r8,r1,-30701 ptbl_addr = (kvm->arch.l1_ptcr & PRTB_MASK) + (gp->l1_lpid << 4); @@ -33729,7 +33725,7 @@ static bool kvmhv_invalidate_shadow_pte( ac4: 0d 00 00 ab lha r24,13(0) ac8: 01 0d 00 03 .long 0x3000d01 acc: 08 3a 0b 3b addi r24,r11,14856 - ad0: 0b 39 0b 49 bla 10b3908 + ad0: 0b 39 0b 49 bla 10b3908 ad4: 13 88 01 0b tdnei r1,-30701 ad8: 00 00 ac 01 .long 0x1ac0000 adc: 34 00 03 0e twlti r3,52 @@ -33862,9 +33858,9 @@ static void kvmhv_emulate_tlbie_lpid(str c68: 01 03 0e 3a addi r16,r14,769 c6c: 0b 3b 0b 39 addi r8,r11,15115 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - c70: 0b 27 19 49 bla 1192708 + c70: 0b 27 19 49 bla 1192708 c74: 13 01 13 00 .long 0x130113 - c78: 00 c3 01 48 b 1cf78 + c78: 00 c3 01 48 b 1cf78 c7c: 00 7d 01 82 lwz r16,32000(r1) c80: 01 19 7f 13 .long 0x137f1901 c84: 00 00 c4 01 .long 0x1c40000 @@ -33878,79 +33874,79 @@ Disassembly of section .debug_loclists: 0000000000000000 <.debug_loclists>: { - 0: a0 46 00 00 .long 0x46a0 + 0: 23 47 00 00 .long 0x4723 4: 05 00 08 00 .long 0x80005 ... for (; addr < ((unsigned long *) (regs + 1)); addr++) - 14: 04 d8 75 97 stwu r27,-10236(r21) + 14: 04 c8 75 87 lwzu r27,-14332(r21) 18: 76 01 53 04 .long 0x4530176 - 1c: 97 76 fc 76 andis. r28,r23,30359 + 1c: 87 76 ec 76 andis. r12,r23,30343 *addr = swab64(*addr); - 20: 01 6f 04 fc .long 0xfc046f01 - 24: 76 84 77 04 .long 0x4778476 + 20: 01 6f 04 ec .long 0xec046f01 + 24: 76 f4 76 04 .long 0x476f476 28: a3 01 53 9f stbu r26,419(r19) - 2c: 04 84 77 c0 lfs f3,-31740(r23) + 2c: 04 f4 76 b0 sth r3,-3068(r22) 30: 77 01 6f 00 .long 0x6f0177 34: 00 00 00 00 .long 0x0 - 38: 00 00 04 d8 stfd f0,0(r4) - 3c: 75 f4 75 01 .long 0x175f475 - 40: 54 04 f4 75 andis. r20,r15,1108 - 44: 97 76 03 74 andis. r3,r0,30359 - 48: 7f 9f 04 97 stwu r24,-24705(r4) - 4c: 76 c0 77 04 .long 0x477c076 + 38: 00 00 04 c8 lfd f0,0(r4) + 3c: 75 e4 75 01 .long 0x175e475 + 40: 54 04 e4 75 andis. r4,r15,1108 + 44: 87 76 03 74 andis. r3,r0,30343 + 48: 7f 9f 04 87 lwzu r24,-24705(r4) + 4c: 76 b0 77 04 .long 0x477b076 for (; addr < ((unsigned long *) (regs + 1)); addr++) 50: a3 01 54 9f stbu r26,419(r20) } 54: 00 01 00 00 .long 0x100 - 58: 00 04 90 76 andis. r16,r20,1024 - 5c: 97 76 01 53 rlwimi. r1,r24,14,26,11 + 58: 00 04 80 76 andis. r0,r20,1024 + 5c: 87 76 01 53 rlwimi. r1,r24,14,26,3 { - 60: 04 97 76 98 stb r3,-26876(r22) + 60: 04 87 76 88 lbz r3,-30972(r22) 64: 76 01 6f 00 .long 0x6f0176 hr->pcr = swab64(hr->pcr) | PCR_MASK; 68: 01 09 01 00 .long 0x10901 hr->amor = swab64(hr->amor); - 6c: 04 b0 76 d8 stfd f3,-20476(r22) + 6c: 04 a0 76 c8 lfd f3,-24572(r22) hr->pcr = swab64(hr->pcr) | PCR_MASK; 70: 76 01 6f 04 .long 0x46f0176 { - 74: 9c 77 b8 77 andis. r24,r29,30620 + 74: 8c 77 a8 77 andis. r8,r29,30604 hr->lpid = swab32(hr->lpid); 78: 01 6f 00 03 .long 0x3006f01 hr->version = swab64(hr->version); 7c: 09 03 00 04 .long 0x4000309 hr->pcr = swab64(hr->pcr) | PCR_MASK; - 80: b0 76 d8 76 andis. r24,r22,30384 + 80: a0 76 c8 76 andis. r8,r22,30368 hr->amor = swab64(hr->amor); - 84: 01 6f 04 9c stbu r0,28417(r4) + 84: 01 6f 04 8c lbzu r0,28417(r4) hr->pcr = swab64(hr->pcr) | PCR_MASK; - 88: 77 b8 77 01 .long 0x177b877 + 88: 77 a8 77 01 .long 0x177a877 hr->dpdes = swab64(hr->dpdes); 8c: 6f 00 08 07 .long 0x708006f hr->lpid = swab32(hr->lpid); - 90: 08 00 04 b0 sth r0,8(r4) + 90: 08 00 04 a0 lhz r0,8(r4) hr->vcpu_token = swab32(hr->vcpu_token); - 94: 76 d8 76 01 .long 0x176d876 + 94: 76 c8 76 01 .long 0x176c876 hr->pcr = swab64(hr->pcr) | PCR_MASK; - 98: 6f 04 9c 77 andis. r28,r28,1135 + 98: 6f 04 8c 77 andis. r12,r28,1135 hr->dpdes = swab64(hr->dpdes); - 9c: b8 77 01 6f xoris r1,r24,30648 + 9c: a8 77 01 6f xoris r1,r24,30632 hr->hfscr = swab64(hr->hfscr); a0: 00 00 00 00 .long 0x0 hr->vcpu_token = swab32(hr->vcpu_token); - a4: 00 04 b8 76 andis. r24,r21,1024 + a4: 00 04 a8 76 andis. r8,r21,1024 hr->lpcr = swab64(hr->lpcr); - a8: c0 76 04 79 rldicl r4,r8,14,27 + a8: b0 76 04 79 rldcl r4,r8,r14,58 hr->pcr = swab64(hr->pcr) | PCR_MASK; ac: 80 19 9f 04 .long 0x49f1980 hr->hfscr = swab64(hr->hfscr); - b0: a0 77 a8 77 andis. r8,r29,30624 + b0: 90 77 98 77 andis. r24,r28,30608 hr->tb_offset = swab64(hr->tb_offset); b4: 04 79 80 19 .long 0x19807904 hr->lpcr = swab64(hr->lpcr); b8: 9f 00 01 05 .long 0x501009f hr->pcr = swab64(hr->pcr) | PCR_MASK; - bc: 04 cc 76 d8 stfd f3,-13308(r22) + bc: 04 bc 76 c8 lfd f3,-17404(r22) hr->tb_offset = swab64(hr->tb_offset); c0: 76 01 6f 00 .long 0x6f0176 ... @@ -33964,140 +33960,140 @@ Disassembly of section .debug_loclists: e0: 01 00 00 00 .long 0x1 ... hr->purr = swab64(hr->purr); - f8: 04 f8 62 d4 stfsu f3,-2044(r2) + f8: 04 e8 62 c4 lfsu f3,-6140(r2) hr->pcr = swab64(hr->pcr) | PCR_MASK; fc: 63 01 53 04 .long 0x4530163 hr->spurr = swab64(hr->spurr); - 100: d4 63 c4 68 xori r4,r6,25556 + 100: c4 63 b4 68 xori r20,r5,25540 hr->lpcr = swab64(hr->lpcr); - 104: 01 6f 04 c4 lfsu f0,28417(r4) + 104: 01 6f 04 b4 sthu r0,28417(r4) hr->spurr = swab64(hr->spurr); - 108: 68 d0 68 04 .long 0x468d068 + 108: 68 c0 68 04 .long 0x468c068 hr->ic = swab64(hr->ic); 10c: a3 01 53 9f stbu r26,419(r19) - 110: 04 d0 68 a8 lha r3,-12284(r8) + 110: 04 c0 68 98 stb r3,-16380(r8) hr->amor = swab64(hr->amor); 114: 69 01 6f 04 .long 0x46f0169 hr->dpdes = swab64(hr->dpdes); - 118: a8 69 80 6a xori r0,r20,27048 + 118: 98 69 f0 69 xori r16,r15,27032 hr->hfscr = swab64(hr->hfscr); 11c: 04 a3 01 53 rlwimi r1,r24,20,12,2 hr->tb_offset = swab64(hr->tb_offset); - 120: 9f 04 80 6a xori r0,r20,1183 + 120: 9f 04 f0 69 xori r16,r15,1183 hr->dawr0 = swab64(hr->dawr0); - 124: c8 6a 01 6f xoris r1,r24,27336 + 124: b8 6a 01 6f xoris r1,r24,27320 hr->dawrx0 = swab64(hr->dawrx0); - 128: 04 c8 6a e8 ld r3,-14332(r10) + 128: 04 b8 6a d8 stfd f3,-18428(r10) hr->srr1 = swab64(hr->srr1); 12c: 6a 04 a3 01 .long 0x1a3046a hr->ciabr = swab64(hr->ciabr); - 130: 53 9f 04 e8 .long 0xe8049f53 + 130: 53 9f 04 d8 stfd f0,-24749(r4) hr->hdec_expiry = swab64(hr->hdec_expiry); - 134: 6a f4 6c 01 .long 0x16cf46a + 134: 6a e4 6c 01 .long 0x16ce46a hr->purr = swab64(hr->purr); - 138: 6f 04 f4 6c xoris r20,r7,1135 + 138: 6f 04 e4 6c xoris r4,r7,1135 hr->spurr = swab64(hr->spurr); - 13c: 98 6d 04 a3 lhz r24,28056(r4) + 13c: 88 6d 04 a3 lhz r24,28040(r4) hr->ic = swab64(hr->ic); 140: 01 53 9f 04 .long 0x49f5301 hr->vtb = swab64(hr->vtb); - 144: 98 6d ec 6d xoris r12,r15,28056 + 144: 88 6d dc 6d xoris r28,r14,28040 hr->srr1 = swab64(hr->srr1); - 148: 01 6f 04 ec .long 0xec046f01 + 148: 01 6f 04 dc stfdu f0,28417(r4) hr->sprg[0] = swab64(hr->sprg[0]); - 14c: 6d b4 6f 04 .long 0x46fb46d + 14c: 6d a4 6f 04 .long 0x46fa46d hr->vtb = swab64(hr->vtb); 150: a3 01 53 9f stbu r26,419(r19) hr->hdar = swab64(hr->hdar); - 154: 04 b4 6f 98 stb r3,-19452(r15) + 154: 04 a4 6f 88 lbz r3,-23548(r15) hr->sprg[0] = swab64(hr->sprg[0]); 158: 70 01 6f 04 .long 0x46f0170 hr->sprg[1] = swab64(hr->sprg[1]); - 15c: 98 70 d0 71 andi. r16,r14,28824 + 15c: 88 70 c0 71 andi. r0,r14,28808 hr->hdar = swab64(hr->hdar); 160: 04 a3 01 53 rlwimi r1,r24,20,12,2 hr->hdsisr = swab64(hr->hdsisr); - 164: 9f 04 d0 71 andi. r16,r14,1183 + 164: 9f 04 c0 71 andi. r0,r14,1183 hr->sprg[1] = swab64(hr->sprg[1]); - 168: 84 72 01 6f xoris r1,r24,29316 + 168: f4 71 01 6f xoris r1,r24,29172 hr->sprg[2] = swab64(hr->sprg[2]); - 16c: 04 84 72 8c lbzu r3,-31740(r18) + 16c: 04 f4 71 fc .long 0xfc71f404 hr->hdsisr = swab64(hr->hdsisr); - 170: 72 04 a3 01 .long 0x1a30472 + 170: 71 04 a3 01 .long 0x1a30471 hr->heir = swab64(hr->heir); - 174: 53 9f 04 8c lbzu r0,-24749(r4) + 174: 53 9f 04 fc .long 0xfc049f53 hr->sprg[2] = swab64(hr->sprg[2]); - 178: 72 cc 72 01 .long 0x172cc72 + 178: 71 bc 72 01 .long 0x172bc71 hr->heir = swab64(hr->heir); - 17c: 6f 04 cc 72 andi. r12,r22,1135 + 17c: 6f 04 bc 72 andi. r28,r21,1135 hr->asdr = swab64(hr->asdr); - 180: b0 73 04 a3 lhz r24,29616(r4) + 180: a0 73 04 a3 lhz r24,29600(r4) 184: 01 53 9f 04 .long 0x49f5301 hr->srr0 = swab64(hr->srr0); - 188: b0 73 d8 73 andi. r24,r30,29616 - 18c: 01 6f 04 d8 stfd f0,28417(r4) + 188: a0 73 c8 73 andi. r8,r30,29600 + 18c: 01 6f 04 c8 lfd f0,28417(r4) hr->hdar = swab64(hr->hdar); - 190: 73 f4 73 04 .long 0x473f473 + 190: 73 e4 73 04 .long 0x473e473 hr->sprg[3] = swab64(hr->sprg[3]); 194: a3 01 53 9f stbu r26,419(r19) hr->vtb = swab64(hr->vtb); - 198: 04 f4 73 84 lwzu r3,-3068(r19) + 198: 04 e4 73 f4 psq_stu f3,1028(r19),1,6 hr->sprg[3] = swab64(hr->sprg[3]); - 19c: 74 01 6f 04 .long 0x46f0174 + 19c: 73 01 6f 04 .long 0x46f0173 hr->pidr = swab64(hr->pidr); - 1a0: 84 74 90 74 andis. r16,r4,29828 + 1a0: f4 73 80 74 andis. r0,r4,29684 1a4: 04 a3 01 53 rlwimi r1,r24,20,12,2 hr->heir = swab64(hr->heir); - 1a8: 9f 04 90 74 andis. r16,r4,1183 + 1a8: 9f 04 80 74 andis. r0,r4,1183 hr->cfar = swab64(hr->cfar); - 1ac: d0 74 01 6f xoris r1,r24,29904 + 1ac: c0 74 01 6f xoris r1,r24,29888 hr->hdsisr = swab64(hr->hdsisr); - 1b0: 04 d0 74 e8 ld r3,-12284(r20) + 1b0: 04 c0 74 d8 stfd f3,-16380(r20) hr->cfar = swab64(hr->cfar); 1b4: 74 04 a3 01 .long 0x1a30474 hr->ppr = swab64(hr->ppr); - 1b8: 53 9f 04 e8 .long 0xe8049f53 - 1bc: 74 80 75 01 .long 0x1758074 + 1b8: 53 9f 04 d8 stfd f0,-24749(r4) + 1bc: 74 f0 74 01 .long 0x174f074 hr->srr0 = swab64(hr->srr0); - 1c0: 6f 04 80 75 andis. r0,r12,1135 + 1c0: 6f 04 f0 74 andis. r16,r7,1135 hr->dawr1 = swab64(hr->dawr1); - 1c4: a8 75 04 a3 lhz r24,30120(r4) + 1c4: 98 75 04 a3 lhz r24,30104(r4) hr->asdr = swab64(hr->asdr); 1c8: 01 53 9f 04 .long 0x49f5301 hr->dawr1 = swab64(hr->dawr1); - 1cc: a8 75 c8 75 andis. r8,r14,30120 + 1cc: 98 75 b8 75 andis. r24,r13,30104 hr->dawrx1 = swab64(hr->dawrx1); 1d0: 01 6f 00 01 .long 0x1006f01 1d4: 00 00 00 04 .long 0x4000000 hr->srr1 = swab64(hr->srr1); - 1d8: cc 63 e8 69 xori r8,r15,25548 + 1d8: bc 63 d8 69 xori r24,r14,25532 hr->sprg[0] = swab64(hr->sprg[0]); - 1dc: 01 6a 04 80 lwz r0,27137(r4) + 1dc: 01 6a 04 f0 xvaddsp vs32,vs4,vs13 hr->sprg[1] = swab64(hr->sprg[1]); - 1e0: 6a c8 75 01 .long 0x175c86a + 1e0: 69 b8 75 01 .long 0x175b869 hr->sprg[2] = swab64(hr->sprg[2]); 1e4: 6a 00 00 00 .long 0x6a hr->sprg[3] = swab64(hr->sprg[3]); 1e8: 00 00 00 00 .long 0x0 hr->pidr = swab64(hr->pidr); - 1ec: 04 a8 69 f0 xsaddsp vs3,vs41,vs21 + 1ec: 04 98 69 e0 psq_l f3,-2044(r9),1,1 hr->cfar = swab64(hr->cfar); 1f0: 69 01 6e 04 .long 0x46e0169 hr->ppr = swab64(hr->ppr); - 1f4: f0 69 80 6a xori r0,r20,27120 + 1f4: e0 69 f0 69 xori r16,r15,27104 hr->dawr1 = swab64(hr->dawr1); - 1f8: 01 53 04 80 lwz r0,21249(r4) + 1f8: 01 53 04 f0 xvadddp vs32,vs4,vs10 hr->dawrx1 = swab64(hr->dawrx1); - 1fc: 75 a8 75 01 .long 0x175a875 + 1fc: 74 98 75 01 .long 0x1759874 } 200: 6e 00 01 00 .long 0x1006e 204: 00 00 00 00 .long 0x0 - 208: 04 dc 63 a8 lha r3,-9212(r3) + 208: 04 cc 63 98 stb r3,-13308(r3) 20c: 69 01 6a 04 .long 0x46a0169 - 210: 80 6a 80 75 andis. r0,r12,27264 - 214: 01 6a 04 a8 lha r0,27137(r4) + 210: f0 69 f0 74 andis. r16,r7,27120 + 214: 01 6a 04 98 stb r0,27137(r4) { - 218: 75 c8 75 01 .long 0x175c875 + 218: 75 b8 75 01 .long 0x175b875 21c: 6a 00 01 00 .long 0x1006a ... 228: 00 01 01 00 .long 0x10100 @@ -34106,71 +34102,71 @@ Disassembly of section .debug_loclists: 234: 02 01 01 00 .long 0x10102 ... } - 24c: 04 dc 63 c4 lfsu f3,-9212(r3) + 24c: 04 cc 63 b4 sthu r3,-13308(r3) 250: 68 01 6f 04 .long 0x46f0168 - 254: c4 68 d0 68 xori r16,r6,26820 + 254: b4 68 c0 68 xori r0,r6,26804 258: 04 a3 01 53 rlwimi r1,r24,20,12,2 - 25c: 9f 04 d0 68 xori r16,r6,1183 + 25c: 9f 04 c0 68 xori r0,r6,1183 if (!firmware_has_feature(FW_FEATURE_RPT_INVALIDATE)) - 260: a8 69 01 6f xoris r1,r24,27048 - 264: 04 80 6a c8 lfd f3,-32764(r10) + 260: 98 69 01 6f xoris r1,r24,27032 + 264: 04 f0 69 b8 lm r3,-4092(r9) 268: 6a 01 6f 04 .long 0x46f016a - 26c: c8 6a e8 6a xori r8,r23,27336 + 26c: b8 6a d8 6a xori r24,r22,27320 270: 04 a3 01 53 rlwimi r1,r24,20,12,2 rc = plpar_hcall_norets(H_TLB_INVALIDATE, H_TLBIE_P1_ENC(2, 0, 1), - 274: 9f 04 e8 6a xori r8,r23,1183 - 278: f4 6c 01 6f xoris r1,r24,27892 - 27c: 04 f4 6c 98 stb r3,-3068(r12) + 274: 9f 04 d8 6a xori r24,r22,1183 + 278: e4 6c 01 6f xoris r1,r24,27876 + 27c: 04 e4 6c 88 lbz r3,-7164(r12) 280: 6d 04 a3 01 .long 0x1a3046d - 284: 53 9f 04 98 stb r0,-24749(r4) - 288: 6d ec 6d 01 .long 0x16dec6d - 28c: 6f 04 ec 6d xoris r12,r15,1135 + 284: 53 9f 04 88 lbz r0,-24749(r4) + 288: 6d dc 6d 01 .long 0x16ddc6d + 28c: 6f 04 dc 6d xoris r28,r14,1135 if (rc) - 290: b4 6f 04 a3 lhz r24,28596(r4) + 290: a4 6f 04 a3 lhz r24,28580(r4) 294: 01 53 9f 04 .long 0x49f5301 pr_err("KVM: TLB LPID invalidation hcall failed, rc=%ld\n", rc); - 298: b4 6f 98 70 andi. r24,r4,28596 - 29c: 01 6f 04 98 stb r0,28417(r4) - 2a0: 70 d0 71 04 .long 0x471d070 + 298: a4 6f 88 70 andi. r8,r4,28580 + 29c: 01 6f 04 88 lbz r0,28417(r4) + 2a0: 70 c0 71 04 .long 0x471c070 2a4: a3 01 53 9f stbu r26,419(r19) - 2a8: 04 d0 71 84 lwzu r3,-12284(r17) - 2ac: 72 01 6f 04 .long 0x46f0172 + 2a8: 04 c0 71 f4 psq_stu f3,4(r17),1,4 + 2ac: 71 01 6f 04 .long 0x46f0171 cpu_relax(); - 2b0: 84 72 8c 72 andi. r12,r20,29316 + 2b0: f4 71 fc 71 andi. r28,r15,29172 2b4: 04 a3 01 53 rlwimi r1,r24,20,12,2 rc = plpar_hcall_norets(H_RPT_INVALIDATE, pid, target, type, - 2b8: 9f 04 8c 72 andi. r12,r20,1183 - 2bc: cc 72 01 6f xoris r1,r24,29388 - 2c0: 04 cc 72 b0 sth r3,-13308(r18) + 2b8: 9f 04 fc 71 andi. r28,r15,1183 + 2bc: bc 72 01 6f xoris r1,r24,29372 + 2c0: 04 bc 72 a0 lhz r3,-17404(r18) 2c4: 73 04 a3 01 .long 0x1a30473 - 2c8: 53 9f 04 b0 sth r0,-24749(r4) - 2cc: 73 d8 73 01 .long 0x173d873 - 2d0: 6f 04 d8 73 andi. r24,r30,1135 - 2d4: f4 73 04 a3 lhz r24,29684(r4) + 2c8: 53 9f 04 a0 lhz r0,-24749(r4) + 2cc: 73 c8 73 01 .long 0x173c873 + 2d0: 6f 04 c8 73 andi. r8,r30,1135 + 2d4: e4 73 04 a3 lhz r24,29668(r4) 2d8: 01 53 9f 04 .long 0x49f5301 if (rc == H_BUSY) { - 2dc: f4 73 84 74 andis. r4,r4,29684 - 2e0: 01 6f 04 84 lwzu r0,28417(r4) + 2dc: e4 73 f4 73 andi. r20,r31,29668 + 2e0: 01 6f 04 f4 lxv vs0,28416(r4) } else if (rc == H_SUCCESS) - 2e4: 74 90 74 04 .long 0x4749074 + 2e4: 73 80 74 04 .long 0x4748073 2e8: a3 01 53 9f stbu r26,419(r19) - 2ec: 04 90 74 d0 stfs f3,-28668(r20) + 2ec: 04 80 74 c0 lfs f3,-32764(r20) cpu_relax(); 2f0: 74 01 6f 04 .long 0x46f0174 - 2f4: d0 74 e8 74 andis. r8,r7,29904 + 2f4: c0 74 d8 74 andis. r24,r6,29888 rc = plpar_hcall_norets(H_RPT_INVALIDATE, pid, target, 2f8: 04 a3 01 53 rlwimi r1,r24,20,12,2 - 2fc: 9f 04 e8 74 andis. r8,r7,1183 - 300: 80 75 01 6f xoris r1,r24,30080 - 304: 04 a8 75 c8 lfd f3,-22524(r21) + 2fc: 9f 04 d8 74 andis. r24,r6,1183 + 300: f0 74 01 6f xoris r1,r24,29936 + 304: 04 98 75 b8 lm r3,-26620(r21) 308: 75 01 6f 00 .long 0x6f0175 30c: 00 00 00 00 .long 0x0 - 310: 00 00 04 e8 ld r0,0(r4) - 314: 63 a8 69 01 .long 0x169a863 - 318: 68 04 80 6a xori r0,r20,1128 + 310: 00 00 04 d8 stfd f0,0(r4) + 314: 63 98 69 01 .long 0x1699863 + 318: 68 04 f0 69 xori r16,r15,1128 if (rc == H_BUSY) { - 31c: 80 75 01 68 xori r1,r0,30080 - 320: 04 a8 75 c8 lfd f3,-22524(r21) + 31c: f0 74 01 68 xori r1,r0,29936 + 320: 04 98 75 b8 lm r3,-26620(r21) } else if (rc == H_SUCCESS) 324: 75 01 68 00 .long 0x680175 ... @@ -34178,69 +34174,69 @@ Disassembly of section .debug_loclists: 334: 00 00 00 02 .long 0x2000000 ... static bool kvmhv_invalidate_shadow_pte(struct kvm_vcpu *vcpu, - 344: 04 88 66 c0 lfs f3,-30716(r6) + 344: 04 f8 65 b0 sth r3,-2044(r5) 348: 66 01 53 04 .long 0x4530166 - 34c: c0 66 d0 68 xori r16,r6,26304 - 350: 01 6d 04 98 stb r0,27905(r4) + 34c: b0 66 c0 68 xori r0,r6,26288 + 350: 01 6d 04 88 lbz r0,27905(r4) int shift; - 354: 6a bc 6a 01 .long 0x16abc6a + 354: 6a ac 6a 01 .long 0x16aac6a static bool kvmhv_invalidate_shadow_pte(struct kvm_vcpu *vcpu, - 358: 53 04 bc 6a xori r28,r21,1107 - 35c: c8 6a 01 6d xoris r1,r8,27336 - 360: 04 e0 6c ec dadd f3,f12,f28 + 358: 53 04 ac 6a xori r12,r21,1107 + 35c: b8 6a 01 6d xoris r1,r8,27320 + 360: 04 d0 6c dc stfdu f3,-12284(r12) 364: 6c 01 53 04 .long 0x453016c - 368: ec 6c f8 6c xoris r24,r7,27884 - 36c: 01 6d 04 ec .long 0xec046d01 - 370: 6d b4 6f 01 .long 0x16fb46d - 374: 6d 04 ec 6f xoris r12,r31,1133 - 378: d0 71 01 6d xoris r1,r8,29136 - 37c: 04 e4 71 f8 std r3,-7164(r17) + 368: dc 6c e8 6c xoris r8,r7,27868 + 36c: 01 6d 04 dc stfdu f0,27905(r4) + 370: 6d a4 6f 01 .long 0x16fa46d + 374: 6d 04 dc 6f xoris r28,r30,1133 + 378: c0 71 01 6d xoris r1,r8,29120 + 37c: 04 d4 71 e8 ld r3,-11260(r17) 380: 71 01 53 04 .long 0x4530171 int shift; - 384: f8 71 8c 72 andi. r12,r20,29176 - 388: 01 6d 04 cc lfdu f0,27905(r4) - 38c: 72 bc 73 01 .long 0x173bc72 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 390: 6d 04 c8 73 andi. r8,r30,1133 - 394: d8 73 01 53 rlwimi r1,r24,14,15,12 - 398: 04 d8 73 90 stw r3,-10236(r19) + 384: e8 71 fc 71 andi. r28,r15,29160 + 388: 01 6d 04 bc stmw r0,27905(r4) + 38c: 72 ac 73 01 .long 0x173ac72 + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); + 390: 6d 04 b8 73 andi. r24,r29,1133 + 394: c8 73 01 53 rlwimi r1,r24,14,15,4 + 398: 04 c8 73 80 lwz r3,-14332(r19) 39c: 74 01 6d 04 .long 0x46d0174 if (!gp) - 3a0: b0 74 e8 74 andis. r8,r7,29872 + 3a0: a0 74 d8 74 andis. r24,r6,29856 3a4: 01 6d 00 01 .long 0x1006d01 pte = __find_linux_pte(gp->shadow_pgtable, ea, NULL, hshift); 3a8: 00 00 00 00 .long 0x0 3ac: 00 00 00 04 .long 0x4000000 - 3b0: e8 66 d8 67 oris r24,r30,26344 - 3b4: 01 53 04 ec .long 0xec045301 - 3b8: 6f 80 70 01 .long 0x170806f - 3bc: 53 04 b0 73 andi. r16,r29,1107 + 3b0: d8 66 c8 67 oris r8,r30,26328 + 3b4: 01 53 04 dc stfdu f0,21249(r4) + 3b8: 6f f0 6f 01 .long 0x16ff06f + 3bc: 53 04 a0 73 andi. r0,r29,1107 if (!shift) - 3c0: bc 73 01 53 rlwimi r1,r24,14,14,30 + 3c0: ac 73 01 53 rlwimi r1,r24,14,14,22 pte = __find_linux_pte(gp->shadow_pgtable, ea, NULL, hshift); - 3c4: 04 b0 74 c0 lfs f3,-20476(r20) + 3c4: 04 a0 74 b0 sth r3,-24572(r20) if (!shift) 3c8: 74 01 53 00 .long 0x530174 3cc: 00 00 00 00 .long 0x0 if (ptep && pte_present(*ptep)) { 3d0: 00 02 00 00 attn 3d4: 00 00 00 00 .long 0x0 - 3d8: 04 b4 66 d0 stfs f3,-19452(r6) + 3d8: 04 a4 66 c0 lfs f3,-23548(r6) return (pte_raw(pte) & cpu_to_be64(_PAGE_PRESENT | _PAGE_PTE)) == 3dc: 68 01 67 04 .long 0x4670168 if (pte_hw_valid(pte)) - 3e0: ec 6d b4 6f xoris r20,r29,28140 - 3e4: 01 67 04 ec .long 0xec046701 + 3e0: dc 6d a4 6f xoris r4,r29,28124 + 3e4: 01 67 04 dc stfdu f0,26369(r4) return (pte_raw(pte) & cpu_to_be64(_PAGE_INVALID | _PAGE_PTE)) == - 3e8: 6f d0 71 01 .long 0x171d06f - 3ec: 67 04 cc 72 andi. r12,r22,1127 - 3f0: bc 73 01 67 oris r1,r24,29628 + 3e8: 6f c0 71 01 .long 0x171c06f + 3ec: 67 04 bc 72 andi. r28,r21,1127 + 3f0: ac 73 01 67 oris r1,r24,29612 if (unlikely(ms->mmiowb_pending)) { - 3f4: 04 d8 73 90 stw r3,-10236(r19) + 3f4: 04 c8 73 80 lwz r3,-14332(r19) struct mmiowb_state *ms = __mmiowb_state(); 3f8: 74 01 67 04 .long 0x4670174 if (unlikely(ms->mmiowb_pending)) { - 3fc: b0 74 e8 74 andis. r8,r7,29872 + 3fc: a0 74 d8 74 andis. r24,r6,29856 400: 01 67 00 02 .long 0x2006701 ... ms->nesting_count--; @@ -34250,90 +34246,90 @@ static bool kvmhv_invalidate_shadow_pte( ... } 42c: 00 00 00 04 .long 0x4000000 - 430: 98 64 e4 65 oris r4,r15,25752 + 430: 88 64 d4 65 oris r20,r14,25736 434: 09 8d 00 0c twi 0,r0,-29431 438: ff ff ff ff fnmadd. f31,f31,f31,f31 - 43c: 1a 9f 04 e4 lxsd v0,-24808(r4) - 440: 65 d0 68 01 .long 0x168d065 - 444: 65 04 d0 68 xori r16,r6,1125 - 448: 98 69 09 8d lbzu r8,27032(r9) + 43c: 1a 9f 04 d4 stfsu f0,-24806(r4) + 440: 65 c0 68 01 .long 0x168c065 + 444: 65 04 c0 68 xori r0,r6,1125 + 448: 88 69 09 8d lbzu r8,27016(r9) 44c: 00 0c ff ff .long 0xffff0c00 450: ff ff 1a 9f stbu r24,-1(r26) - 454: 04 80 6a 98 stb r3,-32764(r10) + 454: 04 f0 69 88 lbz r3,-4092(r9) 458: 6a 09 8d 00 .long 0x8d096a 45c: 0c ff ff ff .long 0xffffff0c shift = PAGE_SHIFT; 460: ff 1a 9f 04 .long 0x49f1aff - 464: 98 6a d8 6a xori r24,r22,27288 - 468: 01 65 04 e8 ldu r0,25856(r4) - 46c: 6a bc 6c 09 tdi 11,r12,-17302 + 464: 88 6a c8 6a xori r8,r22,27272 + 468: 01 65 04 d8 stfd f0,25857(r4) + 46c: 6a ac 6c 09 tdi 11,r12,-21398 kvmppc_unmap_pte(kvm, ptep, gpa, shift, NULL, gp->shadow_lpid); 470: 8d 00 0c ff .long 0xff0c008d 474: ff ff ff 1a .long 0x1affffff - 478: 9f 04 bc 6c xoris r28,r5,1183 - 47c: e0 6c 0e 8d lbzu r8,27872(r14) + 478: 9f 04 ac 6c xoris r12,r5,1183 + 47c: d0 6c 0e 8d lbzu r8,27856(r14) 480: 00 0c ff ff .long 0xffff0c00 484: ff ff 1a 11 vsubecuq v8,v26,v31,v31 488: ff ff 6f 1a .long 0x1a6fffff if (unlikely(ms->mmiowb_pending)) { - 48c: 9f 04 e0 6c xoris r0,r7,1183 + 48c: 9f 04 d0 6c xoris r16,r6,1183 struct mmiowb_state *ms = __mmiowb_state(); - 490: f8 6c 01 65 oris r1,r8,27896 + 490: e8 6c 01 65 oris r1,r8,27880 if (unlikely(ms->mmiowb_pending)) { - 494: 04 98 6d ec dadd f3,f13,f19 + 494: 04 88 6d dc stfdu f3,-30716(r13) 498: 6d 09 8d 00 .long 0x8d096d ms->mmiowb_pending = 0; 49c: 0c ff ff ff .long 0xffffff0c 4a0: ff 1a 9f 04 .long 0x49f1aff mmiowb(); - 4a4: ec 6d b4 6f xoris r20,r29,28140 - 4a8: 01 65 04 b4 sthu r0,25857(r4) - 4ac: 6f d4 6f 09 tdi 11,r15,-11153 + 4a4: dc 6d a4 6f xoris r4,r29,28124 + 4a8: 01 65 04 a4 lhzu r0,25857(r4) + 4ac: 6f c4 6f 09 tdi 11,r15,-15249 if (!shift) 4b0: 8d 00 0c ff .long 0xff0c008d 4b4: ff ff ff 1a .long 0x1affffff - 4b8: 9f 04 ec 6f xoris r12,r31,1183 + 4b8: 9f 04 dc 6f xoris r28,r30,1183 shift = PAGE_SHIFT; - 4bc: d0 71 01 65 oris r1,r8,29136 - 4c0: 04 d0 71 e4 psq_lu f3,4(r17),1,5 + 4bc: c0 71 01 65 oris r1,r8,29120 + 4c0: 04 c0 71 d4 stfsu f3,-16380(r17) if (ptep && pte_present(*ptep)) { 4c4: 71 09 8d 00 .long 0x8d0971 } 4c8: 0c ff ff ff .long 0xffffff0c 4cc: ff 1a 9f 04 .long 0x49f1aff { - 4d0: e4 71 8c 72 andi. r12,r20,29156 - 4d4: 01 65 04 8c lbzu r0,25857(r4) + 4d0: d4 71 fc 71 andi. r28,r15,29140 + 4d4: 01 65 04 fc .long 0xfc046501 hr->pcr = vc->pcr | PCR_MASK; - 4d8: 72 cc 72 09 tdi 11,r18,-13198 + 4d8: 71 bc 72 09 tdi 11,r18,-17295 struct kvmppc_vcore *vc = vcpu->arch.vcore; 4dc: 8d 00 0c ff .long 0xff0c008d hr->pcr = vc->pcr | PCR_MASK; 4e0: ff ff ff 1a .long 0x1affffff - 4e4: 9f 04 cc 72 andi. r12,r22,1183 - 4e8: bc 73 01 65 oris r1,r8,29628 - 4ec: 04 bc 73 c8 lfd f3,-17404(r19) + 4e4: 9f 04 bc 72 andi. r28,r21,1183 + 4e8: ac 73 01 65 oris r1,r8,29612 + 4ec: 04 ac 73 b8 lm r3,-21500(r19) 4f0: 73 09 8d 00 .long 0x8d0973 4f4: 0c ff ff ff .long 0xffffff0c 4f8: ff 1a 9f 04 .long 0x49f1aff hr->dpdes = vc->dpdes; - 4fc: c8 73 90 74 andis. r16,r4,29640 - 500: 01 65 04 90 stw r0,25857(r4) + 4fc: b8 73 80 74 andis. r0,r4,29624 + 500: 01 65 04 80 lwz r0,25857(r4) hr->hfscr = vcpu->arch.hfscr; - 504: 74 b0 74 09 tdi 11,r20,-20364 + 504: 74 a0 74 09 tdi 11,r20,-24460 508: 8d 00 0c ff .long 0xff0c008d hr->tb_offset = vc->tb_offset; 50c: ff ff ff 1a .long 0x1affffff - 510: 9f 04 b0 74 andis. r16,r5,1183 + 510: 9f 04 a0 74 andis. r0,r5,1183 hr->dawr0 = vcpu->arch.dawr0; - 514: e8 74 01 65 oris r1,r8,29928 - 518: 04 e8 74 80 lwz r3,-6140(r20) + 514: d8 74 01 65 oris r1,r8,29912 + 518: 04 d8 74 f0 xsaddsp vs3,vs52,vs27 hr->dawrx0 = vcpu->arch.dawrx0; - 51c: 75 09 8d 00 .long 0x8d0975 + 51c: 74 09 8d 00 .long 0x8d0974 520: 0c ff ff ff .long 0xffffff0c hr->ciabr = vcpu->arch.ciabr; 524: ff 1a 9f 04 .long 0x49f1aff - 528: a8 75 c8 75 andis. r8,r14,30120 + 528: 98 75 b8 75 andis. r24,r13,30104 hr->purr = vcpu->arch.purr; 52c: 01 65 00 03 .long 0x3006501 530: 00 00 00 00 .long 0x0 @@ -34345,40 +34341,40 @@ static bool kvmhv_invalidate_shadow_pte( 540: 00 00 00 00 .long 0x0 hr->vtb = vc->vtb; 544: 00 00 00 04 .long 0x4000000 - 548: 98 64 b4 66 oris r20,r21,25752 + 548: 88 64 a4 66 oris r4,r21,25736 hr->srr0 = vcpu->arch.shregs.srr0; - 54c: 01 67 04 d0 stfs f0,26369(r4) - 550: 68 a8 69 01 .long 0x169a868 + 54c: 01 67 04 c0 lfs f0,26369(r4) + 550: 68 98 69 01 .long 0x1699868 hr->srr1 = vcpu->arch.shregs.srr1; - 554: 67 04 80 6a xori r0,r20,1127 - 558: c8 6a 01 67 oris r1,r24,27336 + 554: 67 04 f0 69 xori r16,r15,1127 + 558: b8 6a 01 67 oris r1,r24,27320 hr->sprg[0] = vcpu->arch.shregs.sprg0; - 55c: 04 e8 6a f4 psq_stu f3,-2044(r10),1,6 + 55c: 04 d8 6a e4 psq_lu f3,-2044(r10),1,5 560: 6c 01 67 04 .long 0x467016c hr->sprg[1] = vcpu->arch.shregs.sprg1; - 564: 98 6d ec 6d xoris r12,r15,28056 - 568: 01 67 04 b4 sthu r0,26369(r4) + 564: 88 6d dc 6d xoris r28,r14,28040 + 568: 01 67 04 a4 lhzu r0,26369(r4) hr->sprg[2] = vcpu->arch.shregs.sprg2; - 56c: 6f ec 6f 01 .long 0x16fec6f - 570: 67 04 d0 71 andi. r16,r14,1127 + 56c: 6f dc 6f 01 .long 0x16fdc6f + 570: 67 04 c0 71 andi. r0,r14,1127 hr->sprg[3] = vcpu->arch.shregs.sprg3; - 574: 84 72 01 67 oris r1,r24,29316 - 578: 04 8c 72 cc lfdu f3,-29692(r18) + 574: f4 71 01 67 oris r1,r24,29172 + 578: 04 fc 71 bc stmw r3,-1020(r17) hr->pidr = vcpu->arch.pid; 57c: 72 01 67 04 .long 0x4670172 - 580: bc 73 d8 73 andi. r24,r30,29628 + 580: ac 73 c8 73 andi. r8,r30,29612 hr->cfar = vcpu->arch.cfar; - 584: 01 67 04 90 stw r0,26369(r4) - 588: 74 b0 74 01 .long 0x174b074 + 584: 01 67 04 80 lwz r0,26369(r4) + 588: 74 a0 74 01 .long 0x174a074 hr->ppr = vcpu->arch.ppr; - 58c: 67 04 e8 74 andis. r8,r7,1127 - 590: 80 75 01 67 oris r1,r24,30080 + 58c: 67 04 d8 74 andis. r24,r6,1127 + 590: f0 74 01 67 oris r1,r24,29936 hr->dawr1 = vcpu->arch.dawr1; - 594: 04 a8 75 c8 lfd f3,-22524(r21) + 594: 04 98 75 b8 lm r3,-26620(r21) 598: 75 01 67 00 .long 0x670175 hr->dawrx1 = vcpu->arch.dawrx1; - 59c: 01 00 04 ec .long 0xec040001 - 5a0: 6e 80 6f 0f twi 27,r15,-32658 + 59c: 01 00 04 dc stfdu f0,1(r4) + 5a0: 6e f0 6e 0f twi 27,r14,-3986 } 5a4: 8f 00 8d b0 sth r4,143(r13) 5a8: 01 06 1c 33 addic r24,r28,1537 @@ -34394,31 +34390,31 @@ static bool kvmhv_invalidate_shadow_pte( 5c0: 00 01 00 00 .long 0x100 vcpu->arch.hfscr = hr->hfscr; 5c4: 00 00 00 00 .long 0x0 - 5c8: 04 bc 64 98 stb r3,-17404(r4) + 5c8: 04 ac 64 88 lbz r3,-21500(r4) vcpu->arch.purr = hr->purr; 5cc: 65 01 6b 04 .long 0x46b0165 - 5d0: 9c 65 a4 69 xori r4,r13,26012 + 5d0: 8c 65 94 69 xori r20,r12,25996 vcpu->arch.spurr = hr->spurr; - 5d4: 01 6b 04 98 stb r0,27393(r4) - 5d8: 6a c8 6a 01 .long 0x16ac86a + 5d4: 01 6b 04 88 lbz r0,27393(r4) + 5d8: 6a b8 6a 01 .long 0x16ab86a vcpu->arch.ic = hr->ic; - 5dc: 6b 04 e8 6a xori r8,r23,1131 - 5e0: f4 6c 01 6b xori r1,r24,27892 + 5dc: 6b 04 d8 6a xori r24,r22,1131 + 5e0: e4 6c 01 6b xori r1,r24,27876 vc->vtb = hr->vtb; - 5e4: 04 98 6d a0 lhz r3,-26620(r13) + 5e4: 04 88 6d 90 stw r3,-30716(r13) 5e8: 6e 01 6b 04 .long 0x46b016e vcpu->arch.fault_dar = hr->hdar; - 5ec: a0 6e 98 6f xoris r24,r28,28320 - 5f0: 01 6e 04 b4 sthu r0,28161(r4) + 5ec: 90 6e 88 6f xoris r8,r28,28304 + 5f0: 01 6e 04 a4 lhzu r0,28161(r4) vcpu->arch.fault_dsisr = hr->hdsisr; - 5f4: 6f 84 72 01 .long 0x172846f - 5f8: 6b 04 8c 72 andi. r12,r20,1131 + 5f4: 6f f4 71 01 .long 0x171f46f + 5f8: 6b 04 fc 71 andi. r28,r15,1131 vcpu->arch.fault_gpa = hr->asdr; - 5fc: a4 72 01 6b xori r1,r24,29348 - 600: 04 ac 72 80 lwz r3,-21500(r18) + 5fc: 94 72 01 6b xori r1,r24,29332 + 600: 04 9c 72 f0 xsmaxcdp vs3,vs50,vs19 vcpu->arch.emul_inst = hr->heir; - 604: 75 01 6b 04 .long 0x46b0175 - 608: a8 75 c8 75 andis. r8,r14,30120 + 604: 74 01 6b 04 .long 0x46b0174 + 608: 98 75 b8 75 andis. r24,r13,30104 vcpu->arch.shregs.srr0 = hr->srr0; 60c: 01 6b 00 00 .long 0x6b01 ... @@ -34426,29 +34422,29 @@ static bool kvmhv_invalidate_shadow_pte( 618: 02 00 00 00 .long 0x2 vcpu->arch.shregs.sprg0 = hr->sprg[0]; 61c: 00 00 00 00 .long 0x0 - 620: 00 04 f8 65 oris r24,r15,1024 + 620: 00 04 e8 65 oris r8,r15,1024 vcpu->arch.shregs.sprg1 = hr->sprg[1]; - 624: d0 68 01 66 oris r1,r16,26832 - 628: 04 98 6a c8 lfd f3,-26620(r10) + 624: c0 68 01 66 oris r1,r16,26816 + 628: 04 88 6a b8 lm r3,-30716(r10) vcpu->arch.shregs.sprg2 = hr->sprg[2]; 62c: 6a 01 66 04 .long 0x466016a - 630: e0 6c f8 6c xoris r24,r7,27872 + 630: d0 6c e8 6c xoris r8,r7,27856 vcpu->arch.shregs.sprg3 = hr->sprg[3]; - 634: 01 66 04 ec .long 0xec046601 - 638: 6d b4 6f 01 .long 0x16fb46d + 634: 01 66 04 dc stfdu f0,26113(r4) + 638: 6d a4 6f 01 .long 0x16fa46d vcpu->arch.pid = hr->pidr; - 63c: 66 04 ec 6f xoris r12,r31,1126 - 640: d0 71 01 66 oris r1,r16,29136 + 63c: 66 04 dc 6f xoris r28,r30,1126 + 640: c0 71 01 66 oris r1,r16,29120 vcpu->arch.cfar = hr->cfar; - 644: 04 e4 71 8c lbzu r3,-7164(r17) - 648: 72 01 66 04 .long 0x4660172 + 644: 04 d4 71 fc .long 0xfc71d404 + 648: 71 01 66 04 .long 0x4660171 vcpu->arch.ppr = hr->ppr; - 64c: cc 72 bc 73 andi. r28,r29,29388 - 650: 01 66 04 c8 lfd f0,26113(r4) + 64c: bc 72 ac 73 andi. r12,r29,29372 + 650: 01 66 04 b8 lm r0,26113(r4) } - 654: 73 90 74 01 .long 0x1749073 - 658: 66 04 b0 74 andis. r16,r5,1126 - 65c: e8 74 01 66 oris r1,r16,29928 + 654: 73 80 74 01 .long 0x1748073 + 658: 66 04 a0 74 andis. r0,r5,1126 + 65c: d8 74 01 66 oris r1,r16,29912 660: 00 01 00 00 .long 0x100 664: 00 00 00 00 .long 0x0 { @@ -34457,57 +34453,57 @@ static bool kvmhv_invalidate_shadow_pte( 670: 02 00 01 00 .long 0x10002 ... return 0; - 680: 00 04 f8 65 oris r24,r15,1024 - 684: 80 66 05 86 lwzu r16,26240(r5) + 680: 00 04 e8 65 oris r8,r15,1024 + 684: f0 65 05 86 lwzu r16,26096(r5) 688: 00 40 25 9f stbu r25,16384(r5) - 68c: 04 80 66 87 lwzu r27,-32764(r6) - 690: 66 01 54 04 .long 0x4540166 + 68c: 04 f0 65 f7 psq_stu f27,4(r5),1,7 + 690: 65 01 54 04 .long 0x4540165 { - 694: 87 66 d0 68 xori r16,r6,26247 - 698: 05 86 00 40 bdnzfl lt,ffffffffffff8c9c - 69c: 25 9f 04 98 stb r0,-24795(r4) - 6a0: 6a c8 6a 05 .long 0x56ac86a + 694: f7 65 c0 68 xori r0,r6,26103 + 698: 05 86 00 40 bdnzfl lt,ffffffffffff8c9c + 69c: 25 9f 04 88 lbz r0,-24795(r4) + 6a0: 6a b8 6a 05 .long 0x56ab86a 6a4: 86 00 40 25 dozi r10,r0,134 - 6a8: 9f 04 e0 6c xoris r0,r7,1183 - 6ac: f4 6c 05 86 lwzu r16,27892(r5) + 6a8: 9f 04 d0 6c xoris r16,r6,1183 + 6ac: e4 6c 05 86 lwzu r16,27876(r5) 6b0: 00 40 25 9f stbu r25,16384(r5) pseries_partition_tb = kmalloc(sizeof(struct patb_entry) << ptb_order, - 6b4: 04 ec 6d ac lhau r3,-5116(r13) - if (unlikely(!pseries_partition_tb)) { + 6b4: 04 dc 6d 9c stbu r3,-9212(r13) + if (!pseries_partition_tb) { 6b8: 6f 01 6f 04 .long 0x46f016f pseries_partition_tb = kmalloc(sizeof(struct patb_entry) << ptb_order, - 6bc: ec 6f b0 70 andi. r16,r5,28652 - 6c0: 05 86 00 40 bdnzfl lt,ffffffffffff8cc4 - if (unlikely(!pseries_partition_tb)) { - 6c4: 25 9f 04 b0 sth r0,-24795(r4) + 6bc: dc 6f a0 70 andi. r0,r5,28636 + 6c0: 05 86 00 40 bdnzfl lt,ffffffffffff8cc4 + if (!pseries_partition_tb) { + 6c4: 25 9f 04 a0 lhz r0,-24795(r4) ptcr = __pa(pseries_partition_tb) | (ptb_order - 12); - 6c8: 70 d0 71 01 .long 0x171d070 + 6c8: 70 c0 71 01 .long 0x171c070 rc = plpar_hcall_norets(H_SET_PARTITION_TABLE, ptcr); - 6cc: 6f 04 e4 71 andi. r4,r15,1135 - 6d0: 84 72 05 86 lwzu r16,29316(r5) + 6cc: 6f 04 d4 71 andi. r20,r14,1135 + 6d0: f4 71 05 86 lwzu r16,29172(r5) 6d4: 00 40 25 9f stbu r25,16384(r5) - 6d8: 04 cc 72 b0 sth r3,-13308(r18) + 6d8: 04 bc 72 a0 lhz r3,-17404(r18) 6dc: 73 01 6f 04 .long 0x46f0173 if (rc != H_SUCCESS) { - 6e0: b0 73 bc 73 andi. r28,r29,29616 - 6e4: 05 86 00 40 bdnzfl lt,ffffffffffff8ce8 + 6e0: a0 73 ac 73 andi. r12,r29,29600 + 6e4: 05 86 00 40 bdnzfl lt,ffffffffffff8ce8 return 0; - 6e8: 25 9f 04 c8 lfd f0,-24795(r4) + 6e8: 25 9f 04 b8 lm r0,-24795(r4) } - 6ec: 73 d8 73 05 .long 0x573d873 + 6ec: 73 c8 73 05 .long 0x573c873 6f0: 86 00 40 25 dozi r10,r0,134 - 6f4: 9f 04 d8 73 andi. r24,r30,1183 - 6f8: f4 73 01 6f xoris r1,r24,29684 - 6fc: 04 f4 73 90 stw r3,-3068(r19) + 6f4: 9f 04 c8 73 andi. r8,r30,1183 + 6f8: e4 73 01 6f xoris r1,r24,29668 + 6fc: 04 e4 73 80 lwz r3,-7164(r19) return -ENODEV; 700: 74 05 86 00 .long 0x860574 } 704: 40 25 9f 04 .long 0x49f2540 pr_err("kvm-hv: Parent hypervisor does not support nesting (rc=%ld)\n", - 708: b0 74 d4 74 andis. r20,r6,29872 - 70c: 05 86 00 40 bdnzfl lt,ffffffffffff8d10 - 710: 25 9f 04 d4 stfsu f0,-24795(r4) - 714: 74 e8 74 01 .long 0x174e874 + 708: a0 74 c4 74 andis. r4,r6,29856 + 70c: 05 86 00 40 bdnzfl lt,ffffffffffff8d10 + 710: 25 9f 04 c4 lfsu f0,-24795(r4) + 714: 74 d8 74 01 .long 0x174d874 kfree(pseries_partition_tb); 718: 6f 00 05 00 .long 0x5006f 71c: 00 00 00 01 .long 0x1000000 @@ -34515,5019 +34511,5025 @@ static bool kvmhv_invalidate_shadow_pte( pseries_partition_tb = NULL; 724: 01 00 00 00 .long 0x1 ... - return -ENODEV; - 730: 00 00 02 01 .long 0x1020000 - ... pr_err("kvm-hv: failed to allocated nested partition table\n"); - 73c: 00 00 04 98 stb r0,0(r4) - 740: 64 a8 69 02 .long 0x269a864 + 734: 00 00 02 01 .long 0x1020000 + ... + 740: 00 00 04 88 lbz r0,0(r4) return -ENOMEM; - 744: 30 9f 04 80 lwz r0,-24784(r4) - 748: 6a c8 6a 02 .long 0x26ac86a - 74c: 30 9f 04 e8 ld r0,-24784(r4) - 750: 6a f4 6c 02 .long 0x26cf46a - 754: 30 9f 04 98 stb r0,-24784(r4) -{ - 758: 6d ec 6d 02 .long 0x26dec6d - 75c: 30 9f 04 b4 sthu r0,-24784(r4) - 760: 6f b0 70 02 .long 0x270b06f - 764: 30 9f 04 b0 sth r0,-24784(r4) - 768: 70 bc 70 0b tdi 27,r16,-17296 - 76c: 79 00 20 31 addic r9,r0,121 + 744: 64 98 69 02 .long 0x2699864 + 748: 30 9f 04 f0 xxsel vs0,vs4,vs19,vs28 + 74c: 69 b8 6a 02 .long 0x26ab869 + 750: 30 9f 04 d8 stfd f0,-24784(r4) + 754: 6a e4 6c 02 .long 0x26ce46a +{ + 758: 30 9f 04 88 lbz r0,-24784(r4) + 75c: 6d dc 6d 02 .long 0x26ddc6d + 760: 30 9f 04 a4 lhzu r0,-24784(r4) + 764: 6f a0 70 02 .long 0x270a06f + 768: 30 9f 04 a0 lhz r0,-24784(r4) + 76c: 70 ac 70 0b tdi 27,r16,-21392 if (kvmhv_on_pseries() && pseries_partition_tb) { - 770: 1a 08 ff 1a .long 0x1aff081a + 770: 79 00 20 31 addic r9,r0,121 { - 774: 32 24 9f 04 .long 0x49f2432 - 778: bc 70 d0 70 andi. r16,r6,28860 + 774: 1a 08 ff 1a .long 0x1aff081a + 778: 32 24 9f 04 .long 0x49f2432 if (kvmhv_on_pseries() && pseries_partition_tb) { - 77c: 0d 79 00 34 addic. r0,r0,30989 - 780: 27 20 31 1a .long 0x1a312027 - 784: 08 ff 1a 32 addic r16,r26,-248 - 788: 24 9f 04 d0 stfs f0,-24796(r4) + 77c: ac 70 c0 70 andi. r0,r6,28844 + 780: 0d 79 00 34 addic. r0,r0,30989 + 784: 27 20 31 1a .long 0x1a312027 + 788: 08 ff 1a 32 addic r16,r26,-248 plpar_hcall_norets(H_SET_PARTITION_TABLE, 0); - 78c: 70 d8 70 0e twi 19,r16,-10128 - 790: 91 d8 7e 94 stwu r3,-10095(r30) - 794: 01 20 31 1a stxvp vs48,8192(r17) - 798: 08 ff 1a 32 addic r16,r26,-248 - 79c: 24 9f 04 d8 stfd f0,-24796(r4) - 7a0: 70 dc 70 01 .long 0x170dc70 - 7a4: 56 04 dc 70 andi. r28,r6,1110 + 78c: 24 9f 04 c0 lfs f0,-24796(r4) + 790: 70 c8 70 0e twi 19,r16,-14224 + 794: 91 d8 7e 94 stwu r3,-10095(r30) + 798: 01 20 31 1a stxvp vs48,8192(r17) + 79c: 08 ff 1a 32 addic r16,r26,-248 + 7a0: 24 9f 04 c8 lfd f0,-24796(r4) + 7a4: 70 cc 70 01 .long 0x170cc70 kfree(pseries_partition_tb); - 7a8: e8 70 01 59 rlmi r1,r8,r14,3,20 - 7ac: 04 e8 70 ec dadd f3,f16,f29 - 7b0: 70 06 79 00 .long 0x790670 + 7a8: 56 04 cc 70 andi. r12,r6,1110 + 7ac: d8 70 01 59 rlmi r1,r8,r14,3,12 + 7b0: 04 d8 70 dc stfdu f3,-10236(r16) pseries_partition_tb = NULL; - 7b4: 70 00 21 9f stbu r25,112(r1) - 7b8: 04 ec 70 f4 psq_stu f3,-1020(r16),1,6 - 7bc: 70 18 91 d8 stfd f4,6256(r17) - 7c0: 7e 94 01 08 tdi 0,r1,-27522 -} - 7c4: ff 1a 34 27 dozi r25,r20,6911 - 7c8: 32 25 31 1a .long 0x1a312532 - 7cc: 76 00 21 7a .long 0x7a210076 - 7d0: 00 21 70 00 .long 0x702100 - 7d4: 21 9f 04 d0 stfs f0,-24799(r4) -{ - 7d8: 71 84 72 02 .long 0x2728471 - 7dc: 30 9f 04 8c lbzu r0,-24784(r4) - 7e0: 72 cc 72 02 .long 0x272cc72 - 7e4: 30 9f 04 b0 sth r0,-24784(r4) - 7e8: 73 d8 73 02 .long 0x273d873 - 7ec: 30 9f 04 f4 psq_stu f0,-208(r4),1,1 + 7b4: 70 06 79 00 .long 0x790670 + 7b8: 70 00 21 9f stbu r25,112(r1) + 7bc: 04 dc 70 e4 psq_lu f3,-1020(r16),1,5 + 7c0: 70 18 91 d8 stfd f4,6256(r17) +} + 7c4: 7e 94 01 08 tdi 0,r1,-27522 + 7c8: ff 1a 34 27 dozi r25,r20,6911 + 7cc: 32 25 31 1a .long 0x1a312532 + 7d0: 76 00 21 7a .long 0x7a210076 + 7d4: 00 21 70 00 .long 0x702100 +{ + 7d8: 21 9f 04 e4 psq_lu f0,-223(r4),1,1 + 7dc: 70 e8 70 24 dozi r3,r16,-6032 + 7e0: 91 d8 7e 94 stwu r3,-10095(r30) + 7e4: 01 08 ff 1a stxvp vs54,2048(r31) + 7e8: 20 32 1a 91 stw r8,12832(r26) + 7ec: d8 7e 94 01 .long 0x1947ed8 mmu_partition_table_set_entry(lpid, dw0, dw1, true); - 7f0: 73 d4 74 02 .long 0x274d473 + 7f0: 08 ff 1a 34 addic. r0,r26,-248 { - 7f4: 30 9f 04 e8 ld r0,-24784(r4) - 7f8: 74 80 75 02 .long 0x2758074 + 7f4: 27 32 25 31 addic r9,r5,12839 + 7f8: 1a 21 7b 00 .long 0x7b211a mmu_partition_table_set_entry(lpid, dw0, dw1, true); - 7fc: 30 9f 04 a8 lha r0,-24784(r4) - 800: 75 c8 75 02 .long 0x275c875 + 7fc: 21 7a 00 21 subfic r8,r0,31265 + 800: 70 00 21 9f stbu r25,112(r1) } - 804: 30 9f 00 00 .long 0x9f30 - ... - 810: 02 00 00 00 .long 0x2 - 814: 00 00 00 00 .long 0x0 - 818: 00 00 00 04 .long 0x4000000 - 81c: ec 65 d0 68 xori r16,r6,26092 + 804: 04 e8 70 ec dadd f3,f16,f29 + 808: 70 2b 91 d8 stfd f4,11120(r17) + 80c: 7e 94 01 08 tdi 0,r1,-27522 + 810: ff 1a 20 32 addic r17,r0,6911 + 814: 1a 91 d8 7e stxvrbx vs22,r24,r18 + 818: 94 01 08 ff .long 0xff080194 + 81c: 1a 34 27 32 addic r17,r7,13338 pseries_partition_tb[lpid].patb0 = cpu_to_be64(dw0); - 820: 01 62 04 98 stb r0,25089(r4) - 824: 6a cc 6a 01 .long 0x16acc6a - 828: 62 04 e0 6c xoris r0,r7,1122 - 82c: f8 6c 01 62 ori r1,r16,27896 - 830: 04 ec 6d b4 sthu r3,-5116(r13) - 834: 6f 01 62 04 .long 0x462016f + 820: 25 31 1a 21 subfic r8,r26,12581 + 824: 91 e8 7e 06 .long 0x67ee891 + 828: 20 0a 00 01 .long 0x1000a20 + 82c: 1a 21 7b 00 .long 0x7b211a + 830: 21 70 00 21 subfic r8,r0,28705 + 834: 9f 04 c0 71 andi. r0,r14,1183 pseries_partition_tb[lpid].patb1 = cpu_to_be64(dw1); - 838: ec 6f d0 71 andi. r16,r14,28652 - 83c: 01 62 04 e4 psq_lu f0,513(r4),0,6 + 838: f4 71 02 30 addic r0,r2,29172 + 83c: 9f 04 fc 71 andi. r28,r15,1183 kvmhv_flush_lpid(lpid); - 840: 71 8c 72 01 .long 0x1728c71 - 844: 62 04 cc 72 andi. r12,r22,1122 - 848: bc 73 01 62 ori r1,r16,29628 - 84c: 04 c8 73 90 stw r3,-14332(r19) - 850: 74 01 62 04 .long 0x4620174 - 854: b0 74 e8 74 andis. r8,r7,29872 -{ - 858: 01 62 04 a8 lha r0,25089(r4) - 85c: 75 c8 75 01 .long 0x175c875 - 860: 62 00 01 00 .long 0x10062 - ... - 87c: 02 00 00 00 .long 0x2 - ... + 840: bc 72 02 30 addic r0,r2,29372 + 844: 9f 04 a0 73 andi. r0,r29,1183 + 848: c8 73 02 30 addic r0,r2,29640 + 84c: 9f 04 e4 73 andi. r4,r31,1183 + 850: c4 74 02 30 addic r0,r2,29892 + 854: 9f 04 d8 74 andis. r24,r6,1183 +{ + 858: f0 74 02 30 addic r0,r2,29936 + 85c: 9f 04 98 75 andis. r24,r12,1183 + 860: b8 75 02 30 addic r0,r2,30136 + 864: 9f 00 00 00 .long 0x9f + 868: 00 00 00 00 .long 0x0 + 86c: 00 00 00 02 .long 0x2000000 + ... + 878: 00 00 04 dc stfdu f0,0(r4) + 87c: 65 c0 68 01 .long 0x168c065 + 880: 62 04 88 6a xori r8,r20,1122 + 884: bc 6a 01 62 ori r1,r16,27324 + 888: 04 d0 6c e8 ld r3,-12284(r12) + struct kvm *kvm = gp->l1_host; + 88c: 6c 01 62 04 .long 0x462016c ptbl_addr = (kvm->arch.l1_ptcr & PRTB_MASK) + (gp->l1_lpid << 4); - 890: 00 00 04 a0 lhz r0,0(r4) + 890: dc 6d a4 6f xoris r4,r29,28124 { - 894: 64 90 65 08 tdi 3,r5,-28572 - 898: 8e 00 08 20 subfic r0,r8,142 - 89c: 24 30 2e 9f stbu r25,12324(r14) + 894: 01 62 04 dc stfdu f0,25089(r4) + 898: 6f c0 71 01 .long 0x171c06f + 89c: 62 04 d4 71 andi. r20,r14,1122 struct patb_entry ptbl_entry; - 8a0: 04 90 65 9c stbu r3,-28668(r5) - 8a4: 65 0c 8d 00 .long 0x8d0c65 + 8a0: fc 71 01 62 ori r1,r16,29180 + 8a4: 04 bc 72 ac lhau r3,-17404(r18) ptbl_addr = (kvm->arch.l1_ptcr & PRTB_MASK) + (gp->l1_lpid << 4); - 8a8: 40 45 24 1a lxvp vs48,17728(r4) + 8a8: 73 01 62 04 .long 0x4620173 if (gp->l1_lpid < (1ul << ((kvm->arch.l1_ptcr & PRTS_MASK) + 12 - 4))) { - 8ac: 08 20 24 30 addic r1,r4,8200 - 8b0: 2e 9f 04 9c stbu r0,-24786(r4) - 8b4: 65 e4 65 08 tdi 3,r5,-7067 - 8b8: 8e 00 08 20 subfic r0,r8,142 - 8bc: 24 30 2e 9f stbu r25,12324(r14) + 8ac: b8 73 80 74 andis. r0,r4,29624 + 8b0: 01 62 04 a0 lhz r0,25089(r4) + 8b4: 74 d8 74 01 .long 0x174d874 + 8b8: 62 04 98 75 andis. r24,r12,1122 + 8bc: b8 75 01 62 ori r1,r16,30136 gp->process_table = 0; - 8c0: 04 e4 65 8c lbzu r3,-7164(r5) - gp->l1_gr_to_hr = 0; - 8c4: 66 0c 8d 00 .long 0x8d0c66 - __pa(gp->shadow_pgtable) | RADIX_PGD_INDEX_SIZE; - 8c8: 40 45 24 1a lxvp vs48,17728(r4) - dw0 = PATB_HR | radix__get_tree_size() | - 8cc: 08 20 24 30 addic r1,r4,8200 - kvmhv_set_ptbl_entry(gp->shadow_lpid, dw0, gp->process_table); - 8d0: 2e 9f 04 d0 stfs f0,-24786(r4) - 8d4: 68 d4 68 08 tdi 3,r8,-11160 - 8d8: 8e 00 08 20 subfic r0,r8,142 - dw0 = PATB_HR | radix__get_tree_size() | - 8dc: 24 30 2e 9f stbu r25,12324(r14) - __pa(gp->shadow_pgtable) | RADIX_PGD_INDEX_SIZE; - 8e0: 04 d4 68 98 stb r3,-11260(r8) - dw0 = PATB_HR | radix__get_tree_size() | - 8e4: 69 0c 8d 00 .long 0x8d0c69 + 8c0: 00 01 00 00 .long 0x100 + ... kvmhv_set_ptbl_entry(gp->shadow_lpid, dw0, gp->process_table); - 8e8: 40 45 24 1a lxvp vs48,17728(r4) - 8ec: 08 20 24 30 addic r1,r4,8200 + 8d8: 00 00 00 02 .long 0x2000000 + ... } - 8f0: 2e 9f 04 80 lwz r0,-24786(r4) - 8f4: 6a 98 6a 08 tdi 3,r10,-26518 - 8f8: 8e 00 08 20 subfic r0,r8,142 - 8fc: 24 30 2e 9f stbu r25,12324(r14) - 900: 04 e8 6a 9c stbu r3,-6140(r10) - 904: 6b 08 8e 00 .long 0x8e086b - 908: 08 20 24 30 addic r1,r4,8200 - 90c: 2e 9f 04 9c stbu r0,-24786(r4) - 910: 6b e0 6c 0c twi 3,r12,-8085 - 914: 8d 00 40 45 .long 0x4540008d - 918: 24 1a 08 20 subfic r0,r8,6692 - 91c: 24 30 2e 9f stbu r25,12324(r14) - 920: 04 98 6d a4 lhzu r3,-26620(r13) - 924: 6d 08 8e 00 .long 0x8e086d - 928: 08 20 24 30 addic r1,r4,8200 - 92c: 2e 9f 04 a4 lhzu r0,-24786(r4) + 8f0: 00 04 90 64 oris r16,r4,1024 + 8f4: 80 65 08 8e lbzu r16,25984(r8) + 8f8: 00 08 20 24 dozi r1,r0,2048 + 8fc: 30 2e 9f 04 .long 0x49f2e30 + 900: 80 65 8c 65 oris r12,r12,25984 + 904: 0c 8d 00 40 bdnzf lt,ffffffffffff9610 + 908: 45 24 1a 08 tdi 0,r26,9285 + 90c: 20 24 30 2e cmpdi cr4,r16,9248 + 910: 9f 04 8c 65 oris r12,r12,1183 + 914: d4 65 08 8e lbzu r16,26068(r8) + 918: 00 08 20 24 dozi r1,r0,2048 + 91c: 30 2e 9f 04 .long 0x49f2e30 + 920: d4 65 fc 65 oris r28,r15,26068 + 924: 0c 8d 00 40 bdnzf lt,ffffffffffff9630 + 928: 45 24 1a 08 tdi 0,r26,9285 + 92c: 20 24 30 2e cmpdi cr4,r16,9248 int srcu_idx = srcu_read_lock(&kvm->srcu); - 930: 6d b4 6d 0c twi 3,r13,-19347 - 934: 8d 00 40 45 .long 0x4540008d + 930: 9f 04 c0 68 xori r0,r6,1183 + 934: c4 68 08 8e lbzu r16,26820(r8) ptbl_addr = (kvm->arch.l1_ptcr & PRTB_MASK) + (gp->l1_lpid << 4); - 938: 24 1a 08 20 subfic r0,r8,6692 - 93c: 24 30 2e 9f stbu r25,12324(r14) + 938: 00 08 20 24 dozi r1,r0,2048 + 93c: 30 2e 9f 04 .long 0x49f2e30 retval = __srcu_read_lock(ssp); - 940: 04 b4 6d ec dsub f3,f13,f22 - 944: 6d 08 8e 00 .long 0x8e086d - 948: 08 20 24 30 addic r1,r4,8200 - 94c: 2e 9f 04 b4 sthu r0,-24786(r4) - 950: 6f d4 6f 0c twi 3,r15,-11153 + 940: c4 68 88 69 xori r8,r12,26820 + 944: 0c 8d 00 40 bdnzf lt,ffffffffffff9650 + 948: 45 24 1a 08 tdi 0,r26,9285 + 94c: 20 24 30 2e cmpdi cr4,r16,9248 + 950: 9f 04 f0 69 xori r16,r15,1183 ret = kvm_read_guest(kvm, ptbl_addr, - 954: 8d 00 40 45 .long 0x4540008d - 958: 24 1a 08 20 subfic r0,r8,6692 - 95c: 24 30 2e 9f stbu r25,12324(r14) - 960: 04 d0 71 d8 stfd f3,-12284(r17) - 964: 71 08 8e 00 .long 0x8e0871 - 968: 08 20 24 30 addic r1,r4,8200 - 96c: 2e 9f 04 d8 stfd f0,-24786(r4) - 970: 71 e4 71 0c twi 3,r17,-7055 - WARN_ON_ONCE(idx & ~0x1); - 974: 8d 00 40 45 .long 0x4540008d - 978: 24 1a 08 20 subfic r0,r8,6692 - 97c: 24 30 2e 9f stbu r25,12324(r14) + 954: 88 6a 08 8e lbzu r16,27272(r8) + 958: 00 08 20 24 dozi r1,r0,2048 + 95c: 30 2e 9f 04 .long 0x49f2e30 + 960: d8 6a 8c 6b xori r12,r28,27352 + 964: 08 8e 00 08 tdi 0,r0,-29176 + 968: 20 24 30 2e cmpdi cr4,r16,9248 + 96c: 9f 04 8c 6b xori r12,r28,1183 + 970: d0 6c 0c 8d lbzu r8,27856(r12) + WARN_ON_ONCE(idx & ~0x1); + 974: 00 40 45 24 dozi r2,r5,16384 + 978: 1a 08 20 24 dozi r1,r0,2074 + 97c: 30 2e 9f 04 .long 0x49f2e30 __srcu_read_unlock(ssp, idx); - 980: 04 8c 72 ac lhau r3,-29692(r18) - 984: 72 0c 8d 00 .long 0x8d0c72 - 988: 40 45 24 1a lxvp vs48,17728(r4) - 98c: 08 20 24 30 addic r1,r4,8200 + 980: 88 6d 94 6d xoris r20,r12,28040 + 984: 08 8e 00 08 tdi 0,r0,-29176 + 988: 20 24 30 2e cmpdi cr4,r16,9248 + 98c: 9f 04 94 6d xoris r20,r12,1183 if (ret) { - 990: 2e 9f 04 ac lhau r0,-24786(r4) - 994: 72 b4 72 08 tdi 3,r18,-19342 - 998: 8e 00 08 20 subfic r0,r8,142 - 99c: 24 30 2e 9f stbu r25,12324(r14) + 990: a4 6d 0c 8d lbzu r8,28068(r12) + 994: 00 40 45 24 dozi r2,r5,16384 + 998: 1a 08 20 24 dozi r1,r0,2074 + 99c: 30 2e 9f 04 .long 0x49f2e30 gp->l1_gr_to_hr = be64_to_cpu(ptbl_entry.patb0); - 9a0: 04 b4 72 bc stmw r3,-19452(r18) + 9a0: a4 6d dc 6d xoris r28,r14,28068 gp->process_table = be64_to_cpu(ptbl_entry.patb1); - 9a4: 72 0c 8d 00 .long 0x8d0c72 + 9a4: 08 8e 00 08 tdi 0,r0,-29176 gp->l1_gr_to_hr = be64_to_cpu(ptbl_entry.patb0); - 9a8: 40 45 24 1a lxvp vs48,17728(r4) + 9a8: 20 24 30 2e cmpdi cr4,r16,9248 gp->process_table = be64_to_cpu(ptbl_entry.patb1); - 9ac: 08 20 24 30 addic r1,r4,8200 - 9b0: 2e 9f 04 bc stmw r0,-24786(r4) - 9b4: 72 c4 72 08 tdi 3,r18,-15246 - 9b8: 8e 00 08 20 subfic r0,r8,142 - 9bc: 24 30 2e 9f stbu r25,12324(r14) - WARN_ON_ONCE(idx & ~0x1); - 9c0: 04 c4 72 cc lfdu f3,-15356(r18) - 9c4: 72 0c 8d 00 .long 0x8d0c72 -} - 9c8: 40 45 24 1a lxvp vs48,17728(r4) - 9cc: 08 20 24 30 addic r1,r4,8200 - 9d0: 2e 9f 04 bc stmw r0,-24786(r4) - 9d4: 73 c8 73 0c twi 3,r19,-14221 -{ - 9d8: 8d 00 40 45 .long 0x4540008d - 9dc: 24 1a 08 20 subfic r0,r8,6692 - 9e0: 24 30 2e 9f stbu r25,12324(r14) - 9e4: 04 90 74 b0 sth r3,-28668(r20) - 9e8: 74 08 8e 00 .long 0x8e0874 - 9ec: 08 20 24 30 addic r1,r4,8200 - 9f0: 2e 9f 04 e8 lwa r0,-24788(r4) - 9f4: 74 80 75 0c twi 3,r21,-32652 - 9f8: 8d 00 40 45 .long 0x4540008d + 9ac: 9f 04 a4 6f xoris r4,r29,1183 + 9b0: c4 6f 0c 8d lbzu r8,28612(r12) + 9b4: 00 40 45 24 dozi r2,r5,16384 + 9b8: 1a 08 20 24 dozi r1,r0,2074 + 9bc: 30 2e 9f 04 .long 0x49f2e30 + WARN_ON_ONCE(idx & ~0x1); + 9c0: c0 71 c8 71 andi. r8,r14,29120 + 9c4: 08 8e 00 08 tdi 0,r0,-29176 +} + 9c8: 20 24 30 2e cmpdi cr4,r16,9248 + 9cc: 9f 04 c8 71 andi. r8,r14,1183 + 9d0: d4 71 0c 8d lbzu r8,29140(r12) + 9d4: 00 40 45 24 dozi r2,r5,16384 +{ + 9d8: 1a 08 20 24 dozi r1,r0,2074 + 9dc: 30 2e 9f 04 .long 0x49f2e30 + 9e0: fc 71 9c 72 andi. r28,r20,29180 + 9e4: 0c 8d 00 40 bdnzf lt,ffffffffffff96f0 + 9e8: 45 24 1a 08 tdi 0,r26,9285 + 9ec: 20 24 30 2e cmpdi cr4,r16,9248 + 9f0: 9f 04 9c 72 andi. r28,r20,1183 + 9f4: a4 72 08 8e lbzu r16,29348(r8) + 9f8: 00 08 20 24 dozi r1,r0,2048 if (gp->shadow_pgtable) { - 9fc: 24 1a 08 20 subfic r0,r8,6692 - a00: 24 30 2e 9f stbu r25,12324(r14) - a04: 04 a8 75 c8 lfd f3,-22524(r21) + 9fc: 30 2e 9f 04 .long 0x49f2e30 + a00: a4 72 ac 72 andi. r12,r21,29348 + a04: 0c 8d 00 40 bdnzf lt,ffffffffffff9710 kvmppc_free_pgtable_radix(kvm, gp->shadow_pgtable, - a08: 75 0c 8d 00 .long 0x8d0c75 - a0c: 40 45 24 1a lxvp vs48,17728(r4) - a10: 08 20 24 30 addic r1,r4,8200 - a14: 2e 9f 00 02 .long 0x2009f2e - ... + a08: 45 24 1a 08 tdi 0,r26,9285 + a0c: 20 24 30 2e cmpdi cr4,r16,9248 + a10: 9f 04 ac 72 andi. r12,r21,1183 + a14: b4 72 08 8e lbzu r16,29364(r8) + pgd_free(kvm->mm, gp->shadow_pgtable); + a18: 00 08 20 24 dozi r1,r0,2048 + a1c: 30 2e 9f 04 .long 0x49f2e30 free_page((unsigned long)pgd); - a20: 01 00 00 00 .long 0x1 - a24: 00 00 00 02 .long 0x2000000 - a28: 01 00 00 00 .long 0x1 - ... + a20: b4 72 bc 72 andi. r28,r21,29364 + a24: 0c 8d 00 40 bdnzf lt,ffffffffffff9730 + a28: 45 24 1a 08 tdi 0,r26,9285 kvmhv_set_ptbl_entry(gp->shadow_lpid, 0, 0); - a34: 00 00 00 04 .long 0x4000000 - a38: a0 64 b0 66 oris r16,r21,25760 + a2c: 20 24 30 2e cmpdi cr4,r16,9248 + a30: 9f 04 ac 73 andi. r12,r29,1183 + a34: b8 73 0c 8d lbzu r8,29624(r12) + a38: 00 40 45 24 dozi r2,r5,16384 kvmppc_free_lpid(gp->shadow_lpid); - a3c: 02 30 9f 04 .long 0x49f3002 - a40: b0 66 f8 67 oris r24,r31,26288 - a44: 01 6e 04 d0 stfs f0,28161(r4) + a3c: 1a 08 20 24 dozi r1,r0,2074 + a40: 30 2e 9f 04 .long 0x49f2e30 + a44: 80 74 a0 74 andis. r0,r5,29824 kfree(gp); - a48: 68 a8 69 02 .long 0x269a868 - a4c: 30 9f 04 80 lwz r0,-24784(r4) - a50: 6a c8 6a 02 .long 0x26ac86a -} - a54: 30 9f 04 e8 ld r0,-24784(r4) - a58: 6a f4 6c 02 .long 0x26cf46a - a5c: 30 9f 04 98 stb r0,-24784(r4) - a60: 6d ec 6d 02 .long 0x26dec6d - a64: 30 9f 04 b4 sthu r0,-24784(r4) - a68: 6f ec 6f 02 .long 0x26fec6f - a6c: 30 9f 04 ec .long 0xec049f30 + a48: 08 8e 00 08 tdi 0,r0,-29176 + a4c: 20 24 30 2e cmpdi cr4,r16,9248 + a50: 9f 04 d8 74 andis. r24,r6,1183 +} + a54: f0 74 0c 8d lbzu r8,29936(r12) + a58: 00 40 45 24 dozi r2,r5,16384 + a5c: 1a 08 20 24 dozi r1,r0,2074 + a60: 30 2e 9f 04 .long 0x49f2e30 + a64: 98 75 b8 75 andis. r24,r13,30104 + a68: 0c 8d 00 40 bdnzf lt,ffffffffffff9774 + a6c: 45 24 1a 08 tdi 0,r26,9285 kmem_cache_free(PGT_CACHE(PGD_INDEX_SIZE), pgd); - a70: 6f 9c 70 01 .long 0x1709c6f - a74: 6e 04 d0 71 andi. r16,r14,1134 - a78: 84 72 02 30 addic r0,r2,29316 - a7c: 9f 04 8c 72 andi. r12,r20,1183 - a80: cc 72 02 30 addic r0,r2,29388 - a84: 9f 04 b0 73 andi. r16,r29,1183 - a88: bc 73 01 6e xoris r1,r16,29628 - a8c: 04 bc 73 d8 stfd f3,-17404(r19) - a90: 73 02 30 9f stbu r25,627(r16) - a94: 04 90 74 b0 sth r3,-28668(r20) + a70: 20 24 30 2e cmpdi cr4,r16,9248 + a74: 9f 00 02 00 .long 0x2009f + a78: 00 00 00 00 .long 0x0 + a7c: 00 00 00 01 .long 0x1000000 + a80: 00 00 00 00 .long 0x0 + a84: 00 00 02 01 .long 0x1020000 + ... + a94: 00 00 04 90 stw r0,0(r4) kvmhv_set_ptbl_entry(gp->shadow_lpid, 0, 0); - a98: 74 02 30 9f stbu r25,628(r16) - a9c: 04 b0 74 c0 lfs f3,-20476(r20) - aa0: 74 01 6e 04 .long 0x46e0174 - aa4: e8 74 80 75 andis. r0,r12,29928 + a98: 64 a0 66 02 .long 0x266a064 + a9c: 30 9f 04 a0 lhz r0,-24784(r4) + aa0: 66 e8 67 01 .long 0x167e866 + aa4: 6e 04 c0 68 xori r0,r6,1134 kvmppc_free_lpid(gp->shadow_lpid); - aa8: 02 30 9f 04 .long 0x49f3002 - aac: a8 75 c8 75 andis. r8,r14,30120 - ab0: 02 30 9f 00 .long 0x9f3002 - ... + aa8: 98 69 02 30 addic r0,r2,27032 + aac: 9f 04 f0 69 xori r16,r15,1183 + ab0: b8 6a 02 30 addic r0,r2,27320 kfree(gp); - abc: 00 02 00 0b tdnei r0,512 -} - ac0: 0b 00 00 00 .long 0xb - ... - ad4: 00 00 04 90 stw r0,0(r4) - ad8: 65 9c 65 01 .long 0x1659c65 - adc: 53 04 d8 65 oris r24,r14,1107 - ae0: e4 65 02 30 addic r0,r2,26084 - ae4: 9f 04 f8 67 oris r24,r31,1183 -static void kvmhv_emulate_tlbie_lpid(struct kvm_vcpu *vcpu, - ae8: b8 68 01 53 rlwimi r1,r24,13,2,28 - aec: 04 b8 68 d0 stfs f3,-18428(r8) - af0: 68 01 6e 04 .long 0x46e0168 - af4: 94 69 94 69 xori r20,r12,27028 - af8: 02 32 9f 04 .long 0x49f3202 - afc: 90 6b b4 6c xoris r20,r5,27536 - mutex_lock(&gp->tlb_lock); - b00: 02 30 9f 04 .long 0x49f3002 + ab4: 9f 04 d8 6a xori r24,r22,1183 + ab8: e4 6c 02 30 addic r0,r2,27876 + abc: 9f 04 88 6d xoris r8,r12,1183 +} + ac0: dc 6d 02 30 addic r0,r2,28124 + ac4: 9f 04 a4 6f xoris r4,r29,1183 + ac8: dc 6f 02 30 addic r0,r2,28636 + acc: 9f 04 dc 6f xoris r28,r30,1183 + ad0: 8c 70 01 6e xoris r1,r16,28812 + ad4: 04 c0 71 f4 psq_stu f3,4(r17),1,4 + ad8: 71 02 30 9f stbu r25,625(r16) + adc: 04 fc 71 bc stmw r3,-1020(r17) + ae0: 72 02 30 9f stbu r25,626(r16) + ae4: 04 a0 73 ac lhau r3,-24572(r19) static void kvmhv_emulate_tlbie_lpid(struct kvm_vcpu *vcpu, - b04: b4 6c e0 6c xoris r0,r7,27828 - b08: 01 58 04 98 stb r0,22529(r4) - b0c: 6d b4 6d 02 .long 0x26db46d - b10: 30 9f 04 9c stbu r0,-24784(r4) - b14: 6f b4 6f 01 .long 0x16fb46f - b18: 6e 04 b4 6f xoris r20,r29,1134 - b1c: d4 6f 01 58 rlmi r1,r0,r13,31,10 + ae8: 73 01 6e 04 .long 0x46e0173 + aec: ac 73 c8 73 andi. r8,r30,29612 + af0: 02 30 9f 04 .long 0x49f3002 + af4: 80 74 a0 74 andis. r0,r5,29824 + af8: 02 30 9f 04 .long 0x49f3002 + afc: a0 74 b0 74 andis. r16,r5,29856 mutex_lock(&gp->tlb_lock); - b20: 04 8c 72 ac lhau r3,-29692(r18) + b00: 01 6e 04 d8 stfd f0,28161(r4) static void kvmhv_emulate_tlbie_lpid(struct kvm_vcpu *vcpu, - b24: 72 02 30 9f stbu r25,626(r16) - mutex_lock(&gp->tlb_lock); - b28: 04 bc 73 c8 lfd f3,-17404(r19) - b2c: 73 02 30 9f stbu r25,627(r16) + b04: 74 f0 74 02 .long 0x274f074 + b08: 30 9f 04 98 stb r0,-24784(r4) + b0c: 75 b8 75 02 .long 0x275b875 + b10: 30 9f 00 00 .long 0x9f30 + ... + b1c: 02 00 0b 0b tdnei r11,2 + ... switch (ric) { - b30: 04 f4 73 88 lbz r3,-3068(r19) - b34: 74 01 53 04 .long 0x4530174 - b38: 88 74 90 74 andis. r16,r4,29832 - b3c: 01 6e 04 c0 lfs f0,28161(r4) + b34: 00 04 80 65 oris r0,r12,1024 + b38: 8c 65 01 53 rlwimi r1,r24,12,22,6 + b3c: 04 c8 65 d4 stfsu f3,-14332(r5) struct kvm *kvm = gp->l1_host; - b40: 74 c8 74 01 .long 0x174c874 - b44: 53 04 c8 74 andis. r8,r6,1107 - b48: d4 74 01 6e xoris r1,r16,29908 - b4c: 04 e8 74 80 lwz r3,-6140(r20) + b40: 65 02 30 9f stbu r25,613(r16) + b44: 04 e8 67 a8 lha r3,-6140(r7) + b48: 68 01 53 04 .long 0x4530168 + b4c: a8 68 c0 68 xori r0,r6,26792 kvmppc_free_pgtable_radix(kvm, gp->shadow_pgtable, gp->shadow_lpid); - b50: 75 02 30 9f stbu r25,629(r16) - b54: 00 02 00 00 attn - b58: 00 00 00 00 .long 0x0 - b5c: 00 00 00 02 .long 0x2000000 - b60: 00 00 00 00 .long 0x0 + b50: 01 6e 04 84 lwzu r0,28161(r4) + b54: 69 84 69 02 .long 0x2698469 + b58: 32 9f 04 80 lwz r0,-24782(r4) + b5c: 6b a4 6c 02 .long 0x26ca46b + b60: 30 9f 04 a4 lhzu r0,-24784(r4) if (unlikely(ms->mmiowb_pending)) { - b64: 00 04 c8 64 oris r8,r6,1024 + b64: 6c d0 6c 01 .long 0x16cd06c struct mmiowb_state *ms = __mmiowb_state(); - b68: 88 65 01 6a xori r1,r16,25992 + b68: 58 04 88 6d xoris r8,r12,1112 if (unlikely(ms->mmiowb_pending)) { - b6c: 04 9c 65 d8 stfd f3,-25596(r5) - b70: 65 01 6a 04 .long 0x46a0165 + b6c: a4 6d 02 30 addic r0,r2,28068 + b70: 9f 04 8c 6f xoris r12,r28,1183 ms->nesting_count--; - b74: d0 68 94 69 xori r20,r12,26832 - b78: 01 6a 04 e8 ldu r0,27136(r4) - b7c: 6a 90 6b 01 .long 0x16b906a - b80: 6a 04 b4 6d xoris r20,r13,1130 - b84: ec 6d 01 6a xori r1,r16,28140 - b88: 04 d0 71 e4 psq_lu f3,4(r17),1,5 + b74: a4 6f 01 6e xoris r1,r16,28580 + b78: 04 a4 6f c4 lfsu f3,-23548(r15) + b7c: 6f 01 58 04 .long 0x458016f + b80: fc 71 9c 72 andi. r28,r20,29180 + b84: 02 30 9f 04 .long 0x49f3002 + b88: ac 73 b8 73 andi. r24,r29,29612 kvmhv_flush_lpid(gp->shadow_lpid); - b8c: 71 01 6a 04 .long 0x46a0171 - b90: ac 72 cc 72 andi. r12,r22,29356 + b8c: 02 30 9f 04 .long 0x49f3002 + b90: e4 73 f8 73 andi. r24,r31,29668 kvmhv_update_ptbl_cache(gp); - b94: 01 6a 04 90 stw r0,27137(r4) - b98: 74 b0 74 01 .long 0x174b074 + b94: 01 53 04 f8 stdu r0,21248(r4) + b98: 73 80 74 01 .long 0x1748073 if (gp->l1_gr_to_hr == 0) - b9c: 6a 00 01 00 .long 0x1006a - ... + b9c: 6e 04 b0 74 andis. r16,r5,1134 + ba0: b8 74 01 53 rlwimi r1,r24,14,18,28 + ba4: 04 b8 74 c4 lfsu f3,-18428(r20) mutex_unlock(&gp->tlb_lock); - bac: 02 00 00 00 .long 0x2 - bb0: 00 00 04 c8 lfd f0,0(r4) -} - bb4: 64 d0 64 04 .long 0x464d064 - bb8: 91 c0 7e 9f stbu r27,-16239(r30) - bbc: 04 d0 64 e7 psq_lu f27,4(r4),1,5 - bc0: 64 01 55 04 .long 0x4550164 - bc4: e7 64 88 65 oris r8,r12,25831 - bc8: 04 91 c0 7e .long 0x7ec09104 - bcc: 9f 04 9c 65 oris r28,r12,1183 - bd0: d8 65 04 91 stw r8,26072(r4) - bd4: c0 7e 9f 04 .long 0x49f7ec0 - bd8: d0 68 94 69 xori r20,r12,26832 - bdc: 04 91 c0 7e .long 0x7ec09104 - be0: 9f 04 e8 6a xori r8,r23,1183 - be4: 90 6b 04 91 stw r8,27536(r4) - be8: c0 7e 9f 04 .long 0x49f7ec0 + ba8: 74 01 6e 04 .long 0x46e0174 + bac: d8 74 f0 74 andis. r16,r7,29912 + bb0: 02 30 9f 00 .long 0x9f3002 +} + bb4: 02 00 00 00 .long 0x2 + bb8: 00 00 00 00 .long 0x0 + bbc: 00 00 02 00 .long 0x20000 + bc0: 00 00 00 00 .long 0x0 + bc4: 04 b8 64 f8 std r3,-18428(r4) + bc8: 64 01 6a 04 .long 0x46a0164 + bcc: 8c 65 c8 65 oris r8,r14,25996 + bd0: 01 6a 04 c0 lfs f0,27137(r4) + bd4: 68 84 69 01 .long 0x1698468 + bd8: 6a 04 d8 6a xori r24,r22,1130 + bdc: 80 6b 01 6a xori r1,r16,27520 + be0: 04 a4 6d dc stfdu f3,-23548(r13) + be4: 6d 01 6a 04 .long 0x46a016d + be8: c0 71 d4 71 andi. r20,r14,29120 kvmppc_free_pgtable_radix(kvm, gp->shadow_pgtable, - bec: b4 6d ec 6d xoris r12,r15,28084 - bf0: 04 91 c0 7e .long 0x7ec09104 - bf4: 9f 04 d0 71 andi. r16,r14,1183 - bf8: e4 71 04 91 stw r8,29156(r4) - bfc: c0 7e 9f 04 .long 0x49f7ec0 - kvmhv_flush_lpid(gp->shadow_lpid); - c00: ac 72 cc 72 andi. r12,r22,29356 - c04: 04 91 c0 7e .long 0x7ec09104 + bec: 01 6a 04 9c stbu r0,27137(r4) + bf0: 72 bc 72 01 .long 0x172bc72 + bf4: 6a 04 80 74 andis. r0,r4,1130 + bf8: a0 74 01 6a xori r1,r16,29856 + bfc: 00 01 00 00 .long 0x100 + ... if (unlikely(ms->mmiowb_pending)) { - c08: 9f 04 90 74 andis. r16,r4,1183 + c08: 00 00 00 02 .long 0x2000000 struct mmiowb_state *ms = __mmiowb_state(); - c0c: b0 74 04 91 stw r8,29872(r4) + c0c: 00 00 00 00 .long 0x0 if (unlikely(ms->mmiowb_pending)) { - c10: c0 7e 9f 00 .long 0x9f7ec0 - c14: 01 00 00 00 .long 0x1 + c10: 00 04 b8 64 oris r24,r5,1024 + c14: c0 64 04 91 stw r8,25792(r4) ms->nesting_count--; - c18: 00 00 00 00 .long 0x0 - c1c: 00 00 02 00 .long 0x20000 - c20: 00 00 00 00 .long 0x0 - c24: 04 c8 64 88 lbz r3,-14332(r4) - c28: 65 09 8d 00 .long 0x8d0965 - c2c: 0c ff ff ff .long 0xffffff0c + c18: c0 7e 9f 04 .long 0x49f7ec0 + c1c: c0 64 d7 64 oris r23,r6,25792 + c20: 01 55 04 d7 stfsu f24,21761(r4) + c24: 64 f8 64 04 .long 0x464f864 + c28: 91 c0 7e 9f stbu r27,-16239(r30) + c2c: 04 8c 65 c8 lfd f3,-29692(r5) mutex_unlock(&gp->tlb_lock); - c30: ff 1a 9f 04 .long 0x49f1aff - c34: 9c 65 d8 65 oris r24,r14,26012 - c38: 09 8d 00 0c twi 0,r0,-29431 -} - c3c: ff ff ff ff fnmadd. f31,f31,f31,f31 - c40: 1a 9f 04 d0 stfs f0,-24806(r4) - c44: 68 94 69 09 tdi 11,r9,-27544 - c48: 8d 00 0c ff .long 0xff0c008d - c4c: ff ff ff 1a .long 0x1affffff - c50: 9f 04 e8 6a xori r8,r23,1183 - c54: 90 6b 09 8d lbzu r8,27536(r9) - c58: 00 0c ff ff .long 0xffff0c00 - c5c: ff ff 1a 9f stbu r24,-1(r26) + c30: 65 04 91 c0 lfs f4,1125(r17) + c34: 7e 9f 04 c0 lfs f0,-24706(r4) + c38: 68 84 69 04 .long 0x4698468 +} + c3c: 91 c0 7e 9f stbu r27,-16239(r30) + c40: 04 d8 6a 80 lwz r3,-10236(r10) + c44: 6b 04 91 c0 lfs f4,1131(r17) + c48: 7e 9f 04 a4 lhzu r0,-24706(r4) + c4c: 6d dc 6d 04 .long 0x46ddc6d + c50: 91 c0 7e 9f stbu r27,-16239(r30) + c54: 04 c0 71 d4 stfsu f3,-16380(r17) + c58: 71 04 91 c0 lfs f4,1137(r17) + c5c: 7e 9f 04 9c stbu r0,-24706(r4) struct kvm *kvm = gp->l1_host; - c60: 04 b4 6d ec dsub f3,f13,f22 - c64: 6d 09 8d 00 .long 0x8d096d + c60: 72 bc 72 04 .long 0x472bc72 + c64: 91 c0 7e 9f stbu r27,-16239(r30) int lpid = gp->l1_lpid; - c68: 0c ff ff ff .long 0xffffff0c - c6c: ff 1a 9f 04 .long 0x49f1aff + c68: 04 80 74 a0 lhz r3,-32764(r20) + c6c: 74 04 91 c0 lfs f4,1140(r17) return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - c70: d0 71 e4 71 andi. r4,r15,29136 - c74: 09 8d 00 0c twi 0,r0,-29431 - c78: ff ff ff ff fnmadd. f31,f31,f31,f31 - c7c: 1a 9f 04 ac lhau r0,-24806(r4) - c80: 72 cc 72 09 tdi 11,r18,-13198 - c84: 8d 00 0c ff .long 0xff0c008d - c88: ff ff ff 1a .long 0x1affffff - c8c: 9f 04 90 74 andis. r16,r4,1183 + c70: 7e 9f 00 01 .long 0x1009f7e + ... + c7c: 00 02 00 00 attn + c80: 00 00 00 04 .long 0x4000000 + c84: b8 64 f8 64 oris r24,r7,25784 + c88: 09 8d 00 0c twi 0,r0,-29431 + c8c: ff ff ff ff fnmadd. f31,f31,f31,f31 if (gp == __find_nested(kvm, lpid)) { - c90: b0 74 09 8d lbzu r8,29872(r9) - c94: 00 0c ff ff .long 0xffff0c00 + c90: 1a 9f 04 8c lbzu r0,-24806(r4) + c94: 65 c8 65 09 tdi 11,r5,-14235 ref = gp->refcnt; - c98: ff ff 1a 9f stbu r24,-1(r26) + c98: 8d 00 0c ff .long 0xff0c008d if (unlikely(ms->mmiowb_pending)) { - c9c: 00 01 00 00 .long 0x100 + c9c: ff ff ff 1a .long 0x1affffff struct mmiowb_state *ms = __mmiowb_state(); - ca0: 00 00 00 00 .long 0x0 + ca0: 9f 04 c0 68 xori r0,r6,1183 if (unlikely(ms->mmiowb_pending)) { - ca4: 00 00 00 02 .long 0x2000000 - ca8: 00 00 00 00 .long 0x0 + ca4: 84 69 09 8d lbzu r8,27012(r9) + ca8: 00 0c ff ff .long 0xffff0c00 ms->nesting_count--; - cac: 00 04 c8 64 oris r8,r6,1024 - cb0: 88 65 01 6b xori r1,r24,25992 - cb4: 04 9c 65 d8 stfd f3,-25596(r5) - cb8: 65 01 6b 04 .long 0x46b0165 - cbc: d0 68 94 69 xori r20,r12,26832 - cc0: 01 6b 04 e8 ldu r0,27392(r4) + cac: ff ff 1a 9f stbu r24,-1(r26) + cb0: 04 d8 6a 80 lwz r3,-10236(r10) + cb4: 6b 09 8d 00 .long 0x8d096b + cb8: 0c ff ff ff .long 0xffffff0c + cbc: ff 1a 9f 04 .long 0x49f1aff + cc0: a4 6d dc 6d xoris r28,r14,28068 if (ref == 0) - cc4: 6a 90 6b 01 .long 0x16b906a - cc8: 6b 04 b4 6d xoris r20,r13,1131 - ccc: ec 6d 01 6b xori r1,r24,28140 - cd0: 04 d0 71 e4 psq_lu f3,4(r17),1,5 - cd4: 71 01 6b 04 .long 0x46b0171 - cd8: ac 72 cc 72 andi. r12,r22,29356 - cdc: 01 6b 04 90 stw r0,27393(r4) + cc4: 09 8d 00 0c twi 0,r0,-29431 + cc8: ff ff ff ff fnmadd. f31,f31,f31,f31 + ccc: 1a 9f 04 c0 lfs f0,-24806(r4) + cd0: 71 d4 71 09 tdi 11,r17,-11151 + cd4: 8d 00 0c ff .long 0xff0c008d + cd8: ff ff ff 1a .long 0x1affffff + cdc: 9f 04 9c 72 andi. r28,r20,1183 ms->mmiowb_pending = 0; - ce0: 74 b0 74 01 .long 0x174b074 - ce4: 6b 00 01 00 .long 0x1006b - ... + ce0: bc 72 09 8d lbzu r8,29372(r9) + ce4: 00 0c ff ff .long 0xffff0c00 + mmiowb(); + ce8: ff ff 1a 9f stbu r24,-1(r26) + cec: 04 80 74 a0 lhz r3,-32764(r20) kvmhv_release_nested(gp); - cf0: 02 00 00 00 .long 0x2 - cf4: 00 00 04 c8 lfd f0,0(r4) - cf8: 64 88 65 01 .long 0x1658864 - cfc: 6f 04 9c 65 oris r28,r12,1135 - d00: d8 65 01 6f xoris r1,r24,26072 + cf0: 74 09 8d 00 .long 0x8d0974 + cf4: 0c ff ff ff .long 0xffffff0c + cf8: ff 1a 9f 00 .long 0x9f1aff + cfc: 01 00 00 00 .long 0x1 + ms->mmiowb_pending = 0; + d00: 00 00 00 00 .long 0x0 mmiowb(); - d04: 04 d0 68 94 stwu r3,-12284(r8) - d08: 69 01 6f 04 .long 0x46f0169 - d0c: e8 6a 90 6b xori r16,r28,27368 + d04: 00 00 02 00 .long 0x20000 + d08: 00 00 00 00 .long 0x0 + d0c: 04 b8 64 f8 std r3,-18428(r4) idr_remove(&kvm->arch.kvm_nested_guest_idr, lpid); - d10: 01 6f 04 b4 sthu r0,28417(r4) - d14: 6d ec 6d 01 .long 0x16dec6d - d18: 6f 04 d0 71 andi. r16,r14,1135 - d1c: e4 71 01 6f xoris r1,r24,29156 + d10: 64 01 6b 04 .long 0x46b0164 + d14: 8c 65 c8 65 oris r8,r14,25996 + d18: 01 6b 04 c0 lfs f0,27393(r4) + d1c: 68 84 69 01 .long 0x1698468 --gp->refcnt; - d20: 04 ac 72 cc lfdu f3,-21500(r18) - d24: 72 01 6f 04 .long 0x46f0172 - d28: 90 74 b0 74 andis. r16,r5,29840 - d2c: 01 6f 00 00 .long 0x6f01 - ... - d3c: 00 00 00 02 .long 0x2000000 - ... -{ - d50: 00 00 00 04 .long 0x4000000 - d54: e0 64 88 65 oris r8,r12,25824 - d58: 09 8e 00 0c twi 0,r0,-29175 - d5c: ff ff ff ff fnmadd. f31,f31,f31,f31 - d60: 1a 9f 04 9c stbu r0,-24806(r4) - d64: 65 d8 65 09 tdi 11,r5,-10139 - d68: 8e 00 0c ff .long 0xff0c008e - d6c: ff ff ff 1a .long 0x1affffff - d70: 9f 04 d0 68 xori r16,r6,1183 - d74: d4 68 09 8e lbzu r16,26836(r9) - d78: 00 0c ff ff .long 0xffff0c00 + d20: 6b 04 d8 6a xori r24,r22,1131 + d24: 80 6b 01 6b xori r1,r24,27520 + d28: 04 a4 6d dc stfdu f3,-23548(r13) + d2c: 6d 01 6b 04 .long 0x46b016d + ms->mmiowb_pending = 0; + d30: c0 71 d4 71 andi. r20,r14,29120 + d34: 01 6b 04 9c stbu r0,27393(r4) + mmiowb(); + d38: 72 bc 72 01 .long 0x172bc72 + d3c: 6b 04 80 74 andis. r0,r4,1131 + d40: a0 74 01 6b xori r1,r24,29856 + d44: 00 01 00 00 .long 0x100 +{ + d48: 00 00 00 00 .long 0x0 + d4c: 00 00 00 02 .long 0x2000000 + d50: 00 00 00 00 .long 0x0 + d54: 00 04 b8 64 oris r24,r5,1024 + d58: f8 64 01 6f xoris r1,r24,25848 + d5c: 04 8c 65 c8 lfd f3,-29692(r5) + d60: 65 01 6f 04 .long 0x46f0165 + d64: c0 68 84 69 xori r4,r12,26816 + d68: 01 6f 04 d8 stfd f0,28417(r4) + d6c: 6a 80 6b 01 .long 0x16b806a + d70: 6f 04 a4 6d xoris r4,r13,1135 + d74: dc 6d 01 6f xoris r1,r24,28124 + d78: 04 c0 71 d4 stfsu f3,-16380(r17) struct kvm *kvm = vcpu->kvm; - d7c: ff ff 1a 9f stbu r24,-1(r26) - d80: 04 d4 68 ec dsub f3,f8,f26 + d7c: 71 01 6f 04 .long 0x46f0171 + d80: 9c 72 bc 72 andi. r28,r21,29340 srcu_idx = srcu_read_lock(&kvm->srcu); - d84: 68 0d 8d 00 .long 0x8d0d68 + d84: 01 6f 04 80 lwz r0,28417(r4) retval = __srcu_read_lock(ssp); - d88: 40 45 24 1a lxvp vs48,17728(r4) - d8c: 0c ff ff ff .long 0xffffff0c - d90: ff 1a 9f 04 .long 0x49f1aff - if ((ptcr & PRTS_MASK) + 12 - 4 > KVM_MAX_NESTED_GUESTS_SHIFT || - d94: ec 68 94 69 xori r20,r12,26860 - d98: 01 58 04 e8 ldu r0,22528(r4) - d9c: 6a 90 6b 09 tdi 11,r11,-28566 - da0: 8e 00 0c ff .long 0xff0c008e - da4: ff ff ff 1a .long 0x1affffff + d88: 74 a0 74 01 .long 0x174a074 + d8c: 6f 00 00 00 .long 0x6f + ... + d9c: 00 00 02 00 .long 0x20000 + ... !kvm_is_visible_gfn(vcpu->kvm, (ptcr & PRTB_MASK) >> PAGE_SHIFT)) - da8: 9f 04 b4 6d xoris r20,r13,1183 - dac: c8 6d 09 8e lbzu r16,28104(r9) - db0: 00 0c ff ff .long 0xffff0c00 - db4: ff ff 1a 9f stbu r24,-1(r26) + db0: 00 00 04 d0 stfs f0,0(r4) + db4: 64 f8 64 09 tdi 11,r4,-1948 if ((ptcr & PRTS_MASK) + 12 - 4 > KVM_MAX_NESTED_GUESTS_SHIFT || - db8: 04 c8 6d ec dadd f3,f13,f25 - dbc: 6d 04 40 48 bl 401228 + db8: 8e 00 0c ff .long 0xff0c008e + dbc: ff ff ff 1a .long 0x1affffff WARN_ON_ONCE(idx & ~0x1); - dc0: 24 9f 04 d0 stfs f0,-24796(r4) - dc4: 71 d8 71 09 tdi 11,r17,-10127 + dc0: 9f 04 8c 65 oris r12,r12,1183 + dc4: c8 65 09 8e lbzu r16,26056(r9) __srcu_read_unlock(ssp, idx); - dc8: 8e 00 0c ff .long 0xff0c008e - dcc: ff ff ff 1a .long 0x1affffff - dd0: 9f 04 d8 71 andi. r24,r14,1183 - dd4: dc 71 0d 8d lbzu r8,29148(r13) + dc8: 00 0c ff ff .long 0xffff0c00 + dcc: ff ff 1a 9f stbu r24,-1(r26) + dd0: 04 c0 68 c4 lfsu f3,-16380(r8) + dd4: 68 09 8e 00 .long 0x8e0968 kvm->arch.l1_ptcr = ptcr; - dd8: 00 40 45 24 dozi r2,r5,16384 - ddc: 1a 0c ff ff .long 0xffff0c1a + dd8: 0c ff ff ff .long 0xffffff0c + ddc: ff 1a 9f 04 .long 0x49f1aff } - de0: ff ff 1a 9f stbu r24,-1(r26) - de4: 04 dc 71 e4 psq_lu f3,-1020(r17),1,5 - de8: 71 01 58 04 .long 0x4580171 - dec: ac 72 b4 72 andi. r20,r21,29356 - df0: 09 8e 00 0c twi 0,r0,-29175 - df4: ff ff ff ff fnmadd. f31,f31,f31,f31 - df8: 1a 9f 04 b4 sthu r0,-24806(r4) - dfc: 72 b8 72 0d twi 11,r18,-18318 - e00: 8d 00 40 45 .long 0x4540008d - e04: 24 1a 0c ff .long 0xff0c1a24 - e08: ff ff ff 1a .long 0x1affffff - e0c: 9f 04 b8 72 andi. r24,r21,1183 + de0: c4 68 dc 68 xori r28,r6,26820 + de4: 0d 8d 00 40 bdnzfl lt,ffffffffffff9af0 + de8: 45 24 1a 0c twi 0,r26,9285 + dec: ff ff ff ff fnmadd. f31,f31,f31,f31 + df0: 1a 9f 04 dc stfdu f0,-24806(r4) + df4: 68 84 69 01 .long 0x1698468 + df8: 58 04 d8 6a xori r24,r22,1112 + dfc: 80 6b 09 8e lbzu r16,27520(r9) + e00: 00 0c ff ff .long 0xffff0c00 + e04: ff ff 1a 9f stbu r24,-1(r26) + e08: 04 a4 6d b8 lm r3,-23548(r13) + e0c: 6d 09 8e 00 .long 0x8e096d long ret = H_SUCCESS; - e10: bc 72 01 58 rlmi r1,r0,r14,10,30 + e10: 0c ff ff ff .long 0xffffff0c WARN_ON_ONCE(idx & ~0x1); - e14: 04 bc 72 c4 lfsu f3,-17404(r18) - e18: 72 09 8e 00 .long 0x8e0972 - e1c: 0c ff ff ff .long 0xffffff0c + e14: ff 1a 9f 04 .long 0x49f1aff + e18: b8 6d dc 6d xoris r28,r14,28088 + e1c: 04 40 48 24 dozi r2,r8,16388 __srcu_read_unlock(ssp, idx); - e20: ff 1a 9f 04 .long 0x49f1aff - e24: c4 72 c8 72 andi. r8,r22,29380 - e28: 0d 8d 00 40 bdnzfl lt,ffffffffffff9b34 - e2c: 45 24 1a 0c twi 0,r26,9285 + e20: 9f 04 c0 71 andi. r0,r14,1183 + e24: c8 71 09 8e lbzu r16,29128(r9) + e28: 00 0c ff ff .long 0xffff0c00 + e2c: ff ff 1a 9f stbu r24,-1(r26) if (ret == H_SUCCESS) - e30: ff ff ff ff fnmadd. f31,f31,f31,f31 - e34: 1a 9f 04 c8 lfd f0,-24806(r4) + e30: 04 c8 71 cc lfdu f3,-14332(r17) + e34: 71 0d 8d 00 .long 0x8d0d71 long ret = H_SUCCESS; - e38: 72 cc 72 01 .long 0x172cc72 - e3c: 58 04 90 74 andis. r16,r4,1112 + e38: 40 45 24 1a lxvp vs48,17728(r4) + e3c: 0c ff ff ff .long 0xffffff0c WARN_ON_ONCE(idx & ~0x1); - e40: b0 74 04 40 bdnzf 4*cr1+lt,82f0 + e40: ff 1a 9f 04 .long 0x49f1aff ret = H_PARAMETER; - e44: 47 24 9f 00 .long 0x9f2447 - ... + e44: cc 71 d4 71 andi. r20,r14,29132 + e48: 01 58 04 9c stbu r0,22529(r4) __srcu_read_unlock(ssp, idx); - e50: 00 00 02 00 .long 0x20000 - e54: 00 00 00 00 .long 0x0 - e58: 04 e8 64 88 lbz r3,-6140(r4) + e4c: 72 a4 72 09 tdi 11,r18,-23438 + e50: 8e 00 0c ff .long 0xff0c008e + e54: ff ff ff 1a .long 0x1affffff + e58: 9f 04 a4 72 andi. r4,r21,1183 long ret = H_SUCCESS; - e5c: 65 01 53 04 .long 0x4530165 - e60: 9c 65 d8 65 oris r24,r14,26012 - e64: 01 53 04 d0 stfs f0,21249(r4) - e68: 68 94 69 01 .long 0x1699468 - e6c: 53 04 e8 6a xori r8,r23,1107 -{ - e70: 90 6b 01 53 rlwimi r1,r24,13,14,8 - e74: 04 b4 6d ec dsub f3,f13,f22 - e78: 6d 01 53 04 .long 0x453016d + e5c: a8 72 0d 8d lbzu r8,29352(r13) + e60: 00 40 45 24 dozi r2,r5,16384 + e64: 1a 0c ff ff .long 0xffff0c1a + e68: ff ff 1a 9f stbu r24,-1(r26) + e6c: 04 a8 72 ac lhau r3,-22524(r18) +{ + e70: 72 01 58 04 .long 0x4580172 + e74: ac 72 b4 72 andi. r20,r21,29356 + e78: 09 8e 00 0c twi 0,r0,-29175 xa->xa_head = NULL; - e7c: d0 71 e4 71 andi. r4,r15,29136 + e7c: ff ff ff ff fnmadd. f31,f31,f31,f31 spin_lock_init(&xa->xa_lock); - e80: 01 53 04 ac lhau r0,21249(r4) + e80: 1a 9f 04 b4 sthu r0,-24806(r4) xa->xa_head = NULL; - e84: 72 cc 72 01 .long 0x172cc72 - e88: 53 04 90 74 andis. r16,r4,1107 + e84: 72 b8 72 0d twi 11,r18,-18318 + e88: 8d 00 40 45 .long 0x4540008d spin_lock_init(&xa->xa_lock); - e8c: b0 74 01 53 rlwimi r1,r24,14,18,24 - e90: 00 01 00 00 .long 0x100 + e8c: 24 1a 0c ff .long 0xff0c1a24 + e90: ff ff ff 1a .long 0x1affffff } - e94: 00 04 c4 66 oris r4,r22,1024 - e98: cb 66 01 53 rlwimi. r1,r24,12,27,5 - e9c: 04 cb 66 cc lfdu f3,-13564(r6) - ea0: 66 01 68 00 .long 0x680166 - ea4: 02 00 00 00 .long 0x2 -{ - ea8: 00 01 04 cc lfdu f0,256(r4) - eac: 66 dc 66 04 .long 0x466dc66 - eb0: 91 a0 7e 9f stbu r27,-24431(r30) - eb4: 04 dc 66 e3 psq_l f27,-1020(r6),1,5 - eb8: 66 01 56 04 .long 0x4560166 - ebc: e3 66 e8 66 oris r8,r23,26339 - ec0: 04 91 a0 7e .long 0x7ea09104 + e94: 9f 04 b8 72 andi. r24,r21,1183 + e98: bc 72 01 58 rlmi r1,r0,r14,10,30 + e9c: 04 80 74 a0 lhz r3,-32764(r20) + ea0: 74 04 40 47 .long 0x47400474 + ea4: 24 9f 00 00 .long 0x9f24 + ... +{ + eb0: 00 02 00 00 attn + eb4: 00 00 00 04 .long 0x4000000 + eb8: d8 64 f8 64 oris r24,r7,25816 + ebc: 01 53 04 8c lbzu r0,21249(r4) + ec0: 65 c8 65 01 .long 0x165c865 int lpid; - ec4: 9f 00 02 01 .long 0x102009f + ec4: 53 04 c0 68 xori r0,r6,1107 { - ec8: 04 cc 66 e8 ld r3,-13308(r6) - ecc: 66 01 66 00 .long 0x660166 - ed0: 02 01 04 cc lfdu f0,258(r4) + ec8: 84 69 01 53 rlwimi r1,r24,13,6,2 + ecc: 04 d8 6a 80 lwz r3,-10236(r10) + ed0: 6b 01 53 04 .long 0x453016b struct kvm_nested_guest *freelist = NULL; - ed4: 66 e8 66 01 .long 0x166e866 + ed4: a4 6d dc 6d xoris r28,r14,28068 { - ed8: 68 00 00 01 .long 0x1000068 - edc: 04 e8 66 e8 ld r3,-6140(r6) + ed8: 01 53 04 c0 lfs f0,21249(r4) + edc: 71 d4 71 01 .long 0x171d471 idr_for_each_entry(&kvm->arch.kvm_nested_guest_idr, gp, lpid) { - ee0: 66 01 53 00 .long 0x530166 + ee0: 53 04 9c 72 andi. r28,r20,1107 { - ee4: 01 09 00 00 .long 0x901 - ee8: 04 88 67 b0 sth r3,-30716(r7) - eec: 67 01 68 04 .long 0x4680167 - ef0: b0 74 c0 74 andis. r0,r6,29872 - ef4: 01 68 00 03 .long 0x3006801 - ef8: 09 00 00 04 .long 0x4000009 - efc: 88 67 b0 67 oris r16,r29,26504 + ee4: bc 72 01 53 rlwimi r1,r24,14,10,30 + ee8: 04 80 74 a0 lhz r3,-32764(r20) + eec: 74 01 53 00 .long 0x530174 + ef0: 01 00 00 00 .long 0x1 + ef4: 04 b4 66 bb lmw r27,-19452(r6) + ef8: 66 01 53 04 .long 0x4530166 + efc: bb 66 bc 66 oris r28,r21,26299 int lpid; - f00: 01 68 04 b0 sth r0,26625(r4) - f04: 74 c0 74 01 .long 0x174c074 - f08: 68 00 08 07 .long 0x7080068 + f00: 01 68 00 02 .long 0x2006801 + f04: 00 00 00 00 .long 0x0 + f08: 01 04 bc 66 oris r28,r21,1025 idr_for_each_entry(&kvm->arch.kvm_nested_guest_idr, gp, lpid) { - f0c: 00 00 04 88 lbz r0,0(r4) - f10: 67 b0 67 01 .long 0x167b067 + f0c: cc 66 04 91 stw r8,26316(r4) + f10: a0 7e 9f 04 .long 0x49f7ea0 idr_remove(&kvm->arch.kvm_nested_guest_idr, lpid); - f14: 68 04 b0 74 andis. r16,r5,1128 - f18: c0 74 01 68 xori r1,r0,29888 - ... + f14: cc 66 d3 66 oris r19,r22,26316 + f18: 01 56 04 d3 stfs f24,22017(r4) + f1c: 66 d8 66 04 .long 0x466d866 + f20: 91 a0 7e 9f stbu r27,-24431(r30) if (--gp->refcnt == 0) { - f24: 00 00 00 04 .long 0x4000000 - f28: 90 67 ac 67 oris r12,r29,26512 - f2c: 04 79 80 19 .long 0x19807904 - f30: 9f 04 ac 67 oris r12,r29,1183 - f34: ef 67 04 7d .long 0x7d0467ef + f24: 00 02 01 04 .long 0x4010200 + f28: bc 66 d8 66 oris r24,r22,26300 + f2c: 01 66 00 02 .long 0x2006601 + f30: 01 04 bc 66 oris r28,r21,1025 + f34: d8 66 01 68 xori r1,r0,26328 gp->next = freelist; - f38: 80 19 9f 04 .long 0x49f1980 - f3c: ec 6f 9c 70 andi. r28,r4,28652 + f38: 00 00 01 04 .long 0x4010000 + f3c: d8 66 d8 66 oris r24,r22,26328 idr_for_each_entry(&kvm->arch.kvm_nested_guest_idr, gp, lpid) { - f40: 04 7d 80 19 .long 0x19807d04 - f44: 9f 04 b0 73 andi. r16,r29,1183 - f48: bc 73 04 7d .long 0x7d0473bc - f4c: 80 19 9f 04 .long 0x49f1980 - f50: b0 74 c0 74 andis. r0,r6,29872 - f54: 04 79 80 19 .long 0x19807904 - f58: 9f 00 01 05 .long 0x501009f - f5c: 04 a4 67 b0 sth r3,-23548(r7) - f60: 67 01 68 00 .long 0x680167 + f40: 01 53 00 01 .long 0x1005301 + f44: 09 00 00 04 .long 0x4000009 + f48: f8 66 a0 67 oris r0,r29,26360 + f4c: 01 68 04 a0 lhz r0,26625(r4) + f50: 74 b0 74 01 .long 0x174b074 + f54: 68 00 03 09 tdgti r3,104 + f58: 00 00 04 f8 std r0,0(r4) + f5c: 66 a0 67 01 .long 0x167a066 + f60: 68 04 a0 74 andis. r0,r5,1128 idr_destroy(&kvm->arch.kvm_nested_guest_idr); - f64: 00 01 04 b4 sthu r0,256(r4) - f68: 67 c0 67 03 .long 0x367c067 - f6c: 54 93 08 00 .long 0x89354 + f64: b0 74 01 68 xori r1,r0,29872 + f68: 00 08 07 00 .long 0x70800 + f6c: 00 04 f8 66 oris r24,r23,1024 if (unlikely(ms->mmiowb_pending)) { - f70: 00 00 00 00 .long 0x0 + f70: a0 67 01 68 xori r1,r0,26528 struct mmiowb_state *ms = __mmiowb_state(); - f74: 00 00 04 8c lbzu r0,0(r4) + f74: 04 a0 74 b0 sth r3,-24572(r20) if (unlikely(ms->mmiowb_pending)) { - f78: 68 c4 68 01 .long 0x168c468 - f7c: 59 04 f4 73 andi. r20,r31,1113 + f78: 74 01 68 00 .long 0x680174 + ... ms->nesting_count--; - f80: 90 74 01 59 rlmi r1,r8,r14,18,8 - f84: 04 c0 74 d4 stfsu f3,-16380(r20) - f88: 74 01 59 00 .long 0x590174 - f8c: 02 0b 02 00 .long 0x20b02 - f90: 00 00 00 00 .long 0x0 - f94: 00 00 04 a8 lha r0,0(r4) + f84: 00 00 04 80 lwz r0,0(r4) + f88: 67 9c 67 04 .long 0x4679c67 + f8c: 79 80 19 9f stbu r24,-32647(r25) + f90: 04 9c 67 df stfdu f27,-25596(r7) + f94: 67 04 7d 80 lwz r3,1127(r29) while ((gp = freelist) != NULL) { - f98: 6b b4 6c 01 .long 0x16cb46b - f9c: 6f 04 b0 6d xoris r16,r13,1135 + f98: 19 9f 04 dc stfdu f0,-24807(r4) + f9c: 6f 8c 70 04 .long 0x4708c6f freelist = gp->next; - fa0: b4 6d 01 6f xoris r1,r24,28084 - fa4: 04 8c 72 ac lhau r3,-29692(r18) + fa0: 7d 80 19 9f stbu r24,-32643(r25) + fa4: 04 a0 73 ac lhau r3,-24572(r19) kvmhv_release_nested(gp); - fa8: 72 01 6f 04 .long 0x46f0172 + fa8: 73 04 7d 80 lwz r3,1139(r29) while ((gp = freelist) != NULL) { - fac: bc 73 c8 73 andi. r8,r30,29628 - fb0: 01 6f 04 e8 ldu r0,28416(r4) + fac: 19 9f 04 a0 lhz r0,-24807(r4) + fb0: 74 b0 74 04 .long 0x474b074 srcu_idx = srcu_read_lock(&kvm->srcu); - fb4: 74 80 75 01 .long 0x1758074 + fb4: 79 80 19 9f stbu r24,-32647(r25) kvm_for_each_memslot(memslot, bkt, kvm_memslots(kvm)) - fb8: 6f 00 00 0b tdnei r0,111 - ... + fb8: 00 01 05 04 .long 0x4050100 + fbc: 94 67 a0 67 oris r0,r29,26516 retval = __srcu_read_lock(ssp); - fc4: 04 a8 6b b4 sthu r3,-22524(r11) - fc8: 6c 09 8d 00 .long 0x8d096c - fcc: 0c ff ff ff .long 0xffffff0c - fd0: ff 1a 9f 04 .long 0x49f1aff + fc0: 01 68 00 00 .long 0x6801 + fc4: 01 04 a4 67 oris r4,r29,1025 + fc8: b0 67 03 54 rlwinm r3,r0,12,30,24 + fcc: 93 08 00 00 .long 0x893 + fd0: 00 00 00 00 .long 0x0 return srcu_dereference_check(kvm->memslots[as_id], &kvm->srcu, - fd4: b0 6d b4 6d xoris r20,r13,28080 - fd8: 09 8d 00 0c twi 0,r0,-29431 - fdc: ff ff ff ff fnmadd. f31,f31,f31,f31 - fe0: 1a 9f 04 8c lbzu r0,-24806(r4) - fe4: 72 ac 72 09 tdi 11,r18,-21390 - fe8: 8d 00 0c ff .long 0xff0c008d - fec: ff ff ff 1a .long 0x1affffff - ff0: 9f 04 bc 73 andi. r28,r29,1183 - ff4: c8 73 09 8d lbzu r8,29640(r9) - ff8: 00 0c ff ff .long 0xffff0c00 - ffc: ff ff 1a 9f stbu r24,-1(r26) - 1000: 04 e8 74 80 lwz r3,-6140(r20) - 1004: 75 09 8d 00 .long 0x8d0975 + fd4: 00 04 fc 67 oris r28,r31,1024 + fd8: b4 68 01 59 rlmi r1,r8,r13,2,26 + fdc: 04 e4 73 80 lwz r3,-7164(r19) + fe0: 74 01 59 04 .long 0x4590174 + fe4: b0 74 c4 74 andis. r4,r6,29872 + fe8: 01 59 00 02 .long 0x2005901 + fec: 0b 02 00 00 .long 0x20b + ff0: 00 00 00 00 .long 0x0 + ff4: 00 04 98 6b xori r24,r28,1024 + ff8: a4 6c 01 6f xoris r1,r24,27812 + ffc: 04 a0 6d a4 lhzu r3,-24572(r13) + 1000: 6d 01 6f 04 .long 0x46f016d + 1004: fc 71 9c 72 andi. r28,r20,29180 for (page = 0; page < free->npages; page++) { - 1008: 0c ff ff ff .long 0xffffff0c + 1008: 01 6f 04 ac lhau r0,28417(r4) kvm_for_each_memslot(memslot, bkt, kvm_memslots(kvm)) - 100c: ff 1a 9f 00 .long 0x9f1aff - 1010: 00 0b 00 00 .long 0xb00 - 1014: 00 00 00 00 .long 0x0 - 1018: 00 00 04 a8 lha r0,0(r4) - 101c: 6b b4 6c 01 .long 0x16cb46b + 100c: 73 b8 73 01 .long 0x173b873 + 1010: 6f 04 d8 74 andis. r24,r6,1135 + 1014: f0 74 01 6f xoris r1,r24,29936 + 1018: 00 00 0b 00 .long 0xb0000 + 101c: 00 00 00 00 .long 0x0 kfree(cursor); - 1020: 6b 04 b0 6d xoris r16,r13,1131 - 1024: b4 6d 01 6b xori r1,r24,28084 - 1028: 04 8c 72 a4 lhzu r3,-29692(r18) + 1020: 00 00 00 04 .long 0x4000000 + 1024: 98 6b a4 6c xoris r4,r5,27544 + 1028: 09 8d 00 0c twi 0,r0,-29431 for (page = 0; page < free->npages; page++) { - 102c: 72 01 6b 04 .long 0x46b0172 - 1030: bc 73 c8 73 andi. r8,r30,29628 - 1034: 01 6b 04 e8 ldu r0,27392(r4) - 1038: 74 80 75 01 .long 0x1758074 + 102c: ff ff ff ff fnmadd. f31,f31,f31,f31 + 1030: 1a 9f 04 a0 lhz r0,-24806(r4) + 1034: 6d a4 6d 09 tdi 11,r13,-23443 + 1038: 8d 00 0c ff .long 0xff0c008d unsigned long rmap, *rmapp = &free->arch.rmap[page]; - 103c: 6b 00 00 0b tdnei r0,107 - ... - 1048: 04 a8 6b b4 sthu r3,-22524(r11) - 104c: 6c 01 6a 04 .long 0x46a016c - 1050: b0 6d b4 6d xoris r20,r13,28080 - 1054: 01 6a 04 8c lbzu r0,27137(r4) - 1058: 72 ac 72 01 .long 0x172ac72 + 103c: ff ff ff 1a .long 0x1affffff + 1040: 9f 04 fc 71 andi. r28,r15,1183 + 1044: 9c 72 09 8d lbzu r8,29340(r9) + 1048: 00 0c ff ff .long 0xffff0c00 + 104c: ff ff 1a 9f stbu r24,-1(r26) + 1050: 04 ac 73 b8 lm r3,-21500(r19) + 1054: 73 09 8d 00 .long 0x8d0973 + 1058: 0c ff ff ff .long 0xffffff0c for_each_nest_rmap_safe(cursor, entry, &rmap) - 105c: 6a 04 bc 73 andi. r28,r29,1130 - 1060: c8 73 01 6a xori r1,r16,29640 - 1064: 04 e8 74 80 lwz r3,-6140(r20) - 1068: 75 01 6a 00 .long 0x6a0175 - 106c: 03 0b 03 00 .long 0x30b03 - 1070: 00 00 00 00 .long 0x0 - 1074: 00 00 04 a8 lha r0,0(r4) - 1078: 6b b4 6c 01 .long 0x16cb46b - 107c: 6e 04 b0 6d xoris r16,r13,1134 - 1080: b4 6d 01 6e xoris r1,r16,28084 - 1084: 04 8c 72 ac lhau r3,-29692(r18) + 105c: ff 1a 9f 04 .long 0x49f1aff + 1060: d8 74 f0 74 andis. r16,r7,29912 + 1064: 09 8d 00 0c twi 0,r0,-29431 + 1068: ff ff ff ff fnmadd. f31,f31,f31,f31 + 106c: 1a 9f 00 00 .long 0x9f1a + 1070: 0b 00 00 00 .long 0xb + 1074: 00 00 00 00 .long 0x0 + 1078: 00 04 98 6b xori r24,r28,1024 + 107c: a4 6c 01 6b xori r1,r24,27812 + 1080: 04 a0 6d a4 lhzu r3,-24572(r13) + 1084: 6d 01 6b 04 .long 0x46b016d kfree(cursor); - 1088: 72 01 6e 04 .long 0x46e0172 - 108c: bc 73 c8 73 andi. r8,r30,29628 + 1088: fc 71 94 72 andi. r20,r20,29180 + 108c: 01 6b 04 ac lhau r0,27393(r4) for_each_nest_rmap_safe(cursor, entry, &rmap) - 1090: 01 6e 04 e8 ldu r0,28160(r4) - 1094: 74 80 75 01 .long 0x1758074 - 1098: 6e 00 04 0b tdnei r4,110 - 109c: 04 00 00 00 .long 0x4 + 1090: 73 b8 73 01 .long 0x173b873 + 1094: 6b 04 d8 74 andis. r24,r6,1131 + 1098: f0 74 01 6b xori r1,r24,29936 + 109c: 00 00 0b 00 .long 0xb0000 10a0: 00 00 00 00 .long 0x0 kvm_for_each_memslot(memslot, bkt, kvm_memslots(kvm)) - 10a4: 04 a8 6b b4 sthu r3,-22524(r11) - 10a8: 6c 0c 8d 00 .long 0x8d0c6c - 10ac: 40 45 24 1a lxvp vs48,17728(r4) - 10b0: 08 20 24 30 addic r1,r4,8200 - 10b4: 2e 9f 04 b0 sth r0,-24786(r4) - 10b8: 6d b4 6d 0c twi 3,r13,-19347 - 10bc: 8d 00 40 45 .long 0x4540008d - 10c0: 24 1a 08 20 subfic r0,r8,6692 + 10a4: 00 00 00 04 .long 0x4000000 + 10a8: 98 6b a4 6c xoris r4,r5,27544 + 10ac: 01 6a 04 a0 lhz r0,27137(r4) + 10b0: 6d a4 6d 01 .long 0x16da46d + 10b4: 6a 04 fc 71 andi. r28,r15,1130 + 10b8: 9c 72 01 6a xori r1,r16,29340 + 10bc: 04 ac 73 b8 lm r3,-21500(r19) + 10c0: 73 01 6a 04 .long 0x46a0173 WARN_ON_ONCE(idx & ~0x1); - 10c4: 24 30 2e 9f stbu r25,12324(r14) - 10c8: 04 8c 72 ac lhau r3,-29692(r18) + 10c4: d8 74 f0 74 andis. r16,r7,29912 + 10c8: 01 6a 00 03 .long 0x3006a01 __srcu_read_unlock(ssp, idx); - 10cc: 72 0c 8d 00 .long 0x8d0c72 - 10d0: 40 45 24 1a lxvp vs48,17728(r4) - 10d4: 08 20 24 30 addic r1,r4,8200 - 10d8: 2e 9f 04 bc stmw r0,-24786(r4) -} - 10dc: 73 c8 73 0c twi 3,r19,-14221 - 10e0: 8d 00 40 45 .long 0x4540008d - 10e4: 24 1a 08 20 subfic r0,r8,6692 - 10e8: 24 30 2e 9f stbu r25,12324(r14) - 10ec: 04 e8 74 80 lwz r3,-6140(r20) - 10f0: 75 0c 8d 00 .long 0x8d0c75 - 10f4: 40 45 24 1a lxvp vs48,17728(r4) - 10f8: 08 20 24 30 addic r1,r4,8200 - 10fc: 2e 9f 00 07 .long 0x7009f2e - 1100: 08 08 00 07 .long 0x7000808 - 1104: 00 04 a8 6b xori r8,r29,1024 - 1108: a8 6b 04 0a tdlti r4,27560 - 110c: 00 01 9f 04 .long 0x49f0100 - 1110: a8 6b ac 6b xori r12,r29,27560 - 1114: 01 59 04 b0 sth r0,22785(r4) - 1118: 6d b4 6d 04 .long 0x46db46d - 111c: 0a 00 01 9f stbu r24,10(r1) + 10cc: 0b 03 00 00 .long 0x30b + 10d0: 00 00 00 00 .long 0x0 + 10d4: 00 04 98 6b xori r24,r28,1024 + 10d8: a4 6c 01 6e xoris r1,r16,27812 +} + 10dc: 04 a0 6d a4 lhzu r3,-24572(r13) + 10e0: 6d 01 6e 04 .long 0x46e016d + 10e4: fc 71 9c 72 andi. r28,r20,29180 + 10e8: 01 6e 04 ac lhau r0,28161(r4) + 10ec: 73 b8 73 01 .long 0x173b873 + 10f0: 6e 04 d8 74 andis. r24,r6,1134 + 10f4: f0 74 01 6e xoris r1,r16,29936 + 10f8: 00 04 0b 04 .long 0x40b0400 + 10fc: 00 00 00 00 .long 0x0 + 1100: 00 00 00 04 .long 0x4000000 + 1104: 98 6b a4 6c xoris r4,r5,27544 + 1108: 0c 8d 00 40 bdnzf lt,ffffffffffff9e14 + 110c: 45 24 1a 08 tdi 0,r26,9285 + 1110: 20 24 30 2e cmpdi cr4,r16,9248 + 1114: 9f 04 a0 6d xoris r0,r13,1183 + 1118: a4 6d 0c 8d lbzu r8,28068(r12) + 111c: 00 40 45 24 dozi r2,r5,16384 kvm_for_each_memslot(memslot, bkt, kvm_memslots(kvm)) - 1120: 00 00 00 00 .long 0x0 + 1120: 1a 08 20 24 dozi r1,r0,2074 ms->mmiowb_pending = 0; - 1124: 00 00 0b 00 .long 0xb0000 + 1124: 30 2e 9f 04 .long 0x49f2e30 mmiowb(); - 1128: 00 00 00 04 .long 0x4000000 - 112c: dc 6b f8 6b xori r24,r31,27612 + 1128: fc 71 9c 72 andi. r28,r20,29180 + 112c: 0c 8d 00 40 bdnzf lt,ffffffffffff9e38 WARN_ON_ONCE(idx & ~0x1); - 1130: 01 53 04 80 lwz r0,21249(r4) + 1130: 45 24 1a 08 tdi 0,r26,9285 } - 1134: 6c 8c 6c 01 .long 0x16c8c6c - 1138: 53 04 8c 6c xoris r12,r4,1107 - 113c: b4 6c 01 58 rlmi r1,r0,r13,18,26 - 1140: 04 bc 73 c8 lfd f3,-17404(r19) - 1144: 73 01 53 04 .long 0x4530173 -{ - 1148: e8 74 80 75 andis. r0,r12,29928 - 114c: 01 58 00 01 .long 0x1005801 - 1150: 00 04 b0 6b xori r16,r29,1024 - 1154: c0 6b 01 6e xoris r1,r16,27584 - 1158: 00 01 09 00 .long 0x90100 - 115c: 00 04 8c 6c xoris r12,r4,1024 - 1160: b4 6c 01 6e xoris r1,r16,27828 - 1164: 04 e8 74 80 lwz r3,-6140(r20) + 1134: 20 24 30 2e cmpdi cr4,r16,9248 + 1138: 9f 04 ac 73 andi. r12,r29,1183 + 113c: b8 73 0c 8d lbzu r8,29624(r12) + 1140: 00 40 45 24 dozi r2,r5,16384 + 1144: 1a 08 20 24 dozi r1,r0,2074 +{ + 1148: 30 2e 9f 04 .long 0x49f2e30 + 114c: d8 74 f0 74 andis. r16,r7,29912 + 1150: 0c 8d 00 40 bdnzf lt,ffffffffffff9e5c + 1154: 45 24 1a 08 tdi 0,r26,9285 + 1158: 20 24 30 2e cmpdi cr4,r16,9248 + 115c: 9f 00 07 08 tdi 0,r7,159 + 1160: 08 00 07 00 .long 0x70008 + 1164: 04 98 6b 98 stb r3,-26620(r11) if (l1_lpid >= (1ul << ((kvm->arch.l1_ptcr & PRTS_MASK) + 12 - 4))) - 1168: 75 01 6e 00 .long 0x6e0175 - 116c: 03 09 00 00 .long 0x903 - 1170: 04 8c 6c b4 sthu r3,-29692(r12) - 1174: 6c 01 6e 04 .long 0x46e016c - 1178: e8 74 80 75 andis. r0,r12,29928 - 117c: 01 6e 00 08 tdi 0,r0,28161 - 1180: 07 00 00 04 .long 0x4000007 - 1184: 8c 6c b4 6c xoris r20,r5,27788 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 1188: 01 6e 04 e8 ldu r0,28160(r4) - 118c: 74 80 75 01 .long 0x1758074 - 1190: 6e 00 00 00 .long 0x6e - 1194: 00 00 00 00 .long 0x0 - 1198: 04 94 6c e0 psq_l f3,1028(r12),1,1 - 119c: 6c 04 7a 80 lwz r3,1132(r26) - 11a0: 19 9f 04 b4 sthu r0,-24807(r4) - 11a4: 6f d4 6f 04 .long 0x46fd46f - 11a8: 7a 80 19 9f stbu r24,-32646(r25) - 11ac: 04 e8 74 80 lwz r3,-6140(r20) - 11b0: 75 04 7a 80 lwz r3,1141(r26) - 11b4: 19 9f 00 01 .long 0x1009f19 - 11b8: 05 04 a8 6c xoris r8,r5,1029 + 1168: 6b 04 0a 00 .long 0xa046b + 116c: 01 9f 04 98 stb r0,-24831(r4) + 1170: 6b 9c 6b 01 .long 0x16b9c6b + 1174: 59 04 a0 6d xoris r0,r13,1113 + 1178: a4 6d 04 0a tdlti r4,28068 + 117c: 00 01 9f 00 .long 0x9f0100 + 1180: 00 00 00 00 .long 0x0 + 1184: 00 0b 00 00 .long 0xb00 + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); + 1188: 00 00 04 cc lfdu f0,0(r4) + 118c: 6b e8 6b 01 .long 0x16be86b + 1190: 53 04 f0 6b xori r16,r31,1107 + 1194: fc 6b 01 53 rlwimi r1,r24,13,15,30 + 1198: 04 fc 6b a4 lhzu r3,-1020(r11) + 119c: 6c 01 58 04 .long 0x458016c + 11a0: ac 73 b8 73 andi. r24,r29,29612 + 11a4: 01 53 04 d8 stfd f0,21249(r4) + 11a8: 74 f0 74 01 .long 0x174f074 + 11ac: 58 00 01 00 .long 0x10058 + 11b0: 04 a0 6b b0 sth r3,-24572(r11) + 11b4: 6b 01 6e 00 .long 0x6e016b + 11b8: 01 09 00 00 .long 0x901 if (gp) - 11bc: b4 6c 01 6e xoris r1,r16,27828 - 11c0: 00 00 00 01 .long 0x1000000 + 11bc: 04 fc 6b a4 lhzu r3,-1020(r11) + 11c0: 6c 01 6e 04 .long 0x46e016c ++gp->refcnt; - 11c4: 02 00 00 04 .long 0x4000002 - 11c8: ec 6d 80 6e xoris r0,r20,28140 - 11cc: 03 91 a0 7e .long 0x7ea09103 + 11c4: d8 74 f0 74 andis. r16,r7,29912 + 11c8: 01 6e 00 03 .long 0x3006e01 + 11cc: 09 00 00 04 .long 0x4000009 if (unlikely(ms->mmiowb_pending)) { - 11d0: 04 a8 71 d0 stfs f3,-22524(r17) + 11d0: fc 6b a4 6c xoris r4,r5,27644 struct mmiowb_state *ms = __mmiowb_state(); - 11d4: 71 03 91 a0 lhz r4,881(r17) + 11d4: 01 6e 04 d8 stfd f0,28161(r4) if (unlikely(ms->mmiowb_pending)) { - 11d8: 7e 04 d4 74 andis. r20,r6,1150 - 11dc: e8 74 03 91 stw r8,29928(r3) + 11d8: 74 f0 74 01 .long 0x174f074 + 11dc: 6e 00 08 07 .long 0x708006e ms->nesting_count--; - 11e0: a0 7e 00 02 .long 0x2007ea0 - 11e4: 02 04 cc 71 andi. r12,r14,1026 - 11e8: d0 71 02 31 addic r8,r2,29136 - 11ec: 9f 00 01 00 .long 0x1009f - 11f0: 04 a0 6e b4 sthu r3,-24572(r14) - 11f4: 6e 04 0a c0 lfs f0,1134(r10) + 11e0: 00 00 04 fc fcmpu cr0,f4,f0 + 11e4: 6b a4 6c 01 .long 0x16ca46b + 11e8: 6e 04 d8 74 andis. r24,r6,1134 + 11ec: f0 74 01 6e xoris r1,r16,29936 + 11f0: 00 00 00 00 .long 0x0 + 11f4: 00 00 00 04 .long 0x4000000 if (gp || !create) - 11f8: 0c 9f 00 01 .long 0x1009f0c - 11fc: 00 04 a0 6e xoris r0,r21,1024 - 1200: b4 6e 02 40 bdnzf eq,80b4 - 1204: 9f 00 03 00 .long 0x3009f - 1208: 04 a0 6e b4 sthu r3,-24572(r14) - 120c: 6e 04 0a c0 lfs f0,1134(r10) - 1210: 0d 9f 00 03 .long 0x3009f0d -} - 1214: 00 04 a0 6e xoris r0,r21,1024 - 1218: b4 6e 02 40 bdnzf eq,80cc - 121c: 9f 00 0f 00 .long 0xf009f - 1220: 04 a0 6e ac lhau r3,-24572(r14) - 1224: 6f 02 34 9f stbu r25,623(r20) - 1228: 00 08 0f 04 .long 0x40f0800 - 122c: a0 6e a0 6e xoris r0,r21,28320 + 11f8: 84 6c d0 6c xoris r16,r6,27780 + 11fc: 04 7a 80 19 .long 0x19807a04 + 1200: 9f 04 a4 6f xoris r4,r29,1183 + 1204: c4 6f 04 7a rldicr r4,r16,13,31 + 1208: 80 19 9f 04 .long 0x49f1980 + 120c: d8 74 f0 74 andis. r16,r7,29912 + 1210: 04 7a 80 19 .long 0x19807a04 +} + 1214: 9f 00 01 05 .long 0x501009f + 1218: 04 98 6c a4 lhzu r3,-26620(r12) + 121c: 6c 01 6e 00 .long 0x6e016c + 1220: 00 00 01 02 .long 0x2010000 + 1224: 00 00 04 dc stfdu f0,0(r4) + 1228: 6d f0 6d 03 .long 0x36df06d + 122c: 91 a0 7e 04 .long 0x47ea091 if (gp || !create) - 1230: 02 31 9f 00 .long 0x9f3102 - 1234: 08 0f 04 a0 lhz r0,3848(r4) - 1238: 6e a0 6e 02 .long 0x26ea06e - 123c: 40 9f 00 02 .long 0x2009f40 - 1240: 00 00 00 04 .long 0x4000000 - 1244: f4 72 f8 72 andi. r24,r23,29428 - 1248: 06 73 00 7a rldicr r0,r16,46,12 - 124c: 00 1c 9f 04 .long 0x49f1c00 + 1230: 98 71 c0 71 andi. r0,r14,29080 + 1234: 03 91 a0 7e .long 0x7ea09103 + 1238: 04 c4 74 d8 stfd f3,-15356(r20) + 123c: 74 03 91 a0 lhz r4,884(r17) + 1240: 7e 00 02 02 .long 0x202007e + 1244: 04 bc 71 c0 lfs f3,-17404(r17) + 1248: 71 02 31 9f stbu r25,625(r17) + 124c: 00 01 00 04 .long 0x4000100 return NULL; - 1250: f8 72 80 73 andi. r0,r28,29432 - 1254: 01 5a 00 03 .long 0x3005a01 - 1258: 00 00 00 00 .long 0x0 - 125c: 00 04 cc 72 andi. r12,r22,1024 + 1250: 90 6e a4 6e xoris r4,r21,28304 + 1254: 04 0a c0 0c twllei r0,2564 + 1258: 9f 00 01 00 .long 0x1009f + 125c: 04 90 6e a4 lhzu r3,-28668(r14) return kmalloc_trace( - 1260: e4 72 02 40 bdnzf eq,8544 - 1264: 9f 04 e4 72 andi. r4,r23,1183 - 1268: b0 73 01 58 rlmi r1,r0,r14,14,24 - 126c: 04 d8 73 f4 psq_stu f3,-2044(r19),1,5 - 1270: 73 02 40 9f .long 0x9f400273 - ... - if (unlikely(!gp)) - 1280: 00 04 e8 5d rlwnm r8,r15,r0,16,0 - 1284: c4 5e 01 53 rlwimi r1,r24,11,27,2 + 1260: 6e 02 40 9f .long 0x9f40026e + 1264: 00 03 00 04 .long 0x4000300 + 1268: 90 6e a4 6e xoris r4,r21,28304 + 126c: 04 0a c0 0d twi 14,r0,2564 + 1270: 9f 00 03 00 .long 0x3009f + 1274: 04 90 6e a4 lhzu r3,-28668(r14) + 1278: 6e 02 40 9f .long 0x9f40026e + if (!gp) + 127c: 00 0f 00 04 .long 0x4000f00 + 1280: 90 6e 9c 6f xoris r28,r28,28304 + 1284: 02 34 9f 00 .long 0x9f3402 mutex_init(&gp->tlb_lock); - 1288: 04 c4 5e 9c stbu r2,-15356(r30) - 128c: 5f 01 6d 04 .long 0x46d015f + 1288: 08 0f 04 90 stw r0,3848(r4) + 128c: 6e 90 6e 02 .long 0x26e906e gp->l1_host = kvm; - 1290: 9c 5f ac 5f rlwnm r12,r29,r11,30,14 + 1290: 31 9f 00 08 tdi 0,r0,-24783 gp->l1_lpid = lpid; - 1294: 04 a3 01 53 rlwimi r1,r24,20,12,2 + 1294: 0f 04 90 6e xoris r16,r20,1039 mutex_init(&gp->tlb_lock); - 1298: 9f 04 ac 5f rlwnm. r12,r29,r0,18,15 - 129c: a0 61 01 6d xoris r1,r8,24992 - 12a0: 04 a0 61 b0 sth r3,-24572(r1) - 12a4: 61 04 a3 01 .long 0x1a30461 - 12a8: 53 9f 04 b0 sth r0,-24749(r4) - 12ac: 61 f0 62 01 .long 0x162f061 - 12b0: 6d 00 00 00 .long 0x6d + 1298: 90 6e 02 40 bdnzf eq,8128 + 129c: 9f 00 02 00 .long 0x2009f + 12a0: 00 00 04 e4 psq_lu f0,0(r4),0,0 + 12a4: 72 e8 72 06 .long 0x672e872 + 12a8: 73 00 7a 00 .long 0x7a0073 + 12ac: 1c 9f 04 e8 ld r0,-24804(r4) + 12b0: 72 f0 72 01 .long 0x172f072 return (pgd_t *)__get_free_page(pgtable_gfp_flags(mm, PGALLOC_GFP)); - 12b4: 00 00 04 e8 ld r0,0(r4) - 12b8: 5d b0 5e 01 .long 0x15eb05d - 12bc: 54 04 b0 5e rlwnm r16,r21,r0,17,10 - 12c0: f0 62 04 a3 lhz r24,25328(r4) - 12c4: 01 54 9f 00 .long 0x9f5401 + 12b4: 5a 00 03 00 .long 0x3005a + 12b8: 00 00 00 00 .long 0x0 + 12bc: 04 bc 72 d4 stfsu f3,-17404(r18) + 12c0: 72 02 40 9f .long 0x9f400272 + 12c4: 04 d4 72 a0 lhz r3,-11260(r18) + if (!gp->shadow_pgtable) + 12c8: 73 01 58 04 .long 0x4580173 + gp->shadow_pgtable = pgd_alloc(kvm->mm); + 12cc: c8 73 e4 73 andi. r4,r31,29640 + if (!gp->shadow_pgtable) + 12d0: 02 40 9f 00 .long 0x9f4002 ... - shadow_lpid = kvmppc_alloc_lpid(); - 12d4: 00 00 04 e8 ld r0,0(r4) - 12d8: 5d cf 5e 01 .long 0x15ecf5d if (shadow_lpid < 0) - 12dc: 55 04 cf 5e rlwnm. r15,r22,r0,17,10 - 12e0: f8 5e 01 6f xoris r1,r24,24312 + 12e0: 04 d8 5d b4 sthu r2,-10236(r29) gp->radix = 1; - 12e4: 04 f8 5e b0 sth r2,-2044(r30) + 12e4: 5e 01 53 04 .long 0x453015e memset(gp->prev_cpu, -1, sizeof(gp->prev_cpu)); - 12e8: 61 04 a3 01 .long 0x1a30461 - 12ec: 55 9f 04 b0 sth r0,-24747(r4) - 12f0: 61 c4 61 01 .long 0x161c461 + 12e8: b4 5e 8c 5f rlwnm r12,r28,r11,26,26 + 12ec: 01 6d 04 8c lbzu r0,27905(r4) + 12f0: 5f 9c 5f 04 .long 0x45f9c5f gp->shadow_lpid = shadow_lpid; - 12f4: 6f 04 c4 61 ori r4,r14,1135 + 12f4: a3 01 53 9f stbu r26,419(r19) gp->radix = 1; - 12f8: e4 61 04 a3 lhz r24,25060(r4) + 12f8: 04 9c 5f 90 stw r2,-25596(r31) memset(gp->prev_cpu, -1, sizeof(gp->prev_cpu)); - 12fc: 01 55 9f 04 .long 0x49f5501 - 1300: e4 61 84 62 ori r4,r20,25060 + 12fc: 61 01 6d 04 .long 0x46d0161 + 1300: 90 61 a0 61 ori r0,r13,24976 if (idr_alloc(&kvm->arch.kvm_nested_guest_idr, - 1304: 01 6f 04 84 lwzu r0,28417(r4) - 1308: 62 f0 62 04 .long 0x462f062 - 130c: a3 01 55 9f stbu r26,419(r21) - ... - 131c: 00 04 e8 5d rlwnm r8,r15,r0,16,0 - 1320: cf 5e 01 56 rlwinm. r1,r16,11,27,7 - 1324: 04 cf 5e 90 stw r2,-12540(r30) - 1328: 5f 01 6a 04 .long 0x46a015f - kvmhv_release_nested(newgp); - 132c: 90 5f ac 5f rlwnm r12,r29,r11,30,8 - 1330: 04 a3 01 56 rlwinm r1,r16,20,12,2 - return NULL; - 1334: 9f 04 ac 5f rlwnm. r12,r29,r0,18,15 - 1338: 94 61 01 6a xori r1,r16,24980 - 133c: 04 94 61 b0 sth r3,-27644(r1) - 1340: 61 04 a3 01 .long 0x1a30461 - 1344: 56 9f 04 b0 sth r0,-24746(r4) - 1348: 61 f0 62 01 .long 0x162f061 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 134c: 6a 00 00 00 .long 0x6a + 1304: 04 a3 01 53 rlwimi r1,r24,20,12,2 + 1308: 9f 04 a0 61 ori r0,r13,1183 + 130c: e0 62 01 6d xoris r1,r8,25312 + 1310: 00 00 00 00 .long 0x0 + 1314: 00 04 d8 5d rlwnm r24,r14,r0,16,0 + 1318: a0 5e 01 54 rlwinm r1,r0,11,26,16 + 131c: 04 a0 5e e0 lq r2,-24576(r30) + 1320: 62 04 a3 01 .long 0x1a30462 + 1324: 54 9f 00 00 .long 0x9f54 ... - 1358: 00 00 04 e8 ld r0,0(r4) + return NULL; + 1334: 00 04 d8 5d rlwnm r24,r14,r0,16,0 + 1338: bf 5e 01 55 rlwinm. r1,r8,11,26,31 + 133c: 04 bf 5e e8 ld r2,-16636(r30) + 1340: 5e 01 6f 04 .long 0x46f015e + 1344: e8 5e a0 61 ori r0,r13,24296 + 1348: 04 a3 01 55 rlwinm r1,r8,20,12,2 + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); + 134c: 9f 04 a0 61 ori r0,r13,1183 + 1350: b4 61 01 6f xoris r1,r24,25012 + 1354: 04 b4 61 d4 stfsu f3,-19452(r1) + 1358: 61 04 a3 01 .long 0x1a30461 if (!gp) { - 135c: 5d cf 5e 01 .long 0x15ecf5d - 1360: 57 04 cf 5e rlwnm. r15,r22,r0,17,11 + 135c: 55 9f 04 d4 stfsu f0,-24747(r4) + 1360: 61 f4 61 01 .long 0x161f461 ++gp->refcnt; - 1364: 94 5f 01 6b xori r1,r24,24468 - 1368: 04 94 5f ac lhau r2,-27644(r31) + 1364: 6f 04 f4 61 ori r20,r15,1135 + 1368: e0 62 04 a3 lhz r24,25312(r4) struct mmiowb_state *ms = __mmiowb_state(); - 136c: 5f 04 a3 01 .long 0x1a3045f - 1370: 57 9f 04 ac lhau r0,-24745(r4) + 136c: 01 55 9f 00 .long 0x9f5501 + ... if (unlikely(ms->mmiowb_pending)) { - 1374: 5f 98 61 01 .long 0x161985f - 1378: 6b 04 98 61 ori r24,r12,1131 - 137c: b0 61 04 a3 lhz r24,25008(r4) + 137c: 04 d8 5d bf stmw r26,-10236(r29) ms->nesting_count--; - 1380: 01 57 9f 04 .long 0x49f5701 - 1384: b0 61 f0 62 ori r16,r23,25008 - 1388: 01 6b 00 00 .long 0x6b01 - ... - 1394: 00 00 00 04 .long 0x4000000 + 1380: 5e 01 56 04 .long 0x456015e + 1384: bf 5e 80 5f rlwnm. r0,r28,r11,26,31 + 1388: 01 6a 04 80 lwz r0,27137(r4) + 138c: 5f 9c 5f 04 .long 0x45f9c5f + 1390: a3 01 56 9f stbu r26,419(r22) + 1394: 04 9c 5f 84 lwzu r2,-25596(r31) if (newgp) - 1398: e8 5d cf 5e rlwnm r15,r22,r11,23,20 + 1398: 61 01 6a 04 .long 0x46a0161 kvmhv_release_nested(newgp); - 139c: 01 58 04 cf lfdu f24,22529(r4) - 13a0: 5e 98 5f 01 .long 0x15f985e - 13a4: 6c 04 98 5f rlwnm r24,r28,r0,17,22 - 13a8: ac 5f 04 a3 lhz r24,24492(r4) - 13ac: 01 58 9f 04 .long 0x49f5801 - ms->mmiowb_pending = 0; - 13b0: ac 5f 9c 61 ori r28,r12,24492 - 13b4: 01 6c 04 9c stbu r0,27649(r4) - mmiowb(); - 13b8: 61 b0 61 04 .long 0x461b061 - 13bc: a3 01 58 9f stbu r26,419(r24) + 139c: 84 61 a0 61 ori r0,r13,24964 + 13a0: 04 a3 01 56 rlwinm r1,r16,20,12,2 + 13a4: 9f 04 a0 61 ori r0,r13,1183 + 13a8: e0 62 01 6a xori r1,r16,25312 + ... pgd = kmem_cache_alloc(PGT_CACHE(PGD_INDEX_SIZE), - 13c0: 04 b0 61 f0 xsaddsp vs3,vs33,vs22 - 13c4: 62 01 6c 00 .long 0x6c0162 - 13c8: 00 00 00 00 .long 0x0 - 13cc: 04 ac 5e b0 sth r2,-21500(r30) - 13d0: 5e 01 54 04 .long 0x454015e - 13d4: b0 5e d0 5e rlwnm r16,r22,r11,26,24 - 13d8: 04 a3 01 54 rlwinm r1,r0,20,12,2 - 13dc: 9f 00 00 00 .long 0x9f - 13e0: 04 ac 5e b4 sthu r2,-21500(r30) - 13e4: 5e 02 73 00 .long 0x73025e - 13e8: 00 00 00 00 .long 0x0 + 13b8: 00 04 d8 5d rlwnm r24,r14,r0,16,0 + 13bc: bf 5e 01 57 rlwinm. r1,r24,11,26,31 + 13c0: 04 bf 5e 84 lwzu r2,-16636(r30) + 13c4: 5f 01 6b 04 .long 0x46b015f + 13c8: 84 5f 9c 5f rlwnm r28,r28,r11,30,2 + 13cc: 04 a3 01 57 rlwinm r1,r24,20,12,2 + 13d0: 9f 04 9c 5f rlwnm. r28,r28,r0,18,15 + 13d4: 88 61 01 6b xori r1,r24,24968 + 13d8: 04 88 61 a0 lhz r3,-30716(r1) if (unlikely(!pgd)) - 13ec: 00 04 bc 60 ori r28,r5,1024 - pgd_free(kvm->mm, gp->shadow_pgtable); - 13f0: c4 60 01 53 rlwimi r1,r24,12,3,2 - 13f4: 04 e4 60 ec dsub f3,f0,f28 + 13dc: 61 04 a3 01 .long 0x1a30461 + ms->mmiowb_pending = 0; + 13e0: 57 9f 04 a0 lhz r0,-24745(r4) + 13e4: 61 e0 62 01 .long 0x162e061 + mmiowb(); + 13e8: 6b 00 00 00 .long 0x6b + ... + 13f4: 00 00 04 d8 stfd f0,0(r4) free_page((unsigned long)pgd); - 13f8: 60 01 53 00 .long 0x530160 - 13fc: 01 00 00 00 .long 0x1 - 1400: 01 00 04 ac lhau r0,1(r4) + 13f8: 5d bf 5e 01 .long 0x15ebf5d + 13fc: 58 04 bf 5e rlwnm r31,r21,r0,17,12 + 1400: 88 5f 01 6c xoris r1,r0,24456 kfree(gp); - 1404: 60 bc 60 01 .long 0x160bc60 - 1408: 6b 04 bc 60 ori r28,r5,1131 - 140c: d8 60 01 6f xoris r1,r24,24792 + 1404: 04 88 5f 9c stbu r2,-30716(r31) + 1408: 5f 04 a3 01 .long 0x1a3045f + 140c: 58 9f 04 9c stbu r0,-24744(r4) if (!newgp) - 1410: 04 dc 60 ec dsub f3,f0,f27 - 1414: 60 01 6f 00 .long 0x6f0160 - 1418: 04 00 00 00 .long 0x4 - 141c: 04 ac 60 b0 sth r3,-21500(0) + 1410: 5f 8c 61 01 .long 0x1618c5f + 1414: 6c 04 8c 61 ori r12,r12,1132 + 1418: a0 61 04 a3 lhz r24,24992(r4) + 141c: 01 58 9f 04 .long 0x49f5801 if (idr_replace(&kvm->arch.kvm_nested_guest_idr, gp, lpid)) - 1420: 60 0c 88 d8 stfd f4,3168(r8) - 1424: 00 94 04 08 tdi 0,r4,-27648 - 1428: 20 24 08 20 subfic r0,r8,9248 - 142c: 26 9f 04 b0 sth r0,-24794(r4) - 1430: 60 ec 60 01 .long 0x160ec60 - 1434: 66 00 00 00 .long 0x66 - 1438: 04 b4 60 ec dsub f3,f0,f22 + 1420: a0 61 e0 62 ori r0,r23,24992 + 1424: 01 6c 00 00 .long 0x6c01 + 1428: 00 00 00 04 .long 0x4000000 + 142c: 9c 5e a0 5e rlwnm r0,r21,r11,26,14 + 1430: 01 54 04 a0 lhz r0,21505(r4) + 1434: 5e c0 5e 04 .long 0x45ec05e + 1438: a3 01 54 9f stbu r26,419(r20) WARN_ON(1); - 143c: 60 01 69 00 .long 0x690160 + 143c: 00 00 00 04 .long 0x4000000 ++newgp->refcnt; - 1440: 02 04 04 c4 lfsu f0,1026(r4) - 1444: 60 c4 60 01 .long 0x160c460 - 1448: 6f 00 02 00 .long 0x2006f - 144c: 04 a4 62 f0 xsmaxcdp vs3,vs34,vs20 + 1440: 9c 5e a4 5e rlwnm r4,r21,r11,26,14 + 1444: 02 73 00 00 .long 0x7302 + 1448: 00 00 00 00 .long 0x0 + 144c: 04 ac 60 b4 .long 0xb460ac04 newgp = NULL; - 1450: 62 04 a3 01 .long 0x1a30462 - 1454: 54 9f 00 02 .long 0x2009f54 - 1458: 00 04 a4 62 ori r4,r21,1024 - 145c: f0 62 01 6d xoris r1,r8,25328 + 1450: 60 01 53 04 .long 0x4530160 + 1454: d4 60 dc 60 ori r28,r6,24788 + 1458: 01 53 00 01 .long 0x1005301 + 145c: 00 00 00 01 .long 0x1000000 ms->mmiowb_pending = 0; - 1460: 00 04 00 04 .long 0x4000400 - 1464: a4 62 b3 62 ori r19,r21,25252 + 1460: 00 04 9c 60 ori r28,r4,1024 + 1464: ac 60 01 6b xori r1,r24,24748 mmiowb(); - 1468: 02 8d 00 00 .long 0x8d02 - 146c: 00 00 00 00 .long 0x0 + 1468: 04 ac 60 c8 lfd f3,-21500(0) + 146c: 60 01 6f 04 .long 0x46f0160 kmem_cache_free(PGT_CACHE(PGD_INDEX_SIZE), pgd); - 1470: 04 b4 62 c0 lfs f3,-19452(r2) - 1474: 62 01 53 04 .long 0x4530162 - 1478: c0 62 f0 62 ori r16,r23,25280 - 147c: 01 6f 00 01 .long 0x1006f01 - 1480: 00 04 b0 61 ori r16,r13,1024 - 1484: e4 61 02 32 addic r16,r2,25060 - 1488: 9f 00 01 00 .long 0x1009f - 148c: 04 b0 61 e4 psq_lu f3,4(r1),1,3 - 1490: 61 04 a3 01 .long 0x1a30461 - 1494: 54 9f 00 01 .long 0x1009f54 - 1498: 00 04 b0 61 ori r16,r13,1024 - 149c: e4 61 01 6d xoris r1,r8,25060 - 14a0: 00 03 00 04 .long 0x4000300 - 14a4: b0 61 bf 61 ori r31,r13,25008 -{ - 14a8: 02 8d 00 00 .long 0x8d02 - 14ac: 00 00 00 00 .long 0x0 - 14b0: 04 c0 61 cc lfdu f3,-16380(r1) - 14b4: 61 01 53 04 .long 0x4530161 - 14b8: cc 61 e4 61 ori r4,r15,25036 - 14bc: 01 6f 00 02 .long 0x2006f01 - 14c0: 00 04 e4 61 ori r4,r15,1024 - 14c4: a4 62 02 30 addic r0,r2,25252 - 14c8: 9f 00 02 00 .long 0x2009f - 14cc: 04 e4 61 a4 lhzu r3,-7164(r1) + 1470: cc 60 dc 60 ori r28,r6,24780 + 1474: 01 6f 00 04 .long 0x4006f01 + 1478: 00 00 00 04 .long 0x4000000 + 147c: 9c 60 a0 60 ori r0,r5,24732 + 1480: 0c 88 d8 00 .long 0xd8880c + 1484: 94 04 08 20 subfic r0,r8,1172 + 1488: 24 08 20 26 dozi r17,r0,2084 + 148c: 9f 04 a0 60 ori r0,r5,1183 + 1490: dc 60 01 66 oris r1,r16,24796 + 1494: 00 00 00 04 .long 0x4000000 + 1498: a4 60 dc 60 ori r28,r6,24740 + 149c: 01 69 00 02 .long 0x2006901 + 14a0: 04 04 b4 60 ori r20,r5,1028 + 14a4: b4 60 01 6f xoris r1,r24,24756 +{ + 14a8: 00 02 00 04 .long 0x4000200 + 14ac: 94 62 e0 62 ori r0,r23,25236 + 14b0: 04 a3 01 54 rlwinm r1,r0,20,12,2 + 14b4: 9f 00 02 00 .long 0x2009f + 14b8: 04 94 62 e0 psq_l f3,1028(r2),1,1 + 14bc: 62 01 6d 00 .long 0x6d0162 + 14c0: 04 00 04 94 stwu r0,4(r4) + 14c4: 62 a3 62 02 .long 0x262a362 + 14c8: 8d 00 00 00 .long 0x8d + 14cc: 00 00 00 04 .long 0x4000000 struct kvm *kvm = gp->l1_host; - 14d0: 62 04 a3 01 .long 0x1a30462 - 14d4: 54 9f 00 02 .long 0x2009f54 - 14d8: 00 04 e4 61 ori r4,r15,1024 - 14dc: a4 62 01 6d xoris r1,r8,25252 + 14d0: a4 62 b0 62 ori r16,r21,25252 + 14d4: 01 53 04 b0 sth r0,21249(r4) + 14d8: 62 e0 62 01 .long 0x162e062 + 14dc: 6f 00 01 00 .long 0x1006f ref = --gp->refcnt; - 14e0: 00 04 00 04 .long 0x4000400 + 14e0: 04 a0 61 d4 stfsu f3,-24572(r1) struct mmiowb_state *ms = __mmiowb_state(); - 14e4: e4 61 ff 61 ori r31,r15,25060 - 14e8: 02 8d 00 00 .long 0x8d02 - 14ec: 00 00 00 00 .long 0x0 - if (unlikely(ms->mmiowb_pending)) { - 14f0: 04 80 62 8c lbzu r3,-32764(r2) - 14f4: 62 01 53 04 .long 0x4530162 - 14f8: 8c 62 a4 62 ori r4,r21,25228 + 14e4: 61 02 32 9f stbu r25,609(r18) + 14e8: 00 01 00 04 .long 0x4000100 + 14ec: a0 61 d4 61 ori r20,r14,24992 + if (unlikely(ms->mmiowb_pending)) { + 14f0: 04 a3 01 54 rlwinm r1,r0,20,12,2 + 14f4: 9f 00 01 00 .long 0x1009f + 14f8: 04 a0 61 d4 stfsu f3,-24572(r1) ms->nesting_count--; - 14fc: 01 6f 00 00 .long 0x6f01 - ... + 14fc: 61 01 6d 00 .long 0x6d0161 + 1500: 03 00 04 a0 lhz r0,3(r4) + 1504: 61 af 61 02 .long 0x261af61 + 1508: 8d 00 00 00 .long 0x8d + 150c: 00 00 00 04 .long 0x4000000 + 1510: b0 61 bc 61 ori r28,r13,25008 + if (ref == 0) + 1514: 01 53 04 bc stmw r0,21249(r4) + 1518: 61 d4 61 01 .long 0x161d461 } - 151c: 00 04 88 59 rlmi r8,r12,r0,16,0 - 1520: 97 5a 01 53 rlwimi. r1,r24,11,10,11 - 1524: 04 97 5a d0 stfs f2,-26876(r26) - 1528: 5a 04 a3 01 .long 0x1a3045a - 152c: 53 9f 04 d0 stfs f0,-24749(r4) - 1530: 5a ec 5a 01 .long 0x15aec5a - 1534: 53 04 ec 5a rlmi. r12,r23,r0,17,9 - 1538: ac 5c 01 6f xoris r1,r24,23724 - 153c: 04 ac 5c b0 sth r2,-21500(r28) - 1540: 5c 04 a3 01 .long 0x1a3045c + 151c: 6f 00 02 00 .long 0x2006f + 1520: 04 d4 61 94 stwu r3,-11260(r1) + 1524: 62 02 30 9f stbu r25,610(r16) + 1528: 00 02 00 04 .long 0x4000200 + 152c: d4 61 94 62 ori r20,r20,25044 + 1530: 04 a3 01 54 rlwinm r1,r0,20,12,2 + 1534: 9f 00 02 00 .long 0x2009f + 1538: 04 d4 61 94 stwu r3,-11260(r1) + 153c: 62 01 6d 00 .long 0x6d0162 + 1540: 04 00 04 d4 stfsu f0,4(r4) kvmhv_release_nested(gp); - 1544: 53 9f 04 b0 sth r0,-24749(r4) + 1544: 61 ef 61 02 .long 0x261ef61 } - 1548: 5c b4 5c 01 .long 0x15cb45c - 154c: 53 04 b4 5c rlwnm. r20,r5,r0,17,9 - 1550: e4 5c 01 6f xoris r1,r24,23780 - 1554: 04 e4 5c e8 ld r2,-7164(r28) + 1548: 8d 00 00 00 .long 0x8d + 154c: 00 00 00 04 .long 0x4000000 + 1550: f0 61 fc 61 ori r28,r15,25072 + 1554: 01 53 04 fc .long 0xfc045301 kvmhv_release_nested(gp); - 1558: 5c 04 a3 01 .long 0x1a3045c - 155c: 53 9f 04 e8 .long 0xe8049f53 - ms->mmiowb_pending = 0; - 1560: 5c f4 5c 01 .long 0x15cf45c - 1564: 6f 04 f4 5c rlwnm. r20,r7,r0,17,23 - mmiowb(); - 1568: f8 5c 04 a3 lhz r24,23800(r4) - 156c: 01 53 9f 04 .long 0x49f5301 - 1570: f8 5c 90 5d rlwnm r16,r12,r11,19,28 - 1574: 01 6f 04 90 stw r0,28417(r4) -{ - 1578: 5d 98 5d 01 .long 0x15d985d - 157c: 53 04 98 5d rlwnm. r24,r12,r0,17,9 - 1580: 9c 5d 04 a3 lhz r24,23964(r4) - 1584: 01 53 9f 04 .long 0x49f5301 - 1588: 9c 5d ac 5d rlwnm r12,r13,r11,22,14 - 158c: 01 6f 04 ac lhau r0,28417(r4) - 1590: 5d e0 5d 04 .long 0x45de05d + 1558: 61 94 62 01 .long 0x1629461 + 155c: 6f 00 00 00 .long 0x6f + ... +{ + 157c: 04 f8 58 87 lwzu r26,-2044(r24) + 1580: 5a 01 53 04 .long 0x453015a + 1584: 87 5a c0 5a rlmi. r0,r22,r11,10,3 + 1588: 04 a3 01 53 rlwimi r1,r24,20,12,2 + 158c: 9f 04 c0 5a rlmi. r0,r22,r0,18,15 + 1590: dc 5a 01 53 rlwimi r1,r24,11,11,14 struct pt_regs l2_regs, saved_l1_regs; - 1594: a3 01 53 9f stbu r26,419(r19) + 1594: 04 dc 5a 9c stbu r2,-9212(r26) { - 1598: 00 01 00 09 tdgti r0,256 + 1598: 5c 01 6f 04 .long 0x46f015c struct pt_regs l2_regs, saved_l1_regs; - 159c: 00 00 00 00 .long 0x0 + 159c: 9c 5c a0 5c rlwnm r0,r5,r11,18,14 { - 15a0: 00 04 98 5a rlmi r24,r20,r0,16,0 - 15a4: a0 5a 01 53 rlwimi r1,r24,11,10,16 + 15a0: 04 a3 01 53 rlwimi r1,r24,20,12,2 + 15a4: 9f 04 a0 5c rlwnm. r0,r5,r0,18,15 struct pt_regs l2_regs, saved_l1_regs; - 15a8: 04 a0 5c b0 sth r2,-24572(r28) + 15a8: a4 5c 01 53 rlwimi r1,r24,11,18,18 { - 15ac: 5c 02 30 9f stbu r25,604(r16) - 15b0: 04 e0 5c e8 ld r2,-8188(r28) - 15b4: 5c 02 30 9f stbu r25,604(r16) + 15ac: 04 a4 5c d4 stfsu f2,-23548(r28) + 15b0: 5c 01 6f 04 .long 0x46f015c + 15b4: d4 5c d8 5c rlwnm r24,r6,r11,19,10 struct pt_regs l2_regs, saved_l1_regs; - 15b8: 04 cc 5d d8 stfd f2,-13308(r29) - 15bc: 5d 01 53 00 .long 0x53015d - 15c0: 02 04 04 ac lhau r0,1026(r4) - 15c4: 59 ac 59 02 .long 0x259ac59 - 15c8: 34 9f 00 02 .long 0x2009f34 - 15cc: 04 04 ac 59 rlmi r12,r13,r0,16,2 - 15d0: ac 59 01 53 rlwimi r1,r24,11,6,22 + 15b8: 04 a3 01 53 rlwimi r1,r24,20,12,2 + 15bc: 9f 04 d8 5c rlwnm. r24,r6,r0,18,15 + 15c0: e4 5c 01 6f xoris r1,r24,23780 + 15c4: 04 e4 5c e8 ld r2,-7164(r28) + 15c8: 5c 04 a3 01 .long 0x1a3045c + 15cc: 53 9f 04 e8 .long 0xe8049f53 + 15d0: 5c 80 5d 01 .long 0x15d805c struct hv_guest_state l2_hv = {0}, saved_l1_hv; - 15d4: 00 00 02 04 .long 0x4020000 - 15d8: b0 59 b0 59 rlmi r16,r13,r11,6,24 - 15dc: 02 35 9f 00 .long 0x9f3502 - 15e0: 00 02 04 b0 sth r0,512(r4) - 15e4: 59 b0 59 01 .long 0x159b059 - 15e8: 53 00 02 00 .long 0x20053 - 15ec: 04 b0 59 b4 sthu r2,-20476(r25) - 15f0: 59 02 36 9f stbu r25,601(r22) - 15f4: 00 02 00 04 .long 0x4000200 - 15f8: b0 59 b4 59 rlmi r20,r13,r11,6,24 + 15d4: 6f 04 80 5d rlwnm. r0,r12,r0,17,23 + 15d8: 88 5d 01 53 rlwimi r1,r24,11,22,4 + 15dc: 04 88 5d 8c lbzu r2,-30716(r29) + 15e0: 5d 04 a3 01 .long 0x1a3045d + 15e4: 53 9f 04 8c lbzu r0,-24749(r4) + 15e8: 5d 9c 5d 01 .long 0x15d9c5d + 15ec: 6f 04 9c 5d rlwnm. r28,r12,r0,17,23 + 15f0: d0 5d 04 a3 lhz r24,24016(r4) + 15f4: 01 53 9f 00 .long 0x9f5301 + 15f8: 01 00 09 00 .long 0x90001 if (vcpu->kvm->arch.l1_ptcr == 0) - 15fc: 01 53 00 00 .long 0x5301 + 15fc: 00 00 00 00 .long 0x0 struct kvmppc_vcore *vc = vcpu->arch.vcore; - 1600: 00 00 00 00 .long 0x0 + 1600: 04 88 5a 90 stw r2,-30716(r26) if (vcpu->kvm->arch.l1_ptcr == 0) - 1604: 00 00 00 04 .long 0x4000000 - 1608: b4 59 90 5a rlmi r16,r20,r11,6,26 - 160c: 01 55 04 d0 stfs f0,21761(r4) + 1604: 5a 01 53 04 .long 0x453015a + 1608: 90 5c a0 5c rlwnm r0,r5,r11,18,8 + 160c: 02 30 9f 04 .long 0x49f3002 if (MSR_TM_TRANSACTIONAL(vcpu->arch.shregs.msr)) - 1610: 5a 8b 5b 01 .long 0x15b8b5a - 1614: 55 04 b0 5c rlwnm. r16,r5,r0,17,10 - 1618: bc 5c 01 55 rlwinm r1,r8,11,18,30 - 161c: 04 90 5d 9c stbu r2,-28668(r29) - 1620: 5d 01 55 00 .long 0x55015d - 1624: 00 00 04 b4 sthu r0,0(r4) - 1628: 59 c8 59 03 .long 0x359c859 - 162c: 73 a8 1c 00 .long 0x1ca873 - 1630: 00 00 04 b4 sthu r0,0(r4) + 1610: d0 5c d8 5c rlwnm r24,r6,r11,19,8 + 1614: 02 30 9f 04 .long 0x49f3002 + 1618: bc 5d c8 5d rlwnm r8,r14,r11,22,30 + 161c: 01 53 00 02 .long 0x2005301 + 1620: 04 04 9c 59 rlmi r28,r12,r0,16,2 + 1624: 9c 59 02 34 addic. r0,r2,22940 + 1628: 9f 00 02 04 .long 0x402009f + 162c: 04 9c 59 9c stbu r2,-25596(r25) + 1630: 59 01 53 00 .long 0x530159 retval = __srcu_read_lock(ssp); - 1634: 59 d0 59 01 .long 0x159d059 - 1638: 59 00 00 00 .long 0x59 - 163c: 00 01 00 00 .long 0x100 - 1640: 00 09 00 00 .long 0x900 - ... + 1634: 00 02 04 a0 lhz r0,512(r4) + 1638: 59 a0 59 02 .long 0x259a059 + 163c: 35 9f 00 00 .long 0x9f35 + 1640: 02 04 a0 59 rlmi r0,r13,r0,16,1 + 1644: a0 59 01 53 rlwimi r1,r24,11,6,16 if (kvm_vcpu_read_guest(vcpu, hv_ptr, &l2_hv->version, - 1650: 00 00 04 b4 sthu r0,0(r4) - 1654: 59 97 5a 01 .long 0x15a9759 - 1658: 53 04 97 5a rlmi. r23,r20,r0,17,9 + 1648: 00 02 00 04 .long 0x4000200 + 164c: a0 59 a4 59 rlmi r4,r13,r11,6,16 + 1650: 02 36 9f 00 .long 0x9f3602 + 1654: 02 00 04 a0 lhz r0,2(r4) + 1658: 59 a4 59 01 .long 0x159a459 vcpu->____srcu_idx = srcu_read_lock(&vcpu->kvm->srcu); - 165c: 98 5a 04 a3 lhz r24,23192(r4) - 1660: 01 53 9f 04 .long 0x49f5301 - 1664: d0 5a ec 5a rlmi r12,r23,r11,11,8 - 1668: 01 53 04 ec .long 0xec045301 - 166c: 5a a0 5c 01 .long 0x15ca05a - 1670: 6f 04 b0 5c rlwnm. r16,r5,r0,17,23 + 165c: 53 00 00 00 .long 0x53 + 1660: 00 00 00 00 .long 0x0 + 1664: 00 00 04 a4 lhzu r0,0(r4) + 1668: 59 80 5a 01 .long 0x15a8059 + 166c: 55 04 c0 5a rlmi. r0,r22,r0,17,10 + 1670: fb 5a 01 55 rlwinm. r1,r8,11,11,29 l2_hv->version = swab64(l2_hv->version); - 1674: b4 5c 01 53 rlwimi r1,r24,11,18,26 + 1674: 04 a0 5c ac lhau r2,-24572(r28) return (kvmppc_get_msr(vcpu) & MSR_LE) != (MSR_KERNEL & MSR_LE); - 1678: 04 b4 5c e0 lq r2,-19456(r28) + 1678: 5c 01 55 04 .long 0x455015c if (kvmppc_need_byteswap(vcpu)) - 167c: 5c 01 6f 04 .long 0x46f015c - 1680: e8 5c f4 5c rlwnm r20,r7,r11,19,20 + 167c: 80 5d 8c 5d rlwnm r12,r12,r11,22,0 + 1680: 01 55 00 00 .long 0x5501 l2_hv->version = swab64(l2_hv->version); - 1684: 01 6f 04 f4 lxv vs0,28416(r4) - 1688: 5c f8 5c 04 .long 0x45cf85c - 168c: a3 01 53 9f stbu r26,419(r19) - 1690: 04 f8 5c 90 stw r2,-2044(r28) - 1694: 5d 01 6f 04 .long 0x46f015d - 1698: 90 5d 98 5d rlwnm r24,r12,r11,22,8 - 169c: 01 53 04 98 stb r0,21249(r4) - 16a0: 5d 9c 5d 04 .long 0x45d9c5d - 16a4: a3 01 53 9f stbu r26,419(r19) - 16a8: 04 9c 5d ac lhau r2,-25596(r29) - 16ac: 5d 01 6f 00 .long 0x6f015d - 16b0: 00 01 00 09 tdgti r0,256 - 16b4: 00 00 00 00 .long 0x0 - 16b8: 04 b8 59 98 stb r2,-18428(r25) - 16bc: 5a 01 6d 04 .long 0x46d015a + 1684: 00 04 a4 59 rlmi r4,r13,r0,16,0 + 1688: b8 59 03 73 andi. r3,r24,22968 + 168c: a8 1c 00 00 .long 0x1ca8 + 1690: 00 04 a4 59 rlmi r4,r13,r0,16,0 + 1694: c0 59 01 59 rlmi r1,r8,r11,7,0 + 1698: 00 00 00 00 .long 0x0 + 169c: 01 00 00 00 .long 0x1 + 16a0: 09 00 00 00 .long 0x9 + ... + 16b0: 00 04 a4 59 rlmi r4,r13,r0,16,0 + 16b4: 87 5a 01 53 rlwimi. r1,r24,11,10,3 + 16b8: 04 87 5a 88 lbz r2,-30972(r26) + 16bc: 5a 04 a3 01 .long 0x1a3045a srcu_read_unlock(&vcpu->kvm->srcu, vcpu->____srcu_idx); - 16c0: d0 5a a0 5c rlwnm r0,r5,r11,11,8 - 16c4: 01 6d 04 b0 sth r0,27905(r4) + 16c0: 53 9f 04 c0 lfs f0,-24749(r4) + 16c4: 5a dc 5a 01 .long 0x15adc5a WARN_ON_ONCE(idx & ~0x1); - 16c8: 5c c4 5c 01 .long 0x15cc45c - 16cc: 6d 04 f8 5c rlwnm. r24,r7,r0,17,22 - 16d0: ac 5d 01 6d xoris r1,r8,23980 + 16c8: 53 04 dc 5a rlmi. r28,r22,r0,17,9 + 16cc: 90 5c 01 6f xoris r1,r24,23696 + 16d0: 04 a0 5c a4 lhzu r2,-24572(r28) __srcu_read_unlock(ssp, idx); - 16d4: 00 00 00 00 .long 0x0 - 16d8: 00 00 00 04 .long 0x4000000 - 16dc: c0 5c cc 5c rlwnm r12,r6,r11,19,0 + 16d4: 5c 01 53 04 .long 0x453015c + 16d8: a4 5c d0 5c rlwnm r16,r6,r11,18,18 + 16dc: 01 6f 04 d8 stfd f0,28417(r4) if (err) - 16e0: 01 53 04 cc lfdu f0,21249(r4) - 16e4: 5c e0 5c 01 .long 0x15ce05c + 16e0: 5c e4 5c 01 .long 0x15ce45c + 16e4: 6f 04 e4 5c rlwnm. r4,r7,r0,17,23 return H_PARAMETER; - 16e8: 6d 04 e8 5c rlwnm. r8,r7,r0,17,22 - 16ec: f8 5c 01 53 rlwimi r1,r24,11,19,28 + 16e8: e8 5c 04 a3 lhz r24,23784(r4) + 16ec: 01 53 9f 04 .long 0x49f5301 } - 16f0: 00 07 00 04 .long 0x4000700 - 16f4: c0 59 d0 59 rlmi r16,r14,r11,7,0 - 16f8: 07 79 00 40 bdnzfla lt,7904 - 16fc: 25 31 1a 9f stbu r24,12581(r26) - ... - 170c: 00 04 c0 59 rlmi r0,r14,r0,16,0 - 1710: cc 59 07 79 rldimi r7,r8,11,7 - 1714: 00 42 25 33 addic r25,r5,16896 - 1718: 1a 9f 04 cc lfdu f0,-24806(r4) - 171c: 59 f8 59 01 .long 0x159f859 - 1720: 6e 04 f8 59 rlmi r24,r15,r0,17,23 + 16f0: e8 5c 80 5d rlwnm r0,r12,r11,19,20 + 16f4: 01 6f 04 80 lwz r0,28417(r4) + 16f8: 5d 88 5d 01 .long 0x15d885d + 16fc: 53 04 88 5d rlwnm. r8,r12,r0,17,9 + 1700: 8c 5d 04 a3 lhz r24,23948(r4) + 1704: 01 53 9f 04 .long 0x49f5301 + 1708: 8c 5d 9c 5d rlwnm r28,r12,r11,22,6 + 170c: 01 6f 00 00 .long 0x6f01 + 1710: 01 00 09 00 .long 0x90001 + 1714: 00 00 00 04 .long 0x4000000 + 1718: a8 59 88 5a rlmi r8,r20,r11,6,20 + 171c: 01 6d 04 c0 lfs f0,27905(r4) + 1720: 5a 90 5c 01 .long 0x15c905a return kvm_vcpu_read_guest(vcpu, hv_ptr, l2_hv, size) || - 1724: a0 5a 03 8e lbzu r16,23200(r3) - 1728: 01 9f 04 d0 stfs f0,-24831(r4) - 172c: 5a 90 5d 01 .long 0x15d905a - 1730: 6e 04 9c 5d rlwnm r28,r12,r0,17,23 - 1734: ac 5d 01 6e xoris r1,r16,23980 - 1738: 04 cc 5d d4 stfsu f2,-13308(r29) - 173c: 5d 03 8e 01 .long 0x18e035d - 1740: 9f 00 03 00 .long 0x3009f - ... - 174c: 04 c0 59 d0 stfs f2,-16380(r25) - WARN_ON_ONCE(idx & ~0x1); - 1750: 59 07 79 00 .long 0x790759 - 1754: 41 25 31 1a stxvp vs48,9536(r17) - 1758: 9f 04 d0 59 rlmi. r16,r14,r0,18,15 - 175c: 97 5a 01 59 rlmi. r1,r8,r11,10,11 - 1760: 04 d0 5a 8b lbz r26,-12284(r26) - 1764: 5b 01 59 04 .long 0x459015b - 1768: b0 5c bf 5c rlwnm r31,r5,r11,18,24 - 176c: 01 59 04 90 stw r0,22785(r4) - 1770: 5d 94 5d 01 .long 0x15d945d - 1774: 59 00 0f 00 .long 0xf0059 - ... - 1780: 04 c0 59 e4 psq_lu f2,4(r25),1,4 - 1784: 59 07 75 00 .long 0x750759 - 1788: 3a 25 33 1a .long 0x1a33253a - 178c: 9f 04 e4 59 rlmi. r4,r15,r0,18,15 + 1724: 6d 04 a0 5c rlwnm. r0,r5,r0,17,22 + 1728: b4 5c 01 6d xoris r1,r8,23732 + 172c: 04 e8 5c 9c stbu r2,-6140(r28) + 1730: 5d 01 6d 00 .long 0x6d015d + 1734: 00 00 00 00 .long 0x0 + 1738: 00 00 04 b0 sth r0,0(r4) + 173c: 5c bc 5c 01 .long 0x15cbc5c + 1740: 53 04 bc 5c rlwnm. r28,r5,r0,17,9 + 1744: d0 5c 01 6d xoris r1,r8,23760 + WARN_ON_ONCE(idx & ~0x1); + 1748: 04 d8 5c e8 ld r2,-10236(r28) + 174c: 5c 01 53 00 .long 0x53015c + 1750: 07 00 04 b0 sth r0,7(r4) + 1754: 59 c0 59 07 .long 0x759c059 + 1758: 79 00 40 25 dozi r10,r0,121 + 175c: 31 1a 9f 00 .long 0x9f1a31 + ... + 176c: 04 b0 59 bc stmw r2,-20476(r25) + 1770: 59 07 79 00 .long 0x790759 + 1774: 42 25 33 1a .long 0x1a332542 + 1778: 9f 04 bc 59 rlmi. r28,r13,r0,18,15 + 177c: e8 59 01 6e xoris r1,r16,23016 + 1780: 04 e8 59 90 stw r2,-6140(r25) + 1784: 5a 03 8e 01 .long 0x18e035a + 1788: 9f 04 c0 5a rlmi. r0,r22,r0,18,15 + 178c: 80 5d 01 6e xoris r1,r16,23936 return H_NOT_AVAILABLE; - 1790: 97 5a 01 5a rlmi. r1,r16,r11,10,11 - 1794: 04 d0 5a 8b lbz r26,-12284(r26) - 1798: 5b 01 5a 04 .long 0x45a015b - 179c: b0 5c bf 5c rlwnm r31,r5,r11,18,24 - 17a0: 01 5a 04 90 stw r0,23041(r4) + 1790: 04 8c 5d 9c stbu r2,-29692(r29) + 1794: 5d 01 6e 04 .long 0x46e015d + 1798: bc 5d c4 5d rlwnm r4,r14,r11,22,30 + 179c: 03 8e 01 9f stbu r24,-29181(r1) + 17a0: 00 03 00 00 .long 0x300 return kvm_vcpu_read_guest(vcpu, hv_ptr, l2_hv, size) || - 17a4: 5d 9c 5d 07 .long 0x75d9c5d - 17a8: 75 00 3a 25 dozi r9,r26,117 - 17ac: 33 1a 9f 00 .long 0x9f1a33 - 17b0: 07 00 04 80 lwz r0,7(r4) - 17b4: 5a 90 5a 07 .long 0x75a905a - 17b8: 75 00 35 25 dozi r9,r21,117 - 17bc: 37 1a 9f 00 .long 0x9f1a37 + 17a4: 00 00 00 00 .long 0x0 + 17a8: 00 00 00 04 .long 0x4000000 + 17ac: b0 59 c0 59 rlmi r0,r14,r11,6,24 + 17b0: 07 79 00 41 bdnztla lt,7904 + 17b4: 25 31 1a 9f stbu r24,12581(r26) + 17b8: 04 c0 59 87 lwzu r26,-16380(r25) + 17bc: 5a 01 59 04 .long 0x459015a kvm_vcpu_read_guest(vcpu, regs_ptr, l2_regs, - 17c0: 0b 00 00 00 .long 0xb - 17c4: 00 00 00 00 .long 0x0 - 17c8: 04 c0 59 97 stwu r26,-16380(r25) - 17cc: 5a 01 54 04 .long 0x454015a - 17d0: d0 5a 8b 5b rlmi r11,r28,r11,11,8 - 17d4: 01 54 04 b0 sth r0,21505(r4) - 17d8: 5c bf 5c 01 .long 0x15cbf5c - 17dc: 54 04 90 5d rlwnm r16,r12,r0,17,10 - 17e0: 9c 5d 01 54 rlwinm r1,r0,11,22,14 - 17e4: 00 03 00 00 .long 0x300 - 17e8: 00 04 80 5a rlmi r0,r20,r0,16,0 - 17ec: 88 5a 05 75 andis. r5,r8,23176 - 17f0: 00 3c 25 9f stbu r25,15360(r5) - 17f4: 04 88 5a 97 stwu r26,-30716(r26) - 17f8: 5a 01 56 00 .long 0x56015a - 17fc: 05 00 00 01 .long 0x1000005 - 1800: 00 09 00 00 .long 0x900 - 1804: 00 00 04 b8 lm r0,0(r4) - 1808: 59 98 5a 02 .long 0x25a9859 - 180c: 30 9f 04 98 stb r0,-24784(r4) - 1810: 5a 98 5a 01 .long 0x15a985a + 17c0: c0 5a fb 5a rlmi r27,r23,r11,11,0 + 17c4: 01 59 04 a0 lhz r0,22785(r4) + 17c8: 5c af 5c 01 .long 0x15caf5c + 17cc: 59 04 80 5d rlwnm. r0,r12,r0,17,12 + 17d0: 84 5d 01 59 rlmi r1,r8,r11,22,2 + 17d4: 00 0f 00 00 .long 0xf00 + 17d8: 00 00 00 00 .long 0x0 + 17dc: 00 00 00 04 .long 0x4000000 + 17e0: b0 59 d4 59 rlmi r20,r14,r11,6,24 + 17e4: 07 75 00 3a li r16,29959 + 17e8: 25 33 1a 9f stbu r24,13093(r26) + 17ec: 04 d4 59 87 lwzu r26,-11260(r25) + 17f0: 5a 01 5a 04 .long 0x45a015a + 17f4: c0 5a fb 5a rlmi r27,r23,r11,11,0 + 17f8: 01 5a 04 a0 lhz r0,23041(r4) + 17fc: 5c af 5c 01 .long 0x15caf5c + 1800: 5a 04 80 5d rlwnm r0,r12,r0,17,13 + 1804: 8c 5d 07 75 andis. r7,r8,23948 + 1808: 00 3a 25 33 addic r25,r5,14848 + 180c: 1a 9f 00 07 .long 0x7009f1a + 1810: 00 04 f0 59 rlmi r16,r15,r0,16,0 return kvm_vcpu_read_guest(vcpu, hv_ptr, l2_hv, size) || - 1814: 53 04 d0 5a rlmi. r16,r22,r0,17,9 - 1818: a0 5c 02 30 addic r0,r2,23712 - 181c: 9f 04 b0 5c rlwnm. r16,r5,r0,18,15 - 1820: e0 5c 02 30 addic r0,r2,23776 - 1824: 9f 04 e8 5c rlwnm. r8,r7,r0,18,15 - 1828: ac 5d 02 30 addic r0,r2,23980 + 1814: 80 5a 07 75 andis. r7,r8,23168 + 1818: 00 35 25 37 addic. r25,r5,13568 + 181c: 1a 9f 00 0b tdnei r0,-24806 + 1820: 00 00 00 00 .long 0x0 + 1824: 00 00 00 04 .long 0x4000000 + 1828: b0 59 87 5a rlmi r7,r20,r11,6,24 __srcu_read_unlock(ssp, idx); - 182c: 9f 00 06 00 .long 0x6009f - 1830: 04 b8 59 c0 lfs f2,-18428(r25) - 1834: 59 01 59 00 .long 0x590159 + 182c: 01 54 04 c0 lfs f0,21505(r4) + 1830: 5a fb 5a 01 .long 0x15afb5a + 1834: 54 04 a0 5c rlwnm r0,r5,r0,17,10 if (err) - 1838: 09 0b 04 c0 lfs f0,2825(r4) - 183c: 59 c0 59 03 .long 0x359c059 - 1840: 73 a8 1c 00 .long 0x1ca873 - 1844: 01 03 04 c0 lfs f0,769(r4) + 1838: af 5c 01 54 rlwinm. r1,r0,11,18,23 + 183c: 04 80 5d 8c lbzu r2,-32764(r29) + 1840: 5d 01 54 00 .long 0x54015d + 1844: 03 00 00 00 .long 0x3 if (kvmppc_need_byteswap(vcpu)) - 1848: 59 c0 59 01 .long 0x159c059 - 184c: 59 00 05 07 .long 0x7050059 + 1848: 04 f0 59 f8 std r2,-4092(r25) + 184c: 59 05 75 00 .long 0x750559 if (l2_hv.version > HV_GUEST_STATE_VERSION) - 1850: 04 c0 59 c0 lfs f2,-16380(r25) - 1854: 59 01 59 00 .long 0x590159 - 1858: 0d 0f 04 c0 lfs f0,3853(r4) + 1850: 3c 25 9f 04 .long 0x49f253c + 1854: f8 59 87 5a rlmi r7,r20,r11,7,28 + 1858: 01 56 00 05 .long 0x5005601 if (l2_hv.vcpu_token >= NR_CPUS) - 185c: 59 c0 59 01 .long 0x159c059 - 1860: 55 00 01 03 .long 0x3010055 - 1864: 04 80 5a 80 lwz r2,-32764(r26) + 185c: 00 00 01 00 .long 0x10000 + 1860: 09 00 00 00 .long 0x9 + 1864: 00 04 a8 59 rlmi r8,r13,r0,16,0 if (MSR_TM_SUSPENDED(vcpu->arch.shregs.msr)) { - 1868: 5a 01 55 00 .long 0x55015a - 186c: 05 07 04 80 lwz r0,1797(r4) + 1868: 88 5a 02 30 addic r0,r2,23176 + 186c: 9f 04 88 5a rlmi. r8,r20,r0,18,15 if (!MSR_TM_ACTIVE(l2_regs.msr)) - 1870: 5a 80 5a 01 .long 0x15a805a + 1870: 88 5a 01 53 rlwimi r1,r24,11,10,4 if (MSR_TM_SUSPENDED(vcpu->arch.shregs.msr)) { - 1874: 55 00 01 09 tdgti r1,85 - 1878: 00 00 00 00 .long 0x0 + 1874: 04 c0 5a 90 stw r2,-16380(r26) + 1878: 5c 02 30 9f stbu r25,604(r16) if (!MSR_TM_ACTIVE(l2_regs.msr)) - 187c: 04 f4 5a a0 lhz r2,-3068(r26) + 187c: 04 a0 5c d0 stfs f2,-24572(r28) if (MSR_TM_SUSPENDED(vcpu->arch.shregs.msr)) { - 1880: 5c 01 6e 04 .long 0x46e015c + 1880: 5c 02 30 9f stbu r25,604(r16) if (!MSR_TM_ACTIVE(l2_regs.msr)) - 1884: f8 5c 90 5d rlwnm r16,r12,r11,19,28 + 1884: 04 d8 5c 9c stbu r2,-10236(r28) if (MSR_TM_SUSPENDED(vcpu->arch.shregs.msr)) { - 1888: 01 6e 04 9c stbu r0,28161(r4) - 188c: 5d ac 5d 01 .long 0x15dac5d + 1888: 5d 02 30 9f stbu r25,605(r16) + 188c: 00 06 00 04 .long 0x4000600 if (l2_regs.msr & MSR_TS_MASK) - 1890: 6e 00 01 09 tdgti r1,110 - 1894: 00 00 00 00 .long 0x0 + 1890: a8 59 b0 59 rlmi r16,r13,r11,6,20 + 1894: 01 59 00 09 tdgti r0,22785 if (WARN_ON_ONCE(vcpu->arch.shregs.msr & MSR_TS_MASK)) - 1898: 04 f4 5a a0 lhz r2,-3068(r26) - 189c: 5c 01 6f 04 .long 0x46f015c + 1898: 0b 04 b0 59 rlmi. r16,r13,r0,16,5 + 189c: b0 59 03 73 andi. r3,r24,22960 l2 = kvmhv_get_nested(vcpu->kvm, l2_hv.lpid, true); - 18a0: f8 5c 90 5d rlwnm r16,r12,r11,19,28 - 18a4: 01 6f 04 9c stbu r0,28417(r4) - 18a8: 5d ac 5d 01 .long 0x15dac5d - 18ac: 6f 00 03 00 .long 0x3006f + 18a0: a8 1c 00 01 .long 0x1001ca8 + 18a4: 03 04 b0 59 rlmi. r16,r13,r0,16,1 + 18a8: b0 59 01 59 rlmi r1,r8,r11,6,24 + 18ac: 00 05 07 04 .long 0x4070500 if (!l2) - 18b0: 00 09 00 00 .long 0x900 - 18b4: 00 00 04 f4 psq_stu f0,0(r4),0,0 + 18b0: b0 59 b0 59 rlmi r16,r13,r11,6,24 + 18b4: 01 59 00 0d twgti r0,22785 if (!l2->l1_gr_to_hr) { - 18b8: 5a 8b 5b 01 .long 0x15b8b5a - 18bc: 53 04 8b 5b rlmi. r11,r28,r0,17,9 - 18c0: a0 5c 01 6d xoris r1,r8,23712 + 18b8: 0f 04 b0 59 rlmi. r16,r13,r0,16,7 + 18bc: b0 59 01 55 rlwinm r1,r8,11,6,24 + 18c0: 00 01 03 04 .long 0x4030100 vcpu->arch.regs.msr = vcpu->arch.shregs.msr; - 18c4: 04 f8 5c 90 stw r2,-2044(r28) + 18c4: f0 59 f0 59 rlmi r16,r15,r11,7,24 saved_l1_regs = vcpu->arch.regs; - 18c8: 5d 01 6d 04 .long 0x46d015d - 18cc: 9c 5d ac 5d rlwnm r12,r13,r11,22,14 - 18d0: 01 6d 00 00 .long 0x6d01 - 18d4: 00 00 00 00 .long 0x0 + 18c8: 01 55 00 05 .long 0x5005501 + 18cc: 07 04 f0 59 rlmi. r16,r15,r0,16,3 + 18d0: f0 59 01 55 rlwinm r1,r8,11,7,24 + 18d4: 00 01 09 00 .long 0x90100 vcpu->arch.regs.msr = vcpu->arch.shregs.msr; - 18d8: 09 00 00 00 .long 0x9 + 18d8: 00 00 00 04 .long 0x4000000 saved_l1_regs = vcpu->arch.regs; - 18dc: 00 04 94 5b rlmi r20,r28,r0,16,0 - 18e0: c0 5b 01 53 rlwimi r1,r24,11,15,0 + 18dc: e4 5a 90 5c rlwnm r16,r4,r11,11,18 + 18e0: 01 6e 04 e8 ldu r0,28160(r4) kvmhv_save_hv_regs(vcpu, &saved_l1_hv); - 18e4: 04 c0 5b c7 lfsu f26,-16380(r27) - 18e8: 5b 01 54 04 .long 0x454015b - 18ec: f0 5b a0 5c rlwnm r0,r5,r11,15,24 + 18e4: 5c 80 5d 01 .long 0x15d805c + 18e8: 6e 04 8c 5d rlwnm r12,r12,r0,17,23 + 18ec: 9c 5d 01 6e xoris r1,r16,23964 hdec_exp = l2_hv.hdec_expiry - vc->tb_offset; - 18f0: 01 53 04 f8 stdu r0,21248(r4) + 18f0: 00 01 09 00 .long 0x90100 vcpu->arch.regs = l2_regs; - 18f4: 5c 90 5d 01 .long 0x15d905c - 18f8: 53 04 9c 5d rlwnm. r28,r12,r0,17,9 + 18f4: 00 00 00 04 .long 0x4000000 + 18f8: e4 5a 90 5c rlwnm r16,r4,r11,11,18 vc->tb_offset += l2_hv.tb_offset; - 18fc: ac 5d 01 53 rlwimi r1,r24,11,22,22 + 18fc: 01 6f 04 e8 ldu r0,28416(r4) hdec_exp = l2_hv.hdec_expiry - vc->tb_offset; - 1900: 00 01 00 00 .long 0x100 + 1900: 5c 80 5d 01 .long 0x15d805c vcpu->arch.regs = l2_regs; - 1904: 00 04 84 5b rlmi r4,r28,r0,16,0 + 1904: 6f 04 8c 5d rlwnm. r12,r12,r0,17,23 vcpu->arch.nested_vcpu_id = l2_hv.vcpu_token; - 1908: 8b 5b 01 53 rlwimi. r1,r24,11,14,5 + 1908: 9c 5d 01 6f xoris r1,r24,23964 vcpu->arch.nested_hfscr = l2_hv.hfscr; - 190c: 04 8b 5b 8c lbzu r2,-29948(r27) + 190c: 00 03 00 00 .long 0x300 vc->tb_offset += l2_hv.tb_offset; - 1910: 5b 01 6d 00 .long 0x6d015b - ... + 1910: 09 00 00 00 .long 0x9 + hdec_exp = l2_hv.hdec_expiry - vc->tb_offset; + 1914: 00 04 e4 5a rlmi r4,r23,r0,16,0 + vc->tb_offset += l2_hv.tb_offset; + 1918: fb 5a 01 53 rlwimi. r1,r24,11,11,29 vcpu->arch.dec_expires += l2_hv.tb_offset; - 191c: 00 00 04 94 stwu r0,0(r4) + 191c: 04 fb 5a 90 stw r2,-1276(r26) vcpu->arch.nested_vcpu_id = l2_hv.vcpu_token; - 1920: 5b c7 5b 04 .long 0x45bc75b + 1920: 5c 01 6d 04 .long 0x46d015c vcpu->arch.nested = l2; - 1924: 79 80 19 9f stbu r24,-32647(r25) + 1924: e8 5c 80 5d rlwnm r0,r12,r11,19,20 vcpu->arch.nested_hfscr = l2_hv.hfscr; - 1928: 04 fc 5b 9c stbu r2,-1020(r27) + 1928: 01 6d 04 8c lbzu r0,27905(r4) vcpu->arch.dec_expires += l2_hv.tb_offset; - 192c: 5c 04 79 80 lwz r3,1116(r25) - 1930: 19 9f 04 9c stbu r0,-24807(r4) + 192c: 5d 9c 5d 01 .long 0x15d9c5d + 1930: 6d 00 00 00 .long 0x6d vcpu->arch.regs = l2_regs; - 1934: 5c b0 5c 04 .long 0x45cb05c - 1938: 7d 80 19 9f stbu r24,-32643(r25) + 1934: 00 00 00 09 tdgti r0,0 + 1938: 00 00 00 00 .long 0x0 vcpu->arch.shregs.msr = (vcpu->arch.regs.msr | MSR_ME) & ~MSR_HV; - 193c: 04 f8 5c 90 stw r2,-2044(r28) + 193c: 04 84 5b b0 sth r2,-31740(r27) vc->pcr = hr->pcr | PCR_MASK; - 1940: 5d 04 79 80 lwz r3,1117(r25) + 1940: 5b 01 53 04 .long 0x453015b vcpu->arch.shregs.msr = (vcpu->arch.regs.msr | MSR_ME) & ~MSR_HV; - 1944: 19 9f 04 9c stbu r0,-24807(r4) + 1944: b0 5b b7 5b rlmi r23,r29,r11,14,24 struct kvmppc_vcore *vc = vcpu->arch.vcore; - 1948: 5d ac 5d 04 .long 0x45dac5d + 1948: 01 54 04 e0 lq r0,21504(r4) (vc->lpcr & ~mask) | (*lpcr & mask)); - 194c: 79 80 19 9f stbu r24,-32647(r25) + 194c: 5b 90 5c 01 .long 0x15c905b vcpu->arch.shregs.msr = (vcpu->arch.regs.msr | MSR_ME) & ~MSR_HV; - 1950: 00 01 00 04 .long 0x4000100 + 1950: 53 04 e8 5c rlwnm. r8,r7,r0,17,9 vc->pcr = hr->pcr | PCR_MASK; - 1954: c8 5b d4 5b rlmi r20,r30,r11,15,4 - 1958: 01 6d 00 01 .long 0x1006d01 + 1954: 80 5d 01 53 rlwimi r1,r24,11,22,0 + 1958: 04 8c 5d 9c stbu r2,-29692(r29) vc->dpdes = hr->dpdes; - 195c: 09 00 00 04 .long 0x4000009 + 195c: 5d 01 53 00 .long 0x53015d (vc->lpcr & ~mask) | (*lpcr & mask)); - 1960: 80 5c a0 5c rlwnm r0,r5,r11,18,0 + 1960: 01 00 00 00 .long 0x1 vcpu->arch.purr = hr->purr; - 1964: 01 6d 04 9c stbu r0,27905(r4) + 1964: 04 f4 5a fb std r26,-3068(r26) vcpu->arch.ciabr = hr->ciabr; - 1968: 5d ac 5d 01 .long 0x15dac5d + 1968: 5a 01 53 04 .long 0x453015a vcpu->arch.shregs.msr = (vcpu->arch.regs.msr | MSR_ME) & ~MSR_HV; - 196c: 6d 00 03 09 tdgti r3,109 + 196c: fb 5a fc 5a rlmi. r28,r23,r11,11,29 vc->pcr = hr->pcr | PCR_MASK; - 1970: 00 00 04 80 lwz r0,0(r4) - vcpu->arch.purr = hr->purr; - 1974: 5c a0 5c 01 .long 0x15ca05c - (vc->lpcr & ~mask) | (*lpcr & mask)); - 1978: 6d 04 9c 5d rlwnm. r28,r12,r0,17,22 + 1970: 01 6d 00 00 .long 0x6d01 + ... vcpu->arch.shregs.msr = (vcpu->arch.regs.msr | MSR_ME) & ~MSR_HV; - 197c: ac 5d 01 6d xoris r1,r8,23980 + 197c: 00 04 84 5b rlmi r4,r28,r0,16,0 vc->pcr = hr->pcr | PCR_MASK; - 1980: 00 08 07 00 .long 0x70800 + 1980: b7 5b 04 79 .long 0x79045bb7 (vc->lpcr & ~mask) | (*lpcr & mask)); - 1984: 00 04 80 5c rlwnm r0,r4,r0,16,0 + 1984: 80 19 9f 04 .long 0x49f1980 vcpu->arch.shregs.msr = (vcpu->arch.regs.msr | MSR_ME) & ~MSR_HV; - 1988: a0 5c 01 6d xoris r1,r8,23712 + 1988: ec 5b 8c 5c rlwnm r12,r4,r11,15,22 vc->pcr = hr->pcr | PCR_MASK; - 198c: 04 9c 5d ac lhau r2,-25596(r29) + 198c: 04 79 80 19 .long 0x19807904 vcpu->arch.shregs.msr = (vcpu->arch.regs.msr | MSR_ME) & ~MSR_HV; - 1990: 5d 01 6d 00 .long 0x6d015d + 1990: 9f 04 8c 5c rlwnm. r12,r4,r0,18,15 vc->pcr = hr->pcr | PCR_MASK; - 1994: 01 05 04 94 stwu r0,1281(r4) + 1994: a0 5c 04 7d .long 0x7d045ca0 vcpu->arch.dawr0 = hr->dawr0; - 1998: 5c a0 5c 01 .long 0x15ca05c + 1998: 80 19 9f 04 .long 0x49f1980 vcpu->arch.dawrx0 = hr->dawrx0; - 199c: 6d 00 00 00 .long 0x6d + 199c: e8 5c 80 5d rlwnm r0,r12,r11,19,20 vcpu->arch.shregs.msr = (vcpu->arch.regs.msr | MSR_ME) & ~MSR_HV; - 19a0: 00 00 00 00 .long 0x0 - 19a4: 00 00 04 98 stb r0,0(r4) + 19a0: 04 79 80 19 .long 0x19807904 + 19a4: 9f 04 8c 5d rlwnm. r12,r12,r0,18,15 vcpu->arch.purr = hr->purr; - 19a8: 47 f4 47 01 .long 0x147f447 + 19a8: 9c 5d 04 79 .long 0x79045d9c vc->pcr = hr->pcr | PCR_MASK; - 19ac: 53 04 f4 47 .long 0x47f40453 + 19ac: 80 19 9f 00 .long 0x9f1980 vcpu->arch.shregs.sprg0 = hr->sprg[0]; - 19b0: 88 4a 01 6c xoris r1,r0,19080 + 19b0: 01 00 04 b8 lm r0,1(r4) vc->dpdes = hr->dpdes; - 19b4: 04 88 4a 98 stb r2,-30716(r10) + 19b4: 5b c4 5b 01 .long 0x15bc45b vc->vtb = hr->vtb; - 19b8: 4a 04 a3 01 .long 0x1a3044a + 19b8: 6d 00 01 09 tdgti r1,109 vcpu->arch.dawr0 = hr->dawr0; - 19bc: 53 9f 04 98 stb r0,-24749(r4) + 19bc: 00 00 04 f0 xsaddsp vs0,vs4,vs0 vcpu->arch.shregs.sprg0 = hr->sprg[0]; - 19c0: 4a b8 4a 01 .long 0x14ab84a + 19c0: 5b 90 5c 01 .long 0x15c905b vcpu->arch.dawrx0 = hr->dawrx0; - 19c4: 6c 00 00 00 .long 0x6c + 19c4: 6d 04 8c 5d rlwnm. r12,r12,r0,17,22 vcpu->arch.shregs.sprg0 = hr->sprg[0]; - 19c8: 00 00 00 00 .long 0x0 + 19c8: 9c 5d 01 6d xoris r1,r8,23964 vcpu->arch.ciabr = hr->ciabr; - 19cc: 00 00 04 98 stb r0,0(r4) + 19cc: 00 03 09 00 .long 0x90300 vcpu->arch.purr = hr->purr; - 19d0: 47 c3 48 01 .long 0x148c347 - 19d4: 54 04 c3 48 b c31e28 - 19d8: 98 4a 04 a3 lhz r24,19096(r4) + 19d0: 00 04 f0 5b rlmi r16,r31,r0,16,0 + 19d4: 90 5c 01 6d xoris r1,r8,23696 + 19d8: 04 8c 5d 9c stbu r2,-29692(r29) vcpu->arch.shregs.sprg0 = hr->sprg[0]; - 19dc: 01 54 9f 04 .long 0x49f5401 + 19dc: 5d 01 6d 00 .long 0x6d015d vcpu->arch.hfscr = hr->hfscr; - 19e0: 98 4a a8 4a b fffffffffea86478 + 19e0: 08 07 00 00 .long 0x708 vc->vtb = hr->vtb; - 19e4: 01 54 04 a8 lha r0,21505(r4) + 19e4: 04 f0 5b 90 stw r2,-4092(r27) lpcr = l2_hv.lpcr; - 19e8: 4a b8 4a 04 .long 0x44ab84a + 19e8: 5c 01 6d 04 .long 0x46d015c vcpu->arch.shregs.sprg0 = hr->sprg[0]; - 19ec: a3 01 54 9f stbu r26,419(r20) + 19ec: 8c 5d 9c 5d rlwnm r28,r12,r11,22,6 + 19f0: 01 6d 00 01 .long 0x1006d01 + 19f4: 05 04 84 5c rlwnm. r4,r4,r0,16,2 + 19f8: 90 5c 01 6d xoris r1,r8,23696 ... - 19f8: 00 04 98 47 .long 0x47980400 - 19fc: c0 48 01 55 rlwinm r1,r8,9,3,0 - 1a00: 04 c0 48 98 stb r2,-16380(r8) vcpu->arch.pid = hr->pidr; - 1a04: 4a 04 a3 01 .long 0x1a3044a + 1a04: 00 04 88 47 .long 0x47880400 (vc->lpcr & ~mask) | (*lpcr & mask)); - 1a08: 55 9f 04 98 stb r0,-24747(r4) + 1a08: e4 47 01 53 rlwimi r1,r24,8,31,18 vcpu->arch.shregs.sprg0 = hr->sprg[0]; - 1a0c: 4a a8 4a 01 .long 0x14aa84a + 1a0c: 04 e4 47 f8 std r2,-7164(r7) (vc->lpcr & ~mask) | (*lpcr & mask)); - 1a10: 55 04 a8 4a bl fffffffffea81e64 + 1a10: 49 01 6c 04 .long 0x46c0149 vcpu->arch.cfar = hr->cfar; - 1a14: b8 4a 04 a3 lhz r24,19128(r4) + 1a14: f8 49 88 4a b fffffffffe88640c vcpu->arch.ppr = hr->ppr; - 1a18: 01 55 9f 00 .long 0x9f5501 + 1a18: 04 a3 01 53 rlwimi r1,r24,20,12,2 + (vc->lpcr & ~mask) | (*lpcr & mask)); + 1a1c: 9f 04 88 4a bla fe88049c + *lpcr = kvmppc_filter_lpcr_hv(vcpu->kvm, + 1a20: a8 4a 01 6c xoris r1,r0,19112 ... - vcpu->arch.pid = hr->pidr; - 1a24: 00 00 04 98 stb r0,0(r4) - vcpu->arch.shregs.sprg0 = hr->sprg[0]; - 1a28: 47 c3 48 01 .long 0x148c347 vcpu->arch.dawr1 = hr->dawr1; - 1a2c: 56 04 c3 48 ba c30454 + 1a2c: 00 04 88 47 .long 0x47880400 vcpu->arch.dawrx1 = hr->dawrx1; - 1a30: e8 48 01 6d xoris r1,r8,18664 + 1a30: b3 48 01 54 rlwinm. r1,r0,9,2,25 (vc->lpcr & ~mask) | (*lpcr & mask)); - 1a34: 04 e8 48 98 stb r2,-6140(r8) + 1a34: 04 b3 48 88 lbz r2,-19708(r8) vcpu->arch.cfar = hr->cfar; 1a38: 4a 04 a3 01 .long 0x1a3044a vcpu->arch.ppr = hr->ppr; - 1a3c: 56 9f 04 98 stb r0,-24746(r4) + 1a3c: 54 9f 04 88 lbz r0,-24748(r4) (vc->lpcr & ~mask) | (*lpcr & mask)); - 1a40: 4a a8 4a 01 .long 0x14aa84a + 1a40: 4a 98 4a 01 .long 0x14a984a vcpu->arch.dawr1 = hr->dawr1; - 1a44: 56 04 a8 4a ba fea80454 + 1a44: 54 04 98 4a b fffffffffe981e98 vcpu->arch.dawrx1 = hr->dawrx1; - 1a48: b8 4a 04 a3 lhz r24,19128(r4) + 1a48: a8 4a 04 a3 lhz r24,19112(r4) (vc->lpcr & ~mask) | (*lpcr & mask)); - 1a4c: 01 56 9f 00 .long 0x9f5601 - 1a50: 00 00 00 00 .long 0x0 - 1a54: 00 00 04 f4 psq_stu f0,0(r4),0,0 + 1a4c: 01 54 9f 00 .long 0x9f5401 + ... *lpcr = kvmppc_filter_lpcr_hv(vcpu->kvm, - 1a58: 47 c3 48 01 .long 0x148c347 - 1a5c: 53 04 98 4a bla fe980450 - 1a60: a4 4a 01 53 rlwimi r1,r24,9,10,18 + 1a58: 04 88 47 b0 sth r2,-30716(r7) + 1a5c: 48 01 55 04 .long 0x4550148 + 1a60: b0 48 88 4a b fffffffffe886310 vcpu->arch.hfscr = l2_hv->hfscr & (HFSCR_INTR_CAUSE | vcpu->arch.hfscr_permitted); - 1a64: 04 a4 4a a8 lha r2,-23548(r10) - 1a68: 4a 02 8c 00 .long 0x8c024a + 1a64: 04 a3 01 55 rlwinm r1,r8,20,12,2 + 1a68: 9f 04 88 4a bla fe88049c vcpu->arch.dawrx0 = l2_hv->dawrx0 & ~DAWRX_HYP; - 1a6c: 00 00 00 00 .long 0x0 + 1a6c: 98 4a 01 55 rlwinm r1,r8,9,10,12 if ((l2_hv->ciabr & CIABR_PRIV) == CIABR_PRIV_HYPER) - 1a70: 00 04 c4 48 b c41e70 + 1a70: 04 98 4a a8 lha r2,-26620(r10) vcpu->arch.hfscr = l2_hv->hfscr & (HFSCR_INTR_CAUSE | vcpu->arch.hfscr_permitted); - 1a74: f0 48 01 53 rlwimi r1,r24,9,3,24 + 1a74: 4a 04 a3 01 .long 0x1a3044a *lpcr = kvmppc_filter_lpcr_hv(vcpu->kvm, - 1a78: 04 f0 48 e0 lq r2,-4096(r8) - vcpu->arch.dawrx0 = l2_hv->dawrx0 & ~DAWRX_HYP; - 1a7c: 49 01 6b 00 .long 0x6b0149 - vcpu->arch.dawrx1 = l2_hv->dawrx1 & ~DAWRX_HYP; - 1a80: 02 00 00 00 .long 0x2 + 1a78: 55 9f 00 00 .long 0x9f55 + ... vcpu->arch.hfscr = l2_hv->hfscr & (HFSCR_INTR_CAUSE | vcpu->arch.hfscr_permitted); - 1a84: 00 00 00 00 .long 0x0 + 1a84: 00 04 88 47 .long 0x47880400 if ((l2_hv->ciabr & CIABR_PRIV) == CIABR_PRIV_HYPER) - 1a88: 00 00 04 bc stmw r0,0(r4) + 1a88: b3 48 01 56 rlwinm. r1,r16,9,2,25 vcpu->arch.hfscr = l2_hv->hfscr & (HFSCR_INTR_CAUSE | vcpu->arch.hfscr_permitted); - 1a8c: 48 d8 48 0b tdi 26,r8,-10168 + 1a8c: 04 b3 48 d8 stfd f2,-19708(r8) vcpu->arch.dawrx0 = l2_hv->dawrx0 & ~DAWRX_HYP; - 1a90: 31 8f 70 0c twi 3,r16,-28879 + 1a90: 48 01 6d 04 .long 0x46d0148 vcpu->arch.dawrx1 = l2_hv->dawrx1 & ~DAWRX_HYP; - 1a94: ff ff ff ff fnmadd. f31,f31,f31,f31 + 1a94: d8 48 88 4a b fffffffffe88636c if ((l2_hv->ciabr & CIABR_PRIV) == CIABR_PRIV_HYPER) - 1a98: 1a 24 9f 04 .long 0x49f241a + 1a98: 04 a3 01 56 rlwinm r1,r16,20,12,2 vcpu->arch.hfscr = l2_hv->hfscr & (HFSCR_INTR_CAUSE | vcpu->arch.hfscr_permitted); - 1a9c: d8 48 83 49 b 1836374 + 1a9c: 9f 04 88 4a bla fe88049c vcpu->arch.dawrx0 = l2_hv->dawrx0 & ~DAWRX_HYP; - 1aa0: 0b 31 79 00 .long 0x79310b + 1aa0: 98 4a 01 56 rlwinm r1,r16,9,10,12 vcpu->arch.dawrx1 = l2_hv->dawrx1 & ~DAWRX_HYP; - 1aa4: 0c ff ff ff .long 0xffffff0c + 1aa4: 04 98 4a a8 lha r2,-26620(r10) if ((l2_hv->ciabr & CIABR_PRIV) == CIABR_PRIV_HYPER) - 1aa8: ff 1a 24 9f stbu r25,6911(r4) + 1aa8: 4a 04 a3 01 .long 0x1a3044a vcpu->arch.ciabr = l2_hv->ciabr & ~CIABR_PRIV; - 1aac: 04 84 49 b4 sthu r2,-31740(r9) - 1ab0: 49 01 6e 04 .long 0x46e0149 + 1aac: 56 9f 00 00 .long 0x9f56 + 1ab0: 00 00 00 00 .long 0x0 vcpu->arch.ret = RESUME_GUEST; - 1ab4: b4 49 bc 49 b 1bc6468 - 1ab8: 06 8e 00 79 rldicr r0,r8,49,24 - 1abc: 00 1c 9f 04 .long 0x49f1c00 + 1ab4: 00 04 e4 47 .long 0x47e40400 + 1ab8: b3 48 01 53 rlwimi. r1,r24,9,2,25 + 1abc: 04 88 4a 94 stwu r2,-30716(r10) r = kvmhv_run_single_vcpu(vcpu, hdec_exp, lpcr); - 1ac0: bc 49 dc 49 b 1dc647c - 1ac4: 01 6e 00 01 .long 0x1006e01 - 1ac8: 01 01 00 00 .long 0x101 - ... + 1ac0: 4a 01 53 04 .long 0x453014a + 1ac4: 94 4a 98 4a b fffffffffe986558 + 1ac8: 02 8c 00 00 .long 0x8c02 + 1acc: 00 00 00 00 .long 0x0 + 1ad0: 04 b4 48 e0 lq r2,-19456(r8) } while (is_kvmppc_resume_guest(r)); - 1ad4: 00 00 00 04 .long 0x4000000 + 1ad4: 48 01 53 04 .long 0x4530148 r = kvmhv_run_single_vcpu(vcpu, hdec_exp, lpcr); - 1ad8: b4 48 bc 48 b bc638c + 1ad8: e0 48 d0 49 b 1d063b8 } while (is_kvmppc_resume_guest(r)); - 1adc: 05 76 00 3c lis r0,30213 + 1adc: 01 6b 00 02 .long 0x2006b01 + ... l2_regs = vcpu->arch.regs; - 1ae0: 24 9f 04 bc stmw r0,-24796(r4) - 1ae4: 48 c3 48 11 vmulesh v10,v8,v24 - 1ae8: 09 ff 8f 00 .long 0x8fff09 - 1aec: 0c ff ff ff .long 0xffffff0c - 1af0: ff 1a 24 76 andis. r4,r17,6911 + 1ae8: 00 04 ac 48 b ac1ee8 + 1aec: c8 48 0b 31 addic r8,r11,18632 + 1af0: 8f 70 0c ff .long 0xff0c708f struct kvmppc_vcore *vc = vcpu->arch.vcore; - 1af4: 00 3c 24 1a lxvp vs48,15360(r4) + 1af4: ff ff ff 1a .long 0x1affffff l2_regs.msr = vcpu->arch.shregs.msr; - 1af8: 9f 04 c3 48 bla c3049c + 1af8: 24 9f 04 c8 lfd f0,-24796(r4) hr->srr0 = vcpu->arch.shregs.srr0; - 1afc: e4 48 11 09 tdgti r17,18660 + 1afc: 48 f3 48 0b tdi 26,r8,-3256 delta_purr = vcpu->arch.purr - l2_hv.purr; - 1b00: ff 8f 00 0c twi 0,r0,-28673 + 1b00: 31 79 00 0c twi 0,r0,31025 delta_spurr = vcpu->arch.spurr - l2_hv.spurr; 1b04: ff ff ff ff fnmadd. f31,f31,f31,f31 delta_ic = vcpu->arch.ic - l2_hv.ic; - 1b08: 1a 24 8d 00 .long 0x8d241a + 1b08: 1a 24 9f 04 .long 0x49f241a hr->srr0 = vcpu->arch.shregs.srr0; - 1b0c: 3c 24 1a 9f stbu r24,9276(r26) - 1b10: 04 e4 48 ec dsub f2,f8,f28 + 1b0c: f4 48 a4 49 b 1a46400 + 1b10: 01 6e 04 a4 lhzu r0,28161(r4) l2_regs.msr = vcpu->arch.shregs.msr; - 1b14: 48 0f 09 ff .long 0xff090f48 + 1b14: 49 ac 49 06 .long 0x649ac49 hr->srr0 = vcpu->arch.shregs.srr0; - 1b18: 8f 00 0c ff .long 0xff0c008f + 1b18: 8e 00 79 00 .long 0x79008e hr->dpdes = vc->dpdes; - 1b1c: ff ff ff 1a .long 0x1affffff + 1b1c: 1c 9f 04 ac lhau r0,-24804(r4) hr->vtb = vc->vtb; - 1b20: 24 76 00 1a .long 0x1a007624 - hr->srr0 = vcpu->arch.shregs.srr0; - 1b24: 9f 04 ec 48 bla ec049c - 1b28: f8 48 07 8f lbzu r24,18680(r7) - hr->pidr = vcpu->arch.pid; - 1b2c: 00 1f 76 00 .long 0x761f00 + 1b20: 49 cc 49 01 .long 0x149cc49 hr->srr0 = vcpu->arch.shregs.srr0; - 1b30: 1a 9f 04 f8 stq r0,-24808(r4) + 1b24: 6e 00 01 01 .long 0x101006e + 1b28: 01 00 00 00 .long 0x1 + ... delta_vtb = vc->vtb - l2_hv.vtb; - 1b34: 48 fc 48 06 .long 0x648fc48 + 1b34: 00 00 04 a4 lhzu r0,0(r4) delta_purr = vcpu->arch.purr - l2_hv.purr; - 1b38: 8f 00 76 00 .long 0x76008f + 1b38: 48 ac 48 05 .long 0x548ac48 hr->srr0 = vcpu->arch.shregs.srr0; - 1b3c: 1a 9f 04 fc .long 0xfc049f1a - 1b40: 48 83 49 0f twi 26,r9,-31928 + 1b3c: 76 00 3c 24 dozi r1,r28,118 + 1b40: 9f 04 ac 48 bla ac049c delta_spurr = vcpu->arch.spurr - l2_hv.spurr; - 1b44: 09 ff 79 10 .long 0x1079ff09 + 1b44: b3 48 11 09 tdgti r17,18611 delta_ic = vcpu->arch.ic - l2_hv.ic; - 1b48: 0c ff ff ff .long 0xffffff0c + 1b48: ff 8f 00 0c twi 0,r0,-28673 hr->srr0 = vcpu->arch.shregs.srr0; - 1b4c: ff 1a 24 76 andis. r4,r17,6911 + 1b4c: ff ff ff ff fnmadd. f31,f31,f31,f31 hr->dpdes = vc->dpdes; - 1b50: 00 1a 9f 04 .long 0x49f1a00 + 1b50: 1a 24 76 00 .long 0x76241a delta_vtb = vc->vtb - l2_hv.vtb; - 1b54: 84 49 dc 49 b 1dc64d8 + 1b54: 3c 24 1a 9f stbu r24,9276(r26) hr->vtb = vc->vtb; - 1b58: 01 6f 00 02 .long 0x2006f01 + 1b58: 04 b3 48 d4 stfsu f2,-19708(r8) hr->purr = vcpu->arch.purr; - 1b5c: 00 04 f8 47 .long 0x47f80400 + 1b5c: 48 11 09 ff xscmpexpqp cr6,v9,v2 hr->pidr = vcpu->arch.pid; - 1b60: b4 48 01 55 rlwinm r1,r8,9,2,26 + 1b60: 8f 00 0c ff .long 0xff0c008f hr->spurr = vcpu->arch.spurr; - 1b64: 00 05 00 00 .long 0x500 + 1b64: ff ff ff 1a .long 0x1affffff hr->srr0 = vcpu->arch.shregs.srr0; - 1b68: 01 00 00 04 .long 0x4000001 + 1b68: 24 8d 00 3c lis r0,-29404 hr->ic = vcpu->arch.ic; - 1b6c: f8 47 80 48 b 806364 + 1b6c: 24 1a 9f 04 .long 0x49f1a24 hr->srr0 = vcpu->arch.shregs.srr0; - 1b70: 02 30 9f 04 .long 0x49f3002 + 1b70: d4 48 dc 48 b dc6444 hr->cfar = vcpu->arch.cfar; - 1b74: 80 48 88 48 b 8863f4 + 1b74: 0f 09 ff 8f .long 0x8fff090f switch (vcpu->arch.trap) { - 1b78: 01 59 04 94 stwu r0,22785(r4) + 1b78: 00 0c ff ff .long 0xffff0c00 hr->ppr = vcpu->arch.ppr; - 1b7c: 48 a8 48 01 .long 0x148a848 + 1b7c: ff ff 1a 24 dozi r0,r26,-1 switch (vcpu->arch.trap) { - 1b80: 59 00 00 00 .long 0x59 - ... - 1b8c: 00 00 04 a8 lha r0,0(r4) - 1b90: 53 d0 54 01 .long 0x154d053 - 1b94: 53 04 d0 54 rlwinm. r16,r6,0,17,9 - 1b98: d0 57 01 62 ori r1,r16,22480 - 1b9c: 04 d0 57 ec dadd f2,f23,f26 - 1ba0: 57 04 8a a0 lhz r4,1111(r10) + 1b80: 76 00 1a 9f stbu r24,118(r26) + hr->cfar = vcpu->arch.cfar; + 1b84: 04 dc 48 e8 ld r2,-9212(r8) + hr->ppr = vcpu->arch.ppr; + 1b88: 48 07 8f 00 .long 0x8f0748 + switch (vcpu->arch.trap) { + 1b8c: 1f 76 00 1a .long 0x1a00761f + 1b90: 9f 04 e8 48 bla e8049c + 1b94: ec 48 06 8f lbzu r24,18668(r6) + 1b98: 00 76 00 1a lxvp vs16,30208(0) + 1b9c: 9f 04 ec 48 bla ec049c + 1ba0: f3 48 0f 09 tdgti r15,18675 hr->asdr = vcpu->arch.fault_gpa; - 1ba4: 67 9f 04 ec .long 0xec049f67 - 1ba8: 57 a4 58 04 .long 0x458a457 + 1ba4: ff 79 10 0c twi 0,r16,31231 + 1ba8: ff ff ff ff fnmadd. f31,f31,f31,f31 break; - 1bac: a3 01 53 9f stbu r26,419(r19) + 1bac: 1a 24 76 00 .long 0x76241a if (l2_regs.msr & MSR_TS_MASK) - 1bb0: 04 a4 58 b4 sthu r2,-23548(r24) + 1bb0: 1a 9f 04 f4 stxsd v0,-24808(r4) vcpu->arch.shregs.msr = saved_l1_regs.msr & ~MSR_TS_MASK; - 1bb4: 58 01 53 04 .long 0x4530158 - 1bb8: b4 58 fc 58 rlmi r28,r7,r11,2,26 + 1bb4: 48 cc 49 01 .long 0x149cc48 + 1bb8: 6f 00 02 00 .long 0x2006f if (l2_regs.msr & MSR_TS_MASK) - 1bbc: 04 a3 01 53 rlwimi r1,r24,20,12,2 + 1bbc: 04 e8 47 a4 lhzu r2,-6140(r7) vcpu->arch.shregs.msr |= MSR_TS_S; - 1bc0: 9f 00 00 00 .long 0x9f - ... + 1bc0: 48 01 55 00 .long 0x550148 + 1bc4: 05 00 00 01 .long 0x1000005 + vcpu->arch.nested = NULL; + 1bc8: 00 00 04 e8 ld r0,0(r4) vcpu->arch.regs = saved_l1_regs; - 1bcc: 04 a8 53 d0 stfs f2,-22524(r19) - 1bd0: 54 01 54 04 .long 0x4540154 - 1bd4: d0 54 a0 58 rlmi r0,r5,r10,19,8 + 1bcc: 47 f0 47 02 .long 0x247f047 + 1bd0: 30 9f 04 f0 xxsel vs0,vs4,vs19,vs28 + 1bd4: 47 f8 47 01 .long 0x147f847 vcpu->arch.nested = NULL; - 1bd8: 01 63 04 a0 lhz r0,25345(r4) + 1bd8: 59 04 84 48 bl 842030 vcpu->arch.regs = saved_l1_regs; - 1bdc: 58 a4 58 04 .long 0x458a458 - 1be0: a3 01 54 9f stbu r26,419(r20) - vc->pcr = hr->pcr | PCR_MASK; - 1be4: 04 a4 58 b4 sthu r2,-23548(r24) - kvmhv_put_nested(l2); - 1be8: 58 01 54 04 .long 0x4540158 + 1bdc: 98 48 01 59 rlmi r1,r8,r9,2,12 + ... vcpu->arch.shregs.msr = saved_l1_regs.msr & ~MSR_TS_MASK; - 1bec: b4 58 fc 58 rlmi r28,r7,r11,2,26 + 1bec: 00 04 98 53 rlwimi r24,r28,0,16,0 vc->tb_offset = saved_l1_hv.tb_offset; - 1bf0: 01 63 00 00 .long 0x6301 + 1bf0: c0 54 01 53 rlwimi r1,r24,10,19,0 vc->pcr = hr->pcr | PCR_MASK; - 1bf4: 00 00 00 04 .long 0x4000000 + 1bf4: 04 c0 54 c0 lfs f2,-16380(r20) vcpu->arch.dec_expires -= l2_hv.tb_offset; - 1bf8: a8 53 e0 53 rlwimi r0,r31,10,14,20 + 1bf8: 57 01 62 04 .long 0x4620157 vc->pcr = hr->pcr | PCR_MASK; - 1bfc: 01 55 04 e0 lq r0,21760(r4) + 1bfc: c0 57 dc 57 rlwinm r28,r30,10,31,0 vcpu->arch.dawrx0 = hr->dawrx0; - 1c00: 53 fc 58 04 .long 0x458fc53 + 1c00: 04 8a a0 67 oris r0,r29,35332 vc->pcr = hr->pcr | PCR_MASK; - 1c04: a3 01 55 9f stbu r26,419(r21) + 1c04: 9f 04 dc 57 rlwinm. r28,r30,0,18,15 vcpu->arch.ciabr = hr->ciabr; - 1c08: 00 00 02 02 .long 0x2020000 - ... + 1c08: 94 58 04 a3 lhz r24,22676(r4) + vc->dpdes = hr->dpdes; + 1c0c: 01 53 9f 04 .long 0x49f5301 + vcpu->arch.hfscr = hr->hfscr; + 1c10: 94 58 a4 58 rlmi r4,r5,r11,2,10 vcpu->arch.dawr0 = hr->dawr0; - 1c14: 00 00 00 04 .long 0x4000000 + 1c14: 01 53 04 a4 lhzu r0,21249(r4) vc->tb_offset = saved_l1_hv.tb_offset; - 1c18: a8 53 80 54 rlwinm r0,r4,10,14,20 + 1c18: 58 ec 58 04 .long 0x458ec58 vc->pcr = hr->pcr | PCR_MASK; - 1c1c: 01 56 04 80 lwz r0,22017(r4) - vcpu->arch.dec_expires -= l2_hv.tb_offset; - 1c20: 54 d0 54 06 .long 0x654d054 - struct kvmppc_vcore *vc = vcpu->arch.vcore; - 1c24: 87 00 76 00 .long 0x760087 + 1c1c: a3 01 53 9f stbu r26,419(r19) + ... vcpu->arch.purr = hr->purr; - 1c28: 1a 9f 04 d0 stfs f0,-24806(r4) + 1c28: 00 00 00 04 .long 0x4000000 vc->vtb = hr->vtb; - 1c2c: 54 dc 57 06 .long 0x657dc54 + 1c2c: 98 53 c0 54 rlwinm r0,r6,10,14,12 vc->pcr = hr->pcr | PCR_MASK; - 1c30: 87 00 86 00 .long 0x860087 + 1c30: 01 54 04 c0 lfs f0,21505(r4) vcpu->arch.dec_expires -= l2_hv.tb_offset; - 1c34: 1a 9f 04 dc stfdu f0,-24806(r4) + 1c34: 54 90 58 01 .long 0x1589054 vc->pcr = hr->pcr | PCR_MASK; - 1c38: 57 e0 57 07 .long 0x757e057 + 1c38: 63 04 90 58 rlmi. r16,r4,r0,17,17 vcpu->arch.purr = hr->purr; - 1c3c: 87 00 a3 01 .long 0x1a30087 - 1c40: 56 1a 9f 04 .long 0x49f1a56 + 1c3c: 94 58 04 a3 lhz r24,22676(r4) + 1c40: 01 54 9f 04 .long 0x49f5401 vcpu->arch.dec_expires -= l2_hv.tb_offset; - 1c44: e0 57 84 58 rlmi r4,r4,r10,31,16 + 1c44: 94 58 a4 58 rlmi r4,r5,r11,2,10 vc->pcr = hr->pcr | PCR_MASK; - 1c48: 12 a3 01 57 rlwinm r1,r24,20,12,9 + 1c48: 01 54 04 a4 lhzu r0,21505(r4) vcpu->arch.shregs.sprg0 = hr->sprg[0]; - 1c4c: 1f 3b 24 40 bdnzfla 4*cr1+lt,3b1c <.debug_loclists+0x3b1c> + 1c4c: 58 ec 58 01 .long 0x158ec58 vc->dpdes = hr->dpdes; - 1c50: 47 24 1f 1a .long 0x1a1f2447 + 1c50: 63 00 00 00 .long 0x63 vcpu->arch.dawrx0 = hr->dawrx0; - 1c54: 3b 25 a3 01 .long 0x1a3253b + 1c54: 00 00 04 98 stb r0,0(r4) vcpu->arch.shregs.sprg0 = hr->sprg[0]; - 1c58: 56 1a 9f 04 .long 0x49f1a56 + 1c58: 53 d0 53 01 .long 0x153d053 vcpu->arch.ciabr = hr->ciabr; - 1c5c: a4 58 ac 58 rlmi r12,r5,r11,2,18 + 1c5c: 55 04 d0 53 rlwimi. r16,r30,0,17,10 vcpu->arch.purr = hr->purr; - 1c60: 06 87 00 76 andis. r0,r16,34566 + 1c60: ec 58 04 a3 lhz r24,22764(r4) vcpu->arch.shregs.sprg0 = hr->sprg[0]; - 1c64: 00 1a 9f 04 .long 0x49f1a00 - 1c68: ac 58 b4 58 rlmi r20,r5,r11,2,22 - vcpu->arch.purr = hr->purr; - 1c6c: 0f 77 00 3b li r24,30479 - 1c70: 24 40 47 24 dozi r2,r7,16420 - vcpu->arch.shregs.sprg0 = hr->sprg[0]; - 1c74: 1f 1a 3b 25 dozi r9,r27,6687 + 1c64: 01 55 9f 00 .long 0x9f5501 + 1c68: 00 02 02 00 attn + ... + 1c74: 00 00 04 98 stb r0,0(r4) vcpu->arch.hfscr = hr->hfscr; - 1c78: 76 00 1a 9f stbu r24,118(r26) + 1c78: 53 f0 53 01 .long 0x153f053 vcpu->arch.dawr0 = hr->dawr0; - 1c7c: 00 00 00 00 .long 0x0 + 1c7c: 56 04 f0 53 rlwimi r16,r31,0,17,11 vc->vtb = hr->vtb; - 1c80: 00 00 00 04 .long 0x4000000 + 1c80: c0 54 06 87 lwzu r24,21696(r6) vcpu->arch.shregs.sprg0 = hr->sprg[0]; - 1c84: a8 53 e8 53 rlwimi r8,r31,10,14,20 + 1c84: 00 76 00 1a lxvp vs16,30208(0) vcpu->arch.pid = hr->pidr; - 1c88: 01 57 04 e8 ldu r0,22272(r4) + 1c88: 9f 04 c0 54 rlwinm. r0,r6,0,18,15 vcpu->arch.shregs.sprg0 = hr->sprg[0]; - 1c8c: 53 d0 54 04 .long 0x454d053 - 1c90: 77 00 1f 9f stbu r24,119(r31) + 1c8c: cc 57 06 87 lwzu r24,22476(r6) + 1c90: 00 86 00 1a lxvp vs16,-31232(0) vcpu->arch.purr += delta_purr; - 1c94: 04 d0 54 fc daddq f2,f20,f26 + 1c94: 9f 04 cc 57 rlwinm. r12,r30,0,18,15 vcpu->arch.spurr += delta_spurr; - 1c98: 58 04 a3 01 .long 0x1a30458 + 1c98: d0 57 07 87 lwzu r24,22480(r7) vcpu->arch.shregs.sprg0 = hr->sprg[0]; - 1c9c: 57 9f 00 00 .long 0x9f57 + 1c9c: 00 a3 01 56 rlwinm r1,r16,20,12,0 vcpu->arch.ic += delta_ic; - 1ca0: 00 00 00 00 .long 0x0 + 1ca0: 1a 9f 04 d0 stfs f0,-24806(r4) vcpu->arch.shregs.sprg0 = hr->sprg[0]; - 1ca4: 00 04 fc 53 rlwimi r28,r31,0,16,0 - 1ca8: e8 57 01 69 xori r1,r8,22504 + 1ca4: 57 f4 57 12 vmsumcud v18,v23,v30,v17 + 1ca8: a3 01 57 1f mulli r26,r23,419 vcpu->arch.cfar = hr->cfar; - 1cac: 04 a4 58 b0 sth r2,-23548(r24) + 1cac: 3b 24 40 47 .long 0x4740243b vcpu->arch.ppr = hr->ppr; - 1cb0: 58 01 69 04 .long 0x4690158 + 1cb0: 24 1f 1a 3b addi r24,r26,7972 vcpu->arch.pid = hr->pidr; - 1cb4: b0 58 b4 58 rlmi r20,r5,r11,2,24 + 1cb4: 25 a3 01 56 rlwinm. r1,r16,20,12,18 vcpu->arch.shregs.sprg0 = hr->sprg[0]; - 1cb8: 08 75 00 74 andis. r0,r0,29960 + 1cb8: 1a 9f 04 94 stwu r0,-24806(r4) vcpu->arch.dawr1 = hr->dawr1; - 1cbc: b0 01 06 1c mulli r0,r6,432 + 1cbc: 58 9c 58 06 .long 0x6589c58 vcpu->arch.dawrx1 = hr->dawrx1; - 1cc0: 9f 00 00 00 .long 0x9f + 1cc0: 87 00 76 00 .long 0x760087 vcpu->arch.purr += delta_purr; - 1cc4: 00 00 00 00 .long 0x0 + 1cc4: 1a 9f 04 9c stbu r0,-24806(r4) vcpu->arch.spurr += delta_spurr; - 1cc8: 00 00 04 80 lwz r0,0(r4) + 1cc8: 58 a4 58 0f twi 26,r24,-23464 vcpu->arch.ic += delta_ic; - 1ccc: 54 d4 57 01 .long 0x157d454 + 1ccc: 77 00 3b 24 dozi r1,r27,119 vcpu->arch.cfar = hr->cfar; - 1cd0: 64 04 a4 58 rlmi r4,r5,r0,17,18 + 1cd0: 40 47 24 1f mulli r25,r4,18240 vcpu->arch.purr += delta_purr; - 1cd4: a8 58 01 64 oris r1,r0,22696 + 1cd4: 1a 3b 25 76 andis. r5,r17,15130 vcpu->arch.spurr += delta_spurr; - 1cd8: 04 a8 58 b0 sth r2,-22524(r24) + 1cd8: 00 1a 9f 00 attn vcpu->arch.ppr = hr->ppr; - 1cdc: 58 09 a3 01 .long 0x1a30958 + 1cdc: 00 00 00 00 .long 0x0 vcpu->arch.ic += delta_ic; - 1ce0: 57 40 25 89 lbz r9,16471(r5) + 1ce0: 00 00 04 98 stb r0,0(r4) vcpu->arch.dawr1 = hr->dawr1; - 1ce4: 00 22 9f 04 .long 0x49f2200 + 1ce4: 53 d8 53 01 .long 0x153d853 vcpu->arch.dawrx1 = hr->dawrx1; - 1ce8: b0 58 b4 58 rlmi r20,r5,r11,2,24 + 1ce8: 57 04 d8 53 rlwimi. r24,r30,0,17,11 vcpu->arch.purr += delta_purr; - 1cec: 0e a3 01 57 rlwinm r1,r24,20,12,7 + 1cec: c0 54 04 77 andis. r4,r24,21696 vcpu->arch.spurr += delta_spurr; - 1cf0: 40 25 75 00 .long 0x752540 + 1cf0: 00 1f 9f 04 .long 0x49f1f00 vcpu->arch.ic += delta_ic; - 1cf4: 74 b0 01 06 .long 0x601b074 + 1cf4: c0 54 ec 58 rlmi r12,r7,r10,19,0 vc->vtb += delta_vtb; - 1cf8: 1c 22 9f 00 .long 0x9f221c - 1cfc: 01 00 00 00 .long 0x1 + 1cf8: 04 a3 01 57 rlwinm r1,r24,20,12,2 + 1cfc: 9f 00 00 00 .long 0x9f 1d00: 00 00 00 00 .long 0x0 - 1d04: 04 80 54 e0 lq r2,-32768(r20) + 1d04: 04 ec 53 d8 stfd f2,-5116(r19) kvmhv_put_nested(l2); - 1d08: 57 01 67 04 .long 0x4670157 - 1d0c: e0 57 84 58 rlmi r4,r4,r10,31,16 - 1d10: 0e a3 01 57 rlwinm r1,r24,20,12,7 + 1d08: 57 01 69 04 .long 0x4690157 + 1d0c: 94 58 a0 58 rlmi r0,r5,r11,2,10 + 1d10: 01 69 04 a0 lhz r0,26881(r4) if (kvmppc_need_byteswap(vcpu)) { - 1d14: 1f 3b 24 40 bdnzfla 4*cr1+lt,3b1c <.debug_loclists+0x3b1c> - 1d18: 47 24 1f 1a .long 0x1a1f2447 + 1d14: 58 a4 58 08 tdllti r24,-23464 + 1d18: 75 00 74 b0 sth r3,117(r20) vcpu->____srcu_idx = srcu_read_lock(&vcpu->kvm->srcu); - 1d1c: 3b 25 9f 04 .long 0x49f253b + 1d1c: 01 06 1c 9f stbu r24,1537(r28) + ... retval = __srcu_read_lock(ssp); - 1d20: a4 58 ac 58 rlmi r12,r5,r11,2,18 - 1d24: 01 67 04 ac lhau r0,26369(r4) - 1d28: 58 b4 58 0c twllti r24,-19368 + 1d28: 00 04 f0 53 rlwimi r16,r31,0,16,0 size = hv_guest_state_size(l2_hv->version); - 1d2c: 77 00 3b 24 dozi r1,r27,119 - 1d30: 40 47 24 1f mulli r25,r4,18240 - 1d34: 1a 3b 25 9f stbu r25,15130(r5) - 1d38: 00 02 00 00 attn - 1d3c: 00 04 d0 54 rlwinm r16,r6,0,16,0 - 1d40: dc 54 0a 89 lbz r8,21724(r10) - 1d44: 00 33 24 83 lwz r25,13056(r4) - 1d48: c8 01 06 22 subfic r16,r6,456 + 1d2c: c4 57 01 64 oris r1,r0,22468 + 1d30: 04 94 58 98 stb r2,-27644(r24) + 1d34: 58 01 64 04 .long 0x4640158 + 1d38: 98 58 a0 58 rlmi r0,r5,r11,2,12 + 1d3c: 09 a3 01 57 rlwinm. r1,r24,20,12,4 + 1d40: 40 25 89 00 .long 0x892540 + 1d44: 22 9f 04 a0 lhz r0,-24798(r4) + 1d48: 58 a4 58 0e twi 18,r24,-23464 srcu_read_unlock(&vcpu->kvm->srcu, vcpu->____srcu_idx); - 1d4c: 9f 04 dc 54 rlwinm. r28,r6,0,18,15 + 1d4c: a3 01 57 40 bdzfla 4*cr5+so,1a0 <.debug_loclists+0x1a0> WARN_ON_ONCE(idx & ~0x1); - 1d50: fc 54 01 59 rlmi r1,r8,r10,19,30 - 1d54: 00 03 02 04 .long 0x4020300 - 1d58: d0 54 b8 57 rlwinm r24,r29,10,19,8 + 1d50: 25 75 00 74 andis. r0,r0,29989 + 1d54: b0 01 06 1c mulli r0,r6,432 + 1d58: 22 9f 00 01 .long 0x1009f22 __srcu_read_unlock(ssp, idx); - 1d5c: 06 87 00 86 lu r16,-30970(0) - 1d60: 00 1a 9f 00 attn + 1d5c: 00 00 00 00 .long 0x0 + 1d60: 00 00 00 04 .long 0x4000000 return H_AUTHORITY; - 1d64: 03 00 00 00 .long 0x3 - 1d68: 04 d0 54 dc stfdu f2,-12284(r20) - 1d6c: 54 0a 89 00 .long 0x890a54 - 1d70: 33 24 83 c8 lfd f4,9267(r3) - 1d74: 01 06 22 9f stbu r25,1537(r2) - 1d78: 04 dc 54 fc dsubq f2,f20,f26 - 1d7c: 54 01 59 00 .long 0x590154 - 1d80: 02 00 00 00 .long 0x2 - 1d84: 00 00 00 00 .long 0x0 - 1d88: 01 00 00 00 .long 0x1 - 1d8c: 00 02 04 f0 xvaddsp vs0,vs4,vs0 - 1d90: 54 fc 54 01 .long 0x154fc54 - 1d94: 6f 04 fc 54 rlwinm. r28,r7,0,17,23 - 1d98: 84 55 01 6e xoris r1,r16,21892 - 1d9c: 04 84 55 98 stb r2,-31740(r21) - 1da0: 55 01 6f 04 .long 0x46f0155 - 1da4: 98 55 b8 55 rlwinm r24,r13,10,22,12 - 1da8: 01 61 04 c4 lfsu f0,24833(r4) - 1dac: 55 d8 55 01 .long 0x155d855 + 1d64: f0 53 d0 57 rlwinm r16,r30,10,15,24 + 1d68: 01 67 04 d0 stfs f0,26369(r4) + 1d6c: 57 f4 57 0e twi 18,r23,-2985 + 1d70: a3 01 57 1f mulli r26,r23,419 + 1d74: 3b 24 40 47 .long 0x4740243b + 1d78: 24 1f 1a 3b addi r24,r26,7972 + 1d7c: 25 9f 04 94 stwu r0,-24795(r4) + 1d80: 58 9c 58 01 .long 0x1589c58 + 1d84: 67 04 9c 58 rlmi. r28,r4,r0,17,19 + 1d88: a4 58 0c 77 andis. r12,r24,22692 + 1d8c: 00 3b 24 40 bdnzf 4*cr1+lt,588c + 1d90: 47 24 1f 1a .long 0x1a1f2447 + 1d94: 3b 25 9f 00 .long 0x9f253b + 1d98: 02 00 00 00 .long 0x2 + 1d9c: 04 c0 54 cc lfdu f2,-16380(r20) + 1da0: 54 0a 89 00 .long 0x890a54 + 1da4: 33 24 83 c8 lfd f4,9267(r3) + 1da8: 01 06 22 9f stbu r25,1537(r2) + 1dac: 04 cc 54 ec dsub f2,f20,f25 switch (vcpu->arch.trap) { - 1db0: 6f 04 d8 55 rlwinm. r24,r14,0,17,23 - 1db4: 80 56 02 30 addic r0,r2,22144 + 1db0: 54 01 59 00 .long 0x590154 + 1db4: 03 02 04 c0 lfs f0,515(r4) hr->hfscr = ((~HFSCR_INTR_CAUSE & hr->hfscr) | - 1db8: 9f 04 ac 57 rlwinm. r12,r29,0,18,15 - 1dbc: b8 57 02 30 addic r0,r2,22456 + 1db8: 54 a8 57 06 .long 0x657a854 + 1dbc: 87 00 86 00 .long 0x860087 break; - 1dc0: 9f 00 06 00 .long 0x6009f - 1dc4: 00 00 00 00 .long 0x0 - 1dc8: 00 00 01 00 .long 0x10000 - 1dcc: 00 00 00 02 .long 0x2000000 - 1dd0: 04 f0 54 fc daddq f2,f20,f30 + 1dc0: 1a 9f 00 03 .long 0x3009f1a + 1dc4: 00 00 00 04 .long 0x4000000 + 1dc8: c0 54 cc 54 rlwinm r12,r6,10,19,0 + 1dcc: 0a 89 00 33 addic r24,r0,-30454 + 1dd0: 24 83 c8 01 .long 0x1c88324 return kvm_vcpu_write_guest(vcpu, hv_ptr, l2_hv, size) || - 1dd4: 54 01 6f 04 .long 0x46f0154 - 1dd8: fc 54 84 55 rlwinm r4,r12,10,19,30 - 1ddc: 01 6e 04 84 lwzu r0,28161(r4) - 1de0: 55 b0 55 01 .long 0x155b055 - 1de4: 6f 04 b0 55 rlwinm. r16,r13,0,17,23 - 1de8: b8 55 01 6b xori r1,r24,21944 - 1dec: 04 c4 55 d8 stfd f2,-15356(r21) - 1df0: 55 01 6f 04 .long 0x46f0155 - 1df4: d8 55 80 56 rlwinm r0,r20,10,23,12 - WARN_ON_ONCE(idx & ~0x1); - 1df8: 02 30 9f 04 .long 0x49f3002 - 1dfc: ac 57 b8 57 rlwinm r24,r29,10,30,22 - 1e00: 02 30 9f 00 .long 0x9f3002 + 1dd4: 06 22 9f 04 .long 0x49f2206 + 1dd8: cc 54 ec 54 rlwinm r12,r7,10,19,6 + 1ddc: 01 59 00 02 .long 0x2005901 + 1de0: 00 00 00 00 .long 0x0 + 1de4: 00 00 00 01 .long 0x1000000 + 1de8: 00 00 00 00 .long 0x0 + 1dec: 02 04 e0 54 rlwinm r0,r7,0,16,1 + 1df0: ec 54 01 6f xoris r1,r24,21740 + 1df4: 04 ec 54 f4 psq_stu f2,-1020(r20),1,6 + WARN_ON_ONCE(idx & ~0x1); + 1df8: 54 01 6e 04 .long 0x46e0154 + 1dfc: f4 54 88 55 rlwinm r8,r12,10,19,26 + 1e00: 01 6f 04 88 lbz r0,28417(r4) __srcu_read_unlock(ssp, idx); - 1e04: 00 00 04 84 lwzu r0,0(r4) - 1e08: 55 98 55 01 .long 0x1559855 - 1e0c: 6e 00 05 00 .long 0x5006e + 1e04: 55 a8 55 01 .long 0x155a855 + 1e08: 61 04 b4 55 rlwinm. r20,r13,0,17,16 + 1e0c: c8 55 01 6f xoris r1,r24,21960 if (!MSR_TM_ACTIVE(l2_regs.msr)) - 1e10: 00 02 04 d0 stfs f0,512(r4) - 1e14: 54 dc 54 0a tdi 18,r20,-9132 - 1e18: 89 00 33 24 dozi r1,r19,137 - 1e1c: 83 c8 01 06 .long 0x601c883 - 1e20: 22 9f 04 dc stfdu f0,-24798(r4) - 1e24: 54 f0 54 01 .long 0x154f054 - 1e28: 59 00 00 02 .long 0x2000059 - 1e2c: 04 dc 54 f0 xsmaxcdp vs2,vs52,vs27 - 1e30: 54 01 59 00 .long 0x590154 - 1e34: 01 00 04 ec .long 0xec040001 - 1e38: 54 fc 54 01 .long 0x154fc54 - 1e3c: 6f 00 03 00 .long 0x3006f - 1e40: 04 e0 54 84 lwzu r2,-8188(r20) - 1e44: 58 02 30 9f stbu r25,600(r16) - 1e48: 00 04 01 04 .long 0x4010400 - 1e4c: e0 54 ec 54 rlwinm r12,r7,10,19,16 - 1e50: 02 38 9f 00 .long 0x9f3802 + 1e10: 04 c8 55 f0 xsaddsp vs2,vs53,vs25 + 1e14: 55 02 30 9f stbu r25,597(r16) + 1e18: 04 9c 57 a8 lha r2,-25596(r23) + 1e1c: 57 02 30 9f stbu r25,599(r16) + 1e20: 00 06 00 00 .long 0x600 + 1e24: 00 00 00 00 .long 0x0 + 1e28: 00 01 00 00 .long 0x100 + 1e2c: 00 00 02 04 .long 0x4020000 + 1e30: e0 54 ec 54 rlwinm r12,r7,10,19,16 + 1e34: 01 6f 04 ec .long 0xec046f01 + 1e38: 54 f4 54 01 .long 0x154f454 + 1e3c: 6e 04 f4 54 rlwinm r20,r7,0,17,23 + 1e40: a0 55 01 6f xoris r1,r24,21920 + 1e44: 04 a0 55 a8 lha r2,-24572(r21) + 1e48: 55 01 6b 04 .long 0x46b0155 + 1e4c: b4 55 c8 55 rlwinm r8,r14,10,22,26 + 1e50: 01 6f 04 c8 lfd f0,28417(r4) return H_BAD_MODE; - 1e54: 04 01 04 e0 lq r0,256(r4) - 1e58: 54 ec 54 02 .long 0x254ec54 - 1e5c: 30 9f 00 04 .long 0x4009f30 + 1e54: 55 f0 55 02 .long 0x255f055 + 1e58: 30 9f 04 9c stbu r0,-24784(r4) + 1e5c: 57 a8 57 02 .long 0x257a857 byteswap_hv_regs(&l2_hv); - 1e60: 01 04 e0 54 rlwinm. r0,r7,0,16,0 - 1e64: ec 54 01 59 rlmi r1,r8,r10,19,22 + 1e60: 30 9f 00 00 .long 0x9f30 + 1e64: 00 04 f4 54 rlwinm r20,r7,0,16,0 if (l2_hv.version > HV_GUEST_STATE_VERSION) - 1e68: 00 07 01 04 .long 0x4010700 - 1e6c: e0 54 ec 54 rlwinm r12,r7,10,19,16 - 1e70: 02 30 9f 00 .long 0x9f3002 - 1e74: 07 01 04 e0 lq r0,256(r4) + 1e68: 88 55 01 6e xoris r1,r16,21896 + 1e6c: 00 05 00 00 .long 0x500 + 1e70: 02 04 c0 54 rlwinm r0,r6,0,16,1 + 1e74: cc 54 0a 89 lbz r8,21708(r10) if (kvmppc_need_byteswap(vcpu)) - 1e78: 54 ec 54 01 .long 0x154ec54 - 1e7c: 59 00 00 01 .long 0x1000059 + 1e78: 00 33 24 83 lwz r25,13056(r4) + 1e7c: c8 01 06 22 subfic r16,r6,456 byteswap_pt_regs(&l2_regs); - 1e80: 04 ec 54 ec dsub f2,f20,f29 - 1e84: 54 01 6f 00 .long 0x6f0154 - 1e88: 01 01 01 01 .long 0x1010101 - 1e8c: 04 98 55 b8 lm r2,-26620(r21) - 1e90: 55 06 87 00 .long 0x870655 + 1e80: 9f 04 cc 54 rlwinm. r12,r6,0,18,15 + 1e84: e0 54 01 59 rlmi r1,r8,r10,19,16 + 1e88: 00 00 02 04 .long 0x4020000 + 1e8c: cc 54 e0 54 rlwinm r0,r7,10,19,6 + 1e90: 01 59 00 01 .long 0x1005901 return kvm_vcpu_write_guest(vcpu, hv_ptr, l2_hv, size) || - 1e94: 86 00 1a 9f stbu r24,134(r26) - 1e98: 04 d8 55 ac lhau r2,-10236(r21) - 1e9c: 57 06 87 00 .long 0x870657 - 1ea0: 86 00 1a 9f stbu r24,134(r26) - 1ea4: 00 01 00 01 .long 0x1000100 - 1ea8: 00 00 01 04 .long 0x4010000 - 1eac: 98 55 b8 55 rlwinm r24,r13,10,22,12 + 1e94: 00 04 dc 54 rlwinm r28,r6,0,16,0 + 1e98: ec 54 01 6f xoris r1,r24,21740 + 1e9c: 00 03 00 04 .long 0x4000300 + 1ea0: d0 54 f4 57 rlwinm r20,r31,10,19,8 + 1ea4: 02 30 9f 00 .long 0x9f3002 + 1ea8: 04 01 04 d0 stfs f0,260(r4) + 1eac: 54 dc 54 02 .long 0x254dc54 kvm_vcpu_write_guest(vcpu, regs_ptr, l2_regs, - 1eb0: 01 6e 04 d8 stfd f0,28161(r4) - 1eb4: 55 9c 56 01 .long 0x1569c55 - 1eb8: 6e 04 ac 57 rlwinm r12,r29,0,17,23 - 1ebc: ac 57 01 6e xoris r1,r16,22444 - ... - 1ecc: 02 04 ac 55 rlwinm r12,r13,0,16,1 + 1eb0: 38 9f 00 04 .long 0x4009f38 + 1eb4: 01 04 d0 54 rlwinm. r16,r6,0,16,0 + 1eb8: dc 54 02 30 addic r0,r2,21724 + 1ebc: 9f 00 04 01 .long 0x104009f + 1ec0: 04 d0 54 dc stfdu f2,-12284(r20) + 1ec4: 54 01 59 00 .long 0x590154 + 1ec8: 07 01 04 d0 stfs f0,263(r4) + 1ecc: 54 dc 54 02 .long 0x254dc54 return kvm_vcpu_write_guest(vcpu, hv_ptr, l2_hv, size) || - 1ed0: b8 55 01 53 rlwimi r1,r24,10,22,28 + 1ed0: 30 9f 00 07 .long 0x7009f30 WARN_ON_ONCE(idx & ~0x1); - 1ed4: 04 b8 55 cc lfdu f2,-18428(r21) - 1ed8: 55 01 6d 04 .long 0x46d0155 - 1edc: f0 55 88 56 rlwinm r8,r20,10,23,24 - 1ee0: 01 53 04 88 lbz r0,21249(r4) - 1ee4: 56 ac 57 01 .long 0x157ac56 + 1ed4: 01 04 d0 54 rlwinm. r16,r6,0,16,0 + 1ed8: dc 54 01 59 rlmi r1,r8,r10,19,14 + 1edc: 00 00 01 04 .long 0x4010000 + 1ee0: dc 54 dc 54 rlwinm r28,r6,10,19,14 + 1ee4: 01 6f 00 01 .long 0x1006f01 __srcu_read_unlock(ssp, idx); - 1ee8: 6d 04 ac 57 rlwinm. r12,r29,0,17,22 - 1eec: b7 57 01 53 rlwimi. r1,r24,10,30,27 - 1ef0: 04 b7 57 b8 lm r2,-18684(r23) + 1ee8: 01 01 01 04 .long 0x4010101 + 1eec: 88 55 a8 55 rlwinm r8,r13,10,22,4 + 1ef0: 06 87 00 86 lu r16,-30970(0) if (err) - 1ef4: 57 01 6d 00 .long 0x6d0157 - 1ef8: 07 00 02 00 .long 0x20007 + 1ef4: 00 1a 9f 04 .long 0x49f1a00 + 1ef8: c8 55 9c 57 rlwinm r28,r28,10,23,4 if (r == -EINTR) - 1efc: 00 01 04 98 stb r0,256(r4) - 1f00: 55 b8 55 0d twi 10,r21,-18347 + 1efc: 06 87 00 86 lu r16,-30970(0) + 1f00: 00 1a 9f 00 attn if (vcpu->mmio_needed) { - 1f04: 8e 00 10 80 lwz r0,142(r16) - 1f08: e0 ff ff ff .long 0xffffffe0 - 1f0c: ff ff 07 1a .long 0x1a07ffff + 1f04: 01 00 01 00 .long 0x10001 + 1f08: 00 01 04 88 lbz r0,256(r4) + 1f0c: 55 a8 55 01 .long 0x155a855 return vcpu->arch.trap; - 1f10: 9f 04 e4 55 rlwinm. r4,r15,0,18,15 - 1f14: 80 56 0d 8e lbzu r16,22144(r13) - 1f18: 00 10 80 e0 lq r4,4096(0) - 1f1c: ff ff ff ff fnmadd. f31,f31,f31,f31 + 1f10: 6e 04 c8 55 rlwinm r8,r14,0,17,23 + 1f14: 8c 56 01 6e xoris r1,r16,22156 + 1f18: 04 9c 57 9c stbu r2,-25596(r23) + 1f1c: 57 01 6e 00 .long 0x6e0157 + ... mutex_lock(&l2->tlb_lock); - 1f20: ff 07 1a 9f stbu r24,2047(r26) - 1f24: 04 ac 57 ac lhau r2,-21500(r23) - 1f28: 57 0d 8e 00 .long 0x8e0d57 - 1f2c: 10 80 e0 ff fcpsgn f31,f0,f16 + 1f28: 00 00 00 02 .long 0x2000000 + 1f2c: 04 9c 55 a8 lha r2,-25596(r21) kvmhv_update_ptbl_cache(l2); - 1f30: ff ff ff ff fnmadd. f31,f31,f31,f31 - 1f34: 07 1a 9f 00 .long 0x9f1a07 + 1f30: 55 01 53 04 .long 0x4530155 + 1f34: a8 55 bc 55 rlwinm r28,r13,10,22,20 mutex_unlock(&l2->tlb_lock); - 1f38: 08 00 03 02 .long 0x2030008 - 1f3c: 04 98 55 cc lfdu f2,-26620(r21) - 1f40: 55 01 6c 04 .long 0x46c0155 - 1f44: e4 55 b8 57 rlwinm r24,r29,10,23,18 - 1f48: 01 6c 00 01 .long 0x1006c01 - 1f4c: 00 00 00 04 .long 0x4000000 + 1f38: 01 6d 04 e0 lq r0,27904(r4) + 1f3c: 55 f8 55 01 .long 0x155f855 + 1f40: 53 04 f8 55 rlwinm. r24,r15,0,17,9 + 1f44: 9c 57 01 6d xoris r1,r8,22428 + 1f48: 04 9c 57 a7 lhzu r26,-25596(r23) + 1f4c: 57 01 53 04 .long 0x4530157 byteswap_hv_regs(&l2_hv); - 1f50: b8 56 a0 57 rlwinm r0,r29,10,26,28 - 1f54: 01 53 04 a0 lhz r0,21249(r4) + 1f50: a7 57 a8 57 rlwinm. r8,r29,10,30,19 + 1f54: 01 6d 00 07 .long 0x7006d01 byteswap_pt_regs(&l2_regs); - 1f58: 57 a7 57 01 .long 0x157a757 - 1f5c: 54 00 09 00 .long 0x90054 - 1f60: 04 00 04 98 stb r0,4(r4) - 1f64: 55 ac 55 01 .long 0x155ac55 - 1f68: 6c 04 e4 55 rlwinm r4,r15,0,17,22 - 1f6c: f0 55 01 6c xoris r1,r0,22000 + 1f58: 00 02 00 00 attn + 1f5c: 01 04 88 55 rlwinm. r8,r12,0,16,0 + 1f60: a8 55 0d 8e lbzu r16,21928(r13) + 1f64: 00 10 80 e0 lq r4,4096(0) + 1f68: ff ff ff ff fnmadd. f31,f31,f31,f31 + 1f6c: ff 07 1a 9f stbu r24,2047(r26) if (((vcpu->arch.io_gpr & KVM_MMIO_REG_EXT_MASK) == KVM_MMIO_REG_GPR) - 1f70: 00 01 00 00 .long 0x100 + 1f70: 04 d4 55 f0 xsmaxcdp vs2,vs53,vs26 vcpu->arch.trap = 0; - 1f74: 00 00 01 04 .long 0x4010000 + 1f74: 55 0d 8e 00 .long 0x8e0d55 if (((vcpu->arch.io_gpr & KVM_MMIO_REG_EXT_MASK) == KVM_MMIO_REG_GPR) - 1f78: 80 56 a4 56 rlwinm r4,r21,10,26,0 - 1f7c: 04 91 f4 7e .long 0x7ef49104 - 1f80: 9f 04 a4 56 rlwinm. r4,r21,0,18,15 + 1f78: 10 80 e0 ff fcpsgn f31,f0,f16 + 1f7c: ff ff ff ff fnmadd. f31,f31,f31,f31 + 1f80: 07 1a 9f 04 .long 0x49f1a07 && (vcpu->mmio_is_write == 0)) { - 1f84: b7 56 01 56 rlwinm. r1,r16,10,26,27 - 1f88: 04 b7 56 b8 lm r2,-18684(r22) - 1f8c: 56 04 91 f4 stxsd v4,1108(r17) + 1f84: 9c 57 9c 57 rlwinm r28,r28,10,30,14 + 1f88: 0d 8e 00 10 vextublx r0,r0,v17 + 1f8c: 80 e0 ff ff .long 0xffffe080 vcpu->arch.nested_io_gpr = (gpa_t) regs_ptr + - 1f90: 7e 9f 00 01 .long 0x1009f7e + 1f90: ff ff ff 07 .long 0x7ffffff vcpu->arch.io_gpr = KVM_MMIO_REG_NESTED_GPR; - 1f94: 01 04 80 56 rlwinm. r0,r20,0,16,0 + 1f94: 1a 9f 00 08 tdi 0,r0,-24806 vcpu->arch.nested_io_gpr = (gpa_t) regs_ptr + - 1f98: b8 56 01 6c xoris r1,r0,22200 + 1f98: 00 03 02 04 .long 0x4020300 vcpu->arch.io_gpr = KVM_MMIO_REG_NESTED_GPR; - 1f9c: 00 00 00 04 .long 0x4000000 + 1f9c: 88 55 bc 55 rlwinm r28,r13,10,22,4 vcpu->arch.nested_io_gpr = (gpa_t) regs_ptr + - 1fa0: 90 56 a0 56 rlwinm r0,r21,10,26,8 + 1fa0: 01 6c 04 d4 stfsu f0,27649(r4) return H_TOO_HARD; - 1fa4: 01 53 00 00 .long 0x5301 - 1fa8: 01 04 b8 56 rlwinm. r24,r21,0,16,0 - 1fac: b8 56 01 53 rlwimi r1,r24,10,26,28 + 1fa4: 55 a8 57 01 .long 0x157a855 + 1fa8: 6c 00 01 00 .long 0x1006c + 1fac: 00 00 04 a8 lha r0,0(r4) hr->hdar = vcpu->arch.fault_dar; - 1fb0: 00 05 00 04 .long 0x4000500 + 1fb0: 56 90 57 01 .long 0x1579056 hr->hdsisr = vcpu->arch.fault_dsisr; - 1fb4: 80 56 90 56 rlwinm r16,r20,10,26,0 + 1fb4: 53 04 90 57 rlwinm. r16,r28,0,17,9 hr->asdr = vcpu->arch.fault_gpa; - 1fb8: 01 6c 00 00 .long 0x6c01 + 1fb8: 97 57 01 54 rlwinm. r1,r0,10,30,11 hr->hdar = vcpu->arch.fault_dar; - 1fbc: 01 04 c4 56 rlwinm. r4,r22,0,16,0 + 1fbc: 00 09 00 04 .long 0x4000900 hr->hdsisr = vcpu->arch.fault_dsisr; - 1fc0: d0 56 03 59 rlmi r3,r8,r10,27,8 + 1fc0: 00 04 88 55 rlwinm r8,r12,0,16,0 hr->asdr = vcpu->arch.fault_gpa; - 1fc4: 93 08 00 00 .long 0x893 - ... + 1fc4: 9c 55 01 6c xoris r1,r0,21916 + break; + 1fc8: 04 d4 55 e0 lq r2,-11264(r21) + 1fcc: 55 01 6c 00 .long 0x6c0155 hr->heir = vcpu->arch.emul_inst; - 1fd4: 00 04 88 4e .long 0x4e880400 + 1fd0: 01 00 00 00 .long 0x1 + 1fd4: 00 01 04 f0 xsadddp vs0,vs4,vs0 break; - 1fd8: 9c 4f 01 53 rlwimi r1,r24,9,30,14 + 1fd8: 55 94 56 04 .long 0x4569455 return kvm_vcpu_write_guest(vcpu, hv_ptr, l2_hv, size) || - 1fdc: 04 9c 4f 9c stbu r2,-25596(r15) + 1fdc: 91 f4 7e 9f stbu r27,-2927(r30) WARN_ON_ONCE(idx & ~0x1); - 1fe0: 51 01 67 04 .long 0x4670151 - 1fe4: 9c 51 ac 51 rlwimi r12,r13,10,6,14 - 1fe8: 04 8b a0 67 oris r0,r29,35588 - 1fec: 9f 04 ac 51 rlwimi. r12,r13,0,18,15 + 1fe0: 04 94 56 a7 lhzu r26,-27644(r22) + 1fe4: 56 01 56 04 .long 0x4560156 + 1fe8: a7 56 a8 56 rlwinm. r8,r21,10,26,19 + 1fec: 04 91 f4 7e .long 0x7ef49104 if (WARN_ON_ONCE(vcpu->arch.shregs.msr & MSR_TS_MASK)) - 1ff0: dc 51 04 a3 lhz r24,20956(r4) - 1ff4: 01 53 9f 04 .long 0x49f5301 - 1ff8: dc 51 d8 52 rlwimi r24,r22,10,7,14 - 1ffc: 01 67 04 d8 stfd f0,26369(r4) - 2000: 52 e0 52 01 .long 0x152e052 - 2004: 53 04 e0 52 rlwimi. r0,r23,0,17,9 + 1ff0: 9f 00 01 01 .long 0x101009f + 1ff4: 04 f0 55 a8 lha r2,-4092(r21) + 1ff8: 56 01 6c 00 .long 0x6c0156 + 1ffc: 00 00 04 80 lwz r0,0(r4) + 2000: 56 90 56 01 .long 0x1569056 + 2004: 53 00 00 01 .long 0x1000053 return -1; - 2008: 94 53 04 a3 lhz r24,21396(r4) - 200c: 01 53 9f 00 .long 0x9f5301 - ... - 2018: 04 88 4e 9c stbu r2,-30716(r14) - 201c: 4f 01 54 04 .long 0x454014f - 2020: 9c 4f d8 52 rlwimi r24,r22,9,30,14 - 2024: 04 a3 01 54 rlwinm r1,r0,20,12,2 - 2028: 9f 04 d8 52 rlwimi. r24,r22,0,18,15 - 202c: e0 52 01 54 rlwinm r1,r0,10,11,16 - 2030: 04 e0 52 94 stwu r2,-8188(r18) - 2034: 53 04 a3 01 .long 0x1a30453 - 2038: 54 9f 00 00 .long 0x9f54 - ... - 2044: 00 00 00 04 .long 0x4000000 - 2048: 88 4e 9c 4f .long 0x4f9c4e88 - 204c: 01 55 04 9c stbu r0,21761(r4) - 2050: 4f a4 51 01 .long 0x151a44f - 2054: 69 04 a4 51 rlwimi. r4,r13,0,17,20 - 2058: dc 51 04 a3 lhz r24,20956(r4) - 205c: 01 55 9f 04 .long 0x49f5501 - 2060: dc 51 d8 52 rlwimi r24,r22,10,7,14 - 2064: 01 69 04 d8 stfd f0,26881(r4) - 2068: 52 e0 52 01 .long 0x152e052 - 206c: 55 04 e0 52 rlwimi. r0,r23,0,17,10 - 2070: 94 53 04 a3 lhz r24,21396(r4) - 2074: 01 55 9f 00 .long 0x9f5501 - ... - 2084: 04 88 4e 9c stbu r2,-30716(r14) + 2008: 04 a8 56 a8 lha r2,-22524(r22) + 200c: 56 01 53 00 .long 0x530156 + 2010: 05 00 04 f0 xsaddsp vs32,vs36,vs0 + 2014: 55 80 56 01 .long 0x1568055 + 2018: 6c 00 00 01 .long 0x100006c + 201c: 04 b4 56 c0 lfs f2,-19452(r22) + 2020: 56 03 59 93 stw r26,854(r25) + 2024: 08 00 00 00 .long 0x8 + ... + 2034: 04 f8 4d 8c lbzu r2,-2044(r13) + 2038: 4f 01 53 04 .long 0x453014f + 203c: 8c 4f 8c 51 rlwimi r12,r12,9,30,6 + return -1; + 2040: 01 67 04 8c lbzu r0,26369(r4) + 2044: 51 9c 51 04 .long 0x4519c51 + 2048: 8b a0 67 9f stbu r27,-24437(r7) + 204c: 04 9c 51 cc lfdu f2,-25596(r17) + 2050: 51 04 a3 01 .long 0x1a30451 + 2054: 53 9f 04 cc lfdu f0,-24749(r4) + 2058: 51 c8 52 01 .long 0x152c851 + 205c: 67 04 c8 52 rlwimi. r8,r22,0,17,19 + 2060: d0 52 01 53 rlwimi r1,r24,10,11,8 + 2064: 04 d0 52 84 lwzu r2,-12284(r18) + 2068: 53 04 a3 01 .long 0x1a30453 + 206c: 53 9f 00 00 .long 0x9f53 + 2070: 00 00 00 00 .long 0x0 + 2074: 00 00 00 04 .long 0x4000000 + 2078: f8 4d 8c 4f .long 0x4f8c4df8 + 207c: 01 54 04 8c lbzu r0,21505(r4) + 2080: 4f c8 52 04 .long 0x452c84f + 2084: a3 01 54 9f stbu r26,419(r20) return H_P2; - 2088: 4f 01 56 04 .long 0x456014f - 208c: 9c 4f a0 51 rlwimi r0,r13,9,30,14 + 2088: 04 c8 52 d0 stfs f2,-14332(r18) + 208c: 52 01 54 04 .long 0x4540152 return H_INTERRUPT; - 2090: 01 68 04 a0 lhz r0,26625(r4) - 2094: 51 dc 51 04 .long 0x451dc51 - 2098: a3 01 56 9f stbu r26,419(r22) - 209c: 04 dc 51 d8 stfd f2,-9212(r17) - 20a0: 52 01 68 04 .long 0x4680152 - 20a4: d8 52 e0 52 rlwimi r0,r23,10,11,12 - 20a8: 01 56 04 e0 lq r0,22016(r4) - 20ac: 52 94 53 04 .long 0x4539452 - 20b0: a3 01 56 9f stbu r26,419(r22) - 20b4: 00 00 01 01 .long 0x1010000 - ... - 20c4: 00 04 88 4e .long 0x4e880400 - 20c8: d4 4e 01 57 rlwinm r1,r24,9,27,10 - 20cc: 04 d4 4e 9c stbu r2,-11260(r14) - 20d0: 4f 06 8c 00 .long 0x8c064f -} - 20d4: 77 00 1a 9f stbu r24,119(r26) - 20d8: 04 9c 4f a8 lha r2,-25596(r15) - 20dc: 51 06 8c 00 .long 0x8c0651 - 20e0: 8a 00 1a 9f stbu r24,138(r26) - 20e4: 04 a8 51 b0 sth r2,-22524(r17) -{ - 20e8: 51 07 8c 00 .long 0x8c0751 - 20ec: a3 01 57 1a .long 0x1a5701a3 - 20f0: 9f 04 b0 51 rlwimi. r16,r13,0,18,15 - 20f4: bc 51 12 a3 lhz r24,20924(r18) - 20f8: 01 58 1f 3b addi r24,r31,22529 - 20fc: 24 40 47 24 dozi r2,r7,16420 - 2100: 1f 1a 3b 25 dozi r9,r27,6687 - 2104: a3 01 57 1a .long 0x1a5701a3 - 2108: 9f 04 dc 51 rlwimi. r28,r14,0,18,15 - 210c: d8 52 06 8c lbzu r0,21208(r6) - 2110: 00 8a 00 1a lxvp vs16,-30208(0) - 2114: 9f 04 d8 52 rlwimi. r24,r22,0,18,15 - 2118: dc 52 06 8c lbzu r0,21212(r6) - 211c: 00 77 00 1a lxvp vs16,30464(0) - 2120: 9f 04 dc 52 rlwimi. r28,r22,0,18,15 + 2090: d0 52 84 53 rlwimi r4,r28,10,11,8 + 2094: 04 a3 01 54 rlwinm r1,r0,20,12,2 + 2098: 9f 00 00 00 .long 0x9f + ... + 20a4: 00 00 04 f8 std r0,0(r4) + 20a8: 4d 8c 4f 01 .long 0x14f8c4d + 20ac: 55 04 8c 4f .long 0x4f8c0455 + 20b0: 94 51 01 69 xori r1,r8,20884 + 20b4: 04 94 51 cc lfdu f2,-27644(r17) + 20b8: 51 04 a3 01 .long 0x1a30451 + 20bc: 55 9f 04 cc lfdu f0,-24747(r4) + 20c0: 51 c8 52 01 .long 0x152c851 + 20c4: 69 04 c8 52 rlwimi. r8,r22,0,17,20 + 20c8: d0 52 01 55 rlwinm r1,r8,10,11,8 + 20cc: 04 d0 52 84 lwzu r2,-12284(r18) + 20d0: 53 04 a3 01 .long 0x1a30453 +} + 20d4: 55 9f 00 00 .long 0x9f55 + ... + 20e0: 00 00 00 04 .long 0x4000000 + 20e4: f8 4d 8c 4f .long 0x4f8c4df8 +{ + 20e8: 01 56 04 8c lbzu r0,22017(r4) + 20ec: 4f 90 51 01 .long 0x151904f + 20f0: 68 04 90 51 rlwimi r16,r12,0,17,20 + 20f4: cc 51 04 a3 lhz r24,20940(r4) + 20f8: 01 56 9f 04 .long 0x49f5601 + 20fc: cc 51 c8 52 rlwimi r8,r22,10,7,6 + 2100: 01 68 04 c8 lfd f0,26625(r4) + 2104: 52 d0 52 01 .long 0x152d052 + 2108: 56 04 d0 52 rlwimi r16,r22,0,17,11 + 210c: 84 53 04 a3 lhz r24,21380(r4) + 2110: 01 56 9f 00 .long 0x9f5601 + 2114: 00 01 01 00 .long 0x10100 + ... return vcpu->arch.regs.gpr[num]; - 2124: e0 52 0f 78 rldicl r15,r0,10,43 + 2124: 04 f8 4d c4 lfsu f2,-2044(r13) int l1_lpid = kvmppc_get_gpr(vcpu, 4); - 2128: 00 3b 24 40 bdnzf 4*cr1+lt,5c28 - 212c: 47 24 1f 1a .long 0x1a1f2447 - 2130: 3b 25 77 00 .long 0x77253b - 2134: 1a 9f 00 00 .long 0x9f1a - 2138: 00 00 00 00 .long 0x0 + 2128: 4e 01 57 04 .long 0x457014e + 212c: c4 4e 8c 4f addpcis r28,20184 + 2130: 06 8c 00 77 andis. r0,r24,35846 + 2134: 00 1a 9f 04 .long 0x49f1a00 + 2138: 8c 4f 98 51 rlwimi r24,r12,9,30,6 if (gp_to && gp_from) /* One must be NULL to determine the direction */ - 213c: 00 04 88 4e .long 0x4e880400 - 2140: c4 4e 01 58 rlmi r1,r0,r9,27,2 - 2144: 04 c4 4e 9c stbu r2,-15356(r14) - 2148: 4f 04 78 00 .long 0x78044f + 213c: 06 8c 00 8a lbz r16,-29690(0) + 2140: 00 1a 9f 04 .long 0x49f1a00 + 2144: 98 51 a0 51 rlwimi r0,r13,10,6,12 + 2148: 07 8c 00 a3 lhz r24,-29689(0) if (eaddr & (0xFFFUL << 52)) - 214c: 1f 9f 04 9c stbu r0,-24801(r4) - 2150: 4f 94 53 04 .long 0x453944f - 2154: a3 01 58 9f stbu r26,419(r24) - 2158: 00 01 00 00 .long 0x100 + 214c: 01 57 1a 9f stbu r24,22273(r26) + 2150: 04 a0 51 ac lhau r2,-24572(r17) + 2154: 51 12 a3 01 .long 0x1a31251 + 2158: 58 1f 3b 24 dozi r1,r27,8024 return __kmalloc(size, flags); - 215c: 00 00 00 00 .long 0x0 - 2160: 00 04 b8 4e .long 0x4eb80400 - 2164: d8 4f 01 6f xoris r1,r24,20440 - 2168: 04 c4 50 d4 stfsu f2,-15356(r16) - 216c: 50 01 6f 04 .long 0x46f0150 - 2170: d4 50 84 51 rlwimi r4,r12,10,3,10 - 2174: 02 30 9f 04 .long 0x49f3002 - if (unlikely(!buf)) - 2178: d8 52 e0 52 rlwimi r0,r23,10,11,12 - 217c: 01 6f 00 05 .long 0x5006f01 + 215c: 40 47 24 1f mulli r25,r4,18240 + 2160: 1a 3b 25 a3 lhz r25,15130(r5) + 2164: 01 57 1a 9f stbu r24,22273(r26) + 2168: 04 cc 51 c8 lfd f2,-13308(r17) + 216c: 52 06 8c 00 .long 0x8c0652 + 2170: 8a 00 1a 9f stbu r24,138(r26) + 2174: 04 c8 52 cc lfdu f2,-14332(r18) + if (!buf) + 2178: 52 06 8c 00 .long 0x8c0652 + 217c: 77 00 1a 9f stbu r24,119(r26) gp = kvmhv_get_nested(vcpu->kvm, l1_lpid, false); - 2180: 00 00 00 00 .long 0x0 - 2184: 00 04 d4 4e .long 0x4ed40400 - 2188: b8 4f 01 6f xoris r1,r24,20408 - 218c: 04 c4 50 d4 stfsu f2,-15356(r16) + 2180: 04 cc 52 d0 stfs f2,-13308(r18) + 2184: 52 0f 78 00 .long 0x780f52 + 2188: 3b 24 40 47 .long 0x4740243b + 218c: 24 1f 1a 3b addi r24,r26,7972 if (!gp) { - 2190: 50 01 6f 04 .long 0x46f0150 - 2194: d8 52 e0 52 rlwimi r0,r23,10,11,12 - 2198: 01 6f 00 00 .long 0x6f01 + 2190: 25 77 00 1a .long 0x1a007725 + 2194: 9f 00 00 00 .long 0x9f + 2198: 00 00 00 00 .long 0x0 mutex_lock(&gp->tlb_lock); - 219c: 00 04 a4 4f .long 0x4fa40400 - 21a0: b8 4f 01 6e xoris r1,r16,20408 - ... + 219c: 04 f8 4d b4 sthu r2,-2044(r13) + 21a0: 4e 01 58 04 .long 0x458014e + 21a4: b4 4e 8c 4f .long 0x4f8c4eb4 + 21a8: 04 78 00 1f mulli r24,r0,30724 if (is_load) { - 21ac: 00 04 d4 4e .long 0x4ed40400 + 21ac: 9f 04 8c 4f .long 0x4f8c049f vcpu->____srcu_idx = srcu_read_lock(&vcpu->kvm->srcu); - 21b0: b0 51 01 6c xoris r1,r0,20912 + 21b0: 84 53 04 a3 lhz r24,21380(r4) retval = __srcu_read_lock(ssp); - 21b4: 04 b0 51 bc stmw r2,-20476(r17) - 21b8: 51 0e a3 01 .long 0x1a30e51 - 21bc: 58 1f 3b 24 dozi r1,r27,8024 + 21b4: 01 58 9f 00 .long 0x9f5801 + 21b8: 01 00 00 00 .long 0x1 + 21bc: 00 00 00 00 .long 0x0 rc = kvm_vcpu_read_guest(vcpu, gp_from, buf, n); - 21c0: 40 47 24 1f mulli r25,r4,18240 - 21c4: 1a 3b 25 9f stbu r25,15130(r5) - 21c8: 04 dc 51 dc stfdu f2,-9212(r17) - 21cc: 52 01 6c 04 .long 0x46c0152 - 21d0: dc 52 e0 52 rlwimi r0,r23,10,11,14 - 21d4: 0c 78 00 3b li r24,30732 - 21d8: 24 40 47 24 dozi r2,r7,16420 - 21dc: 1f 1a 3b 25 dozi r9,r27,6687 + 21c0: 04 a8 4e c8 lfd f2,-22524(r14) + 21c4: 4f 01 6f 04 .long 0x46f014f + 21c8: b4 50 c4 50 rlwimi r4,r6,10,2,26 + 21cc: 01 6f 04 c4 lfsu f0,28417(r4) + 21d0: 50 f4 50 02 .long 0x250f450 + 21d4: 30 9f 04 c8 lfd f0,-24784(r4) + 21d8: 52 d0 52 01 .long 0x152d052 + 21dc: 6f 00 05 00 .long 0x5006f srcu_read_unlock(&vcpu->kvm->srcu, vcpu->____srcu_idx); - 21e0: 9f 00 01 00 .long 0x1009f - 21e4: 01 00 00 00 .long 0x1 - 21e8: 04 b8 4f c4 lfsu f2,-18428(r15) - WARN_ON_ONCE(idx & ~0x1); - 21ec: 50 06 8c 00 .long 0x8c0650 - 21f0: 8a 00 1a 9f stbu r24,138(r26) - 21f4: 04 d4 50 84 lwzu r2,-11260(r16) + 21e0: 00 00 00 00 .long 0x0 + 21e4: 04 c4 4e a8 lha r2,-15356(r14) + 21e8: 4f 01 6f 04 .long 0x46f014f + WARN_ON_ONCE(idx & ~0x1); + 21ec: b4 50 c4 50 rlwimi r4,r6,10,2,26 + 21f0: 01 6f 04 c8 lfd f0,28417(r4) + 21f4: 52 d0 52 01 .long 0x152d052 __srcu_read_unlock(ssp, idx); - 21f8: 51 06 8c 00 .long 0x8c0651 - 21fc: 8a 00 1a 9f stbu r24,138(r26) - 2200: 04 dc 51 d8 stfd f2,-9212(r17) - if (rc) - 2204: 52 06 8c 00 .long 0x8c0652 - 2208: 8a 00 1a 9f stbu r24,138(r26) + 21f8: 6f 00 00 00 .long 0x6f + 21fc: 04 94 4f a8 lha r2,-27644(r15) + 2200: 4f 01 6e 00 .long 0x6e014f + ... rc = H_NOT_FOUND; - 220c: 00 01 00 01 .long 0x1000100 + 220c: 04 c4 4e a0 lhz r2,-15356(r14) mutex_unlock(&gp->tlb_lock); - 2210: 00 04 b8 4f .long 0x4fb80400 - 2214: c0 4f 01 6e xoris r1,r16,20416 - 2218: 04 d4 50 80 lwz r2,-11260(r16) + 2210: 51 01 6c 04 .long 0x46c0151 + 2214: a0 51 ac 51 rlwimi r12,r13,10,6,16 + 2218: 0e a3 01 58 rlmi r1,r0,r20,12,7 kvmhv_put_nested(gp); - 221c: 51 01 6f 00 .long 0x6f0151 - 2220: 00 00 00 00 .long 0x0 - 2224: 00 00 04 d0 stfs f0,0(r4) + 221c: 1f 3b 24 40 bdnzfla 4*cr1+lt,3b1c <.debug_loclists+0x3b1c> + 2220: 47 24 1f 1a .long 0x1a1f2447 + 2224: 3b 25 9f 04 .long 0x49f253b kfree(buf); - 2228: 4f c4 50 01 .long 0x150c44f - 222c: 6e 04 f4 50 rlwimi r20,r7,0,17,23 - 2230: 84 51 01 6e xoris r1,r16,20868 + 2228: cc 51 cc 52 rlwimi r12,r22,10,7,6 + 222c: 01 6c 04 cc lfdu f0,27649(r4) + 2230: 52 d0 52 0c twllti r18,-12206 return rc; - 2234: 04 dc 51 d8 stfd f2,-9212(r17) - 2238: 52 01 6e 00 .long 0x6e0152 - 223c: 01 00 04 f4 lxv vs0,0(r4) -} - 2240: 50 80 51 06 .long 0x6518050 - 2244: 8f 00 08 34 addic. r0,r8,143 - 2248: 25 9f 00 01 .long 0x1009f25 - 224c: 00 00 00 04 .long 0x4000000 - 2250: f0 4f c4 50 rlwimi r4,r6,9,31,24 - 2254: 01 53 04 dc stfdu f0,21249(r4) - 2258: 51 cc 52 01 .long 0x152cc51 - 225c: 53 00 02 01 .long 0x1020053 - 2260: 02 00 04 d0 stfs f0,2(r4) - 2264: 4f f0 4f 01 .long 0x14ff04f - 2268: 6e 04 f4 50 rlwimi r20,r7,0,17,23 - 226c: 84 51 01 6e xoris r1,r16,20868 + 2234: 78 00 3b 24 dozi r1,r27,120 + 2238: 40 47 24 1f mulli r25,r4,18240 + 223c: 1a 3b 25 9f stbu r25,15130(r5) +} + 2240: 00 01 00 01 .long 0x1000100 + 2244: 00 00 00 04 .long 0x4000000 + 2248: a8 4f b4 50 rlwimi r20,r5,9,30,20 + 224c: 06 8c 00 8a lbz r16,-29690(0) + 2250: 00 1a 9f 04 .long 0x49f1a00 + 2254: c4 50 f4 50 rlwimi r20,r7,10,3,2 + 2258: 06 8c 00 8a lbz r16,-29690(0) + 225c: 00 1a 9f 04 .long 0x49f1a00 + 2260: cc 51 c8 52 rlwimi r8,r22,10,7,6 + 2264: 06 8c 00 8a lbz r16,-29690(0) + 2268: 00 1a 9f 00 attn + 226c: 01 00 01 00 .long 0x10001 rc = __kvmhv_copy_tofrom_guest_radix(gp->shadow_lpid, pid, - 2270: 00 02 00 04 .long 0x4000200 - 2274: f4 50 80 51 rlwimi r0,r12,10,3,26 - 2278: 06 8f 00 08 tdi 0,r0,-28922 - 227c: 34 25 9f 00 .long 0x9f2534 - 2280: 08 00 08 00 .long 0x80008 - 2284: 04 d0 4f dc stfdu f2,-12284(r15) - 2288: 4f 01 53 04 .long 0x453014f - 228c: f4 50 84 51 rlwimi r4,r12,10,3,26 + 2270: 04 a8 4f b0 sth r2,-22524(r15) + 2274: 4f 01 6e 04 .long 0x46e014f + 2278: c4 50 f0 50 rlwimi r16,r7,10,3,2 + 227c: 01 6f 00 00 .long 0x6f01 + 2280: 00 00 00 00 .long 0x0 + 2284: 00 04 c0 4f .long 0x4fc00400 + 2288: b4 50 01 6e xoris r1,r16,20660 + 228c: 04 e4 50 f4 psq_stu f2,1028(r16),1,6 if (rc) - 2290: 01 53 00 00 .long 0x5301 - 2294: 01 04 f0 4f .long 0x4ff00401 + 2290: 50 01 6e 04 .long 0x46e0150 + 2294: cc 51 c8 52 rlwimi r8,r22,10,7,6 vcpu->____srcu_idx = srcu_read_lock(&vcpu->kvm->srcu); - 2298: f0 4f 01 53 rlwimi r1,r24,9,31,24 + 2298: 01 6e 00 01 .long 0x1006e01 retval = __srcu_read_lock(ssp); - 229c: 00 06 08 04 .long 0x4080600 - 22a0: f4 50 f4 50 rlwimi r20,r7,10,3,26 - 22a4: 06 8f 00 08 tdi 0,r0,-28922 + 229c: 00 04 e4 50 rlwimi r4,r7,0,16,0 + 22a0: f0 50 06 8f lbzu r24,20720(r6) + 22a4: 00 08 34 25 dozi r9,r20,2048 rc = kvm_vcpu_write_guest(vcpu, gp_to, buf, n); - 22a8: 34 25 9f 00 .long 0x9f2534 - 22ac: 00 01 04 fc ftdiv cr0,f4,f0 - 22b0: 4f 88 50 03 .long 0x350884f - 22b4: 59 93 08 00 .long 0x89359 - 22b8: 01 01 04 dc stfdu f0,257(r4) - 22bc: 51 bc 52 01 .long 0x152bc51 - 22c0: 68 00 01 01 .long 0x1010068 - 22c4: 04 dc 51 bc stmw r2,-9212(r17) + 22a8: 9f 00 01 00 .long 0x1009f + 22ac: 00 00 04 e0 lq r0,0(r4) + 22b0: 4f b4 50 01 .long 0x150b44f + 22b4: 53 04 cc 51 rlwimi. r12,r14,0,17,9 + 22b8: bc 52 01 53 rlwimi r1,r24,10,10,30 + 22bc: 00 02 01 02 attn + 22c0: 00 04 c0 4f .long 0x4fc00400 + 22c4: e0 4f 01 6e xoris r1,r16,20448 srcu_read_unlock(&vcpu->kvm->srcu, vcpu->____srcu_idx); - 22c8: 52 01 69 00 .long 0x690152 - 22cc: 01 01 04 dc stfdu f0,257(r4) - 22d0: 51 bc 52 01 .long 0x152bc51 - WARN_ON_ONCE(idx & ~0x1); - 22d4: 53 00 00 00 .long 0x53 - ... + 22c8: 04 e4 50 f4 psq_stu f2,1028(r16),1,6 + 22cc: 50 01 6e 00 .long 0x6e0150 + 22d0: 02 00 04 e4 lxsd v0,0(r4) + WARN_ON_ONCE(idx & ~0x1); + 22d4: 50 f0 50 06 .long 0x650f050 + 22d8: 8f 00 08 34 addic. r0,r8,143 + 22dc: 25 9f 00 08 tdi 0,r0,-24795 __srcu_read_unlock(ssp, idx); - 22e0: 04 c8 4b bc stmw r2,-14332(r11) - 22e4: 4c 01 53 04 .long 0x453014c - 22e8: bc 4c e4 4c .long 0x4ce44cbc + 22e0: 00 08 00 04 .long 0x4000800 + 22e4: c0 4f cc 4f .long 0x4fcc4fc0 + 22e8: 01 53 04 e4 psq_lu f0,769(r4),0,5 if (rc) - 22ec: 04 a3 01 53 rlwimi r1,r24,20,12,2 - 22f0: 9f 04 e4 4c .long 0x4ce4049f + 22ec: 50 f4 50 01 .long 0x150f450 + 22f0: 53 00 00 01 .long 0x1000053 rc = kvm_vcpu_write_guest(vcpu, gp_to, buf, n); - 22f4: b4 4d 01 53 rlwimi r1,r24,9,22,26 - 22f8: 04 b4 4d c8 lfd f2,-19452(r13) - 22fc: 4d 04 a3 01 .long 0x1a3044d + 22f4: 04 e0 4f e0 lq r2,-8192(r15) + 22f8: 4f 01 53 00 .long 0x53014f + 22fc: 06 08 04 e4 lxsd v0,2052(r4) rc = H_PARAMETER; - 2300: 53 9f 04 c8 lfd f0,-24749(r4) - 2304: 4d f4 4d 01 .long 0x14df44d - 2308: 53 00 00 00 .long 0x53 - ... + 2300: 50 e4 50 06 .long 0x650e450 + 2304: 8f 00 08 34 addic. r0,r8,143 + 2308: 25 9f 00 00 .long 0x9f25 + 230c: 01 04 ec 4f .long 0x4fec0401 rc = __kvmhv_copy_tofrom_guest_radix(gp->shadow_lpid, pid, - 2314: 00 00 04 c8 lfd f0,0(r4) - 2318: 4b ec 4b 01 .long 0x14bec4b - 231c: 54 04 ec 4b b ffffffffffec2770 - 2320: c3 4c 01 56 rlwinm. r1,r16,9,19,1 - 2324: 04 c3 4c e4 psq_lu f2,772(r12),1,4 - 2328: 4c 04 a3 01 .long 0x1a3044c - 232c: 54 9f 04 e4 psq_lu f0,-172(r4),1,1 + 2310: f8 4f 03 59 rlmi r3,r8,r9,31,28 + 2314: 93 08 00 01 .long 0x1000893 + 2318: 01 04 cc 51 rlwimi. r12,r14,0,16,0 + 231c: ac 52 01 68 xori r1,r0,21164 + 2320: 00 01 01 04 .long 0x4010100 + 2324: cc 51 ac 52 rlwimi r12,r21,10,7,6 + 2328: 01 69 00 01 .long 0x1006901 + 232c: 01 04 cc 51 rlwimi. r12,r14,0,16,0 if (rc) - 2330: 4c bb 4d 01 .long 0x14dbb4c - 2334: 56 04 bb 4d .long 0x4dbb0456 + 2330: ac 52 01 53 rlwimi r1,r24,10,10,22 + ... rc = kvm_vcpu_write_guest(vcpu, gp_to, buf, n); - 2338: c8 4d 04 a3 lhz r24,19912(r4) - 233c: 01 54 9f 04 .long 0x49f5401 + 233c: 00 00 00 04 .long 0x4000000 + return H_PARAMETER; + 2340: b8 4b ac 4c .long 0x4cac4bb8 + 2344: 01 53 04 ac lhau r0,21249(r4) + 2348: 4c d4 4c 04 .long 0x44cd44c + 234c: a3 01 53 9f stbu r26,419(r19) + WARN_ON_ONCE(idx & ~0x1); + 2350: 04 d4 4c a4 lhzu r2,-11260(r12) + 2354: 4d 01 53 04 .long 0x453014d + 2358: a4 4d b8 4d .long 0x4db84da4 + 235c: 04 a3 01 53 rlwimi r1,r24,20,12,2 + 2360: 9f 04 b8 4d .long 0x4db8049f return H_NO_MEM; - 2340: c8 4d f4 4d .long 0x4df44dc8 - 2344: 01 56 00 00 .long 0x5601 + 2364: e4 4d 01 53 rlwimi r1,r24,9,23,18 ... - 2350: 00 00 00 04 .long 0x4000000 - 2354: c8 4b b8 4c .long 0x4cb84bc8 - 2358: 01 55 04 b8 lm r0,21761(r4) - 235c: 4c d4 4c 01 .long 0x14cd44c - return H_PARAMETER; - 2360: 6f 04 d4 4c .long 0x4cd4046f - 2364: e4 4c 04 a3 lhz r24,19684(r4) - 2368: 01 55 9f 04 .long 0x49f5501 - 236c: e4 4c a8 4d .long 0x4da84ce4 - WARN_ON_ONCE(idx & ~0x1); - 2370: 01 55 04 a8 lha r0,21761(r4) - 2374: 4d c8 4d 01 .long 0x14dc84d - 2378: 6f 04 c8 4d .long 0x4dc8046f - 237c: f4 4d 01 55 rlwinm r1,r8,9,23,26 - ... - 2388: 00 00 00 04 .long 0x4000000 - 238c: e8 4b 84 4c .long 0x4c844be8 - 2390: 01 6e 04 84 lwzu r0,28161(r4) - 2394: 4c 98 4c 01 .long 0x14c984c -{ - 2398: 59 04 98 4c .long 0x4c980459 - 239c: a4 4c 02 30 addic r0,r2,19620 - 23a0: 9f 04 e4 4c .long 0x4ce4049f - 23a4: 98 4d 01 59 rlmi r1,r8,r9,22,12 - 23a8: 04 e0 4d f0 xsaddsp vs2,vs45,vs28 - 23ac: 4d 01 6e 00 .long 0x6e014d - 23b0: 00 00 00 01 .long 0x1000000 - 23b4: 04 84 4c 98 stb r2,-31740(r12) + 2374: 00 04 b8 4b b ffffffffffb82774 + 2378: dc 4b 01 54 rlwinm r1,r0,9,15,14 + 237c: 04 dc 4b b3 sth r26,-9212(r11) + 2380: 4c 01 56 04 .long 0x456014c + 2384: b3 4c d4 4c .long 0x4cd44cb3 +{ + 2388: 04 a3 01 54 rlwinm r1,r0,20,12,2 + 238c: 9f 04 d4 4c .long 0x4cd4049f + 2390: ab 4d 01 56 rlwinm. r1,r16,9,22,21 + 2394: 04 ab 4d b8 lm r2,-21756(r13) + 2398: 4d 04 a3 01 .long 0x1a3044d + 239c: 54 9f 04 b8 lm r0,-24748(r4) + 23a0: 4d e4 4d 01 .long 0x14de44d + 23a4: 56 00 00 00 .long 0x56 + ... + 23b0: 00 00 04 b8 lm r0,0(r4) + 23b4: 4b a8 4c 01 .long 0x14ca84b + 23b8: 55 04 a8 4c .long 0x4ca80455 + 23bc: c4 4c 01 6f xoris r1,r24,19652 + 23c0: 04 c4 4c d4 stfsu f2,-15356(r12) + 23c4: 4c 04 a3 01 .long 0x1a3044c + 23c8: 55 9f 04 d4 stfsu f0,-24747(r4) for (psize = 0; psize < MMU_PAGE_COUNT; psize++) { - 23b8: 4c 01 59 04 .long 0x459014c - int shift, shadow_shift; - 23bc: e4 4c 88 4d .long 0x4d884ce4 -{ - 23c0: 01 59 00 01 .long 0x1005901 - 23c4: 00 00 01 00 .long 0x10000 - 23c8: 00 04 a4 4c .long 0x4ca40400 - 23cc: dc 4c 01 6e xoris r1,r16,19676 - 23d0: 04 f4 4c 88 lbz r2,-3068(r12) - 23d4: 4d 01 5a 04 .long 0x45a014d - 23d8: 98 4d c8 4d .long 0x4dc84d98 - 23dc: 01 6e 00 00 .long 0x6e01 - 23e0: 00 00 00 00 .long 0x0 - 23e4: 00 00 00 04 .long 0x4000000 - 23e8: f4 4b c3 4c .long 0x4cc34bf4 - 23ec: 01 58 04 e4 psq_lu f0,-2047(r4),0,5 - struct kvm *kvm = vcpu->kvm; - 23f0: 4c bb 4d 01 .long 0x14dbb4c - int shift, shadow_shift; - 23f4: 58 04 c8 4d .long 0x4dc80458 - 23f8: e4 4d 01 58 rlmi r1,r0,r9,23,18 - 23fc: 04 e4 4d ec dsub f2,f13,f28 + 23cc: 4c 98 4d 01 .long 0x14d984c + 23d0: 55 04 98 4d .long 0x4d980455 + 23d4: b8 4d 01 6f xoris r1,r24,19896 + 23d8: 04 b8 4d e4 psq_lu f2,-2044(r13),1,3 + 23dc: 4d 01 55 00 .long 0x55014d + ... + 23e8: 00 00 04 d8 stfd f0,0(r4) + 23ec: 4b f4 4b 01 .long 0x14bf44b if (mmu_psize_defs[psize].ap == ap) - 2400: 4d 02 74 08 tdi 3,r20,589 + 23f0: 6e 04 f4 4b ba fff4046c for (psize = 0; psize < MMU_PAGE_COUNT; psize++) { - 2404: 00 01 03 02 .long 0x2030100 + 23f4: 88 4c 01 59 rlmi r1,r8,r9,18,4 if (mmu_psize_defs[psize].ap == ap) - 2408: 04 04 98 4c addpcis r4,1072 - 240c: 98 4c 01 58 rlmi r1,r0,r9,18,12 + 23f8: 04 88 4c 94 stwu r2,-30716(r12) + 23fc: 4c 02 30 9f stbu r25,588(r16) for (psize = 0; psize < MMU_PAGE_COUNT; psize++) { - 2410: 04 88 4d 88 lbz r2,-30716(r13) - 2414: 4d 01 58 00 .long 0x58014d - 2418: 01 03 04 98 stb r0,769(r4) + 2400: 04 d4 4c 88 lbz r2,-11260(r12) + 2404: 4d 01 59 04 .long 0x459014d + 2408: d0 4d e0 4d .long 0x4de04dd0 if (mmu_psize_defs[psize].ap == ap) - 241c: 4c 98 4c 01 .long 0x14c984c - 2420: 59 00 01 00 .long 0x10059 - 2424: 00 00 01 00 .long 0x10000 + 240c: 01 6e 00 00 .long 0x6e01 + 2410: 00 00 01 04 .long 0x4010000 + 2414: f4 4b 88 4c .long 0x4c884bf4 return mmu_psize_defs[psize].shift; - 2428: 00 00 04 b4 sthu r0,0(r4) - 242c: 4c c3 4c 01 .long 0x14cc34c + 2418: 01 59 04 d4 stfsu f0,22785(r4) + 241c: 4c f8 4c 01 .long 0x14cf84c shift = ap_to_shift(ap); - 2430: 56 04 c3 4c .long 0x4cc30456 + 2420: 59 00 01 00 .long 0x10059 if (shift < 0) - 2434: c4 4c 04 a3 lhz r24,19652(r4) - 2438: 01 54 9f 04 .long 0x49f5401 + 2424: 00 01 00 00 .long 0x100 + 2428: 04 94 4c cc lfdu f2,-27644(r12) gp = kvmhv_get_nested(kvm, lpid, false); - 243c: ac 4d bb 4d .long 0x4dbb4dac - 2440: 01 55 04 bb lmw r24,21761(r4) + 242c: 4c 01 6e 04 .long 0x46e014c + 2430: e4 4c f8 4c .long 0x4cf84ce4 if (!gp) /* No such guest -> nothing to do */ - 2444: 4d bc 4d 04 .long 0x44dbc4d - 2448: a3 01 54 9f stbu r26,419(r20) - 244c: 00 01 00 01 .long 0x1000100 + 2434: 01 5a 04 88 lbz r0,23041(r4) + 2438: 4d b8 4d 01 .long 0x14db84d + 243c: 6e 00 00 00 .long 0x6e addr &= ~((1UL << shift) - 1); - 2450: 00 04 b4 4c .long 0x4cb40400 + 2440: 00 00 00 00 .long 0x0 npages = 1UL << (shift - PAGE_SHIFT); - 2454: c3 4c 01 54 rlwinm. r1,r0,9,19,1 - 2458: 04 ac 4d bb lmw r26,-21500(r13) + 2444: 00 00 04 e4 psq_lu f0,0(r4),0,0 + 2448: 4b b3 4c 01 .long 0x14cb34b mutex_lock(&gp->tlb_lock); - 245c: 4d 02 8f 00 .long 0x8f024d - ... - 246c: 00 00 00 04 .long 0x4000000 + 244c: 58 04 d4 4c .long 0x4cd40458 + addr = epn << 12; + 2450: ab 4d 01 58 rlmi. r1,r0,r9,22,21 + npages -= 1UL << (shadow_shift - PAGE_SHIFT); + 2454: 04 b8 4d d4 stfsu f2,-18428(r13) + addr &= ~((1UL << shift) - 1); + 2458: 4d 01 58 04 .long 0x458014d + mutex_lock(&gp->tlb_lock); + 245c: d4 4d dc 4d .long 0x4ddc4dd4 npages = 1UL << (shift - PAGE_SHIFT); - 2470: a8 29 d8 29 cmplwi cr3,r24,10664 + 2460: 02 74 08 00 .long 0x87402 addr &= ~((1UL << shift) - 1); - 2474: 01 53 04 d8 stfd f0,21249(r4) - 2478: 29 ac 2a 01 .long 0x12aac29 + 2464: 01 03 02 04 .long 0x4020301 + 2468: 04 88 4c 88 lbz r2,-30716(r12) mutex_lock(&gp->tlb_lock); - 247c: 6f 04 ac 2a cmpldi cr5,r12,1135 - 2480: b4 2a 04 a3 lhz r24,10932(r4) - 2484: 01 53 9f 04 .long 0x49f5301 - 2488: b4 2a d4 2a cmplwi cr5,r20,10932 - 248c: 01 6f 04 d4 stfsu f0,28417(r4) + 246c: 4c 01 58 04 .long 0x458014c + 2470: f8 4c f8 4c .long 0x4cf84cf8 + 2474: 01 58 00 01 .long 0x1005801 + 2478: 03 04 88 4c .long 0x4c880403 + 247c: 88 4c 01 59 rlmi r1,r8,r9,18,4 kvmhv_invalidate_shadow_pte(vcpu, gp, addr, &shadow_shift); - 2490: 2a db 2a 01 .long 0x12adb2a - 2494: 53 04 db 2a cmplwi cr5,r27,1107 - 2498: dc 2a 04 a3 lhz r24,10972(r4) - 249c: 01 53 9f 04 .long 0x49f5301 - 24a0: dc 2a f0 2a cmpldi cr5,r16,10972 + 2480: 00 01 00 00 .long 0x100 + 2484: 00 01 00 00 .long 0x100 + 2488: 00 04 a4 4c .long 0x4ca40400 + 248c: b3 4c 01 56 rlwinm. r1,r16,9,18,25 + 2490: 04 b3 4c b4 sthu r2,-19708(r12) npages -= 1UL << (shadow_shift - PAGE_SHIFT); - 24a4: 01 6f 00 00 .long 0x6f01 - 24a8: 00 00 00 00 .long 0x0 + 2494: 4c 04 a3 01 .long 0x1a3044c + 2498: 54 9f 04 9c stbu r0,-24748(r4) addr += 1UL << shadow_shift; - 24ac: 00 04 d4 29 cmplwi cr3,r20,1024 + 249c: 4d ab 4d 01 .long 0x14dab4d npages -= 1UL << (shadow_shift - PAGE_SHIFT); - 24b0: a8 2a 01 6e xoris r1,r16,10920 + 24a0: 55 04 ab 4d .long 0x4dab0455 addr += 1UL << shadow_shift; - 24b4: 04 b4 2a d0 stfs f1,-19452(r10) + 24a4: ac 4d 04 a3 lhz r24,19884(r4) } while (npages > 0); - 24b8: 2a 01 6e 04 .long 0x46e012a - 24bc: dc 2a f0 2a cmpldi cr5,r16,10972 + 24a8: 01 54 9f 00 .long 0x9f5401 + 24ac: 01 00 01 00 .long 0x10001 mutex_unlock(&gp->tlb_lock); - 24c0: 01 6e 00 00 .long 0x6e01 - 24c4: 00 00 00 04 .long 0x4000000 - 24c8: f0 29 db 2a cmplwi cr5,r27,10736 + 24b0: 04 a4 4c b3 sth r26,-23548(r12) + 24b4: 4c 01 54 04 .long 0x454014c + 24b8: 9c 4d ab 4d .long 0x4dab4d9c kvmhv_put_nested(gp); - 24cc: 01 59 04 dc stfdu f0,22785(r4) - 24d0: 2a f0 2a 01 .long 0x12af02a - 24d4: 59 00 02 00 .long 0x20059 - 24d8: 04 d4 29 e0 psq_l f1,1028(r9),1,5 + 24bc: 02 8f 00 00 .long 0x8f02 + ... return 0; - 24dc: 29 01 6e 00 .long 0x6e0129 + 24cc: 00 00 04 a8 lha r0,0(r4) } - 24e0: 01 09 00 00 .long 0x901 - 24e4: 04 f0 29 94 stwu r1,-4092(r9) - 24e8: 2a 01 6e 04 .long 0x46e012a - 24ec: dc 2a f0 2a cmpldi cr5,r16,10972 - 24f0: 01 6e 00 03 .long 0x3006e01 - 24f4: 09 00 00 04 .long 0x4000009 - 24f8: f0 29 94 2a cmplwi cr5,r20,10736 - 24fc: 01 6e 04 dc stfdu f0,28161(r4) + 24d0: 29 d8 29 01 .long 0x129d829 + 24d4: 53 04 d8 29 cmplwi cr3,r24,1107 + 24d8: ac 2a 01 6f xoris r1,r24,10924 + 24dc: 04 ac 2a b4 sthu r1,-21500(r10) + 24e0: 2a 04 a3 01 .long 0x1a3042a + 24e4: 53 9f 04 b4 sthu r0,-24749(r4) + 24e8: 2a d4 2a 01 .long 0x12ad42a + 24ec: 6f 04 d4 2a cmplwi cr5,r20,1135 + 24f0: db 2a 01 53 rlwimi. r1,r24,5,11,13 + 24f4: 04 db 2a dc stfdu f1,-9468(r10) + 24f8: 2a 04 a3 01 .long 0x1a3042a + 24fc: 53 9f 04 dc stfdu f0,-24749(r4) 2500: 2a f0 2a 01 .long 0x12af02a - 2504: 6e 00 08 07 .long 0x708006e - 2508: 00 00 04 f0 xsaddsp vs0,vs4,vs0 - 250c: 29 94 2a 01 .long 0x12a9429 - 2510: 6e 04 dc 2a cmplwi cr5,r28,1134 - 2514: f0 2a 01 6e xoris r1,r16,10992 - 2518: 00 0c 00 00 .long 0xc00 - 251c: 00 00 00 04 .long 0x4000000 + 2504: 6f 00 00 00 .long 0x6f + 2508: 00 00 00 00 .long 0x0 + 250c: 04 d4 29 a8 lha r1,-11260(r9) return -EINVAL; - 2520: f0 29 90 2a cmplwi cr5,r16,10736 - 2524: 04 7a 80 19 .long 0x19807a04 - 2528: 9f 04 90 2a cmplwi cr5,r16,1183 - 252c: db 2a 04 7d .long 0x7d042adb -} - 2530: 80 19 9f 04 .long 0x49f1980 - 2534: dc 2a f0 2a cmpldi cr5,r16,10972 - 2538: 04 7a 80 19 .long 0x19807a04 - 253c: 9f 00 01 05 .long 0x501009f - 2540: 04 88 2a 94 stwu r1,-30716(r10) - 2544: 2a 01 6e 00 .long 0x6e012a - ... -{ - 2554: 04 c8 22 ab lha r25,-14332(r2) - 2558: 23 01 53 04 .long 0x4530123 - 255c: ab 23 90 24 dozi r4,r16,9131 - 2560: 01 6f 04 90 stw r0,28417(r4) - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2564: 24 ac 24 04 .long 0x424ac24 - 2568: a3 01 53 9f stbu r26,419(r19) -{ - 256c: 04 ac 24 cc lfdu f1,-21500(r4) - 2570: 24 01 6f 04 .long 0x46f0124 - 2574: cc 24 d8 24 dozi r6,r24,9420 - 2578: 04 a3 01 53 rlwimi r1,r24,20,12,2 + 2510: 2a 01 6e 04 .long 0x46e012a + 2514: b4 2a d0 2a cmplwi cr5,r16,10932 + 2518: 01 6e 04 dc stfdu f0,28161(r4) + 251c: 2a f0 2a 01 .long 0x12af02a +} + 2520: 6e 00 00 00 .long 0x6e + 2524: 00 00 04 f0 xsaddsp vs0,vs4,vs0 + 2528: 29 db 2a 01 .long 0x12adb29 + 252c: 59 04 dc 2a cmplwi cr5,r28,1113 + 2530: f0 2a 01 59 rlmi r1,r8,r5,11,24 + 2534: 00 02 00 04 .long 0x4000200 +{ + 2538: d4 29 e0 29 cmpldi cr3,r0,10708 + 253c: 01 6e 00 01 .long 0x1006e01 + 2540: 09 00 00 04 .long 0x4000009 + 2544: f0 29 94 2a cmplwi cr5,r20,10736 + 2548: 01 6e 04 dc stfdu f0,28161(r4) + 254c: 2a f0 2a 01 .long 0x12af02a + 2550: 6e 00 03 09 tdgti r3,110 + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); + 2554: 00 00 04 f0 xsaddsp vs0,vs4,vs0 + 2558: 29 94 2a 01 .long 0x12a9429 +{ + 255c: 6e 04 dc 2a cmplwi cr5,r28,1134 + 2560: f0 2a 01 6e xoris r1,r16,10992 + 2564: 00 08 07 00 .long 0x70800 + 2568: 00 04 f0 29 cmpldi cr3,r16,1024 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 257c: 9f 04 d8 24 dozi r6,r24,1183 - 2580: 9c 29 01 6f xoris r1,r24,10652 + 256c: 94 2a 01 6e xoris r1,r16,10900 + 2570: 04 dc 2a f0 xsmaxcdp vs1,vs42,vs27 if (!gp) - 2584: 00 00 00 00 .long 0x0 - 2588: 00 04 c8 22 subfic r22,r8,1024 + 2574: 2a 01 6e 00 .long 0x6e012a + 2578: 0c 00 00 00 .long 0xc pte = __find_linux_pte(gp->shadow_pgtable, ea, NULL, hshift); - 258c: ab 23 01 54 rlwinm. r1,r0,4,14,21 - 2590: 04 ab 23 9c stbu r1,-21756(r3) - 2594: 29 04 a3 01 .long 0x1a30429 - 2598: 54 9f 00 00 .long 0x9f54 - 259c: 00 00 00 04 .long 0x4000000 - 25a0: c8 22 ab 23 subfic r29,r11,8904 -} - 25a4: 01 55 04 ab lha r24,21761(r4) - 25a8: 23 9c 29 04 .long 0x4299c23 - 25ac: a3 01 55 9f stbu r26,419(r21) - ... -{ - 25c8: 00 01 00 04 .long 0x4000100 - 25cc: bc 23 fc 23 subfic r31,r28,9148 - 25d0: 01 53 04 fc .long 0xfc045301 - 25d4: 23 94 24 01 .long 0x1249423 - 25d8: 6e 04 ac 24 dozi r5,r12,1134 - 25dc: b8 24 01 53 rlwimi r1,r24,4,18,28 - 25e0: 04 b8 24 d0 stfs f1,-18428(r4) + 257c: 00 00 04 f0 xsaddsp vs0,vs4,vs0 + 2580: 29 90 2a 04 .long 0x42a9029 + 2584: 7a 80 19 9f stbu r24,-32646(r25) + 2588: 04 90 2a db stfd f25,-28668(r10) + 258c: 2a 04 7d 80 lwz r3,1066(r29) + 2590: 19 9f 04 dc stfdu f0,-24807(r4) +} + 2594: 2a f0 2a 04 .long 0x42af02a + 2598: 7a 80 19 9f stbu r24,-32646(r25) + 259c: 00 01 05 04 .long 0x4050100 + 25a0: 88 2a 94 2a cmplwi cr5,r20,10888 + 25a4: 01 6e 00 00 .long 0x6e01 + ... + 25b0: 00 00 00 04 .long 0x4000000 + 25b4: c8 22 ab 23 subfic r29,r11,8904 +{ + 25b8: 01 53 04 ab lha r24,21249(r4) + 25bc: 23 90 24 01 .long 0x1249023 + 25c0: 6f 04 90 24 dozi r4,r16,1135 + 25c4: ac 24 04 a3 lhz r24,9388(r4) + 25c8: 01 53 9f 04 .long 0x49f5301 + 25cc: ac 24 cc 24 dozi r6,r12,9388 + 25d0: 01 6f 04 cc lfdu f0,28417(r4) struct llist_node *entry = ((struct llist_head *) rmapp)->first; - 25e4: 24 01 6e 04 .long 0x46e0124 + 25d4: 24 d8 24 04 .long 0x424d824 u64 rmap, new_rmap = (*n_rmap)->rmap; - 25e8: d8 24 f4 24 dozi r7,r20,9432 + 25d8: a3 01 53 9f stbu r26,419(r19) if (!(*rmapp)) { - 25ec: 01 53 04 f4 lxv vs0,21248(r4) + 25dc: 04 d8 24 9c stbu r1,-10236(r4) u64 rmap, new_rmap = (*n_rmap)->rmap; - 25f0: 24 dc 26 01 .long 0x126dc24 + 25e0: 29 01 6f 00 .long 0x6f0129 if (!(*rmapp)) { - 25f4: 6e 04 dc 26 dozi r22,r28,1134 - 25f8: e8 26 01 53 rlwimi r1,r24,4,27,20 - 25fc: 04 e8 26 a8 lha r1,-6140(r6) - 2600: 27 01 6e 04 .long 0x46e0127 - 2604: a8 27 c0 27 dozi r30,r0,10152 - 2608: 01 53 04 c0 lfs f0,21249(r4) - 260c: 27 94 28 01 .long 0x1289427 + 25e4: 00 00 00 00 .long 0x0 + 25e8: 04 c8 22 ab lha r25,-14332(r2) + 25ec: 23 01 54 04 .long 0x4540123 + 25f0: ab 23 9c 29 cmplwi cr3,r28,9131 + 25f4: 04 a3 01 54 rlwinm r1,r0,20,12,2 + 25f8: 9f 00 00 00 .long 0x9f + 25fc: 00 00 04 c8 lfd f0,0(r4) for_each_nest_rmap_safe(cursor, entry, &rmap) { - 2610: 6e 04 94 28 cmplwi cr1,r20,1134 - 2614: a8 28 01 53 rlwimi r1,r24,5,2,20 + 2600: 22 ab 23 01 .long 0x123ab22 + 2604: 55 04 ab 23 subfic r29,r11,1109 return !((rmap_1 ^ rmap_2) & (RMAP_NESTED_LPID_MASK | - 2618: 04 a8 28 c8 lfd f1,-22524(r8) + 2608: 9c 29 04 a3 lhz r24,10652(r4) if (kvmhv_n_rmap_is_equal(rmap, new_rmap)) - 261c: 28 01 6e 04 .long 0x46e0128 - 2620: d0 28 9c 29 cmplwi cr3,r28,10448 - if (rmap & RMAP_NESTED_IS_SINGLE_ENTRY) /* Not previously a list */ - 2624: 01 6e 00 01 .long 0x1006e01 - 2628: 00 01 00 00 .long 0x100 - 262c: 02 02 00 00 .long 0x202 - 2630: 00 04 84 26 dozi r20,r4,1024 + 260c: 01 55 9f 00 .long 0x9f5501 + ... return llist_add_batch(new, new, head); - 2634: a8 27 01 6c xoris r1,r0,10152 - 2638: 04 90 28 94 stwu r1,-28668(r8) - 263c: 28 02 30 9f stbu r25,552(r16) - 2640: 04 94 28 d0 stfs f1,-27644(r8) + 2628: 01 00 04 bc stmw r0,1(r4) + 262c: 23 fc 23 01 .long 0x123fc23 + 2630: 53 04 fc 23 subfic r31,r28,1107 *n_rmap = NULL; - 2644: 28 01 6c 04 .long 0x46c0128 - 2648: d0 28 dc 28 cmplwi cr1,r28,10448 - 264c: 02 30 9f 04 .long 0x49f3002 - 2650: dc 28 f0 28 cmpldi cr1,r16,10460 + 2634: 94 24 01 6e xoris r1,r16,9364 + 2638: 04 ac 24 b8 lm r1,-21500(r4) + 263c: 24 01 53 04 .long 0x4530124 + 2640: b8 24 d0 24 dozi r6,r16,9400 } - 2654: 01 6c 00 01 .long 0x1006c01 - 2658: 00 00 00 04 .long 0x4000000 + 2644: 01 6e 04 d8 stfd f0,28161(r4) + 2648: 24 f4 24 01 .long 0x124f424 *n_rmap = NULL; - 265c: fc 22 ab 23 subfic r29,r11,8956 + 264c: 53 04 f4 24 dozi r7,r20,1107 } - 2660: 01 53 04 ab lha r24,21249(r4) - 2664: 23 ac 23 01 .long 0x123ac23 - 2668: 6f 00 02 00 .long 0x2006f - 266c: 04 ac 23 bc stmw r1,-21500(r3) + 2650: dc 26 01 6e xoris r1,r16,9948 + 2654: 04 dc 26 e8 ld r1,-9212(r6) + 2658: 26 01 53 04 .long 0x4530126 + 265c: e8 26 e0 27 dozi r31,r0,9960 for_each_nest_rmap_safe(cursor, entry, &rmap) { - 2670: 23 01 6d 00 .long 0x6d0123 - 2674: 02 00 04 ac lhau r0,2(r4) + 2660: 01 6e 04 e0 lq r0,28160(r4) + 2664: 27 f0 27 01 .long 0x127f027 return !((rmap_1 ^ rmap_2) & (RMAP_NESTED_LPID_MASK | - 2678: 23 bc 23 01 .long 0x123bc23 + 2668: 53 04 f0 27 dozi r31,r16,1107 if (kvmhv_n_rmap_is_equal(rmap, new_rmap)) - 267c: 6f 00 01 09 tdgti r1,111 + 266c: 94 28 01 6e xoris r1,r16,10388 for_each_nest_rmap_safe(cursor, entry, &rmap) { - 2680: 00 00 04 d0 stfs f0,0(r4) - 2684: 23 f8 23 01 .long 0x123f823 + 2670: 04 94 28 a8 lha r1,-27644(r8) + 2674: 28 01 53 04 .long 0x4530128 if (kvmhv_n_rmap_is_equal(rmap, new_rmap)) - 2688: 6f 04 a8 27 dozi r29,r8,1135 + 2678: a8 28 c8 28 cmplwi cr1,r8,10408 for_each_nest_rmap_safe(cursor, entry, &rmap) { - 268c: c0 27 01 6f xoris r1,r24,10176 - 2690: 00 03 09 00 .long 0x90300 - 2694: 00 04 d0 23 subfic r30,r16,1024 - 2698: f8 23 01 6f xoris r1,r24,9208 - 269c: 04 a8 27 c0 lfs f1,-22524(r7) + 267c: 01 6e 04 d0 stfs f0,28161(r4) + 2680: 28 9c 29 01 .long 0x1299c28 + 2684: 6e 00 01 00 .long 0x1006e + 2688: 01 00 00 02 .long 0x2000001 + 268c: 02 00 00 00 .long 0x2 *rmapp = 0UL; - 26a0: 27 01 6f 00 .long 0x6f0127 - 26a4: 08 07 00 00 .long 0x708 - 26a8: 04 d0 23 f8 std r1,-12284(r3) - 26ac: 23 01 6f 04 .long 0x46f0123 - 26b0: a8 27 c0 27 dozi r30,r0,10152 - 26b4: 01 6f 00 00 .long 0x6f01 - 26b8: 00 00 00 00 .long 0x0 + 2690: 04 84 26 a8 lha r1,-31740(r6) + 2694: 27 01 6c 04 .long 0x46c0127 + 2698: 90 28 94 28 cmplwi cr1,r20,10384 + 269c: 02 30 9f 04 .long 0x49f3002 + 26a0: 94 28 d0 28 cmplwi cr1,r16,10388 + 26a4: 01 6c 04 d0 stfs f0,27649(r4) + 26a8: 28 dc 28 02 .long 0x228dc28 (*n_rmap)->list.next = (struct llist_node *) rmap; - 26bc: 00 00 00 0c twi 0,r0,0 - 26c0: 00 00 00 00 .long 0x0 - 26c4: 00 04 d8 23 subfic r30,r24,1024 - 26c8: f4 23 04 79 .long 0x790423f4 - 26cc: 80 19 9f 04 .long 0x49f1980 - 26d0: f4 23 fc 23 subfic r31,r28,9204 -} - 26d4: 04 7d 80 19 .long 0x19807d04 - 26d8: 9f 04 ac 24 dozi r5,r12,1183 - 26dc: b8 24 04 7d .long 0x7d0424b8 + 26ac: 30 9f 04 dc stfdu f0,-24784(r4) + 26b0: 28 f0 28 01 .long 0x128f028 + 26b4: 6c 00 01 00 .long 0x1006c + 26b8: 00 00 04 fc fcmpu cr0,f4,f0 + 26bc: 22 ab 23 01 .long 0x123ab22 + 26c0: 53 04 ab 23 subfic r29,r11,1107 +} + 26c4: ac 23 01 6f xoris r1,r24,9132 + 26c8: 00 02 00 04 .long 0x4000200 + 26cc: ac 23 bc 23 subfic r29,r28,9132 *rmapp = new_rmap | RMAP_NESTED_IS_SINGLE_ENTRY; - 26e0: 80 19 9f 04 .long 0x49f1980 + 26d0: 01 6d 00 02 .long 0x2006d01 } - 26e4: d8 24 fb 24 dozi r7,r27,9432 + 26d4: 00 04 ac 23 subfic r29,r12,1024 *rmapp = new_rmap | RMAP_NESTED_IS_SINGLE_ENTRY; - 26e8: 04 7d 80 19 .long 0x19807d04 + 26d8: bc 23 01 6f xoris r1,r24,9148 } - 26ec: 9f 04 f4 26 dozi r23,r20,1183 - 26f0: a3 27 04 7a rldicl. r4,r16,36,62 - 26f4: 80 19 9f 04 .long 0x49f1980 - 26f8: a8 27 c0 27 dozi r30,r0,10152 - 26fc: 04 79 80 19 .long 0x19807904 - 2700: 9f 04 dc 28 cmplwi cr1,r28,1183 - 2704: f0 28 04 7a rldcl r4,r16,r5,35 -{ - 2708: 80 19 9f 00 .long 0x9f1980 - 270c: 01 05 04 ec .long 0xec040501 - 2710: 23 f8 23 01 .long 0x123f823 - 2714: 6f 00 01 01 .long 0x101006f + 26dc: 00 01 09 00 .long 0x90100 + 26e0: 00 04 d0 23 subfic r30,r16,1024 + 26e4: f8 23 01 6f xoris r1,r24,9208 + 26e8: 04 e0 27 f0 xsaddsp vs1,vs39,vs28 + 26ec: 27 01 6f 00 .long 0x6f0127 + 26f0: 03 09 00 00 .long 0x903 + 26f4: 04 d0 23 f8 std r1,-12284(r3) +{ + 26f8: 23 01 6f 04 .long 0x46f0123 + 26fc: e0 27 f0 27 dozi r31,r16,10208 + 2700: 01 6f 00 08 tdi 0,r0,28417 + 2704: 07 00 00 04 .long 0x4000007 if ((clr | set) & ~(_PAGE_DIRTY | _PAGE_ACCESSED)) - 2718: 00 01 00 00 .long 0x100 + 2708: d0 23 f8 23 subfic r31,r24,9168 { - 271c: 04 d8 24 84 lwzu r1,-10236(r4) - 2720: 26 01 6d 04 .long 0x46d0126 + 270c: 01 6f 04 e0 lq r0,28416(r4) + 2710: 27 f0 27 01 .long 0x127f027 if ((clr | set) & ~(_PAGE_DIRTY | _PAGE_ACCESSED)) - 2724: c0 27 90 28 cmplwi cr1,r16,10176 + 2714: 6f 00 00 00 .long 0x6f struct llist_node *entry = ((struct llist_head *) rmapp)->first; - 2728: 01 6d 04 f0 xsmaxdp vs32,vs4,vs13 + 2718: 00 00 00 00 .long 0x0 { - 272c: 28 9c 29 01 .long 0x1299c28 - 2730: 6d 00 01 01 .long 0x101006d - 2734: 00 01 00 00 .long 0x100 + 271c: 00 00 0c 00 .long 0xc0000 + 2720: 00 00 00 00 .long 0x0 + 2724: 04 d8 23 f4 psq_stu f1,-2044(r3),1,5 if ((clr | set) & ~(_PAGE_DIRTY | _PAGE_ACCESSED)) - 2738: 04 d8 24 84 lwzu r1,-10236(r4) - 273c: 26 01 6f 04 .long 0x46f0126 + 2728: 23 04 79 80 lwz r3,1059(r25) + 272c: 19 9f 04 f4 lxv vs32,-24816(r4) mask = PTE_RPN_MASK & ~(nbytes - 1); - 2740: c0 27 90 28 cmplwi cr1,r16,10176 + 2730: 23 fc 23 04 .long 0x423fc23 for_each_nest_rmap_safe(cursor, entry, &rmap) - 2744: 01 6f 04 f0 xvmaxdp vs32,vs4,vs13 - 2748: 28 9c 29 01 .long 0x1299c28 + 2734: 7d 80 19 9f stbu r24,-32643(r25) + 2738: 04 ac 24 b8 lm r1,-21500(r4) mask = PTE_RPN_MASK & ~(nbytes - 1); - 274c: 6f 00 00 00 .long 0x6f - 2750: 00 01 00 01 .long 0x1000100 + 273c: 24 04 7d 80 lwz r3,1060(r29) + 2740: 19 9f 04 d8 stfd f0,-24807(r4) for_each_nest_rmap_safe(cursor, entry, &rmap) - 2754: 00 00 04 fc fcmpu cr0,f4,f0 - 2758: 24 90 25 01 .long 0x1259024 - 275c: 53 04 90 25 dozi r12,r16,1107 - 2760: 84 26 01 6c xoris r1,r0,9860 + 2744: 24 fb 24 04 .long 0x424fb24 + 2748: 7d 80 19 9f stbu r24,-32643(r25) + 274c: 04 f4 26 a3 lhz r25,-3068(r6) + 2750: 27 04 7a 80 lwz r3,1063(r26) unsigned int shift, lpid; - 2764: 04 c0 27 90 stw r1,-16380(r7) - 2768: 28 01 6c 04 .long 0x46c0128 - 276c: f0 28 9c 29 cmplwi cr3,r28,10480 - 2770: 01 6c 00 00 .long 0x6c01 - ... - 277c: 00 04 dc 25 dozi r14,r28,1024 - 2780: f4 25 01 53 rlwimi r1,r24,4,23,26 - 2784: 04 f4 25 83 lwz r25,-3068(r5) - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2788: 26 01 59 04 .long 0x4590126 - 278c: f0 27 f4 27 dozi r31,r20,10224 - 2790: 01 53 04 f4 lxv vs0,21248(r4) - 2794: 27 83 28 01 .long 0x1288327 - 2798: 59 04 f0 28 cmpldi cr1,r16,1113 - 279c: f4 28 01 59 rlmi r1,r8,r5,3,26 + 2754: 19 9f 04 e0 lq r0,-24816(r4) + 2758: 27 f0 27 04 .long 0x427f027 + 275c: 79 80 19 9f stbu r24,-32647(r25) + 2760: 04 dc 28 f0 xsmaxcdp vs1,vs40,vs27 + 2764: 28 04 7a 80 lwz r3,1064(r26) + 2768: 19 9f 00 01 .long 0x1009f19 + 276c: 05 04 ec 23 subfic r31,r12,1029 + 2770: f8 23 01 6f xoris r1,r24,9208 + 2774: 00 01 01 00 .long 0x10100 + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); + 2778: 00 00 01 00 .long 0x10000 + 277c: 00 04 d8 24 dozi r6,r24,1024 + 2780: 84 26 01 6d xoris r1,r8,9860 + 2784: 04 a8 27 e0 psq_l f1,-2044(r7),1,2 + 2788: 27 01 6d 04 .long 0x46d0127 + 278c: f0 27 90 28 cmplwi cr1,r16,10224 for_each_nest_rmap_safe(cursor, entry, &rmap) - 27a0: 00 05 00 04 .long 0x4000500 - 27a4: d8 24 fc 24 dozi r7,r28,9432 - 27a8: 04 0a c0 0c twllei r0,2564 + 2790: 01 6d 04 f0 xsmaxdp vs32,vs4,vs13 + 2794: 28 9c 29 01 .long 0x1299c28 + 2798: 6d 00 01 01 .long 0x101006d lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; - 27ac: 9f 00 05 00 .long 0x5009f + 279c: 00 00 00 01 .long 0x1000000 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 27b0: 04 d8 24 fc .long 0xfc24d804 + 27a0: 00 00 04 d8 stfd f0,0(r4) for_each_nest_rmap_safe(cursor, entry, &rmap) - 27b4: 24 04 0a 60 ori r10,r0,1060 + 27a4: 24 84 26 01 .long 0x1268424 unsigned int shift, lpid; - 27b8: 11 9f 00 07 .long 0x7009f11 + 27a8: 6f 04 a8 27 dozi r29,r8,1135 gpa = n_rmap & RMAP_NESTED_GPA_MASK; - 27bc: 00 04 d8 24 dozi r6,r24,1024 + 27ac: e0 27 01 6f xoris r1,r24,10208 lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; - 27c0: fc 24 04 0a tdlti r4,9468 + 27b0: 04 f0 27 90 stw r1,-4092(r7) return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 27c4: c0 0d 9f 00 .long 0x9f0dc0 - 27c8: 07 00 04 d8 stfd f0,7(r4) + 27b4: 28 01 6f 04 .long 0x46f0128 + 27b8: f0 28 9c 29 cmplwi cr3,r28,10480 gpa = n_rmap & RMAP_NESTED_GPA_MASK; - 27cc: 24 fc 24 04 .long 0x424fc24 + 27bc: 01 6f 00 00 .long 0x6f01 if (!gp) - 27d0: 0a 60 11 9f stbu r24,24586(r17) - 27d4: 00 1c 00 00 .long 0x1c00 + 27c0: 00 00 01 00 .long 0x10000 + 27c4: 00 00 01 00 .long 0x10000 pte = __find_linux_pte(gp->shadow_pgtable, ea, NULL, hshift); - 27d8: 00 04 d8 24 dozi r6,r24,1024 - 27dc: a8 27 02 3d addis r8,r2,10152 - 27e0: 9f 04 c0 27 dozi r30,r0,1183 - 27e4: 9c 29 02 3d addis r8,r2,10652 - 27e8: 9f 00 0c 1c mulli r0,r12,159 - 27ec: 04 d8 24 d8 stfd f1,-10236(r4) + 27c8: 00 04 fc 24 dozi r7,r28,1024 + 27cc: 90 25 01 53 rlwimi r1,r24,4,22,8 + 27d0: 04 90 25 84 lwzu r1,-28668(r5) + 27d4: 26 01 6c 04 .long 0x46c0126 + 27d8: a8 27 e0 27 dozi r31,r0,10152 + 27dc: 01 6c 04 f0 xsmaxcdp vs32,vs4,vs13 if (ptep && pte_present(*ptep) && ((pte_val(*ptep) & mask) == hpa)) { - 27f0: 24 02 31 9f stbu r25,548(r17) - 27f4: 00 0c 1c 04 .long 0x41c0c00 - 27f8: d8 24 d8 24 dozi r6,r24,9432 - return (pte_raw(pte) & cpu_to_be64(_PAGE_PRESENT | _PAGE_PTE)) == - 27fc: 04 0a 60 11 vsrb v11,v0,v1 + 27e0: 27 90 28 01 .long 0x1289027 + 27e4: 6c 04 f0 28 cmpldi cr1,r16,1132 + 27e8: 9c 29 01 6c xoris r1,r0,10652 + ... if (pte_hw_valid(pte)) - 2800: 9f 00 03 00 .long 0x3009f - 2804: 00 00 04 b0 sth r0,0(r4) + 27f4: 00 00 00 04 .long 0x4000000 return (pte_raw(pte) & cpu_to_be64(_PAGE_INVALID | _PAGE_PTE)) == - 2808: 25 c7 25 03 .long 0x325c725 - 280c: 8f c8 00 04 .long 0x400c88f - 2810: c0 27 eb 27 dozi r31,r11,10176 - 2814: 03 8f c8 00 .long 0xc88f03 - 2818: 00 00 00 04 .long 0x4000000 - 281c: ec 27 f0 27 dozi r31,r16,10220 - 2820: 01 53 00 07 .long 0x7005301 - 2824: 02 00 04 04 .long 0x4040002 - 2828: b0 25 b4 25 dozi r13,r20,9648 - 282c: 03 08 40 9f .long 0x9f400803 - 2830: 04 c0 27 c0 lfs f1,-16380(r7) - 2834: 27 03 08 40 bdnzfla 4*cr2+lt,324 <.debug_loclists+0x324> - 2838: 9f 00 10 02 .long 0x210009f - 283c: 00 04 04 b0 sth r0,1024(r4) - 2840: 25 b4 25 02 .long 0x225b425 + 27f8: dc 25 f4 25 dozi r15,r20,9692 + 27fc: 01 53 04 f4 lxv vs0,21248(r4) + 2800: 25 83 26 01 .long 0x1268325 + 2804: 59 04 f0 27 dozi r31,r16,1113 + 2808: f4 27 01 53 rlwimi r1,r24,4,31,26 + 280c: 04 f4 27 83 lwz r25,-3068(r7) + 2810: 28 01 59 04 .long 0x4590128 + 2814: f0 28 f4 28 cmpldi cr1,r20,10480 + 2818: 01 59 00 05 .long 0x5005901 + 281c: 00 04 d8 24 dozi r6,r24,1024 + 2820: fc 24 04 0a tdlti r4,9468 + 2824: c0 0c 9f 00 .long 0x9f0cc0 + 2828: 05 00 04 d8 stfd f0,5(r4) + 282c: 24 fc 24 04 .long 0x424fc24 + 2830: 0a 60 11 9f stbu r24,24586(r17) for_each_nest_rmap_safe(cursor, entry, &rmap) - 2844: 36 9f 04 c0 lfs f0,-24778(r4) - 2848: 27 c0 27 02 .long 0x227c027 - 284c: 36 9f 00 00 .long 0x9f36 - 2850: 00 02 00 04 .long 0x4000200 + 2834: 00 07 00 04 .long 0x4000700 + 2838: d8 24 fc 24 dozi r7,r28,9432 + 283c: 04 0a c0 0d twi 14,r0,2564 + 2840: 9f 00 07 00 .long 0x7009f lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; - 2854: b4 25 c8 25 dozi r14,r8,9652 + 2844: 04 d8 24 fc .long 0xfc24d804 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2858: 02 31 9f 04 .long 0x49f3102 + 2848: 24 04 0a 60 ori r10,r0,1060 unsigned int shift, lpid; - 285c: c0 27 f0 27 dozi r31,r16,10176 + 284c: 11 9f 00 1c mulli r0,r0,-24815 gpa = n_rmap & RMAP_NESTED_GPA_MASK; - 2860: 02 30 9f 00 .long 0x9f3002 + 2850: 00 00 00 04 .long 0x4000000 lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; - 2864: 14 00 00 02 .long 0x2000014 + 2854: d8 24 e0 27 dozi r31,r0,9432 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2868: 04 b0 25 b4 sthu r1,-20476(r5) - 286c: 25 02 31 9f stbu r25,549(r17) + 2858: 02 3d 9f 04 .long 0x49f3d02 + 285c: f0 27 9c 29 cmplwi cr3,r28,10224 gpa = n_rmap & RMAP_NESTED_GPA_MASK; - 2870: 04 c0 27 c0 lfs f1,-16380(r7) + 2860: 02 3d 9f 00 .long 0x9f3d02 if (!gp) - 2874: 27 02 31 9f stbu r25,551(r17) - 2878: 00 01 00 00 .long 0x100 + 2864: 0c 1c 04 d8 stfd f0,7180(r4) + 2868: 24 d8 24 02 .long 0x224d824 for_each_nest_rmap_safe(cursor, entry, &rmap) - 287c: 00 04 f4 27 dozi r31,r20,1024 - 2880: 83 28 03 8f lbzu r24,10371(r3) - 2884: c8 00 04 f0 xsmsubmsp vs0,vs4,vs0 - 2888: 28 97 29 03 .long 0x3299728 - 288c: 8f c8 00 00 .long 0xc88f - 2890: 00 00 00 00 .long 0x0 - 2894: 00 00 04 f4 psq_stu f0,0(r4),0,0 - 2898: 27 83 28 01 .long 0x1288327 - 289c: 53 04 f0 28 cmpldi cr1,r16,1107 - 28a0: 90 29 01 53 rlwimi r1,r24,5,6,8 - 28a4: 04 90 29 97 stwu r25,-28668(r9) - 28a8: 29 02 8c 10 vmsumshs v4,v12,v0,v8 - 28ac: 00 04 02 00 .long 0x20400 - 28b0: 04 04 f4 27 dozi r31,r20,1028 - 28b4: f8 27 03 08 tdi 0,r3,10232 - 28b8: 40 9f 04 f0 xvmindp vs0,vs4,vs19 -} - 28bc: 28 f0 28 03 .long 0x328f028 - 28c0: 08 40 9f 00 .long 0x9f4008 - 28c4: 0d 02 00 04 pstxvp vs32,34468868(r7) - 28c8: 04 f4 27 f8 - 28cc: 27 02 36 9f stbu r25,551(r22) - 28d0: 04 f0 28 f0 xsaddsp vs1,vs40,vs30 - 28d4: 28 02 36 9f stbu r25,552(r22) - 28d8: 00 00 00 02 .long 0x2000000 - 28dc: 00 04 f8 27 dozi r31,r24,1024 + 286c: 31 9f 00 0c twi 0,r0,-24783 + 2870: 1c 04 d8 24 dozi r6,r24,1052 + 2874: d8 24 04 0a tdlti r4,9432 + 2878: 60 11 9f 00 .long 0x9f1160 + 287c: 03 00 00 00 .long 0x3 + 2880: 04 b0 25 c7 lfsu f25,-20476(r5) + 2884: 25 03 8f c8 lfd f4,805(r15) + 2888: 00 04 a8 27 dozi r29,r8,1024 + 288c: db 27 03 8f lbzu r24,10203(r3) + 2890: c8 00 00 00 .long 0xc8 + 2894: 00 04 dc 27 dozi r30,r28,1024 + 2898: e0 27 01 53 rlwimi r1,r24,4,31,16 + 289c: 00 07 02 00 .long 0x20700 + 28a0: 03 04 b0 25 dozi r13,r16,1027 + 28a4: b4 25 03 08 tdi 0,r3,9652 + 28a8: 40 9f 04 a8 lha r0,-24768(r4) +} + 28ac: 27 a8 27 03 .long 0x327a827 + 28b0: 08 40 9f 00 .long 0x9f4008 + 28b4: 10 02 00 03 .long 0x3000210 + 28b8: 04 b0 25 b4 sthu r1,-20476(r5) + 28bc: 25 02 36 9f stbu r25,549(r22) + 28c0: 04 a8 27 a8 lha r1,-22524(r7) + 28c4: 27 02 36 9f stbu r25,551(r22) + 28c8: 00 00 00 01 .long 0x1000000 + 28cc: 00 04 b4 25 dozi r13,r20,1024 : "r" (ptep), "r" (cpu_to_be64(set)), "r" (cpu_to_be64(clr)) - 28e0: 84 28 02 31 addic r8,r2,10372 - 28e4: 9f 04 f0 28 cmpldi cr1,r16,1183 - 28e8: 9c 29 02 30 addic r0,r2,10652 - 28ec: 9f 00 11 00 .long 0x11009f - 28f0: 00 02 04 f4 psq_stu f0,512(r4),0,0 - 28f4: 27 f8 27 02 .long 0x227f827 - 28f8: 31 9f 04 f0 xxsel vs32,vs4,vs19,vs28 - 28fc: 28 f0 28 02 .long 0x228f028 - 2900: 31 9f 00 04 .long 0x4009f31 - 2904: 00 04 f8 27 dozi r31,r24,1024 - 2908: 83 28 01 53 rlwimi. r1,r24,5,2,1 - 290c: 00 04 00 00 .long 0x400 - 2910: 00 04 f0 28 cmpldi cr1,r16,1024 - 2914: 90 29 01 53 rlwimi r1,r24,5,6,8 - 2918: 04 90 29 97 stwu r25,-28668(r9) - 291c: 29 01 54 00 .long 0x540129 - 2920: 04 01 04 84 lwzu r0,260(r4) - 2924: 26 ac 26 01 .long 0x126ac26 + 28d0: c8 25 02 31 addic r8,r2,9672 + 28d4: 9f 04 a8 27 dozi r29,r8,1183 + 28d8: e0 27 02 30 addic r0,r2,10208 + 28dc: 9f 00 14 00 .long 0x14009f + 28e0: 00 01 04 b0 sth r0,256(r4) + 28e4: 25 b4 25 02 .long 0x225b425 + 28e8: 31 9f 04 a8 lha r0,-24783(r4) + 28ec: 27 a8 27 02 .long 0x227a827 + 28f0: 31 9f 00 01 .long 0x1009f31 + 28f4: 00 00 00 04 .long 0x4000000 + 28f8: f4 27 83 28 cmplwi cr1,r3,10228 + 28fc: 03 8f c8 00 .long 0xc88f03 + 2900: 04 f0 28 97 stwu r25,-4092(r8) + 2904: 29 03 8f c8 lfd f4,809(r15) + ... + 2910: 04 f4 27 83 lwz r25,-3068(r7) + 2914: 28 01 53 04 .long 0x4530128 __asm__ __volatile__( - 2928: 6d 00 04 01 .long 0x104006d - 292c: 04 84 26 ac lhau r1,-31740(r6) - 2930: 26 01 6f 00 .long 0x6f0126 - 2934: 01 00 04 b8 lm r0,1(r4) - 2938: 26 cc 26 01 .long 0x126cc26 + 2918: f0 28 90 29 cmplwi cr3,r16,10480 + 291c: 01 53 04 90 stw r0,21249(r4) + 2920: 29 97 29 02 .long 0x2299729 + 2924: 8c 10 00 04 .long 0x400108c + 2928: 02 00 04 04 .long 0x4040002 kvmppc_radix_tlbie_page(kvm, gpa, shift, lpid); - 293c: 6f 00 02 00 .long 0x2006f - 2940: 04 cc 26 dc stfdu f1,-13308(r6) - 2944: 26 01 6d 00 .long 0x6d0126 - 2948: 02 00 04 cc lfdu f0,2(r4) - 294c: 26 dc 26 01 .long 0x126dc26 - 2950: 6f 00 01 09 tdgti r1,111 - 2954: 00 00 04 f4 psq_stu f0,0(r4),0,0 - 2958: 26 98 27 01 .long 0x1279826 - 295c: 6f 04 dc 28 cmplwi cr1,r28,1135 - 2960: f0 28 01 6f xoris r1,r24,10480 - 2964: 00 03 09 00 .long 0x90300 - 2968: 00 04 f4 26 dozi r23,r20,1024 - 296c: 98 27 01 6f xoris r1,r24,10136 - 2970: 04 dc 28 f0 xsmaxcdp vs1,vs40,vs27 - 2974: 28 01 6f 00 .long 0x6f0128 - 2978: 08 07 00 00 .long 0x708 - 297c: 04 f4 26 98 stb r1,-3068(r6) - 2980: 27 01 6f 04 .long 0x46f0127 - 2984: dc 28 f0 28 cmpldi cr1,r16,10460 - 2988: 01 6f 00 0c twi 0,r0,28417 -} - 298c: 00 00 00 04 .long 0x4000000 - 2990: f4 26 a3 27 dozi r29,r3,9972 - 2994: 04 7a 80 19 .long 0x19807a04 - 2998: 9f 04 dc 28 cmplwi cr1,r28,1183 - 299c: f0 28 04 7a rldcl r4,r16,r5,35 - 29a0: 80 19 9f 00 .long 0x9f1980 - 29a4: 01 05 04 8c lbzu r0,1281(r4) -{ - 29a8: 27 98 27 01 .long 0x1279827 - 29ac: 6f 00 01 02 .long 0x201006f - 29b0: 04 94 28 c0 lfs f1,-27644(r8) - 29b4: 28 01 6c 00 .long 0x6c0128 - 29b8: 01 02 04 94 stwu r0,513(r4) - 29bc: 28 c0 28 01 .long 0x128c028 + 292c: f4 27 f8 27 dozi r31,r24,10228 + 2930: 03 08 40 9f .long 0x9f400803 + 2934: 04 f0 28 f0 xsaddsp vs1,vs40,vs30 + 2938: 28 03 08 40 bdnzf 4*cr2+lt,2c60 <.debug_loclists+0x2c60> + 293c: 9f 00 0d 02 .long 0x20d009f + 2940: 00 04 04 f4 psq_stu f0,1024(r4),0,0 + 2944: 27 f8 27 02 .long 0x227f827 + 2948: 36 9f 04 f0 xxsel vs0,vs36,vs51,vs28 + 294c: 28 f0 28 02 .long 0x228f028 + 2950: 36 9f 00 00 .long 0x9f36 + 2954: 00 02 00 04 .long 0x4000200 + 2958: f8 27 84 28 cmplwi cr1,r4,10232 + 295c: 02 31 9f 04 .long 0x49f3102 + 2960: f0 28 9c 29 cmplwi cr3,r28,10480 + 2964: 02 30 9f 00 .long 0x9f3002 + 2968: 11 00 00 02 .long 0x2000011 + 296c: 04 f4 27 f8 std r1,-3068(r7) + 2970: 27 02 31 9f stbu r25,551(r17) + 2974: 04 f0 28 f0 xsaddsp vs1,vs40,vs30 + 2978: 28 02 31 9f stbu r25,552(r17) +} + 297c: 00 04 00 04 .long 0x4000400 + 2980: f8 27 83 28 cmplwi cr1,r3,10232 + 2984: 01 53 00 04 .long 0x4005301 + 2988: 00 00 00 04 .long 0x4000000 + 298c: f0 28 90 29 cmplwi cr3,r16,10480 + 2990: 01 53 04 90 stw r0,21249(r4) + 2994: 29 97 29 01 .long 0x1299729 +{ + 2998: 54 00 04 01 .long 0x1040054 + 299c: 04 84 26 ac lhau r1,-31740(r6) + 29a0: 26 01 6d 00 .long 0x6d0126 + 29a4: 04 01 04 84 lwzu r0,260(r4) + 29a8: 26 ac 26 01 .long 0x126ac26 + 29ac: 6f 00 01 00 .long 0x1006f if (!memslot) - 29c0: 6d 00 01 02 .long 0x201006d + 29b0: 04 b8 26 cc lfdu f1,-18428(r6) { - 29c4: 04 94 28 c0 lfs f1,-27644(r8) - 29c8: 28 01 6f 00 .long 0x6f0128 - 29cc: 02 02 04 bc stmw r0,514(r4) + 29b4: 26 01 6f 00 .long 0x6f0126 + 29b8: 02 00 04 cc lfdu f0,2(r4) + 29bc: 26 dc 26 01 .long 0x126dc26 if (!memslot) - 29d0: 28 c0 28 02 .long 0x228c028 + 29c0: 6d 00 02 00 .long 0x2006d gfn = (gpa >> PAGE_SHIFT) - memslot->base_gfn; - 29d4: 30 9f 00 00 .long 0x9f30 - 29d8: 00 00 00 00 .long 0x0 - 29dc: 00 00 00 04 .long 0x4000000 + 29c4: 04 cc 26 dc stfdu f1,-13308(r6) + 29c8: 26 01 6f 00 .long 0x6f0126 + 29cc: 01 09 00 00 .long 0x901 end_gfn = gfn + (nbytes >> PAGE_SHIFT); - 29e0: a8 1d 8b 1e mulli r20,r11,7592 + 29d0: 04 f4 26 98 stb r1,-3068(r6) addr_mask = PTE_RPN_MASK & ~(nbytes - 1); - 29e4: 01 53 04 8b lbz r24,21249(r4) - 29e8: 1e 88 22 01 .long 0x122881e + 29d4: 27 01 6f 04 .long 0x46f0127 + 29d8: dc 28 f0 28 cmpldi cr1,r16,10460 gfn = (gpa >> PAGE_SHIFT) - memslot->base_gfn; - 29ec: 6b 04 88 22 subfic r20,r8,1131 + 29dc: 01 6f 00 03 .long 0x3006f01 addr_mask = PTE_RPN_MASK & ~(nbytes - 1); - 29f0: a0 22 04 a3 lhz r24,8864(r4) - 29f4: 01 53 9f 04 .long 0x49f5301 + 29e0: 09 00 00 04 .long 0x4000009 + 29e4: f4 26 98 27 dozi r28,r24,9972 gfn = (gpa >> PAGE_SHIFT) - memslot->base_gfn; - 29f8: a0 22 bc 22 subfic r21,r28,8864 + 29e8: 01 6f 04 dc stfdu f0,28417(r4) end_gfn = gfn + (nbytes >> PAGE_SHIFT); - 29fc: 01 6b 00 00 .long 0x6b01 + 29ec: 28 f0 28 01 .long 0x128f028 for (; gfn < end_gfn; gfn++) { - 2a00: 00 00 00 00 .long 0x0 - 2a04: 00 00 0b 0b tdnei r11,0 - 2a08: 00 00 00 01 .long 0x1000000 - 2a0c: 07 02 00 04 .long 0x4000207 - 2a10: 94 1e 9c 1e mulli r20,r28,7828 - 2a14: 01 53 04 9c stbu r0,21249(r4) - 2a18: 1e c8 1e 01 .long 0x11ec81e - 2a1c: 6f 04 dc 1e mulli r22,r28,1135 - 2a20: e8 1e 01 53 rlwimi r1,r24,3,27,20 - 2a24: 04 e8 1e 98 stb r0,-6140(r30) + 29f0: 6f 00 08 07 .long 0x708006f + 29f4: 00 00 04 f4 psq_stu f0,0(r4),0,0 + 29f8: 26 98 27 01 .long 0x1279826 + 29fc: 6f 04 dc 28 cmplwi cr1,r28,1135 + 2a00: f0 28 01 6f xoris r1,r24,10480 + 2a04: 00 0c 00 00 .long 0xc00 + 2a08: 00 04 f4 26 dozi r23,r20,1024 + 2a0c: a3 27 04 7a rldicl. r4,r16,36,62 + 2a10: 80 19 9f 04 .long 0x49f1980 + 2a14: dc 28 f0 28 cmpldi cr1,r16,10460 unsigned int shift, lpid; - 2a28: 1f 01 6f 04 .long 0x46f011f - 2a2c: 98 1f a8 1f mulli r29,r8,8088 + 2a18: 04 7a 80 19 .long 0x19807a04 + 2a1c: 9f 00 01 05 .long 0x501009f return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2a30: 01 6e 04 a8 lha r0,28161(r4) - 2a34: 1f ab 1f 01 .long 0x11fab1f - 2a38: 53 04 ac 1f mulli r29,r12,1107 - 2a3c: d0 1f 01 6e xoris r1,r16,8144 - 2a40: 04 a4 22 b0 sth r1,-23548(r2) - 2a44: 22 01 6f 00 .long 0x6f0122 - 2a48: 02 00 00 01 .long 0x1000002 - 2a4c: 01 00 00 00 .long 0x1 + 2a20: 04 8c 27 98 stb r1,-29692(r7) + 2a24: 27 01 6f 00 .long 0x6f0127 + 2a28: 01 02 04 94 stwu r0,513(r4) + 2a2c: 28 c0 28 01 .long 0x128c028 + 2a30: 6c 00 01 02 .long 0x201006c + 2a34: 04 94 28 c0 lfs f1,-27644(r8) + 2a38: 28 01 6d 00 .long 0x6d0128 + 2a3c: 01 02 04 94 stwu r0,513(r4) unsigned long *rmap = &memslot->arch.rmap[gfn]; - 2a50: 00 07 02 00 .long 0x20700 - 2a54: 04 84 1e 94 stwu r0,-31740(r30) - 2a58: 1e 02 30 9f stbu r25,542(r16) + 2a40: 28 c0 28 01 .long 0x128c028 + 2a44: 6f 00 02 02 .long 0x202006f + 2a48: 04 bc 28 c0 lfs f1,-17404(r8) return xchg(&head->first, NULL); - 2a5c: 04 94 1e bc stmw r0,-27644(r30) - 2a60: 1e 01 6e 04 .long 0x46e011e - 2a64: bc 1e c0 1e mulli r22,r0,7868 - 2a68: 01 6f 04 c0 lfs f0,28417(r4) - 2a6c: 1e c8 1e 01 .long 0x11ec81e + 2a4c: 28 02 30 9f stbu r25,552(r16) + ... + 2a58: 00 04 a8 1d mulli r13,r8,1024 + 2a5c: 8b 1e 01 53 rlwimi. r1,r24,3,26,5 for_each_nest_rmap_safe(cursor, entry, &rmap) { - 2a70: 6e 04 d4 1e mulli r22,r20,1134 - 2a74: d0 1f 01 6e xoris r1,r16,8144 - 2a78: 04 a4 22 b0 sth r1,-23548(r2) - 2a7c: 22 01 6e 00 .long 0x6e0122 - 2a80: 06 00 00 00 .long 0x6 - 2a84: 00 00 00 00 .long 0x0 - 2a88: 00 02 00 00 attn - lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; - 2a8c: 04 d0 1f f0 xsaddsp vs0,vs63,vs26 + 2a60: 04 8b 1e 88 lbz r0,-29948(r30) + 2a64: 22 01 6b 04 .long 0x46b0122 + 2a68: 88 22 a0 22 subfic r21,r0,8840 + 2a6c: 04 a3 01 53 rlwimi r1,r24,20,12,2 + 2a70: 9f 04 a0 22 subfic r21,r0,1183 + 2a74: bc 22 01 6b xori r1,r24,8892 + ... return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2a90: 1f 02 30 9f stbu r25,543(r16) + 2a80: 0b 0b 00 00 .long 0xb0b for_each_nest_rmap_safe(cursor, entry, &rmap) { - 2a94: 04 fc 1f 80 lwz r0,-1020(r31) + 2a84: 00 01 07 02 .long 0x2070100 unsigned int shift, lpid; - 2a98: 20 06 79 00 .long 0x790620 - 2a9c: 8d 00 1c 9f stbu r24,141(r28) + 2a88: 00 04 94 1e mulli r20,r20,1024 + 2a8c: 9c 1e 01 53 rlwimi r1,r24,3,26,14 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2aa0: 04 80 20 b8 lmw r1,-32764(0) - 2aa4: 21 01 6d 04 .long 0x46d0121 - 2aa8: bc 21 a0 22 subfic r21,r0,8636 + 2a90: 04 9c 1e c8 lfd f0,-25596(r30) + 2a94: 1e 01 6f 04 .long 0x46f011e + 2a98: dc 1e e8 1e mulli r23,r8,7900 for_each_nest_rmap_safe(cursor, entry, &rmap) { - 2aac: 02 30 9f 04 .long 0x49f3002 + 2a9c: 01 53 04 e8 ldu r0,21248(r4) if (!gp) - 2ab0: a0 22 a4 22 subfic r21,r4,8864 - 2ab4: 01 6d 04 b0 sth r0,27905(r4) + 2aa0: 1e 98 1f 01 .long 0x11f981e + 2aa4: 6f 04 98 1f mulli r28,r24,1135 kfree(cursor); - 2ab8: 22 bc 22 02 .long 0x222bc22 - 2abc: 30 9f 00 04 .long 0x4009f30 - 2ac0: 00 00 02 00 .long 0x20000 + 2aa8: a8 1f 01 6e xoris r1,r16,8104 + 2aac: 04 a8 1f ab lha r24,-22524(r31) + 2ab0: 1f 01 53 04 .long 0x453011f for_each_nest_rmap_safe(cursor, entry, &rmap) { - 2ac4: 00 04 d0 1f mulli r30,r16,1024 - 2ac8: 80 22 01 69 xori r1,r8,8832 - 2acc: 04 a0 22 a4 lhzu r1,-24572(r2) - 2ad0: 22 01 69 04 .long 0x4690122 - 2ad4: b0 22 bc 22 subfic r21,r28,8880 + 2ab4: ac 1f d0 1f mulli r30,r16,8108 + 2ab8: 01 6e 04 a4 lhzu r0,28161(r4) + 2abc: 22 b0 22 01 .long 0x122b022 + 2ac0: 6f 00 02 00 .long 0x2006f + 2ac4: 00 01 01 00 .long 0x10100 lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; - 2ad8: 01 69 00 06 .long 0x6006901 + 2ac8: 00 00 00 07 .long 0x7000000 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2adc: 07 07 00 00 .long 0x707 + 2acc: 02 00 04 84 lwzu r0,2(r4) unsigned int shift, lpid; - 2ae0: 02 00 00 04 .long 0x4000002 + 2ad0: 1e 94 1e 02 .long 0x21e941e return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2ae4: d0 1f d0 1f mulli r30,r16,8144 - 2ae8: 02 30 9f 04 .long 0x49f3002 - 2aec: d0 1f 84 22 subfic r20,r4,8144 + 2ad4: 30 9f 04 94 stwu r0,-24784(r4) + 2ad8: 1e bc 1e 01 .long 0x11ebc1e + 2adc: 6e 04 bc 1e mulli r21,r28,1134 if (!gp) - 2af0: 01 6a 04 a0 lhz r0,27137(r4) - 2af4: 22 a4 22 01 .long 0x122a422 + 2ae0: c0 1e 01 6f xoris r1,r24,7872 + 2ae4: 04 c0 1e c8 lfd f0,-16380(r30) for_each_nest_rmap_safe(cursor, entry, &rmap) { - 2af8: 6a 04 b0 22 subfic r21,r16,1130 - 2afc: bc 22 01 6a xori r1,r16,8892 + 2ae8: 1e 01 6e 04 .long 0x46e011e + 2aec: d4 1e d0 1f mulli r30,r16,7892 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2b00: 00 00 00 04 .long 0x4000000 - 2b04: e8 1f f0 1f mulli r31,r16,8168 - 2b08: 01 59 00 01 .long 0x1005901 - 2b0c: 00 04 f0 1f mulli r31,r16,1024 + 2af0: 01 6e 04 a4 lhzu r0,28161(r4) + 2af4: 22 b0 22 01 .long 0x122b022 + 2af8: 6e 00 06 00 .long 0x6006e + 2afc: 00 00 00 00 .long 0x0 if (!gp) - 2b10: 88 20 01 59 rlmi r1,r8,r4,2,4 - 2b14: 00 03 06 04 .long 0x4060300 + 2b00: 00 00 00 02 .long 0x2000000 + 2b04: 00 00 04 d0 stfs f0,0(r4) gpa = n_rmap & RMAP_NESTED_GPA_MASK; - 2b18: f0 1f f4 1f mulli r31,r20,8176 + 2b08: 1f f0 1f 02 .long 0x21ff01f pte = __find_linux_pte(gp->shadow_pgtable, ea, NULL, hshift); - 2b1c: 01 6b 00 05 .long 0x5006b01 - 2b20: 06 04 f0 1f mulli r31,r16,1030 - 2b24: f4 1f 02 30 addic r0,r2,8180 + 2b0c: 30 9f 04 fc .long 0xfc049f30 + 2b10: 1f 80 20 06 .long 0x620801f + 2b14: 79 00 8d 00 .long 0x8d0079 gpa = n_rmap & RMAP_NESTED_GPA_MASK; - 2b28: 9f 00 05 06 .long 0x605009f + 2b18: 1c 9f 04 80 lwz r0,-24804(r4) pte = __find_linux_pte(gp->shadow_pgtable, ea, NULL, hshift); - 2b2c: 04 f0 1f f4 psq_stu f0,4(r31),1,7 - 2b30: 1f 01 6b 00 .long 0x6b011f - 2b34: 08 00 00 02 .long 0x2000008 + 2b1c: 20 b8 21 01 .long 0x121b820 + 2b20: 6d 04 bc 21 subfic r13,r28,1133 + 2b24: a0 22 02 30 addic r0,r2,8864 if (ptep && pte_present(*ptep) && ((pte_val(*ptep) & mask) == hpa)) - 2b38: 04 f0 1f b8 lm r0,-4092(r31) - 2b3c: 21 02 30 9f stbu r25,545(r16) - 2b40: 04 a0 22 a4 lhzu r1,-24572(r2) + 2b28: 9f 04 a0 22 subfic r21,r0,1183 + 2b2c: a4 22 01 6d xoris r1,r8,8868 + 2b30: 04 b0 22 bc stmw r1,-20476(r2) return (pte_raw(pte) & cpu_to_be64(_PAGE_PRESENT | _PAGE_PTE)) == - 2b44: 22 02 30 9f stbu r25,546(r16) + 2b34: 22 02 30 9f stbu r25,546(r16) if (pte_hw_valid(pte)) - 2b48: 00 09 00 00 .long 0x900 - 2b4c: 02 04 f0 1f mulli r31,r16,1026 + 2b38: 00 04 00 00 .long 0x400 + 2b3c: 02 00 00 04 .long 0x4000002 return (pte_raw(pte) & cpu_to_be64(_PAGE_INVALID | _PAGE_PTE)) == - 2b50: b8 21 02 31 addic r8,r2,8632 - 2b54: 9f 04 a0 22 subfic r21,r0,1183 - 2b58: a4 22 02 31 addic r8,r2,8868 - 2b5c: 9f 00 00 00 .long 0x9f - 2b60: 00 02 04 f4 psq_stu f0,512(r4),0,0 - 2b64: 1f 98 20 01 .long 0x120981f - 2b68: 5a 04 a0 22 subfic r21,r0,1114 - 2b6c: a4 22 01 5a rlmi r1,r16,r4,10,18 - 2b70: 00 09 06 04 .long 0x4060900 - 2b74: d0 1f d8 1f mulli r30,r24,8144 - 2b78: 01 6b 00 0b tdnei r0,27393 - 2b7c: 06 04 d0 1f mulli r30,r16,1030 - 2b80: d8 1f 02 30 addic r0,r2,8152 - 2b84: 9f 00 0b 06 .long 0x60b009f - 2b88: 04 d0 1f d8 stfd f0,-12284(r31) + 2b40: d0 1f 80 22 subfic r20,r0,8144 + 2b44: 01 69 04 a0 lhz r0,26881(r4) + 2b48: 22 a4 22 01 .long 0x122a422 + 2b4c: 69 04 b0 22 subfic r21,r16,1129 + 2b50: bc 22 01 69 xori r1,r8,8892 + 2b54: 00 06 07 07 .long 0x7070600 + 2b58: 00 00 02 00 .long 0x20000 + 2b5c: 00 04 d0 1f mulli r30,r16,1024 + 2b60: d0 1f 02 30 addic r0,r2,8144 + 2b64: 9f 04 d0 1f mulli r30,r16,1183 + 2b68: 84 22 01 6a xori r1,r16,8836 + 2b6c: 04 a0 22 a4 lhzu r1,-24572(r2) + 2b70: 22 01 6a 04 .long 0x46a0122 + 2b74: b0 22 bc 22 subfic r21,r28,8880 + 2b78: 01 6a 00 00 .long 0x6a01 kvmppc_unmap_pte(kvm, ptep, gpa, shift, NULL, gp->shadow_lpid); - 2b8c: 1f 01 6b 00 .long 0x6b011f - 2b90: 0e 02 00 00 .long 0x20e - 2b94: 04 d0 1f a4 lhzu r0,-12284(r31) - 2b98: 22 02 30 9f stbu r25,546(r16) - 2b9c: 04 b0 22 bc stmw r1,-20476(r2) - 2ba0: 22 02 30 9f stbu r25,546(r16) - 2ba4: 00 0f 02 00 .long 0x20f00 - 2ba8: 00 04 d0 1f mulli r30,r16,1024 - 2bac: a4 22 02 31 addic r8,r2,8868 + 2b7c: 00 04 e8 1f mulli r31,r8,1024 + 2b80: f0 1f 01 59 rlmi r1,r8,r3,31,24 + 2b84: 00 01 00 04 .long 0x4000100 + 2b88: f0 1f 88 20 subfic r4,r8,8176 + 2b8c: 01 59 00 03 .long 0x3005901 + 2b90: 06 04 f0 1f mulli r31,r16,1030 + 2b94: f4 1f 01 6b xori r1,r24,8180 + 2b98: 00 05 06 04 .long 0x4060500 + 2b9c: f0 1f f4 1f mulli r31,r20,8176 kfree(cursor); - 2bb0: 9f 04 b0 22 subfic r21,r16,1183 - 2bb4: bc 22 02 31 addic r8,r2,8892 + 2ba0: 02 30 9f 00 .long 0x9f3002 + 2ba4: 05 06 04 f0 xvmaxsp vs32,vs36,vs0 for (; gfn < end_gfn; gfn++) { - 2bb8: 9f 00 00 00 .long 0x9f - 2bbc: 04 d8 1f f0 xsaddsp vs0,vs63,vs27 - 2bc0: 1f 01 5a 00 .long 0x5a011f - 2bc4: 02 00 00 02 .long 0x2000002 - 2bc8: 04 84 20 98 stb r1,-31740(0) - 2bcc: 20 0a 8d b8 lm r4,2592(r13) - 2bd0: 01 06 30 29 cmpldi cr2,r16,1537 - 2bd4: 08 ff 1a 9f stbu r24,-248(r26) - 2bd8: 04 a0 22 a4 lhzu r1,-24572(r2) - 2bdc: 22 08 79 00 .long 0x790822 - 2be0: 30 29 08 ff .long 0xff082930 - 2be4: 1a 9f 00 00 .long 0x9f1a - 2be8: 00 04 b0 21 subfic r13,r16,1024 - 2bec: b8 21 01 59 rlmi r1,r8,r4,6,28 - 2bf0: 00 03 06 04 .long 0x4060300 - 2bf4: a0 21 a4 21 subfic r13,r4,8608 - 2bf8: 01 6b 00 05 .long 0x5006b01 - 2bfc: 06 04 a0 21 subfic r13,r0,1030 - 2c00: a4 21 02 30 addic r0,r2,8612 -} - 2c04: 9f 00 05 06 .long 0x605009f - 2c08: 04 a0 21 a4 .long 0xa421a004 - 2c0c: 21 01 6b 00 .long 0x6b0121 - 2c10: 08 00 04 a0 lhz r0,8(r4) - 2c14: 21 b8 21 02 .long 0x221b821 - 2c18: 30 9f 00 09 tdgti r0,-24784 - 2c1c: 00 04 a0 21 subfic r13,r0,1024 - 2c20: b8 21 02 31 addic r8,r2,8632 - 2c24: 9f 00 00 00 .long 0x9f - 2c28: 04 a4 21 a8 lha r1,-23548(r1) - 2c2c: 21 01 59 00 .long 0x590121 - 2c30: 00 00 04 98 stb r0,0(r4) - 2c34: 20 a0 21 01 .long 0x121a020 - 2c38: 6e 00 00 00 .long 0x6e - 2c3c: 04 f8 20 88 lbz r1,-2044(0) - 2c40: 21 02 73 08 tdi 3,r19,545 - 2c44: 00 01 00 00 .long 0x100 - 2c48: 00 04 bc 20 subfic r5,r28,1024 - 2c4c: c8 20 0a 8e lbzu r16,8392(r10) - 2c50: 00 33 24 8d lbzu r9,13056(r4) - 2c54: c8 01 06 22 subfic r16,r6,456 - 2c58: 9f 04 c8 20 subfic r6,r8,1183 - 2c5c: e4 20 01 59 rlmi r1,r8,r4,3,18 - 2c60: 00 00 02 04 .long 0x4020000 - 2c64: 00 01 00 04 .long 0x4000100 - 2c68: 98 20 ac 20 subfic r5,r12,8344 - 2c6c: 02 30 9f 04 .long 0x49f3002 - 2c70: dc 20 8f 21 subfic r12,r15,8412 - 2c74: 01 53 04 90 stw r0,21249(r4) - 2c78: 21 a0 21 01 .long 0x121a021 - 2c7c: 6f 00 00 02 .long 0x200006f - 2c80: 02 00 00 00 .long 0x2 - 2c84: 04 98 20 ac .long 0xac209804 -{ - 2c88: 20 02 30 9f stbu r25,544(r16) - 2c8c: 04 dc 20 88 lbz r1,-9212(0) - 2c90: 21 01 53 04 .long 0x4530121 - 2c94: 88 21 a0 21 subfic r13,r0,8584 - 2c98: 01 6f 00 04 .long 0x4006f01 - 2c9c: 00 00 02 04 .long 0x4020000 - 2ca0: bc 20 c8 20 subfic r6,r8,8380 - 2ca4: 0a 8e 00 33 addic r24,r0,-29174 - 2ca8: 24 8d c8 01 .long 0x1c88d24 + 2ba8: 1f f4 1f 01 .long 0x11ff41f + 2bac: 6b 00 08 00 .long 0x8006b + 2bb0: 00 02 04 f0 xvaddsp vs0,vs4,vs0 + 2bb4: 1f b8 21 02 .long 0x221b81f + 2bb8: 30 9f 04 a0 lhz r0,-24784(r4) + 2bbc: 22 a4 22 02 .long 0x222a422 + 2bc0: 30 9f 00 09 tdgti r0,-24784 + 2bc4: 00 00 02 04 .long 0x4020000 + 2bc8: f0 1f b8 21 subfic r13,r24,8176 + 2bcc: 02 31 9f 04 .long 0x49f3102 + 2bd0: a0 22 a4 22 subfic r21,r4,8864 + 2bd4: 02 31 9f 00 .long 0x9f3102 + 2bd8: 00 00 00 02 .long 0x2000000 + 2bdc: 04 f4 1f 98 stb r0,-3068(r31) + 2be0: 20 01 5a 04 .long 0x45a0120 + 2be4: a0 22 a4 22 subfic r21,r4,8864 + 2be8: 01 5a 00 09 tdgti r0,23041 + 2bec: 06 04 d0 1f mulli r30,r16,1030 + 2bf0: d8 1f 01 6b xori r1,r24,8152 +} + 2bf4: 00 0b 06 04 .long 0x4060b00 + 2bf8: d0 1f d8 1f mulli r30,r24,8144 + 2bfc: 02 30 9f 00 .long 0x9f3002 + 2c00: 0b 06 04 d0 stfs f0,1547(r4) + 2c04: 1f d8 1f 01 .long 0x11fd81f + 2c08: 6b 00 0e 02 .long 0x20e006b + 2c0c: 00 00 04 d0 stfs f0,0(r4) + 2c10: 1f a4 22 02 .long 0x222a41f + 2c14: 30 9f 04 b0 sth r0,-24784(r4) + 2c18: 22 bc 22 02 .long 0x222bc22 + 2c1c: 30 9f 00 0f twnei r0,-24784 + 2c20: 02 00 00 04 .long 0x4000002 + 2c24: d0 1f a4 22 subfic r21,r4,8144 + 2c28: 02 31 9f 04 .long 0x49f3102 + 2c2c: b0 22 bc 22 subfic r21,r28,8880 + 2c30: 02 31 9f 00 .long 0x9f3102 + 2c34: 00 00 04 d8 stfd f0,0(r4) + 2c38: 1f f0 1f 01 .long 0x11ff01f + 2c3c: 5a 00 02 00 .long 0x2005a + 2c40: 00 02 04 84 lwzu r0,512(r4) + 2c44: 20 98 20 0a tdi 17,r0,-26592 + 2c48: 8d b8 01 06 .long 0x601b88d + 2c4c: 30 29 08 ff .long 0xff082930 + 2c50: 1a 9f 04 a0 lhz r0,-24806(r4) + 2c54: 22 a4 22 08 tdlgti r2,-23518 + 2c58: 79 00 30 29 cmpldi cr2,r16,121 + 2c5c: 08 ff 1a 9f stbu r24,-248(r26) + 2c60: 00 00 00 04 .long 0x4000000 + 2c64: b0 21 b8 21 subfic r13,r24,8624 + 2c68: 01 59 00 03 .long 0x3005901 + 2c6c: 06 04 a0 21 subfic r13,r0,1030 + 2c70: a4 21 01 6b xori r1,r24,8612 + 2c74: 00 05 06 04 .long 0x4060500 +{ + 2c78: a0 21 a4 21 subfic r13,r4,8608 + 2c7c: 02 30 9f 00 .long 0x9f3002 + 2c80: 05 06 04 a0 lhz r0,1541(r4) + 2c84: 21 a4 21 01 .long 0x121a421 + 2c88: 6b 00 08 00 .long 0x8006b + 2c8c: 04 a0 21 b8 lm r1,-24572(r1) + 2c90: 21 02 30 9f stbu r25,545(r16) + 2c94: 00 09 00 04 .long 0x4000900 + 2c98: a0 21 b8 21 subfic r13,r24,8608 ret = kvmhv_emulate_priv_tlbie(vcpu, kvmppc_get_gpr(vcpu, 4), - 2cac: 06 22 9f 04 .long 0x49f2206 - 2cb0: c8 20 dc 20 subfic r6,r28,8392 + 2c9c: 02 31 9f 00 .long 0x9f3102 + 2ca0: 00 00 04 a4 lhzu r0,0(r4) struct kvm *kvm = vcpu->kvm; - 2cb4: 01 59 00 00 .long 0x5901 + 2ca4: 21 a8 21 01 .long 0x121a821 return r_val & 0xffffffff; - 2cb8: 02 04 c8 20 subfic r6,r8,1026 + 2ca8: 59 00 00 00 .long 0x59 if ((!r) || (prs) || (ric == 3) || (is == 1) || - 2cbc: dc 20 01 59 rlmi r1,r8,r4,3,14 - 2cc0: 00 01 00 04 .long 0x4000100 - 2cc4: d8 20 e4 20 subfic r7,r4,8408 - 2cc8: 01 53 00 00 .long 0x5301 - 2ccc: 00 03 00 04 .long 0x4000300 - 2cd0: 98 20 bc 20 subfic r5,r28,8344 - 2cd4: 02 30 9f 04 .long 0x49f3002 - 2cd8: cc 20 a0 21 subfic r13,r0,8396 - 2cdc: 02 30 9f 00 .long 0x9f3002 - 2ce0: 04 01 04 cc lfdu f0,260(r4) - 2ce4: 20 d8 20 02 .long 0x220d820 - 2ce8: 38 9f 00 04 .long 0x4009f38 - 2cec: 01 04 cc 20 subfic r6,r12,1025 - 2cf0: d8 20 02 30 addic r0,r2,8408 + 2cac: 04 98 20 a0 lhz r1,-26620(0) + 2cb0: 21 01 6e 00 .long 0x6e0121 + 2cb4: 00 00 04 f8 std r0,0(r4) + 2cb8: 20 88 21 02 .long 0x2218820 + 2cbc: 73 08 00 01 .long 0x1000873 + 2cc0: 00 00 00 04 .long 0x4000000 + 2cc4: bc 20 c8 20 subfic r6,r8,8380 + 2cc8: 0a 8e 00 33 addic r24,r0,-29174 + 2ccc: 24 8d c8 01 .long 0x1c88d24 + 2cd0: 06 22 9f 04 .long 0x49f2206 + 2cd4: c8 20 e4 20 subfic r7,r4,8392 + 2cd8: 01 59 00 00 .long 0x5901 + 2cdc: 02 04 00 01 .long 0x1000402 + 2ce0: 00 04 98 20 subfic r4,r24,1024 ((!is) && (ric == 1 || ric == 2))) - 2cf4: 9f 00 04 01 .long 0x104009f - 2cf8: 04 cc 20 d8 stfd f1,-13308(0) - 2cfc: 20 01 59 00 .long 0x590120 + 2ce4: ac 20 02 30 addic r0,r2,8364 + 2ce8: 9f 04 dc 20 subfic r6,r28,1183 + 2cec: 8f 21 01 53 rlwimi. r1,r24,4,6,7 ret = kvmhv_emulate_tlbie_tlb_addr(vcpu, lpid, ap, epn); - 2d00: 07 01 04 cc lfdu f0,263(r4) - 2d04: 20 d8 20 02 .long 0x220d820 - 2d08: 30 9f 00 07 .long 0x7009f30 - 2d0c: 01 04 cc 20 subfic r6,r12,1025 - 2d10: d8 20 01 59 rlmi r1,r8,r4,3,12 - 2d14: 00 00 01 04 .long 0x4010000 + 2cf0: 04 90 21 a0 lhz r1,-28668(r1) + 2cf4: 21 01 6f 00 .long 0x6f0121 + 2cf8: 00 02 02 00 attn + 2cfc: 00 00 04 98 stb r0,0(r4) + 2d00: 20 ac 20 02 .long 0x220ac20 + 2d04: 30 9f 04 dc stfdu f0,-24784(r4) if (ret) - 2d18: d8 20 d8 20 subfic r6,r24,8408 - 2d1c: 01 53 00 05 .long 0x5005301 - 2d20: 00 00 00 04 .long 0x4000000 - 2d24: 84 1e 8b 1e mulli r20,r11,7812 + 2d08: 20 88 21 01 .long 0x1218820 + 2d0c: 53 04 88 21 subfic r12,r8,1107 + 2d10: a0 21 01 6f xoris r1,r24,8608 + 2d14: 00 04 00 00 .long 0x400 return H_SUCCESS; - 2d28: 01 53 04 8b lbz r24,21249(r4) - 2d2c: 1e 8c 1e 01 .long 0x11e8c1e + 2d18: 02 04 bc 20 subfic r5,r28,1026 + 2d1c: c8 20 0a 8e lbzu r16,8392(r10) } - 2d30: 6b 00 01 00 .long 0x1006b - 2d34: 04 94 1e a3 lhz r24,-27644(r30) - 2d38: 1e 03 91 b4 sthu r4,798(r17) - 2d3c: 7f 00 01 09 tdgti r1,127 - 2d40: 02 00 04 f0 xsaddsp vs0,vs4,vs32 - 2d44: 1e 98 1f 01 .long 0x11f981e - 2d48: 6b 04 a4 22 subfic r21,r4,1131 - 2d4c: b0 22 01 6b xori r1,r24,8880 + 2d20: 00 33 24 8d lbzu r9,13056(r4) + 2d24: c8 01 06 22 subfic r16,r6,456 + 2d28: 9f 04 c8 20 subfic r6,r8,1183 + 2d2c: dc 20 01 59 rlmi r1,r8,r4,3,14 + 2d30: 00 00 02 04 .long 0x4020000 + 2d34: c8 20 dc 20 subfic r6,r28,8392 + 2d38: 01 59 00 01 .long 0x1005901 + 2d3c: 00 04 d8 20 subfic r6,r24,1024 switch (is) { - 2d50: 00 03 09 02 .long 0x2090300 - 2d54: 00 04 f0 1e mulli r23,r16,1024 - 2d58: 98 1f 01 6b xori r1,r24,8088 - 2d5c: 04 a4 22 b0 sth r1,-23548(r2) - 2d60: 22 01 6b 00 .long 0x6b0122 - 2d64: 08 07 02 00 .long 0x20708 - 2d68: 04 f0 1e 98 stb r0,-4092(r30) - 2d6c: 1f 01 6b 04 .long 0x46b011f - 2d70: a4 22 b0 22 subfic r21,r16,8868 + 2d40: e4 20 01 53 rlwimi r1,r24,4,3,18 + 2d44: 00 00 00 03 .long 0x3000000 + 2d48: 00 04 98 20 subfic r4,r24,1024 + 2d4c: bc 20 02 30 addic r0,r2,8380 + 2d50: 9f 04 cc 20 subfic r6,r12,1183 + 2d54: a0 21 02 30 addic r0,r2,8608 + 2d58: 9f 00 04 01 .long 0x104009f + 2d5c: 04 cc 20 d8 stfd f1,-13308(0) + 2d60: 20 02 38 9f stbu r25,544(r24) kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); - 2d74: 01 6b 00 00 .long 0x6b01 + 2d64: 00 04 01 04 .long 0x4010400 idr_for_each_entry(&kvm->arch.kvm_nested_guest_idr, gp, lpid) { - 2d78: 00 00 00 02 .long 0x2000000 - 2d7c: 00 04 f8 1e mulli r23,r24,1024 + 2d68: cc 20 d8 20 subfic r6,r24,8396 + 2d6c: 02 30 9f 00 .long 0x9f3002 int lpid; - 2d80: 94 1f 04 79 .long 0x79041f94 - 2d84: 80 19 9f 04 .long 0x49f1980 - 2d88: 94 1f a0 1f mulli r29,r0,8084 + 2d70: 04 01 04 cc lfdu f0,260(r4) + 2d74: 20 d8 20 01 .long 0x120d820 + 2d78: 59 00 07 01 .long 0x1070059 idr_for_each_entry(&kvm->arch.kvm_nested_guest_idr, gp, lpid) { - 2d8c: 04 7d 80 19 .long 0x19807d04 - 2d90: 9f 04 a4 22 subfic r21,r4,1183 - 2d94: b0 22 04 79 rldcl r4,r8,r4,42 - 2d98: 80 19 9f 00 .long 0x9f1980 - 2d9c: 01 05 04 8c lbzu r0,1281(r4) + 2d7c: 04 cc 20 d8 stfd f1,-13308(0) + 2d80: 20 02 30 9f stbu r25,544(r16) + 2d84: 00 07 01 04 .long 0x4010700 + 2d88: cc 20 d8 20 subfic r6,r24,8396 + 2d8c: 01 59 00 00 .long 0x5901 if (unlikely(ms->mmiowb_pending)) { - 2da0: 1f 98 1f 01 .long 0x11f981f - 2da4: 6b 00 00 04 .long 0x400006b + 2d90: 01 04 d8 20 subfic r6,r24,1025 + 2d94: d8 20 01 53 rlwimi r1,r24,4,3,12 ms->nesting_count--; - 2da8: 04 b8 1f d0 stfs f0,-18428(r31) - 2dac: 1f 01 68 00 .long 0x68011f - 2db0: 00 04 04 d0 stfs f0,1024(r4) - 2db4: 1f d0 1f 01 .long 0x11fd01f - 2db8: 69 00 01 00 .long 0x10069 + 2d98: 00 05 00 00 .long 0x500 + 2d9c: 00 04 84 1e mulli r20,r4,1024 + 2da0: 8b 1e 01 53 rlwimi. r1,r24,3,26,5 + 2da4: 04 8b 1e 8c lbzu r0,-29948(r30) + 2da8: 1e 01 6b 00 .long 0x6b011e kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); - 2dbc: 00 02 04 c4 lfsu f0,512(r4) - 2dc0: 21 dc 21 01 .long 0x121dc21 - 2dc4: 69 04 b0 22 subfic r21,r16,1129 - 2dc8: b4 22 01 69 xori r1,r8,8884 - 2dcc: 00 01 00 00 .long 0x100 - 2dd0: 02 04 c4 21 subfic r14,r4,1026 + 2dac: 01 00 04 94 stwu r0,1(r4) + 2db0: 1e a3 1e 03 .long 0x31ea31e + 2db4: 91 b4 7f 00 .long 0x7fb491 + 2db8: 01 09 02 00 .long 0x20901 + 2dbc: 04 f0 1e 98 stb r0,-4092(r30) + 2dc0: 1f 01 6b 04 .long 0x46b011f idr_for_each_entry(&kvm->arch.kvm_nested_guest_idr, gp, lpid) { - 2dd4: dc 21 01 68 xori r1,r0,8668 - 2dd8: 04 b0 22 b4 sthu r1,-20476(r2) - 2ddc: 22 01 68 00 .long 0x680122 - 2de0: 04 00 00 00 .long 0x4 - 2de4: 04 c4 21 80 lwz r1,-15356(r1) - 2de8: 22 0e 89 00 .long 0x890e22 - 2dec: 0c ff ff ff .long 0xffffff0c - 2df0: ff 1a 31 2b cmpldi cr6,r17,6911 + 2dc4: a4 22 b0 22 subfic r21,r16,8868 + 2dc8: 01 6b 00 03 .long 0x3006b01 + 2dcc: 09 02 00 04 .long 0x4000209 + 2dd0: f0 1e 98 1f mulli r28,r24,7920 + 2dd4: 01 6b 04 a4 lhzu r0,27393(r4) + 2dd8: 22 b0 22 01 .long 0x122b022 + 2ddc: 6b 00 08 07 .long 0x708006b + 2de0: 02 00 04 f0 xsaddsp vs0,vs4,vs32 if (unlikely(ms->mmiowb_pending)) { - 2df4: 08 ff 1a 9f stbu r24,-248(r26) + 2de4: 1e 98 1f 01 .long 0x11f981e struct mmiowb_state *ms = __mmiowb_state(); - 2df8: 04 b0 22 bc stmw r1,-20476(r2) - 2dfc: 22 0e 89 00 .long 0x890e22 + 2de8: 6b 04 a4 22 subfic r21,r4,1131 + 2dec: b0 22 01 6b xori r1,r24,8880 if (unlikely(ms->mmiowb_pending)) { - 2e00: 0c ff ff ff .long 0xffffff0c - 2e04: ff 1a 31 2b cmpldi cr6,r17,6911 + 2df0: 00 00 00 00 .long 0x0 + 2df4: 00 02 00 04 .long 0x4000200 ms->nesting_count--; - 2e08: 08 ff 1a 9f stbu r24,-248(r26) - ... - 2e14: 00 00 00 04 .long 0x4000000 - 2e18: d8 13 90 14 .long 0x149013d8 - 2e1c: 01 53 04 90 stw r0,21249(r4) + 2df8: f8 1e 94 1f mulli r28,r20,7928 + 2dfc: 04 79 80 19 .long 0x19807904 + 2e00: 9f 04 94 1f mulli r28,r20,1183 + 2e04: a0 1f 04 7d .long 0x7d041fa0 + 2e08: 80 19 9f 04 .long 0x49f1980 + 2e0c: a4 22 b0 22 subfic r21,r16,8868 if (ret) - 2e20: 14 e0 14 01 .long 0x114e014 - 2e24: 6f 04 e0 14 .long 0x14e0046f - 2e28: e8 14 04 a3 lhz r24,5352(r4) - 2e2c: 01 53 9f 04 .long 0x49f5301 + 2e10: 04 79 80 19 .long 0x19807904 + 2e14: 9f 00 01 05 .long 0x501009f + 2e18: 04 8c 1f 98 stb r0,-29692(r31) + 2e1c: 1f 01 6b 00 .long 0x6b011f gp = kvmhv_get_nested(kvm, lpid, false); - 2e30: e8 14 cc 15 .long 0x15cc14e8 - 2e34: 01 6f 04 cc lfdu f0,28417(r4) - 2e38: 15 d4 15 04 .long 0x415d415 - 2e3c: a3 01 53 9f stbu r26,419(r19) + 2e20: 00 04 04 b8 lm r0,1024(r4) + 2e24: 1f d0 1f 01 .long 0x11fd01f + 2e28: 68 00 00 04 .long 0x4000068 + 2e2c: 04 d0 1f d0 stfs f0,-12284(r31) if (gp) { - 2e40: 00 00 00 04 .long 0x4000000 - 2e44: f4 13 f8 13 .long 0x13f813f4 + 2e30: 1f 01 69 00 .long 0x69011f + 2e34: 01 00 00 02 .long 0x2000001 kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); - 2e48: 02 73 00 00 .long 0x7302 - 2e4c: 00 00 00 00 .long 0x0 - 2e50: 00 00 04 9c stbu r0,0(r4) - 2e54: 14 ab 14 01 .long 0x114ab14 + 2e38: 04 c4 21 dc stfdu f1,-15356(r1) + 2e3c: 21 01 69 04 .long 0x4690121 + 2e40: b0 22 b4 22 subfic r21,r20,8880 + 2e44: 01 69 00 01 .long 0x1006901 kvmhv_put_nested(gp); - 2e58: 53 04 e8 14 .long 0x14e80453 - 2e5c: 90 15 01 53 rlwimi r1,r24,2,22,8 + 2e48: 00 00 02 04 .long 0x4020000 + 2e4c: c4 21 dc 21 subfic r14,r28,8644 if (ret) - 2e60: 04 90 15 97 stwu r24,-28668(r21) - 2e64: 15 02 8f 10 mtvsrbmi v4,543 - 2e68: 00 04 02 00 .long 0x20400 - 2e6c: 03 04 9c 14 .long 0x149c0403 - 2e70: a0 14 03 08 tdi 0,r3,5280 - 2e74: 40 9f 04 e8 ld r0,-24768(r4) - 2e78: 14 e8 14 03 .long 0x314e814 - 2e7c: 08 40 9f 00 .long 0x9f4008 + 2e50: 01 68 04 b0 sth r0,26625(r4) + 2e54: 22 b4 22 01 .long 0x122b422 + 2e58: 68 00 04 00 .long 0x40068 + 2e5c: 00 00 04 c4 lfsu f0,0(r4) + 2e60: 21 80 22 0e twi 17,r2,-32735 + 2e64: 89 00 0c ff .long 0xff0c0089 + 2e68: ff ff ff 1a .long 0x1affffff + 2e6c: 31 2b 08 ff .long 0xff082b31 ms->mmiowb_pending = 0; - 2e80: 0d 02 00 03 .long 0x300020d - 2e84: 04 9c 14 a0 lhz r0,-25596(r20) + 2e70: 1a 9f 04 b0 sth r0,-24806(r4) + 2e74: 22 bc 22 0e twi 17,r2,-17374 mmiowb(); - 2e88: 14 02 36 9f stbu r25,532(r22) - 2e8c: 04 e8 14 e8 ld r0,-6140(r20) - 2e90: 14 02 36 9f stbu r25,532(r22) + 2e78: 89 00 0c ff .long 0xff0c0089 + 2e7c: ff ff ff 1a .long 0x1affffff + 2e80: 31 2b 08 ff .long 0xff082b31 return H_PARAMETER; - 2e94: 00 00 00 01 .long 0x1000000 - 2e98: 00 04 a0 14 .long 0x14a00400 - 2e9c: ac 14 02 31 addic r8,r2,5292 + 2e84: 1a 9f 00 00 .long 0x9f1a + ... ms->mmiowb_pending = 0; - 2ea0: 9f 04 e8 14 .long 0x14e8049f + 2e90: 00 04 d8 13 vsububm v30,v24,v0 mmiowb(); - 2ea4: d4 15 02 30 addic r0,r2,5588 - 2ea8: 9f 00 11 00 .long 0x11009f - 2eac: 00 01 04 9c stbu r0,256(r4) - 2eb0: 14 a0 14 02 .long 0x214a014 - 2eb4: 31 9f 04 e8 ldu r0,-24784(r4) - 2eb8: 14 e8 14 02 .long 0x214e814 - 2ebc: 31 9f 00 04 .long 0x4009f31 - 2ec0: 00 04 a0 14 .long 0x14a00400 -} - 2ec4: ab 14 01 53 rlwimi. r1,r24,2,18,21 - 2ec8: 00 03 00 00 .long 0x300 - 2ecc: 00 04 e8 14 .long 0x14e80400 - 2ed0: 90 15 01 53 rlwimi r1,r24,2,22,8 - return H_PARAMETER; - 2ed4: 04 90 15 97 stwu r24,-28668(r21) - 2ed8: 15 01 54 00 .long 0x540115 - 2edc: 00 00 04 80 lwz r0,0(r4) - 2ee0: 1d 8c 1d 04 .long 0x41d8c1d - 2ee4: 73 e0 18 9f stbu r24,-8077(r24) -{ - 2ee8: 00 03 00 04 .long 0x4000300 - 2eec: 80 1d 8c 1d mulli r12,r12,7552 - 2ef0: 02 30 9f 00 .long 0x9f3002 - 2ef4: 03 00 04 80 lwz r0,3(r4) - 2ef8: 1d 8c 1d 04 .long 0x41d8c1d - 2efc: 73 e0 18 9f stbu r24,-8077(r24) - 2f00: 00 05 0c 04 .long 0x40c0500 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2f04: 80 1d 80 1d mulli r12,r0,7552 -{ - 2f08: 06 0c 04 00 .long 0x40c06 - 2f0c: 00 08 9f 00 .long 0x9f0800 - 2f10: 05 0c 04 80 lwz r0,3077(r4) - 2f14: 1d 80 1d 04 .long 0x41d801d - 2f18: 73 e0 18 9f stbu r24,-8077(r24) + 2e94: 90 14 01 53 rlwimi r1,r24,2,18,8 + 2e98: 04 90 14 e0 lq r0,-28672(r20) + 2e9c: 14 01 6f 04 .long 0x46f0114 + 2ea0: e0 14 e8 14 .long 0x14e814e0 + 2ea4: 04 a3 01 53 rlwimi r1,r24,20,12,2 + 2ea8: 9f 04 e8 14 .long 0x14e8049f + 2eac: cc 15 01 6f xoris r1,r24,5580 + 2eb0: 04 cc 15 d4 stfsu f0,-13308(r21) +} + 2eb4: 15 04 a3 01 .long 0x1a30415 + 2eb8: 53 9f 00 00 .long 0x9f53 + 2ebc: 00 04 f4 13 vsububm v31,v20,v0 + 2ec0: f8 13 02 73 andi. r2,r24,5112 ... - 2f24: 00 00 00 04 .long 0x4000000 + return H_PARAMETER; + 2ecc: 04 9c 14 ab lha r24,-25596(r20) + 2ed0: 14 01 53 04 .long 0x4530114 + 2ed4: e8 14 90 15 .long 0x159014e8 +{ + 2ed8: 01 53 04 90 stw r0,21249(r4) + 2edc: 15 97 15 02 .long 0x2159715 + 2ee0: 8f 10 00 04 .long 0x400108f + 2ee4: 02 00 03 04 .long 0x4030002 + 2ee8: 9c 14 a0 14 .long 0x14a0149c + 2eec: 03 08 40 9f .long 0x9f400803 + 2ef0: 04 e8 14 e8 ld r0,-6140(r20) + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); + 2ef4: 14 03 08 40 bdnzf 4*cr2+lt,3208 <.debug_loclists+0x3208> +{ + 2ef8: 9f 00 0d 02 .long 0x20d009f + 2efc: 00 03 04 9c stbu r0,768(r4) + 2f00: 14 a0 14 02 .long 0x214a014 + 2f04: 36 9f 04 e8 lwa r0,-24780(r4) + 2f08: 14 e8 14 02 .long 0x214e814 + 2f0c: 36 9f 00 00 .long 0x9f36 + 2f10: 00 01 00 04 .long 0x4000100 + 2f14: a0 14 ac 14 .long 0x14ac14a0 if (!__find_nested(vcpu->kvm, lpid)) - 2f28: d8 10 c0 11 vextdubvlx v14,v0,v2,r3 + 2f18: 02 31 9f 04 .long 0x49f3102 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2f2c: 01 53 04 c0 lfs f0,21249(r4) + 2f1c: e8 14 d4 15 .long 0x15d414e8 { - 2f30: 11 9c 12 01 .long 0x1129c11 - 2f34: 6f 04 9c 12 vnmsubfp v20,v28,v17,v0 - 2f38: a4 12 04 a3 lhz r24,4772(r4) - 2f3c: 01 53 9f 04 .long 0x49f5301 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2f40: a4 12 c4 12 vmsumubm v22,v4,v2,v10 - 2f44: 01 53 04 c4 lfsu f0,21249(r4) - 2f48: 12 d0 13 01 .long 0x113d012 - 2f4c: 6f 00 03 00 .long 0x3006f + 2f20: 02 30 9f 00 .long 0x9f3002 + 2f24: 11 00 00 01 .long 0x1000011 + 2f28: 04 9c 14 a0 lhz r0,-25596(r20) + 2f2c: 14 02 31 9f stbu r25,532(r17) + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); + 2f30: 04 e8 14 e8 ld r0,-6140(r20) + 2f34: 14 02 31 9f stbu r25,532(r17) + 2f38: 00 04 00 04 .long 0x4000400 + 2f3c: a0 14 ab 14 .long 0x14ab14a0 if (!__find_nested(vcpu->kvm, lpid)) - 2f50: 00 00 00 02 .long 0x2000000 - 2f54: 04 a4 11 c0 lfs f0,-23548(r17) + 2f40: 01 53 00 03 .long 0x3005301 + 2f44: 00 00 00 04 .long 0x4000000 if ((type & H_RPTI_TYPE_NESTED_ALL) == H_RPTI_TYPE_NESTED_ALL) - 2f58: 11 03 09 f2 xxsldwi vs48,vs9,vs0,3 - 2f5c: 9f 04 a4 12 vextddvrx v21,v4,v0,r18 - 2f60: fc 12 03 09 tdgti r3,4860 + 2f48: e8 14 90 15 .long 0x159014e8 + 2f4c: 01 53 04 90 stw r0,21249(r4) + 2f50: 15 97 15 01 .long 0x1159715 if (start == 0 && end == -1) - 2f64: f2 9f 04 fc .long 0xfc049ff2 - 2f68: 12 c4 13 01 .long 0x113c412 - 2f6c: 6e 00 00 00 .long 0x6e - 2f70: 00 00 04 ac lhau r0,0(r4) + 2f54: 54 00 00 00 .long 0x54 + 2f58: 04 80 1d 8c lbzu r0,-32764(r29) + 2f5c: 1d 04 73 e0 psq_l f3,1053(r19),0,0 + 2f60: 18 9f 00 03 .long 0x3009f18 if (type & H_RPTI_TYPE_TLB) - 2f74: 11 c0 11 19 stxvp vs8,-16368(r17) - 2f78: 8d 00 10 80 lwz r0,141(r16) + 2f64: 00 04 80 1d mulli r12,r0,1024 + 2f68: 8c 1d 02 30 addic r0,r2,7564 } - 2f7c: e0 ff ff ff .long 0xffffffe0 + 2f6c: 9f 00 03 00 .long 0x3009f return do_tlb_invalidate_nested_all(vcpu, lpid, RIC_FLUSH_ALL); - 2f80: ff ff ff 0f twui r31,-1 + 2f70: 04 80 1d 8c lbzu r0,-32764(r29) } - 2f84: 1a 8e 00 34 addic. r0,r0,-29158 - 2f88: 24 08 20 24 dozi r1,r0,2084 - 2f8c: 08 20 26 22 subfic r17,r6,8200 - 2f90: 9f 04 a4 12 vextddvrx v21,v4,v0,r18 - 2f94: bc 12 19 8d lbzu r8,4796(r25) - 2f98: 00 10 80 e0 lq r4,4096(0) - 2f9c: ff ff ff ff fnmadd. f31,f31,f31,f31 - 2fa0: ff ff 0f 1a .long 0x1a0fffff - 2fa4: 8e 00 34 24 dozi r1,r20,142 - 2fa8: 08 20 24 08 tdlgti r4,8200 - 2fac: 20 26 22 9f stbu r25,9760(r2) - 2fb0: 00 02 00 00 attn - ... - 2fbc: 02 04 a4 11 vavgub v13,v4,v0 + 2f74: 1d 04 73 e0 psq_l f3,1053(r19),0,0 + 2f78: 18 9f 00 05 .long 0x5009f18 + 2f7c: 0c 04 80 1d mulli r12,r0,1036 + 2f80: 80 1d 06 0c twi 0,r6,7552 + 2f84: 04 00 00 08 tdi 0,r0,4 + 2f88: 9f 00 05 0c twi 0,r5,159 + 2f8c: 04 80 1d 80 lwz r0,-32764(r29) + 2f90: 1d 04 73 e0 psq_l f3,1053(r19),0,0 + 2f94: 18 9f 00 00 .long 0x9f18 + ... + 2fa0: 00 04 d8 10 vsububm v6,v24,v0 + 2fa4: c0 11 01 53 rlwimi r1,r24,2,7,0 + 2fa8: 04 c0 11 9c stbu r0,-16380(r17) + 2fac: 12 01 6f 04 .long 0x46f0112 int ret = H_P4; - 2fc0: c0 11 01 6c xoris r1,r0,4544 + 2fb0: 9c 12 a4 12 vextduwvlx v21,v4,v2,r10 page_size = 1UL << def->shift; - 2fc4: 04 a4 12 ec dsub f0,f18,f20 - 2fc8: 12 01 6c 04 .long 0x46c0112 - 2fcc: ec 12 f3 12 vsldoi v23,v19,v2,11 + 2fb4: 04 a3 01 53 rlwimi r1,r24,20,12,2 + 2fb8: 9f 04 a4 12 vextddvrx v21,v4,v0,r18 + 2fbc: c4 12 01 53 rlwimi r1,r24,2,11,2 nr_pages = (end - start) >> def->shift; - 2fd0: 01 53 04 f3 xvadddp vs56,vs4,vs10 - 2fd4: 12 9c 13 05 .long 0x5139c12 - 2fd8: 8b d0 e5 7e .long 0x7ee5d08b - 2fdc: 9f 04 a0 13 vextddvrx v29,v0,v0,r18 - 2fe0: a8 13 05 8b lbz r24,5032(r5) + 2fc0: 04 c4 12 d0 stfs f0,-15356(r18) + 2fc4: 13 01 6f 00 .long 0x6f0113 + 2fc8: 03 00 00 00 .long 0x3 + 2fcc: 00 02 04 a4 lhzu r0,512(r4) + 2fd0: 11 c0 11 03 .long 0x311c011 if (!(pg_sizes & def->h_rpt_pgsize)) - 2fe4: d0 e5 7e 9f stbu r27,-6704(r30) - 2fe8: 04 b8 13 c4 lfsu f0,-18428(r19) - 2fec: 13 05 8b d0 stfs f4,1299(r11) + 2fd4: 09 f2 9f 04 .long 0x49ff209 + 2fd8: a4 12 fc 12 vmsumubm v23,v28,v2,v10 + 2fdc: 03 09 f2 9f stbu r31,2307(r18) for (psize = 0; psize < MMU_PAGE_COUNT; psize++) { - 2ff0: e5 7e 9f 00 .long 0x9f7ee5 - 2ff4: 04 02 04 ec dctdp f0,f0 - 2ff8: 12 c4 13 01 .long 0x113c412 + 2fe0: 04 fc 12 c4 lfsu f0,-1020(r18) + 2fe4: 13 01 6e 00 .long 0x6e0113 + 2fe8: 00 00 00 00 .long 0x0 return ret; - 2ffc: 6c 00 00 04 .long 0x400006c - 3000: 04 b8 12 ec dadd f0,f18,f23 - 3004: 12 01 6b 00 .long 0x6b0112 - 3008: 00 04 04 ec .long 0xec040400 - 300c: 12 ec 12 01 .long 0x112ec12 + 2fec: 04 ac 11 c0 lfs f0,-21500(r17) + 2ff0: 11 19 8d 00 .long 0x8d1911 + 2ff4: 10 80 e0 ff fcpsgn f31,f0,f16 + 2ff8: ff ff ff ff fnmadd. f31,f31,f31,f31 + 2ffc: ff 0f 1a 8e lbzu r16,4095(r26) flush_lpid = nr_pages > tlb_range_flush_page_ceiling; - 3010: 6c 00 01 00 .long 0x1006c + 3000: 00 34 24 08 tdlgti r4,13312 nr_pages = (end - start) >> def->shift; - 3014: 00 02 04 fc .long 0xfc040200 + 3004: 20 24 08 20 subfic r0,r8,9248 flush_lpid = nr_pages > tlb_range_flush_page_ceiling; - 3018: 12 90 13 01 .long 0x1139012 + 3008: 26 22 9f 04 .long 0x49f2226 nr_pages = (end - start) >> def->shift; - 301c: 6c 04 b8 13 evmwhumia r29,r24,r0 + 300c: a4 12 bc 12 vmsumubm v21,v28,v2,v10 if (flush_lpid) - 3020: c4 13 01 6c xoris r1,r0,5060 - 3024: 00 01 00 00 .long 0x100 - 3028: 02 04 fc 12 vavgub v23,v28,v0 + 3010: 19 8d 00 10 vextdubvrx v0,v0,v17,r20 + 3014: 80 e0 ff ff .long 0xffffe080 + 3018: ff ff ff ff fnmadd. f31,f31,f31,f31 page_size = 1UL << def->shift; - 302c: 90 13 01 6b xori r1,r24,5008 - 3030: 04 b8 13 c4 lfsu f0,-18428(r19) - 3034: 13 01 6b 00 .long 0x6b0113 - 3038: 04 02 04 fc dctqpq f0,f0 - 303c: 12 c4 13 0e twlti r19,-15342 - } while (addr < end); - 3040: 8c 00 0c ff .long 0xff0c008c + 301c: 0f 1a 8e 00 .long 0x8e1a0f + 3020: 34 24 08 20 subfic r0,r8,9268 + 3024: 24 08 20 26 dozi r17,r0,2084 + 3028: 22 9f 00 02 .long 0x2009f22 + ... ret = kvmhv_emulate_tlbie_tlb_addr(vcpu, lpid, ap, - 3044: ff ff ff 1a .long 0x1affffff - 3048: 31 2b 08 ff .long 0xff082b31 - 304c: 1a 9f 00 01 .long 0x1009f1a - 3050: 00 04 dc 11 vsububm v14,v28,v0 + 3034: 00 00 02 04 .long 0x4020000 + 3038: a4 11 c0 11 vmsumubm v14,v0,v2,v6 + 303c: 01 6c 04 a4 lhzu r0,27649(r4) + 3040: 12 ec 12 01 .long 0x112ec12 addr += page_size; - 3054: f0 11 01 6f xoris r1,r24,4592 + 3044: 6c 04 ec 12 evmwhumia r23,r12,r0 ret = kvmhv_emulate_tlbie_tlb_addr(vcpu, lpid, ap, - 3058: 00 0c 00 04 .long 0x4000c00 + 3048: f3 12 01 53 rlwimi. r1,r24,2,11,25 } while (addr < end); - 305c: dc 11 ef 11 vextduwvlx v15,v15,v2,r7 + 304c: 04 f3 12 9c stbu r0,-3324(r18) if (ret) - 3060: 1a 8f 10 06 .long 0x6108f1a - 3064: 10 ff ff ff .long 0xffffff10 + 3050: 13 05 8b d0 stfs f4,1299(r11) + 3054: e5 7e 9f 04 .long 0x49f7ee5 return H_P4; - 3068: ff ff ff ff fnmadd. f31,f31,f31,f31 - 306c: ff 0f 1a 11 vsubecuq v8,v26,v1,v31 - 3070: ad 81 80 80 lwz r4,-32339(0) - 3074: 80 80 80 80 lwz r4,-32640(0) - 3078: 40 21 9f 00 .long 0x9f2140 - 307c: 06 00 02 00 .long 0x20006 - 3080: 04 dc 11 a4 lhzu r0,-9212(r17) -} - 3084: 12 02 30 9f stbu r25,530(r16) - 3088: 04 c4 13 d0 stfs f0,-15356(r19) - 308c: 13 02 30 9f stbu r25,531(r16) - ... - 30a4: 00 00 00 04 .long 0x4000000 - 30a8: e8 41 e8 42 .long 0x42e841e8 - 30ac: 01 53 04 e8 ldu r0,21248(r4) + 3058: a0 13 a8 13 vmhaddshs v29,v8,v2,v14 + 305c: 05 8b d0 e5 psq_lu f14,-1275(r16),1,0 + 3060: 7e 9f 04 b8 lm r0,-24706(r4) + 3064: 13 c4 13 05 .long 0x513c413 + 3068: 8b d0 e5 7e .long 0x7ee5d08b + 306c: 9f 00 04 02 .long 0x204009f + 3070: 04 ec 12 c4 lfsu f0,-5116(r18) +} + 3074: 13 01 6c 00 .long 0x6c0113 + 3078: 00 04 04 b8 lm r0,1024(r4) + 307c: 12 ec 12 01 .long 0x112ec12 + 3080: 6b 00 00 04 .long 0x400006b + 3084: 04 ec 12 ec dsub f0,f18,f29 + 3088: 12 01 6c 00 .long 0x6c0112 + 308c: 01 00 00 02 .long 0x2000001 + 3090: 04 fc 12 90 stw r0,-1020(r18) + 3094: 13 01 6c 04 .long 0x46c0113 + 3098: b8 13 c4 13 ps_msub f30,f4,f14,f2 + 309c: 01 6c 00 01 .long 0x1006c01 gp = kvmhv_get_nested(kvm, lpid, false); - 30b0: 42 ec 43 01 .long 0x143ec42 - 30b4: 6f 04 ec 43 .long 0x43ec046f - 30b8: f0 44 04 a3 lhz r24,17648(r4) - 30bc: 01 53 9f 04 .long 0x49f5301 + 30a0: 00 00 02 04 .long 0x4020000 + 30a4: fc 12 90 13 vaddeuqm v28,v16,v2,v11 + 30a8: 01 6b 04 b8 lm r0,27393(r4) + 30ac: 13 c4 13 01 .long 0x113c413 if (gp) { - 30c0: f0 44 d4 45 .long 0x45d444f0 - 30c4: 01 6f 04 d4 stfsu f0,28417(r4) + 30b0: 6b 00 04 02 .long 0x204006b + 30b4: 04 fc 12 c4 lfsu f0,-1020(r18) kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); - 30c8: 45 fc 45 04 .long 0x445fc45 - 30cc: a3 01 53 9f stbu r26,419(r19) - 30d0: 04 fc 45 84 lwzu r2,-1020(r5) - 30d4: 46 01 6f 04 .long 0x46f0146 + 30b8: 13 0e 8c 00 .long 0x8c0e13 + 30bc: 0c ff ff ff .long 0xffffff0c + 30c0: ff 1a 31 2b cmpldi cr6,r17,6911 + 30c4: 08 ff 1a 9f stbu r24,-248(r26) kvmhv_put_nested(gp); - 30d8: 84 46 c0 46 .long 0x46c04684 - 30dc: 04 a3 01 53 rlwimi r1,r24,20,12,2 - 30e0: 9f 04 c0 46 .long 0x46c0049f - 30e4: cc 46 01 6f xoris r1,r24,18124 - 30e8: 04 cc 46 d4 stfsu f2,-13308(r6) - 30ec: 46 04 a3 01 .long 0x1a30446 + 30c8: 00 01 00 04 .long 0x4000100 + 30cc: dc 11 f0 11 vextduwvlx v15,v16,v2,r7 + 30d0: 01 6f 00 0c twi 0,r0,28417 + 30d4: 00 04 dc 11 vsububm v14,v28,v0 + 30d8: ef 11 1a 8f lbzu r24,4591(r26) + 30dc: 10 06 10 ff .long 0xff100610 gp = kvmhv_get_nested(kvm, lpid, false); - 30f0: 53 9f 04 d4 stfsu f0,-24749(r4) - 30f4: 46 e8 46 01 .long 0x146e846 - 30f8: 53 04 e8 46 .long 0x46e80453 - 30fc: 84 47 04 a3 lhz r24,18308(r4) + 30e0: ff ff ff ff fnmadd. f31,f31,f31,f31 + 30e4: ff ff ff 0f twui r31,-1 + 30e8: 1a 11 ad 81 lwz r13,4378(r13) + 30ec: 80 80 80 80 lwz r4,-32640(0) if (gp) { - 3100: 01 53 9f 00 .long 0x9f5301 - ... + 30f0: 80 80 40 21 subfic r10,r0,-32640 + 30f4: 9f 00 06 00 .long 0x6009f kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); - 3110: 04 90 43 a4 lhzu r2,-28668(r3) - 3114: 43 01 53 04 .long 0x4530143 + 30f8: 02 00 04 dc stfdu f0,2(r4) + 30fc: 11 a4 12 02 .long 0x212a411 + 3100: 30 9f 04 c4 lfsu f0,-24784(r4) + 3104: 13 d0 13 02 .long 0x213d013 kvmhv_put_nested(gp); - 3118: a4 43 c0 44 .long 0x44c043a4 - 311c: 01 6e 04 f0 xvmaxsp vs32,vs4,vs13 - 3120: 44 fc 45 01 .long 0x145fc44 + 3108: 30 9f 00 00 .long 0x9f30 + ... gp = kvmhv_get_nested(kvm, lpid, false); - 3124: 6e 04 fc 45 .long 0x45fc046e - 3128: 88 46 01 53 rlwimi r1,r24,8,26,4 - 312c: 04 88 46 c0 lfs f2,-30716(r6) - 3130: 46 01 6e 04 .long 0x46e0146 + 311c: 02 02 00 00 .long 0x202 + 3120: 00 04 e8 41 blt+ cr2,3520 <.debug_loclists+0x3520> if (gp) { - 3134: e8 46 84 47 .long 0x478446e8 - 3138: 01 6e 00 00 .long 0x6e01 + 3124: e8 42 01 53 rlwimi r1,r24,8,11,20 + 3128: 04 e8 42 ec dadd f2,f2,f29 kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); - 313c: 00 00 00 04 .long 0x4000000 - 3140: ac 42 94 43 .long 0x439442ac - 3144: 01 6e 04 c0 lfs f0,28161(r4) - 3148: 46 e8 46 01 .long 0x146e846 + 312c: 43 01 6f 04 .long 0x46f0143 + 3130: ec 43 f0 44 .long 0x44f043ec + 3134: 04 a3 01 53 rlwimi r1,r24,20,12,2 + 3138: 9f 04 f0 44 .long 0x44f0049f kvmhv_put_nested(gp); - 314c: 6e 00 00 00 .long 0x6e - 3150: 00 00 04 b0 sth r0,0(r4) - 3154: 42 d0 44 01 .long 0x144d042 - 3158: 67 04 f0 44 .long 0x44f00467 - 315c: 84 47 01 67 oris r1,r24,18308 - 3160: 00 00 00 00 .long 0x0 - 3164: 00 04 b4 42 .long 0x42b40400 - 3168: d8 44 01 6a xori r1,r16,17624 - 316c: 04 f0 44 84 lwzu r2,-4092(r4) - 3170: 47 01 6a 00 .long 0x6a0147 - 3174: 04 00 00 00 .long 0x4 -{ - 3178: 04 b4 42 e0 psq_l f2,1028(r2),1,3 - 317c: 44 01 6d 04 .long 0x46d0144 - 3180: f0 44 84 47 .long 0x478444f0 - 3184: 01 6d 00 00 .long 0x6d01 - 3188: 00 00 00 04 .long 0x4000000 - 318c: b8 42 d4 44 .long 0x44d442b8 - 3190: 01 68 04 f0 xsaddsp vs32,vs4,vs13 - 3194: 44 84 47 01 .long 0x1478444 - 3198: 68 00 00 00 .long 0x68 - ... - 31a4: 04 f8 42 84 lu r2,-2044(r2) - 31a8: 43 01 53 04 .long 0x4530143 - 31ac: 84 43 bc 44 .long 0x44bc4384 - 31b0: 01 6c 04 f0 xsmaxcdp vs32,vs4,vs13 - 31b4: 44 c0 46 01 .long 0x146c044 - 31b8: 6c 04 c0 46 .long 0x46c0046c + 313c: d4 45 01 6f xoris r1,r24,17876 + 3140: 04 d4 45 fc dsubq f2,f4,f26 + 3144: 45 04 a3 01 .long 0x1a30445 + 3148: 53 9f 04 fc .long 0xfc049f53 + 314c: 45 84 46 01 .long 0x1468445 + 3150: 6f 04 84 46 .long 0x4684046f + 3154: c0 46 04 a3 lhz r24,18112(r4) + 3158: 01 53 9f 04 .long 0x49f5301 + 315c: c0 46 c8 46 .long 0x46c846c0 + 3160: 01 53 04 c8 lfd f0,21249(r4) + 3164: 46 e4 46 04 .long 0x446e446 +{ + 3168: a3 01 53 9f stbu r26,419(r19) + 316c: 04 e4 46 f0 xsmaxcdp vs2,vs38,vs28 + 3170: 46 01 6f 04 .long 0x46f0146 + 3174: f0 46 f8 46 .long 0x46f846f0 + 3178: 04 a3 01 53 rlwimi r1,r24,20,12,2 + 317c: 9f 00 00 00 .long 0x9f + ... + 3188: 00 02 04 90 stw r0,512(r4) + 318c: 43 a4 43 01 .long 0x143a443 + 3190: 53 04 a4 43 .long 0x43a40453 + 3194: c0 44 01 6e xoris r1,r16,17600 + 3198: 04 f0 44 fc daddq f2,f4,f30 + 319c: 45 01 6e 04 .long 0x46e0145 + 31a0: fc 45 88 46 .long 0x468845fc + 31a4: 01 53 04 88 lbz r0,21249(r4) + 31a8: 46 c0 46 01 .long 0x146c046 struct kvm_nested_guest *gp = vcpu->arch.nested; - 31bc: d4 46 01 53 rlwimi r1,r24,8,27,10 + 31ac: 6e 04 c8 46 .long 0x46c8046e { - 31c0: 04 e8 46 84 lwzu r2,-6140(r6) - 31c4: 47 01 6c 00 .long 0x6c0147 - 31c8: 00 00 00 00 .long 0x0 + 31b0: e4 46 01 6e xoris r1,r16,18148 + 31b4: 00 00 00 00 .long 0x0 + 31b8: 00 02 00 04 .long 0x4000200 mutex_lock(&gp->tlb_lock); - 31cc: 04 bc 42 dc stfdu f2,-17404(r2) - 31d0: 44 01 6b 04 .long 0x46b0144 - 31d4: f0 44 84 47 .long 0x478444f0 - 31d8: 01 6b 00 02 .long 0x2006b01 + 31bc: ac 42 94 43 .long 0x439442ac + 31c0: 01 6e 04 c0 lfs f0,28161(r4) + 31c4: 46 c8 46 01 .long 0x146c846 + 31c8: 6e 04 e4 46 .long 0x46e4046e struct rmap_nested *n_rmap; - 31dc: 00 00 00 04 .long 0x4000000 + 31cc: f8 46 01 6e xoris r1,r16,18168 unsigned long dsisr = vcpu->arch.fault_dsisr; - 31e0: bc 42 e0 44 .long 0x44e042bc + 31d0: 00 00 00 00 .long 0x0 struct kvm *kvm = vcpu->kvm; - 31e4: 05 8d 00 30 addic r0,r0,-29435 + 31d4: 00 04 b0 42 .long 0x42b00400 unsigned long ea = vcpu->arch.fault_dar; - 31e8: 2e 9f 04 f0 psq_st f0,-210(r4),1,1 + 31d8: d0 44 01 67 oris r1,r24,17616 struct kvmppc_pte gpte; - 31ec: 44 84 47 05 .long 0x5478444 - 31f0: 8d 00 30 2e cmpdi cr4,r16,141 - 31f4: 9f 00 00 00 .long 0x9f - ... - 3208: 04 ec 43 f4 psq_stu f2,-1020(r3),1,6 + 31dc: 04 f0 44 f8 std r2,-4092(r4) + 31e0: 46 01 67 00 .long 0x670146 + 31e4: 00 00 00 00 .long 0x0 + 31e8: 04 b4 42 d8 stfd f2,-19452(r2) + 31ec: 44 01 69 04 .long 0x4690144 + 31f0: f0 44 f8 46 .long 0x46f844f0 + 31f4: 01 69 00 04 .long 0x4006901 + 31f8: 00 00 00 04 .long 0x4000000 if (!gp->l1_gr_to_hr) { - 320c: 43 01 53 04 .long 0x4530143 + 31fc: b4 42 e0 44 .long 0x44e042b4 struct rmap_nested *n_rmap; - 3210: f4 43 8c 44 .long 0x448c43f4 + 3200: 01 6d 04 f0 xsmaxdp vs32,vs4,vs13 pte_t pte, *pte_p; - 3214: 01 6f 04 90 stw r0,28417(r4) + 3204: 44 f8 46 01 .long 0x146f844 unsigned int shift, l1_shift, level; - 3218: 44 c0 44 01 .long 0x144c044 - 321c: 6f 04 90 45 .long 0x4590046f + 3208: 6d 00 00 00 .long 0x6d + 320c: 00 00 04 b8 lm r0,0(r4) if (!gp->l1_gr_to_hr) { - 3220: 9c 45 01 53 rlwimi r1,r24,8,22,14 - 3224: 04 d4 45 dc stfdu f2,-11260(r5) - n_gpa = vcpu->arch.fault_gpa & ~0xF000000000000FFFULL; - 3228: 45 01 53 04 .long 0x4530145 - 322c: dc 45 f8 45 .long 0x45f845dc - if (!(dsisr & DSISR_PRTABLE_FAULT)) - 3230: 01 6f 04 88 lbz r0,28417(r4) + 3210: 42 d4 44 01 .long 0x144d442 + 3214: 68 04 f0 44 .long 0x44f00468 n_gpa = vcpu->arch.fault_gpa & ~0xF000000000000FFFULL; - 3234: 46 b0 46 01 .long 0x146b046 - 3238: 6f 04 b0 46 .long 0x46b0046f + 3218: f8 46 01 68 xori r1,r0,18168 + ... + 3224: 02 02 00 04 .long 0x4000202 + 3228: f8 42 84 43 .long 0x438442f8 if (!(dsisr & DSISR_PRTABLE_FAULT)) - 323c: c0 46 01 53 rlwimi r1,r24,8,27,0 + 322c: 01 53 04 84 lwzu r0,21249(r4) n_gpa |= ea & 0xFFF; - 3240: 04 e8 46 84 lwzu r2,-6140(r6) - 3244: 47 01 6f 00 .long 0x6f0147 + 3230: 43 bc 44 01 .long 0x144bc43 + 3234: 6b 04 f0 44 .long 0x44f0046b u64 fault_addr, flags = dsisr & DSISR_ISSTORE; - 3248: 00 02 04 88 lbz r0,512(r4) + 3238: c0 46 01 6b xori r1,r24,18112 ret = kvmppc_mmu_walk_radix_tree(vcpu, n_gpa, gpte_p, gp->l1_gr_to_hr, - 324c: 42 88 42 02 .long 0x2428842 - 3250: 34 9f 00 00 .long 0x9f34 - 3254: 02 04 88 42 bca 20,4*cr2+lt,400 <.debug_loclists+0x400> - 3258: 88 42 01 53 rlwimi r1,r24,8,10,4 + 323c: 04 c8 46 e4 psq_lu f2,-2044(r6),1,4 + 3240: 46 01 6b 04 .long 0x46b0146 + 3244: e4 46 f8 46 .long 0x46f846e4 + 3248: 01 53 00 00 .long 0x5301 u64 fault_addr, flags = dsisr & DSISR_ISSTORE; - 325c: 00 02 04 04 .long 0x4040200 + 324c: 00 00 00 04 .long 0x4000000 ret = kvmppc_mmu_walk_radix_tree(vcpu, n_gpa, gpte_p, gp->l1_gr_to_hr, - 3260: b4 42 b4 42 .long 0x42b442b4 - 3264: 02 37 9f 00 .long 0x9f3702 + 3250: bc 42 dc 44 .long 0x44dc42bc + 3254: 01 6a 04 f0 xvaddsp vs32,vs4,vs13 if (ret) { - 3268: 02 04 04 b4 sthu r0,1026(r4) - 326c: 42 b4 42 01 .long 0x142b442 + 3258: 44 f8 46 01 .long 0x146f844 + 325c: 6a 00 02 00 .long 0x2006a if (ret == -EINVAL) { - 3270: 53 00 01 00 .long 0x10053 - 3274: 04 ac 42 b0 sth r2,-21500(r2) + 3260: 00 00 04 bc stmw r0,0(r4) + 3264: 42 e0 44 05 .long 0x544e042 } else if (ret == -ENOENT) { - 3278: 42 02 35 9f stbu r25,578(r21) - 327c: 00 01 00 04 .long 0x4000100 + 3268: 8d 00 30 2e cmpdi cr4,r16,141 + 326c: 9f 04 f0 44 .long 0x44f0049f } else if (ret == -EFAULT) { - 3280: ac 42 b0 42 .long 0x42b042ac - 3284: 01 53 00 02 .long 0x2005301 - if (ret == RESUME_HOST && - 3288: 00 04 b0 42 .long 0x42b00400 - ret = kvmhv_translate_addr_nested(vcpu, gp, n_gpa, dsisr, &gpte); - 328c: b4 42 02 36 addic. r16,r2,17076 + 3270: f8 46 05 8d lbzu r8,18168(r5) + 3274: 00 30 2e 9f stbu r25,12288(r14) + ... if (ret == RESUME_HOST && - 3290: 9f 00 02 00 .long 0x2009f - 3294: 04 b0 42 b4 sthu r2,-20476(r2) - 3298: 42 01 53 00 .long 0x530142 - 329c: 06 00 04 b4 sthu r0,6(r4) - 32a0: 42 b8 42 02 .long 0x242b842 + 3288: 00 00 02 04 .long 0x4020000 + 328c: ec 43 f4 43 .long 0x43f443ec + 3290: 01 53 04 f4 lxv vs0,21248(r4) bool writing = !!(dsisr & DSISR_ISSTORE); - 32a4: 38 9f 00 06 .long 0x6009f38 + 3294: 43 8c 44 01 .long 0x1448c43 if (dsisr & DSISR_ISSTORE) { - 32a8: 00 04 b4 42 .long 0x42b40400 - 32ac: b8 42 01 53 rlwimi r1,r24,8,10,28 - 32b0: 00 03 00 04 .long 0x4000300 - 32b4: b8 42 bc 42 .long 0x42bc42b8 + 3298: 6f 04 90 44 .long 0x4490046f + 329c: c0 44 01 6f xoris r1,r24,17600 + 32a0: 04 90 45 9c stbu r2,-28668(r5) + 32a4: 45 01 53 04 .long 0x4530145 unsigned long dsisr = vcpu->arch.fault_dsisr; - 32b8: 02 39 9f 00 .long 0x9f3902 - 32bc: 03 00 04 b8 lm r0,3(r4) + 32a8: d4 45 dc 45 .long 0x45dc45d4 + 32ac: 01 53 04 dc stfdu f0,21249(r4) bool writing = !!(dsisr & DSISR_ISSTORE); - 32c0: 42 bc 42 01 .long 0x142bc42 - 32c4: 53 00 01 00 .long 0x10053 + 32b0: 45 f8 45 01 .long 0x145f845 + 32b4: 6f 04 88 46 .long 0x4688046f if (dsisr & DSISR_ISSTORE) { - 32c8: 04 dc 42 f8 std r2,-9212(r2) + 32b8: b0 46 01 6f xoris r1,r24,18096 if (!gpte_p->may_write) { - 32cc: 42 04 0a c0 lfs f0,1090(r10) - 32d0: 2c 9f 00 01 .long 0x1009f2c - 32d4: 00 04 dc 42 .long 0x42dc0400 + 32bc: 04 b0 46 c0 lfs f2,-20476(r6) + 32c0: 46 01 53 04 .long 0x4530146 + 32c4: c8 46 e4 46 .long 0x46e446c8 if (dsisr & DSISR_SET_RC) { - 32d8: f8 42 01 6b xori r1,r24,17144 - 32dc: 00 03 00 04 .long 0x4000300 - 32e0: dc 42 f8 42 .long 0x42f842dc + 32c8: 01 6f 00 00 .long 0x6f01 + 32cc: 02 04 88 42 bca 20,4*cr2+lt,400 <.debug_loclists+0x400> + 32d0: 88 42 02 34 addic. r0,r2,17032 l1_shift = gpte.page_shift; - 32e4: 04 0a c0 2d cmpwi cr3,r0,2564 - 32e8: 9f 00 03 00 .long 0x3009f + 32d4: 9f 00 00 02 .long 0x200009f + 32d8: 04 88 42 88 lbz r2,-30716(r2) if (l1_shift < PAGE_SHIFT) { - 32ec: 04 dc 42 f8 std r2,-9212(r2) - 32f0: 42 01 6b 00 .long 0x6b0142 + 32dc: 42 01 53 00 .long 0x530142 + 32e0: 02 04 04 b4 sthu r0,1026(r4) gpa = gpte.raddr; - 32f4: 01 00 04 b0 sth r0,1(r4) + 32e4: 42 b4 42 02 .long 0x242b442 memslot = gfn_to_memslot(kvm, gfn); - 32f8: 43 d8 43 01 .long 0x143d843 - 32fc: 6f 00 03 00 .long 0x3006f - 3300: 00 00 04 b0 sth r0,0(r4) - 3304: 43 b8 43 08 tdllti r3,-18365 + 32e8: 37 9f 00 02 .long 0x2009f37 + 32ec: 04 04 b4 42 .long 0x42b40404 + 32f0: b4 42 01 53 rlwimi r1,r24,8,10,26 + 32f4: 00 01 00 04 .long 0x4000100 if (!memslot || (memslot->flags & KVM_MEMSLOT_INVALID)) { - 3308: 8f 00 06 23 subfic r24,r6,143 - 330c: b0 9a 01 9f stbu r24,-25936(r1) - 3310: 04 b8 43 bf stmw r26,-18428(r3) - 3314: 43 01 53 00 .long 0x530143 - 3318: 00 04 04 d0 stfs f0,1024(r4) - 331c: 43 d0 43 01 .long 0x143d043 + 32f8: ac 42 b0 42 .long 0x42b042ac + 32fc: 02 35 9f 00 .long 0x9f3502 + 3300: 01 00 04 ac lhau r0,1(r4) + 3304: 42 b0 42 01 .long 0x142b042 + 3308: 53 00 02 00 .long 0x20053 + 330c: 04 b0 42 b4 sthu r2,-20476(r2) if (memslot->flags & KVM_MEM_READONLY) { - 3320: 59 00 01 00 .long 0x10059 - 3324: 00 00 04 ec .long 0xec040000 + 3310: 42 02 36 9f stbu r25,578(r22) + 3314: 00 02 00 04 .long 0x4000200 if (writing) { - 3328: 43 84 44 04 .long 0x4448443 + 3318: b0 42 b4 42 .long 0x42b442b0 kvm_ro = true; - 332c: a3 01 53 9f stbu r26,419(r19) + 331c: 01 53 00 06 .long 0x6005301 mmu_seq = kvm->mmu_invalidate_seq; - 3330: 04 e8 46 f4 psq_stu f2,-2044(r6),1,6 + 3320: 00 04 b4 42 .long 0x42b40400 smp_rmb(); - 3334: 46 04 a3 01 .long 0x1a30446 + 3324: b8 42 02 38 addi r0,r2,17080 pte = __pte(0); - 3338: 53 9f 00 00 .long 0x9f53 - 333c: 00 00 00 04 .long 0x4000000 - 3340: f4 43 83 44 .long 0x448343f4 - 3344: 01 54 04 e8 ldu r0,21504(r4) - 3348: 46 f4 46 01 .long 0x146f446 - 334c: 54 00 00 00 .long 0x54 - 3350: 00 00 04 f4 psq_stu f0,0(r4),0,0 - 3354: 43 83 44 01 .long 0x1448343 - 3358: 53 04 e8 46 .long 0x46e80453 - 335c: f4 46 01 53 rlwimi r1,r24,8,27,26 - 3360: 00 03 00 00 .long 0x300 + 3328: 9f 00 06 00 .long 0x6009f + 332c: 04 b4 42 b8 lm r2,-19452(r2) + 3330: 42 01 53 00 .long 0x530142 + 3334: 03 00 04 b8 lm r0,3(r4) + 3338: 42 bc 42 02 .long 0x242bc42 + 333c: 39 9f 00 03 .long 0x3009f39 + 3340: 00 04 b8 42 .long 0x42b80400 + 3344: bc 42 01 53 rlwimi r1,r24,8,10,30 + 3348: 00 01 00 04 .long 0x4000100 + 334c: dc 42 f8 42 .long 0x42f842dc + 3350: 04 0a c0 2c cmpwi cr1,r0,2564 if (!shift) - 3364: 00 04 f4 43 .long 0x43f40400 - 3368: 83 44 0e 74 andis. r14,r0,17539 - 336c: 00 0c ff ff .long 0xffff0c00 + 3354: 9f 00 01 00 .long 0x1009f + 3358: 04 dc 42 f8 std r2,-9212(r2) + 335c: 42 01 6a 00 .long 0x6a0142 shift = PAGE_SHIFT; - 3370: ff ff 1a 31 addic r8,r26,-1 - 3374: 2b 08 ff 1a .long 0x1aff082b + 3360: 03 00 04 dc stfdu f0,3(r4) + 3364: 42 f8 42 04 .long 0x442f842 if (pte_p) - 3378: 9f 04 e8 46 .long 0x46e8049f - 337c: f4 46 0e 74 andis. r14,r0,18164 + 3368: 0a c0 2d 9f stbu r25,-16374(r13) + 336c: 00 03 00 04 .long 0x4000300 pte = *pte_p; - 3380: 00 0c ff ff .long 0xffff0c00 - 3384: ff ff 1a 31 addic r8,r26,-1 + 3370: dc 42 f8 42 .long 0x42f842dc + 3374: 01 6a 00 01 .long 0x1006a01 if (unlikely(ms->mmiowb_pending)) { - 3388: 2b 08 ff 1a .long 0x1aff082b + 3378: 00 04 b0 43 .long 0x43b00400 struct mmiowb_state *ms = __mmiowb_state(); - 338c: 9f 00 01 00 .long 0x1009f + 337c: d8 43 01 6f xoris r1,r24,17368 if (unlikely(ms->mmiowb_pending)) { - 3390: 04 98 45 c0 lfs f2,-26620(r5) - 3394: 45 01 6f 00 .long 0x6f0145 + 3380: 00 03 00 00 .long 0x300 + 3384: 00 04 b0 43 .long 0x43b00400 ms->nesting_count--; - 3398: 03 00 00 00 .long 0x3 - 339c: 04 98 45 a0 lhz r2,-26620(r5) - 33a0: 45 08 8f 00 .long 0x8f0845 - 33a4: 06 23 b0 9a stb r21,8966(r16) - 33a8: 01 9f 04 a0 lhz r0,-24831(r4) - 33ac: 45 a7 45 01 .long 0x145a745 + 3388: b8 43 08 8f lbzu r24,17336(r8) + 338c: 00 06 23 b0 sth r1,1536(r3) + 3390: 9a 01 9f 04 .long 0x49f019a + 3394: b8 43 bf 43 .long 0x43bf43b8 + 3398: 01 53 00 00 .long 0x5301 + 339c: 04 04 d0 43 .long 0x43d00404 if (!pte_present(pte) || (writing && !(pte_val(pte) & _PAGE_WRITE))) { - 33b0: 53 00 00 04 pstxsd v2,5486596(r5) - 33b4: 04 b8 45 b8 + 33a0: d0 43 01 59 rlmi r1,r8,r8,15,8 + return (pte_raw(pte) & cpu_to_be64(_PAGE_PRESENT | _PAGE_PTE)) == + 33a4: 00 01 00 00 .long 0x100 if (pte_hw_valid(pte)) - 33b8: 45 01 59 00 .long 0x590145 - 33bc: 01 00 00 00 .long 0x1 + 33a8: 00 04 ec 43 .long 0x43ec0400 + 33ac: 84 44 04 a3 lhz r24,17540(r4) return (pte_raw(pte) & cpu_to_be64(_PAGE_INVALID | _PAGE_PTE)) == - 33c0: 04 d4 45 ec dsub f2,f5,f26 - 33c4: 45 04 a3 01 .long 0x1a30445 - 33c8: 53 9f 04 f4 stxssp v0,-24752(r4) + 33b0: 01 53 9f 04 .long 0x49f5301 + 33b4: c8 46 d4 46 .long 0x46d446c8 + 33b8: 04 a3 01 53 rlwimi r1,r24,20,12,2 ret = kvmppc_book3s_instantiate_page(vcpu, gpa, memslot, - 33cc: 46 84 47 04 .long 0x4478446 - 33d0: a3 01 53 9f stbu r26,419(r19) - 33d4: 00 00 00 00 .long 0x0 - 33d8: 00 04 dc 45 .long 0x45dc0400 - 33dc: eb 45 01 54 rlwinm. r1,r0,8,23,21 - 33e0: 04 f4 46 84 lwzu r2,-3068(r6) - 33e4: 47 01 54 00 .long 0x540147 - 33e8: 00 00 00 00 .long 0x0 - 33ec: 04 dc 45 eb ld r26,-9212(r5) + 33bc: 9f 00 00 00 .long 0x9f + 33c0: 00 00 04 f4 psq_stu f0,0(r4),0,0 + 33c4: 43 83 44 01 .long 0x1448343 + 33c8: 54 04 c8 46 .long 0x46c80454 + 33cc: d4 46 01 54 rlwinm r1,r0,8,27,10 + 33d0: 00 00 00 00 .long 0x0 + 33d4: 00 04 f4 43 .long 0x43f40400 + 33d8: 83 44 01 53 rlwimi. r1,r24,8,18,1 + 33dc: 04 c8 46 d4 stfsu f2,-14332(r6) if (ret == -EAGAIN) - 33f0: 45 01 53 04 .long 0x4530145 + 33e0: 46 01 53 00 .long 0x530146 ret = kvmppc_book3s_instantiate_page(vcpu, gpa, memslot, - 33f4: f4 46 84 47 .long 0x478446f4 + 33e4: 03 00 00 00 .long 0x3 if (ret == -EAGAIN) - 33f8: 01 53 00 03 .long 0x3005301 + 33e8: 04 f4 43 83 lwz r26,-3068(r3) else if (ret) - 33fc: 00 00 00 04 .long 0x4000000 - 3400: dc 45 eb 45 .long 0x45eb45dc + 33ec: 44 0e 74 00 .long 0x740e44 + 33f0: 0c ff ff ff .long 0xffffff0c return PUD_SHIFT; - 3404: 0e 74 00 0c twi 0,r0,29710 + 33f4: ff 1a 31 2b cmpldi cr6,r17,6911 shift = kvmppc_radix_level_to_shift(level); - 3408: ff ff ff ff fnmadd. f31,f31,f31,f31 + 33f8: 08 ff 1a 9f stbu r24,-248(r26) return PUD_SHIFT; - 340c: 1a 31 2b 08 tdlgti r11,12570 - 3410: ff 1a 9f 04 .long 0x49f1aff + 33fc: 04 c8 46 d4 stfsu f2,-14332(r6) + 3400: 46 0e 74 00 .long 0x740e46 switch (level) { - 3414: f4 46 84 47 .long 0x478446f4 + 3404: 0c ff ff ff .long 0xffffff0c return PUD_SHIFT; - 3418: 0e 74 00 0c twi 0,r0,29710 - 341c: ff ff ff ff fnmadd. f31,f31,f31,f31 - 3420: 1a 31 2b 08 tdlgti r11,12570 + 3408: ff 1a 31 2b cmpldi cr6,r17,6911 + 340c: 08 ff 1a 9f stbu r24,-248(r26) + 3410: 00 01 00 04 .long 0x4000100 switch (level) { - 3424: ff 1a 9f 00 .long 0x9f1aff - 3428: 00 00 00 02 .long 0x2000000 - 342c: 02 00 00 00 .long 0x2 + 3414: 98 45 c0 45 .long 0x45c04598 + 3418: 01 6f 00 03 .long 0x3006f01 + 341c: 00 00 00 04 .long 0x4000000 return PUD_SHIFT; - 3430: 00 00 00 00 .long 0x0 + 3420: 98 45 a0 45 .long 0x45a04598 gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; - 3434: 00 00 04 c8 lfd f0,0(r4) + 3424: 08 8f 00 06 .long 0x6008f08 return PUD_SHIFT; - 3438: 1a 8c 1b 01 .long 0x11b8c1a + 3428: 23 b0 9a 01 .long 0x19ab023 gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; - 343c: 53 04 8c 1b .long 0x1b8c0453 - 3440: d8 1b 01 6f xoris r1,r24,7128 - 3444: 04 d8 1b 84 lwzu r0,-10236(r27) + 342c: 9f 04 a0 45 .long 0x45a0049f + 3430: a7 45 01 53 rlwimi. r1,r24,8,22,19 + 3434: 00 00 04 04 .long 0x4040000 shift = kvmppc_radix_level_to_shift(level); - 3448: 1c 04 a3 01 .long 0x1a3041c - 344c: 53 9f 04 84 lwzu r0,-24749(r4) + 3438: b8 45 b8 45 .long 0x45b845b8 + 343c: 01 59 00 01 .long 0x1005901 flags |= DSISR_PROTFAULT; - 3450: 1c 94 1c 01 .long 0x11c941c + 3440: 00 00 02 04 .long 0x4020000 goto forward_to_l1; - 3454: 6f 04 94 1c mulli r4,r20,1135 - 3458: c0 1c 04 a3 lhz r24,7360(r4) - 345c: 01 53 9f 04 .long 0x49f5301 - 3460: c0 1c c8 1c mulli r6,r8,7360 - 3464: 01 6f 04 c8 lfd f0,28417(r4) + 3444: d4 45 ec 45 .long 0x45ec45d4 + 3448: 04 a3 01 53 rlwimi r1,r24,20,12,2 + 344c: 9f 04 d4 46 .long 0x46d4049f + 3450: e4 46 04 a3 lhz r24,18148(r4) + 3454: 01 53 9f 00 .long 0x9f5301 flags |= DSISR_PROTFAULT; - 3468: 1c e4 1c 04 .long 0x41ce41c + 3458: 00 00 00 02 .long 0x2000000 if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { - 346c: a3 01 53 9f stbu r26,419(r19) + 345c: 04 dc 45 eb ld r26,-9212(r5) vcpu->arch.fault_dsisr = flags; - 3470: 00 00 00 00 .long 0x0 + 3460: 45 01 54 04 .long 0x4540145 if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { - 3474: 00 00 00 04 .long 0x4000000 - 3478: 80 1b ec 1b lxvp vs62,7040(r12) + 3464: d4 46 e4 46 .long 0x46e446d4 + 3468: 01 54 00 00 .long 0x5401 vcpu->arch.shregs.msr &= SRR1_MSR_BITS; - 347c: 01 6b 04 ec .long 0xec046b01 - 3480: 1b f0 1b 05 .long 0x51bf01b - 3484: 8c d0 e5 7e .long 0x7ee5d08c - 3488: 9f 04 84 1c mulli r4,r4,1183 + 346c: 00 00 02 04 .long 0x4020000 + 3470: dc 45 eb 45 .long 0x45eb45dc + 3474: 01 53 04 d4 stfsu f0,21249(r4) + 3478: 46 e4 46 01 .long 0x146e446 vcpu->arch.shregs.msr |= flags; - 348c: e4 1c 01 6b xori r1,r24,7396 - 3490: 00 00 00 00 .long 0x0 + 347c: 53 00 03 00 .long 0x30053 + 3480: 00 02 04 dc stfdu f0,512(r4) if (ret == RESUME_HOST && - 3494: 00 04 84 1b lxvp vs28,1024(r4) - 3498: f4 1b 01 6d xoris r1,r8,7156 - 349c: 04 84 1c e4 psq_lu f0,1028(r28),1,0 - 34a0: 1c 01 6d 00 .long 0x6d011c + 3484: 45 eb 45 0e twi 18,r5,-5307 + 3488: 74 00 0c ff .long 0xff0c0074 + 348c: ff ff ff 1a .long 0x1affffff + 3490: 31 2b 08 ff .long 0xff082b31 return RESUME_HOST; - 34a4: 04 00 00 00 .long 0x4 + 3494: 1a 9f 04 d4 stfsu f0,-24806(r4) mutex_unlock(&gp->tlb_lock); - 34a8: 04 a0 1b f8 std r0,-24572(r27) - 34ac: 1b 01 6e 04 .long 0x46e011b - 34b0: 84 1c e4 1c mulli r7,r4,7300 -} - 34b4: 01 6e 00 03 .long 0x3006e01 - 34b8: 02 00 00 00 .long 0x2 - 34bc: 00 04 84 1b lxvp vs28,1024(r4) - 34c0: d8 1b 02 30 addic r0,r2,7128 - 34c4: 9f 04 84 1c mulli r4,r4,1183 - 34c8: 94 1c 02 30 addic r0,r2,7316 - 34cc: 9f 04 c0 1c mulli r6,r0,1183 - 34d0: e4 1c 03 09 tdgti r3,7396 - 34d4: fc 9f 00 01 .long 0x1009ffc - 34d8: 00 04 80 1b lxvp vs28,1024(0) - 34dc: 84 1b 02 34 addic. r0,r2,7044 - 34e0: 9f 00 01 00 .long 0x1009f - 34e4: 04 80 1b 84 lwzu r0,-32764(r27) - 34e8: 1b 01 53 00 .long 0x53011b - 34ec: 00 04 04 88 lbz r0,1024(r4) - 34f0: 1b a0 1b 01 .long 0x11ba01b - 34f4: 6c 00 00 04 .long 0x400006c - 34f8: 04 a0 1b a0 lhz r0,-24572(r27) - 34fc: 1b 01 6e 00 .long 0x6e011b + 3498: 46 e4 46 0e twi 18,r6,-7098 + 349c: 74 00 0c ff .long 0xff0c0074 + 34a0: ff ff ff 1a .long 0x1affffff +} + 34a4: 31 2b 08 ff .long 0xff082b31 + 34a8: 1a 9f 00 00 .long 0x9f1a + 34ac: 00 00 02 02 .long 0x2020000 + ... + 34b8: 00 04 c8 1a lxvp vs22,1024(r8) + 34bc: 8c 1b 01 53 rlwimi r1,r24,3,14,6 + 34c0: 04 8c 1b d8 stfd f0,-29692(r27) + 34c4: 1b 01 6f 04 .long 0x46f011b + 34c8: d8 1b 84 1c mulli r4,r4,7128 + 34cc: 04 a3 01 53 rlwimi r1,r24,20,12,2 + 34d0: 9f 04 84 1c mulli r4,r4,1183 + 34d4: 94 1c 01 6f xoris r1,r24,7316 + 34d8: 04 94 1c c0 lfs f0,-27644(r28) + 34dc: 1c 04 a3 01 .long 0x1a3041c + 34e0: 53 9f 04 c0 lfs f0,-24749(r4) + 34e4: 1c c8 1c 01 .long 0x11cc81c + 34e8: 6f 04 c8 1c mulli r6,r8,1135 + 34ec: e4 1c 04 a3 lhz r24,7396(r4) kvmhv_update_ptbl_cache(gp); - 3500: 01 00 00 00 .long 0x1 - 3504: 01 00 04 c0 lfs f0,1(r4) + 34f0: 01 53 9f 00 .long 0x9f5301 + 34f4: 00 00 00 00 .long 0x0 if (!gp->l1_gr_to_hr) - 3508: 1b d8 1b 01 .long 0x11bd81b - 350c: 6e 04 84 1c mulli r4,r4,1134 - 3510: b0 1c 01 6e xoris r1,r16,7344 - 3514: 04 c0 1c dc stfdu f0,-16380(r28) - 3518: 1c 01 6e 00 .long 0x6e011c - 351c: 01 00 00 00 .long 0x1 - 3520: 01 00 04 c0 lfs f0,1(r4) + 34f8: 00 00 04 80 lwz r0,0(r4) + 34fc: 1b ec 1b 01 .long 0x11bec1b + 3500: 6b 04 ec 1b .long 0x1bec046b + 3504: f0 1b 05 8c lbzu r0,7152(r5) + 3508: d0 e5 7e 9f stbu r27,-6704(r30) + 350c: 04 84 1c e4 psq_lu f0,1028(r28),1,0 + 3510: 1c 01 6b 00 .long 0x6b011c if (dsisr & (DSISR_PRTABLE_FAULT | DSISR_BADACCESS)) { - 3524: 1b d8 1b 01 .long 0x11bd81b - 3528: 6c 04 84 1c mulli r4,r4,1132 + 3514: 00 00 00 00 .long 0x0 + 3518: 04 84 1b f4 psq_stu f0,1028(r27),1,0 return kvmppc_hv_emulate_mmio(vcpu, gpa, ea, writing); - 352c: b0 1c 01 6c xoris r1,r0,7344 - 3530: 04 c0 1c dc stfdu f0,-16380(r28) - 3534: 1c 01 6c 00 .long 0x6c011c - 3538: 04 02 00 00 .long 0x204 - 353c: 04 00 04 c0 lfs f0,4(r4) - 3540: 1b d8 1b 0e twlti r27,-10213 - 3544: 8e 00 0c ff .long 0xff0c008e - 3548: ff ff ff 1a .long 0x1affffff - 354c: 31 2b 08 ff .long 0xff082b31 - 3550: 1a 9f 04 84 lwzu r0,-24806(r4) - 3554: 1c 94 1c 0e twlti r28,-27620 - 3558: 8e 00 0c ff .long 0xff0c008e - 355c: ff ff ff 1a .long 0x1affffff - 3560: 31 2b 08 ff .long 0xff082b31 - 3564: 1a 9f 04 c0 lfs f0,-24806(r4) - 3568: 1c e4 1c 0e twlti r28,-7140 - 356c: 8e 00 0c ff .long 0xff0c008e + 351c: 1b 01 6d 04 .long 0x46d011b + 3520: 84 1c e4 1c mulli r7,r4,7300 + 3524: 01 6d 00 04 .long 0x4006d01 + 3528: 00 00 00 04 .long 0x4000000 + 352c: a0 1b f8 1b lxvp vs62,7072(r24) + 3530: 01 6e 04 84 lwzu r0,28161(r4) + 3534: 1c e4 1c 01 .long 0x11ce41c + 3538: 6e 00 03 02 .long 0x203006e + 353c: 00 00 00 00 .long 0x0 + 3540: 04 84 1b d8 stfd f0,-31740(r27) + 3544: 1b 02 30 9f stbu r25,539(r16) + 3548: 04 84 1c 94 stwu r0,-31740(r28) + 354c: 1c 02 30 9f stbu r25,540(r16) + 3550: 04 c0 1c e4 psq_lu f0,4(r28),1,4 + 3554: 1c 03 09 fc .long 0xfc09031c + 3558: 9f 00 01 00 .long 0x1009f + 355c: 04 80 1b 84 lwzu r0,-32764(r27) } else if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { - 3570: ff ff ff 1a .long 0x1affffff - 3574: 31 2b 08 ff .long 0xff082b31 + 3560: 1b 02 34 9f stbu r25,539(r20) + 3564: 00 01 00 04 .long 0x4000100 if (!gpte_p->may_execute) { - 3578: 1a 9f 00 00 .long 0x9f1a + 3568: 80 1b 84 1b lxvp vs28,7040(r4) } else if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { - 357c: 00 00 00 00 .long 0x0 + 356c: 01 53 00 00 .long 0x5301 if (!gpte_p->may_read && !gpte_p->may_write) { - 3580: 00 00 00 04 .long 0x4000000 - 3584: 98 04 c7 04 .long 0x4c70498 - 3588: 01 53 04 c7 lfsu f24,21249(r4) - 358c: 04 dc 04 04 .long 0x404dc04 + 3570: 04 04 88 1b .long 0x1b880404 + 3574: a0 1b 01 6c xoris r1,r0,7072 + 3578: 00 00 04 04 .long 0x4040000 + 357c: a0 1b a0 1b lxvp vs60,7072(0) if (dsisr & DSISR_SET_RC) { - 3590: a3 01 53 9f stbu r26,419(r19) - 3594: 04 dc 04 f8 std r0,-9212(r4) + 3580: 01 6e 00 01 .long 0x1006e01 + 3584: 00 00 00 01 .long 0x1000000 ret = kvmhv_handle_nested_set_rc(vcpu, gp, n_gpa, gpte, dsisr); - 3598: 04 01 53 04 .long 0x4530104 - 359c: f8 04 b0 06 .long 0x6b004f8 + 3588: 00 04 c0 1b lxvp vs30,1024(0) + 358c: d8 1b 01 6e xoris r1,r16,7128 pgflags = _PAGE_ACCESSED; - 35a0: 04 a3 01 53 rlwimi r1,r24,20,12,2 - 35a4: 9f 00 00 00 .long 0x9f + 3590: 04 84 1c b0 sth r0,-31740(r28) + 3594: 1c 01 6e 04 .long 0x46e011c if (pgflags & ~gpte.rc) - 35a8: 00 00 04 90 stw r0,0(r4) - 35ac: 05 a0 05 01 .long 0x105a005 - 35b0: 53 04 a0 05 .long 0x5a00453 + 3598: c0 1c dc 1c mulli r6,r28,7360 + 359c: 01 6e 00 01 .long 0x1006e01 + 35a0: 00 00 00 01 .long 0x1000000 ret = kvmppc_hv_handle_set_rc(kvm, false, writing, - 35b4: a7 05 01 54 rlwinm. r1,r0,0,22,19 - 35b8: 00 04 02 00 .long 0x20400 - 35bc: 03 04 98 04 .long 0x4980403 - 35c0: c0 04 04 0a tdlti r4,1216 - 35c4: 00 20 9f 04 .long 0x49f2000 - 35c8: dc 04 dc 04 .long 0x4dc04dc - 35cc: 04 0a 00 20 subfic r0,r0,2564 - 35d0: 9f 00 0d 02 .long 0x20d009f - 35d4: 00 03 04 98 stb r0,768(r4) - 35d8: 04 c0 04 02 .long 0x204c004 + 35a4: 00 04 c0 1b lxvp vs30,1024(0) + 35a8: d8 1b 01 6c xoris r1,r0,7128 + 35ac: 04 84 1c b0 sth r0,-31740(r28) + 35b0: 1c 01 6c 04 .long 0x46c011c + 35b4: c0 1c dc 1c mulli r6,r28,7360 + 35b8: 01 6c 00 04 .long 0x4006c01 + 35bc: 02 00 00 04 .long 0x4000002 + 35c0: 00 04 c0 1b lxvp vs30,1024(0) + 35c4: d8 1b 0e 8e lbzu r16,7128(r14) + 35c8: 00 0c ff ff .long 0xffff0c00 if (!ret) { - 35dc: 3d 9f 04 dc stfdu f0,-24771(r4) - 35e0: 04 dc 04 02 .long 0x204dc04 + 35cc: ff ff 1a 31 addic r8,r26,-1 + 35d0: 2b 08 ff 1a .long 0x1aff082b ret = kvmppc_hv_handle_set_rc(kvm, true, writing, - 35e4: 3d 9f 00 00 .long 0x9f3d - 35e8: 01 01 00 04 .long 0x4000101 - 35ec: c0 04 c8 04 .long 0x4c804c0 - 35f0: 02 31 9f 04 .long 0x49f3102 - 35f4: dc 04 b0 06 .long 0x6b004dc - 35f8: 02 30 9f 00 .long 0x9f3002 - 35fc: 11 00 00 01 .long 0x1000011 + 35d4: 9f 04 84 1c mulli r4,r4,1183 + 35d8: 94 1c 0e 8e lbzu r16,7316(r14) + 35dc: 00 0c ff ff .long 0xffff0c00 + 35e0: ff ff 1a 31 addic r8,r26,-1 + 35e4: 2b 08 ff 1a .long 0x1aff082b + 35e8: 9f 04 c0 1c mulli r6,r0,1183 + 35ec: e4 1c 0e 8e lbzu r16,7396(r14) if (!ret) - 3600: 04 98 04 c0 lfs f0,-26620(r4) - 3604: 04 02 31 9f stbu r25,516(r17) + 35f0: 00 0c ff ff .long 0xffff0c00 + 35f4: ff ff 1a 31 addic r8,r26,-1 ret = -EINVAL; - 3608: 04 dc 04 dc stfdu f0,-9212(r4) + 35f8: 2b 08 ff 1a .long 0x1aff082b if (unlikely(ms->mmiowb_pending)) { - 360c: 04 02 31 9f stbu r25,516(r17) + 35fc: 9f 00 00 00 .long 0x9f struct mmiowb_state *ms = __mmiowb_state(); - 3610: 00 00 04 00 .long 0x40000 + 3600: 00 00 00 00 .long 0x0 if (unlikely(ms->mmiowb_pending)) { - 3614: 00 00 00 04 .long 0x4000000 - 3618: ac 05 b8 05 .long 0x5b805ac + 3604: 00 00 04 98 stb r0,0(r4) + 3608: 04 c7 04 01 .long 0x104c704 ms->nesting_count--; - 361c: 01 53 04 dc stfdu f0,21249(r4) - 3620: 05 94 06 01 .long 0x1069405 - 3624: 53 04 9c 06 .long 0x69c0453 - 3628: b0 06 01 53 rlwimi r1,r24,0,26,24 - 362c: 00 03 03 04 .long 0x4030300 - 3630: e8 0e f0 0e twi 23,r16,3816 + 360c: 53 04 c7 04 .long 0x4c70453 + 3610: dc 04 04 a3 lhz r24,1244(r4) + 3614: 01 53 9f 04 .long 0x49f5301 + 3618: dc 04 f8 04 .long 0x4f804dc + 361c: 01 53 04 f8 stdu r0,21248(r4) + 3620: 04 b0 06 04 .long 0x406b004 if (ret) - 3634: 04 0a 00 20 subfic r0,r0,2564 - 3638: 9f 00 0c 03 .long 0x30c009f + 3624: a3 01 53 9f stbu r26,419(r19) + 3628: 00 00 00 00 .long 0x0 if (!(dsisr & (DSISR_BAD_FAULT_64S | DSISR_NOHPTE | - 363c: 04 e8 0e f0 xsaddsp vs0,vs46,vs29 - 3640: 0e 02 3d 9f stbu r25,526(r29) - 3644: 00 01 00 04 .long 0x4000100 - 3648: f0 0e bc 0f twi 29,r28,3824 - 364c: 02 30 9f 00 .long 0x9f3002 + 362c: 00 04 90 05 .long 0x5900400 + 3630: a0 05 01 53 rlwimi r1,r24,0,22,16 + 3634: 04 a0 05 a7 lhzu r24,-24572(r5) + 3638: 05 01 54 00 .long 0x540105 + 363c: 04 02 00 03 .long 0x3000204 dsisr &= ~DSISR_SET_RC; - 3650: 10 01 04 e8 ld r0,272(r4) - 3654: 0e f0 0e 02 .long 0x20ef00e - 3658: 31 9f 00 04 .long 0x4009f31 - 365c: 00 00 00 04 .long 0x4000000 + 3640: 04 98 04 c0 lfs f0,-26620(r4) + 3644: 04 04 0a 00 .long 0xa0404 + 3648: 20 9f 04 dc stfdu f0,-24800(r4) + 364c: 04 dc 04 04 .long 0x404dc04 kvmppc_core_queue_data_storage(vcpu, ea, dsisr); - 3660: 94 0d 80 0e twlei r0,3476 - 3664: 02 40 9f 04 .long 0x49f4002 - 3668: 88 0e cc 0e twi 22,r12,3720 - 366c: 02 40 9f 00 .long 0x9f4002 - 3670: 09 00 00 00 .long 0x9 + 3650: 0a 00 20 9f .long 0x9f20000a + 3654: 00 0d 02 00 .long 0x20d00 + 3658: 03 04 98 04 .long 0x4980403 + 365c: c0 04 02 3d addis r8,r2,1216 + 3660: 9f 04 dc 04 .long 0x4dc049f return RESUME_GUEST; - 3674: 00 00 04 c8 lfd f0,0(r4) - 3678: 0d d0 0d 10 psq_lx f0,r13,r26,0,0 - 367c: 73 00 10 ff fmul. f24,f16,f1 - 3680: ff ff ff ff fnmadd. f31,f31,f31,f31 - 3684: ff ff ff 0f twui r31,-1 - 3688: 1a 34 21 9f stbu r25,13338(r1) - 368c: 04 d0 0d d4 stfsu f0,-12284(r13) + 3664: dc 04 02 3d addis r8,r2,1244 + 3668: 9f 00 00 01 .long 0x100009f + 366c: 01 00 04 c0 lfs f0,1(r4) + 3670: 04 c8 04 02 .long 0x204c804 + 3674: 31 9f 04 dc stfdu f0,-24783(r4) + 3678: 04 b0 06 02 .long 0x206b004 + 367c: 30 9f 00 11 maddhd r8,r0,r19,r28 return RESUME_GUEST; - 3690: 0d 18 03 00 .long 0x3180d - 3694: 00 00 00 00 .long 0x0 - 3698: 00 00 00 06 .long 0x6000000 - 369c: 10 ff ff ff .long 0xffffff10 + 3680: 00 00 01 04 .long 0x4010000 + 3684: 98 04 c0 04 .long 0x4c00498 + 3688: 02 31 9f 04 .long 0x49f3102 + 368c: dc 04 dc 04 .long 0x4dc04dc ret = kvmhv_handle_nested_set_rc(vcpu, gp, n_gpa, gpte, dsisr); - 36a0: ff ff ff ff fnmadd. f31,f31,f31,f31 - 36a4: ff 0f 1a 34 addic. r0,r26,4095 + 3690: 02 31 9f 00 .long 0x9f3102 + 3694: 00 04 00 00 .long 0x400 pgflags |= _PAGE_DIRTY; - 36a8: 21 9f 04 d4 stfsu f0,-24799(r4) - 36ac: 0d df 0d 01 .long 0x10ddf0d + 3698: 00 00 04 ac lhau r0,0(r4) + 369c: 05 b8 05 01 .long 0x105b805 if (writing) - 36b0: 54 00 00 00 .long 0x54 - 36b4: 00 00 00 00 .long 0x0 - 36b8: 04 e0 0d ec dadd f0,f13,f28 - 36bc: 0d 01 53 04 .long 0x453010d + 36a0: 53 04 dc 05 .long 0x5dc0453 + 36a4: 94 06 01 53 rlwimi r1,r24,0,26,10 + 36a8: 04 9c 06 b0 sth r0,-25596(r6) + 36ac: 06 01 53 00 .long 0x530106 if (!gpte_p->may_execute) { - 36c0: 88 0e 90 0e twlei r16,3720 - 36c4: 01 53 04 90 stw r0,21249(r4) + 36b0: 03 03 04 e8 .long 0xe8040303 + 36b4: 0e f0 0e 04 .long 0x40ef00e vcpu->arch.fault_dsisr = flags; - 36c8: 0e 97 0e 01 .long 0x10e970e + 36b8: 0a 00 20 9f .long 0x9f20000a flags |= SRR1_ISI_N_G_OR_CIP; - 36cc: 54 00 03 00 .long 0x30054 + 36bc: 00 0c 03 04 .long 0x4030c00 vcpu->arch.fault_dsisr = flags; - 36d0: 00 00 04 c8 lfd f0,0(r4) + 36c0: e8 0e f0 0e twi 23,r16,3816 if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { - 36d4: 0d ec 0d 02 .long 0x20dec0d - 36d8: 30 9f 04 88 lbz r0,-24784(r4) - 36dc: 0e b4 0e 02 .long 0x20eb40e - 36e0: 30 9f 00 06 .long 0x6009f30 - 36e4: 03 04 f8 0c twi 7,r24,1027 - 36e8: 90 0d 04 0a tdlti r4,3472 - 36ec: 00 20 9f 00 .long 0x9f2000 - 36f0: 0f 03 04 f8 .long 0xf804030f - 36f4: 0c 90 0d 02 .long 0x20d900c - 36f8: 3d 9f 00 13 vaddecuq v24,v0,v19,v28 - 36fc: 01 04 f8 0c twi 7,r24,1025 + 36c4: 02 3d 9f 00 .long 0x9f3d02 + 36c8: 01 00 04 f0 xsaddsp vs32,vs4,vs0 + 36cc: 0e bc 0f 02 .long 0x20fbc0e + 36d0: 30 9f 00 10 maddhd r0,r0,r19,r28 + 36d4: 01 04 e8 0e twi 23,r8,1025 + 36d8: f0 0e 02 31 addic r8,r2,3824 + 36dc: 9f 00 04 00 .long 0x4009f + 36e0: 00 00 04 94 stwu r0,0(r4) + 36e4: 0d 80 0e 02 .long 0x20e800d + 36e8: 40 9f 04 88 lbz r0,-24768(r4) + 36ec: 0e cc 0e 02 .long 0x20ecc0e return kmalloc_trace( - 3700: 90 0d 02 31 addic r8,r2,3472 + 36f0: 40 9f 00 09 tdgti r0,-24768 n_gpa &= ~((1UL << shift) - 1); - 3704: 9f 00 07 02 .long 0x207009f - 3708: 00 00 04 90 stw r0,0(r4) - 370c: 0d 94 0d 03 .long 0x30d940d + 36f4: 00 00 00 00 .long 0x0 + 36f8: 00 04 c8 0d twi 14,r8,1024 + 36fc: d0 0d 10 73 andi. r16,r24,3536 level = kvmppc_radix_shift_to_level(shift); - 3710: 08 40 9f 04 .long 0x49f4008 - 3714: 80 0e 88 0e twlei r8,3712 + 3700: 00 10 ff ff .long 0xffff1000 + 3704: ff ff ff ff fnmadd. f31,f31,f31,f31 n_gpa &= ~((1UL << shift) - 1); - 3718: 03 08 40 9f .long 0x9f400803 - 371c: 00 10 02 00 .long 0x21000 - 3720: 00 04 90 0d twgei r16,1024 - 3724: 94 0d 02 36 addic. r16,r2,3476 - 3728: 9f 04 80 0e twlei r0,1183 - if (unlikely(!n_rmap)) - 372c: 88 0e 02 36 addic. r16,r2,3720 - 3730: 9f 00 00 00 .long 0x9f + 3708: ff ff 0f 1a .long 0x1a0fffff + 370c: 34 21 9f 04 .long 0x49f2134 + 3710: d0 0d d4 0d twi 14,r20,3536 + 3714: 18 03 00 00 .long 0x318 + 3718: 00 00 00 00 .long 0x0 + if (!n_rmap) + 371c: 00 00 06 10 vaddubm v0,v6,v0 + 3720: ff ff ff ff fnmadd. f31,f31,f31,f31 n_rmap = kzalloc(sizeof(*n_rmap), GFP_KERNEL); - 3734: 00 00 04 94 stwu r0,0(r4) - if (unlikely(!n_rmap)) - 3738: 0d 80 0e 02 .long 0x20e800d + 3724: ff ff ff ff fnmadd. f31,f31,f31,f31 + if (!n_rmap) + 3728: 0f 1a 34 21 subfic r9,r20,6671 (((unsigned long) gp->l1_lpid) << RMAP_NESTED_LPID_SHIFT); - 373c: 31 9f 04 88 lbz r0,-24783(r4) + 372c: 9f 04 d4 0d twi 14,r20,1183 n_rmap->rmap = (n_gpa & RMAP_NESTED_GPA_MASK) | - 3740: 0e cc 0e 02 .long 0x20ecc0e + 3730: df 0d 01 54 rlwinm. r1,r0,1,23,15 ret = kvmppc_create_pte(kvm, gp->shadow_pgtable, pte, n_gpa, level, - 3744: 31 9f 00 14 .long 0x14009f31 - 3748: 00 00 00 04 .long 0x4000000 - 374c: 90 0d 94 0d twgei r20,3472 - 3750: 02 31 9f 04 .long 0x49f3102 - 3754: 80 0e 88 0e twlei r8,3712 - 3758: 02 31 9f 00 .long 0x9f3102 + 3734: 00 00 00 00 .long 0x0 + 3738: 00 00 00 04 .long 0x4000000 + 373c: e0 0d ec 0d twi 15,r12,3552 + 3740: 01 53 04 88 lbz r0,21249(r4) + 3744: 0e 90 0e 01 .long 0x10e900e + 3748: 53 04 90 0e twlei r16,1107 n_rmap->rmap = (n_gpa & RMAP_NESTED_GPA_MASK) | - 375c: 06 00 04 94 stwu r0,6(r4) + 374c: 97 0e 01 54 rlwinm. r1,r0,1,26,11 (((unsigned long) gp->l1_lpid) << RMAP_NESTED_LPID_SHIFT); - 3760: 0d c0 0d 04 .long 0x40dc00d + 3750: 00 03 00 00 .long 0x300 n_rmap->rmap = (n_gpa & RMAP_NESTED_GPA_MASK) | - 3764: 0a c0 0c 9f stbu r24,-16374(r12) - 3768: 00 06 00 04 .long 0x4000600 + 3754: 00 04 c8 0d twi 14,r8,1024 + 3758: ec 0d 02 30 addic r0,r2,3564 rmapp = &memslot->arch.rmap[gfn - memslot->base_gfn]; - 376c: 94 0d c0 0d twi 14,r0,3476 - 3770: 04 40 40 24 dozi r2,r0,16388 + 375c: 9f 04 88 0e twlei r8,1183 + 3760: b4 0e 02 30 addic r0,r2,3764 ret = kvmppc_create_pte(kvm, gp->shadow_pgtable, pte, n_gpa, level, - 3774: 9f 00 00 00 .long 0x9f - 3778: 00 00 00 00 .long 0x0 - 377c: 00 00 04 f8 std r0,0(r4) + 3764: 9f 00 06 03 .long 0x306009f + 3768: 04 f8 0c 90 stw r0,-2044(r12) + 376c: 0d 04 0a 00 .long 0xa040d rmapp = &memslot->arch.rmap[gfn - memslot->base_gfn]; - 3780: 2a ac 2b 01 .long 0x12bac2a - 3784: 53 04 ac 2b cmpldi cr7,r12,1107 + 3770: 20 9f 00 0f twnei r0,-24800 + 3774: 03 04 f8 0c twi 7,r24,1027 ret = kvmppc_create_pte(kvm, gp->shadow_pgtable, pte, n_gpa, level, - 3788: 94 2e 01 6f xoris r1,r24,11924 - 378c: 04 94 2e 9c stbu r1,-27644(r14) - 3790: 2e 04 a3 01 .long 0x1a3042e - 3794: 53 9f 04 9c stbu r0,-24749(r4) + 3778: 90 0d 02 3d addis r8,r2,3472 + 377c: 9f 00 13 01 .long 0x113009f + 3780: 04 f8 0c 90 stw r0,-2044(r12) + 3784: 0d 02 31 9f stbu r25,525(r17) kfree(n_rmap); - 3798: 2e dc 41 01 .long 0x141dc2e - 379c: 6f 00 00 00 .long 0x6f - ... + 3788: 00 07 02 00 .long 0x20700 + 378c: 00 04 90 0d twgei r16,1024 + 3790: 94 0d 03 08 tdi 0,r3,3476 if (ret == -EAGAIN) - 37ac: 00 00 04 c0 lfs f0,0(r4) - 37b0: 2d d4 2d 03 .long 0x32dd42d - 37b4: 09 ff 9f 04 .long 0x49fff09 - 37b8: c0 2e 8c 2f cmpwi cr7,r12,11968 - 37bc: 02 31 9f 04 .long 0x49f3102 - 37c0: a8 30 ac 30 addic r5,r12,12456 - 37c4: 09 8e 00 08 tdi 0,r0,-29175 - 37c8: 20 24 08 20 subfic r0,r8,9248 - 37cc: 26 9f 04 cc lfdu f0,-24794(r4) - 37d0: 3a dc 3a 03 .long 0x33adc3a + 3794: 40 9f 04 80 lwz r0,-24768(r4) + 3798: 0e 88 0e 03 .long 0x30e880e + 379c: 08 40 9f 00 .long 0x9f4008 + 37a0: 10 02 00 00 .long 0x210 + 37a4: 04 90 0d 94 stwu r0,-28668(r13) + 37a8: 0d 02 36 9f stbu r25,525(r22) + 37ac: 04 80 0e 88 lbz r0,-32764(r14) + 37b0: 0e 02 36 9f stbu r25,526(r22) + 37b4: 00 00 00 00 .long 0x0 + 37b8: 00 04 94 0d twgei r20,1024 + 37bc: 80 0e 02 31 addic r8,r2,3712 + 37c0: 9f 04 88 0e twlei r8,1183 kvmhv_invalidate_shadow_pte(vcpu, gp, n_gpa, NULL); - 37d4: 09 ff 9f 04 .long 0x49fff09 - 37d8: f0 3b 8c 3c addis r4,r12,15344 - 37dc: 02 31 9f 04 .long 0x49f3102 - 37e0: e4 3d e8 3d addis r15,r8,15844 - 37e4: 09 8d 00 08 tdi 0,r0,-29431 + 37c4: cc 0e 02 31 addic r8,r2,3788 + 37c8: 9f 00 14 00 .long 0x14009f + 37cc: 00 00 04 90 stw r0,0(r4) + 37d0: 0d 94 0d 02 .long 0x20d940d + 37d4: 31 9f 04 80 lwz r0,-24783(r4) return RESUME_GUEST; - 37e8: 20 24 08 20 subfic r0,r8,9248 - 37ec: 26 9f 04 dc stfdu f0,-24794(r4) + 37d8: 0e 88 0e 02 .long 0x20e880e + 37dc: 31 9f 00 06 .long 0x6009f31 if (!pte_present(pte) || (writing && !(pte_val(pte) & _PAGE_WRITE))) { - 37f0: 3f e0 3f 02 .long 0x23fe03f + 37e0: 00 04 94 0d twgei r20,1024 if (PMD_SHIFT < l1_shift) - 37f4: 31 9f 04 f4 lxv vs0,-24784(r4) + 37e4: c0 0d 04 0a tdlti r4,3520 gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; - 37f8: 3f cc 40 03 .long 0x340cc3f - 37fc: 09 ff 9f 00 .long 0x9fff09 + 37e8: c0 0c 9f 00 .long 0x9f0cc0 + 37ec: 06 00 04 94 stwu r0,6(r4) + if (PMD_SHIFT < l1_shift) + 37f0: 0d c0 0d 04 .long 0x40dc00d + if (shift == PUD_SHIFT) + 37f4: 40 40 24 9f stbu r25,16448(r4) ... - 380c: 00 00 04 dc stfdu f0,0(r4) if (PMD_SHIFT < l1_shift) - 3810: 35 ec 35 01 .long 0x135ec35 + 3800: 00 04 f8 2a cmpldi cr5,r24,1024 gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; - 3814: 53 04 ec 35 addic. r15,r12,1107 + 3804: ac 2b 01 53 rlwimi r1,r24,5,14,22 if (shift == PUD_SHIFT) - 3818: e8 3a 01 6e xoris r1,r16,15080 + 3808: 04 ac 2b 94 stwu r1,-21500(r11) perm |= gpte.may_read ? 0UL : _PAGE_READ; - 381c: 04 a8 3b 8c lbzu r1,-22524(r27) + 380c: 2e 01 6f 04 .long 0x46f012e perm |= (gpte.rc & _PAGE_ACCESSED) ? 0UL : _PAGE_ACCESSED; - 3820: 3c 01 6e 04 .long 0x46e013c + 3810: 94 2e 9c 2e cmpwi cr5,r28,11924 gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; - 3824: 8c 3d 98 3e addis r20,r24,15756 + 3814: 04 a3 01 53 rlwimi r1,r24,20,12,2 perm |= ((gpte.rc & _PAGE_DIRTY) && writing) ? 0UL : _PAGE_DIRTY; - 3828: 01 6e 04 c8 lfd f0,28161(r4) + 3818: 9f 04 9c 2e cmpwi cr5,r28,1183 gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; - 382c: 3e e4 3f 01 .long 0x13fe43e - perm |= gpte.may_read ? 0UL : _PAGE_READ; - 3830: 6e 04 c0 40 bgea- 46c <.debug_loclists+0x46c> - perm |= gpte.may_write ? 0UL : _PAGE_WRITE; - 3834: cc 40 01 6e xoris r1,r16,16588 - perm |= gpte.may_execute ? 0UL : _PAGE_EXEC; - 3838: 04 90 41 98 stb r2,-28668(r1) - perm |= (gpte.rc & _PAGE_ACCESSED) ? 0UL : _PAGE_ACCESSED; - 383c: 41 01 6e 00 .long 0x6e0141 + 381c: dc 41 01 6f xoris r1,r24,16860 ... + perm |= ((gpte.rc & _PAGE_DIRTY) && writing) ? 0UL : _PAGE_DIRTY; + 3830: 00 04 c0 2d cmpwi cr3,r0,1024 + perm |= gpte.may_write ? 0UL : _PAGE_WRITE; + 3834: d4 2d 03 09 tdgti r3,11732 + perm |= gpte.may_read ? 0UL : _PAGE_READ; + 3838: ff 9f 04 c0 lfs f0,-24577(r4) perm |= gpte.may_execute ? 0UL : _PAGE_EXEC; - 384c: 00 00 04 b0 sth r0,0(r4) + 383c: 2e 8c 2f 02 .long 0x22f8c2e perm |= (gpte.rc & _PAGE_ACCESSED) ? 0UL : _PAGE_ACCESSED; - 3850: 31 c4 31 01 .long 0x131c431 + 3840: 31 9f 04 a8 lha r0,-24783(r4) perm |= gpte.may_write ? 0UL : _PAGE_WRITE; - 3854: 53 04 c4 31 addic r14,r4,1107 + 3844: 30 ac 30 09 tdi 9,r16,-21456 perm |= gpte.may_execute ? 0UL : _PAGE_EXEC; - 3858: 90 38 01 6a xori r1,r16,14480 + 3848: 8e 00 08 20 subfic r0,r8,142 perm |= (gpte.rc & _PAGE_ACCESSED) ? 0UL : _PAGE_ACCESSED; - 385c: 04 90 38 8b lbz r25,-28668(r24) + 384c: 24 08 20 26 dozi r17,r0,2084 perm |= ((gpte.rc & _PAGE_DIRTY) && writing) ? 0UL : _PAGE_DIRTY; - 3860: 3a 01 53 04 .long 0x453013a - 3864: a8 3b c4 3b addi r30,r4,15272 + 3850: 9f 04 cc 3a addi r22,r12,1183 + 3854: dc 3a 03 09 tdgti r3,15068 pte = __pte(pte_val(pte) & ~perm); - 3868: 01 6a 04 98 stb r0,27137(r4) + 3858: ff 9f 04 f0 xxsel vs32,vs36,vs51,vs63 if (shift > l1_shift) { - 386c: 3e a8 3e 01 .long 0x13ea83e + 385c: 3b 8c 3c 02 .long 0x23c8c3b pte = __pte(pte_val(pte) & ~perm); - 3870: 53 04 a8 3e addis r21,r8,1107 - 3874: c8 3e 01 6a xori r1,r16,16072 - 3878: 04 ac 3f dc stfdu f1,-21500(r31) - 387c: 3f 01 6a 00 .long 0x6a013f - 3880: 00 00 00 00 .long 0x0 - 3884: 04 84 2c 90 stw r1,-31740(r12) - 3888: 2e 01 69 04 .long 0x469012e - 388c: 9c 2e dc 41 blt- cr7,6728 - 3890: 01 69 00 00 .long 0x6901 - 3894: 00 00 03 00 .long 0x30000 - if (shift > l1_shift) { - 3898: 00 00 00 00 .long 0x0 - level = kvmppc_radix_shift_to_level(shift); - 389c: 00 04 bc 2c cmpdi cr1,r28,1024 + 3860: 31 9f 04 e4 psq_lu f0,-207(r4),1,1 + 3864: 3d e8 3d 09 tdi 9,r29,-6083 + 3868: 8d 00 08 20 subfic r0,r8,141 + 386c: 24 08 20 26 dozi r17,r0,2084 + 3870: 9f 04 dc 3f addis r30,r28,1183 + 3874: e0 3f 02 31 addic r8,r2,16352 + 3878: 9f 04 f4 3f addis r31,r20,1183 + 387c: cc 40 03 09 tdgti r3,16588 + 3880: ff 9f 00 00 .long 0x9fff + ... if (shift == PUD_SHIFT) - 38a0: e8 2d 01 68 xori r1,r0,11752 + 3890: 00 04 dc 35 addic. r14,r28,1024 pte = __pte(pte_val(pte) & ~perm); - 38a4: 04 9c 2e 90 stw r1,-25596(r14) + 3894: ec 35 01 53 rlwimi r1,r24,6,23,22 if (shift == PUD_SHIFT) - 38a8: 2f 01 68 04 .long 0x468012f - 38ac: 98 2f 90 3b addi r28,r16,12184 - 38b0: 01 68 04 a8 lha r0,26625(r4) - 38b4: 3b c0 3c 01 .long 0x13cc03b + 3898: 04 ec 35 e8 ld r1,-5116(r21) + 389c: 3a 01 6e 04 .long 0x46e013a + 38a0: a8 3b 8c 3c addis r4,r12,15272 + 38a4: 01 6e 04 8c lbzu r0,28161(r4) if (shift == PMD_SHIFT) - 38b8: 68 04 dc 3c addis r6,r28,1128 - 38bc: 98 41 01 68 xori r1,r0,16792 - 38c0: 00 00 00 00 .long 0x0 + 38a8: 3d 98 3e 01 .long 0x13e983d + 38ac: 6e 04 c8 3e addis r22,r8,1134 + 38b0: e4 3f 01 6e xoris r1,r16,16356 if (shift == PAGE_SHIFT) - 38c4: 03 00 00 00 .long 0x3 - 38c8: 00 00 00 04 .long 0x4000000 + 38b4: 04 c0 40 cc .long 0xcc40c004 + 38b8: 40 01 6e 04 .long 0x46e0140 WARN_ON_ONCE(1); - 38cc: c0 2c e4 2d cmpdi cr3,r4,11456 - vcpu->arch.fault_gpa = fault_addr; - 38d0: 01 67 04 9c stbu r0,26369(r4) - 38d4: 2e 90 2f 01 .long 0x12f902e - flags |= DSISR_PRTABLE_FAULT; - 38d8: 67 04 98 2f cmpwi cr7,r24,1127 + 38bc: 90 41 98 41 blt cr6,7a4c vcpu->arch.fault_gpa = fault_addr; - 38dc: 8c 3b 01 67 oris r1,r24,15244 - 38e0: 04 a8 3b bc stmw r1,-22524(r27) - 38e4: 3c 01 67 04 .long 0x467013c - 38e8: dc 3c 98 41 blt cr6,75c4 - 38ec: 01 67 00 00 .long 0x6701 + 38c0: 01 6e 00 00 .long 0x6e01 + ... + 38d0: 00 04 b0 31 addic r13,r16,1024 + 38d4: c4 31 01 53 rlwimi r1,r24,6,7,2 + 38d8: 04 c4 31 90 stw r1,-15356(r17) + 38dc: 38 01 6a 04 .long 0x46a0138 kvmppc_core_queue_data_storage(vcpu, ea, - 38f0: 00 00 00 00 .long 0x0 - 38f4: 00 04 98 32 addic r20,r24,1024 - 38f8: 98 38 01 6d xoris r1,r8,14488 - 38fc: 04 a8 3b c4 lfsu f1,-22524(r27) - 3900: 3b 01 6d 04 .long 0x46d013b + 38e0: 90 38 8b 3a addi r20,r11,14480 + 38e4: 01 53 04 a8 lha r0,21249(r4) + 38e8: 3b c4 3b 01 .long 0x13bc43b + 38ec: 6a 04 98 3e addis r20,r24,1130 + 38f0: a8 3e 01 53 rlwimi r1,r24,7,26,20 return RESUME_GUEST; - 3904: ac 3f dc 3f addis r30,r28,16300 - 3908: 01 6d 00 00 .long 0x6d01 - 390c: 00 00 00 00 .long 0x0 - 3910: 00 00 00 04 .long 0x4000000 - 3914: ec 33 94 34 addic. r4,r20,13292 - 3918: 01 54 04 94 stwu r0,21505(r4) - 391c: 34 e3 34 03 .long 0x334e334 - 3920: 91 88 75 04 .long 0x4758891 - 3924: fc 34 bc 35 addic. r13,r28,13564 - 3928: 01 53 04 bc stmw r0,21249(r4) - 392c: 35 8c 36 01 .long 0x1368c35 + 38f4: 04 a8 3e c8 lfd f1,-22524(r30) + 38f8: 3e 01 6a 04 .long 0x46a013e + 38fc: ac 3f dc 3f addis r30,r28,16300 + 3900: 01 6a 00 00 .long 0x6a01 + 3904: 00 00 00 04 .long 0x4000000 + 3908: 84 2c 90 2e cmpwi cr5,r16,11396 + 390c: 01 69 04 9c stbu r0,26881(r4) + 3910: 2e dc 41 01 .long 0x141dc2e + 3914: 69 00 00 00 .long 0x69 + 3918: 00 03 00 00 .long 0x300 + 391c: 00 00 00 00 .long 0x0 flags |= DSISR_UNSUPP_MMU; - 3930: 6c 00 00 00 .long 0x6c - 3934: 00 00 00 00 .long 0x0 - 3938: 04 bc 36 c8 lfd f1,-17404(r22) - 393c: 39 06 7f 00 .long 0x7f0639 + 3920: 04 bc 2c e8 ld r1,-17404(r12) + 3924: 2d 01 68 04 .long 0x468012d + 3928: 9c 2e 90 2f cmpwi cr7,r16,11932 + 392c: 01 68 04 98 stb r0,26625(r4) flags |= DSISR_NOHPTE; - 3940: 80 00 1c 9f stbu r24,128(r28) - 3944: 04 a8 3b c4 lfsu f1,-22524(r27) - 3948: 3b 06 7f 00 .long 0x7f063b - 394c: 80 00 1c 9f stbu r24,128(r28) + 3930: 2f 90 3b 01 .long 0x13b902f + 3934: 68 04 a8 3b addi r29,r8,1128 + 3938: c0 3c 01 68 xori r1,r0,15552 + 393c: 04 dc 3c 98 stb r1,-9212(r28) if (PMD_SHIFT < l1_shift) - 3950: 04 ac 3f dc stfdu f1,-21500(r31) - 3954: 3f 06 7f 00 .long 0x7f063f - 3958: 80 00 1c 9f stbu r24,128(r28) - 395c: 00 00 00 00 .long 0x0 + 3940: 41 01 68 00 .long 0x680141 + 3944: 00 00 00 03 .long 0x3000000 + 3948: 00 00 00 00 .long 0x0 + 394c: 00 00 04 c0 lfs f0,0(r4) actual_shift = PMD_SHIFT; - 3960: 00 00 00 04 .long 0x4000000 + 3950: 2c e4 2d 01 .long 0x12de42c mask = (1UL << shift) - (1UL << actual_shift); - 3964: c8 36 cc 39 addi r14,r12,14024 + 3954: 67 04 9c 2e cmpwi cr5,r28,1127 level = kvmppc_radix_shift_to_level(shift); - 3968: 06 85 00 81 lwz r8,-31482(0) + 3958: 90 2f 01 67 oris r1,r24,12176 mask = (1UL << shift) - (1UL << actual_shift); - 396c: 00 1c 9f 04 .long 0x49f1c00 + 395c: 04 98 2f 8c lbzu r1,-26620(r15) if (shift == PUD_SHIFT) - 3970: a8 3b c4 3b addi r30,r4,15272 + 3960: 3b 01 67 04 .long 0x467013b mask = (1UL << shift) - (1UL << actual_shift); - 3974: 06 85 00 81 lwz r8,-31482(0) + 3964: a8 3b bc 3c addis r5,r28,15272 shift = actual_shift; - 3978: 00 1c 9f 04 .long 0x49f1c00 + 3968: 01 67 04 dc stfdu f0,26369(r4) pte = __pte(pte_val(pte) | (gpa & mask)); - 397c: ac 3f dc 3f addis r30,r28,16300 - 3980: 06 85 00 81 lwz r8,-31482(0) - 3984: 00 1c 9f 00 .long 0x9f1c00 - 3988: 00 00 00 00 .long 0x0 - 398c: 00 00 04 cc lfdu f0,0(r4) - 3990: 36 d0 39 06 .long 0x639d036 - 3994: 8c 00 82 00 .long 0x82008c - 3998: 1c 9f 04 a8 lha r0,-24804(r4) - 399c: 3b c4 3b 06 .long 0x63bc43b - 39a0: 8c 00 82 00 .long 0x82008c - 39a4: 1c 9f 04 ac lhau r0,-24804(r4) - 39a8: 3f dc 3f 06 .long 0x63fdc3f + 396c: 3c 98 41 01 .long 0x141983c + 3970: 67 00 00 00 .long 0x67 + 3974: 00 00 00 00 .long 0x0 + 3978: 04 98 32 98 stb r1,-26620(r18) + 397c: 38 01 6d 04 .long 0x46d0138 + 3980: a8 3b c4 3b addi r30,r4,15272 + 3984: 01 6d 04 ac lhau r0,27905(r4) + 3988: 3f dc 3f 01 .long 0x13fdc3f + 398c: 6d 00 00 00 .long 0x6d + 3990: 00 00 00 00 .long 0x0 + 3994: 00 00 04 ec .long 0xec040000 + 3998: 33 94 34 01 .long 0x1349433 shift = actual_shift; - 39ac: 8c 00 82 00 .long 0x82008c + 399c: 54 04 94 34 addic. r4,r20,1108 if (!pte_present(pte) || (writing && !(pte_val(pte) & _PAGE_WRITE))) { - 39b0: 1c 9f 00 00 .long 0x9f1c - 39b4: 00 00 00 00 .long 0x0 - 39b8: 00 04 d8 36 addic. r22,r24,1024 - 39bc: 80 3a 06 83 lwz r24,14976(r6) + 39a0: e3 34 03 91 stw r8,13539(r3) + 39a4: 88 75 04 fc xststdcqp cr0,v14,4 + 39a8: 34 bc 35 01 .long 0x135bc34 + 39ac: 53 04 bc 35 addic. r13,r28,1107 ret = 0; - 39c0: 00 84 00 1c mulli r0,r0,-31744 - 39c4: 9f 04 a8 3b addi r29,r8,1183 - 39c8: c4 3b 06 83 lwz r24,15300(r6) - 39cc: 00 84 00 1c mulli r0,r0,-31744 + 39b0: 8c 36 01 6c xoris r1,r0,13964 + 39b4: 00 00 00 00 .long 0x0 + 39b8: 00 00 00 04 .long 0x4000000 + 39bc: bc 36 c8 39 addi r14,r8,14012 bool kvm_ro = false; - 39d0: 9f 04 ac 3f addis r29,r12,1183 - 39d4: dc 3f 06 83 lwz r24,16348(r6) - 39d8: 00 84 00 1c mulli r0,r0,-31744 - 39dc: 9f 00 02 00 .long 0x2009f - 39e0: 00 00 04 98 stb r0,0(r4) - 39e4: 31 a0 31 08 tdlgti r17,-24527 - 39e8: 79 00 30 2e cmpdi cr4,r16,121 + 39c0: 06 7f 00 80 lwz r0,32518(0) + 39c4: 00 1c 9f 04 .long 0x49f1c00 + 39c8: a8 3b c4 3b addi r30,r4,15272 + 39cc: 06 7f 00 80 lwz r0,32518(0) + 39d0: 00 1c 9f 04 .long 0x49f1c00 + 39d4: ac 3f dc 3f addis r30,r28,16300 + 39d8: 06 7f 00 80 lwz r0,32518(0) unsigned int actual_shift = PAGE_SHIFT; - 39ec: 08 ff 1a 9f stbu r24,-248(r26) - 39f0: 04 e4 3f f4 psq_stu f1,1028(r31),1,6 - 39f4: 3f 08 79 00 .long 0x79083f - 39f8: 30 2e 08 ff .long 0xff082e30 - 39fc: 1a 9f 00 01 .long 0x1009f1a + 39dc: 00 1c 9f 00 .long 0x9f1c00 + 39e0: 00 00 00 00 .long 0x0 + 39e4: 00 00 04 c8 lfd f0,0(r4) + 39e8: 36 cc 39 06 .long 0x639cc36 + 39ec: 85 00 81 00 .long 0x810085 switch (level) { - 3a00: 00 04 ac 2c cmpdi cr1,r12,1024 - 3a04: bc 2c 02 34 addic. r0,r2,11452 - 3a08: 9f 00 01 00 .long 0x1009f - 3a0c: 04 ac 2c bc stmw r1,-21500(r12) + 39f0: 1c 9f 04 a8 lha r0,-24804(r4) + 39f4: 3b c4 3b 06 .long 0x63bc43b + 39f8: 85 00 81 00 .long 0x810085 + 39fc: 1c 9f 04 ac lhau r0,-24804(r4) vcpu->arch.fault_dsisr = flags; - 3a10: 2c 01 6f 00 .long 0x6f012c - 3a14: 02 00 04 c0 lfs f0,2(r4) + 3a00: 3f dc 3f 06 .long 0x63fdc3f + 3a04: 85 00 81 00 .long 0x810085 if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { - 3a18: 2c e0 2c 01 .long 0x12ce02c - 3a1c: 6f 00 00 04 .long 0x400006f - 3a20: 04 d0 2c d0 stfs f1,-12284(r12) - 3a24: 2c 01 59 00 .long 0x59012c - 3a28: 02 00 04 bc stmw r0,2(r4) - 3a2c: 2c c0 2c 02 .long 0x22cc02c + 3a08: 1c 9f 00 00 .long 0x9f1c + 3a0c: 00 00 00 00 .long 0x0 + 3a10: 00 04 cc 36 addic. r22,r12,1024 + 3a14: d0 39 06 8c lbzu r0,14800(r6) + 3a18: 00 82 00 1c mulli r0,r0,-32256 + 3a1c: 9f 04 a8 3b addi r29,r8,1183 ms->mmiowb_pending = 0; - 3a30: 35 9f 00 02 .long 0x2009f35 - 3a34: 00 04 bc 2c cmpdi cr1,r28,1024 + 3a20: c4 3b 06 8c lbzu r0,15300(r6) + 3a24: 00 82 00 1c mulli r0,r0,-32256 mmiowb(); - 3a38: c0 2c 01 6f xoris r1,r24,11456 - 3a3c: 00 02 00 00 attn + 3a28: 9f 04 ac 3f addis r29,r12,1183 + 3a2c: dc 3f 06 8c lbzu r0,16348(r6) return PMD_SHIFT; - 3a40: 00 00 00 04 .long 0x4000000 + 3a30: 00 82 00 1c mulli r0,r0,-32256 gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; - 3a44: e0 2c c0 2d cmpwi cr3,r0,11488 - 3a48: 01 67 04 9c stbu r0,26369(r4) - 3a4c: 2e c0 2e 01 .long 0x12ec02e + 3a34: 9f 00 00 00 .long 0x9f + 3a38: 00 00 00 00 .long 0x0 + 3a3c: 04 d8 36 80 lwz r1,-10236(r22) return PMD_SHIFT; - 3a50: 67 04 98 2f cmpwi cr7,r24,1127 - 3a54: a8 30 01 67 oris r1,r24,12456 - 3a58: 00 02 00 00 attn - 3a5c: 00 00 00 04 .long 0x4000000 - 3a60: e0 2c c0 2d cmpwi cr3,r0,11488 - 3a64: 01 68 04 9c stbu r0,26625(r4) - 3a68: 2e c0 2e 01 .long 0x12ec02e - 3a6c: 68 04 98 2f cmpwi cr7,r24,1128 + 3a40: 3a 06 83 00 .long 0x83063a + 3a44: 84 00 1c 9f stbu r24,132(r28) + 3a48: 04 a8 3b c4 lfsu f1,-22524(r27) + 3a4c: 3b 06 83 00 .long 0x83063b + 3a50: 84 00 1c 9f stbu r24,132(r28) + 3a54: 04 ac 3f dc stfdu f1,-21500(r31) + 3a58: 3f 06 83 00 .long 0x83063f + 3a5c: 84 00 1c 9f stbu r24,132(r28) ms->mmiowb_pending = 0; - 3a70: a8 30 01 68 xori r1,r0,12456 - 3a74: 00 02 00 00 attn + 3a60: 00 02 00 00 attn + 3a64: 00 04 98 31 addic r12,r24,1024 mmiowb(); - 3a78: 00 00 00 00 .long 0x0 - 3a7c: 00 00 00 04 .long 0x4000000 - 3a80: e0 2c c0 2d cmpwi cr3,r0,11488 - 3a84: 04 91 e8 78 rldicr r8,r7,18,4 - 3a88: 9f 04 9c 2e cmpwi cr5,r28,1183 - 3a8c: c0 2e 04 91 stw r8,11968(r4) - 3a90: e8 78 9f 04 .long 0x49f78e8 - 3a94: 98 2f cc 2f cmpwi cr7,r12,12184 - 3a98: 04 91 e8 78 rldicr r8,r7,18,4 - 3a9c: 9f 04 cc 2f cmpwi cr7,r12,1183 + 3a68: a0 31 08 79 rldicl r8,r8,6,38 + 3a6c: 00 30 2e 08 tdlgti r14,12288 + 3a70: ff 1a 9f 04 .long 0x49f1aff + 3a74: e4 3f f4 3f addis r31,r20,16356 + 3a78: 08 79 00 30 addic r0,r0,30984 + 3a7c: 2e 08 ff 1a .long 0x1aff082e + 3a80: 9f 00 01 00 .long 0x1009f + 3a84: 04 ac 2c bc stmw r1,-21500(r12) + 3a88: 2c 02 34 9f stbu r25,556(r20) + 3a8c: 00 01 00 04 .long 0x4000100 } - 3aa0: 8b 30 01 55 rlwinm. r1,r8,6,2,5 - 3aa4: 04 8b 30 a8 lha r1,-29948(r16) + 3a90: ac 2c bc 2c cmpdi cr1,r28,11436 + 3a94: 01 6f 00 02 .long 0x2006f01 pr_err("KVM: L1 guest page shift (%d) less than our own (%d)\n", - 3aa8: 30 04 91 e8 ld r4,1072(r17) - 3aac: 78 9f 00 02 .long 0x2009f78 - ... - 3abc: 00 00 00 04 .long 0x4000000 - 3ac0: e0 2c e7 2c cmpdi cr1,r7,11488 + 3a98: 00 04 c0 2c cmpwi cr1,r0,1024 + 3a9c: e0 2c 01 6f xoris r1,r24,11488 + 3aa0: 00 00 04 04 .long 0x4040000 + return -EINVAL; + 3aa4: d0 2c d0 2c cmpwi cr1,r16,11472 + pr_err("KVM: L1 guest page shift (%d) less than our own (%d)\n", + 3aa8: 01 59 00 02 .long 0x2005901 + 3aac: 00 04 bc 2c cmpdi cr1,r28,1024 + 3ab0: c0 2c 02 35 addic. r8,r2,11456 return -EINVAL; - 3ac4: 01 55 04 e7 psq_lu f24,1281(r4),0,5 - 3ac8: 2c c0 2d 04 .long 0x42dc02c - 3acc: 91 f8 74 9f stbu r27,-1903(r20) - 3ad0: 04 9c 2e a8 lha r1,-25596(r14) - 3ad4: 2e 04 91 f8 stq r4,1068(r17) -{ - 3ad8: 74 9f 04 a8 lha r0,-24716(r4) - 3adc: 2e b7 2e 01 .long 0x12eb72e - 3ae0: 55 04 b7 2e cmpdi cr5,r23,1109 - 3ae4: c0 2e 04 91 stw r8,11968(r4) - 3ae8: f8 74 9f 04 .long 0x49f74f8 - 3aec: 98 2f a8 2f cmpdi cr7,r8,12184 + 3ab4: 9f 00 02 00 .long 0x2009f + 3ab8: 04 bc 2c c0 lfs f1,-17404(r12) + 3abc: 2c 01 6f 00 .long 0x6f012c + 3ac0: 02 00 00 00 .long 0x2 + 3ac4: 00 00 04 e0 lq r0,0(r4) +{ + 3ac8: 2c c0 2d 01 .long 0x12dc02c + 3acc: 67 04 9c 2e cmpwi cr5,r28,1127 + 3ad0: c0 2e 01 67 oris r1,r24,11968 + 3ad4: 04 98 2f a8 lha r1,-26620(r15) + 3ad8: 30 01 67 00 .long 0x670130 + 3adc: 02 00 00 00 .long 0x2 int ret = lpid + 1; - 3af0: 04 91 f8 74 andis. r24,r7,37124 + 3ae0: 00 00 04 e0 lq r0,0(r4) { - 3af4: 9f 04 a8 2f cmpdi cr7,r8,1183 - 3af8: b7 2f 01 55 rlwinm. r1,r8,5,30,27 - 3afc: 04 b7 2f a8 lha r1,-18684(r15) - 3b00: 30 04 91 f8 std r4,1072(r17) - 3b04: 74 9f 00 02 .long 0x2009f74 - 3b08: 00 00 00 00 .long 0x0 + 3ae4: 2c c0 2d 01 .long 0x12dc02c + 3ae8: 68 04 9c 2e cmpwi cr5,r28,1128 + 3aec: c0 2e 01 68 xori r1,r0,11968 + 3af0: 04 98 2f a8 lha r1,-26620(r15) + 3af4: 30 01 68 00 .long 0x680130 + 3af8: 02 00 00 00 .long 0x2 int ret = lpid + 1; - 3b0c: 00 04 e0 2c cmpdi cr1,r0,1024 - 3b10: c0 2d 01 6f xoris r1,r24,11712 - 3b14: 04 9c 2e c0 lfs f1,-25596(r14) + 3afc: 00 00 00 00 .long 0x0 + 3b00: 00 00 04 e0 lq r0,0(r4) + 3b04: 2c c0 2d 04 .long 0x42dc02c if (!idr_get_next(&kvm->arch.kvm_nested_guest_idr, &ret)) - 3b18: 2e 01 6f 04 .long 0x46f012e - 3b1c: 98 2f a8 30 addic r5,r8,12184 - 3b20: 01 6f 00 01 .long 0x1006f01 - 3b24: 06 04 f0 2c cmpdi cr1,r16,1030 - 3b28: f0 2c 01 6f xoris r1,r24,11504 - 3b2c: 00 03 06 04 .long 0x4060300 + 3b08: 91 e8 78 9f stbu r27,-5999(r24) + 3b0c: 04 9c 2e c0 lfs f1,-25596(r14) + 3b10: 2e 04 91 e8 lwa r4,1068(r17) + 3b14: 78 9f 04 98 stb r0,-24712(r4) + 3b18: 2f cc 2f 04 .long 0x42fcc2f + 3b1c: 91 e8 78 9f stbu r27,-5999(r24) if (unlikely(ms->mmiowb_pending)) { - 3b30: f0 2c f0 2c cmpdi cr1,r16,11504 + 3b20: 04 cc 2f 8b lbz r25,-13308(r15) struct mmiowb_state *ms = __mmiowb_state(); - 3b34: 01 6f 00 01 .long 0x1006f01 + 3b24: 30 01 55 04 .long 0x4550130 if (unlikely(ms->mmiowb_pending)) { - 3b38: 00 00 00 04 .long 0x4000000 - 3b3c: b0 2d c0 2d cmpwi cr3,r0,11696 + 3b28: 8b 30 a8 30 addic r5,r8,12427 + 3b2c: 04 91 e8 78 rldicr r8,r7,18,4 ms->nesting_count--; - 3b40: 01 59 04 98 stb r0,22785(r4) - 3b44: 2f a4 2f 01 .long 0x12fa42f - 3b48: 59 00 02 00 .long 0x20059 - 3b4c: 02 03 02 00 .long 0x20302 - 3b50: 00 00 04 c0 lfs f0,0(r4) - 3b54: 2d e0 2d 01 .long 0x12de02d -} - 3b58: 6f 04 c0 2e cmpwi cr5,r0,1135 - 3b5c: 90 2f 01 6f xoris r1,r24,12176 - 3b60: 04 a8 30 b8 lm r1,-22524(r16) - 3b64: 30 01 6f 04 .long 0x46f0130 + 3b30: 9f 00 02 00 .long 0x2009f + ... + 3b40: 00 00 04 e0 lq r0,0(r4) + 3b44: 2c e7 2c 01 .long 0x12ce72c +} + 3b48: 55 04 e7 2c cmpdi cr1,r7,1109 + 3b4c: c0 2d 04 91 stw r8,11712(r4) + 3b50: f8 74 9f 04 .long 0x49f74f8 + 3b54: 9c 2e a8 2e cmpdi cr5,r8,11932 return ret; - 3b68: f4 3f c0 40 bge- 7b5c + 3b58: 04 91 f8 74 andis. r24,r7,37124 } - 3b6c: 01 6f 00 00 .long 0x6f01 - 3b70: 00 00 03 04 .long 0x4030000 - 3b74: 00 00 00 04 .long 0x4000000 - 3b78: d0 2d df 2d cmpwi cr3,r31,11728 - 3b7c: 01 54 04 d0 stfs f0,21505(r4) - 3b80: 2e 90 2f 01 .long 0x12f902e - 3b84: 54 04 a8 30 addic r5,r8,1108 - 3b88: b7 30 01 54 rlwinm. r1,r0,6,2,27 - 3b8c: 04 f4 3f c0 lfs f1,-3068(r31) + 3b5c: 9f 04 a8 2e cmpdi cr5,r8,1183 + 3b60: b7 2e 01 55 rlwinm. r1,r8,5,26,27 + 3b64: 04 b7 2e c0 lfs f1,-18684(r14) + 3b68: 2e 04 91 f8 stq r4,1068(r17) + 3b6c: 74 9f 04 98 stb r0,-24716(r4) + 3b70: 2f a8 2f 04 .long 0x42fa82f + 3b74: 91 f8 74 9f stbu r27,-1903(r20) + 3b78: 04 a8 2f b7 sthu r25,-22524(r15) + 3b7c: 2f 01 55 04 .long 0x455012f if (unlikely(ms->mmiowb_pending)) { - 3b90: 40 01 54 00 .long 0x540140 + 3b80: b7 2f a8 30 addic r5,r8,12215 ret = -1; - 3b94: 00 00 00 03 .long 0x3000000 - 3b98: 04 00 00 00 .long 0x4 + 3b84: 04 91 f8 74 andis. r24,r7,37124 + 3b88: 9f 00 02 00 .long 0x2009f struct mmiowb_state *ms = __mmiowb_state(); - 3b9c: 04 d0 2d df stfdu f25,-12284(r13) + 3b8c: 00 00 00 00 .long 0x0 if (unlikely(ms->mmiowb_pending)) { - 3ba0: 2d 01 53 04 .long 0x453012d - 3ba4: d0 2e 90 2f cmpwi cr7,r16,11984 + 3b90: 04 e0 2c c0 lfs f1,-8188(r12) + 3b94: 2d 01 6f 04 .long 0x46f012d ms->mmiowb_pending = 0; - 3ba8: 01 53 04 a8 lha r0,21249(r4) - 3bac: 30 b7 30 01 .long 0x130b730 + 3b98: 9c 2e c0 2e cmpwi cr5,r0,11932 + 3b9c: 01 6f 04 98 stb r0,28417(r4) mmiowb(); - 3bb0: 53 04 f4 3f addis r31,r20,1107 - 3bb4: c0 40 01 53 rlwimi r1,r24,8,3,0 + 3ba0: 2f a8 30 01 .long 0x130a82f + 3ba4: 6f 00 01 06 .long 0x601006f } - 3bb8: 00 03 00 03 .long 0x3000300 - 3bbc: 00 07 00 00 .long 0x700 - 3bc0: 00 04 d0 2d cmpwi cr3,r16,1024 - 3bc4: d4 2d 0e 74 andis. r14,r0,11732 - 3bc8: 00 0c ff ff .long 0xffff0c00 - 3bcc: ff ff 1a 31 addic r8,r26,-1 - 3bd0: 2b 08 ff 1a .long 0x1aff082b - 3bd4: 9f 04 d0 2e cmpwi cr5,r16,1183 - 3bd8: 8c 2f 0e 74 andis. r14,r0,12172 - 3bdc: 00 0c ff ff .long 0xffff0c00 - 3be0: ff ff 1a 31 addic r8,r26,-1 - 3be4: 2b 08 ff 1a .long 0x1aff082b - 3be8: 9f 04 a8 30 addic r5,r8,1183 - 3bec: ac 30 0e 74 andis. r14,r0,12460 - 3bf0: 00 0c ff ff .long 0xffff0c00 - 3bf4: ff ff 1a 31 addic r8,r26,-1 - 3bf8: 2b 08 ff 1a .long 0x1aff082b - 3bfc: 9f 04 f4 3f addis r31,r20,1183 - 3c00: c0 40 0e 74 andis. r14,r0,16576 - 3c04: 00 0c ff ff .long 0xffff0c00 - 3c08: ff ff 1a 31 addic r8,r26,-1 - 3c0c: 2b 08 ff 1a .long 0x1aff082b - 3c10: 9f 00 02 00 .long 0x2009f - 3c14: 02 00 02 00 .long 0x20002 - 3c18: 00 00 00 00 .long 0x0 - 3c1c: 04 cc 3a e4 psq_lu f1,-1020(r26),1,4 - 3c20: 3a 01 6f 04 .long 0x46f013a - 3c24: f0 3b 8c 3c addis r4,r12,15344 - 3c28: 01 6f 04 e4 psq_lu f0,-255(r4),0,6 - 3c2c: 3d f4 3d 01 .long 0x13df43d - 3c30: 6f 04 dc 3f addis r30,r28,1135 - 3c34: e4 3f 01 6f xoris r1,r24,16356 - 3c38: 04 c0 40 cc .long 0xcc40c004 - 3c3c: 40 01 6f 00 .long 0x6f0140 - 3c40: 00 00 00 00 .long 0x0 - 3c44: 04 00 00 00 .long 0x4 - 3c48: 00 00 04 d8 stfd f0,0(r4) - 3c4c: 3a dc 3a 01 .long 0x13adc3a - 3c50: 54 04 80 3c lis r4,1108 - 3c54: 8c 3c 01 5a rlmi r1,r16,r7,18,6 - 3c58: 04 e4 3d e8 ld r1,-7164(r29) - 3c5c: 3d 01 5a 04 .long 0x45a013d - 3c60: dc 3f e4 3f addis r31,r4,16348 - 3c64: 01 5a 04 c0 lfs f0,23041(r4) - 3c68: 40 cc 40 01 .long 0x140cc40 - 3c6c: 54 00 00 00 .long 0x54 - 3c70: 00 00 04 00 .long 0x40000 - 3c74: 00 00 00 00 .long 0x0 - 3c78: 04 d8 3a e3 psq_l f25,-2044(r26),1,5 - 3c7c: 3a 01 53 04 .long 0x453013a - 3c80: 80 3c 8c 3c addis r4,r12,15488 - 3c84: 01 53 04 e4 psq_lu f0,769(r4),0,5 - 3c88: 3d f3 3d 01 .long 0x13df33d - 3c8c: 53 04 dc 3f addis r30,r28,1107 - 3c90: e4 3f 01 53 rlwimi r1,r24,7,31,18 - 3c94: 04 c0 40 cc .long 0xcc40c004 - 3c98: 40 01 53 00 .long 0x530140 - 3c9c: 03 00 03 00 .long 0x30003 - 3ca0: 07 00 00 00 .long 0x7 - 3ca4: 00 00 04 d8 stfd f0,0(r4) - 3ca8: 3a dc 3a 0e twi 17,r26,-9158 - 3cac: 74 00 0c ff .long 0xff0c0074 - 3cb0: ff ff ff 1a .long 0x1affffff - 3cb4: 31 2b 08 ff .long 0xff082b31 - 3cb8: 1a 9f 04 80 lwz r0,-24806(r4) - 3cbc: 3c 8c 3c 0e twi 17,r28,-29636 - 3cc0: 7a 00 0c ff fmadd f24,f12,f1,f0 - 3cc4: ff ff ff 1a .long 0x1affffff - 3cc8: 31 2b 08 ff .long 0xff082b31 - 3ccc: 1a 9f 04 e4 lxsd v0,-24808(r4) - 3cd0: 3d e8 3d 0e twi 17,r29,-6083 - 3cd4: 7a 00 0c ff fmadd f24,f12,f1,f0 - 3cd8: ff ff ff 1a .long 0x1affffff - 3cdc: 31 2b 08 ff .long 0xff082b31 - 3ce0: 1a 9f 04 dc stfdu f0,-24806(r4) - 3ce4: 3f e0 3f 0e twi 17,r31,-8129 - 3ce8: 7a 00 0c ff fmadd f24,f12,f1,f0 - 3cec: ff ff ff 1a .long 0x1affffff - 3cf0: 31 2b 08 ff .long 0xff082b31 - 3cf4: 1a 9f 04 c0 lfs f0,-24806(r4) - 3cf8: 40 cc 40 0e twi 18,r0,-13248 - 3cfc: 74 00 0c ff .long 0xff0c0074 - 3d00: ff ff ff 1a .long 0x1affffff - 3d04: 31 2b 08 ff .long 0xff082b31 - 3d08: 1a 9f 00 01 .long 0x1009f1a - 3d0c: 00 04 c0 30 addic r6,r0,1024 - 3d10: c4 30 01 6f xoris r1,r24,12484 - 3d14: 00 03 00 04 .long 0x4000300 - 3d18: c0 30 c4 30 addic r6,r4,12480 - 3d1c: 01 6f 00 02 .long 0x2006f01 - 3d20: 00 04 ec 33 addic r31,r12,1024 - 3d24: b4 35 04 91 stw r8,13748(r4) - 3d28: f0 76 9f 00 .long 0x9f76f0 - 3d2c: 01 00 04 ec .long 0xec040001 - 3d30: 33 b4 35 06 .long 0x635b433 - 3d34: a0 00 00 00 .long 0xa0 - 3d38: 00 00 00 01 .long 0x1000000 - 3d3c: 00 04 ec 33 addic r31,r12,1024 - 3d40: b4 35 04 91 stw r8,13748(r4) - 3d44: f8 74 9f 00 .long 0x9f74f8 - 3d48: 01 00 04 ec .long 0xec040001 - 3d4c: 33 b4 35 01 .long 0x135b433 - 3d50: 6f 00 03 00 .long 0x3006f - 3d54: 04 ec 33 e3 psq_l f25,-1020(r19),1,6 - 3d58: 34 01 5a 00 .long 0x5a0134 - 3d5c: 02 00 00 00 .long 0x2 - ... - 3d68: 04 cc 34 e8 ld r1,-13308(r20) - 3d6c: 3a 0a 10 80 lwz r0,2618(r16) - 3d70: 94 88 9c 80 lwz r4,-30572(r28) - 3d74: 80 80 38 9f stbu r25,-32640(r24) - 3d78: 04 a8 3b 8c lbzu r1,-22524(r27) - 3d7c: 3c 0a 10 80 lwz r0,2620(r16) - 3d80: 94 88 9c 80 lwz r4,-30572(r28) - 3d84: 80 80 38 9f stbu r25,-32640(r24) - 3d88: 04 8c 3d 98 stb r1,-29692(r29) - 3d8c: 3e 0a 10 80 lwz r0,2622(r16) - 3d90: 94 88 9c 80 lwz r4,-30572(r28) - 3d94: 80 80 38 9f stbu r25,-32640(r24) - 3d98: 04 c8 3e e4 psq_lu f1,-2044(r30),1,4 - 3d9c: 3f 0a 10 80 lwz r0,2623(r16) - 3da0: 94 88 9c 80 lwz r4,-30572(r28) - 3da4: 80 80 38 9f stbu r25,-32640(r24) - 3da8: 04 c0 40 cc .long 0xcc40c004 - 3dac: 40 0a 10 80 lwz r0,2624(r16) - 3db0: 94 88 9c 80 lwz r4,-30572(r28) - 3db4: 80 80 38 9f stbu r25,-32640(r24) - 3db8: 04 90 41 98 stb r2,-28668(r1) - 3dbc: 41 0a 10 80 lwz r0,2625(r16) - 3dc0: 94 88 9c 80 lwz r4,-30572(r28) - 3dc4: 80 80 38 9f stbu r25,-32640(r24) - 3dc8: 00 05 00 04 .long 0x4000500 - 3dcc: ec 33 cc 34 addic. r6,r12,13292 - 3dd0: 04 91 f8 74 andis. r24,r7,37124 - 3dd4: 9f 00 05 00 .long 0x5009f - 3dd8: 04 ec 33 cc lfdu f1,-5116(r19) - 3ddc: 34 01 6f 00 .long 0x6f0134 - 3de0: 07 00 04 ec dqua. f0,f4,f0,0 - 3de4: 33 cc 34 01 .long 0x134cc33 - 3de8: 5a 00 01 03 .long 0x301005a - 3dec: 04 dc 35 dc stfdu f1,-9212(r21) - 3df0: 35 01 53 00 .long 0x530135 - 3df4: 01 00 00 00 .long 0x1 - 3df8: 00 00 04 d8 stfd f0,0(r4) - 3dfc: 36 b0 37 04 .long 0x437b036 - 3e00: 91 f8 74 9f stbu r27,-1903(r20) - 3e04: 04 a8 3b c4 lfsu f1,-22524(r27) - 3e08: 3b 04 91 f8 .long 0xf891043b - 3e0c: 74 9f 04 ac lhau r0,-24716(r4) - 3e10: 3f dc 3f 04 .long 0x43fdc3f - 3e14: 91 f8 74 9f stbu r27,-1903(r20) - 3e18: 00 01 00 00 .long 0x100 - 3e1c: 00 00 00 04 .long 0x4000000 - 3e20: d8 36 b0 37 addic. r29,r16,14040 - 3e24: 01 6f 04 a8 lha r0,28417(r4) - 3e28: 3b c4 3b 01 .long 0x13bc43b - 3e2c: 6f 04 ac 3f addis r29,r12,1135 - 3e30: dc 3f 01 6f xoris r1,r24,16348 - 3e34: 00 03 00 00 .long 0x300 - 3e38: 00 00 00 04 .long 0x4000000 - 3e3c: d8 36 b0 37 addic. r29,r16,14040 - 3e40: 03 8f 98 3b addi r28,r24,-28925 - 3e44: 04 a8 3b c4 lfsu f1,-22524(r27) - 3e48: 3b 03 8f 98 stb r4,827(r15) - 3e4c: 3b 04 ac 3f addis r29,r12,1083 - 3e50: dc 3f 03 8f lbzu r24,16348(r3) - 3e54: 98 3b 00 01 .long 0x1003b98 - 3e58: 00 04 c8 38 addi r6,r8,1024 - 3e5c: ec 39 04 91 stw r8,14828(r4) - 3e60: f0 76 9f 00 .long 0x9f76f0 - 3e64: 01 00 04 c8 lfd f0,1(r4) - 3e68: 38 ec 39 01 .long 0x139ec38 - 3e6c: 6f 00 03 00 .long 0x3006f - 3e70: 04 c8 38 88 lbz r1,-14332(r24) - 3e74: 39 01 59 00 .long 0x590139 - 3e78: 01 06 04 8c lbzu r0,1537(r4) - 3e7c: 3a 8c 3a 01 .long 0x13a8c3a - 3e80: 6f 00 03 06 .long 0x603006f - 3e84: 04 8c 3a 8c lbzu r1,-29692(r26) - 3e88: 3a 01 6f 00 .long 0x6f013a - 3e8c: 01 04 04 9c stbu r0,1025(r4) - 3e90: 3a b8 3a 01 .long 0x13ab83a - 3e94: 6f 00 03 00 .long 0x3006f - 3e98: 00 00 04 9c stbu r0,0(r4) - 3e9c: 3a a4 3a 08 tdlgti r26,-23494 - 3ea0: 8f 00 06 23 subfic r24,r6,143 - 3ea4: b0 9a 01 9f stbu r24,-25936(r1) - 3ea8: 04 a4 3a ab lha r25,-23548(r26) - 3eac: 3a 01 53 00 .long 0x53013a - 3eb0: 00 04 04 b8 lm r0,1024(r4) - 3eb4: 3a b8 3a 01 .long 0x13ab83a - 3eb8: 54 00 06 00 .long 0x60054 - 3ebc: 00 00 00 00 .long 0x0 - 3ec0: 04 b8 3a cc lfdu f1,-18428(r26) - 3ec4: 3a 01 67 04 .long 0x467013a - 3ec8: c4 3b f0 3b addi r31,r16,15300 - 3ecc: 01 67 04 8c lbzu r0,26369(r4) - 3ed0: 3d e4 3d 01 .long 0x13de43d - 3ed4: 67 00 06 00 .long 0x60067 - 3ed8: 00 00 00 00 .long 0x0 - 3edc: 04 b8 3a cc lfdu f1,-18428(r26) - 3ee0: 3a 01 68 04 .long 0x468013a - 3ee4: c4 3b f0 3b addi r31,r16,15300 - 3ee8: 01 68 04 8c lbzu r0,26625(r4) - 3eec: 3d e4 3d 01 .long 0x13de43d - 3ef0: 68 00 06 00 .long 0x60068 - ... - 3efc: 04 b8 3a cc lfdu f1,-18428(r26) - 3f00: 3a 04 91 e8 lwa r4,1080(r17) - 3f04: 78 9f 04 c4 lfsu f0,-24712(r4) - 3f08: 3b f0 3b 04 .long 0x43bf03b - 3f0c: 91 e8 78 9f stbu r27,-5999(r24) - 3f10: 04 8c 3d b4 sthu r1,-29692(r29) - 3f14: 3d 04 91 e8 ldu r4,1084(r17) - 3f18: 78 9f 04 b4 sthu r0,-24712(r4) - 3f1c: 3d c7 3d 01 .long 0x13dc73d - 3f20: 55 04 c7 3d addis r14,r7,1109 - 3f24: e4 3d 04 91 stw r8,15844(r4) - 3f28: e8 78 9f 00 .long 0x9f78e8 - 3f2c: 06 00 00 00 .long 0x6 - ... - 3f38: 00 00 04 b8 lm r0,0(r4) - 3f3c: 3a cc 3a 04 .long 0x43acc3a - 3f40: 91 f8 74 9f stbu r27,-1903(r20) - 3f44: 04 c4 3b d8 stfd f1,-15356(r27) - 3f48: 3b 04 91 f8 .long 0xf891043b - 3f4c: 74 9f 04 d8 stfd f0,-24716(r4) - 3f50: 3b e7 3b 01 .long 0x13be73b - 3f54: 55 04 e7 3b addi r31,r7,1109 - 3f58: f0 3b 04 91 stw r8,15344(r4) - 3f5c: f8 74 9f 04 .long 0x49f74f8 - 3f60: 8c 3d 98 3d addis r12,r24,15756 - 3f64: 04 91 f8 74 andis. r24,r7,37124 - 3f68: 9f 04 98 3d addis r12,r24,1183 - 3f6c: a7 3d 01 55 rlwinm. r1,r8,7,22,19 - 3f70: 04 a7 3d e4 psq_lu f1,1796(r29),1,2 - 3f74: 3d 04 91 f8 stdu r4,1084(r17) - 3f78: 74 9f 00 06 .long 0x6009f74 - 3f7c: 00 00 00 00 .long 0x0 - 3f80: 00 04 b8 3a addi r21,r24,1024 - 3f84: cc 3a 01 6f xoris r1,r24,15052 - 3f88: 04 c4 3b f0 xsmaxcdp vs1,vs59,vs24 - 3f8c: 3b 01 6f 04 .long 0x46f013b - 3f90: 8c 3d e4 3d addis r15,r4,15756 - 3f94: 01 6f 00 09 tdgti r0,28417 - 3f98: 00 00 00 04 .long 0x4000000 - 3f9c: b8 3a cc 3a addi r22,r12,15032 - 3fa0: 01 59 04 8c lbzu r0,22785(r4) - 3fa4: 3d 94 3d 01 .long 0x13d943d - 3fa8: 59 00 01 06 .long 0x6010059 - 3fac: 04 f4 3c f4 psq_stu f1,1028(r28),1,7 - 3fb0: 3c 01 6f 00 .long 0x6f013c - 3fb4: 03 06 04 f4 stxssp v0,1536(r4) - 3fb8: 3c f4 3c 01 .long 0x13cf43c - 3fbc: 6f 00 01 00 .long 0x1006f - 3fc0: 04 f0 3e ac lhau r1,-4092(r30) - 3fc4: 3f 01 67 00 .long 0x67013f - 3fc8: 01 00 04 f0 xsaddsp vs32,vs4,vs0 - 3fcc: 3e ac 3f 01 .long 0x13fac3e - 3fd0: 6f 00 00 00 .long 0x6f - 3fd4: 04 c0 0b f0 xsaddsp vs0,vs43,vs24 - 3fd8: 0b 01 59 00 .long 0x59010b - 3fdc: 00 00 00 00 .long 0x0 - 3fe0: 00 00 04 00 .long 0x40000 - 3fe4: 1c 01 53 04 .long 0x453011c - 3fe8: 1c 20 03 73 andi. r3,r24,8220 - 3fec: 08 9f 04 20 subfic r0,r4,-24824 - 3ff0: 58 04 a3 01 .long 0x1a30458 - 3ff4: 53 9f 00 01 .long 0x1009f53 - 3ff8: 00 00 00 04 .long 0x4000000 - 3ffc: 00 1c 01 53 rlwimi r1,r24,3,16,0 - 4000: 04 1c 20 03 .long 0x3201c04 - 4004: 73 08 9f 00 .long 0x9f0873 - 4008: 00 00 04 e0 lq r0,0(r4) - 400c: 09 c8 0a 01 .long 0x10ac809 - 4010: 59 00 00 00 .long 0x59 - 4014: 00 00 00 00 .long 0x0 - 4018: 00 00 04 b8 lm r0,0(r4) - 401c: 06 8f 07 01 .long 0x1078f06 - 4020: 54 04 8f 07 .long 0x78f0454 - 4024: d0 08 01 6d xoris r1,r8,2256 - 4028: 04 d0 08 e0 lq r0,-12288(r8) - 402c: 08 04 a3 01 .long 0x1a30408 - 4030: 54 9f 04 e0 lq r0,-24752(r4) - 4034: 08 d0 09 01 .long 0x109d008 - 4038: 6d 00 00 00 .long 0x6d - 403c: 00 00 00 00 .long 0x0 - 4040: 00 00 04 b8 lm r0,0(r4) - 4044: 06 8f 07 01 .long 0x1078f06 - 4048: 55 04 8f 07 .long 0x78f0455 - 404c: cc 08 01 6c xoris r1,r0,2252 - 4050: 04 cc 08 e0 lq r0,-13312(r8) - 4054: 08 04 a3 01 .long 0x1a30408 - 4058: 55 9f 04 e0 lq r0,-24752(r4) - 405c: 08 d0 09 01 .long 0x109d008 - 4060: 6c 00 00 00 .long 0x6c - 4064: 00 00 00 00 .long 0x0 - 4068: 00 00 04 b8 lm r0,0(r4) - 406c: 06 8f 07 01 .long 0x1078f06 - 4070: 56 04 8f 07 .long 0x78f0456 - 4074: d4 08 01 6e xoris r1,r16,2260 - 4078: 04 d4 08 e0 lq r0,-11264(r8) - 407c: 08 04 a3 01 .long 0x1a30408 - 4080: 56 9f 04 e0 lq r0,-24752(r4) - 4084: 08 d0 09 01 .long 0x109d008 - 4088: 6e 00 01 00 .long 0x1006e - 408c: 00 00 00 00 .long 0x0 - 4090: 04 84 07 8f lbzu r24,-31740(r7) - 4094: 07 01 53 04 .long 0x4530107 - 4098: 8f 07 d8 08 tdllei r24,1935 - 409c: 01 6f 04 e0 lq r0,28416(r4) - 40a0: 08 d0 09 01 .long 0x109d008 - 40a4: 6f 00 02 00 .long 0x2006f - 40a8: 00 01 00 00 .long 0x100 - 40ac: 04 84 07 f4 psq_stu f0,1028(r7),1,0 - 40b0: 07 02 30 9f stbu r25,519(r16) - 40b4: 04 e0 08 8c lbzu r0,-8188(r8) - 40b8: 09 02 30 9f stbu r25,521(r16) - 40bc: 04 ac 09 c8 lfd f0,-21500(r9) - 40c0: 09 02 30 9f stbu r25,521(r16) - 40c4: 00 01 00 00 .long 0x100 - 40c8: 00 00 00 00 .long 0x0 - 40cc: 00 04 c8 07 .long 0x7c80400 - 40d0: f4 07 01 53 rlwimi r1,r24,0,31,26 - 40d4: 04 e0 08 84 lwzu r0,-8188(r8) - 40d8: 09 01 53 04 .long 0x4530109 - 40dc: 84 09 8b 09 tdgei r11,2436 - 40e0: 01 54 04 ac lhau r0,21505(r4) - 40e4: 09 c8 09 02 .long 0x209c809 - 40e8: 30 9f 00 00 .long 0x9f30 - 40ec: 00 04 84 07 .long 0x7840400 - 40f0: d0 09 06 fa std r16,2512(r6) - 40f4: 04 44 01 00 .long 0x14404 - 40f8: 9f 00 01 00 .long 0x1009f - 40fc: 00 00 04 88 lbz r0,0(r4) - 4100: 07 8f 07 01 .long 0x1078f07 - 4104: 53 04 8f 07 .long 0x78f0453 - 4108: 90 07 01 6f xoris r1,r24,1936 - 410c: 00 02 00 00 attn - 4110: 00 00 01 04 .long 0x4010000 - 4114: 90 07 b4 07 .long 0x7b40790 - 4118: 03 91 54 9f stbu r26,-28413(r20) - 411c: 04 b4 07 bf stmw r24,-19452(r7) - 4120: 07 01 56 04 .long 0x4560107 - 4124: bf 07 c8 07 .long 0x7c807bf - 4128: 03 91 54 9f stbu r26,-28413(r20) - 412c: 00 02 01 04 .long 0x4010200 - 4130: 90 07 c8 07 .long 0x7c80790 - 4134: 01 6c 00 02 .long 0x2006c01 - 4138: 00 00 00 04 .long 0x4000000 - 413c: 90 07 94 07 .long 0x7940790 - 4140: 0b 8d 08 94 stwu r0,-29429(r8) - 4144: 04 08 20 24 dozi r1,r0,2052 - 4148: 08 20 26 9f stbu r25,8200(r6) - 414c: 04 94 07 9f stbu r24,-27644(r7) - 4150: 07 01 54 00 .long 0x540107 - 4154: 02 01 04 90 stw r0,258(r4) - 4158: 07 c8 07 01 .long 0x107c807 - 415c: 6f 00 00 00 .long 0x6f - 4160: 00 00 04 a0 lhz r0,0(r4) - 4164: 07 ac 07 01 .long 0x107ac07 - 4168: 53 04 ac 09 tdi 13,r12,1107 - 416c: c8 09 01 53 rlwimi r1,r24,1,7,4 - 4170: 00 00 01 04 .long 0x4010000 - 4174: c8 07 c8 07 .long 0x7c807c8 - 4178: 01 53 00 06 .long 0x6005301 - 417c: 00 04 90 07 .long 0x7900400 - 4180: 9f 07 02 8d lbzu r8,1951(r2) - 4184: 08 00 06 00 .long 0x60008 - 4188: 04 90 07 a0 lhz r0,-28668(r7) + 3ba8: 04 f0 2c f0 xsaddsp vs1,vs44,vs30 + 3bac: 2c 01 6f 00 .long 0x6f012c + 3bb0: 03 06 04 f0 xvmaxsp vs32,vs4,vs32 + 3bb4: 2c f0 2c 01 .long 0x12cf02c + 3bb8: 6f 00 01 00 .long 0x1006f + 3bbc: 00 00 04 b0 sth r0,0(r4) + 3bc0: 2d c0 2d 01 .long 0x12dc02d + 3bc4: 59 04 98 2f cmpwi cr7,r24,1113 + 3bc8: a4 2f 01 59 rlmi r1,r8,r5,30,18 + 3bcc: 00 02 00 02 attn + 3bd0: 03 02 00 00 .long 0x203 + 3bd4: 00 04 c0 2d cmpwi cr3,r0,1024 + 3bd8: e0 2d 01 6f xoris r1,r24,11744 + 3bdc: 04 c0 2e 90 stw r1,-16380(r14) + 3be0: 2f 01 6f 04 .long 0x46f012f + 3be4: a8 30 b8 30 addic r5,r24,12456 + 3be8: 01 6f 04 f4 lxv vs0,28416(r4) + 3bec: 3f c0 40 01 .long 0x140c03f + 3bf0: 6f 00 00 00 .long 0x6f + 3bf4: 00 03 04 00 .long 0x40300 + 3bf8: 00 00 04 d0 stfs f0,0(r4) + 3bfc: 2d df 2d 01 .long 0x12ddf2d + 3c00: 54 04 d0 2e cmpwi cr5,r16,1108 + 3c04: 90 2f 01 54 rlwinm r1,r0,5,30,8 + 3c08: 04 a8 30 b7 sthu r25,-22524(r16) + 3c0c: 30 01 54 04 .long 0x4540130 + 3c10: f4 3f c0 40 bge- 7c04 + 3c14: 01 54 00 00 .long 0x5401 + 3c18: 00 00 03 04 .long 0x4030000 + 3c1c: 00 00 00 04 .long 0x4000000 + 3c20: d0 2d df 2d cmpwi cr3,r31,11728 + 3c24: 01 53 04 d0 stfs f0,21249(r4) + 3c28: 2e 90 2f 01 .long 0x12f902e + 3c2c: 53 04 a8 30 addic r5,r8,1107 + 3c30: b7 30 01 53 rlwimi. r1,r24,6,2,27 + 3c34: 04 f4 3f c0 lfs f1,-3068(r31) + 3c38: 40 01 53 00 .long 0x530140 + 3c3c: 03 00 03 00 .long 0x30003 + 3c40: 07 00 00 00 .long 0x7 + 3c44: 04 d0 2d d4 stfsu f1,-12284(r13) + 3c48: 2d 0e 74 00 .long 0x740e2d + 3c4c: 0c ff ff ff .long 0xffffff0c + 3c50: ff 1a 31 2b cmpldi cr6,r17,6911 + 3c54: 08 ff 1a 9f stbu r24,-248(r26) + 3c58: 04 d0 2e 8c lbzu r1,-12284(r14) + 3c5c: 2f 0e 74 00 .long 0x740e2f + 3c60: 0c ff ff ff .long 0xffffff0c + 3c64: ff 1a 31 2b cmpldi cr6,r17,6911 + 3c68: 08 ff 1a 9f stbu r24,-248(r26) + 3c6c: 04 a8 30 ac lhau r1,-22524(r16) + 3c70: 30 0e 74 00 .long 0x740e30 + 3c74: 0c ff ff ff .long 0xffffff0c + 3c78: ff 1a 31 2b cmpldi cr6,r17,6911 + 3c7c: 08 ff 1a 9f stbu r24,-248(r26) + 3c80: 04 f4 3f c0 lfs f1,-3068(r31) + 3c84: 40 0e 74 00 .long 0x740e40 + 3c88: 0c ff ff ff .long 0xffffff0c + 3c8c: ff 1a 31 2b cmpldi cr6,r17,6911 + 3c90: 08 ff 1a 9f stbu r24,-248(r26) + 3c94: 00 02 00 02 attn + 3c98: 00 02 00 00 attn + 3c9c: 00 00 00 04 .long 0x4000000 + 3ca0: cc 3a e4 3a addi r23,r4,15052 + 3ca4: 01 6f 04 f0 xvmaxdp vs32,vs4,vs13 + 3ca8: 3b 8c 3c 01 .long 0x13c8c3b + 3cac: 6f 04 e4 3d addis r15,r4,1135 + 3cb0: f4 3d 01 6f xoris r1,r24,15860 + 3cb4: 04 dc 3f e4 psq_lu f1,-1020(r31),1,5 + 3cb8: 3f 01 6f 04 .long 0x46f013f + 3cbc: c0 40 cc 40 bge- cr3,7d7c + 3cc0: 01 6f 00 00 .long 0x6f01 + 3cc4: 00 00 00 04 .long 0x4000000 + 3cc8: 00 00 00 00 .long 0x0 + 3ccc: 00 04 d8 3a addi r22,r24,1024 + 3cd0: dc 3a 01 54 rlwinm r1,r0,7,11,14 + 3cd4: 04 80 3c 8c lbzu r1,-32764(r28) + 3cd8: 3c 01 5a 04 .long 0x45a013c + 3cdc: e4 3d e8 3d addis r15,r8,15844 + 3ce0: 01 5a 04 dc stfdu f0,23041(r4) + 3ce4: 3f e4 3f 01 .long 0x13fe43f + 3ce8: 5a 04 c0 40 bgea- 458 <.debug_loclists+0x458> + 3cec: cc 40 01 54 rlwinm r1,r0,8,3,6 + 3cf0: 00 00 00 00 .long 0x0 + 3cf4: 00 04 00 00 .long 0x400 + 3cf8: 00 00 00 04 .long 0x4000000 + 3cfc: d8 3a e3 3a addi r23,r3,15064 + 3d00: 01 53 04 80 lwz r0,21249(r4) + 3d04: 3c 8c 3c 01 .long 0x13c8c3c + 3d08: 53 04 e4 3d addis r15,r4,1107 + 3d0c: f3 3d 01 53 rlwimi. r1,r24,7,23,25 + 3d10: 04 dc 3f e4 psq_lu f1,-1020(r31),1,5 + 3d14: 3f 01 53 04 .long 0x453013f + 3d18: c0 40 cc 40 bge- cr3,7dd8 + 3d1c: 01 53 00 03 .long 0x3005301 + 3d20: 00 03 00 07 .long 0x7000300 + 3d24: 00 00 00 00 .long 0x0 + 3d28: 00 04 d8 3a addi r22,r24,1024 + 3d2c: dc 3a 0e 74 andis. r14,r0,15068 + 3d30: 00 0c ff ff .long 0xffff0c00 + 3d34: ff ff 1a 31 addic r8,r26,-1 + 3d38: 2b 08 ff 1a .long 0x1aff082b + 3d3c: 9f 04 80 3c lis r4,1183 + 3d40: 8c 3c 0e 7a rldimi r14,r16,7,18 + 3d44: 00 0c ff ff .long 0xffff0c00 + 3d48: ff ff 1a 31 addic r8,r26,-1 + 3d4c: 2b 08 ff 1a .long 0x1aff082b + 3d50: 9f 04 e4 3d addis r15,r4,1183 + 3d54: e8 3d 0e 7a rldic r14,r16,7,55 + 3d58: 00 0c ff ff .long 0xffff0c00 + 3d5c: ff ff 1a 31 addic r8,r26,-1 + 3d60: 2b 08 ff 1a .long 0x1aff082b + 3d64: 9f 04 dc 3f addis r30,r28,1183 + 3d68: e0 3f 0e 7a rldicl r14,r16,7,63 + 3d6c: 00 0c ff ff .long 0xffff0c00 + 3d70: ff ff 1a 31 addic r8,r26,-1 + 3d74: 2b 08 ff 1a .long 0x1aff082b + 3d78: 9f 04 c0 40 bgela- 49c <.debug_loclists+0x49c> + 3d7c: cc 40 0e 74 andis. r14,r0,16588 + 3d80: 00 0c ff ff .long 0xffff0c00 + 3d84: ff ff 1a 31 addic r8,r26,-1 + 3d88: 2b 08 ff 1a .long 0x1aff082b + 3d8c: 9f 00 01 00 .long 0x1009f + 3d90: 04 c0 30 c4 lfsu f1,-16380(r16) + 3d94: 30 01 6f 00 .long 0x6f0130 + 3d98: 03 00 04 c0 lfs f0,3(r4) + 3d9c: 30 c4 30 01 .long 0x130c430 + 3da0: 6f 00 02 00 .long 0x2006f + 3da4: 04 ec 33 b4 sthu r1,-5116(r19) + 3da8: 35 04 91 f0 xxsel vs36,vs49,vs0,vs16 + 3dac: 76 9f 00 01 .long 0x1009f76 + 3db0: 00 04 ec 33 addic r31,r12,1024 + 3db4: b4 35 06 a0 lhz r0,13748(r6) + 3db8: 00 00 00 00 .long 0x0 + 3dbc: 00 00 01 00 .long 0x10000 + 3dc0: 04 ec 33 b4 sthu r1,-5116(r19) + 3dc4: 35 04 91 f8 stdu r4,1076(r17) + 3dc8: 74 9f 00 01 .long 0x1009f74 + 3dcc: 00 04 ec 33 addic r31,r12,1024 + 3dd0: b4 35 01 6f xoris r1,r24,13748 + 3dd4: 00 03 00 04 .long 0x4000300 + 3dd8: ec 33 e3 34 addic. r7,r3,13292 + 3ddc: 01 5a 00 02 .long 0x2005a01 + ... + 3de8: 00 00 00 04 .long 0x4000000 + 3dec: cc 34 e8 3a addi r23,r8,13516 + 3df0: 0a 10 80 94 stu r4,4106(0) + 3df4: 88 9c 80 80 lwz r4,-25464(0) + 3df8: 80 38 9f 04 .long 0x49f3880 + 3dfc: a8 3b 8c 3c addis r4,r12,15272 + 3e00: 0a 10 80 94 stu r4,4106(0) + 3e04: 88 9c 80 80 lwz r4,-25464(0) + 3e08: 80 38 9f 04 .long 0x49f3880 + 3e0c: 8c 3d 98 3e addis r20,r24,15756 + 3e10: 0a 10 80 94 stu r4,4106(0) + 3e14: 88 9c 80 80 lwz r4,-25464(0) + 3e18: 80 38 9f 04 .long 0x49f3880 + 3e1c: c8 3e e4 3f addis r31,r4,16072 + 3e20: 0a 10 80 94 stu r4,4106(0) + 3e24: 88 9c 80 80 lwz r4,-25464(0) + 3e28: 80 38 9f 04 .long 0x49f3880 + 3e2c: c0 40 cc 40 bge- cr3,7eec + 3e30: 0a 10 80 94 stu r4,4106(0) + 3e34: 88 9c 80 80 lwz r4,-25464(0) + 3e38: 80 38 9f 04 .long 0x49f3880 + 3e3c: 90 41 98 41 blt cr6,7fcc + 3e40: 0a 10 80 94 stu r4,4106(0) + 3e44: 88 9c 80 80 lwz r4,-25464(0) + 3e48: 80 38 9f 00 .long 0x9f3880 + 3e4c: 05 00 04 ec dadd. f0,f4,f0 + 3e50: 33 cc 34 04 .long 0x434cc33 + 3e54: 91 f8 74 9f stbu r27,-1903(r20) + 3e58: 00 05 00 04 .long 0x4000500 + 3e5c: ec 33 cc 34 addic. r6,r12,13292 + 3e60: 01 6f 00 07 .long 0x7006f01 + 3e64: 00 04 ec 33 addic r31,r12,1024 + 3e68: cc 34 01 5a rlmi r1,r16,r6,19,6 + 3e6c: 00 01 03 04 .long 0x4030100 + 3e70: dc 35 dc 35 addic. r14,r28,13788 + 3e74: 01 53 00 01 .long 0x1005301 + 3e78: 00 00 00 00 .long 0x0 + 3e7c: 00 04 d8 36 addic. r22,r24,1024 + 3e80: b0 37 04 91 stw r8,14256(r4) + 3e84: f8 74 9f 04 .long 0x49f74f8 + 3e88: a8 3b c4 3b addi r30,r4,15272 + 3e8c: 04 91 f8 74 andis. r24,r7,37124 + 3e90: 9f 04 ac 3f addis r29,r12,1183 + 3e94: dc 3f 04 91 stw r8,16348(r4) + 3e98: f8 74 9f 00 .long 0x9f74f8 + 3e9c: 01 00 00 00 .long 0x1 + 3ea0: 00 00 04 d8 stfd f0,0(r4) + 3ea4: 36 b0 37 01 .long 0x137b036 + 3ea8: 6f 04 a8 3b addi r29,r8,1135 + 3eac: c4 3b 01 6f xoris r1,r24,15300 + 3eb0: 04 ac 3f dc stfdu f1,-21500(r31) + 3eb4: 3f 01 6f 00 .long 0x6f013f + 3eb8: 03 00 00 00 .long 0x3 + 3ebc: 00 00 04 d8 stfd f0,0(r4) + 3ec0: 36 b0 37 03 .long 0x337b036 + 3ec4: 8f 98 3b 04 .long 0x43b988f + 3ec8: a8 3b c4 3b addi r30,r4,15272 + 3ecc: 03 8f 98 3b addi r28,r24,-28925 + 3ed0: 04 ac 3f dc stfdu f1,-21500(r31) + 3ed4: 3f 03 8f 98 stb r4,831(r15) + 3ed8: 3b 00 01 00 .long 0x1003b + 3edc: 04 c8 38 ec dadd f1,f24,f25 + 3ee0: 39 04 91 f0 xxsel vs36,vs17,vs0,vs48 + 3ee4: 76 9f 00 01 .long 0x1009f76 + 3ee8: 00 04 c8 38 addi r6,r8,1024 + 3eec: ec 39 01 6f xoris r1,r24,14828 + 3ef0: 00 03 00 04 .long 0x4000300 + 3ef4: c8 38 88 39 addi r12,r8,14536 + 3ef8: 01 59 00 01 .long 0x1005901 + 3efc: 06 04 8c 3a addi r20,r12,1030 + 3f00: 8c 3a 01 6f xoris r1,r24,14988 + 3f04: 00 03 06 04 .long 0x4060300 + 3f08: 8c 3a 8c 3a addi r20,r12,14988 + 3f0c: 01 6f 00 01 .long 0x1006f01 + 3f10: 04 04 9c 3a addi r20,r28,1028 + 3f14: b8 3a 01 6f xoris r1,r24,15032 + 3f18: 00 03 00 00 .long 0x300 + 3f1c: 00 04 9c 3a addi r20,r28,1024 + 3f20: a4 3a 08 8f lbzu r24,15012(r8) + 3f24: 00 06 23 b0 sth r1,1536(r3) + 3f28: 9a 01 9f 04 .long 0x49f019a + 3f2c: a4 3a ab 3a addi r21,r11,15012 + 3f30: 01 53 00 00 .long 0x5301 + 3f34: 04 04 b8 3a addi r21,r24,1028 + 3f38: b8 3a 01 54 rlwinm r1,r0,7,10,28 + 3f3c: 00 06 00 00 .long 0x600 + 3f40: 00 00 00 04 .long 0x4000000 + 3f44: b8 3a cc 3a addi r22,r12,15032 + 3f48: 01 67 04 c4 lfsu f0,26369(r4) + 3f4c: 3b f0 3b 01 .long 0x13bf03b + 3f50: 67 04 8c 3d addis r12,r12,1127 + 3f54: e4 3d 01 67 oris r1,r24,15844 + 3f58: 00 06 00 00 .long 0x600 + 3f5c: 00 00 00 04 .long 0x4000000 + 3f60: b8 3a cc 3a addi r22,r12,15032 + 3f64: 01 68 04 c4 lfsu f0,26625(r4) + 3f68: 3b f0 3b 01 .long 0x13bf03b + 3f6c: 68 04 8c 3d addis r12,r12,1128 + 3f70: e4 3d 01 68 xori r1,r0,15844 + 3f74: 00 06 00 00 .long 0x600 + 3f78: 00 00 00 00 .long 0x0 + 3f7c: 00 00 00 04 .long 0x4000000 + 3f80: b8 3a cc 3a addi r22,r12,15032 + 3f84: 04 91 e8 78 rldicr r8,r7,18,4 + 3f88: 9f 04 c4 3b addi r30,r4,1183 + 3f8c: f0 3b 04 91 stw r8,15344(r4) + 3f90: e8 78 9f 04 .long 0x49f78e8 + 3f94: 8c 3d b4 3d addis r13,r20,15756 + 3f98: 04 91 e8 78 rldicr r8,r7,18,4 + 3f9c: 9f 04 b4 3d addis r13,r20,1183 + 3fa0: c7 3d 01 55 rlwinm. r1,r8,7,23,3 + 3fa4: 04 c7 3d e4 psq_lu f1,1796(r29),1,4 + 3fa8: 3d 04 91 e8 ldu r4,1084(r17) + 3fac: 78 9f 00 06 .long 0x6009f78 + ... + 3fbc: 00 04 b8 3a addi r21,r24,1024 + 3fc0: cc 3a 04 91 stw r8,15052(r4) + 3fc4: f8 74 9f 04 .long 0x49f74f8 + 3fc8: c4 3b d8 3b addi r30,r24,15300 + 3fcc: 04 91 f8 74 andis. r24,r7,37124 + 3fd0: 9f 04 d8 3b addi r30,r24,1183 + 3fd4: e7 3b 01 55 rlwinm. r1,r8,7,15,19 + 3fd8: 04 e7 3b f0 xvmaxdp vs1,vs59,vs28 + 3fdc: 3b 04 91 f8 .long 0xf891043b + 3fe0: 74 9f 04 8c lbzu r0,-24716(r4) + 3fe4: 3d 98 3d 04 .long 0x43d983d + 3fe8: 91 f8 74 9f stbu r27,-1903(r20) + 3fec: 04 98 3d a7 lhzu r25,-26620(r29) + 3ff0: 3d 01 55 04 .long 0x455013d + 3ff4: a7 3d e4 3d addis r15,r4,15783 + 3ff8: 04 91 f8 74 andis. r24,r7,37124 + 3ffc: 9f 00 06 00 .long 0x6009f + 4000: 00 00 00 00 .long 0x0 + 4004: 04 b8 3a cc lfdu f1,-18428(r26) + 4008: 3a 01 6f 04 .long 0x46f013a + 400c: c4 3b f0 3b addi r31,r16,15300 + 4010: 01 6f 04 8c lbzu r0,28417(r4) + 4014: 3d e4 3d 01 .long 0x13de43d + 4018: 6f 00 09 00 .long 0x9006f + 401c: 00 00 04 b8 lm r0,0(r4) + 4020: 3a cc 3a 01 .long 0x13acc3a + 4024: 59 04 8c 3d addis r12,r12,1113 + 4028: 94 3d 01 59 rlmi r1,r8,r7,22,10 + 402c: 00 01 06 04 .long 0x4060100 + 4030: f4 3c f4 3c addis r7,r20,15604 + 4034: 01 6f 00 03 .long 0x3006f01 + 4038: 06 04 f4 3c addis r7,r20,1030 + 403c: f4 3c 01 6f xoris r1,r24,15604 + 4040: 00 01 00 04 .long 0x4000100 + 4044: f0 3e ac 3f addis r29,r12,16112 + 4048: 01 67 00 01 .long 0x1006701 + 404c: 00 04 f0 3e addis r23,r16,1024 + 4050: ac 3f 01 6f xoris r1,r24,16300 + 4054: 00 00 00 04 .long 0x4000000 + 4058: c0 0b f0 0b tdui r16,3008 + 405c: 01 59 00 00 .long 0x5901 + 4060: 00 00 00 00 .long 0x0 + 4064: 00 04 00 1c mulli r0,r0,1024 + 4068: 01 53 04 1c mulli r0,r4,21249 + 406c: 20 03 73 08 tdi 3,r19,800 + 4070: 9f 04 20 58 rlmi. r0,r1,r0,18,15 + 4074: 04 a3 01 53 rlwimi r1,r24,20,12,2 + 4078: 9f 00 01 00 .long 0x1009f + 407c: 00 00 04 00 .long 0x40000 + 4080: 1c 01 53 04 .long 0x453011c + 4084: 1c 20 03 73 andi. r3,r24,8220 + 4088: 08 9f 00 00 .long 0x9f08 + 408c: 00 04 e0 09 tdi 15,r0,1024 + 4090: c8 0a 01 59 rlmi r1,r8,r1,11,4 + ... + 409c: 00 04 b8 06 .long 0x6b80400 + 40a0: 8f 07 01 54 rlwinm. r1,r0,0,30,7 + 40a4: 04 8f 07 d0 stfs f0,-28924(r7) + 40a8: 08 01 6d 04 .long 0x46d0108 + 40ac: d0 08 e0 08 tdi 7,r0,2256 + 40b0: 04 a3 01 54 rlwinm r1,r0,20,12,2 + 40b4: 9f 04 e0 08 tdi 7,r0,1183 + 40b8: d0 09 01 6d xoris r1,r8,2512 + ... + 40c4: 00 04 b8 06 .long 0x6b80400 + 40c8: 8f 07 01 55 rlwinm. r1,r8,0,30,7 + 40cc: 04 8f 07 cc lfdu f0,-28924(r7) + 40d0: 08 01 6c 04 .long 0x46c0108 + 40d4: cc 08 e0 08 tdi 7,r0,2252 + 40d8: 04 a3 01 55 rlwinm r1,r8,20,12,2 + 40dc: 9f 04 e0 08 tdi 7,r0,1183 + 40e0: d0 09 01 6c xoris r1,r0,2512 + ... + 40ec: 00 04 b8 06 .long 0x6b80400 + 40f0: 8f 07 01 56 rlwinm. r1,r16,0,30,7 + 40f4: 04 8f 07 d4 stfsu f0,-28924(r7) + 40f8: 08 01 6e 04 .long 0x46e0108 + 40fc: d4 08 e0 08 tdi 7,r0,2260 + 4100: 04 a3 01 56 rlwinm r1,r16,20,12,2 + 4104: 9f 04 e0 08 tdi 7,r0,1183 + 4108: d0 09 01 6e xoris r1,r16,2512 + 410c: 00 01 00 00 .long 0x100 + 4110: 00 00 00 04 .long 0x4000000 + 4114: 84 07 8f 07 .long 0x78f0784 + 4118: 01 53 04 8f lbzu r24,21249(r4) + 411c: 07 d8 08 01 .long 0x108d807 + 4120: 6f 04 e0 08 tdi 7,r0,1135 + 4124: d0 09 01 6f xoris r1,r24,2512 + 4128: 00 02 00 00 attn + 412c: 01 00 00 04 .long 0x4000001 + 4130: 84 07 f4 07 .long 0x7f40784 + 4134: 02 30 9f 04 .long 0x49f3002 + 4138: e0 08 8c 09 tdgei r12,2272 + 413c: 02 30 9f 04 .long 0x49f3002 + 4140: ac 09 c8 09 tdi 14,r8,2476 + 4144: 02 30 9f 00 .long 0x9f3002 + 4148: 01 00 00 00 .long 0x1 + 414c: 00 00 00 00 .long 0x0 + 4150: 04 c8 07 f4 psq_stu f0,-2044(r7),1,4 + 4154: 07 01 53 04 .long 0x4530107 + 4158: e0 08 84 09 tdgei r4,2272 + 415c: 01 53 04 84 lwzu r0,21249(r4) + 4160: 09 8b 09 01 .long 0x1098b09 + 4164: 54 04 ac 09 tdi 13,r12,1108 + 4168: c8 09 02 30 addic r0,r2,2504 + 416c: 9f 00 00 00 .long 0x9f + 4170: 04 84 07 d0 stfs f0,-31740(r7) + 4174: 09 06 fa 04 .long 0x4fa0609 + 4178: 44 01 00 9f .long 0x9f000144 + 417c: 00 01 00 00 .long 0x100 + 4180: 00 04 88 07 .long 0x7880400 + 4184: 8f 07 01 53 rlwimi. r1,r24,0,30,7 + 4188: 04 8f 07 90 stw r0,-28924(r7) 418c: 07 01 6f 00 .long 0x6f0107 - 4190: 00 01 04 dc stfdu f0,256(r4) - 4194: 07 e8 07 03 .long 0x307e807 - 4198: 59 93 08 00 .long 0x89359 - 419c: 01 09 02 00 .long 0x20901 - 41a0: 04 f4 07 9c stbu r0,-3068(r7) - 41a4: 08 01 6f 04 .long 0x46f0108 - 41a8: 8c 09 ac 09 tdi 13,r12,2444 - 41ac: 01 6f 00 03 .long 0x3006f01 - 41b0: 09 04 00 04 .long 0x4000409 - 41b4: f4 07 9c 08 tdeqi r28,2036 - 41b8: 01 6f 04 8c lbzu r0,28417(r4) - 41bc: 09 ac 09 01 .long 0x109ac09 - 41c0: 6f 00 08 07 .long 0x708006f - 41c4: 09 00 04 f4 lxv vs32,0(r4) - 41c8: 07 9c 08 01 .long 0x1089c07 - 41cc: 6f 04 8c 09 tdgei r12,1135 - 41d0: ac 09 01 6f xoris r1,r24,2476 - 41d4: 00 00 00 00 .long 0x0 - 41d8: 00 04 fc 07 .long 0x7fc0400 - 41dc: 84 08 04 79 rldicr r4,r8,1,2 - 41e0: 80 19 9f 04 .long 0x49f1980 - 41e4: 94 09 9c 09 tdgei r28,2452 - 41e8: 04 79 80 19 .long 0x19807904 - 41ec: 9f 00 01 05 .long 0x501009f - 41f0: 04 90 08 9c stbu r0,-28668(r8) - 41f4: 08 01 6f 00 .long 0x6f0108 - ... - 4200: 04 d8 0f 83 lwz r24,-10236(r15) - 4204: 10 01 53 04 .long 0x4530110 - 4208: 83 10 94 10 .long 0x10941083 - 420c: 04 a3 01 53 rlwimi r1,r24,20,12,2 - 4210: 9f 04 94 10 vextddvrx v4,v20,v0,r18 - 4214: c3 10 01 53 rlwimi. r1,r24,2,3,1 - 4218: 04 c3 10 c4 lfsu f0,-15612(r16) - 421c: 10 04 a3 01 .long 0x1a30410 - 4220: 53 9f 00 00 .long 0x9f53 - 4224: 00 00 00 00 .long 0x0 - 4228: 00 00 00 04 .long 0x4000000 - 422c: d8 0f 83 10 vextdubvlx v4,v3,v1,r31 - 4230: 01 54 04 83 lwz r24,21505(r4) - 4234: 10 94 10 04 .long 0x4109410 - 4238: a3 01 54 9f stbu r26,419(r20) - 423c: 04 94 10 c3 lfs f24,-27644(r16) - 4240: 10 01 54 04 .long 0x4540110 - 4244: c3 10 c4 10 .long 0x10c410c3 - 4248: 04 a3 01 54 rlwinm r1,r0,20,12,2 - 424c: 9f 00 00 00 .long 0x9f - 4250: 00 00 00 00 .long 0x0 - 4254: 00 00 04 d8 stfd f0,0(r4) - 4258: 0f 83 10 01 .long 0x110830f - 425c: 55 04 83 10 mtvsrbmi v4,1095 - 4260: 94 10 04 a3 lhz r24,4244(r4) - 4264: 01 55 9f 04 .long 0x49f5501 - 4268: 94 10 c3 10 mtvsrbmi v6,4230 - 426c: 01 55 04 c3 lfs f24,21761(r4) - 4270: 10 c4 10 04 .long 0x410c410 - 4274: a3 01 55 9f stbu r26,419(r21) - 4278: 00 03 02 00 .long 0x20300 - 427c: 03 04 d8 0f twi 30,r24,1027 - 4280: ec 0f 04 0a tdlti r4,4076 - 4284: 00 20 9f 04 .long 0x49f2000 - 4288: 94 10 94 10 mtvsrbmi v4,4264 - 428c: 04 0a 00 20 subfic r0,r0,2564 - 4290: 9f 00 0c 02 .long 0x20c009f - 4294: 00 03 04 d8 stfd f0,768(r4) - 4298: 0f ec 0f 02 .long 0x20fec0f - 429c: 3d 9f 04 94 stwu r0,-24771(r4) - 42a0: 10 94 10 02 .long 0x2109410 - 42a4: 3d 9f 00 00 .long 0x9f3d - 42a8: 00 01 00 04 .long 0x4000100 - 42ac: ec 0f 94 10 .long 0x10940fec - 42b0: 02 31 9f 04 .long 0x49f3102 - 42b4: 94 10 c4 10 mtvsrbmi v6,4232 - 42b8: 02 30 9f 00 .long 0x9f3002 - 42bc: 10 00 00 01 .long 0x1000010 - 42c0: 04 d8 0f ec dadd f0,f15,f27 - 42c4: 0f 02 31 9f stbu r25,527(r17) - 42c8: 04 94 10 94 stwu r0,-27644(r16) - 42cc: 10 02 31 9f stbu r25,528(r17) - 42d0: 00 02 00 00 attn - 42d4: 00 04 ec 0f twui r12,1024 - 42d8: 83 10 01 55 rlwinm. r1,r8,2,2,1 - 42dc: 04 83 10 94 stwu r0,-31996(r16) - 42e0: 10 04 a3 01 .long 0x1a30410 - 42e4: 55 9f 00 02 .long 0x2009f55 - 42e8: 00 00 00 04 .long 0x4000000 - 42ec: ec 0f 83 10 .long 0x10830fec - 42f0: 01 54 04 83 lwz r24,21505(r4) - 42f4: 10 94 10 04 .long 0x4109410 - 42f8: a3 01 54 9f stbu r26,419(r20) - 42fc: 00 02 00 00 attn - 4300: 00 04 ec 0f twui r12,1024 - 4304: 83 10 01 53 rlwimi. r1,r24,2,2,1 - 4308: 04 83 10 94 stwu r0,-31996(r16) - 430c: 10 04 a3 01 .long 0x1a30410 - 4310: 53 9f 00 00 .long 0x9f53 - ... - 431c: 00 00 00 04 .long 0x4000000 - 4320: e8 15 af 16 .long 0x16af15e8 - 4324: 01 54 04 af lhau r24,21505(r4) - 4328: 16 cc 17 01 .long 0x117cc16 - 432c: 6f 04 cc 17 .long 0x17cc046f - 4330: d4 17 04 a3 lhz r24,6100(r4) - 4334: 01 54 9f 04 .long 0x49f5401 - 4338: d4 17 d4 18 .long 0x18d417d4 - 433c: 01 6f 04 d4 stfsu f0,28417(r4) - 4340: 18 dc 18 04 .long 0x418dc18 - 4344: a3 01 54 9f stbu r26,419(r20) - 4348: 04 dc 18 c0 lfs f0,-9212(r24) - 434c: 1a 01 6f 00 .long 0x6f011a - 4350: 00 00 00 00 .long 0x0 - 4354: 04 e8 15 af lhau r24,-6140(r21) - 4358: 16 01 55 04 .long 0x4550116 - 435c: af 16 c0 1a .long 0x1ac016af - 4360: 04 a3 01 55 rlwinm r1,r8,20,12,2 - 4364: 9f 00 00 00 .long 0x9f - ... - 4370: 00 00 04 8c lbzu r0,0(r4) - 4374: 16 a4 16 01 .long 0x116a416 - 4378: 53 04 a4 16 .long 0x16a40453 - 437c: a8 17 01 6d xoris r1,r8,6056 - 4380: 04 d4 17 cc lfdu f0,-11260(r23) - 4384: 18 01 6d 04 .long 0x46d0118 - 4388: dc 18 e8 18 .long 0x18e818dc - 438c: 01 6d 04 d4 stfsu f0,27905(r4) - 4390: 19 f0 19 01 .long 0x119f019 - 4394: 6d 04 80 1a .long 0x1a80046d - 4398: 8c 1a 01 6d xoris r1,r8,6796 - 439c: 00 00 00 04 .long 0x4000000 - 43a0: e8 15 c0 1a .long 0x1ac015e8 - 43a4: 06 fa 2c 41 bdnzta 4*cr3+lt,fffffa04 - 43a8: 01 00 9f 00 .long 0x9f0001 - 43ac: 01 00 00 00 .long 0x1 - 43b0: 00 00 04 c0 lfs f0,0(r4) - 43b4: 16 a8 17 01 .long 0x117a816 - 43b8: 6f 04 dc 18 .long 0x18dc046f - 43bc: 80 1a 01 6f xoris r1,r24,6784 - 43c0: 04 8c 1a c0 lfs f0,-29692(r26) - 43c4: 1a 01 6f 00 .long 0x6f011a - 43c8: 00 00 00 00 .long 0x0 - 43cc: 00 00 04 c4 lfsu f0,0(r4) - 43d0: 16 a8 17 01 .long 0x117a816 - 43d4: 6e 04 dc 18 .long 0x18dc046e - 43d8: ec 18 01 6e xoris r1,r16,6380 - 43dc: 04 d4 19 f0 xsmaxcdp vs0,vs57,vs26 - 43e0: 19 01 6e 00 .long 0x6e0119 - 43e4: 01 00 04 c4 lfsu f0,1(r4) - 43e8: 16 d0 16 01 .long 0x116d016 - 43ec: 6e 00 01 09 tdgti r1,110 - 43f0: 00 00 04 e4 psq_lu f0,0(r4),0,0 - 43f4: 16 8c 17 01 .long 0x1178c16 - 43f8: 6e 04 d4 19 .long 0x19d4046e - 43fc: f0 19 01 6e xoris r1,r16,6640 - 4400: 00 03 09 00 .long 0x90300 - 4404: 00 04 e4 16 .long 0x16e40400 - 4408: 8c 17 01 6e xoris r1,r16,6028 - 440c: 04 d4 19 f0 xsmaxcdp vs0,vs57,vs26 - 4410: 19 01 6e 00 .long 0x6e0119 - 4414: 08 07 00 00 .long 0x708 - 4418: 04 e4 16 8c lbzu r0,-7164(r22) - 441c: 17 01 6e 04 .long 0x46e0117 - 4420: d4 19 f0 19 .long 0x19f019d4 - 4424: 01 6e 00 00 .long 0x6e01 - ... - 4434: 00 04 ec 16 .long 0x16ec0400 - 4438: 88 17 04 79 rldic r4,r8,2,30 - 443c: 80 19 9f 04 .long 0x49f1980 - 4440: 88 17 93 17 .long 0x17931788 - 4444: 04 7d 80 19 .long 0x19807d04 - 4448: 9f 04 a4 19 .long 0x19a4049f - 444c: c0 19 04 79 rldicl r4,r8,3,7 - 4450: 80 19 9f 04 .long 0x49f1980 - 4454: c0 19 d4 19 lxvp vs14,6592(r20) - 4458: 04 7d 80 19 .long 0x19807d04 - 445c: 9f 04 d4 19 .long 0x19d4049f - 4460: f0 19 04 79 rldcl r4,r8,r3,39 - 4464: 80 19 9f 04 .long 0x49f1980 - 4468: f0 19 f7 19 lxvp vs46,6640(r23) - 446c: 04 7d 80 19 .long 0x19807d04 - 4470: 9f 04 b0 1a .long 0x1ab0049f - 4474: c0 1a 04 79 rldicl r4,r8,3,11 - 4478: 80 19 9f 00 .long 0x9f1980 - 447c: 01 05 04 80 lwz r0,1281(r4) - 4480: 17 8c 17 01 .long 0x1178c17 - 4484: 6e 00 01 00 .long 0x1006e - 4488: 00 00 00 00 .long 0x0 - 448c: 04 dc 18 d4 stfsu f0,-9212(r24) - 4490: 19 01 6f 04 .long 0x46f0119 - 4494: f0 19 80 1a lxvp vs20,6640(0) - 4498: 01 6f 04 8c lbzu r0,28417(r4) - 449c: 1a c0 1a 01 .long 0x11ac01a - 44a0: 6f 00 00 00 .long 0x6f - 44a4: 00 00 00 00 .long 0x0 - 44a8: 04 e8 18 d4 stfsu f0,-6140(r24) - 44ac: 19 01 6d 04 .long 0x46d0119 - 44b0: f0 19 80 1a lxvp vs20,6640(0) - 44b4: 01 6d 04 8c lbzu r0,27905(r4) - 44b8: 1a c0 1a 01 .long 0x11ac01a - 44bc: 6d 00 00 00 .long 0x6d - 44c0: 04 ec 18 ff dsubq f24,f24,f28 - 44c4: 18 02 8f 08 tdeqi r15,536 - 44c8: 00 01 00 00 .long 0x100 - 44cc: 00 04 9c 19 lxvp vs12,1024(r28) - 44d0: ac 19 02 8f lbzu r24,6572(r2) - 44d4: 28 04 b0 1a .long 0x1ab00428 - 44d8: b8 1a 02 8f lbzu r24,6840(r2) - 44dc: 28 00 02 00 .long 0x20028 - 44e0: 04 ec 18 80 lwz r0,-5116(r24) - 44e4: 19 01 6d 00 .long 0x6d0119 - 44e8: 02 00 04 80 lwz r0,2(r4) - 44ec: 19 90 19 01 .long 0x1199019 - 44f0: 6d 00 02 09 tdgti r2,109 - 44f4: 00 00 04 9c stbu r0,0(r4) - 44f8: 19 c4 19 01 .long 0x119c419 - 44fc: 6d 04 b0 1a .long 0x1ab0046d - 4500: c0 1a 01 6d xoris r1,r8,6848 - 4504: 00 04 09 00 .long 0x90400 - 4508: 00 04 9c 19 lxvp vs12,1024(r28) - 450c: c4 19 01 6d xoris r1,r8,6596 - 4510: 04 b0 1a c0 lfs f0,-20476(r26) - 4514: 1a 01 6d 00 .long 0x6d011a - 4518: 09 07 00 00 .long 0x709 - 451c: 04 9c 19 c4 lfsu f0,-25596(r25) - 4520: 19 01 6d 04 .long 0x46d0119 - 4524: b0 1a c0 1a lxvp vs22,6832(0) - 4528: 01 6d 00 00 .long 0x6d01 - 452c: 00 00 00 00 .long 0x0 - 4530: 00 00 00 04 .long 0x4000000 - 4534: a4 19 c0 19 .long 0x19c019a4 - 4538: 04 79 80 19 .long 0x19807904 - 453c: 9f 04 c0 19 .long 0x19c0049f - 4540: d4 19 04 7d .long 0x7d0419d4 - 4544: 80 19 9f 04 .long 0x49f1980 - 4548: f0 19 f7 19 lxvp vs46,6640(r23) - 454c: 04 7d 80 19 .long 0x19807d04 - 4550: 9f 04 b0 1a .long 0x1ab0049f - 4554: c0 1a 04 79 rldicl r4,r8,3,11 - 4558: 80 19 9f 00 .long 0x9f1980 - 455c: 01 05 04 b8 lm r0,1281(r4) - 4560: 19 c4 19 01 .long 0x119c419 - 4564: 6d 00 02 00 .long 0x2006d - 4568: 04 8c 1a a0 lhz r0,-29692(r26) - 456c: 1a 01 6d 00 .long 0x6d011a - 4570: 01 00 04 d4 stfsu f0,1(r4) - 4574: 17 ec 17 01 .long 0x117ec17 - 4578: 6d 00 01 09 tdgti r1,109 - 457c: 00 00 04 88 lbz r0,0(r4) - 4580: 18 b0 18 01 .long 0x118b018 - 4584: 6d 04 80 1a .long 0x1a80046d - 4588: 8c 1a 01 6d xoris r1,r8,6796 - 458c: 00 03 09 00 .long 0x90300 - 4590: 00 04 88 18 lxvp vs4,1024(r8) - 4594: b0 18 01 6d xoris r1,r8,6320 - 4598: 04 80 1a 8c lbzu r0,-32764(r26) - 459c: 1a 01 6d 00 .long 0x6d011a - 45a0: 08 07 00 00 .long 0x708 - 45a4: 04 88 18 b0 sth r0,-30716(r24) - 45a8: 18 01 6d 04 .long 0x46d0118 - 45ac: 80 1a 8c 1a lxvp vs20,6784(r12) - 45b0: 01 6d 00 00 .long 0x6d01 - 45b4: 00 00 00 00 .long 0x0 - 45b8: 00 04 90 18 lxvp vs4,1024(r16) - 45bc: ac 18 04 79 rldimi r4,r8,3,34 - 45c0: 80 19 9f 04 .long 0x49f1980 - 45c4: ac 18 bb 18 .long 0x18bb18ac - 45c8: 04 7d 80 19 .long 0x19807d04 - 45cc: 9f 04 80 1a .long 0x1a80049f - 45d0: 8c 1a 04 79 rldimi r4,r8,3,10 - 45d4: 80 19 9f 00 .long 0x9f1980 - 45d8: 01 05 04 a4 lhzu r0,1281(r4) - 45dc: 18 b0 18 01 .long 0x118b018 - 45e0: 6d 00 00 00 .long 0x6d - 45e4: 00 00 00 00 .long 0x0 - 45e8: 04 c8 4a e8 ld r2,-14332(r10) - 45ec: 4a 01 53 04 .long 0x453014a - 45f0: e8 4a 83 4b b ffffffffff8390d8 - 45f4: 04 73 a0 67 oris r0,r29,29444 - 45f8: 9f 04 83 4b bla ff83049c - 45fc: bc 4b 04 a3 lhz r24,19388(r4) - 4600: 01 53 9f 00 .long 0x9f5301 - 4604: 00 00 00 00 .long 0x0 - 4608: 04 c8 4a ec dadd f2,f10,f25 - 460c: 4a 01 54 04 .long 0x454014a - 4610: ec 4a bc 4b b ffffffffffbc90fc - 4614: 04 a3 01 54 rlwinm r1,r0,20,12,2 - 4618: 9f 00 00 00 .long 0x9f - 461c: 00 00 00 00 .long 0x0 - 4620: 04 c8 4a 83 lwz r26,-14332(r10) - 4624: 4b 01 55 04 .long 0x455014b - 4628: 83 4b b4 4b bla ffb44b80 - 462c: 01 6f 04 b4 sthu r0,28417(r4) - 4630: 4b bc 4b 04 .long 0x44bbc4b - 4634: a3 01 55 9f stbu r26,419(r21) + 4190: 02 00 00 00 .long 0x2 + 4194: 00 01 04 90 stw r0,256(r4) + 4198: 07 b4 07 03 .long 0x307b407 + 419c: 91 54 9f 04 .long 0x49f5491 + 41a0: b4 07 bf 07 .long 0x7bf07b4 + 41a4: 01 56 04 bf stmw r24,22017(r4) + 41a8: 07 c8 07 03 .long 0x307c807 + 41ac: 91 54 9f 00 .long 0x9f5491 + 41b0: 02 01 04 90 stw r0,258(r4) + 41b4: 07 c8 07 01 .long 0x107c807 + 41b8: 6c 00 02 00 .long 0x2006c + 41bc: 00 00 04 90 stw r0,0(r4) + 41c0: 07 94 07 0b tdnei r7,-27641 + 41c4: 8d 08 94 04 .long 0x494088d + 41c8: 08 20 24 08 tdlgti r4,8200 + 41cc: 20 26 9f 04 .long 0x49f2620 + 41d0: 94 07 9f 07 .long 0x79f0794 + 41d4: 01 54 00 02 .long 0x2005401 + 41d8: 01 04 90 07 .long 0x7900401 + 41dc: c8 07 01 6f xoris r1,r24,1992 + 41e0: 00 00 00 00 .long 0x0 + 41e4: 00 04 a0 07 .long 0x7a00400 + 41e8: ac 07 01 53 rlwimi r1,r24,0,30,22 + 41ec: 04 ac 09 c8 lfd f0,-21500(r9) + 41f0: 09 01 53 00 .long 0x530109 + 41f4: 00 01 04 c8 lfd f0,256(r4) + 41f8: 07 c8 07 01 .long 0x107c807 + 41fc: 53 00 06 00 .long 0x60053 + 4200: 04 90 07 9f stbu r24,-28668(r7) + 4204: 07 02 8d 08 tdeqi r13,519 + 4208: 00 06 00 04 .long 0x4000600 + 420c: 90 07 a0 07 .long 0x7a00790 + 4210: 01 6f 00 00 .long 0x6f01 + 4214: 01 04 dc 07 .long 0x7dc0401 + 4218: e8 07 03 59 rlmi r3,r8,r0,31,20 + 421c: 93 08 00 01 .long 0x1000893 + 4220: 09 02 00 04 .long 0x4000209 + 4224: f4 07 9c 08 tdeqi r28,2036 + 4228: 01 6f 04 8c lbzu r0,28417(r4) + 422c: 09 ac 09 01 .long 0x109ac09 + 4230: 6f 00 03 09 tdgti r3,111 + 4234: 04 00 04 f4 psq_stu f0,4(r4),0,0 + 4238: 07 9c 08 01 .long 0x1089c07 + 423c: 6f 04 8c 09 tdgei r12,1135 + 4240: ac 09 01 6f xoris r1,r24,2476 + 4244: 00 08 07 09 tdgti r7,2048 + 4248: 00 04 f4 07 .long 0x7f40400 + 424c: 9c 08 01 6f xoris r1,r24,2204 + 4250: 04 8c 09 ac lhau r0,-29692(r9) + 4254: 09 01 6f 00 .long 0x6f0109 + 4258: 00 00 00 00 .long 0x0 + 425c: 04 fc 07 84 lwzu r0,-1020(r7) + 4260: 08 04 79 80 lwz r3,1032(r25) + 4264: 19 9f 04 94 stwu r0,-24807(r4) + 4268: 09 9c 09 04 .long 0x4099c09 + 426c: 79 80 19 9f stbu r24,-32647(r25) + 4270: 00 01 05 04 .long 0x4050100 + 4274: 90 08 9c 08 tdeqi r28,2192 + 4278: 01 6f 00 00 .long 0x6f01 + 427c: 00 00 00 00 .long 0x0 + 4280: 00 00 00 04 .long 0x4000000 + 4284: d8 0f 83 10 vextdubvlx v4,v3,v1,r31 + 4288: 01 53 04 83 lwz r24,21249(r4) + 428c: 10 94 10 04 .long 0x4109410 + 4290: a3 01 53 9f stbu r26,419(r19) + 4294: 04 94 10 c3 lfs f24,-27644(r16) + 4298: 10 01 53 04 .long 0x4530110 + 429c: c3 10 c4 10 .long 0x10c410c3 + 42a0: 04 a3 01 53 rlwimi r1,r24,20,12,2 + 42a4: 9f 00 00 00 .long 0x9f + 42a8: 00 00 00 00 .long 0x0 + 42ac: 00 00 04 d8 stfd f0,0(r4) + 42b0: 0f 83 10 01 .long 0x110830f + 42b4: 54 04 83 10 mtvsrbmi v4,1094 + 42b8: 94 10 04 a3 lhz r24,4244(r4) + 42bc: 01 54 9f 04 .long 0x49f5401 + 42c0: 94 10 c3 10 mtvsrbmi v6,4230 + 42c4: 01 54 04 c3 lfs f24,21505(r4) + 42c8: 10 c4 10 04 .long 0x410c410 + 42cc: a3 01 54 9f stbu r26,419(r20) + ... + 42d8: 00 04 d8 0f twi 30,r24,1024 + 42dc: 83 10 01 55 rlwinm. r1,r8,2,2,1 + 42e0: 04 83 10 94 stwu r0,-31996(r16) + 42e4: 10 04 a3 01 .long 0x1a30410 + 42e8: 55 9f 04 94 stwu r0,-24747(r4) + 42ec: 10 c3 10 01 .long 0x110c310 + 42f0: 55 04 c3 10 mtvsrbmi v6,1095 + 42f4: c4 10 04 a3 lhz r24,4292(r4) + 42f8: 01 55 9f 00 .long 0x9f5501 + 42fc: 03 02 00 03 .long 0x3000203 + 4300: 04 d8 0f ec dadd f0,f15,f27 + 4304: 0f 04 0a 00 .long 0xa040f + 4308: 20 9f 04 94 stwu r0,-24800(r4) + 430c: 10 94 10 04 .long 0x4109410 + 4310: 0a 00 20 9f .long 0x9f20000a + 4314: 00 0c 02 00 .long 0x20c00 + 4318: 03 04 d8 0f twi 30,r24,1027 + 431c: ec 0f 02 3d addis r8,r2,4076 + 4320: 9f 04 94 10 vextddvrx v4,v20,v0,r18 + 4324: 94 10 02 3d addis r8,r2,4244 + 4328: 9f 00 00 00 .long 0x9f + 432c: 01 00 04 ec .long 0xec040001 + 4330: 0f 94 10 02 .long 0x210940f + 4334: 31 9f 04 94 stwu r0,-24783(r4) + 4338: 10 c4 10 02 .long 0x210c410 + 433c: 30 9f 00 10 maddhd r0,r0,r19,r28 + 4340: 00 00 01 04 .long 0x4010000 + 4344: d8 0f ec 0f twui r12,4056 + 4348: 02 31 9f 04 .long 0x49f3102 + 434c: 94 10 94 10 mtvsrbmi v4,4264 + 4350: 02 31 9f 00 .long 0x9f3102 + 4354: 02 00 00 00 .long 0x2 + 4358: 04 ec 0f 83 lwz r24,-5116(r15) + 435c: 10 01 55 04 .long 0x4550110 + 4360: 83 10 94 10 .long 0x10941083 + 4364: 04 a3 01 55 rlwinm r1,r8,20,12,2 + 4368: 9f 00 02 00 .long 0x2009f + 436c: 00 00 04 ec .long 0xec040000 + 4370: 0f 83 10 01 .long 0x110830f + 4374: 54 04 83 10 mtvsrbmi v4,1094 + 4378: 94 10 04 a3 lhz r24,4244(r4) + 437c: 01 54 9f 00 .long 0x9f5401 + 4380: 02 00 00 00 .long 0x2 + 4384: 04 ec 0f 83 lwz r24,-5116(r15) + 4388: 10 01 53 04 .long 0x4530110 + 438c: 83 10 94 10 .long 0x10941083 + 4390: 04 a3 01 53 rlwimi r1,r24,20,12,2 + 4394: 9f 00 00 00 .long 0x9f + ... + 43a0: 00 00 04 e8 ld r0,0(r4) + 43a4: 15 af 16 01 .long 0x116af15 + 43a8: 54 04 af 16 .long 0x16af0454 + 43ac: cc 17 01 6f xoris r1,r24,6092 + 43b0: 04 cc 17 d4 stfsu f0,-13308(r23) + 43b4: 17 04 a3 01 .long 0x1a30417 + 43b8: 54 9f 04 d4 stfsu f0,-24748(r4) + 43bc: 17 d4 18 01 .long 0x118d417 + 43c0: 6f 04 d4 18 .long 0x18d4046f + 43c4: dc 18 04 a3 lhz r24,6364(r4) + 43c8: 01 54 9f 04 .long 0x49f5401 + 43cc: dc 18 c0 1a .long 0x1ac018dc + 43d0: 01 6f 00 00 .long 0x6f01 + 43d4: 00 00 00 04 .long 0x4000000 + 43d8: e8 15 af 16 .long 0x16af15e8 + 43dc: 01 55 04 af lhau r24,21761(r4) + 43e0: 16 c0 1a 04 .long 0x41ac016 + 43e4: a3 01 55 9f stbu r26,419(r21) + ... + 43f4: 00 04 8c 16 .long 0x168c0400 + 43f8: a4 16 01 53 rlwimi r1,r24,2,26,18 + 43fc: 04 a4 16 a8 lha r0,-23548(r22) + 4400: 17 01 6d 04 .long 0x46d0117 + 4404: d4 17 cc 18 .long 0x18cc17d4 + 4408: 01 6d 04 dc stfdu f0,27905(r4) + 440c: 18 e8 18 01 .long 0x118e818 + 4410: 6d 04 d4 19 .long 0x19d4046d + 4414: f0 19 01 6d xoris r1,r8,6640 + 4418: 04 80 1a 8c lbzu r0,-32764(r26) + 441c: 1a 01 6d 00 .long 0x6d011a + 4420: 00 00 04 e8 ld r0,0(r4) + 4424: 15 c0 1a 06 .long 0x61ac015 + 4428: fa 2c 41 01 .long 0x1412cfa + 442c: 00 9f 00 01 .long 0x1009f00 + 4430: 00 00 00 00 .long 0x0 + 4434: 00 04 c0 16 .long 0x16c00400 + 4438: a8 17 01 6f xoris r1,r24,6056 + 443c: 04 dc 18 80 lwz r0,-9212(r24) + 4440: 1a 01 6f 04 .long 0x46f011a + 4444: 8c 1a c0 1a .long 0x1ac01a8c + 4448: 01 6f 00 00 .long 0x6f01 + 444c: 00 00 00 00 .long 0x0 + 4450: 00 04 c4 16 .long 0x16c40400 + 4454: a8 17 01 6e xoris r1,r16,6056 + 4458: 04 dc 18 ec dsub f0,f24,f27 + 445c: 18 01 6e 04 .long 0x46e0118 + 4460: d4 19 f0 19 .long 0x19f019d4 + 4464: 01 6e 00 01 .long 0x1006e01 + 4468: 00 04 c4 16 .long 0x16c40400 + 446c: d0 16 01 6e xoris r1,r16,5840 + 4470: 00 01 09 00 .long 0x90100 + 4474: 00 04 e4 16 .long 0x16e40400 + 4478: 8c 17 01 6e xoris r1,r16,6028 + 447c: 04 d4 19 f0 xsmaxcdp vs0,vs57,vs26 + 4480: 19 01 6e 00 .long 0x6e0119 + 4484: 03 09 00 00 .long 0x903 + 4488: 04 e4 16 8c lbzu r0,-7164(r22) + 448c: 17 01 6e 04 .long 0x46e0117 + 4490: d4 19 f0 19 .long 0x19f019d4 + 4494: 01 6e 00 08 tdi 0,r0,28161 + 4498: 07 00 00 04 .long 0x4000007 + 449c: e4 16 8c 17 .long 0x178c16e4 + 44a0: 01 6e 04 d4 stfsu f0,28161(r4) + 44a4: 19 f0 19 01 .long 0x119f019 + 44a8: 6e 00 00 00 .long 0x6e + ... + 44b8: 04 ec 16 88 lbz r0,-5116(r22) + 44bc: 17 04 79 80 lwz r3,1047(r25) + 44c0: 19 9f 04 88 lbz r0,-24807(r4) + 44c4: 17 93 17 04 .long 0x4179317 + 44c8: 7d 80 19 9f stbu r24,-32643(r25) + 44cc: 04 a4 19 c0 lfs f0,-23548(r25) + 44d0: 19 04 79 80 lwz r3,1049(r25) + 44d4: 19 9f 04 c0 lfs f0,-24807(r4) + 44d8: 19 d4 19 04 .long 0x419d419 + 44dc: 7d 80 19 9f stbu r24,-32643(r25) + 44e0: 04 d4 19 f0 xsmaxcdp vs0,vs57,vs26 + 44e4: 19 04 79 80 lwz r3,1049(r25) + 44e8: 19 9f 04 f0 xvcmpeqdp. vs32,vs4,vs19 + 44ec: 19 f7 19 04 .long 0x419f719 + 44f0: 7d 80 19 9f stbu r24,-32643(r25) + 44f4: 04 b0 1a c0 lfs f0,-20476(r26) + 44f8: 1a 04 79 80 lwz r3,1050(r25) + 44fc: 19 9f 00 01 .long 0x1009f19 + 4500: 05 04 80 17 .long 0x17800405 + 4504: 8c 17 01 6e xoris r1,r16,6028 + 4508: 00 01 00 00 .long 0x100 + 450c: 00 00 00 04 .long 0x4000000 + 4510: dc 18 d4 19 .long 0x19d418dc + 4514: 01 6f 04 f0 xvmaxdp vs32,vs4,vs13 + 4518: 19 80 1a 01 .long 0x11a8019 + 451c: 6f 04 8c 1a .long 0x1a8c046f + 4520: c0 1a 01 6f xoris r1,r24,6848 + 4524: 00 00 00 00 .long 0x0 + 4528: 00 00 00 04 .long 0x4000000 + 452c: e8 18 d4 19 .long 0x19d418e8 + 4530: 01 6d 04 f0 xsmaxdp vs32,vs4,vs13 + 4534: 19 80 1a 01 .long 0x11a8019 + 4538: 6d 04 8c 1a .long 0x1a8c046d + 453c: c0 1a 01 6d xoris r1,r8,6848 + 4540: 00 00 00 04 .long 0x4000000 + 4544: ec 18 ff 18 .long 0x18ff18ec + 4548: 02 8f 08 00 .long 0x88f02 + 454c: 01 00 00 00 .long 0x1 + 4550: 04 9c 19 ac lhau r0,-25596(r25) + 4554: 19 02 8f 28 cmplwi cr1,r15,537 + 4558: 04 b0 1a b8 lm r0,-20476(r26) + 455c: 1a 02 8f 28 cmplwi cr1,r15,538 + 4560: 00 02 00 04 .long 0x4000200 + 4564: ec 18 80 19 .long 0x198018ec + 4568: 01 6d 00 02 .long 0x2006d01 + 456c: 00 04 80 19 lxvp vs12,1024(0) + 4570: 90 19 01 6d xoris r1,r8,6544 + 4574: 00 02 09 00 attn + 4578: 00 04 9c 19 lxvp vs12,1024(r28) + 457c: c4 19 01 6d xoris r1,r8,6596 + 4580: 04 b0 1a c0 lfs f0,-20476(r26) + 4584: 1a 01 6d 00 .long 0x6d011a + 4588: 04 09 00 00 .long 0x904 + 458c: 04 9c 19 c4 lfsu f0,-25596(r25) + 4590: 19 01 6d 04 .long 0x46d0119 + 4594: b0 1a c0 1a lxvp vs22,6832(0) + 4598: 01 6d 00 09 tdgti r0,27905 + 459c: 07 00 00 04 .long 0x4000007 + 45a0: 9c 19 c4 19 .long 0x19c4199c + 45a4: 01 6d 04 b0 sth r0,27905(r4) + 45a8: 1a c0 1a 01 .long 0x11ac01a + 45ac: 6d 00 00 00 .long 0x6d + 45b0: 00 00 00 00 .long 0x0 + 45b4: 00 00 04 a4 lhzu r0,0(r4) + 45b8: 19 c0 19 04 .long 0x419c019 + 45bc: 79 80 19 9f stbu r24,-32647(r25) + 45c0: 04 c0 19 d4 stfsu f0,-16380(r25) + 45c4: 19 04 7d 80 lwz r3,1049(r29) + 45c8: 19 9f 04 f0 xvcmpeqdp. vs32,vs4,vs19 + 45cc: 19 f7 19 04 .long 0x419f719 + 45d0: 7d 80 19 9f stbu r24,-32643(r25) + 45d4: 04 b0 1a c0 lfs f0,-20476(r26) + 45d8: 1a 04 79 80 lwz r3,1050(r25) + 45dc: 19 9f 00 01 .long 0x1009f19 + 45e0: 05 04 b8 19 .long 0x19b80405 + 45e4: c4 19 01 6d xoris r1,r8,6596 + 45e8: 00 02 00 04 .long 0x4000200 + 45ec: 8c 1a a0 1a .long 0x1aa01a8c + 45f0: 01 6d 00 01 .long 0x1006d01 + 45f4: 00 04 d4 17 .long 0x17d40400 + 45f8: ec 17 01 6d xoris r1,r8,6124 + 45fc: 00 01 09 00 .long 0x90100 + 4600: 00 04 88 18 lxvp vs4,1024(r8) + 4604: b0 18 01 6d xoris r1,r8,6320 + 4608: 04 80 1a 8c lbzu r0,-32764(r26) + 460c: 1a 01 6d 00 .long 0x6d011a + 4610: 03 09 00 00 .long 0x903 + 4614: 04 88 18 b0 sth r0,-30716(r24) + 4618: 18 01 6d 04 .long 0x46d0118 + 461c: 80 1a 8c 1a lxvp vs20,6784(r12) + 4620: 01 6d 00 08 tdi 0,r0,27905 + 4624: 07 00 00 04 .long 0x4000007 + 4628: 88 18 b0 18 .long 0x18b01888 + 462c: 01 6d 04 80 lwz r0,27905(r4) + 4630: 1a 8c 1a 01 .long 0x11a8c1a + 4634: 6d 00 00 00 .long 0x6d 4638: 00 00 00 00 .long 0x0 - 463c: 00 00 00 04 .long 0x4000000 - 4640: c8 4a 83 4b b ffffffffff839108 - 4644: 01 56 04 83 lwz r24,22017(r4) - 4648: 4b b0 4b 01 .long 0x14bb04b - 464c: 6e 04 b0 4b ba ffb0046c - 4650: bc 4b 04 a3 lhz r24,19388(r4) - 4654: 01 56 9f 00 .long 0x9f5601 - 4658: 00 00 04 84 lwzu r0,0(r4) - 465c: 4b 90 4b 01 .long 0x14b904b - 4660: 53 00 00 01 .long 0x1000053 - 4664: 04 a4 4b a4 lhzu r2,-23548(r11) - 4668: 4b 01 53 00 .long 0x53014b - 466c: 03 00 00 00 .long 0x3 - 4670: 04 c8 4a 83 lwz r26,-14332(r10) - 4674: 4b 01 54 04 .long 0x454014b - 4678: 83 4b 84 4b bla ff844b80 - 467c: 04 a3 01 54 rlwinm r1,r0,20,12,2 - 4680: 9f 00 03 00 .long 0x3009f - 4684: 00 00 00 00 .long 0x0 - 4688: 04 c8 4a e8 ld r2,-14332(r10) - 468c: 4a 01 53 04 .long 0x453014a - 4690: e8 4a 83 4b b ffffffffff839178 - 4694: 04 73 a0 67 oris r0,r29,29444 - 4698: 9f 04 83 4b bla ff83049c - 469c: 84 4b 04 a3 lhz r24,19332(r4) - 46a0: 01 53 9f 00 .long 0x9f5301 + 463c: 04 90 18 ac lhau r0,-28668(r24) + 4640: 18 04 79 80 lwz r3,1048(r25) + 4644: 19 9f 04 ac lhau r0,-24807(r4) + 4648: 18 bb 18 04 .long 0x418bb18 + 464c: 7d 80 19 9f stbu r24,-32643(r25) + 4650: 04 80 1a 8c lbzu r0,-32764(r26) + 4654: 1a 04 79 80 lwz r3,1050(r25) + 4658: 19 9f 00 01 .long 0x1009f19 + 465c: 05 04 a4 18 .long 0x18a40405 + 4660: b0 18 01 6d xoris r1,r8,6320 + 4664: 00 00 00 00 .long 0x0 + 4668: 00 00 00 04 .long 0x4000000 + 466c: b8 4a d8 4a b fffffffffed89124 + 4670: 01 53 04 d8 stfd f0,21249(r4) + 4674: 4a f3 4a 04 .long 0x44af34a + 4678: 73 a0 67 9f stbu r27,-24461(r7) + 467c: 04 f3 4a ac lhau r2,-3324(r10) + 4680: 4b 04 a3 01 .long 0x1a3044b + 4684: 53 9f 00 00 .long 0x9f53 + 4688: 00 00 00 04 .long 0x4000000 + 468c: b8 4a dc 4a b fffffffffedc9144 + 4690: 01 54 04 dc stfdu f0,21505(r4) + 4694: 4a ac 4b 04 .long 0x44bac4a + 4698: a3 01 54 9f stbu r26,419(r20) + 469c: 00 00 00 00 .long 0x0 + 46a0: 00 00 00 04 .long 0x4000000 + 46a4: b8 4a f3 4a b fffffffffef3915c + 46a8: 01 55 04 f3 xsmaxdp vs56,vs4,vs10 + 46ac: 4a a4 4b 01 .long 0x14ba44a + 46b0: 6f 04 a4 4b bla ffa4046c + 46b4: ac 4b 04 a3 lhz r24,19372(r4) + 46b8: 01 55 9f 00 .long 0x9f5501 + 46bc: 00 00 00 00 .long 0x0 + 46c0: 00 00 04 b8 lm r0,0(r4) + 46c4: 4a f3 4a 01 .long 0x14af34a + 46c8: 56 04 f3 4a ba fef30454 + 46cc: a0 4b 01 6e xoris r1,r16,19360 + 46d0: 04 a0 4b ac lhau r2,-24572(r11) + 46d4: 4b 04 a3 01 .long 0x1a3044b + 46d8: 56 9f 00 00 .long 0x9f56 + 46dc: 00 04 f4 4a b fffffffffef44adc + 46e0: 80 4b 01 53 rlwimi r1,r24,9,14,0 + 46e4: 00 00 01 04 .long 0x4010000 + 46e8: 94 4b 94 4b b ffffffffff94927c + 46ec: 01 53 00 03 .long 0x3005301 + 46f0: 00 00 00 04 .long 0x4000000 + 46f4: b8 4a f3 4a b fffffffffef391ac + 46f8: 01 54 04 f3 xsmaxcdp vs56,vs4,vs10 + 46fc: 4a f4 4a 04 .long 0x44af44a + 4700: a3 01 54 9f stbu r26,419(r20) + 4704: 00 03 00 00 .long 0x300 + 4708: 00 00 00 04 .long 0x4000000 + 470c: b8 4a d8 4a b fffffffffed891c4 + 4710: 01 53 04 d8 stfd f0,21249(r4) + 4714: 4a f3 4a 04 .long 0x44af34a + 4718: 73 a0 67 9f stbu r27,-24461(r7) + 471c: 04 f3 4a f4 psq_stu f2,772(r10),1,7 + 4720: 4a 04 a3 01 .long 0x1a3044a + 4724: Address 0x0000000000004724 is out of bounds. + Disassembly of section .debug_aranges: @@ -39538,14 +39540,14 @@ Disassembly of section .debug_aranges: for (; addr < ((unsigned long *) (regs + 1)); addr++) 8: 00 00 08 00 .long 0x80000 ... - 18: c0 3b 00 00 .long 0x3bc0 + 18: b0 3b 00 00 .long 0x3bb0 ... Disassembly of section .debug_rnglists: 0000000000000000 <.debug_rnglists>: { - 0: e2 0a 00 00 .long 0xae2 + 0: e7 0a 00 00 .long 0xae7 4: 05 00 08 00 .long 0x80005 for (; addr < ((unsigned long *) (regs + 1)); addr++) 8: 00 00 00 00 .long 0x0 @@ -39843,693 +39845,695 @@ Disassembly of section .debug_rnglists: 2e8: bc 23 00 04 .long 0x40023bc 2ec: d0 23 f8 23 subfic r31,r24,9168 cpu_relax(); - 2f0: 04 b0 27 c0 lfs f1,-20476(r7) + 2f0: 04 e0 27 f0 xsaddsp vs1,vs39,vs28 2f4: 27 00 04 d0 stfs f0,39(r4) rc = plpar_hcall_norets(H_RPT_INVALIDATE, pid, target, 2f8: 23 f8 23 04 .long 0x423f823 - 2fc: b0 27 c0 27 dozi r30,r0,10160 + 2fc: e0 27 f0 27 dozi r31,r16,10208 300: 00 04 d0 23 subfic r30,r16,1024 - 304: ec 23 04 b0 sth r0,9196(r4) - 308: 27 c0 27 00 .long 0x27c027 + 304: ec 23 04 e0 lq r0,9184(r4) + 308: 27 f0 27 00 .long 0x27f027 30c: 04 e0 24 84 lwzu r1,-8188(r4) - 310: 26 04 c0 27 dozi r30,r0,1062 - 314: 90 28 04 f0 xxmrghw vs0,vs4,vs5 - 318: 28 9c 29 00 .long 0x299c28 + 310: 26 04 b0 27 dozi r29,r16,1062 + 314: e0 27 04 f0 psq_st f0,2016(r4),0,2 + 318: 27 90 28 04 .long 0x4289027 if (rc == H_BUSY) { - 31c: 04 88 25 90 stw r1,-30716(r5) - 320: 25 04 98 25 dozi r12,r24,1061 + 31c: f0 28 9c 29 cmplwi cr3,r28,10480 + 320: 00 04 88 25 dozi r12,r8,1024 } else if (rc == H_SUCCESS) - 324: b0 25 00 04 .long 0x40025b0 - 328: b0 25 c8 25 dozi r14,r8,9648 + 324: 90 25 04 98 stb r0,9616(r4) + 328: 25 b0 25 00 .long 0x25b025 BUG(); - 32c: 04 c0 27 f0 xsaddsp vs1,vs39,vs24 - 330: 27 00 04 b0 sth r0,39(r4) - 334: 25 b4 25 04 .long 0x425b425 + 32c: 04 b0 25 c8 lfd f1,-20476(r5) + 330: 25 04 b0 27 dozi r29,r16,1061 + 334: e0 27 00 04 .long 0x40027e0 static bool kvmhv_invalidate_shadow_pte(struct kvm_vcpu *vcpu, - 338: c0 27 c0 27 dozi r30,r0,10176 - 33c: 00 04 b0 25 dozi r13,r16,1024 - 340: b4 25 04 c0 lfs f0,9652(r4) - 344: 27 c0 27 00 .long 0x27c027 - 348: 04 f4 27 84 lwzu r1,-3068(r7) - 34c: 28 04 f0 28 cmpldi cr1,r16,1064 - 350: 9c 29 00 04 .long 0x400299c + 338: b0 25 b4 25 dozi r13,r20,9648 + 33c: 04 b0 27 b0 sth r1,-20476(r7) + 340: 27 00 04 b0 sth r0,39(r4) + 344: 25 b4 25 04 .long 0x425b425 + 348: b0 27 b0 27 dozi r29,r16,10160 + 34c: 00 04 f4 27 dozi r31,r20,1024 + 350: 84 28 04 f0 xsmulsp vs0,vs36,vs5 int shift; - 354: f4 27 f8 27 dozi r31,r24,10228 + 354: 28 9c 29 00 .long 0x299c28 static bool kvmhv_invalidate_shadow_pte(struct kvm_vcpu *vcpu, - 358: 04 f0 28 f0 xsaddsp vs1,vs40,vs30 - 35c: 28 00 04 f4 psq_stu f0,40(r4),0,0 - 360: 27 f8 27 04 .long 0x427f827 - 364: f0 28 f0 28 cmpldi cr1,r16,10480 - 368: 00 04 ec 26 dozi r23,r12,1024 - 36c: f0 26 04 f4 psq_stu f0,1776(r4),0,2 - 370: 26 98 27 04 .long 0x4279826 - 374: e0 28 f0 28 cmpldi cr1,r16,10464 - 378: 00 04 ec 26 dozi r23,r12,1024 - 37c: f0 26 04 f4 psq_stu f0,1776(r4),0,2 - 380: 26 98 27 04 .long 0x4279826 + 358: 04 f4 27 f8 std r1,-3068(r7) + 35c: 27 04 f0 28 cmpldi cr1,r16,1063 + 360: f0 28 00 04 .long 0x40028f0 + 364: f4 27 f8 27 dozi r31,r24,10228 + 368: 04 f0 28 f0 xsaddsp vs1,vs40,vs30 + 36c: 28 00 04 ec fsubs f0,f4,f0 + 370: 26 f0 26 04 .long 0x426f026 + 374: f4 26 98 27 dozi r28,r24,9972 + 378: 04 e0 28 f0 xsaddsp vs1,vs40,vs28 + 37c: 28 00 04 ec fsubs f0,f4,f0 + 380: 26 f0 26 04 .long 0x426f026 int shift; - 384: e0 28 f0 28 cmpldi cr1,r16,10464 - 388: 00 04 ec 26 dozi r23,r12,1024 - 38c: f0 26 04 f4 psq_stu f0,1776(r4),0,2 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 390: 26 8c 27 04 .long 0x4278c26 - 394: e0 28 f0 28 cmpldi cr1,r16,10464 - 398: 00 04 e4 29 cmpldi cr3,r4,1024 - 39c: e8 29 04 f0 xstdivdp cr0,vs4,vs5 + 384: f4 26 98 27 dozi r28,r24,9972 + 388: 04 e0 28 f0 xsaddsp vs1,vs40,vs28 + 38c: 28 00 04 ec fsubs f0,f4,f0 + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); + 390: 26 f0 26 04 .long 0x426f026 + 394: f4 26 8c 27 dozi r28,r12,9972 + 398: 04 e0 28 f0 xsaddsp vs1,vs40,vs28 + 39c: 28 00 04 e4 psq_lu f0,40(r4),0,0 if (!gp) - 3a0: 29 94 2a 04 .long 0x42a9429 - 3a4: e0 2a f0 2a cmpldi cr5,r16,10976 + 3a0: 29 e8 29 04 .long 0x429e829 + 3a4: f0 29 94 2a cmplwi cr5,r20,10736 pte = __find_linux_pte(gp->shadow_pgtable, ea, NULL, hshift); - 3a8: 00 04 e4 29 cmpldi cr3,r4,1024 - 3ac: e8 29 04 f0 xstdivdp cr0,vs4,vs5 - 3b0: 29 94 2a 04 .long 0x42a9429 - 3b4: e0 2a f0 2a cmpldi cr5,r16,10976 - 3b8: 00 04 e4 29 cmpldi cr3,r4,1024 - 3bc: e8 29 04 f0 xstdivdp cr0,vs4,vs5 + 3a8: 04 e0 2a f0 xsaddsp vs1,vs42,vs28 + 3ac: 2a 00 04 e4 lxsd v0,40(r4) + 3b0: 29 e8 29 04 .long 0x429e829 + 3b4: f0 29 94 2a cmplwi cr5,r20,10736 + 3b8: 04 e0 2a f0 xsaddsp vs1,vs42,vs28 + 3bc: 2a 00 04 e4 lxsd v0,40(r4) if (!shift) - 3c0: 29 88 2a 04 .long 0x42a8829 + 3c0: 29 e8 29 04 .long 0x429e829 pte = __find_linux_pte(gp->shadow_pgtable, ea, NULL, hshift); - 3c4: e0 2a f0 2a cmpldi cr5,r16,10976 + 3c4: f0 29 88 2a cmplwi cr5,r8,10736 if (!shift) - 3c8: 00 04 ac 2c cmpdi cr1,r12,1024 - 3cc: b4 2c 04 b8 lm r0,11444(r4) + 3c8: 04 e0 2a f0 xsaddsp vs1,vs42,vs28 + 3cc: 2a 00 04 ac lhau r0,42(r4) if (ptep && pte_present(*ptep)) { - 3d0: 2c bc 2c 00 .long 0x2cbc2c - 3d4: 04 b4 2c b8 lm r1,-19452(r12) - 3d8: 2c 04 c0 2c cmpwi cr1,r0,1068 + 3d0: 2c b4 2c 04 .long 0x42cb42c + 3d4: b8 2c bc 2c cmpdi cr1,r28,11448 + 3d8: 00 04 b4 2c cmpdi cr1,r20,1024 return (pte_raw(pte) & cpu_to_be64(_PAGE_PRESENT | _PAGE_PTE)) == - 3dc: c8 2c 04 cc lfdu f0,11464(r4) + 3dc: b8 2c 04 c0 lfs f0,11448(r4) if (pte_hw_valid(pte)) - 3e0: 2c d0 2c 04 .long 0x42cd02c - 3e4: dc 2c e0 2c cmpdi cr1,r0,11484 + 3e0: 2c c8 2c 04 .long 0x42cc82c + 3e4: cc 2c d0 2c cmpwi cr1,r16,11468 return (pte_raw(pte) & cpu_to_be64(_PAGE_INVALID | _PAGE_PTE)) == - 3e8: 00 04 b4 2c cmpdi cr1,r20,1024 - 3ec: b8 2c 04 c0 lfs f0,11448(r4) - 3f0: 2c c8 2c 04 .long 0x42cc82c + 3e8: 04 dc 2c e0 psq_l f1,-1020(r12),1,5 + 3ec: 2c 00 04 b4 sthu r0,44(r4) + 3f0: 2c b8 2c 04 .long 0x42cb82c if (unlikely(ms->mmiowb_pending)) { - 3f4: cc 2c d0 2c cmpwi cr1,r16,11468 + 3f4: c0 2c c8 2c cmpwi cr1,r8,11456 struct mmiowb_state *ms = __mmiowb_state(); - 3f8: 00 04 c8 2c cmpwi cr1,r8,1024 + 3f8: 04 cc 2c d0 stfs f1,-13308(r12) if (unlikely(ms->mmiowb_pending)) { - 3fc: cc 2c 04 d0 stfs f0,11468(r4) - 400: 2c dc 2c 04 .long 0x42cdc2c + 3fc: 2c 00 04 c8 lfd f0,44(r4) + 400: 2c cc 2c 04 .long 0x42ccc2c ms->nesting_count--; - 404: e0 2c c0 2d cmpwi cr3,r0,11488 - 408: 04 a0 2e c0 lfs f1,-24572(r14) - 40c: 2e 04 d8 2e cmpwi cr5,r24,1070 - 410: 8c 2f 04 a0 lhz r0,12172(r4) - 414: 2f 8c 30 04 .long 0x4308c2f - 418: 94 30 98 30 addic r4,r24,12436 + 404: d0 2c dc 2c cmpwi cr1,r28,11472 + 408: 04 e0 2c c0 lfs f1,-8188(r12) + 40c: 2d 04 a0 2e cmpdi cr5,r0,1069 + 410: c0 2e 04 d8 stfd f0,11968(r4) + 414: 2e 8c 2f 04 .long 0x42f8c2e + 418: a0 2f 8c 30 addic r4,r12,12192 if (shift_ret) - 41c: 04 a0 30 a8 lha r1,-24572(r16) - 420: 30 04 88 40 bge cr2,850 <.debug_rnglists+0x850> + 41c: 04 94 30 98 stb r1,-27644(r16) + 420: 30 04 a0 30 addic r5,r0,1072 *shift_ret = shift; - 424: 8c 40 00 04 .long 0x400408c - 428: f0 2c f4 2c cmpdi cr1,r20,11504 + 424: a8 30 04 88 lbz r0,12456(r4) + 428: 40 8c 40 00 .long 0x408c40 } - 42c: 04 f8 2c fc .long 0xfc2cf804 - 430: 2c 00 04 b0 sth r0,44(r4) - 434: 2d c0 2d 04 .long 0x42dc02d - 438: a0 2e a4 2e cmpdi cr5,r4,11936 - 43c: 04 a0 2f a4 lhzu r1,-24572(r15) - 440: 2f 00 04 c0 lfs f0,47(r4) - 444: 2d e0 2d 04 .long 0x42de02d - 448: c0 2e d8 2e cmpwi cr5,r24,11968 - 44c: 04 8c 2f 90 stw r1,-29692(r15) - 450: 2f 04 8c 30 addic r4,r12,1071 - 454: 94 30 04 98 stb r0,12436(r4) - 458: 30 a0 30 04 .long 0x430a030 - 45c: a8 30 b8 30 addic r5,r24,12456 + 42c: 04 f0 2c f4 psq_stu f1,4(r12),1,7 + 430: 2c 04 f8 2c cmpdi cr1,r24,1068 + 434: fc 2c 00 04 .long 0x4002cfc + 438: b0 2d c0 2d cmpwi cr3,r0,11696 + 43c: 04 a0 2e a4 lhzu r1,-24572(r14) + 440: 2e 04 a0 2f cmpdi cr7,r0,1070 + 444: a4 2f 00 04 .long 0x4002fa4 + 448: c0 2d e0 2d cmpdi cr3,r0,11712 + 44c: 04 c0 2e d8 stfd f1,-16380(r14) + 450: 2e 04 8c 2f cmpwi cr7,r12,1070 + 454: 90 2f 04 8c lbzu r0,12176(r4) + 458: 30 94 30 04 .long 0x4309430 + 45c: 98 30 a0 30 addic r5,r0,12440 shift = PAGE_SHIFT; - 460: 04 8c 40 c0 lfs f2,-29692(0) - 464: 40 00 04 c8 lfd f0,64(r4) - 468: 2d cc 2d 04 .long 0x42dcc2d - 46c: d0 2d e0 2d cmpdi cr3,r0,11728 + 460: 04 a8 30 b8 lm r1,-22524(r16) + 464: 30 04 8c 40 bge cr3,894 <.debug_rnglists+0x894> + 468: c0 40 00 04 .long 0x40040c0 + 46c: c8 2d cc 2d cmpwi cr3,r12,11720 kvmppc_unmap_pte(kvm, ptep, gpa, shift, NULL, gp->shadow_lpid); - 470: 04 c8 2e cc lfdu f1,-14332(r14) - 474: 2e 04 d0 2e cmpwi cr5,r16,1070 - 478: d8 2e 04 8c lbzu r0,11992(r4) - 47c: 2f 90 2f 04 .long 0x42f902f - 480: 98 30 9c 30 addic r4,r28,12440 - 484: 04 a8 30 b8 lm r1,-22524(r16) - 488: 30 04 8c 40 bge cr3,8b8 <.debug_rnglists+0x8b8> + 470: 04 d0 2d e0 psq_l f1,4(r13),1,5 + 474: 2d 04 c8 2e cmpwi cr5,r8,1069 + 478: cc 2e 04 d0 stfs f0,11980(r4) + 47c: 2e d8 2e 04 .long 0x42ed82e + 480: 8c 2f 90 2f cmpwi cr7,r16,12172 + 484: 04 98 30 9c stbu r1,-26620(r16) + 488: 30 04 a8 30 addic r5,r8,1072 if (unlikely(ms->mmiowb_pending)) { - 48c: c0 40 00 04 .long 0x40040c0 + 48c: b8 30 04 8c lbzu r0,12472(r4) struct mmiowb_state *ms = __mmiowb_state(); - 490: c8 2d cc 2d cmpwi cr3,r12,11720 + 490: 40 c0 40 00 .long 0x40c040 if (unlikely(ms->mmiowb_pending)) { - 494: 04 d0 2d d4 stfsu f1,-12284(r13) - 498: 2d 04 c8 2e cmpwi cr5,r8,1069 + 494: 04 c8 2d cc lfdu f1,-14332(r13) + 498: 2d 04 d0 2d cmpwi cr3,r16,1069 ms->mmiowb_pending = 0; - 49c: cc 2e 04 d0 stfs f0,11980(r4) - 4a0: 2e d8 2e 04 .long 0x42ed82e + 49c: d4 2d 04 c8 lfd f0,11732(r4) + 4a0: 2e cc 2e 04 .long 0x42ecc2e mmiowb(); - 4a4: 8c 2f 90 2f cmpwi cr7,r16,12172 - 4a8: 04 98 30 9c stbu r1,-26620(r16) - 4ac: 30 04 a8 30 addic r5,r8,1072 + 4a4: d0 2e d8 2e cmpwi cr5,r24,11984 + 4a8: 04 8c 2f 90 stw r1,-29692(r15) + 4ac: 2f 04 98 30 addic r4,r24,1071 if (!shift) - 4b0: ac 30 04 8c lbzu r0,12460(r4) - 4b4: 40 c0 40 00 .long 0x40c040 - 4b8: 04 8c 2f 90 stw r1,-29692(r15) + 4b0: 9c 30 04 a8 lha r0,12444(r4) + 4b4: 30 ac 30 04 .long 0x430ac30 + 4b8: 8c 40 c0 40 bge- 4544 shift = PAGE_SHIFT; - 4bc: 2f 04 8c 40 bgela cr3,42c <.debug_rnglists+0x42c> - 4c0: c0 40 00 04 .long 0x40040c0 + 4bc: 00 04 8c 2f cmpwi cr7,r12,1024 + 4c0: 90 2f 04 8c lbzu r0,12176(r4) if (ptep && pte_present(*ptep)) { - 4c4: 90 2f 90 2f cmpwi cr7,r16,12176 + 4c4: 40 c0 40 00 .long 0x40c040 } - 4c8: 04 cc 3a e4 psq_lu f1,-1020(r26),1,4 - 4cc: 3a 04 f0 3b addi r31,r16,1082 + 4c8: 04 90 2f 90 stw r1,-28668(r15) + 4cc: 2f 04 cc 3a addi r22,r12,1071 { - 4d0: 90 3c 04 c8 lfd f0,15504(r4) - 4d4: 3d d0 3d 04 .long 0x43dd03d + 4d0: e4 3a 04 f0 psq_st f0,-1308(r4),0,3 + 4d4: 3b 90 3c 04 .long 0x43c903b hr->pcr = vc->pcr | PCR_MASK; - 4d8: d4 3d dc 3d addis r14,r28,15828 + 4d8: c8 3d d0 3d addis r14,r16,15816 struct kvmppc_vcore *vc = vcpu->arch.vcore; - 4dc: 04 e4 3d f4 psq_stu f1,1028(r29),1,6 + 4dc: 04 d4 3d dc stfdu f1,-11260(r29) hr->pcr = vc->pcr | PCR_MASK; - 4e0: 3d 04 e0 3f lis r31,1085 - 4e4: f0 3f 04 f4 psq_stu f0,-16(r4),0,3 - 4e8: 3f 88 40 04 .long 0x440883f - 4ec: c4 40 88 41 blt cr2,45b0 - 4f0: 00 04 90 2f cmpwi cr7,r16,1024 - 4f4: 90 2f 04 d0 stfs f0,12176(r4) - 4f8: 3a d4 3a 04 .long 0x43ad43a + 4e0: 3d 04 e4 3d addis r15,r4,1085 + 4e4: f4 3d 04 e0 lq r0,15856(r4) + 4e8: 3f f0 3f 04 .long 0x43ff03f + 4ec: f4 3f 88 40 bge cr2,44e0 + 4f0: 04 c4 40 88 lbz r2,-15356(0) + 4f4: 41 00 04 90 stw r0,65(r4) + 4f8: 2f 90 2f 04 .long 0x42f902f hr->dpdes = vc->dpdes; - 4fc: d8 3a e4 3a addi r23,r4,15064 - 500: 04 f8 3b fc .long 0xfc3bf804 + 4fc: d0 3a d4 3a addi r22,r20,15056 + 500: 04 d8 3a e4 psq_lu f1,-2044(r26),1,5 hr->hfscr = vcpu->arch.hfscr; - 504: 3b 04 80 3c lis r4,1083 - 508: 90 3c 04 d4 stfsu f0,15504(r4) + 504: 3a 04 f8 3b addi r31,r24,1082 + 508: fc 3b 04 80 lwz r0,15356(r4) hr->tb_offset = vc->tb_offset; - 50c: 3d d8 3d 04 .long 0x43dd83d - 510: e4 3d f4 3d addis r15,r20,15844 + 50c: 3c 90 3c 04 .long 0x43c903c + 510: d4 3d d8 3d addis r14,r24,15828 hr->dawr0 = vcpu->arch.dawr0; - 514: 04 e0 3f f0 xsaddsp vs1,vs63,vs28 - 518: 3f 04 f4 3f addis r31,r20,1087 + 514: 04 e4 3d f4 psq_stu f1,1028(r29),1,6 + 518: 3d 04 e0 3f lis r31,1085 hr->dawrx0 = vcpu->arch.dawrx0; - 51c: 88 40 04 c4 lfsu f0,16520(r4) - 520: 40 88 41 00 .long 0x418840 + 51c: f0 3f 04 f4 psq_stu f0,-16(r4),0,3 + 520: 3f 88 40 04 .long 0x440883f hr->ciabr = vcpu->arch.ciabr; - 524: 04 90 2f 90 stw r1,-28668(r15) - 528: 2f 04 d0 3a addi r22,r16,1071 + 524: c4 40 88 41 blt cr2,45e8 + 528: 00 04 90 2f cmpwi cr7,r16,1024 hr->purr = vcpu->arch.purr; - 52c: d4 3a 04 d8 stfd f0,15060(r4) - 530: 3a dc 3a 04 .long 0x43adc3a + 52c: 90 2f 04 d0 stfs f0,12176(r4) + 530: 3a d4 3a 04 .long 0x43ad43a hr->spurr = vcpu->arch.spurr; - 534: f8 3b fc 3b addi r31,r28,15352 - 538: 04 80 3c 84 lwzu r1,-32764(r28) + 534: d8 3a dc 3a addi r22,r28,15064 + 538: 04 f8 3b fc .long 0xfc3bf804 hr->ic = vcpu->arch.ic; - 53c: 3c 04 d4 3d addis r14,r20,1084 - 540: d8 3d 04 e4 psq_lu f0,-552(r4),0,3 + 53c: 3b 04 80 3c lis r4,1083 + 540: 84 3c 04 d4 stfsu f0,15492(r4) hr->vtb = vc->vtb; - 544: 3d e8 3d 04 .long 0x43de83d - 548: e0 3f f0 3f addis r31,r16,16352 + 544: 3d d8 3d 04 .long 0x43dd83d + 548: e4 3d e8 3d addis r15,r8,15844 hr->srr0 = vcpu->arch.shregs.srr0; - 54c: 04 f4 3f 88 lbz r1,-3068(r31) - 550: 40 04 c4 40 bge- cr1,990 <.debug_rnglists+0x990> + 54c: 04 e0 3f f0 xsaddsp vs1,vs63,vs28 + 550: 3f 04 f4 3f addis r31,r20,1087 hr->srr1 = vcpu->arch.shregs.srr1; - 554: 88 41 00 04 .long 0x4004188 - 558: 90 2f 90 2f cmpwi cr7,r16,12176 + 554: 88 40 04 c4 lfsu f0,16520(r4) + 558: 40 88 41 00 .long 0x418840 hr->sprg[0] = vcpu->arch.shregs.sprg0; - 55c: 04 e0 3f f0 xsaddsp vs1,vs63,vs28 - 560: 3f 04 f4 3f addis r31,r20,1087 + 55c: 04 90 2f 90 stw r1,-28668(r15) + 560: 2f 04 e0 3f lis r31,1071 hr->sprg[1] = vcpu->arch.shregs.sprg1; - 564: 88 40 04 c4 lfsu f0,16520(r4) - 568: 40 88 41 00 .long 0x418840 + 564: f0 3f 04 f4 psq_stu f0,-16(r4),0,3 + 568: 3f 88 40 04 .long 0x440883f hr->sprg[2] = vcpu->arch.shregs.sprg2; - 56c: 04 98 31 a0 lhz r1,-26620(r17) - 570: 31 04 f0 3f addis r31,r16,1073 + 56c: c4 40 88 41 blt cr2,4630 + 570: 00 04 98 31 addic r12,r24,1024 hr->sprg[3] = vcpu->arch.shregs.sprg3; - 574: f4 3f 00 04 .long 0x4003ff4 - 578: c0 32 c4 32 addic r22,r4,12992 + 574: a0 31 04 f0 psq_st f0,416(r4),0,3 + 578: 3f f4 3f 00 .long 0x3ff43f hr->pidr = vcpu->arch.pid; - 57c: 04 c8 32 d0 stfs f1,-14332(r18) - 580: 32 04 d4 32 addic r22,r20,1074 + 57c: 04 c0 32 c4 lfsu f1,-16380(r18) + 580: 32 04 c8 32 addic r22,r8,1074 hr->cfar = vcpu->arch.cfar; - 584: ec 32 04 f0 xvtdivsp cr0,vs36,vs6 - 588: 32 fc 32 04 .long 0x432fc32 + 584: d0 32 04 d4 stfsu f0,13008(r4) + 588: 32 ec 32 04 .long 0x432ec32 hr->ppr = vcpu->arch.ppr; - 58c: 80 33 88 33 addic r28,r8,13184 - 590: 04 8c 33 90 stw r1,-29692(r19) + 58c: f0 32 fc 32 addic r23,r28,13040 + 590: 04 80 33 88 lbz r1,-32764(r19) hr->dawr1 = vcpu->arch.dawr1; - 594: 33 04 94 33 addic r28,r20,1075 - 598: a0 33 04 a8 lha r0,13216(r4) + 594: 33 04 8c 33 addic r28,r12,1075 + 598: 90 33 04 94 stwu r0,13200(r4) hr->dawrx1 = vcpu->arch.dawrx1; - 59c: 33 e8 33 04 .long 0x433e833 - 5a0: ec 33 b4 35 addic. r13,r20,13292 + 59c: 33 a0 33 04 .long 0x433a033 + 5a0: a8 33 e8 33 addic r31,r8,13224 } - 5a4: 00 04 c0 32 addic r22,r0,1024 - 5a8: c4 32 04 d4 stfsu f0,12996(r4) - 5ac: 32 e0 32 04 .long 0x432e032 + 5a4: 04 ec 33 b4 sthu r1,-5116(r19) + 5a8: 35 00 04 c0 lfs f0,53(r4) + 5ac: 32 c4 32 04 .long 0x432c432 { - 5b0: e4 32 ec 32 addic r23,r12,13028 - 5b4: 04 f0 32 f8 std r1,-4092(r18) + 5b0: d4 32 e0 32 addic r23,r0,13012 + 5b4: 04 e4 32 ec dsub f1,f18,f28 vc->dpdes = hr->dpdes; - 5b8: 32 04 80 33 addic r28,r0,1074 + 5b8: 32 04 f0 32 addic r23,r16,1074 struct kvmppc_vcore *vc = vcpu->arch.vcore; - 5bc: 84 33 04 8c lbzu r0,13188(r4) + 5bc: f8 32 04 80 lwz r0,13048(r4) vc->dpdes = hr->dpdes; - 5c0: 33 90 33 04 .long 0x4339033 + 5c0: 33 84 33 04 .long 0x4338433 vcpu->arch.hfscr = hr->hfscr; - 5c4: 94 33 a0 33 addic r29,r0,13204 - 5c8: 04 a8 33 e8 ld r1,-22524(r19) + 5c4: 8c 33 90 33 addic r28,r16,13196 + 5c8: 04 94 33 a0 lhz r1,-27644(r19) vcpu->arch.purr = hr->purr; - 5cc: 33 04 ec 33 addic r31,r12,1075 - 5d0: 88 34 04 8c lbzu r0,13448(r4) + 5cc: 33 04 a8 33 addic r29,r8,1075 + 5d0: e8 33 04 ec .long 0xec0433e8 vcpu->arch.spurr = hr->spurr; - 5d4: 34 90 34 04 .long 0x4349034 - 5d8: 94 34 9c 34 addic. r4,r28,13460 + 5d4: 33 88 34 04 .long 0x4348833 + 5d8: 8c 34 90 34 addic. r4,r16,13452 vcpu->arch.ic = hr->ic; - 5dc: 04 a4 34 b4 sthu r1,-23548(r20) - 5e0: 34 04 b8 34 addic. r5,r24,1076 + 5dc: 04 94 34 9c stbu r1,-27644(r20) + 5e0: 34 04 a4 34 addic. r5,r4,1076 vc->vtb = hr->vtb; - 5e4: c0 34 04 c4 lfsu f0,13504(r4) - 5e8: 34 cc 34 00 .long 0x34cc34 + 5e4: b4 34 04 b8 lm r0,13492(r4) + 5e8: 34 c0 34 04 .long 0x434c034 vcpu->arch.fault_dar = hr->hdar; - 5ec: 04 f4 35 f8 std r1,-3068(r21) - 5f0: 35 04 fc 35 addic. r15,r28,1077 + 5ec: c4 34 cc 34 addic. r6,r12,13508 + 5f0: 00 04 f4 35 addic. r15,r20,1024 vcpu->arch.fault_dsisr = hr->hdsisr; - 5f4: 80 36 04 8c lbzu r0,13952(r4) - 5f8: 36 94 36 04 .long 0x4369436 + 5f4: f8 35 04 fc fmsub f0,f4,f23,f6 + 5f8: 35 80 36 04 .long 0x4368035 vcpu->arch.fault_gpa = hr->asdr; - 5fc: 98 36 b4 36 addic. r21,r20,13976 - 600: 04 bc 36 c4 lfsu f1,-17404(r22) + 5fc: 8c 36 94 36 addic. r20,r20,13964 + 600: 04 98 36 b4 sthu r1,-26620(r22) vcpu->arch.emul_inst = hr->heir; - 604: 36 04 cc 36 addic. r22,r12,1078 - 608: d4 36 04 d8 stfd f0,14036(r4) + 604: 36 04 bc 36 addic. r21,r28,1078 + 608: c4 36 04 cc lfdu f0,14020(r4) vcpu->arch.shregs.srr0 = hr->srr0; - 60c: 36 b0 37 04 .long 0x437b036 - 610: b0 3b d0 3b addi r30,r16,15280 + 60c: 36 d4 36 04 .long 0x436d436 + 610: d8 36 b0 37 addic. r29,r16,14040 vcpu->arch.shregs.srr1 = hr->srr1; - 614: 04 b0 3f dc stfdu f1,-20476(r31) - 618: 3f 00 04 e4 lxssp v0,60(r4) + 614: 04 b0 3b d0 stfs f1,-20476(r27) + 618: 3b 04 b0 3f addis r29,r16,1083 vcpu->arch.shregs.sprg0 = hr->sprg[0]; - 61c: 37 e8 37 04 .long 0x437e837 - 620: f4 37 f8 37 addic. r31,r24,14324 + 61c: dc 3f 00 04 .long 0x4003fdc + 620: e4 37 e8 37 addic. r31,r8,14308 vcpu->arch.shregs.sprg1 = hr->sprg[1]; - 624: 04 fc 37 98 stb r1,-1020(r23) - 628: 38 04 9c 38 addi r4,r28,1080 + 624: 04 f4 37 f8 std r1,-3068(r23) + 628: 37 04 fc 37 addic. r31,r28,1079 vcpu->arch.shregs.sprg2 = hr->sprg[2]; - 62c: a0 38 04 a4 lhzu r0,14496(r4) - 630: 38 b4 38 04 .long 0x438b438 + 62c: 98 38 04 9c stbu r0,14488(r4) + 630: 38 a0 38 04 .long 0x438a038 vcpu->arch.shregs.sprg3 = hr->sprg[3]; - 634: b8 38 c4 38 addi r6,r4,14520 - 638: 04 c8 38 94 stwu r1,-14332(r24) + 634: a4 38 b4 38 addi r5,r20,14500 + 638: 04 b8 38 c4 lfsu f1,-18428(r24) vcpu->arch.pid = hr->pidr; - 63c: 39 04 9c 39 addi r12,r28,1081 - 640: a0 39 04 a4 lhzu r0,14752(r4) + 63c: 38 04 c8 38 addi r6,r8,1080 + 640: 94 39 04 9c stbu r0,14740(r4) vcpu->arch.cfar = hr->cfar; - 644: 39 c4 39 04 .long 0x439c439 - 648: d0 39 d4 39 addi r14,r20,14800 + 644: 39 a0 39 04 .long 0x439a039 + 648: a4 39 c4 39 addi r14,r4,14756 vcpu->arch.ppr = hr->ppr; - 64c: 04 dc 39 e0 psq_l f1,-1020(r25),1,5 - 650: 39 04 e4 39 addi r15,r4,1081 + 64c: 04 d0 39 d4 stfsu f1,-12284(r25) + 650: 39 04 dc 39 addi r14,r28,1081 } - 654: ec 39 00 04 .long 0x40039ec - 658: 9c 3a ac 3a addi r21,r12,15004 - 65c: 04 b0 3a b8 lm r1,-20476(r26) - 660: 3a 04 b8 3a addi r21,r24,1082 - 664: bc 3a 00 04 .long 0x4003abc -{ - 668: 9c 3a 9c 3a addi r20,r28,15004 - 66c: 04 a0 3a ac lhau r1,-24572(r26) - 670: 3a 04 b0 3a addi r21,r16,1082 - 674: b8 3a 00 04 .long 0x4003ab8 - 678: ac 3a b0 3a addi r21,r16,15020 + 654: e0 39 04 e4 psq_lu f0,-1568(r4),0,3 + 658: 39 ec 39 00 .long 0x39ec39 + 65c: 04 9c 3a ac lhau r1,-25596(r26) + 660: 3a 04 b0 3a addi r21,r16,1082 + 664: b8 3a 04 b8 lm r0,15032(r4) +{ + 668: 3a bc 3a 00 .long 0x3abc3a + 66c: 04 9c 3a 9c stbu r1,-25596(r26) + 670: 3a 04 a0 3a li r21,1082 + 674: ac 3a 04 b0 sth r0,15020(r4) + 678: 3a b8 3a 00 .long 0x3ab83a return 0; - 67c: 04 b8 3a b8 lm r1,-18428(r26) - 680: 3a 04 bc 3a addi r21,r28,1082 - 684: cc 3a 04 d0 stfs f0,15052(r4) - 688: 3b f0 3b 04 .long 0x43bf03b - 68c: 90 3d c8 3d addis r14,r8,15760 - 690: 04 d0 3d d4 stfsu f1,-12284(r29) + 67c: 04 ac 3a b0 sth r1,-21500(r26) + 680: 3a 04 b8 3a addi r21,r24,1082 + 684: b8 3a 04 bc stmw r0,15032(r4) + 688: 3a cc 3a 04 .long 0x43acc3a + 68c: d0 3b f0 3b addi r31,r16,15312 + 690: 04 90 3d c8 lfd f1,-28668(r29) { - 694: 3d 04 dc 3d addis r14,r28,1085 - 698: e4 3d 04 dc stfdu f0,15844(r4) + 694: 3d 04 d0 3d addis r14,r16,1085 + 698: d4 3d 04 dc stfdu f0,15828(r4) return kmalloc_large(size, flags); - 69c: 3f e0 3f 04 .long 0x43fe03f - 6a0: c0 40 c4 40 bge- cr1,4760 - 6a4: 00 04 b8 3a addi r21,r24,1024 - 6a8: b8 3a 04 bc stmw r0,15032(r4) - 6ac: 3a cc 3a 04 .long 0x43acc3a - 6b0: d0 3b d4 3b addi r30,r20,15312 + 69c: 3d e4 3d 04 .long 0x43de43d + 6a0: dc 3f e0 3f lis r31,16348 + 6a4: 04 c0 40 c4 .long 0xc440c004 + 6a8: 40 00 04 b8 lm r0,64(r4) + 6ac: 3a b8 3a 04 .long 0x43ab83a + 6b0: bc 3a cc 3a addi r22,r12,15036 pseries_partition_tb = kmalloc(sizeof(struct patb_entry) << ptb_order, - 6b4: 04 90 3d 94 stwu r1,-28668(r29) - if (unlikely(!pseries_partition_tb)) { - 6b8: 3d 00 04 a4 lhzu r0,61(r4) + 6b4: 04 d0 3b d4 stfsu f1,-12284(r27) + if (!pseries_partition_tb) { + 6b8: 3b 04 90 3d addis r12,r16,1083 pseries_partition_tb = kmalloc(sizeof(struct patb_entry) << ptb_order, - 6bc: 42 a8 42 04 .long 0x442a842 - 6c0: b4 42 b4 42 .long 0x42b442b4 - if (unlikely(!pseries_partition_tb)) { - 6c4: 00 04 b0 43 .long 0x43b00400 + 6bc: 94 3d 00 04 .long 0x4003d94 + 6c0: a4 42 a8 42 .long 0x42a842a4 + if (!pseries_partition_tb) { + 6c4: 04 b4 42 b4 sthu r2,-19452(r2) ptcr = __pa(pseries_partition_tb) | (ptb_order - 12); - 6c8: c0 43 04 cc lfdu f0,17344(r4) + 6c8: 42 00 04 b0 sth r0,66(r4) rc = plpar_hcall_norets(H_SET_PARTITION_TABLE, ptcr); - 6cc: 43 d0 43 04 .long 0x443d043 - 6d0: d4 43 d8 43 .long 0x43d843d4 - 6d4: 00 04 b0 43 .long 0x43b00400 - 6d8: b0 43 04 b4 sthu r0,17328(r4) - 6dc: 43 c0 43 04 .long 0x443c043 + 6cc: 43 c0 43 04 .long 0x443c043 + 6d0: cc 43 d0 43 .long 0x43d043cc + 6d4: 04 d4 43 d8 stfd f2,-11260(r3) + 6d8: 43 00 04 b0 sth r0,67(r4) + 6dc: 43 b0 43 04 .long 0x443b043 if (rc != H_SUCCESS) { - 6e0: cc 43 d0 43 .long 0x43d043cc - 6e4: 00 04 e0 43 .long 0x43e00400 + 6e0: b4 43 c0 43 .long 0x43c043b4 + 6e4: 04 cc 43 d0 stfs f2,-13308(r3) return 0; - 6e8: e8 43 04 ec .long 0xec0443e8 + 6e8: 43 00 04 e0 lq r0,64(r4) } - 6ec: 43 84 44 04 .long 0x4448443 - 6f0: f0 46 80 47 .long 0x478046f0 - 6f4: 04 84 47 84 lwzu r2,-31740(r7) - 6f8: 47 00 04 ec drrnd. f0,f4,f0,0 - 6fc: 43 f0 43 04 .long 0x443f043 + 6ec: 43 e8 43 04 .long 0x443e843 + 6f0: ec 43 84 44 .long 0x448443ec + 6f4: 04 d0 46 e0 lq r2,-12288(r6) + 6f8: 46 04 e4 46 .long 0x46e40446 + 6fc: e4 46 00 04 .long 0x40046e4 return -ENODEV; - 700: f4 43 84 44 .long 0x448443f4 + 700: ec 43 f0 43 .long 0x43f043ec } - 704: 04 f0 46 80 lwz r2,-4092(r6) + 704: 04 f4 43 84 lwzu r2,-3068(r3) pr_err("kvm-hv: Parent hypervisor does not support nesting (rc=%ld)\n", - 708: 47 04 84 47 .long 0x47840447 - 70c: 84 47 00 04 .long 0x4004784 - 710: ec 43 f0 43 .long 0x43f043ec - 714: 04 f4 43 f8 std r2,-3068(r3) + 708: 44 04 d0 46 .long 0x46d00444 + 70c: e0 46 04 e4 psq_lu f0,1760(r4),0,4 + 710: 46 e4 46 00 .long 0x46e446 + 714: 04 ec 43 f0 xsmaxcdp vs2,vs35,vs29 kfree(pseries_partition_tb); - 718: 43 04 f0 46 .long 0x46f00443 - 71c: 80 47 04 84 lwzu r0,18304(r4) - 720: 47 84 47 00 .long 0x478447 + 718: 43 04 f4 43 .long 0x43f40443 + 71c: f8 43 04 d0 stfs f0,17400(r4) + 720: 46 e0 46 04 .long 0x446e046 pseries_partition_tb = NULL; - 724: 04 98 45 a8 lha r2,-26620(r5) + 724: e4 46 e4 46 .long 0x46e446e4 return -ENODEV; - 728: 45 04 b4 45 .long 0x45b40445 + 728: 00 04 98 45 .long 0x45980400 pseries_partition_tb = NULL; - 72c: b8 45 04 bc stmw r0,17848(r4) + 72c: a8 45 04 b4 sthu r0,17832(r4) return -ENODEV; - 730: 45 c0 45 00 .long 0x45c045 + 730: 45 b8 45 04 .long 0x445b845 pr_err("kvm-hv: failed to allocated nested partition table\n"); - 734: 04 98 45 98 stb r2,-26620(r5) - 738: 45 04 9c 45 .long 0x459c0445 - 73c: a8 45 04 b4 sthu r0,17832(r4) - 740: 45 b8 45 00 .long 0x45b845 + 734: bc 45 c0 45 .long 0x45c045bc + 738: 00 04 98 45 .long 0x45980400 + 73c: 98 45 04 9c stbu r0,17816(r4) + 740: 45 a8 45 04 .long 0x445a845 return -ENOMEM; - 744: 04 c8 45 d0 stfs f2,-14332(r5) - 748: 45 04 d4 45 .long 0x45d40445 - 74c: ec 45 04 80 lwz r0,17900(r4) - 750: 47 84 47 00 .long 0x478447 - 754: 04 d4 45 d8 stfd f2,-11260(r5) -{ - 758: 45 04 dc 45 .long 0x45dc0445 - 75c: ec 45 04 80 lwz r0,17900(r4) - 760: 47 84 47 00 .long 0x478447 - 764: 04 d4 45 d8 stfd f2,-11260(r5) - 768: 45 04 dc 45 .long 0x45dc0445 - 76c: e0 45 04 80 lwz r0,17888(r4) + 744: b4 45 b8 45 .long 0x45b845b4 + 748: 00 04 c8 45 .long 0x45c80400 + 74c: d0 45 04 d4 stfsu f0,17872(r4) + 750: 45 ec 45 04 .long 0x445ec45 + 754: e0 46 e4 46 .long 0x46e446e0 +{ + 758: 00 04 d4 45 .long 0x45d40400 + 75c: d8 45 04 dc stfdu f0,17880(r4) + 760: 45 ec 45 04 .long 0x445ec45 + 764: e0 46 e4 46 .long 0x46e446e0 + 768: 00 04 d4 45 .long 0x45d40400 + 76c: d8 45 04 dc stfdu f0,17880(r4) if (kvmhv_on_pseries() && pseries_partition_tb) { - 770: 47 84 47 00 .long 0x478447 + 770: 45 e0 45 04 .long 0x445e045 { - 774: 04 b8 47 bc stmw r2,-18428(r7) - 778: 47 04 dc 47 .long 0x47dc0447 + 774: e0 46 e4 46 .long 0x46e446e0 + 778: 00 04 a8 47 .long 0x47a80400 if (kvmhv_on_pseries() && pseries_partition_tb) { - 77c: e4 47 04 f8 std r0,18404(r4) - 780: 47 b0 48 00 .long 0x48b047 - 784: 04 d8 4a d8 stfd f2,-10236(r10) - 788: 4a 04 e4 4a ba fee40448 + 77c: ac 47 04 cc lfdu f0,18348(r4) + 780: 47 d4 47 04 .long 0x447d447 + 784: e8 47 a0 48 b a04f6c + 788: 00 04 c8 4a b fffffffffec80b88 plpar_hcall_norets(H_SET_PARTITION_TABLE, 0); - 78c: ec 4a 04 fc .long 0xfc044aec - 790: 4a 84 4b 00 .long 0x4b844a - 794: 04 98 4c 9c stbu r2,-26620(r12) - 798: 4c 04 f8 4c .long 0x4cf8044c - 79c: fc 4c 04 88 lbz r0,19708(r4) - 7a0: 4d 88 4d 00 .long 0x4d884d - 7a4: 04 b4 4c c4 lfsu f2,-19452(r12) + 78c: c8 4a 04 d4 stfsu f0,19144(r4) + 790: 4a dc 4a 04 .long 0x44adc4a + 794: ec 4a f4 4a b fffffffffef45280 + 798: 00 04 88 4c .long 0x4c880400 + 79c: 8c 4c 04 e8 ld r0,19596(r4) + 7a0: 4c ec 4c 04 .long 0x44cec4c + 7a4: f8 4c f8 4c .long 0x4cf84cf8 kfree(pseries_partition_tb); - 7a8: 4c 04 a4 4d .long 0x4da4044c - 7ac: a8 4d 04 ac lhau r0,19880(r4) - 7b0: 4d bc 4d 00 .long 0x4dbc4d + 7a8: 00 04 a4 4c .long 0x4ca40400 + 7ac: b4 4c 04 94 stwu r0,19636(r4) + 7b0: 4d 98 4d 04 .long 0x44d984d pseries_partition_tb = NULL; - 7b4: 04 e4 4e a0 lhz r2,-7164(r14) - 7b8: 4f 04 ac 4f .long 0x4fac044f - 7bc: b4 4f 04 b8 lm r0,20404(r4) - 7c0: 4f c4 50 04 .long 0x450c44f -} - 7c4: d4 50 fc 50 rlwimi r28,r7,10,3,10 - 7c8: 04 e0 51 8c lbzu r2,-8188(r17) - 7cc: 53 00 04 88 lbz r0,83(r4) - 7d0: 4f a0 4f 04 .long 0x44fa04f - 7d4: b0 4f b4 4f .long 0x4fb44fb0 -{ - 7d8: 04 c4 4f cc lfdu f2,-15356(r15) - 7dc: 4f 04 d0 4f .long 0x4fd0044f - 7e0: f0 4f 04 d8 stfd f0,20464(r4) - 7e4: 50 dc 50 04 .long 0x450dc50 - 7e8: e8 50 f0 50 rlwimi r16,r7,10,3,20 - 7ec: 04 f4 50 fc dsubq f2,f16,f30 + 7b4: 9c 4d ac 4d .long 0x4dac4d9c + 7b8: 00 04 d4 4e .long 0x4ed40400 + 7bc: 90 4f 04 9c stbu r0,20368(r4) + 7c0: 4f a4 4f 04 .long 0x44fa44f +} + 7c4: a8 4f b4 50 rlwimi r20,r5,9,30,20 + 7c8: 04 c4 50 ec dsub f2,f16,f24 + 7cc: 50 04 d0 51 rlwimi r16,r14,0,17,8 + 7d0: fc 52 00 04 .long 0x40052fc + 7d4: f8 4e 90 4f .long 0x4f904ef8 +{ + 7d8: 04 a0 4f a4 lhzu r2,-24572(r15) + 7dc: 4f 04 b4 4f .long 0x4fb4044f + 7e0: bc 4f 04 c0 lfs f0,20412(r4) + 7e4: 4f e0 4f 04 .long 0x44fe04f + 7e8: c8 50 cc 50 rlwimi r12,r6,10,3,4 + 7ec: 04 d8 50 e0 lq r2,-10240(r16) mmu_partition_table_set_entry(lpid, dw0, dw1, true); - 7f0: 50 00 04 88 lbz r0,80(r4) + 7f0: 50 04 e4 50 rlwimi r4,r7,0,17,8 { - 7f4: 4f a0 4f 04 .long 0x44fa04f - 7f8: b0 4f b4 4f .long 0x4fb44fb0 + 7f4: ec 50 00 04 .long 0x40050ec + 7f8: f8 4e 90 4f .long 0x4f904ef8 mmu_partition_table_set_entry(lpid, dw0, dw1, true); - 7fc: 04 c4 4f cc lfdu f2,-15356(r15) - 800: 4f 04 d0 4f .long 0x4fd0044f + 7fc: 04 a0 4f a4 lhzu r2,-24572(r15) + 800: 4f 04 b4 4f .long 0x4fb4044f } - 804: d0 4f 04 d8 stfd f0,20432(r4) - 808: 50 dc 50 04 .long 0x450dc50 - 80c: e8 50 f0 50 rlwimi r16,r7,10,3,20 - 810: 04 f4 50 f4 psq_stu f2,1028(r16),1,7 - 814: 50 00 04 98 stb r0,80(r4) - 818: 54 d0 54 04 .long 0x454d054 - 81c: d0 54 d0 54 rlwinm r16,r6,10,19,8 + 804: bc 4f 04 c0 lfs f0,20412(r4) + 808: 4f c0 4f 04 .long 0x44fc04f + 80c: c8 50 cc 50 rlwimi r12,r6,10,3,4 + 810: 04 d8 50 e0 lq r2,-10240(r16) + 814: 50 04 e4 50 rlwimi r4,r7,0,17,8 + 818: e4 50 00 04 .long 0x40050e4 + 81c: 88 54 c0 54 rlwinm r0,r6,10,18,4 pseries_partition_tb[lpid].patb0 = cpu_to_be64(dw0); - 820: 04 dc 54 b8 lm r2,-9212(r20) - 824: 57 00 04 98 stb r0,87(r4) - 828: 54 a8 54 04 .long 0x454a854 - 82c: d0 54 d0 54 rlwinm r16,r6,10,19,8 - 830: 04 dc 54 f0 xsmaxcdp vs2,vs52,vs27 - 834: 54 00 04 98 stb r0,84(r4) + 820: 04 c0 54 c0 lfs f2,-16380(r20) + 824: 54 04 cc 54 rlwinm r12,r6,0,17,10 + 828: a8 57 00 04 .long 0x40057a8 + 82c: 88 54 98 54 rlwinm r24,r4,10,18,4 + 830: 04 c0 54 c0 lfs f2,-16380(r20) + 834: 54 04 cc 54 rlwinm r12,r6,0,17,10 pseries_partition_tb[lpid].patb1 = cpu_to_be64(dw1); - 838: 54 a8 54 04 .long 0x454a854 - 83c: dc 54 f0 54 rlwinm r16,r7,10,19,14 + 838: e0 54 00 04 .long 0x40054e0 + 83c: 88 54 98 54 rlwinm r24,r4,10,18,4 kvmhv_flush_lpid(lpid); - 840: 00 04 98 54 rlwinm r24,r4,0,16,0 - 844: a8 54 04 e0 lq r0,21664(r4) - 848: 54 ec 54 00 .long 0x54ec54 - 84c: 04 a8 54 d0 stfs f2,-22524(r20) - 850: 54 04 8c 55 rlwinm r12,r12,0,17,10 - 854: 94 55 04 98 stb r0,21908(r4) -{ - 858: 55 ac 55 04 .long 0x455ac55 - 85c: b0 55 b8 55 rlwinm r24,r13,10,22,24 - 860: 04 d8 55 f8 std r2,-10236(r21) - 864: 55 04 80 56 rlwinm. r0,r20,0,17,10 - 868: b0 57 00 04 .long 0x40057b0 - 86c: b0 54 d0 54 rlwinm r16,r6,10,18,24 - 870: 04 90 55 94 stwu r2,-28668(r21) + 840: 04 cc 54 e0 lq r2,-13312(r20) + 844: 54 00 04 88 lbz r0,84(r4) + 848: 54 98 54 04 .long 0x4549854 + 84c: d0 54 dc 54 rlwinm r28,r6,10,19,8 + 850: 00 04 98 54 rlwinm r24,r4,0,16,0 + 854: c0 54 04 fc .long 0xfc0454c0 +{ + 858: 54 84 55 04 .long 0x4558454 + 85c: 88 55 9c 55 rlwinm r28,r12,10,22,4 + 860: 04 a0 55 a8 lha r2,-24572(r21) + 864: 55 04 c8 55 rlwinm. r8,r14,0,17,10 + 868: e8 55 04 f0 psq_st f0,1512(r4),0,5 + 86c: 55 a0 57 00 .long 0x57a055 + 870: 04 a0 54 c0 lfs f2,-24572(r20) struct patb_entry ptbl_entry; - 874: 55 04 98 55 rlwinm. r24,r12,0,17,10 + 874: 54 04 80 55 rlwinm r0,r12,0,17,10 { - 878: 98 55 04 a0 lhz r0,21912(r4) - 87c: 55 ac 55 04 .long 0x455ac55 - 880: dc 55 e0 55 rlwinm r0,r15,10,23,14 - 884: 04 e4 55 f0 xsmaxcdp vs2,vs53,vs28 - 888: 55 00 04 80 lwz r0,85(r4) + 878: 84 55 04 88 lbz r0,21892(r4) + 87c: 55 88 55 04 .long 0x4558855 + 880: 90 55 9c 55 rlwinm r28,r12,10,22,8 + 884: 04 cc 55 d0 stfs f2,-13308(r21) + 888: 55 04 d4 55 rlwinm. r20,r14,0,17,10 struct kvm *kvm = gp->l1_host; - 88c: 56 98 56 04 .long 0x4569856 + 88c: e0 55 00 04 .long 0x40055e0 ptbl_addr = (kvm->arch.l1_ptcr & PRTB_MASK) + (gp->l1_lpid << 4); - 890: 9c 56 a8 56 rlwinm r8,r21,10,26,14 + 890: f0 55 88 56 rlwinm r8,r20,10,23,24 { - 894: 04 ac 56 b8 lm r2,-21500(r22) - 898: 56 00 04 b4 sthu r0,86(r4) - 89c: 59 98 5a 04 .long 0x45a9859 + 894: 04 8c 56 98 stb r2,-29692(r22) + 898: 56 04 9c 56 rlwinm r28,r20,0,17,11 + 89c: a8 56 00 04 .long 0x40056a8 struct patb_entry ptbl_entry; - 8a0: d0 5a a0 5c rlwnm r0,r5,r11,11,8 - 8a4: 04 b0 5c e0 lq r2,-20480(r28) + 8a0: a4 59 88 5a rlmi r8,r20,r11,6,18 + 8a4: 04 c0 5a 90 stw r2,-16380(r26) ptbl_addr = (kvm->arch.l1_ptcr & PRTB_MASK) + (gp->l1_lpid << 4); - 8a8: 5c 04 80 5d rlwnm r0,r12,r0,17,14 + 8a8: 5c 04 a0 5c rlwnm r0,r5,r0,17,14 if (gp->l1_lpid < (1ul << ((kvm->arch.l1_ptcr & PRTS_MASK) + 12 - 4))) { - 8ac: 94 5d 04 a0 lhz r0,23956(r4) - 8b0: 5d c4 5d 00 .long 0x5dc45d - 8b4: 04 b8 59 bc stmw r2,-18428(r25) - 8b8: 59 04 c0 59 rlmi. r0,r14,r0,17,12 - 8bc: c0 59 00 04 .long 0x40059c0 + 8ac: d0 5c 04 f0 xxlxor vs0,vs4,vs11 + 8b0: 5c 84 5d 04 .long 0x45d845c + 8b4: 90 5d b4 5d rlwnm r20,r13,r11,22,8 + 8b8: 00 04 a8 59 rlmi r8,r13,r0,16,0 + 8bc: ac 59 04 b0 sth r0,22956(r4) gp->process_table = 0; - 8c0: e8 5a f4 5a rlmi r20,r23,r11,11,20 + 8c0: 59 b0 59 00 .long 0x59b059 gp->l1_gr_to_hr = 0; - 8c4: 04 f4 5a a0 lhz r2,-3068(r26) + 8c4: 04 d8 5a e4 psq_lu f2,-2044(r26),1,5 __pa(gp->shadow_pgtable) | RADIX_PGD_INDEX_SIZE; - 8c8: 5c 04 80 5d rlwnm r0,r12,r0,17,14 + 8c8: 5a 04 e4 5a rlmi r4,r23,r0,17,13 dw0 = PATB_HR | radix__get_tree_size() | - 8cc: 94 5d 04 a0 lhz r0,23956(r4) + 8cc: 90 5c 04 f0 xxlor vs0,vs4,vs11 kvmhv_set_ptbl_entry(gp->shadow_lpid, dw0, gp->process_table); - 8d0: 5d c4 5d 00 .long 0x5dc45d - 8d4: 04 e8 5a f4 psq_stu f2,-2044(r26),1,6 - 8d8: 5a 04 84 5b rlmi r4,r28,r0,17,13 + 8d0: 5c 84 5d 04 .long 0x45d845c + 8d4: 90 5d b4 5d rlwnm r20,r13,r11,22,8 + 8d8: 00 04 d8 5a rlmi r24,r22,r0,16,0 dw0 = PATB_HR | radix__get_tree_size() | - 8dc: 8c 5b 00 04 .long 0x4005b8c + 8dc: e4 5a 04 f4 psq_stu f0,-1308(r4),0,5 __pa(gp->shadow_pgtable) | RADIX_PGD_INDEX_SIZE; - 8e0: fc 5a 80 5b rlmi r0,r28,r11,11,30 + 8e0: 5a fc 5a 00 .long 0x5afc5a dw0 = PATB_HR | radix__get_tree_size() | - 8e4: 04 a0 5b bc stmw r2,-24572(r27) + 8e4: 04 ec 5a f0 xsmaxcdp vs2,vs58,vs29 kvmhv_set_ptbl_entry(gp->shadow_lpid, dw0, gp->process_table); - 8e8: 5b 04 f4 5b rlmi. r20,r31,r0,17,13 - 8ec: fc 5b 04 80 lwz r0,23548(r4) + 8e8: 5a 04 90 5b rlmi r16,r28,r0,17,13 + 8ec: ac 5b 04 e4 psq_lu f0,-1108(r4),0,5 } - 8f0: 5d 94 5d 00 .long 0x5d945d - 8f4: 04 fc 5a 80 lwz r2,-1020(r26) - 8f8: 5b 04 a0 5b rlmi. r0,r29,r0,17,13 - 8fc: bc 5b 04 f4 psq_stu f0,-1092(r4),0,5 - 900: 5b fc 5b 04 .long 0x45bfc5b - 904: 80 5d 94 5d rlwnm r20,r12,r11,22,0 - 908: 00 04 fc 5a rlmi r28,r23,r0,16,0 - 90c: 80 5b 04 b4 sthu r0,23424(r4) - 910: 5b bc 5b 00 .long 0x5bbc5b - 914: 04 a0 5b b4 sthu r2,-24572(r27) - 918: 5b 04 f4 5b rlmi. r20,r31,r0,17,13 - 91c: fc 5b 04 80 lwz r0,23548(r4) - 920: 5d 94 5d 00 .long 0x5d945d - 924: 04 80 5c a0 lhz r2,-32764(r28) - 928: 5c 04 a0 5d rlwnm r0,r13,r0,17,14 - 92c: c4 5d 00 04 .long 0x4005dc4 + 8f0: 5b ec 5b 04 .long 0x45bec5b + 8f4: f0 5c 84 5d rlwnm r4,r12,r11,19,24 + 8f8: 00 04 ec 5a rlmi r12,r23,r0,16,0 + 8fc: f0 5a 04 90 stw r0,23280(r4) + 900: 5b ac 5b 04 .long 0x45bac5b + 904: e4 5b ec 5b rlmi r12,r31,r11,15,18 + 908: 04 f0 5c 84 lwzu r2,-4092(r28) + 90c: 5d 00 04 ec .long 0xec04005d + 910: 5a f0 5a 04 .long 0x45af05a + 914: a4 5b ac 5b rlmi r12,r29,r11,14,18 + 918: 00 04 90 5b rlmi r16,r28,r0,16,0 + 91c: a4 5b 04 e4 psq_lu f0,-1116(r4),0,5 + 920: 5b ec 5b 04 .long 0x45bec5b + 924: f0 5c 84 5d rlwnm r4,r12,r11,19,24 + 928: 00 04 f0 5b rlmi r16,r31,r0,16,0 + 92c: 90 5c 04 90 stw r0,23696(r4) int srcu_idx = srcu_read_lock(&kvm->srcu); - 930: 80 5c a0 5c rlwnm r0,r5,r11,18,0 - 934: 04 a0 5d c4 lfsu f2,-24572(r29) + 930: 5d b4 5d 00 .long 0x5db45d + 934: 04 f0 5b 90 stw r2,-4092(r27) ptbl_addr = (kvm->arch.l1_ptcr & PRTB_MASK) + (gp->l1_lpid << 4); - 938: 5d 00 04 80 lwz r0,93(r4) - 93c: 5c 94 5c 04 .long 0x45c945c + 938: 5c 04 90 5d rlwnm r16,r12,r0,17,14 + 93c: b4 5d 00 04 .long 0x4005db4 retval = __srcu_read_lock(ssp); - 940: a0 5d c4 5d rlwnm r4,r14,r11,22,16 - 944: 00 04 84 5e rlwnm r4,r20,r0,16,0 - 948: 88 5e 04 ac lhau r0,24200(r4) - 94c: 5e b0 5e 04 .long 0x45eb05e - 950: c0 5e d0 5e rlwnm r16,r22,r11,27,0 + 940: f0 5b 84 5c rlwnm r4,r4,r11,15,24 + 944: 04 90 5d b4 sthu r2,-28668(r29) + 948: 5d 00 04 f4 stxv vs32,80(r4) + 94c: 5d f8 5d 04 .long 0x45df85d + 950: 9c 5e a0 5e rlwnm r0,r21,r11,26,14 ret = kvm_read_guest(kvm, ptbl_addr, - 954: 00 04 c0 5f rlwnm r0,r30,r0,16,0 - 958: 84 61 04 a4 lhzu r0,24964(r4) - 95c: 62 f0 62 00 .long 0x62f062 - 960: 04 dc 63 a8 lha r3,-9212(r3) - 964: 69 04 80 6a xori r0,r20,1129 - 968: a0 75 04 a8 lha r0,30112(r4) - 96c: 75 c8 75 00 .long 0x75c875 - 970: 04 c8 64 88 lbz r3,-14332(r4) - WARN_ON_ONCE(idx & ~0x1); - 974: 65 04 a8 65 oris r8,r13,1125 - 978: b8 65 04 c8 lfd f0,26040(r4) - 97c: 65 d8 65 04 .long 0x465d865 + 954: 04 b0 5e c0 lfs f2,-20476(r30) + 958: 5e 00 04 b0 sth r0,94(r4) + 95c: 5f f4 60 04 .long 0x460f45f + 960: 94 62 e0 62 ori r0,r23,25236 + 964: 00 04 cc 63 ori r12,r30,1024 + 968: 98 69 04 f0 psq_st f0,-1640(r4),0,6 + 96c: 69 90 75 04 .long 0x4759069 + 970: 98 75 b8 75 andis. r24,r13,30104 + WARN_ON_ONCE(idx & ~0x1); + 974: 00 04 b8 64 oris r24,r5,1024 + 978: f8 64 04 98 stb r0,25848(r4) + 97c: 65 a8 65 04 .long 0x465a865 __srcu_read_unlock(ssp, idx); - 980: d0 68 94 69 xori r20,r12,26832 - 984: 04 f0 6a 90 stw r3,-4092(r10) - 988: 6b 04 c0 6d xoris r0,r14,1131 - 98c: f0 6d 04 d0 stfs f0,28144(r4) + 980: b8 65 c8 65 oris r8,r14,26040 + 984: 04 c0 68 84 lwzu r3,-16380(r8) + 988: 69 04 e0 6a xori r0,r23,1129 + 98c: 80 6b 04 b0 sth r0,27520(r4) if (ret) { - 990: 71 f0 71 04 .long 0x471f071 - 994: b0 72 d0 72 andi. r16,r22,29360 - 998: 04 90 74 b0 sth r3,-28668(r20) - 99c: 74 00 04 bc stmw r0,116(r4) + 990: 6d e0 6d 04 .long 0x46de06d + 994: c0 71 e0 71 andi. r0,r15,29120 + 998: 04 a0 72 c0 lfs f3,-24572(r18) + 99c: 72 04 80 74 andis. r0,r4,1138 gp->l1_gr_to_hr = be64_to_cpu(ptbl_entry.patb0); - 9a0: 66 c0 66 04 .long 0x466c066 + 9a0: a0 74 00 04 .long 0x40074a0 gp->process_table = be64_to_cpu(ptbl_entry.patb1); - 9a4: c4 66 cc 66 oris r12,r22,26308 + 9a4: ac 66 b0 66 oris r16,r21,26284 gp->l1_gr_to_hr = be64_to_cpu(ptbl_entry.patb0); - 9a8: 00 04 cc 66 oris r12,r22,1024 + 9a8: 04 b4 66 bc stmw r3,-19452(r6) gp->process_table = be64_to_cpu(ptbl_entry.patb1); - 9ac: e4 66 04 e8 ld r0,26340(r4) - 9b0: 66 e8 66 00 .long 0x66e866 - 9b4: 04 88 67 b0 sth r3,-30716(r7) - 9b8: 67 04 b0 74 andis. r16,r5,1127 - 9bc: c0 74 00 04 .long 0x40074c0 - WARN_ON_ONCE(idx & ~0x1); - 9c0: 88 67 b0 67 oris r16,r29,26504 - 9c4: 04 b0 74 c0 lfs f3,-20476(r20) -} - 9c8: 74 00 04 88 lbz r0,116(r4) - 9cc: 67 a4 67 04 .long 0x467a467 - 9d0: b0 74 c0 74 andis. r0,r6,29872 - 9d4: 00 04 84 68 xori r4,r4,1024 -{ - 9d8: 88 68 04 8c lbzu r0,26760(r4) - 9dc: 68 b4 68 04 .long 0x468b468 - 9e0: b8 68 bc 68 xori r28,r5,26808 - 9e4: 04 80 74 90 stw r3,-32764(r20) - 9e8: 74 04 c0 74 andis. r0,r6,1140 - 9ec: c4 74 04 d0 stfs f0,29892(r4) - 9f0: 74 e0 74 00 .long 0x74e074 - 9f4: 04 a0 6b b4 sthu r3,-24572(r11) - 9f8: 6c 04 a8 6d xoris r8,r13,1132 + 9ac: 66 00 04 bc stmw r0,102(r4) + 9b0: 66 d4 66 04 .long 0x466d466 + 9b4: d8 66 d8 66 oris r24,r22,26328 + 9b8: 00 04 f8 66 oris r24,r23,1024 + 9bc: a0 67 04 a0 lhz r0,26528(r4) + WARN_ON_ONCE(idx & ~0x1); + 9c0: 74 b0 74 00 .long 0x74b074 + 9c4: 04 f8 66 a0 lhz r3,-2044(r6) +} + 9c8: 67 04 a0 74 andis. r0,r5,1127 + 9cc: b0 74 00 04 .long 0x40074b0 + 9d0: f8 66 94 67 oris r20,r28,26360 + 9d4: 04 a0 74 b0 sth r3,-24572(r20) +{ + 9d8: 74 00 04 f4 psq_stu f0,116(r4),0,0 + 9dc: 67 f8 67 04 .long 0x467f867 + 9e0: fc 67 a4 68 xori r4,r5,26620 + 9e4: 04 a8 68 ac lhau r3,-22524(r8) + 9e8: 68 04 f0 73 andi. r16,r31,1128 + 9ec: 80 74 04 b0 sth r0,29824(r4) + 9f0: 74 b4 74 04 .long 0x474b474 + 9f4: c0 74 d0 74 andis. r16,r6,29888 + 9f8: 00 04 90 6b xori r16,r28,1024 if (gp->shadow_pgtable) { - 9fc: c0 6d 04 c0 lfs f0,28096(r4) - a00: 73 d0 73 04 .long 0x473d073 - a04: f0 74 a0 75 andis. r0,r13,29936 + 9fc: a4 6c 04 98 stb r0,27812(r4) + a00: 6d b0 6d 04 .long 0x46db06d + a04: b0 73 c0 73 andi. r0,r30,29616 kvmppc_free_pgtable_radix(kvm, gp->shadow_pgtable, - a08: 00 04 a0 6b xori r0,r29,1024 - a0c: a8 6b 04 a8 lha r0,27560(r4) - a10: 6b b4 6c 04 .long 0x46cb46b - a14: a8 6d b0 6d xoris r16,r13,28072 + a08: 04 e0 74 90 stw r3,-8188(r20) + a0c: 75 00 04 90 stw r0,117(r4) + a10: 6b 98 6b 04 .long 0x46b986b + a14: 98 6b a4 6c xoris r4,r5,27544 pgd_free(kvm->mm, gp->shadow_pgtable); - a18: 04 b0 6d c0 lfs f3,-20476(r13) - a1c: 6d 04 c0 73 andi. r0,r30,1133 + a18: 04 98 6d a0 lhz r3,-26620(r13) + a1c: 6d 04 a0 6d xoris r0,r13,1133 free_page((unsigned long)pgd); - a20: d0 73 04 f0 psq_st f0,976(r4),0,7 - a24: 74 a0 75 00 .long 0x75a074 - a28: 04 b0 6b b4 sthu r3,-20476(r11) + a20: b0 6d 04 b0 sth r0,28080(r4) + a24: 73 c0 73 04 .long 0x473c073 + a28: e0 74 90 75 andis. r16,r12,29920 kvmhv_set_ptbl_entry(gp->shadow_lpid, 0, 0); - a2c: 6b 04 b8 6b xori r24,r29,1131 - a30: c0 6b 00 04 .long 0x4006bc0 - a34: 8c 6c b4 6c xoris r20,r5,27788 - a38: 04 f0 74 a0 lhz r3,-4092(r20) + a2c: 00 04 a0 6b xori r0,r29,1024 + a30: a4 6b 04 a8 lha r0,27556(r4) + a34: 6b b0 6b 00 .long 0x6bb06b + a38: 04 fc 6b a4 lhzu r3,-1020(r11) kvmppc_free_lpid(gp->shadow_lpid); - a3c: 75 00 04 8c lbzu r0,117(r4) - a40: 6c b4 6c 04 .long 0x46cb46c - a44: f0 74 a0 75 andis. r0,r13,29936 + a3c: 6c 04 e0 74 andis. r0,r7,1132 + a40: 90 75 00 04 .long 0x4007590 + a44: fc 6b a4 6c xoris r4,r5,27644 kfree(gp); - a48: 00 04 8c 6c xoris r12,r4,1024 - a4c: a8 6c 04 f0 xststdcsp cr0,vs13,4 - a50: 74 a0 75 00 .long 0x75a074 -} - a54: 04 f0 6d 80 lwz r3,-4092(r13) - a58: 6e 04 84 70 andi. r4,r4,1134 - a5c: 8c 70 04 98 stb r0,28812(r4) - a60: 70 9c 70 04 .long 0x4709c70 - a64: a0 71 a4 71 andi. r4,r13,29088 - a68: 04 a8 71 d0 stfs f3,-22524(r17) - a6c: 71 04 f0 72 andi. r16,r23,1137 + a48: 04 e0 74 90 stw r3,-8188(r20) + a4c: 75 00 04 fc .long 0xfc040075 + a50: 6b 98 6c 04 .long 0x46c986b +} + a54: e0 74 90 75 andis. r16,r12,29920 + a58: 00 04 e0 6d xoris r0,r15,1024 + a5c: f0 6d 04 f4 psq_stu f0,-528(r4),0,6 + a60: 6f fc 6f 04 .long 0x46ffc6f + a64: 88 70 8c 70 andi. r12,r4,28808 + a68: 04 90 71 94 stwu r3,-28668(r17) + a6c: 71 04 98 71 andi. r24,r12,1137 kmem_cache_free(PGT_CACHE(PGD_INDEX_SIZE), pgd); - a70: f4 72 04 e0 lq r0,29424(r4) - a74: 74 f0 74 00 .long 0x74f074 - a78: 04 80 6e 84 lwzu r3,-32764(r14) - a7c: 6e 04 88 6e xoris r8,r20,1134 - a80: 90 6e 04 94 stwu r0,28304(r4) - a84: 6e 98 6e 04 .long 0x46e986e - a88: a0 6e ac 6e xoris r12,r21,28320 - a8c: 04 b0 6e b4 sthu r3,-20476(r14) - a90: 6e 00 04 f4 stxsd v0,108(r4) - a94: 6f f8 6f 04 .long 0x46ff86f + a70: c0 71 04 e0 lq r0,29120(r4) + a74: 72 e4 72 04 .long 0x472e472 + a78: d0 74 e0 74 andis. r0,r7,29904 + a7c: 00 04 f0 6d xoris r16,r15,1024 + a80: f4 6d 04 f8 std r0,28148(r4) + a84: 6d 80 6e 04 .long 0x46e806d + a88: 84 6e 88 6e xoris r8,r20,28292 + a8c: 04 90 6e 9c stbu r3,-28668(r14) + a90: 6e 04 a0 6e xoris r0,r21,1134 + a94: a4 6e 00 04 .long 0x4006ea4 kvmhv_set_ptbl_entry(gp->shadow_lpid, 0, 0); - a98: 80 70 84 70 andi. r4,r4,28800 - a9c: 04 90 70 94 stwu r3,-28668(r16) - aa0: 70 04 d0 72 andi. r16,r22,1136 - aa4: e8 72 04 ec .long 0xec0472e8 + a98: e4 6f e8 6f xoris r8,r31,28644 + a9c: 04 f0 6f f4 psq_stu f3,4(r15),1,7 + aa0: 6f 04 80 70 andi. r0,r4,1135 + aa4: 84 70 04 c0 lfs f0,28804(r4) kvmppc_free_lpid(gp->shadow_lpid); - aa8: 72 f0 72 04 .long 0x472f072 - aac: f4 72 b0 73 andi. r16,r29,29428 - ab0: 04 e0 73 80 lwz r3,-8188(r19) + aa8: 72 d8 72 04 .long 0x472d872 + aac: dc 72 e0 72 andi. r0,r23,29404 + ab0: 04 e4 72 a0 lhz r3,-7164(r18) kfree(gp); - ab4: 74 00 04 b0 sth r0,116(r4) - ab8: 76 d8 76 04 .long 0x476d876 - abc: 90 77 94 77 andis. r20,r28,30608 -} - ac0: 04 9c 77 b8 lm r3,-25596(r23) - ac4: 77 00 04 b0 sth r0,119(r4) - ac8: 76 d8 76 04 .long 0x476d876 - acc: 90 77 94 77 andis. r20,r28,30608 - ad0: 04 9c 77 b8 lm r3,-25596(r23) - ad4: 77 00 04 b0 sth r0,119(r4) - ad8: 76 cc 76 04 .long 0x476cc76 - adc: 90 77 94 77 andis. r20,r28,30608 - ae0: 04 9c 77 b8 lm r3,-25596(r23) - ae4: Address 0x0000000000000ae4 is out of bounds. + ab4: 73 04 d0 73 andi. r16,r30,1139 + ab8: f0 73 00 04 .long 0x40073f0 + abc: a0 76 c8 76 andis. r8,r22,30368 +} + ac0: 04 80 77 84 lwzu r3,-32764(r23) + ac4: 77 04 8c 77 andis. r12,r28,1143 + ac8: a8 77 00 04 .long 0x40077a8 + acc: a0 76 c8 76 andis. r8,r22,30368 + ad0: 04 80 77 84 lwzu r3,-32764(r23) + ad4: 77 04 8c 77 andis. r12,r28,1143 + ad8: a8 77 00 04 .long 0x40077a8 + adc: a0 76 bc 76 andis. r28,r21,30368 + ae0: 04 80 77 84 lwzu r3,-32764(r23) + ae4: 77 04 8c 77 andis. r12,r28,1143 +static void kvmhv_emulate_tlbie_lpid(struct kvm_vcpu *vcpu, + ae8: Address 0x0000000000000ae8 is out of bounds. Disassembly of section .debug_line: 0000000000000000 <.debug_line>: { - 0: 2c 49 00 00 .long 0x492c + 0: 31 49 00 00 .long 0x4931 4: 03 00 d9 0b tdi 30,r25,3 for (; addr < ((unsigned long *) (regs + 1)); addr++) 8: 00 00 04 01 .long 0x1040000 @@ -41158,12 +41162,12 @@ static bool kvmhv_invalidate_shadow_pte( 6b0: 03 00 00 73 andi. r0,r24,3 pseries_partition_tb = kmalloc(sizeof(struct patb_entry) << ptb_order, 6b4: 79 73 63 61 ori r3,r11,29561 - if (unlikely(!pseries_partition_tb)) { + if (!pseries_partition_tb) { 6b8: 6c 6c 5f 75 andis. r31,r10,27756 pseries_partition_tb = kmalloc(sizeof(struct patb_entry) << ptb_order, 6bc: 73 65 72 5f rlwnm. r18,r27,r12,21,25 6c0: 64 69 73 70 andi. r19,r3,26980 - if (unlikely(!pseries_partition_tb)) { + if (!pseries_partition_tb) { 6c4: 61 74 63 68 xori r3,r3,29793 ptcr = __pa(pseries_partition_tb) | (ptb_order - 12); 6c8: 2e 68 00 03 .long 0x300682e @@ -41873,7 +41877,7 @@ static void kvmhv_emulate_tlbie_lpid(str f4c: 31 01 20 01 .long 0x1200131 f50: 01 01 04 01 .long 0x1040101 f54: 05 0d 03 89 lbz r8,3333(r3) - f58: 05 2e 06 4a bl fffffffffe063d5c + f58: 05 2e 06 4a bl fffffffffe063d5c f5c: 05 06 43 05 .long 0x5430605 f60: 0d 03 79 20 subfic r3,r25,781 idr_destroy(&kvm->arch.kvm_nested_guest_idr); @@ -42118,7 +42122,7 @@ static void kvmhv_emulate_tlbie_lpid(str 1270: 05 02 06 21 subfic r8,r6,517 1274: 05 17 06 01 .long 0x1061705 1278: 05 13 20 05 .long 0x5201305 - if (unlikely(!gp)) + if (!gp) 127c: 02 06 21 05 .long 0x5210602 1280: 14 06 01 05 .long 0x5010614 1284: 10 20 05 02 .long 0x2052010 @@ -42222,13 +42226,11 @@ static void kvmhv_emulate_tlbie_lpid(str 13a4: 7e 01 05 02 .long 0x205017e 13a8: 14 06 20 04 .long 0x4200614 13ac: 0c 05 09 06 .long 0x609050c - ms->mmiowb_pending = 0; + pgd = kmem_cache_alloc(PGT_CACHE(PGD_INDEX_SIZE), 13b0: 03 fc 01 01 .long 0x101fc03 13b4: 06 01 04 01 .long 0x1040106 - mmiowb(); 13b8: 05 02 06 03 .long 0x3060205 13bc: ab 01 01 14 .long 0x140101ab - pgd = kmem_cache_alloc(PGT_CACHE(PGD_INDEX_SIZE), 13c0: 14 04 0d 05 .long 0x50d0414 13c4: 2e 03 fc 00 .long 0xfc032e 13c8: 01 05 02 14 .long 0x14020501 @@ -42236,11 +42238,13 @@ static void kvmhv_emulate_tlbie_lpid(str 13d0: 05 04 13 04 .long 0x4130405 13d4: 01 05 01 06 .long 0x6010501 13d8: 03 ef 7e 01 .long 0x17eef03 + if (unlikely(!pgd)) 13dc: 04 0d 05 0b tdnei r5,3332 + ms->mmiowb_pending = 0; 13e0: 03 91 01 2e cmpwi cr4,r1,-28413 13e4: 04 01 05 01 .long 0x1050104 + mmiowb(); 13e8: 03 ef 7e 2e cmpdi cr4,r30,-4349 - if (unlikely(!pgd)) 13ec: 04 0d 05 0b tdnei r5,3332 pgd_free(kvm->mm, gp->shadow_pgtable); 13f0: 03 91 01 2e cmpwi cr4,r1,-28413 @@ -42810,7 +42814,7 @@ static void kvmhv_emulate_tlbie_lpid(str 1a5c: 01 05 0d 03 .long 0x30d0501 1a60: be 7f 01 05 .long 0x5017fbe vcpu->arch.hfscr = l2_hv->hfscr & (HFSCR_INTR_CAUSE | vcpu->arch.hfscr_permitted); - 1a64: 02 14 06 4a ba fe061400 + 1a64: 02 14 06 4a ba fe061400 1a68: 05 03 06 03 .long 0x3060305 vcpu->arch.dawrx0 = l2_hv->dawrx0 & ~DAWRX_HYP; 1a6c: c1 00 01 04 .long 0x40100c1 @@ -42827,7 +42831,7 @@ static void kvmhv_emulate_tlbie_lpid(str vcpu->arch.hfscr = l2_hv->hfscr & (HFSCR_INTR_CAUSE | vcpu->arch.hfscr_permitted); 1a84: 01 03 dc 03 .long 0x3dc0301 if ((l2_hv->ciabr & CIABR_PRIV) == CIABR_PRIV_HYPER) - 1a88: 4a 05 02 4b ba ff020548 + 1a88: 4a 05 02 4b ba ff020548 vcpu->arch.hfscr = l2_hv->hfscr & (HFSCR_INTR_CAUSE | vcpu->arch.hfscr_permitted); 1a8c: 05 01 06 11 vslq v8,v6,v0 vcpu->arch.dawrx0 = l2_hv->dawrx0 & ~DAWRX_HYP; @@ -42885,7 +42889,7 @@ static void kvmhv_emulate_tlbie_lpid(str 1b0c: 15 01 01 2e cmpwi cr4,r1,277 1b10: 01 13 13 01 .long 0x1131301 l2_regs.msr = vcpu->arch.shregs.msr; - 1b14: 01 13 06 4a bl fffffffffe062e14 + 1b14: 01 13 06 4a bl fffffffffe062e14 hr->srr0 = vcpu->arch.shregs.srr0; 1b18: 04 01 06 03 .long 0x3060104 hr->dpdes = vc->dpdes; @@ -42990,7 +42994,7 @@ static void kvmhv_emulate_tlbie_lpid(str vc->pcr = hr->pcr | PCR_MASK; 1bfc: 2e 06 03 e7 lxsd v24,1580(r3) vcpu->arch.dawrx0 = hr->dawrx0; - 1c00: 00 58 06 4a b fffffffffe067400 + 1c00: 00 58 06 4a b fffffffffe067400 vc->pcr = hr->pcr | PCR_MASK; 1c04: 05 06 3d 05 .long 0x53d0605 vcpu->arch.ciabr = hr->ciabr; @@ -43465,7 +43469,7 @@ static void kvmhv_emulate_tlbie_lpid(str 216c: 58 2e 04 01 .long 0x1042e58 2170: 05 02 06 03 .long 0x3060205 2174: f0 00 01 05 .long 0x50100f0 - if (unlikely(!buf)) + if (!buf) 2178: 05 06 01 05 .long 0x5010605 217c: 02 06 3e 06 .long 0x63e0602 gp = kvmhv_get_nested(vcpu->kvm, l1_lpid, false); @@ -43603,2926 +43607,2929 @@ static void kvmhv_emulate_tlbie_lpid(str 231c: 01 05 05 06 .long 0x6050501 2320: 01 05 03 06 .long 0x6030501 2324: 21 06 2e 04 .long 0x42e0621 - 2328: 0a 06 03 ea lwa r16,1544(r3) - 232c: 79 3c 05 16 .long 0x16053c79 + 2328: 04 05 02 06 .long 0x6020504 + 232c: 03 d2 79 3c addis r3,r25,-11773 if (rc) - 2330: 06 01 05 03 .long 0x3050106 - 2334: 06 2f 01 01 .long 0x1012f06 + 2330: 06 01 04 0c twi 0,r4,262 + 2334: 05 09 06 03 .long 0x3060905 rc = kvm_vcpu_write_guest(vcpu, gp_to, buf, n); - 2338: 01 01 06 2e cmpwi cr4,r6,257 - 233c: 04 04 05 02 .long 0x2050404 - return H_NO_MEM; - 2340: 06 03 67 01 .long 0x1670306 - 2344: 06 01 04 0c twi 0,r4,262 - 2348: 05 09 06 03 .long 0x3060905 - 234c: f2 01 01 06 .long 0x60101f2 - 2350: 01 04 0f 05 .long 0x50f0401 - 2354: 02 06 03 a7 lhzu r24,1538(r3) - 2358: 7e 01 05 08 tdi 0,r5,382 - 235c: 06 01 05 02 .long 0x2050106 + 2338: f2 01 01 06 .long 0x60101f2 + 233c: 01 04 0f 05 .long 0x50f0401 return H_PARAMETER; - 2360: 06 ae 06 20 subfic r0,r6,-20986 - 2364: 04 01 05 03 .long 0x3050104 - 2368: 06 03 85 05 .long 0x5850306 - 236c: 01 05 02 03 .long 0x3020501 - WARN_ON_ONCE(idx & ~0x1); - 2370: 09 01 04 0f twnei r4,265 - 2374: 05 14 03 8a lbz r16,5125(r3) - 2378: 7b 20 05 02 .long 0x205207b - 237c: 14 04 0c 05 .long 0x50c0414 - 2380: 1d 03 f5 01 .long 0x1f5031d - 2384: 01 05 02 14 .long 0x14020501 - 2388: 05 1d 03 af lhau r24,7429(r3) - 238c: 7f 01 05 02 .long 0x205017f - 2390: 14 15 01 01 .long 0x1011514 - 2394: 01 03 0b 01 .long 0x10b0301 -{ - 2398: 15 15 13 05 .long 0x5131515 - 239c: 09 01 01 01 .long 0x1010109 - 23a0: 04 04 05 1d mulli r8,r5,1028 - 23a4: 03 82 7e 01 .long 0x17e8203 - 23a8: 05 02 14 06 .long 0x6140205 - 23ac: 20 04 0c 05 .long 0x50c0420 - 23b0: 09 06 03 fc .long 0xfc030609 - 23b4: 01 01 06 01 .long 0x1060101 + 2340: 02 06 03 a7 lhzu r24,1538(r3) + 2344: 7e 01 05 08 tdi 0,r5,382 + 2348: 06 01 05 02 .long 0x2050106 + 234c: 06 ae 06 20 subfic r0,r6,-20986 + WARN_ON_ONCE(idx & ~0x1); + 2350: 04 0a 05 03 .long 0x3050a04 + 2354: 06 0f 05 16 .long 0x16050f06 + 2358: 06 01 05 03 .long 0x3050106 + 235c: 06 2f 01 01 .long 0x1012f06 + 2360: 01 01 06 2e cmpwi cr4,r6,257 + return H_NO_MEM; + 2364: 04 01 06 03 .long 0x3060104 + 2368: 87 05 01 05 .long 0x5010587 + 236c: 02 03 09 01 .long 0x1090302 + 2370: 04 0f 05 14 .long 0x14050f04 + 2374: 03 8a 7b 20 subfic r3,r27,-30205 + 2378: 05 02 14 04 .long 0x4140205 + 237c: 0c 05 1d 03 .long 0x31d050c + 2380: f5 01 01 05 .long 0x50101f5 + 2384: 02 14 05 1d mulli r8,r5,5122 +{ + 2388: 03 af 7f 01 .long 0x17faf03 + 238c: 05 02 14 15 .long 0x15140205 + 2390: 01 01 01 03 .long 0x3010101 + 2394: 0b 01 15 15 .long 0x1515010b + 2398: 13 05 09 01 .long 0x1090513 + 239c: 01 01 04 04 .long 0x4040101 + 23a0: 05 1d 03 82 lwz r16,7429(r3) + 23a4: 7e 01 05 02 .long 0x205017e for (psize = 0; psize < MMU_PAGE_COUNT; psize++) { - 23b8: 04 0f 05 03 .long 0x3050f04 + 23a8: 14 06 20 04 .long 0x4200614 int shift, shadow_shift; - 23bc: 06 03 c4 7e mtdcrx r4,r22 + 23ac: 0c 05 09 06 .long 0x609050c { - 23c0: 01 05 14 03 .long 0x3140501 - 23c4: 53 01 05 02 .long 0x2050153 - 23c8: 15 06 3c 04 .long 0x43c0615 - 23cc: 01 06 03 9f stbu r24,1537(r3) - 23d0: 05 01 3d 06 .long 0x63d0105 - 23d4: 01 06 03 ee .long 0xee030601 - 23d8: 00 01 05 03 .long 0x3050100 - 23dc: 03 0b 4a 05 .long 0x54a0b03 - 23e0: 0d 03 e0 7e .long 0x7ee0030d - 23e4: 01 05 02 14 .long 0x14020501 - 23e8: 05 06 06 01 .long 0x1060605 - 23ec: 2e 05 05 3c addis r0,r5,1326 + 23b0: 03 fc 01 01 .long 0x101fc03 + 23b4: 06 01 04 0f twnei r4,262 + 23b8: 05 03 06 03 .long 0x3060305 + 23bc: c4 7e 01 05 .long 0x5017ec4 + 23c0: 14 03 53 01 .long 0x1530314 + 23c4: 05 02 15 06 .long 0x6150205 + 23c8: 3c 04 01 06 .long 0x601043c + 23cc: 03 9f 05 01 .long 0x1059f03 + 23d0: 3d 06 01 06 .long 0x601063d + 23d4: 03 ee 00 01 .long 0x100ee03 + 23d8: 05 03 03 0b tdnei r3,773 + 23dc: 4a 05 0d 03 .long 0x30d054a struct kvm *kvm = vcpu->kvm; - 23f0: 05 03 06 2f cmpwi cr6,r6,773 + 23e0: e0 7e 01 05 .long 0x5017ee0 int shift, shadow_shift; - 23f4: 01 01 01 01 .long 0x1010101 - 23f8: 01 01 20 01 .long 0x1200101 - 23fc: 06 01 06 03 .long 0x3060106 + 23e4: 02 14 05 06 .long 0x6051402 + 23e8: 06 01 2e 05 .long 0x52e0106 + 23ec: 05 3c 05 03 .long 0x3053c05 if (mmu_psize_defs[psize].ap == ap) - 2400: 9e 01 01 06 .long 0x601019e + 23f0: 06 2f 01 01 .long 0x1012f06 for (psize = 0; psize < MMU_PAGE_COUNT; psize++) { - 2404: 2e 06 2f 13 vmaddfp v25,v15,v24,v0 + 23f4: 01 01 01 01 .long 0x1010101 if (mmu_psize_defs[psize].ap == ap) - 2408: 05 09 06 01 .long 0x1060905 - 240c: 04 0a 05 03 .long 0x3050a04 + 23f8: 20 01 06 01 .long 0x1060120 + 23fc: 06 03 9e 01 .long 0x19e0306 for (psize = 0; psize < MMU_PAGE_COUNT; psize++) { - 2410: 06 03 f0 79 rldicr r16,r15,32,12 - 2414: 4a 05 16 06 .long 0x616054a - 2418: 01 05 03 06 .long 0x6030501 + 2400: 01 06 2e 06 .long 0x62e0601 + 2404: 2f 13 05 09 tdgti r5,4911 + 2408: 06 01 04 0a tdlti r4,262 if (mmu_psize_defs[psize].ap == ap) - 241c: 2f 01 01 01 .long 0x101012f - 2420: 01 06 2e 04 .long 0x42e0601 - 2424: 04 05 02 06 .long 0x6020504 + 240c: 05 03 06 03 .long 0x3060305 + 2410: f0 79 4a 05 .long 0x54a79f0 + 2414: 16 06 01 05 .long 0x5010616 return mmu_psize_defs[psize].shift; - 2428: 03 67 01 06 .long 0x6016703 - 242c: 01 04 0c 05 .long 0x50c0401 + 2418: 03 06 2f 01 .long 0x12f0603 + 241c: 01 01 01 06 .long 0x6010101 shift = ap_to_shift(ap); - 2430: 09 06 03 f2 xvnmaddasp vs48,vs3,vs0 + 2420: 2e 04 04 05 .long 0x504042e if (shift < 0) - 2434: 01 01 06 01 .long 0x1060101 - 2438: 04 0f 05 14 .long 0x14050f04 + 2424: 02 06 03 67 oris r3,r24,1538 + 2428: 01 06 01 04 .long 0x4010601 gp = kvmhv_get_nested(kvm, lpid, false); - 243c: 06 03 c1 7e mtdcrx r1,r22 - 2440: 01 05 02 16 .long 0x16020501 + 242c: 0c 05 09 06 .long 0x609050c + 2430: 03 f2 01 01 .long 0x101f203 if (!gp) /* No such guest -> nothing to do */ - 2444: 06 20 74 2e cmpdi cr4,r20,8198 - 2448: 04 01 05 01 .long 0x1050104 - 244c: 06 03 fd 05 .long 0x5fd0306 + 2434: 06 01 04 0f twnei r4,262 + 2438: 05 14 06 03 .long 0x3061405 + 243c: c1 7e 01 05 .long 0x5017ec1 addr &= ~((1UL << shift) - 1); - 2450: 4a 05 02 4b ba ff020548 + 2440: 02 16 06 20 subfic r0,r6,5634 npages = 1UL << (shift - PAGE_SHIFT); - 2454: 05 01 06 11 vslq v8,v6,v0 - 2458: 05 0e 67 05 .long 0x5670e05 + 2444: 74 2e 04 01 .long 0x1042e74 + 2448: 05 01 06 03 .long 0x3060105 mutex_lock(&gp->tlb_lock); - 245c: 02 06 21 14 .long 0x14210602 + 244c: fd 05 4a 05 .long 0x54a05fd addr = epn << 12; - 2460: 04 06 05 1d mulli r8,r5,1540 + 2450: 02 4b 05 01 .long 0x1054b02 npages -= 1UL << (shadow_shift - PAGE_SHIFT); - 2464: 03 86 7c 01 .long 0x17c8603 + 2454: 06 11 05 0e twlti r5,4358 addr &= ~((1UL << shift) - 1); - 2468: 05 02 14 06 .long 0x6140205 + 2458: 67 05 02 06 .long 0x6020567 mutex_lock(&gp->tlb_lock); - 246c: 20 2e 04 01 .long 0x1042e20 + 245c: 21 14 04 06 .long 0x6041421 npages = 1UL << (shift - PAGE_SHIFT); - 2470: 06 03 f9 03 .long 0x3f90306 + 2460: 05 1d 03 86 lwzu r16,7429(r3) addr &= ~((1UL << shift) - 1); - 2474: 01 05 08 06 .long 0x6080501 - 2478: 01 04 0a 05 .long 0x50a0401 + 2464: 7c 01 05 02 .long 0x205017c + 2468: 14 06 20 2e cmpdi cr4,r0,1556 mutex_lock(&gp->tlb_lock); - 247c: 1c 03 dc 79 .long 0x79dc031c - 2480: 20 04 01 05 .long 0x5010420 - 2484: 08 03 a4 06 .long 0x6a40308 - 2488: 20 05 06 20 subfic r0,r6,1312 - 248c: 05 02 06 21 subfic r8,r6,517 + 246c: 04 01 06 03 .long 0x3060104 + 2470: f9 03 01 05 .long 0x50103f9 + 2474: 08 06 01 04 .long 0x4010608 + 2478: 0a 05 1c 03 .long 0x31c050a + 247c: dc 79 20 04 .long 0x42079dc kvmhv_invalidate_shadow_pte(vcpu, gp, addr, &shadow_shift); - 2490: 04 06 05 1d mulli r8,r5,1540 - 2494: 03 ac 7c 01 .long 0x17cac03 - 2498: 05 02 14 04 .long 0x4140205 - 249c: 09 05 14 03 .long 0x3140509 - 24a0: 85 7e 01 05 .long 0x5017e85 + 2480: 01 05 08 03 .long 0x3080501 + 2484: a4 06 20 05 .long 0x52006a4 + 2488: 06 20 05 02 .long 0x2052006 + 248c: 06 21 04 06 .long 0x6042106 + 2490: 05 1d 03 ac lhau r0,7429(r3) npages -= 1UL << (shadow_shift - PAGE_SHIFT); - 24a4: 02 14 01 01 .long 0x1011402 - 24a8: 13 04 06 05 .long 0x5060413 + 2494: 7c 01 05 02 .long 0x205017c + 2498: 14 04 09 05 .long 0x5090414 addr += 1UL << shadow_shift; - 24ac: 14 03 3a 01 .long 0x13a0314 + 249c: 14 03 85 7e .long 0x7e850314 npages -= 1UL << (shadow_shift - PAGE_SHIFT); - 24b0: 05 02 14 04 .long 0x4140205 + 24a0: 01 05 02 14 .long 0x14020501 addr += 1UL << shadow_shift; - 24b4: 0a 05 14 03 .long 0x314050a + 24a4: 01 01 13 04 .long 0x4130101 } while (npages > 0); - 24b8: e7 7e 01 05 .long 0x5017ee7 - 24bc: 02 14 14 05 .long 0x5141402 + 24a8: 06 05 14 03 .long 0x3140506 + 24ac: 3a 01 05 02 .long 0x205013a mutex_unlock(&gp->tlb_lock); - 24c0: 05 06 01 05 .long 0x5010605 - 24c4: 03 06 3e 05 .long 0x53e0603 - 24c8: 02 15 05 13 vavgsb v24,v5,v2 + 24b0: 14 04 0a 05 .long 0x50a0414 + 24b4: 14 03 e7 7e .long 0x7ee70314 + 24b8: 01 05 02 14 .long 0x14020501 kvmhv_put_nested(gp); - 24cc: 06 01 04 06 .long 0x6040106 - 24d0: 05 02 06 03 .long 0x3060205 - 24d4: 91 01 3c 04 .long 0x43c0191 - 24d8: 0b 05 14 03 .long 0x314050b + 24bc: 14 05 05 06 .long 0x6050514 + 24c0: 01 05 03 06 .long 0x6030501 + 24c4: 3e 05 02 15 .long 0x1502053e + 24c8: 05 13 06 01 .long 0x1061305 return 0; - 24dc: 4f 01 05 02 .long 0x205014f + 24cc: 04 06 05 02 .long 0x2050604 } - 24e0: 14 01 01 01 .long 0x1010114 + 24d0: 06 03 91 01 .long 0x1910306 + 24d4: 3c 04 0b 05 .long 0x50b043c + 24d8: 14 03 4f 01 .long 0x14f0314 + 24dc: 05 02 14 01 .long 0x1140205 + 24e0: 01 01 01 01 .long 0x1010101 24e4: 01 01 01 01 .long 0x1010101 - 24e8: 01 01 20 01 .long 0x1200101 - 24ec: 01 01 01 01 .long 0x1010101 - 24f0: 01 06 20 06 .long 0x6200601 - 24f4: 20 01 01 01 .long 0x1010120 - 24f8: 13 06 01 04 .long 0x4010613 - 24fc: 06 06 03 2f cmpwi cr6,r3,1542 - 2500: 01 06 01 04 .long 0x4010601 - 2504: 09 06 03 43 bcl- 24,so,2b0c <.debug_line+0x2b0c> - 2508: 01 06 01 04 plxv vs16,4395697665(r3) - 250c: 01 06 03 ca - 2510: 05 01 05 05 .long 0x5050105 - 2514: 06 01 05 01 .long 0x1050106 - 2518: 30 3c 20 05 .long 0x5203c30 - 251c: 03 06 57 05 .long 0x5570603 + 24e8: 20 01 01 01 .long 0x1010120 + 24ec: 01 01 01 06 .long 0x6010101 + 24f0: 20 06 20 01 .long 0x1200620 + 24f4: 01 01 13 06 .long 0x6130101 + 24f8: 01 04 06 06 .long 0x6060401 + 24fc: 03 2f 01 06 .long 0x6012f03 + 2500: 01 04 09 06 .long 0x6090401 + 2504: 03 43 01 06 .long 0x6014303 + 2508: 01 04 01 06 .long 0x6010401 + 250c: 03 ca 05 01 .long 0x105ca03 return -EINVAL; - 2520: 01 06 13 05 .long 0x5130601 - 2524: 03 1f 05 01 .long 0x1051f03 - 2528: 21 2e 20 05 .long 0x5202e21 - 252c: 03 1f 04 0a tdlti r4,7939 -} - 2530: 06 03 dc 79 rldicr r28,r14,32,12 - 2534: 2e 05 16 06 .long 0x616052e - 2538: 01 05 03 06 .long 0x6030501 - 253c: 2f 01 01 01 .long 0x101012f - 2540: 01 04 01 05 .long 0x5010401 - 2544: 01 03 eb 01 .long 0x1eb0301 -{ - 2548: 4a 06 4a 05 .long 0x54a064a - 254c: 11 3f 05 01 .long 0x1053f11 - 2550: 1d 05 11 23 subfic r24,r17,1309 - 2554: 05 01 1d 05 .long 0x51d0105 - 2558: 11 31 05 01 .long 0x1053111 - 255c: 1d 05 02 06 .long 0x602051d - 2560: 3d 13 13 05 .long 0x513133d - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2564: 11 06 01 05 .long 0x5010611 - 2568: 1a 2e 05 02 .long 0x2052e1a -{ - 256c: 06 59 05 18 .long 0x18055906 - 2570: 06 01 05 25 dozi r8,r5,262 - 2574: 58 05 02 06 .long 0x6020558 - 2578: 59 05 0a 06 .long 0x60a0559 + 2510: 05 05 06 01 .long 0x1060505 + 2514: 05 01 30 3c addis r1,r16,261 + 2518: 20 05 03 06 .long 0x6030520 + 251c: 57 05 01 06 .long 0x6010557 +} + 2520: 13 05 03 1f mulli r24,r3,1299 + 2524: 05 01 21 2e cmpdi cr4,r1,261 + 2528: 20 05 03 1f mulli r24,r3,1312 + 252c: 04 0a 06 03 .long 0x3060a04 + 2530: dc 79 2e 05 .long 0x52e79dc + 2534: 16 06 01 05 .long 0x5010616 +{ + 2538: 03 06 2f 01 .long 0x12f0603 + 253c: 01 01 01 04 .long 0x4010101 + 2540: 01 05 01 03 .long 0x3010501 + 2544: eb 01 4a 06 .long 0x64a01eb + 2548: 4a 05 11 3f addis r24,r17,1354 + 254c: 05 01 1d 05 .long 0x51d0105 + 2550: 11 23 05 01 .long 0x1052311 + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); + 2554: 1d 05 11 31 addic r8,r17,1309 + 2558: 05 01 1d 05 .long 0x51d0105 +{ + 255c: 02 06 3d 13 vctzh v25,v0 + 2560: 13 05 11 06 .long 0x6110513 + 2564: 01 05 1a 2e cmpwi cr4,r26,1281 + 2568: 05 02 06 59 rlmi. r6,r8,r0,8,2 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 257c: 17 05 17 1b .long 0x1b170517 - 2580: 05 02 06 21 subfic r8,r6,517 + 256c: 05 18 06 01 .long 0x1061805 + 2570: 05 25 58 05 .long 0x5582505 if (!gp) - 2584: 13 13 14 05 .long 0x5141313 - 2588: 05 06 01 05 .long 0x5010605 + 2574: 02 06 59 05 .long 0x5590602 + 2578: 0a 06 17 05 .long 0x517060a pte = __find_linux_pte(gp->shadow_pgtable, ea, NULL, hshift); - 258c: 02 06 3f 05 .long 0x53f0602 - 2590: 06 06 01 05 .long 0x5010606 - 2594: 05 20 05 06 .long 0x6052005 - 2598: 2e 05 05 2e cmpwi cr4,r5,1326 - 259c: 05 02 06 32 addic r16,r6,517 - 25a0: 04 10 05 15 .long 0x15051004 -} - 25a4: 03 21 01 05 .long 0x5012103 - 25a8: 02 14 04 0e twlti r4,5122 - 25ac: 05 0b 06 03 .long 0x3060b05 - 25b0: e2 7e 2e 04 .long 0x42e7ee2 - 25b4: 10 05 1c 03 .long 0x31c0510 - 25b8: 9e 01 20 20 subfic r1,r0,414 - 25bc: 04 01 05 02 .long 0x2050104 - 25c0: 06 03 5e 01 .long 0x15e0306 - 25c4: 04 10 05 15 .long 0x15051004 -{ - 25c8: 03 20 01 05 .long 0x5012003 - 25cc: 02 14 05 1c mulli r0,r5,5122 - 25d0: 06 01 20 04 .long 0x4200106 - 25d4: 01 05 02 06 .long 0x6020501 - 25d8: 03 5f 01 04 .long 0x4015f03 - 25dc: 14 05 14 03 .long 0x3140514 - 25e0: ae 04 01 05 .long 0x50104ae + 257c: 17 1b 05 02 .long 0x2051b17 + 2580: 06 21 13 13 .long 0x13132106 + 2584: 14 05 05 06 .long 0x6050514 + 2588: 01 05 02 06 .long 0x6020501 + 258c: 3f 05 06 06 .long 0x606053f + 2590: 01 05 05 20 subfic r0,r5,1281 +} + 2594: 05 06 2e 05 .long 0x52e0605 + 2598: 05 2e 05 02 .long 0x2052e05 + 259c: 06 32 04 10 vcmpgtub v0,v4,v6 + 25a0: 05 15 03 21 subfic r8,r3,5381 + 25a4: 01 05 02 14 .long 0x14020501 + 25a8: 04 0e 05 0b tdnei r5,3588 + 25ac: 06 03 e2 7e mtdcrx r2,r23 + 25b0: 2e 04 10 05 .long 0x510042e + 25b4: 1c 03 9e 01 .long 0x19e031c +{ + 25b8: 20 20 04 01 .long 0x1042020 + 25bc: 05 02 06 03 .long 0x3060205 + 25c0: 5e 01 04 10 vextddvlx v0,v4,v0,r5 + 25c4: 05 15 03 20 subfic r0,r3,5381 + 25c8: 01 05 02 14 .long 0x14020501 + 25cc: 05 1c 06 01 .long 0x1061c05 + 25d0: 20 04 01 05 .long 0x5010420 struct llist_node *entry = ((struct llist_head *) rmapp)->first; - 25e4: 02 18 04 0e twlti r4,6146 + 25d4: 02 06 03 5f rlwnm r3,r24,r0,24,1 u64 rmap, new_rmap = (*n_rmap)->rmap; - 25e8: 05 13 03 ca lfd f16,4869(r3) + 25d8: 01 04 14 05 .long 0x5140401 if (!(*rmapp)) { - 25ec: 7a 01 05 02 .long 0x205017a + 25dc: 14 03 ae 04 .long 0x4ae0314 u64 rmap, new_rmap = (*n_rmap)->rmap; - 25f0: 14 14 13 05 .long 0x5131414 + 25e0: 01 05 02 18 stxvp vs0,1280(r2) if (!(*rmapp)) { - 25f4: 0b 06 01 04 .long 0x401060b - 25f8: 01 05 06 03 .long 0x3060501 - 25fc: 25 2e 04 0e twlti r4,11813 - 2600: 05 0b 03 5b rlmi. r3,r24,r1,12,2 - 2604: 20 05 02 06 .long 0x6020520 - 2608: 21 01 01 13 vmhraddshs v24,v1,v0,v4 - 260c: 06 01 04 01 .long 0x1040106 + 25e4: 04 0e 05 13 .long 0x13050e04 + 25e8: 03 ca 7a 01 .long 0x17aca03 + 25ec: 05 02 14 14 .long 0x14140205 + 25f0: 13 05 0b 06 .long 0x60b0513 + 25f4: 01 04 01 05 .long 0x5010401 + 25f8: 06 03 25 2e cmpdi cr4,r5,774 + 25fc: 04 0e 05 0b tdnei r5,3588 for_each_nest_rmap_safe(cursor, entry, &rmap) { - 2610: 05 06 03 23 subfic r24,r3,1541 - 2614: 01 04 14 05 .long 0x5140401 + 2600: 03 5b 20 05 .long 0x5205b03 + 2604: 02 06 21 01 .long 0x1210602 return !((rmap_1 ^ rmap_2) & (RMAP_NESTED_LPID_MASK | - 2618: 15 03 8c 05 .long 0x58c0315 + 2608: 01 13 06 01 .long 0x1061301 if (kvmhv_n_rmap_is_equal(rmap, new_rmap)) - 261c: 3c 20 04 01 .long 0x104203c - 2620: 05 02 06 03 .long 0x3060205 + 260c: 04 01 05 06 .long 0x6050104 + 2610: 03 23 01 04 .long 0x4012303 if (rmap & RMAP_NESTED_IS_SINGLE_ENTRY) /* Not previously a list */ - 2624: cd 7b 01 05 .long 0x5017bcd - 2628: 0c 03 a0 7f dcblc 29,0,r0 - 262c: 01 05 02 17 .long 0x17020501 - 2630: 14 05 06 06 .long 0x6060514 + 2614: 14 05 15 03 .long 0x3150514 + 2618: 8c 05 3c 20 subfic r1,r28,1420 + 261c: 04 01 05 02 .long 0x2050104 + 2620: 06 03 cd 7b rldicr r13,r30,32,12 return llist_add_batch(new, new, head); - 2634: 01 05 05 2e cmpwi cr4,r5,1281 - 2638: 05 02 06 32 addic r16,r6,517 - 263c: 04 10 05 14 .long 0x14051004 - 2640: 03 ab 01 01 .long 0x101ab03 + 2624: 01 05 0c 03 .long 0x30c0501 + 2628: a0 7f 01 05 .long 0x5017fa0 + 262c: 02 17 14 05 .long 0x5141702 + 2630: 06 06 01 05 .long 0x5010606 *n_rmap = NULL; - 2644: 05 02 14 04 .long 0x4140205 - 2648: 02 05 01 03 .long 0x3010502 - 264c: b5 04 01 01 .long 0x10104b5 - 2650: 01 06 01 04 .long 0x4010601 + 2634: 05 2e 05 02 .long 0x2052e05 + 2638: 06 32 04 10 vcmpgtub v0,v4,v6 + 263c: 05 14 03 ab lha r24,5125(r3) + 2640: 01 01 05 02 .long 0x2050101 } - 2654: 01 05 14 03 .long 0x3140501 - 2658: 9f 7a 20 04 .long 0x4207a9f + 2644: 14 04 02 05 .long 0x5020414 + 2648: 01 03 b5 04 .long 0x4b50301 *n_rmap = NULL; - 265c: 10 05 29 03 .long 0x3290510 + 264c: 01 01 01 06 .long 0x6010101 } - 2660: ac 01 20 04 .long 0x42001ac - 2664: 01 05 05 03 .long 0x3050501 - 2668: d3 7e 20 05 .long 0x5207ed3 - 266c: 03 06 2f 05 .long 0x52f0603 + 2650: 01 04 01 05 .long 0x5010401 + 2654: 14 03 9f 7a .long 0x7a9f0314 + 2658: 20 04 10 05 .long 0x5100420 + 265c: 29 03 ac 01 .long 0x1ac0329 for_each_nest_rmap_safe(cursor, entry, &rmap) { - 2670: 14 06 01 05 .long 0x5010614 - 2674: 12 9e 05 02 .long 0x2059e12 + 2660: 20 04 01 05 .long 0x5010420 + 2664: 05 03 d3 7e .long 0x7ed30305 return !((rmap_1 ^ rmap_2) & (RMAP_NESTED_LPID_MASK | - 2678: 06 22 04 16 .long 0x16042206 + 2668: 20 05 03 06 .long 0x6030520 if (kvmhv_n_rmap_is_equal(rmap, new_rmap)) - 267c: 05 13 03 8b lbz r24,4869(r3) + 266c: 2f 05 14 06 .long 0x614052f for_each_nest_rmap_safe(cursor, entry, &rmap) { - 2680: 03 01 05 02 .long 0x2050103 - 2684: 14 06 4a 04 .long 0x44a0614 + 2670: 01 05 12 9e stbu r16,1281(r18) + 2674: 05 02 06 22 subfic r16,r6,517 if (kvmhv_n_rmap_is_equal(rmap, new_rmap)) - 2688: 01 06 03 c7 lfsu f24,1537(r3) + 2678: 04 16 05 13 .long 0x13051604 for_each_nest_rmap_safe(cursor, entry, &rmap) { - 268c: 7d 01 04 14 .long 0x1404017d - 2690: 05 14 03 b4 sthu r0,5125(r3) - 2694: 04 01 05 02 .long 0x2050104 - 2698: 14 04 0e 06 .long 0x60e0414 - 269c: 03 91 7b 2e cmpdi cr4,r27,-28413 + 267c: 03 8b 03 01 .long 0x1038b03 + 2680: 05 02 14 06 .long 0x6140205 + 2684: 4a 04 01 06 .long 0x601044a + 2688: 03 c7 7d 01 .long 0x17dc703 + 268c: 04 14 05 14 .long 0x14051404 *rmapp = 0UL; - 26a0: 04 14 03 ef dsub f24,f3,f2 - 26a4: 04 20 04 0e twlti r4,8196 - 26a8: 05 14 06 03 .long 0x3061405 - 26ac: 8e 7b 20 05 .long 0x5207b8e - 26b0: 02 15 01 01 .long 0x1011502 - 26b4: 20 01 13 13 vmhaddshs v24,v19,v0,v4 - 26b8: 01 01 13 06 .long 0x6130101 + 2690: 03 b4 04 01 .long 0x104b403 + 2694: 05 02 14 04 .long 0x4140205 + 2698: 0e 06 03 91 stw r8,1550(r3) + 269c: 7b 2e 04 14 .long 0x14042e7b + 26a0: 03 ef 04 20 subfic r0,r4,-4349 + 26a4: 04 0e 05 14 .long 0x14050e04 + 26a8: 06 03 8e 7b rldicr r14,r28,32,12 (*n_rmap)->list.next = (struct llist_node *) rmap; - 26bc: 20 2e 04 01 .long 0x1042e20 - 26c0: 06 03 37 01 .long 0x1370306 - 26c4: 06 20 05 0a tdlti r5,8198 - 26c8: 21 05 01 03 .long 0x3010521 - 26cc: f3 00 2e 82 lwz r17,243(r14) - 26d0: 20 05 02 06 .long 0x6020520 -} - 26d4: 03 bb 7e 3c addis r3,r30,-17661 - 26d8: 04 16 06 03 .long 0x3061604 - 26dc: 89 03 01 04 .long 0x4010389 + 26ac: 20 05 02 15 .long 0x15020520 + 26b0: 01 01 20 01 .long 0x1200101 + 26b4: 13 13 01 01 .long 0x1011313 + 26b8: 13 06 20 2e cmpdi cr4,r0,1555 + 26bc: 04 01 06 03 .long 0x3060104 + 26c0: 37 01 06 20 subfic r0,r6,311 +} + 26c4: 05 0a 21 05 .long 0x5210a05 + 26c8: 01 03 f3 00 .long 0xf30301 + 26cc: 2e 82 20 05 .long 0x520822e *rmapp = new_rmap | RMAP_NESTED_IS_SINGLE_ENTRY; - 26e0: 01 05 09 03 .long 0x3090501 + 26d0: 02 06 03 bb lmw r24,1538(r3) } - 26e4: f7 7c 20 20 subfic r1,r0,31991 + 26d4: 7e 3c 04 16 .long 0x16043c7e *rmapp = new_rmap | RMAP_NESTED_IS_SINGLE_ENTRY; - 26e8: 05 38 4a 2e cmpwi cr4,r10,14341 + 26d8: 06 03 89 03 .long 0x3890306 } - 26ec: 05 02 06 03 .long 0x3060205 - 26f0: d0 00 01 04 .long 0x40100d0 - 26f4: 14 05 14 03 .long 0x3140514 - 26f8: b4 04 01 05 .long 0x50104b4 - 26fc: 02 14 04 0e twlti r4,5122 - 2700: 06 03 91 7b rldicr r17,r28,32,12 - 2704: 2e 04 14 03 .long 0x314042e -{ - 2708: ef 04 20 04 .long 0x42004ef - 270c: 0e 05 14 06 .long 0x614050e - 2710: 03 8e 7b 20 subfic r3,r27,-29181 - 2714: 05 02 15 01 .long 0x1150205 + 26dc: 01 04 01 05 .long 0x5010401 + 26e0: 09 03 f7 7c .long 0x7cf70309 + 26e4: 20 20 05 38 addi r0,r5,8224 + 26e8: 4a 2e 05 02 .long 0x2052e4a + 26ec: 06 03 d0 00 .long 0xd00306 + 26f0: 01 04 14 05 .long 0x5140401 + 26f4: 14 03 b4 04 .long 0x4b40314 +{ + 26f8: 01 05 02 14 .long 0x14020501 + 26fc: 04 0e 06 03 .long 0x3060e04 + 2700: 91 7b 2e 04 .long 0x42e7b91 + 2704: 14 03 ef 04 .long 0x4ef0314 if ((clr | set) & ~(_PAGE_DIRTY | _PAGE_ACCESSED)) - 2718: 01 04 01 05 .long 0x5010401 + 2708: 20 04 0e 05 .long 0x50e0420 { - 271c: 38 06 03 69 xori r3,r8,1592 - 2720: 2e c8 04 0e twlti r4,-14290 + 270c: 14 06 03 8e lbzu r16,1556(r3) + 2710: 7b 20 05 02 .long 0x205207b if ((clr | set) & ~(_PAGE_DIRTY | _PAGE_ACCESSED)) - 2724: 05 02 06 03 .long 0x3060205 + 2714: 15 01 01 04 .long 0x4010115 struct llist_node *entry = ((struct llist_head *) rmapp)->first; - 2728: 17 01 01 06 .long 0x6010117 + 2718: 01 05 38 06 .long 0x6380501 { - 272c: 20 06 01 01 .long 0x1010620 - 2730: 06 01 04 01 .long 0x1040106 - 2734: 05 0a 03 2e cmpwi cr4,r3,2565 + 271c: 03 69 2e c8 lfd f1,26883(r14) + 2720: 04 0e 05 02 .long 0x2050e04 + 2724: 06 03 17 01 .long 0x1170306 if ((clr | set) & ~(_PAGE_DIRTY | _PAGE_ACCESSED)) - 2738: 01 04 16 05 .long 0x5160401 - 273c: 02 03 c4 02 .long 0x2c40302 + 2728: 01 06 20 06 .long 0x6200601 + 272c: 01 01 06 01 .long 0x1060101 mask = PTE_RPN_MASK & ~(nbytes - 1); - 2740: 4a 20 04 01 .long 0x104204a + 2730: 04 01 05 0a tdlti r5,260 for_each_nest_rmap_safe(cursor, entry, &rmap) - 2744: 06 03 f7 7c mtdcrx r23,r7 - 2748: 01 05 09 06 .long 0x6090501 + 2734: 03 2e 01 04 .long 0x4012e03 + 2738: 16 05 02 03 .long 0x3020516 mask = PTE_RPN_MASK & ~(nbytes - 1); - 274c: 01 20 05 38 addi r0,r5,8193 - 2750: 4a 05 03 2f cmpwi cr6,r3,1354 + 273c: c4 02 4a 20 subfic r2,r10,708 + 2740: 04 01 06 03 .long 0x3060104 for_each_nest_rmap_safe(cursor, entry, &rmap) - 2754: 3c f2 04 14 .long 0x1404f23c - 2758: 05 02 03 85 lwzu r8,517(r3) - 275c: 05 01 04 01 .long 0x1040105 - 2760: 05 38 03 fa stdu r16,14340(r3) + 2744: f7 7c 01 05 .long 0x5017cf7 + 2748: 09 06 01 20 subfic r0,r1,1545 + 274c: 05 38 4a 05 .long 0x54a3805 + 2750: 03 2f 3c f2 xvmaxdp vs49,vs28,vs37 unsigned int shift, lpid; - 2764: 7a 2e 04 0e twlti r4,11898 - 2768: 05 02 03 17 .long 0x17030205 - 276c: 20 04 14 03 .long 0x3140420 - 2770: ef 04 20 04 .long 0x42004ef - 2774: 01 05 38 03 .long 0x3380501 - 2778: fa 7a 20 2e cmpdi cr4,r0,31482 - 277c: 05 02 06 03 .long 0x3060205 - 2780: d0 00 01 04 .long 0x40100d0 - 2784: 14 05 14 03 .long 0x3140514 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2788: b4 04 01 05 .long 0x50104b4 - 278c: 02 14 04 0e twlti r4,5122 - 2790: 05 14 03 8e lbzu r16,5125(r3) - 2794: 7b 01 05 02 .long 0x205017b - 2798: 15 01 01 20 subfic r0,r1,277 - 279c: 01 13 13 01 .long 0x1131301 + 2754: 04 14 05 02 .long 0x2051404 + 2758: 03 85 05 01 .long 0x1058503 + 275c: 04 01 05 38 addi r0,r5,260 + 2760: 03 fa 7a 2e cmpdi cr4,r26,-1533 + 2764: 04 0e 05 02 .long 0x2050e04 + 2768: 03 17 20 04 .long 0x4201703 + 276c: 14 03 ef 04 .long 0x4ef0314 + 2770: 20 04 01 05 .long 0x5010420 + 2774: 38 03 fa 7a .long 0x7afa0338 + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); + 2778: 20 2e 05 02 .long 0x2052e20 + 277c: 06 03 d0 00 .long 0xd00306 + 2780: 01 04 14 05 .long 0x5140401 + 2784: 14 03 b4 04 .long 0x4b40314 + 2788: 01 05 02 14 .long 0x14020501 + 278c: 04 0e 05 14 .long 0x14050e04 for_each_nest_rmap_safe(cursor, entry, &rmap) - 27a0: 01 13 06 20 subfic r0,r6,4865 - 27a4: 2e 04 01 06 .long 0x601042e - 27a8: 03 37 01 05 .long 0x5013703 + 2790: 03 8e 7b 01 .long 0x17b8e03 + 2794: 05 02 15 01 .long 0x1150205 + 2798: 01 20 01 13 .long 0x13012001 lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; - 27ac: 05 06 01 05 .long 0x5010605 + 279c: 13 01 01 13 .long 0x13010113 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 27b0: 02 06 31 04 .long 0x4310602 + 27a0: 06 20 2e 04 .long 0x42e2006 for_each_nest_rmap_safe(cursor, entry, &rmap) - 27b4: 10 05 14 03 .long 0x3140510 + 27a4: 01 06 03 37 addic. r24,r3,1537 unsigned int shift, lpid; - 27b8: d0 00 01 05 .long 0x50100d0 + 27a8: 01 05 05 06 .long 0x6050501 gpa = n_rmap & RMAP_NESTED_GPA_MASK; - 27bc: 02 14 04 02 .long 0x2041402 + 27ac: 01 05 02 06 .long 0x6020501 lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; - 27c0: 05 01 03 b5 sthu r8,261(r3) + 27b0: 31 04 10 05 .long 0x5100431 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 27c4: 04 01 01 01 .long 0x1010104 - 27c8: 06 20 04 10 vcmpequb v0,v4,v4 + 27b4: 14 03 d0 00 .long 0xd00314 + 27b8: 01 05 02 14 .long 0x14020501 gpa = n_rmap & RMAP_NESTED_GPA_MASK; - 27cc: 05 29 03 cb lfd f24,10501(r3) + 27bc: 04 02 05 01 .long 0x1050204 if (!gp) - 27d0: 7b 01 04 01 .long 0x104017b - 27d4: 05 05 03 ae lhau r16,1285(r3) + 27c0: 03 b5 04 01 .long 0x104b503 + 27c4: 01 01 06 20 subfic r0,r6,257 pte = __find_linux_pte(gp->shadow_pgtable, ea, NULL, hshift); - 27d8: 7f 20 05 02 .long 0x205207f - 27dc: 06 30 05 05 .long 0x5053006 - 27e0: 06 01 05 02 .long 0x2050106 - 27e4: 06 41 05 05 .long 0x5054106 - 27e8: 06 01 05 02 .long 0x2050106 - 27ec: 06 03 0a 3c addis r0,r10,774 + 27c8: 04 10 05 29 cmplwi cr2,r5,4100 + 27cc: 03 cb 7b 01 .long 0x17bcb03 + 27d0: 04 01 05 05 .long 0x5050104 + 27d4: 03 ae 7f 20 subfic r3,r31,-20989 + 27d8: 05 02 06 30 addic r0,r6,517 + 27dc: 05 05 06 01 .long 0x1060505 if (ptep && pte_present(*ptep) && ((pte_val(*ptep) & mask) == hpa)) { - 27f0: 05 06 06 01 .long 0x1060605 - 27f4: 05 05 20 05 .long 0x5200505 - 27f8: 08 21 05 05 .long 0x5052108 + 27e0: 05 02 06 41 bdnztl 4*cr1+eq,29e4 <.debug_line+0x29e4> + 27e4: 05 05 06 01 .long 0x1060505 + 27e8: 05 02 06 03 .long 0x3060205 return (pte_raw(pte) & cpu_to_be64(_PAGE_PRESENT | _PAGE_PTE)) == - 27fc: 1f 05 06 20 subfic r0,r6,1311 + 27ec: 0a 3c 05 06 .long 0x6053c0a if (pte_hw_valid(pte)) - 2800: 05 08 21 05 .long 0x5210805 - 2804: 06 1f 05 08 tdi 0,r5,7942 + 27f0: 06 01 05 05 .long 0x5050106 + 27f4: 20 05 08 21 subfic r8,r8,1312 return (pte_raw(pte) & cpu_to_be64(_PAGE_INVALID | _PAGE_PTE)) == - 2808: 21 05 05 1f mulli r24,r5,1313 - 280c: 05 03 06 32 addic r16,r6,773 - 2810: 05 06 06 01 .long 0x1060605 - 2814: 05 03 06 30 addic r0,r6,773 - 2818: 05 07 01 01 .long 0x1010705 - 281c: 06 2e 05 02 .long 0x2052e06 - 2820: 06 17 05 07 .long 0x7051706 - 2824: 06 01 05 02 .long 0x2050106 - 2828: 06 4b 05 05 .long 0x5054b06 - 282c: 06 01 05 02 .long 0x2050106 - 2830: 06 30 05 05 .long 0x5053006 - 2834: 06 01 05 02 .long 0x2050106 - 2838: 06 43 05 29 cmplwi cr2,r5,17158 - 283c: 06 01 05 10 .long 0x10050106 - 2840: 21 05 16 49 bl 1162d60 + 27f8: 05 05 1f 05 .long 0x51f0505 + 27fc: 06 20 05 08 tdi 0,r5,8198 + 2800: 21 05 06 1f mulli r24,r6,1313 + 2804: 05 08 21 05 .long 0x5210805 + 2808: 05 1f 05 03 .long 0x3051f05 + 280c: 06 32 05 06 .long 0x6053206 + 2810: 06 01 05 03 .long 0x3050106 + 2814: 06 30 05 07 .long 0x7053006 + 2818: 01 01 06 2e cmpwi cr4,r6,257 + 281c: 05 02 06 17 .long 0x17060205 + 2820: 05 07 06 01 .long 0x1060705 + 2824: 05 02 06 4b bl ffffffffff062a28 + 2828: 05 05 06 01 .long 0x1060505 + 282c: 05 02 06 30 addic r0,r6,517 + 2830: 05 05 06 01 .long 0x1060505 for_each_nest_rmap_safe(cursor, entry, &rmap) - 2844: 05 02 06 21 subfic r8,r6,517 - 2848: 05 10 06 01 .long 0x1061005 - 284c: 05 02 06 2f cmpwi cr6,r6,517 - 2850: 3f 05 23 06 .long 0x623053f + 2834: 05 02 06 43 bcl- 24,4*cr1+eq,2a38 <.debug_line+0x2a38> + 2838: 05 29 06 01 .long 0x1062905 + 283c: 05 10 21 05 .long 0x5211005 + 2840: 16 49 05 02 .long 0x2054916 lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; - 2854: 01 05 12 28 cmplwi r18,1281 + 2844: 06 21 05 10 .long 0x10052106 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2858: 05 18 03 79 rldicr. r3,r8,3,0 + 2848: 06 01 05 02 .long 0x2050106 unsigned int shift, lpid; - 285c: 2e 05 0b 1f mulli r24,r11,1326 + 284c: 06 2f 3f 05 .long 0x53f2f06 gpa = n_rmap & RMAP_NESTED_GPA_MASK; - 2860: 05 12 28 05 .long 0x5281205 + 2850: 23 06 01 05 .long 0x5010623 lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; - 2864: 1c 1e 05 21 subfic r8,r5,7708 + 2854: 12 28 05 18 .long 0x18052812 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2868: 21 05 10 03 .long 0x3100521 - 286c: 7a 20 05 0b tdnei r5,8314 + 2858: 03 79 2e 05 .long 0x52e7903 + 285c: 0b 1f 05 12 vmodsq v16,v5,v3 gpa = n_rmap & RMAP_NESTED_GPA_MASK; - 2870: 1f 05 02 06 .long 0x602051f + 2860: 28 05 1c 1e mulli r16,r28,1320 if (!gp) - 2874: 21 05 10 06 .long 0x6100521 - 2878: 01 05 02 06 .long 0x6020501 + 2864: 05 21 21 05 .long 0x5212105 + 2868: 10 03 7a 20 subfic r3,r26,784 for_each_nest_rmap_safe(cursor, entry, &rmap) - 287c: 21 05 19 06 .long 0x6190521 - 2880: 01 05 1c 24 dozi r0,r28,1281 - 2884: 05 14 1f 05 .long 0x51f1405 - 2888: 1a 22 05 19 .long 0x1905221a - 288c: 1b 05 02 06 .long 0x602051b - 2890: 31 13 13 13 maddhdu r24,r19,r2,r12 - 2894: 05 12 06 01 .long 0x1061205 - 2898: 05 02 06 31 addic r8,r6,517 - 289c: 05 39 06 01 .long 0x1063905 - 28a0: 05 14 03 9f stbu r24,5125(r3) - 28a4: 7e 20 05 39 addi r8,r5,8318 - 28a8: 03 e1 01 20 subfic r0,r1,-7933 - 28ac: 05 17 03 8f lbzu r24,5893(r3) - 28b0: 7f 20 05 27 dozi r24,r5,8319 - 28b4: 03 0f 20 05 .long 0x5200f03 - 28b8: 39 03 e2 00 .long 0xe20339 -} - 28bc: 20 05 14 03 .long 0x3140520 - 28c0: 9f 7e 20 05 .long 0x5207e9f - 28c4: 0c 2f 05 27 dozi r24,r5,12044 - 28c8: 03 fe 00 20 subfic r0,r0,-509 - 28cc: 05 12 03 87 lwzu r24,4613(r3) - 28d0: 7f 20 05 13 vsubecuq v24,v5,v4,v1 - 28d4: 1f 05 39 03 .long 0x339051f - 28d8: dc 01 20 05 .long 0x52001dc - 28dc: 14 03 9f 7e .long 0x7e9f0314 + 286c: 05 0b 1f 05 .long 0x51f0b05 + 2870: 02 06 21 05 .long 0x5210602 + 2874: 10 06 01 05 .long 0x5010610 + 2878: 02 06 21 05 .long 0x5210602 + 287c: 19 06 01 05 .long 0x5010619 + 2880: 1c 24 05 14 .long 0x1405241c + 2884: 1f 05 1a 22 subfic r16,r26,1311 + 2888: 05 19 1b 05 .long 0x51b1905 + 288c: 02 06 31 13 vextsh2w v25,v0 + 2890: 13 13 05 12 .long 0x12051313 + 2894: 06 01 05 02 .long 0x2050106 + 2898: 06 31 05 39 addi r8,r5,12550 + 289c: 06 01 05 14 .long 0x14050106 + 28a0: 03 9f 7e 20 subfic r3,r30,-24829 + 28a4: 05 39 03 e1 lq r8,14592(r3) + 28a8: 01 20 05 17 .long 0x17052001 +} + 28ac: 03 8f 7f 20 subfic r3,r31,-28925 + 28b0: 05 27 03 0f twnei r3,9989 + 28b4: 20 05 39 03 .long 0x3390520 + 28b8: e2 00 20 05 .long 0x52000e2 + 28bc: 14 03 9f 7e .long 0x7e9f0314 + 28c0: 20 05 0c 2f cmpwi cr6,r12,1312 + 28c4: 05 27 03 fe .long 0xfe032705 + 28c8: 00 20 05 12 vaddubm v16,v5,v4 + 28cc: 03 87 7f 20 subfic r3,r31,-30973 : "r" (ptep), "r" (cpu_to_be64(set)), "r" (cpu_to_be64(clr)) - 28e0: 20 05 16 26 dozi r16,r22,1312 - 28e4: 05 27 03 f9 stdu r8,9988(r3) - 28e8: 00 20 05 39 addi r8,r5,8192 - 28ec: 03 e2 00 20 subfic r0,r0,-7677 - 28f0: 05 14 03 9f stbu r24,5125(r3) - 28f4: 7e 20 05 27 dozi r24,r5,8318 - 28f8: 03 ff 00 20 subfic r0,r0,-253 - 28fc: 05 39 03 e2 lq r16,14592(r3) - 2900: 00 20 05 14 .long 0x14052000 - 2904: 03 9f 7e 20 subfic r3,r30,-24829 - 2908: 05 39 03 e1 lq r8,14592(r3) - 290c: 01 20 05 14 .long 0x14052001 - 2910: 03 9f 7e 20 subfic r3,r30,-24829 - 2914: 05 13 23 05 .long 0x5231305 - 2918: 14 21 05 39 addi r8,r5,8468 - 291c: 03 dd 01 20 subfic r0,r1,-8957 - 2920: 05 18 20 05 .long 0x5201805 - 2924: 02 06 22 05 .long 0x5220602 + 28d0: 05 13 1f 05 .long 0x51f1305 + 28d4: 39 03 dc 01 .long 0x1dc0339 + 28d8: 20 05 14 03 .long 0x3140520 + 28dc: 9f 7e 20 05 .long 0x5207e9f + 28e0: 16 26 05 27 dozi r24,r5,9750 + 28e4: 03 f9 00 20 subfic r0,r0,-1789 + 28e8: 05 39 03 e2 lq r16,14592(r3) + 28ec: 00 20 05 14 .long 0x14052000 + 28f0: 03 9f 7e 20 subfic r3,r30,-24829 + 28f4: 05 27 03 ff .long 0xff032705 + 28f8: 00 20 05 39 addi r8,r5,8192 + 28fc: 03 e2 00 20 subfic r0,r0,-7677 + 2900: 05 14 03 9f stbu r24,5125(r3) + 2904: 7e 20 05 39 addi r8,r5,8318 + 2908: 03 e1 01 20 subfic r0,r1,-7933 + 290c: 05 14 03 9f stbu r24,5125(r3) + 2910: 7e 20 05 13 vsubeuqm v24,v5,v4,v1 + 2914: 23 05 14 21 subfic r8,r20,1315 __asm__ __volatile__( - 2928: 16 06 03 a3 lhz r24,1558(r3) - 292c: 7e 01 05 0a tdlti r5,382 - 2930: 03 7a 20 05 .long 0x5207a03 - 2934: 24 03 0c 20 subfic r0,r12,804 - 2938: 05 0c 03 75 andis. r3,r8,3077 + 2918: 05 39 03 dd stfdu f8,14597(r3) + 291c: 01 20 05 18 stxvp vs0,8192(r5) + 2920: 20 05 02 06 .long 0x6020520 + 2924: 22 05 16 06 .long 0x6160522 + 2928: 03 a3 7e 01 .long 0x17ea303 kvmppc_radix_tlbie_page(kvm, gpa, shift, lpid); - 293c: 20 05 0a 28 cmplwi r10,1312 - 2940: 05 13 03 7a rldicr. r3,r16,2,12 - 2944: 20 05 24 03 .long 0x3240520 - 2948: 09 20 05 14 .long 0x14052009 - 294c: 03 78 20 05 .long 0x5207803 - 2950: 24 28 05 13 vmsumubm v24,v5,v5,v0 - 2954: 03 79 20 05 .long 0x5207903 - 2958: 12 21 05 1a .long 0x1a052112 - 295c: 42 05 13 03 .long 0x3130542 - 2960: 76 20 05 0a tdlti r5,8310 - 2964: 27 05 0e 03 .long 0x30e0527 - 2968: da 01 20 05 .long 0x52001da - 296c: 02 06 21 05 .long 0x5210602 - 2970: 0d 03 88 7f .long 0x7f88030d - 2974: 01 05 02 16 .long 0x16020501 - 2978: 13 14 05 0d twgti r5,5139 - 297c: 03 89 7f 01 .long 0x17f8903 - 2980: 05 02 14 14 .long 0x14140205 + 292c: 05 0a 03 7a rldicr. r3,r16,1,8 + 2930: 20 05 24 03 .long 0x3240520 + 2934: 0c 20 05 0c twi 0,r5,8204 + 2938: 03 75 20 05 .long 0x5207503 + 293c: 0a 28 05 13 vaddfp v24,v5,v5 + 2940: 03 7a 20 05 .long 0x5207a03 + 2944: 24 03 09 20 subfic r0,r9,804 + 2948: 05 14 03 78 rldicr. r3,r0,2,16 + 294c: 20 05 24 28 cmpldi r4,1312 + 2950: 05 13 03 79 rldicr. r3,r8,2,12 + 2954: 20 05 12 21 subfic r8,r18,1312 + 2958: 05 1a 42 05 .long 0x5421a05 + 295c: 13 03 76 20 subfic r3,r22,787 + 2960: 05 0a 27 05 .long 0x5270a05 + 2964: 0e 03 da 01 .long 0x1da030e + 2968: 20 05 02 06 .long 0x6020520 + 296c: 21 05 0d 03 .long 0x30d0521 + 2970: 88 7f 01 05 .long 0x5017f88 + 2974: 02 16 13 14 .long 0x14131602 + 2978: 05 0d 03 89 lbz r8,3333(r3) +} + 297c: 7f 01 05 02 .long 0x205017f + 2980: 14 14 13 13 mtvsrbmi v24,5158 2984: 13 13 13 13 .long 0x13131313 2988: 13 13 13 13 .long 0x13131313 -} 298c: 13 13 13 13 .long 0x13131313 - 2990: 13 13 13 05 .long 0x5131313 - 2994: 1a 06 0f 05 .long 0x50f061a - 2998: 24 20 05 1a .long 0x1a052024 - 299c: 20 05 24 2e cmpdi cr4,r4,1312 - 29a0: 05 1a 20 05 .long 0x5201a05 - 29a4: 11 24 05 15 .long 0x15052411 -{ - 29a8: 03 ef 00 20 subfic r0,r0,-4349 - 29ac: 05 1a 03 8d lbzu r8,6661(r3) - 29b0: 7f 20 05 27 dozi r24,r5,8319 - 29b4: 03 f3 00 20 subfic r0,r0,-3325 - 29b8: 05 12 03 92 stw r16,4613(r3) - 29bc: 7f 20 05 11 vsubecuq v8,v5,v4,v1 + 2990: 13 05 1a 06 .long 0x61a0513 + 2994: 0f 05 24 20 subfic r1,r4,1295 +{ + 2998: 05 1a 20 05 .long 0x5201a05 + 299c: 24 2e 05 1a .long 0x1a052e24 + 29a0: 20 05 11 24 dozi r0,r17,1312 + 29a4: 05 15 03 ef .long 0xef031505 + 29a8: 00 20 05 1a lxvp vs16,8192(r5) + 29ac: 03 8d 7f 20 subfic r3,r31,-29437 if (!memslot) - 29c0: 21 05 15 03 .long 0x3150521 + 29b0: 05 27 03 f3 xvmaxdp vs56,vs35,vs4 { - 29c4: ed 00 20 05 .long 0x52000ed - 29c8: 0a 1f 05 11 .long 0x11051f0a - 29cc: 03 92 7f 20 subfic r3,r31,-28157 + 29b4: 00 20 05 12 vaddubm v16,v5,v4 + 29b8: 03 92 7f 20 subfic r3,r31,-28157 + 29bc: 05 11 21 05 .long 0x5211105 if (!memslot) - 29d0: 05 1a 1c 05 .long 0x51c1a05 + 29c0: 15 03 ed 00 .long 0xed0315 gfn = (gpa >> PAGE_SHIFT) - memslot->base_gfn; - 29d4: 02 06 24 13 .long 0x13240602 - 29d8: 05 13 06 14 .long 0x14061305 - 29dc: 05 14 21 05 .long 0x5211405 + 29c4: 20 05 0a 1f mulli r24,r10,1312 + 29c8: 05 11 03 92 stw r16,4357(r3) + 29cc: 7f 20 05 1a .long 0x1a05207f end_gfn = gfn + (nbytes >> PAGE_SHIFT); - 29e0: 15 03 eb 00 .long 0xeb0315 + 29d0: 1c 05 02 06 .long 0x602051c addr_mask = PTE_RPN_MASK & ~(nbytes - 1); - 29e4: 20 05 12 03 .long 0x3120520 - 29e8: 92 7f 20 05 .long 0x5207f92 + 29d4: 24 13 05 13 vmsumubm v24,v5,v2,v12 + 29d8: 06 14 05 14 .long 0x14051406 gfn = (gpa >> PAGE_SHIFT) - memslot->base_gfn; - 29ec: 02 06 21 05 .long 0x5210602 + 29dc: 21 05 15 03 .long 0x3150521 addr_mask = PTE_RPN_MASK & ~(nbytes - 1); - 29f0: 11 06 01 05 .long 0x5010611 - 29f4: 02 06 21 05 .long 0x5210602 + 29e0: eb 00 20 05 .long 0x52000eb + 29e4: 12 03 92 7f divdeu r28,r18,r0 gfn = (gpa >> PAGE_SHIFT) - memslot->base_gfn; - 29f8: 15 06 03 ec .long 0xec030615 + 29e8: 20 05 02 06 .long 0x6020520 end_gfn = gfn + (nbytes >> PAGE_SHIFT); - 29fc: 00 01 05 13 vadduqm v24,v5,v0 + 29ec: 21 05 11 06 .long 0x6110521 for (; gfn < end_gfn; gfn++) { - 2a00: 03 94 7f 20 subfic r3,r31,-27645 - 2a04: 05 02 06 21 subfic r8,r6,517 - 2a08: 05 14 06 01 .long 0x1061405 - 2a0c: 20 05 02 06 .long 0x6020520 - 2a10: 03 e4 00 01 .long 0x100e403 - 2a14: 18 05 15 06 .long 0x6150518 - 2a18: 13 05 0a 3b addi r24,r10,1299 - 2a1c: 05 36 43 05 .long 0x5433605 - 2a20: 24 31 05 0c twi 0,r5,12580 - 2a24: 24 05 22 03 .long 0x3220524 + 29f0: 01 05 02 06 .long 0x6020501 + 29f4: 21 05 15 06 .long 0x6150521 + 29f8: 03 ec 00 01 .long 0x100ec03 + 29fc: 05 13 03 94 stwu r0,4869(r3) + 2a00: 7f 20 05 02 .long 0x205207f + 2a04: 06 21 05 14 .long 0x14052106 + 2a08: 06 01 20 05 .long 0x5200106 + 2a0c: 02 06 03 e4 lxsd v0,1536(r3) + 2a10: 00 01 18 05 .long 0x5180100 + 2a14: 15 06 13 05 .long 0x5130615 unsigned int shift, lpid; - 2a28: 79 20 05 0a tdlti r5,8313 - 2a2c: 03 79 20 05 .long 0x5207903 + 2a18: 0a 3b 05 36 addic. r16,r5,15114 + 2a1c: 43 05 24 31 addic r9,r4,1347 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2a30: 02 06 27 05 .long 0x5270602 - 2a34: 24 06 15 21 subfic r8,r21,1572 - 2a38: 05 36 1c 05 .long 0x51c3605 - 2a3c: 14 27 05 22 subfic r16,r5,10004 - 2a40: 03 79 20 05 .long 0x5207903 - 2a44: 24 23 21 05 .long 0x5212324 - 2a48: 05 23 05 13 vsraq v24,v5,v4 - 2a4c: 03 79 20 05 .long 0x5207903 + 2a20: 05 0c 24 05 .long 0x5240c05 + 2a24: 22 03 79 20 subfic r3,r25,802 + 2a28: 05 0a 03 79 rldicr. r3,r8,1,8 + 2a2c: 20 05 02 06 .long 0x6020520 + 2a30: 27 05 24 06 .long 0x6240527 + 2a34: 15 21 05 36 addic. r16,r5,8469 + 2a38: 1c 05 14 27 dozi r24,r20,1308 + 2a3c: 05 22 03 79 rldicr. r3,r8,4,8 unsigned long *rmap = &memslot->arch.rmap[gfn]; - 2a50: 02 06 23 13 .long 0x13230602 - 2a54: 05 14 06 11 .long 0x11061405 - 2a58: 21 05 02 06 .long 0x6020521 + 2a40: 20 05 24 23 subfic r25,r4,1312 + 2a44: 21 05 05 23 subfic r24,r5,1313 + 2a48: 05 13 03 79 rldicr. r3,r8,2,12 return xchg(&head->first, NULL); - 2a5c: 23 05 05 06 .long 0x6050523 - 2a60: 01 05 03 06 .long 0x6030501 - 2a64: 21 05 23 06 .long 0x6230521 - 2a68: 01 05 14 20 subfic r0,r20,1281 - 2a6c: 20 05 02 06 .long 0x6020520 + 2a4c: 20 05 02 06 .long 0x6020520 + 2a50: 23 13 05 14 .long 0x14051323 + 2a54: 06 11 21 05 .long 0x5211106 + 2a58: 02 06 23 05 .long 0x5230602 + 2a5c: 05 06 01 05 .long 0x5010605 for_each_nest_rmap_safe(cursor, entry, &rmap) { - 2a70: 03 d9 00 01 .long 0x100d903 - 2a74: 13 05 11 06 .long 0x6110513 - 2a78: 11 05 02 00 .long 0x20511 - 2a7c: 02 04 01 06 .long 0x6010402 - 2a80: 3e 05 03 00 .long 0x3053e - 2a84: 02 04 01 13 vavgub v24,v1,v0 - 2a88: 05 07 00 02 .long 0x2000705 + 2a60: 03 06 21 05 .long 0x5210603 + 2a64: 23 06 01 05 .long 0x5010623 + 2a68: 14 20 20 05 .long 0x5202014 + 2a6c: 02 06 03 d9 stfd f8,1538(r3) + 2a70: 00 01 13 05 .long 0x5130100 + 2a74: 11 06 11 05 .long 0x5110611 + 2a78: 02 00 02 04 .long 0x4020002 lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; - 2a8c: 04 01 06 01 .long 0x1060104 + 2a7c: 01 06 3e 05 .long 0x53e0601 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2a90: 05 0b 00 02 .long 0x2000b05 + 2a80: 03 00 02 04 .long 0x4020003 for_each_nest_rmap_safe(cursor, entry, &rmap) { - 2a94: 04 01 59 05 .long 0x5590104 + 2a84: 01 13 05 07 .long 0x7051301 unsigned int shift, lpid; - 2a98: 07 00 02 04 .long 0x4020007 - 2a9c: 01 1f 05 0b tdnei r5,7937 + 2a88: 00 02 04 01 attn + 2a8c: 06 01 05 0b tdnei r5,262 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2aa0: 00 02 04 01 attn - 2aa4: 06 21 04 10 .long 0x10042106 - 2aa8: 05 14 00 02 .long 0x2001405 + 2a90: 00 02 04 01 attn + 2a94: 59 05 07 00 .long 0x70559 + 2a98: 02 04 01 1f mulli r24,r1,1026 for_each_nest_rmap_safe(cursor, entry, &rmap) { - 2aac: 04 01 03 21 subfic r8,r3,260 + 2a9c: 05 0b 00 02 .long 0x2000b05 if (!gp) - 2ab0: 01 05 02 00 .long 0x20501 - 2ab4: 02 04 01 14 .long 0x14010402 + 2aa0: 04 01 06 21 subfic r8,r6,260 + 2aa4: 04 10 05 14 .long 0x14051004 kfree(cursor); - 2ab8: 00 02 04 01 attn - 2abc: 06 01 04 01 .long 0x1040106 - 2ac0: 05 0b 00 02 .long 0x2000b05 + 2aa8: 00 02 04 01 attn + 2aac: 03 21 01 05 .long 0x5012103 + 2ab0: 02 00 02 04 .long 0x4020002 for_each_nest_rmap_safe(cursor, entry, &rmap) { - 2ac4: 04 01 03 5d rlwnm r3,r8,r0,4,2 - 2ac8: 01 05 02 06 .long 0x6020501 - 2acc: 23 05 0a 06 .long 0x60a0523 - 2ad0: 01 3c 05 02 .long 0x2053c01 - 2ad4: 06 2f 05 17 .long 0x17052f06 + 2ab4: 01 14 00 02 .long 0x2001401 + 2ab8: 04 01 06 01 .long 0x1060104 + 2abc: 04 01 05 0b tdnei r5,260 + 2ac0: 00 02 04 01 attn + 2ac4: 03 5d 01 05 .long 0x5015d03 lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; - 2ad8: 06 03 eb 7d mtdcrx r11,r15 + 2ac8: 02 06 23 05 .long 0x5230602 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2adc: 01 05 21 03 .long 0x3210501 + 2acc: 0a 06 01 3c addis r0,r1,1546 unsigned int shift, lpid; - 2ae0: 95 02 20 05 .long 0x5200295 + 2ad0: 05 02 06 2f cmpwi cr6,r6,517 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2ae4: 0b 03 f2 7d .long 0x7df2030b - 2ae8: 20 05 19 03 .long 0x3190520 - 2aec: 8f 02 20 05 .long 0x520028f + 2ad4: 05 17 06 03 .long 0x3061705 + 2ad8: eb 7d 01 05 .long 0x5017deb + 2adc: 21 03 95 02 .long 0x2950321 if (!gp) - 2af0: 1a 21 05 17 .long 0x1705211a - 2af4: 21 05 1e 03 .long 0x31e0521 + 2ae0: 20 05 0b 03 .long 0x30b0520 + 2ae4: f2 7d 20 05 .long 0x5207df2 for_each_nest_rmap_safe(cursor, entry, &rmap) { - 2af8: ef 7d 20 05 .long 0x5207def - 2afc: 0e 03 8e 02 .long 0x28e030e + 2ae8: 19 03 8f 02 .long 0x28f0319 + 2aec: 20 05 1a 21 subfic r8,r26,1312 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2b00: 2e 05 02 06 .long 0x602052e - 2b04: 21 05 1e 06 .long 0x61e0521 - 2b08: 03 f1 7d 01 .long 0x17df103 - 2b0c: 05 0c 1b 05 .long 0x51b0c05 + 2af0: 05 17 21 05 .long 0x5211705 + 2af4: 1e 03 ef 7d isel r15,r15,r0,12 + 2af8: 20 05 0e 03 .long 0x30e0520 + 2afc: 8e 02 2e 05 .long 0x52e028e if (!gp) - 2b10: 0a 24 05 1e mulli r16,r5,9226 - 2b14: 21 05 0b 20 subfic r0,r11,1313 + 2b00: 02 06 21 05 .long 0x5210602 + 2b04: 1e 06 03 f1 xvcmpeqsp. vs8,vs35,vs32 gpa = n_rmap & RMAP_NESTED_GPA_MASK; - 2b18: 05 17 26 05 .long 0x5261705 + 2b08: 7d 01 05 0c twi 0,r5,381 pte = __find_linux_pte(gp->shadow_pgtable, ea, NULL, hshift); - 2b1c: 1e 03 7a 20 subfic r3,r26,798 - 2b20: 05 1d 03 92 stw r16,7429(r3) - 2b24: 02 20 05 26 dozi r16,r5,8194 + 2b0c: 1b 05 0a 24 dozi r0,r10,1307 + 2b10: 05 1e 21 05 .long 0x5211e05 + 2b14: 0b 20 05 17 .long 0x1705200b gpa = n_rmap & RMAP_NESTED_GPA_MASK; - 2b28: 1d 05 02 06 .long 0x602051d + 2b18: 26 05 1e 03 .long 0x31e0526 pte = __find_linux_pte(gp->shadow_pgtable, ea, NULL, hshift); - 2b2c: 21 05 0b 06 .long 0x60b0521 - 2b30: 03 f0 7d 01 .long 0x17df003 - 2b34: 05 28 03 90 stw r0,10245(r3) + 2b1c: 7a 20 05 1d mulli r8,r5,8314 + 2b20: 03 92 02 20 subfic r0,r2,-28157 + 2b24: 05 26 1d 05 .long 0x51d2605 if (ptep && pte_present(*ptep) && ((pte_val(*ptep) & mask) == hpa)) - 2b38: 02 2e 05 02 .long 0x2052e02 - 2b3c: 06 21 05 22 subfic r16,r5,8454 - 2b40: 06 01 05 02 .long 0x2050106 + 2b28: 02 06 21 05 .long 0x5210602 + 2b2c: 0b 06 03 f0 xvnmaddasp vs32,vs3,vs32 + 2b30: 7d 01 05 28 cmplwi r5,381 return (pte_raw(pte) & cpu_to_be64(_PAGE_PRESENT | _PAGE_PTE)) == - 2b44: 06 21 05 0b tdnei r5,8454 + 2b34: 03 90 02 2e cmpwi cr4,r2,-28669 if (pte_hw_valid(pte)) - 2b48: 06 03 ee 7d mtdcrx r14,r15 - 2b4c: 01 05 0c 1b stxvp vs24,1280(r12) + 2b38: 05 02 06 21 subfic r8,r6,517 + 2b3c: 05 22 06 01 .long 0x1062205 return (pte_raw(pte) & cpu_to_be64(_PAGE_INVALID | _PAGE_PTE)) == - 2b50: 05 10 03 97 stwu r24,4101(r3) - 2b54: 02 20 05 02 .long 0x2052002 - 2b58: 06 21 05 0d twgti r5,8454 - 2b5c: 03 e3 7d 01 .long 0x17de303 - 2b60: 05 02 15 14 .long 0x14150205 - 2b64: 13 13 13 05 .long 0x5131313 - 2b68: 0a 06 13 05 .long 0x513060a - 2b6c: 0b 1d 05 17 .long 0x17051d0b - 2b70: 03 0a 20 05 .long 0x5200a03 - 2b74: 0c 03 77 20 subfic r3,r23,780 - 2b78: 05 0b 23 05 .long 0x5230b05 - 2b7c: 09 1e 05 02 .long 0x2051e09 - 2b80: 06 21 13 13 .long 0x13132106 - 2b84: 13 13 13 13 .long 0x13131313 - 2b88: 13 13 05 0b tdnei r5,4883 + 2b40: 05 02 06 21 subfic r8,r6,517 + 2b44: 05 0b 06 03 .long 0x3060b05 + 2b48: ee 7d 01 05 .long 0x5017dee + 2b4c: 0c 1b 05 10 psq_lx f0,r5,r3,0,6 + 2b50: 03 97 02 20 subfic r0,r2,-26877 + 2b54: 05 02 06 21 subfic r8,r6,517 + 2b58: 05 0d 03 e3 lq r24,3328(r3) + 2b5c: 7d 01 05 02 .long 0x205017d + 2b60: 15 14 13 13 mtvsrbmi v24,5159 + 2b64: 13 05 0a 06 .long 0x60a0513 + 2b68: 13 05 0b 1d mulli r8,r11,1299 + 2b6c: 05 17 03 0a tdlti r3,5893 + 2b70: 20 05 0c 03 .long 0x30c0520 + 2b74: 77 20 05 0b tdnei r5,8311 + 2b78: 23 05 09 1e mulli r16,r9,1315 kvmppc_unmap_pte(kvm, ptep, gpa, shift, NULL, gp->shadow_lpid); - 2b8c: 06 03 79 01 .long 0x1790306 - 2b90: 27 05 14 22 subfic r16,r20,1319 - 2b94: 05 0a 1f 05 .long 0x51f0a05 - 2b98: 02 21 05 0b tdnei r5,8450 - 2b9c: 1e 05 02 06 .long 0x602051e - 2ba0: 21 05 0a 06 .long 0x60a0521 - 2ba4: 01 05 02 06 .long 0x6020501 - 2ba8: 21 05 03 6d xoris r3,r8,1313 - 2bac: 05 0c 06 01 .long 0x1060c05 + 2b7c: 05 02 06 21 subfic r8,r6,517 + 2b80: 13 13 13 13 .long 0x13131313 + 2b84: 13 13 13 13 .long 0x13131313 + 2b88: 05 0b 06 03 .long 0x3060b05 + 2b8c: 79 01 27 05 .long 0x5270179 + 2b90: 14 22 05 0a tdlti r5,8724 + 2b94: 1f 05 02 21 subfic r8,r2,1311 + 2b98: 05 0b 1e 05 .long 0x51e0b05 + 2b9c: 02 06 21 05 .long 0x5210602 kfree(cursor); - 2bb0: 05 03 06 2f cmpwi cr6,r6,773 - 2bb4: 06 20 05 02 .long 0x2052006 + 2ba0: 0a 06 01 05 .long 0x501060a + 2ba4: 02 06 21 05 .long 0x5210602 for (; gfn < end_gfn; gfn++) { - 2bb8: 06 03 85 02 .long 0x2850306 - 2bbc: 01 13 13 05 .long 0x5131301 - 2bc0: 05 06 14 05 .long 0x5140605 - 2bc4: 2c 1e 05 02 .long 0x2051e2c - 2bc8: 06 30 05 05 .long 0x5053006 - 2bcc: 06 01 05 03 .long 0x3050106 - 2bd0: 06 21 05 19 .long 0x19052106 - 2bd4: 06 01 05 14 .long 0x14050106 - 2bd8: 29 05 12 21 subfic r8,r18,1321 - 2bdc: 05 14 3b 05 .long 0x53b1405 - 2be0: 12 21 05 14 .long 0x14052112 - 2be4: 03 89 7e 2e cmpdi cr4,r30,-30461 - 2be8: 05 02 03 85 lwzu r8,517(r3) - 2bec: 02 20 05 18 .long 0x18052002 - 2bf0: 03 73 20 05 .long 0x5207303 - 2bf4: 02 06 24 05 .long 0x5240602 - 2bf8: 10 06 01 05 .long 0x5010610 - 2bfc: 14 03 84 7e .long 0x7e840314 - 2c00: 20 05 19 03 .long 0x3190520 -} - 2c04: fe 01 20 05 .long 0x52001fe - 2c08: 14 03 82 7e .long 0x7e820314 - 2c0c: 20 24 1c 05 .long 0x51c2420 - 2c10: 13 25 05 0c twi 0,r5,9491 - 2c14: 1c 05 13 21 subfic r8,r19,1308 - 2c18: 21 20 05 10 vmhraddshs v0,v5,v4,v0 - 2c1c: 03 f9 01 01 .long 0x101f903 - 2c20: 05 02 06 22 subfic r16,r6,517 - 2c24: 05 14 06 03 .long 0x3061405 - 2c28: 82 7e 01 05 .long 0x5017e82 - 2c2c: 19 03 fe 01 .long 0x1fe0319 - 2c30: 20 05 17 03 .long 0x3170520 - 2c34: 80 7e 20 05 .long 0x5207e80 - 2c38: 16 28 05 0a tdlti r5,10262 - 2c3c: 23 05 14 03 .long 0x3140523 - 2c40: 77 20 05 19 .long 0x19052077 - 2c44: 03 fe 01 20 subfic r0,r1,-509 - 2c48: 05 14 03 82 lwz r16,5125(r3) - 2c4c: 7e 20 05 12 vsubeuqm v16,v5,v4,v1 - 2c50: 26 05 16 20 subfic r0,r22,1318 - 2c54: 05 19 03 f8 stdu r0,6404(r3) - 2c58: 01 20 05 02 .long 0x2052001 - 2c5c: 06 21 05 0d twgti r5,8454 - 2c60: 03 fd 7d 01 .long 0x17dfd03 - 2c64: 05 02 14 14 .long 0x14140205 - 2c68: 05 0a 06 01 .long 0x1060a05 - 2c6c: 05 02 06 21 subfic r8,r6,517 - 2c70: 05 24 06 03 .long 0x3062405 - 2c74: 0b 01 05 0c twi 0,r5,267 - 2c78: 03 75 20 05 .long 0x5207503 - 2c7c: 02 06 21 05 .long 0x5210602 - 2c80: 14 06 14 05 .long 0x5140614 - 2c84: 24 28 05 13 vmsumubm v24,v5,v5,v0 -{ - 2c88: 03 79 20 05 .long 0x5207903 - 2c8c: 12 21 05 24 dozi r0,r5,8466 - 2c90: 26 05 12 03 .long 0x3120526 - 2c94: 7a 2e 05 24 dozi r0,r5,11898 - 2c98: 34 05 13 03 .long 0x3130534 - 2c9c: 76 20 05 02 .long 0x2052076 - 2ca0: 06 21 05 13 .long 0x13052106 - 2ca4: 06 01 05 02 .long 0x2050106 - 2ca8: 06 21 13 13 .long 0x13132106 + 2ba8: 03 6d 05 0c twi 0,r5,27907 + 2bac: 06 01 05 03 .long 0x3050106 + 2bb0: 06 2f 06 20 subfic r0,r6,12038 + 2bb4: 05 02 06 03 .long 0x3060205 + 2bb8: 85 02 01 13 evfsnabs r24,r1 + 2bbc: 13 05 05 06 .long 0x6050513 + 2bc0: 14 05 2c 1e mulli r17,r12,1300 + 2bc4: 05 02 06 30 addic r0,r6,517 + 2bc8: 05 05 06 01 .long 0x1060505 + 2bcc: 05 03 06 21 subfic r8,r6,773 + 2bd0: 05 19 06 01 .long 0x1061905 + 2bd4: 05 14 29 05 .long 0x5291405 + 2bd8: 12 21 05 14 .long 0x14052112 + 2bdc: 3b 05 12 21 subfic r8,r18,1339 + 2be0: 05 14 03 89 lbz r8,5125(r3) + 2be4: 7e 2e 05 02 .long 0x2052e7e + 2be8: 03 85 02 20 subfic r0,r2,-31485 + 2bec: 05 18 03 73 andi. r3,r24,6149 + 2bf0: 20 05 02 06 .long 0x6020520 +} + 2bf4: 24 05 10 06 .long 0x6100524 + 2bf8: 01 05 14 03 .long 0x3140501 + 2bfc: 84 7e 20 05 .long 0x5207e84 + 2c00: 19 03 fe 01 .long 0x1fe0319 + 2c04: 20 05 14 03 .long 0x3140520 + 2c08: 82 7e 20 24 dozi r1,r0,32386 + 2c0c: 1c 05 13 25 dozi r8,r19,1308 + 2c10: 05 0c 1c 05 .long 0x51c0c05 + 2c14: 13 21 21 20 subfic r1,r1,8467 + 2c18: 05 10 03 f9 stdu r8,4100(r3) + 2c1c: 01 01 05 02 .long 0x2050101 + 2c20: 06 22 05 14 .long 0x14052206 + 2c24: 06 03 82 7e mtdcrx r2,r20 + 2c28: 01 05 19 03 .long 0x3190501 + 2c2c: fe 01 20 05 .long 0x52001fe + 2c30: 17 03 80 7e divweu. r20,r0,r0 + 2c34: 20 05 16 28 cmplwi r22,1312 + 2c38: 05 0a 23 05 .long 0x5230a05 + 2c3c: 14 03 77 20 subfic r3,r23,788 + 2c40: 05 19 03 fe .long 0xfe031905 + 2c44: 01 20 05 14 .long 0x14052001 + 2c48: 03 82 7e 20 subfic r3,r30,-32253 + 2c4c: 05 12 26 05 .long 0x5261205 + 2c50: 16 20 05 19 .long 0x19052016 + 2c54: 03 f8 01 20 subfic r0,r1,-2045 + 2c58: 05 02 06 21 subfic r8,r6,517 + 2c5c: 05 0d 03 fd .long 0xfd030d05 + 2c60: 7d 01 05 02 .long 0x205017d + 2c64: 14 14 05 0a tdlti r5,5140 + 2c68: 06 01 05 02 .long 0x2050106 + 2c6c: 06 21 05 24 dozi r0,r5,8454 + 2c70: 06 03 0b 01 .long 0x10b0306 + 2c74: 05 0c 03 75 andis. r3,r8,3077 +{ + 2c78: 20 05 02 06 .long 0x6020520 + 2c7c: 21 05 14 06 .long 0x6140521 + 2c80: 14 05 24 28 cmpldi r4,1300 + 2c84: 05 13 03 79 rldicr. r3,r8,2,12 + 2c88: 20 05 12 21 subfic r8,r18,1312 + 2c8c: 05 24 26 05 .long 0x5262405 + 2c90: 12 03 7a 2e cmpdi cr4,r26,786 + 2c94: 05 24 34 05 .long 0x5342405 + 2c98: 13 03 76 20 subfic r3,r22,787 ret = kvmhv_emulate_priv_tlbie(vcpu, kvmppc_get_gpr(vcpu, 4), - 2cac: 13 13 13 05 .long 0x5131313 - 2cb0: 0a 06 01 05 .long 0x501060a + 2c9c: 05 02 06 21 subfic r8,r6,517 + 2ca0: 05 13 06 01 .long 0x1061305 struct kvm *kvm = vcpu->kvm; - 2cb4: 02 06 21 13 vctzlsbb r25,v0 + 2ca4: 05 02 06 21 subfic r8,r6,517 return r_val & 0xffffffff; - 2cb8: 13 13 13 13 .long 0x13131313 + 2ca8: 13 13 13 13 .long 0x13131313 if ((!r) || (prs) || (ric == 3) || (is == 1) || - 2cbc: 05 1a 06 0f twnei r6,6661 - 2cc0: 05 11 24 05 .long 0x5241105 - 2cc4: 1a 1c 05 12 vextduhvlx v16,v5,v3,r16 - 2cc8: 03 f4 01 2e cmpwi cr4,r1,-3069 - 2ccc: 05 13 21 05 .long 0x5211305 - 2cd0: 1a 03 8b 7e stxvl vs20,r11,r0 - 2cd4: 20 05 02 06 .long 0x6020520 - 2cd8: 24 05 10 06 .long 0x6100524 - 2cdc: 03 f2 01 01 .long 0x101f203 - 2ce0: 05 1a 03 8a lbz r16,6661(r3) - 2ce4: 7e 20 05 12 vsubeuqm v16,v5,v4,v1 - 2ce8: 33 05 11 21 subfic r8,r17,1331 - 2cec: 1e 05 02 06 .long 0x602051e - 2cf0: 21 05 1a 06 .long 0x61a0521 + 2cac: 13 05 0a 06 .long 0x60a0513 + 2cb0: 01 05 02 06 .long 0x6020501 + 2cb4: 21 13 13 13 vmhraddshs v24,v19,v2,v12 + 2cb8: 13 13 05 1a .long 0x1a051313 + 2cbc: 06 0f 05 11 vcmpgtsb. v8,v5,v1 + 2cc0: 24 05 1a 1c mulli r0,r26,1316 + 2cc4: 05 12 03 f4 stxv vs0,4608(r3) + 2cc8: 01 2e 05 13 bcdadd. v24,v5,v5,1 + 2ccc: 21 05 1a 03 .long 0x31a0521 + 2cd0: 8b 7e 20 05 .long 0x5207e8b + 2cd4: 02 06 24 05 .long 0x5240602 + 2cd8: 10 06 03 f2 psq_st f16,1552(r3),0,0 + 2cdc: 01 01 05 1a stxvp vs16,256(r5) + 2ce0: 03 8a 7e 20 subfic r3,r30,-30205 ((!is) && (ric == 1 || ric == 2))) - 2cf4: 0d 05 13 27 dozi r24,r19,1293 - 2cf8: 05 14 21 05 .long 0x5211405 - 2cfc: 12 03 ec 01 .long 0x1ec0312 + 2ce4: 05 12 33 05 .long 0x5331205 + 2ce8: 11 21 1e 05 .long 0x51e2111 + 2cec: 02 06 21 05 .long 0x5210602 ret = kvmhv_emulate_tlbie_tlb_addr(vcpu, lpid, ap, epn); - 2d00: 20 05 13 21 subfic r8,r19,1312 - 2d04: 05 10 21 05 .long 0x5211005 - 2d08: 12 03 8f 7e divdeu r20,r15,r0 - 2d0c: 20 05 02 06 .long 0x6020520 - 2d10: 21 05 12 06 .long 0x6120521 - 2d14: 03 ee 01 01 .long 0x101ee03 + 2cf0: 1a 06 0d 05 .long 0x50d061a + 2cf4: 13 27 05 14 .long 0x14052713 + 2cf8: 21 05 12 03 .long 0x3120521 + 2cfc: ec 01 20 05 .long 0x52001ec + 2d00: 13 21 05 10 .long 0x10052113 + 2d04: 21 05 12 03 .long 0x3120521 if (ret) - 2d18: 05 13 21 05 .long 0x5211305 - 2d1c: 11 03 91 7e .long 0x7e910311 - 2d20: 20 05 02 06 .long 0x6020520 - 2d24: 21 05 10 06 .long 0x6100521 + 2d08: 8f 7e 20 05 .long 0x5207e8f + 2d0c: 02 06 21 05 .long 0x5210602 + 2d10: 12 06 03 ee .long 0xee030612 + 2d14: 01 01 05 13 vcmpuq cr6,v5,v0 return H_SUCCESS; - 2d28: 03 ef 01 01 .long 0x101ef03 - 2d2c: 05 13 03 91 stw r8,4869(r3) + 2d18: 21 05 11 03 .long 0x3110521 + 2d1c: 91 7e 20 05 .long 0x5207e91 } - 2d30: 7e 20 05 02 .long 0x205207e - 2d34: 06 21 05 14 .long 0x14052106 - 2d38: 06 01 20 05 .long 0x5200106 - 2d3c: 02 06 03 ec .long 0xec030602 - 2d40: 01 01 05 12 vcmpuq cr4,v5,v0 - 2d44: 06 01 05 02 .long 0x2050106 - 2d48: 06 21 05 13 .long 0x13052106 - 2d4c: 06 01 05 02 .long 0x2050106 + 2d20: 02 06 21 05 .long 0x5210602 + 2d24: 10 06 03 ef .long 0xef030610 + 2d28: 01 01 05 13 vcmpuq cr6,v5,v0 + 2d2c: 03 91 7e 20 subfic r3,r30,-28413 + 2d30: 05 02 06 21 subfic r8,r6,517 + 2d34: 05 14 06 01 .long 0x1061405 + 2d38: 20 05 02 06 .long 0x6020520 + 2d3c: 03 ec 01 01 .long 0x101ec03 switch (is) { - 2d50: 06 21 05 10 .long 0x10052106 - 2d54: 06 01 05 02 .long 0x2050106 - 2d58: 06 21 05 0a tdlti r5,8454 - 2d5c: 06 01 2e 05 .long 0x52e0106 - 2d60: 02 06 30 23 subfic r25,r16,1538 - 2d64: 04 10 05 14 .long 0x14051004 - 2d68: 03 73 01 05 .long 0x5017303 - 2d6c: 02 14 04 02 .long 0x2041402 - 2d70: 05 01 03 b5 sthu r8,261(r3) + 2d40: 05 12 06 01 .long 0x1061205 + 2d44: 05 02 06 21 subfic r8,r6,517 + 2d48: 05 13 06 01 .long 0x1061305 + 2d4c: 05 02 06 21 subfic r8,r6,517 + 2d50: 05 10 06 01 .long 0x1061005 + 2d54: 05 02 06 21 subfic r8,r6,517 + 2d58: 05 0a 06 01 .long 0x1060a05 + 2d5c: 2e 05 02 06 .long 0x602052e + 2d60: 30 23 04 10 maddhd r0,r4,r4,r12 kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); - 2d74: 04 01 01 01 .long 0x1010104 + 2d64: 05 14 03 73 andi. r3,r24,5125 idr_for_each_entry(&kvm->arch.kvm_nested_guest_idr, gp, lpid) { - 2d78: 06 01 04 10 .long 0x10040106 - 2d7c: 05 29 03 cb lfd f24,10501(r3) + 2d68: 01 05 02 14 .long 0x14020501 + 2d6c: 04 02 05 01 .long 0x1050204 int lpid; - 2d80: 7b 20 04 01 .long 0x104207b - 2d84: 05 05 03 0b tdnei r3,1285 - 2d88: 20 05 02 06 .long 0x6020520 + 2d70: 03 b5 04 01 .long 0x104b503 + 2d74: 01 01 06 01 .long 0x1060101 + 2d78: 04 10 05 29 cmplwi cr2,r5,4100 idr_for_each_entry(&kvm->arch.kvm_nested_guest_idr, gp, lpid) { - 2d8c: 32 04 14 05 .long 0x5140432 - 2d90: 14 03 c6 03 .long 0x3c60314 - 2d94: 01 05 02 18 stxvp vs0,1280(r2) - 2d98: 04 0e 05 13 .long 0x13050e04 - 2d9c: 03 ca 7a 01 .long 0x17aca03 + 2d7c: 03 cb 7b 20 subfic r3,r27,-13565 + 2d80: 04 01 05 05 .long 0x5050104 + 2d84: 03 0b 20 05 .long 0x5200b03 + 2d88: 02 06 32 04 .long 0x4320602 + 2d8c: 14 05 14 03 .long 0x3140514 if (unlikely(ms->mmiowb_pending)) { - 2da0: 05 02 14 14 .long 0x14140205 - 2da4: 13 04 14 05 .long 0x5140413 + 2d90: c6 03 01 05 .long 0x50103c6 + 2d94: 02 18 04 0e twlti r4,6146 ms->nesting_count--; - 2da8: 17 06 03 b1 sth r8,1559(r3) - 2dac: 05 01 04 0e twlti r4,261 - 2db0: 05 0b 03 cf lfdu f24,2821(r3) - 2db4: 7a 20 20 2e cmpdi cr4,r0,8314 - 2db8: 04 01 05 09 tdgti r5,260 + 2d98: 05 13 03 ca lfd f16,4869(r3) + 2d9c: 7a 01 05 02 .long 0x205017a + 2da0: 14 14 13 04 .long 0x4131414 + 2da4: 14 05 17 06 .long 0x6170514 + 2da8: 03 b1 05 01 .long 0x105b103 kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); - 2dbc: 03 3c 01 04 .long 0x4013c03 - 2dc0: 0e 05 0b 03 .long 0x30b050e - 2dc4: 44 20 05 02 .long 0x2052044 - 2dc8: 06 2f 01 01 .long 0x1012f06 - 2dcc: 13 06 01 04 pld r0,4396877313(r3) - 2dd0: 01 06 03 e4 + 2dac: 04 0e 05 0b tdnei r5,3588 + 2db0: 03 cf 7a 20 subfic r3,r26,-12541 + 2db4: 20 2e 04 01 .long 0x1042e20 + 2db8: 05 09 03 3c addis r0,r3,2309 + 2dbc: 01 04 0e 05 .long 0x50e0401 + 2dc0: 0b 03 44 20 subfic r2,r4,779 idr_for_each_entry(&kvm->arch.kvm_nested_guest_idr, gp, lpid) { - 2dd4: 01 01 05 0c twi 0,r5,257 - 2dd8: 03 cf 7e 01 .long 0x17ecf03 - 2ddc: 05 02 17 14 .long 0x14170205 - 2de0: 04 16 05 13 .long 0x13051604 - 2de4: 03 fb 02 01 .long 0x102fb03 - 2de8: 05 02 14 04 .long 0x4140205 - 2dec: 14 05 15 06 .long 0x6150514 - 2df0: 03 f8 01 01 .long 0x101f803 + 2dc4: 05 02 06 2f cmpwi cr6,r6,517 + 2dc8: 01 01 13 06 .long 0x6130101 + 2dcc: 01 04 01 06 .long 0x6010401 + 2dd0: 03 e4 01 01 .long 0x101e403 + 2dd4: 05 0c 03 cf lfdu f24,3077(r3) + 2dd8: 7e 01 05 02 .long 0x205017e + 2ddc: 17 14 04 16 .long 0x16041417 + 2de0: 05 13 03 fb stdu r24,4868(r3) if (unlikely(ms->mmiowb_pending)) { - 2df4: 04 16 05 02 .long 0x2051604 + 2de4: 02 01 05 02 .long 0x2050102 struct mmiowb_state *ms = __mmiowb_state(); - 2df8: 03 88 7e 20 subfic r3,r30,-30717 - 2dfc: 4a 04 01 06 .long 0x601044a + 2de8: 14 04 14 05 .long 0x5140414 + 2dec: 15 06 03 f8 stdu r0,1556(r3) if (unlikely(ms->mmiowb_pending)) { - 2e00: 03 af 7e 01 .long 0x17eaf03 - 2e04: 04 14 05 14 .long 0x14051404 + 2df0: 01 01 04 16 .long 0x16040101 + 2df4: 05 02 03 88 lbz r0,517(r3) ms->nesting_count--; - 2e08: 03 cc 03 01 .long 0x103cc03 - 2e0c: 05 02 14 04 .long 0x4140205 - 2e10: 0e 06 03 91 stw r8,1550(r3) - 2e14: 7b 20 04 14 .long 0x1404207b - 2e18: 03 ef 04 20 subfic r0,r4,-4349 - 2e1c: 04 0e 05 14 .long 0x14050e04 + 2df8: 7e 20 4a 04 .long 0x44a207e + 2dfc: 01 06 03 af lhau r24,1537(r3) + 2e00: 7e 01 04 14 .long 0x1404017e + 2e04: 05 14 03 cc lfdu f0,5125(r3) + 2e08: 03 01 05 02 .long 0x2050103 + 2e0c: 14 04 0e 06 .long 0x60e0414 if (ret) - 2e20: 06 03 8e 7b rldicr r14,r28,32,12 - 2e24: 20 05 02 15 .long 0x15020520 - 2e28: 01 01 06 20 subfic r0,r6,257 - 2e2c: 15 2e 04 01 .long 0x1042e15 + 2e10: 03 91 7b 20 subfic r3,r27,-28413 + 2e14: 04 14 03 ef dsub f24,f3,f2 + 2e18: 04 20 04 0e twlti r4,8196 + 2e1c: 05 14 06 03 .long 0x3061405 gp = kvmhv_get_nested(kvm, lpid, false); - 2e30: 06 03 9f 01 .long 0x19f0306 - 2e34: 01 05 0a 06 .long 0x60a0501 - 2e38: 13 20 90 20 subfic r4,r16,8211 - 2e3c: 05 02 03 d8 stfd f0,517(r3) + 2e20: 8e 7b 20 05 .long 0x5207b8e + 2e24: 02 15 01 01 .long 0x1011502 + 2e28: 06 20 15 2e cmpwi cr4,r21,8198 + 2e2c: 04 01 06 03 .long 0x3060104 if (gp) { - 2e40: 7d 82 05 03 .long 0x305827d - 2e44: 06 03 0a 2e cmpwi cr4,r10,774 + 2e30: 9f 01 01 05 .long 0x501019f + 2e34: 0a 06 13 20 subfic r0,r19,1546 kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); - 2e48: 05 30 06 01 .long 0x1063005 - 2e4c: 05 0d 20 05 .long 0x5200d05 - 2e50: 03 06 22 06 .long 0x6220603 - 2e54: 4a 05 02 06 .long 0x602054a + 2e38: 90 20 05 02 .long 0x2052090 + 2e3c: 03 d8 7d 82 lwz r19,-10237(r29) + 2e40: 05 03 06 03 .long 0x3060305 + 2e44: 0a 2e 05 30 addic r0,r5,11786 kvmhv_put_nested(gp); - 2e58: 03 f2 00 01 .long 0x100f203 - 2e5c: 04 16 06 03 .long 0x3061604 + 2e48: 06 01 05 0d twgti r5,262 + 2e4c: 20 05 03 06 .long 0x6030520 if (ret) - 2e60: f9 02 01 04 .long 0x40102f9 - 2e64: 01 05 09 03 .long 0x3090501 - 2e68: 87 7d 20 20 subfic r1,r0,32135 - 2e6c: 05 39 4a 2e cmpwi cr4,r10,14597 - 2e70: 05 02 06 03 .long 0x3060205 - 2e74: a8 01 01 04 .long 0x40101a8 - 2e78: 14 05 14 03 .long 0x3140514 - 2e7c: cc 03 01 05 .long 0x50103cc + 2e50: 22 06 4a 05 .long 0x54a0622 + 2e54: 02 06 03 f2 xvmaxsp vs16,vs3,vs32 + 2e58: 00 01 04 16 .long 0x16040100 + 2e5c: 06 03 f9 02 .long 0x2f90306 + 2e60: 01 04 01 05 .long 0x5010401 + 2e64: 09 03 87 7d .long 0x7d870309 + 2e68: 20 20 05 39 addi r8,r5,8224 + 2e6c: 4a 2e 05 02 .long 0x2052e4a ms->mmiowb_pending = 0; - 2e80: 02 14 04 0e twlti r4,5122 - 2e84: 06 03 91 7b rldicr r17,r28,32,12 + 2e70: 06 03 a8 01 .long 0x1a80306 + 2e74: 01 04 14 05 .long 0x5140401 mmiowb(); - 2e88: 2e 04 14 03 .long 0x314042e - 2e8c: ef 04 20 04 .long 0x42004ef - 2e90: 0e 05 14 06 .long 0x614050e + 2e78: 14 03 cc 03 .long 0x3cc0314 + 2e7c: 01 05 02 14 .long 0x14020501 + 2e80: 04 0e 06 03 .long 0x3060e04 return H_PARAMETER; - 2e94: 03 8e 7b 20 subfic r3,r27,-29181 - 2e98: 05 02 15 01 .long 0x1150205 - 2e9c: 01 20 01 13 .long 0x13012001 + 2e84: 91 7b 2e 04 .long 0x42e7b91 + 2e88: 14 03 ef 04 .long 0x4ef0314 + 2e8c: 20 04 0e 05 .long 0x50e0420 ms->mmiowb_pending = 0; - 2ea0: 13 01 01 13 .long 0x13010113 + 2e90: 14 06 03 8e lbzu r16,1556(r3) mmiowb(); - 2ea4: 06 3c 04 01 .long 0x1043c06 - 2ea8: 05 03 06 03 .long 0x3060305 - 2eac: cc 00 01 05 .long 0x50100cc - 2eb0: 06 06 01 ac lhau r0,1542(r1) - 2eb4: 20 05 0a 03 .long 0x30a0520 - 2eb8: 62 58 05 03 .long 0x3055862 - 2ebc: 06 03 0d 3c addis r0,r13,774 - 2ec0: 05 02 2f 05 .long 0x52f0205 -} - 2ec4: 05 06 01 05 .long 0x5010605 - 2ec8: 02 06 3f 04 .long 0x43f0602 - 2ecc: 10 05 14 03 .long 0x3140510 - 2ed0: cb 00 01 05 .long 0x50100cb + 2e94: 7b 20 05 02 .long 0x205207b + 2e98: 15 01 01 20 subfic r0,r1,277 + 2e9c: 01 13 13 01 .long 0x1131301 + 2ea0: 01 13 06 3c addis r0,r6,4865 + 2ea4: 04 01 05 03 .long 0x3050104 + 2ea8: 06 03 cc 00 .long 0xcc0306 + 2eac: 01 05 06 06 .long 0x6060501 + 2eb0: 01 ac 20 05 .long 0x520ac01 +} + 2eb4: 0a 03 62 58 rlmi r2,r3,r0,12,5 + 2eb8: 05 03 06 03 .long 0x3060305 + 2ebc: 0d 3c 05 02 .long 0x2053c0d + 2ec0: 2f 05 05 06 .long 0x605052f return H_PARAMETER; - 2ed4: 02 14 04 02 .long 0x2041402 - 2ed8: 05 01 03 b5 sthu r8,261(r3) - 2edc: 04 01 01 01 .long 0x1010104 - 2ee0: 06 01 04 10 .long 0x10040106 - 2ee4: 05 29 03 cb lfd f24,10501(r3) -{ - 2ee8: 7b 01 04 01 .long 0x104017b - 2eec: 05 05 03 b3 sth r24,1285(r3) - 2ef0: 7f 20 05 03 .long 0x305207f - 2ef4: 06 2f 04 16 .long 0x16042f06 - 2ef8: 05 02 06 03 .long 0x3060205 - 2efc: af 02 4a 20 subfic r2,r10,687 - 2f00: 04 01 06 03 .long 0x3060104 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2f04: 87 7d 01 05 .long 0x5017d87 -{ - 2f08: 09 06 01 20 subfic r0,r1,1545 - 2f0c: 05 39 4a 05 .long 0x54a3905 - 2f10: 03 2f 20 58 rlmi. r0,r1,r5,28,1 - 2f14: 04 14 05 02 .long 0x2051404 - 2f18: 03 f5 04 01 .long 0x104f503 - 2f1c: 04 01 05 39 addi r8,r5,260 - 2f20: 03 8a 7b 2e cmpdi cr4,r27,-30205 - 2f24: 04 0e 05 02 .long 0x2050e04 + 2ec4: 01 05 02 06 .long 0x6020501 + 2ec8: 3f 04 10 05 .long 0x510043f + 2ecc: 14 03 cb 00 .long 0xcb0314 + 2ed0: 01 05 02 14 .long 0x14020501 + 2ed4: 04 02 05 01 .long 0x1050204 +{ + 2ed8: 03 b5 04 01 .long 0x104b503 + 2edc: 01 01 06 01 .long 0x1060101 + 2ee0: 04 10 05 29 cmplwi cr2,r5,4100 + 2ee4: 03 cb 7b 01 .long 0x17bcb03 + 2ee8: 04 01 05 05 .long 0x5050104 + 2eec: 03 b3 7f 20 subfic r3,r31,-19709 + 2ef0: 05 03 06 2f cmpwi cr6,r6,773 + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); + 2ef4: 04 16 05 02 .long 0x2051604 +{ + 2ef8: 06 03 af 02 .long 0x2af0306 + 2efc: 4a 20 04 01 .long 0x104204a + 2f00: 06 03 87 7d mtdcrx r7,r12 + 2f04: 01 05 09 06 .long 0x6090501 + 2f08: 01 20 05 39 addi r8,r5,8193 + 2f0c: 4a 05 03 2f cmpwi cr6,r3,1354 + 2f10: 20 58 04 14 .long 0x14045820 + 2f14: 05 02 03 f5 stxv vs8,512(r3) if (!__find_nested(vcpu->kvm, lpid)) - 2f28: 27 04 14 03 .long 0x3140427 + 2f18: 04 01 04 01 .long 0x1040104 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2f2c: ef 04 20 04 .long 0x42004ef + 2f1c: 05 39 03 8a lbz r16,14597(r3) { - 2f30: 01 05 39 03 .long 0x3390501 - 2f34: 8a 7b 20 2e cmpdi cr4,r0,31626 - 2f38: 05 02 06 03 .long 0x3060205 - 2f3c: a8 01 01 04 .long 0x40101a8 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); - 2f40: 14 05 14 03 .long 0x3140514 - 2f44: cc 03 01 05 .long 0x50103cc - 2f48: 02 14 04 0e twlti r4,5122 - 2f4c: 05 14 03 8e lbzu r16,5125(r3) + 2f20: 7b 2e 04 0e twlti r4,11899 + 2f24: 05 02 27 04 .long 0x4270205 + 2f28: 14 03 ef 04 .long 0x4ef0314 + 2f2c: 20 04 01 05 .long 0x5010420 + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); + 2f30: 39 03 8a 7b .long 0x7b8a0339 + 2f34: 20 2e 05 02 .long 0x2052e20 + 2f38: 06 03 a8 01 .long 0x1a80306 + 2f3c: 01 04 14 05 .long 0x5140401 if (!__find_nested(vcpu->kvm, lpid)) - 2f50: 7b 01 05 02 .long 0x205017b - 2f54: 15 01 01 20 subfic r0,r1,277 + 2f40: 14 03 cc 03 .long 0x3cc0314 + 2f44: 01 05 02 14 .long 0x14020501 if ((type & H_RPTI_TYPE_NESTED_ALL) == H_RPTI_TYPE_NESTED_ALL) - 2f58: 01 13 13 01 .long 0x1131301 - 2f5c: 01 13 06 3c addis r0,r6,4865 - 2f60: 04 01 06 03 .long 0x3060104 + 2f48: 04 0e 05 14 .long 0x14050e04 + 2f4c: 03 8e 7b 01 .long 0x17b8e03 + 2f50: 05 02 15 01 .long 0x1150205 if (start == 0 && end == -1) - 2f64: 9f 01 01 05 .long 0x501019f - 2f68: 05 06 01 05 .long 0x5010605 - 2f6c: 02 06 31 05 .long 0x5310602 - 2f70: 05 06 01 05 .long 0x5010605 + 2f54: 01 20 01 13 .long 0x13012001 + 2f58: 13 01 01 13 .long 0x13010113 + 2f5c: 06 3c 04 01 .long 0x1043c06 + 2f60: 06 03 9f 01 .long 0x19f0306 if (type & H_RPTI_TYPE_TLB) - 2f74: 02 06 31 05 .long 0x5310602 - 2f78: 05 06 01 05 .long 0x5010605 + 2f64: 01 05 05 06 .long 0x6050501 + 2f68: 01 05 02 06 .long 0x6020501 } - 2f7c: 02 06 41 05 .long 0x5410602 + 2f6c: 31 05 05 06 .long 0x6050531 return do_tlb_invalidate_nested_all(vcpu, lpid, RIC_FLUSH_ALL); - 2f80: 13 06 01 05 .long 0x5010613 + 2f70: 01 05 02 06 .long 0x6020501 } - 2f84: 03 06 03 b0 sth r0,1539(r3) - 2f88: 7f 4a 06 2e cmpwi cr4,r6,19071 - 2f8c: 06 2f 2f 03 .long 0x32f2f06 - 2f90: 3c 66 2f 03 .long 0x32f663c - 2f94: 0d 66 05 0d twgti r5,26125 - 2f98: 03 9a 7e 01 .long 0x17e9a03 - 2f9c: 05 02 15 05 .long 0x5150205 - 2fa0: 12 06 1a 03 .long 0x31a0612 - 2fa4: 78 20 05 02 .long 0x2052078 - 2fa8: 06 28 05 05 .long 0x5052806 - 2fac: 06 01 05 06 .long 0x6050106 - 2fb0: 3d 05 03 06 .long 0x603053d - 2fb4: 3d 05 2f 06 .long 0x62f053d - 2fb8: 01 05 15 23 subfic r24,r21,1281 - 2fbc: 05 2f 1d 05 .long 0x51d2f05 + 2f74: 31 05 05 06 .long 0x6050531 + 2f78: 01 05 02 06 .long 0x6020501 + 2f7c: 41 05 13 06 .long 0x6130541 + 2f80: 01 05 03 06 .long 0x6030501 + 2f84: 03 b0 7f 4a bla fe7fb000 + 2f88: 06 2e 06 2f cmpwi cr6,r6,11782 + 2f8c: 2f 03 3c 66 oris r28,r17,815 + 2f90: 2f 03 0d 66 oris r13,r16,815 + 2f94: 05 0d 03 9a stb r16,3333(r3) + 2f98: 7e 01 05 02 .long 0x205017e + 2f9c: 15 05 12 06 .long 0x6120515 + 2fa0: 1a 03 78 20 subfic r3,r24,794 + 2fa4: 05 02 06 28 cmplwi r6,517 + 2fa8: 05 05 06 01 .long 0x1060505 + 2fac: 05 06 3d 05 .long 0x53d0605 int ret = H_P4; - 2fc0: 15 23 05 1c mulli r0,r5,8981 + 2fb0: 03 06 3d 05 .long 0x53d0603 page_size = 1UL << def->shift; - 2fc4: 1d 05 03 06 .long 0x603051d - 2fc8: 23 06 01 05 .long 0x5010623 - 2fcc: 0a 03 d7 01 .long 0x1d7030a + 2fb4: 2f 06 01 05 .long 0x501062f + 2fb8: 15 23 05 2f cmpwi cr6,r5,8981 + 2fbc: 1d 05 15 23 subfic r24,r21,1309 nr_pages = (end - start) >> def->shift; - 2fd0: 01 05 03 06 .long 0x6030501 - 2fd4: 03 d3 7d 3c addis r3,r29,-11517 - 2fd8: 05 0c 06 01 .long 0x1060c05 - 2fdc: 05 1a 21 05 .long 0x5211a05 - 2fe0: 0c 21 1e 05 .long 0x51e210c + 2fc0: 05 1c 1d 05 .long 0x51d1c05 + 2fc4: 03 06 23 06 .long 0x6230603 + 2fc8: 01 05 0a 03 .long 0x30a0501 + 2fcc: d7 01 01 05 .long 0x50101d7 + 2fd0: 03 06 03 d3 stfs f24,1539(r3) if (!(pg_sizes & def->h_rpt_pgsize)) - 2fe4: 03 06 21 05 .long 0x5210603 - 2fe8: 1a 06 01 05 .long 0x501061a - 2fec: 03 06 21 05 .long 0x5210603 + 2fd4: 7d 3c 05 0c twi 0,r5,15485 + 2fd8: 06 01 05 1a .long 0x1a050106 + 2fdc: 21 05 0c 21 subfic r8,r12,1313 for (psize = 0; psize < MMU_PAGE_COUNT; psize++) { - 2ff0: 0c 06 01 05 .long 0x501060c - 2ff4: 03 06 21 03 .long 0x3210603 - 2ff8: 09 2e 05 18 .long 0x18052e09 + 2fe0: 1e 05 03 06 .long 0x603051e + 2fe4: 21 05 1a 06 .long 0x61a0521 + 2fe8: 01 05 03 06 .long 0x6030501 return ret; - 2ffc: 06 01 05 03 .long 0x3050106 - 3000: 06 2f 06 20 subfic r0,r6,12038 - 3004: 05 39 03 ef .long 0xef033905 - 3008: 00 01 20 04 .long 0x4200100 - 300c: 0e 05 02 06 .long 0x602050e + 2fec: 21 05 0c 06 .long 0x60c0521 + 2ff0: 01 05 03 06 .long 0x6030501 + 2ff4: 21 03 09 2e cmpwi cr4,r9,801 + 2ff8: 05 18 06 01 .long 0x1061805 + 2ffc: 05 03 06 2f cmpwi cr6,r6,773 flush_lpid = nr_pages > tlb_range_flush_page_ceiling; - 3010: 19 01 20 01 .long 0x1200119 + 3000: 06 20 05 39 addi r8,r5,8198 nr_pages = (end - start) >> def->shift; - 3014: 06 3c 04 01 .long 0x1043c06 + 3004: 03 ef 00 01 .long 0x100ef03 flush_lpid = nr_pages > tlb_range_flush_page_ceiling; - 3018: 05 07 00 02 .long 0x2000705 + 3008: 20 04 0e 05 .long 0x50e0420 nr_pages = (end - start) >> def->shift; - 301c: 04 01 06 03 .long 0x3060104 + 300c: 02 06 19 01 .long 0x1190602 if (flush_lpid) - 3020: d4 00 01 00 .long 0x100d4 - 3024: 02 04 01 01 .long 0x1010402 - 3028: 04 0e 05 02 .long 0x2050e04 + 3010: 20 01 06 3c addis r0,r6,288 + 3014: 04 01 05 07 .long 0x7050104 + 3018: 00 02 04 01 attn page_size = 1UL << def->shift; - 302c: 03 ac 7f 20 subfic r3,r31,-21501 - 3030: 01 06 3c 04 .long 0x43c0601 - 3034: 01 05 0a 03 .long 0x30a0501 - 3038: 60 2e 04 0e twlti r4,11872 - 303c: 05 02 06 03 .long 0x3060205 + 301c: 06 03 d4 00 .long 0xd40306 + 3020: 01 00 02 04 .long 0x4020001 + 3024: 01 01 04 0e twlti r4,257 + 3028: 05 02 03 ac lhau r0,517(r3) + 302c: 7f 20 01 06 .long 0x601207f } while (addr < end); - 3040: 20 20 01 06 .long 0x6012020 + 3030: 3c 04 01 05 .long 0x501043c ret = kvmhv_emulate_tlbie_tlb_addr(vcpu, lpid, ap, - 3044: c8 04 01 05 .long 0x50104c8 - 3048: 0a 03 77 01 .long 0x177030a - 304c: 04 0e 05 02 .long 0x2050e04 - 3050: 06 03 09 20 subfic r0,r9,774 + 3034: 0a 03 60 2e cmpdi cr4,r0,778 + 3038: 04 0e 05 02 .long 0x2050e04 + 303c: 06 03 20 20 subfic r1,r0,774 + 3040: 01 06 c8 04 .long 0x4c80601 addr += page_size; - 3054: 01 06 3c d6 stfsu f17,1537(r28) + 3044: 01 05 0a 03 .long 0x30a0501 ret = kvmhv_emulate_tlbie_tlb_addr(vcpu, lpid, ap, - 3058: 04 01 05 0a tdlti r5,260 + 3048: 77 01 04 0e twlti r4,375 } while (addr < end); - 305c: 03 c0 00 01 .long 0x100c003 + 304c: 05 02 06 03 .long 0x3060205 if (ret) - 3060: 03 e6 00 2e cmpwi cr4,r0,-6653 - 3064: 2e 05 01 ec .long 0xec01052e + 3050: 09 20 01 06 .long 0x6012009 + 3054: 3c d6 04 01 .long 0x104d63c return H_P4; - 3068: 06 03 82 01 .long 0x1820306 - 306c: 58 05 02 4b b ffffffffff0235c4 - 3070: 13 05 01 06 .long 0x6010513 - 3074: 10 04 10 05 .long 0x5100410 - 3078: 15 06 03 a5 lhzu r8,1557(r3) - 307c: 7e 4a 05 02 .long 0x2054a7e - 3080: 14 06 01 04 .long 0x4010614 -} - 3084: 01 05 01 03 .long 0x3010501 - 3088: d9 01 01 04 .long 0x40101d9 - 308c: 10 05 1c 03 .long 0x31c0510 - 3090: a7 7e 74 04 .long 0x4747ea7 - 3094: 01 05 06 03 .long 0x3060501 - 3098: db 01 20 05 .long 0x52001db - 309c: 02 06 21 04 .long 0x4210602 - 30a0: 10 05 15 03 .long 0x3150510 - 30a4: a2 7e 01 05 .long 0x5017ea2 - 30a8: 02 14 05 1c mulli r0,r5,5122 - 30ac: 06 01 20 04 .long 0x4200106 + 3058: 05 0a 03 c0 lfs f0,2565(r3) + 305c: 00 01 03 e6 psq_lu f16,256(r3),0,0 + 3060: 00 2e 2e 05 .long 0x52e2e00 + 3064: 01 ec 06 03 .long 0x306ec01 + 3068: 82 01 58 05 .long 0x5580182 + 306c: 02 4b 13 05 .long 0x5134b02 + 3070: 01 06 10 04 .long 0x4100601 +} + 3074: 10 05 15 06 .long 0x6150510 + 3078: 03 a5 7e 4a bla fe7ea500 + 307c: 05 02 14 06 .long 0x6140205 + 3080: 01 04 01 05 .long 0x5010401 + 3084: 01 03 d9 01 .long 0x1d90301 + 3088: 01 04 10 05 .long 0x5100401 + 308c: 1c 03 a7 7e dcblce 21,r7,r0 + 3090: 74 04 01 05 .long 0x5010474 + 3094: 06 03 db 01 .long 0x1db0306 + 3098: 20 05 02 06 .long 0x6020520 + 309c: 21 04 10 05 .long 0x5100421 gp = kvmhv_get_nested(kvm, lpid, false); - 30b0: 01 05 02 06 .long 0x6020501 - 30b4: 03 dd 01 01 .long 0x101dd03 - 30b8: 04 10 05 15 .long 0x15051004 - 30bc: 03 a1 7e 01 .long 0x17ea103 + 30a0: 15 03 a2 7e .long 0x7ea20315 + 30a4: 01 05 02 14 .long 0x14020501 + 30a8: 05 1c 06 01 .long 0x1061c05 + 30ac: 20 04 01 05 .long 0x5010420 if (gp) { - 30c0: 05 02 14 05 .long 0x5140205 - 30c4: 1c 06 01 20 subfic r0,r1,1564 + 30b0: 02 06 03 dd stfdu f8,1538(r3) + 30b4: 01 01 04 10 vcmpuq cr0,v4,v0 kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); - 30c8: 04 01 05 02 .long 0x2050104 - 30cc: 06 03 de 01 .long 0x1de0306 - 30d0: 01 04 10 05 .long 0x5100401 - 30d4: 15 03 a0 7e .long 0x7ea00315 + 30b8: 05 15 03 a1 lhz r8,5381(r3) + 30bc: 7e 01 05 02 .long 0x205017e + 30c0: 14 05 1c 06 .long 0x61c0514 + 30c4: 01 20 04 01 .long 0x1042001 kvmhv_put_nested(gp); - 30d8: 01 05 02 14 .long 0x14020501 - 30dc: 06 01 04 01 .long 0x1040106 - 30e0: 06 03 df 01 .long 0x1df0306 - 30e4: 01 04 10 05 .long 0x5100401 - 30e8: 15 03 9f 7e .long 0x7e9f0315 - 30ec: 01 05 02 14 .long 0x14020501 + 30c8: 05 02 06 03 .long 0x3060205 + 30cc: de 01 01 04 .long 0x40101de + 30d0: 10 05 15 03 .long 0x3150510 + 30d4: a0 7e 01 05 .long 0x5017ea0 + 30d8: 02 14 06 01 .long 0x1061402 + 30dc: 04 01 06 03 .long 0x3060104 gp = kvmhv_get_nested(kvm, lpid, false); - 30f0: 05 1c 06 01 .long 0x1061c05 - 30f4: 20 04 01 05 .long 0x5010420 - 30f8: 02 06 03 e0 lq r0,1536(r3) - 30fc: 01 01 13 04 .long 0x4130101 + 30e0: df 01 01 04 .long 0x40101df + 30e4: 10 05 15 03 .long 0x3150510 + 30e8: 9f 7e 01 05 .long 0x5017e9f + 30ec: 02 14 05 1c mulli r0,r5,5122 if (gp) { - 3100: 10 05 15 03 .long 0x3150510 - 3104: 9d 7e 01 05 .long 0x5017e9d + 30f0: 06 01 20 04 .long 0x4200106 + 30f4: 01 05 02 06 .long 0x6020501 kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); - 3108: 02 14 05 1c mulli r0,r5,5122 - 310c: 06 01 20 04 .long 0x4200106 - 3110: 01 05 02 06 .long 0x6020501 - 3114: 03 e2 01 01 .long 0x101e203 + 30f8: 03 e0 01 01 .long 0x101e003 + 30fc: 13 04 10 05 .long 0x5100413 + 3100: 15 03 9d 7e .long 0x7e9d0315 + 3104: 01 05 02 14 .long 0x14020501 kvmhv_put_nested(gp); - 3118: 13 14 05 05 .long 0x5051413 - 311c: 06 01 05 0c twi 0,r5,262 - 3120: 00 02 04 01 attn + 3108: 05 1c 06 01 .long 0x1061c05 + 310c: 20 04 01 05 .long 0x5010420 + 3110: 02 06 03 e2 lq r16,1536(r3) gp = kvmhv_get_nested(kvm, lpid, false); - 3124: 2e 05 02 06 .long 0x602052e - 3128: 31 05 05 06 .long 0x6050531 - 312c: 01 05 02 06 .long 0x6020501 - 3130: 4d 04 0d 05 .long 0x50d044d + 3114: 01 01 13 14 .long 0x14130101 + 3118: 05 05 06 01 .long 0x1060505 + 311c: 05 0c 00 02 .long 0x2000c05 + 3120: 04 01 2e 05 .long 0x52e0104 if (gp) { - 3134: 25 03 8d 01 .long 0x18d0325 - 3138: 01 05 02 14 .long 0x14020501 + 3124: 02 06 31 05 .long 0x5310602 + 3128: 05 06 01 05 .long 0x5010605 kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); - 313c: 05 2e 03 eb ldu r24,11780(r3) - 3140: 7e 01 05 02 .long 0x205017e - 3144: 14 03 0b 01 .long 0x10b0314 - 3148: 05 09 06 20 subfic r0,r6,2309 + 312c: 02 06 4d 04 .long 0x44d0602 + 3130: 0d 05 25 03 .long 0x325050d + 3134: 8d 01 01 05 .long 0x501018d + 3138: 02 14 05 2e cmpwi cr4,r5,5122 kvmhv_put_nested(gp); - 314c: 2e 4a 04 01 .long 0x1044a2e - 3150: 05 02 06 03 .long 0x3060205 - 3154: 7a 01 05 05 .long 0x505017a - 3158: 06 01 05 02 .long 0x2050106 - 315c: 06 31 05 07 .long 0x7053106 - 3160: 06 01 20 05 .long 0x5200106 - 3164: 02 06 3d 05 .long 0x53d0602 - 3168: 05 06 01 20 subfic r0,r1,1541 - 316c: 05 02 06 33 addic r24,r6,517 - 3170: 06 2e 06 30 addic r0,r6,11782 - 3174: 05 05 06 01 .long 0x1060505 -{ - 3178: 05 03 06 03 .long 0x3060305 - 317c: 0f 20 04 14 .long 0x1404200f - 3180: 05 14 03 87 lwzu r24,5125(r3) - 3184: 02 01 05 02 .long 0x2050102 - 3188: 18 04 0e 05 .long 0x50e0418 - 318c: 13 03 ca 7a rldcr. r10,r22,r0,12 - 3190: 01 05 02 14 .long 0x14020501 - 3194: 14 13 04 14 .long 0x14041314 - 3198: 05 17 06 03 .long 0x3061705 - 319c: b1 05 01 04 .long 0x40105b1 - 31a0: 0e 05 0b 03 .long 0x30b050e - 31a4: cf 7a 20 20 subfic r1,r0,31439 - 31a8: 2e 04 01 05 .long 0x501042e - 31ac: 08 03 a5 03 .long 0x3a50308 - 31b0: 01 04 0e 05 .long 0x50e0401 - 31b4: 0b 03 db 7c .long 0x7cdb030b - 31b8: 3c 05 02 06 .long 0x602053c + 313c: 03 eb 7e 01 .long 0x17eeb03 + 3140: 05 02 14 03 .long 0x3140205 + 3144: 0b 01 05 09 tdgti r5,267 + 3148: 06 20 2e 4a ba fe2e2004 + 314c: 04 01 05 02 .long 0x2050104 + 3150: 06 03 7a 01 .long 0x17a0306 + 3154: 05 05 06 01 .long 0x1060505 + 3158: 05 02 06 31 addic r8,r6,517 + 315c: 05 07 06 01 .long 0x1060705 + 3160: 20 05 02 06 .long 0x6020520 + 3164: 3d 05 05 06 .long 0x605053d +{ + 3168: 01 20 05 02 .long 0x2052001 + 316c: 06 33 06 2e cmpwi cr4,r6,13062 + 3170: 06 30 05 05 .long 0x5053006 + 3174: 06 01 05 03 .long 0x3050106 + 3178: 06 03 0f 20 subfic r0,r15,774 + 317c: 04 14 05 14 .long 0x14051404 + 3180: 03 87 02 01 .long 0x1028703 + 3184: 05 02 18 04 .long 0x4180205 + 3188: 0e 05 13 03 .long 0x313050e + 318c: ca 7a 01 05 .long 0x5017aca + 3190: 02 14 14 13 vavgub v24,v20,v2 + 3194: 04 14 05 17 .long 0x17051404 + 3198: 06 03 b1 05 .long 0x5b10306 + 319c: 01 04 0e 05 .long 0x50e0401 + 31a0: 0b 03 cf 7a rldic. r15,r22,32,12 + 31a4: 20 20 2e 04 .long 0x42e2020 + 31a8: 01 05 08 03 .long 0x3080501 struct kvm_nested_guest *gp = vcpu->arch.nested; - 31bc: 21 01 01 13 vmhraddshs v24,v1,v0,v4 + 31ac: a5 03 01 04 .long 0x40103a5 { - 31c0: 06 01 04 01 .long 0x1040106 - 31c4: 05 08 03 a3 lhz r24,2053(r3) - 31c8: 03 01 04 14 .long 0x14040103 + 31b0: 0e 05 0b 03 .long 0x30b050e + 31b4: db 7c 3c 05 .long 0x53c7cdb + 31b8: 02 06 21 01 .long 0x1210602 mutex_lock(&gp->tlb_lock); - 31cc: 05 15 03 8c lbzu r0,5381(r3) - 31d0: 02 20 20 04 .long 0x4202002 - 31d4: 01 05 03 06 .long 0x6030501 - 31d8: 03 f4 7d 01 .long 0x17df403 + 31bc: 01 13 06 01 .long 0x1061301 + 31c0: 04 01 05 08 tdi 0,r5,260 + 31c4: 03 a3 03 01 .long 0x103a303 + 31c8: 04 14 05 15 .long 0x15051404 struct rmap_nested *n_rmap; - 31dc: 05 08 06 01 .long 0x1060805 + 31cc: 03 8c 02 20 subfic r0,r2,-29693 unsigned long dsisr = vcpu->arch.fault_dsisr; - 31e0: 04 14 05 02 .long 0x2051404 + 31d0: 20 04 01 05 .long 0x5010420 struct kvm *kvm = vcpu->kvm; - 31e4: 03 91 02 2e cmpwi cr4,r2,-28413 + 31d4: 03 06 03 f4 stxssp v0,1536(r3) unsigned long ea = vcpu->arch.fault_dar; - 31e8: 04 01 05 08 tdi 0,r5,260 + 31d8: 7d 01 05 08 tdi 0,r5,381 struct kvmppc_pte gpte; - 31ec: 03 ef 7d 2e cmpdi cr4,r29,-4349 - 31f0: 05 03 06 21 subfic r8,r6,773 - 31f4: 04 14 05 14 .long 0x14051404 - 31f8: 03 8e 02 01 .long 0x1028e03 - 31fc: 05 02 14 04 .long 0x4140205 - 3200: 0e 06 03 91 stw r8,1550(r3) - 3204: 7b 01 04 14 .long 0x1404017b - 3208: 03 ef 04 20 subfic r0,r4,-4349 + 31dc: 06 01 04 14 .long 0x14040106 + 31e0: 05 02 03 91 stw r8,517(r3) + 31e4: 02 2e 04 01 .long 0x1042e02 + 31e8: 05 08 03 ef dadd. f24,f3,f1 + 31ec: 7d 2e 05 03 .long 0x3052e7d + 31f0: 06 21 04 14 .long 0x14042106 + 31f4: 05 14 03 8e lbzu r16,5125(r3) + 31f8: 02 01 05 02 .long 0x2050102 if (!gp->l1_gr_to_hr) { - 320c: 04 0e 05 14 .long 0x14050e04 + 31fc: 14 04 0e 06 .long 0x60e0414 struct rmap_nested *n_rmap; - 3210: 06 03 8e 7b rldicr r14,r28,32,12 + 3200: 03 91 7b 01 .long 0x17b9103 pte_t pte, *pte_p; - 3214: 20 05 02 15 .long 0x15020520 + 3204: 04 14 03 ef dsub f24,f3,f2 unsigned int shift, l1_shift, level; - 3218: 01 01 20 01 .long 0x1200101 - 321c: 13 13 01 01 .long 0x1011313 + 3208: 04 20 04 0e twlti r4,8196 + 320c: 05 14 06 03 .long 0x3061405 if (!gp->l1_gr_to_hr) { - 3220: 13 06 20 2e cmpdi cr4,r0,1555 - 3224: 04 01 05 03 .long 0x3050104 + 3210: 8e 7b 20 05 .long 0x5207b8e + 3214: 02 15 01 01 .long 0x1011502 n_gpa = vcpu->arch.fault_gpa & ~0xF000000000000FFFULL; - 3228: 06 03 dd 02 .long 0x2dd0306 - 322c: 01 05 06 06 .long 0x6060501 + 3218: 20 01 13 13 vmhaddshs v24,v19,v0,v4 + 321c: 01 01 13 06 .long 0x6130101 if (!(dsisr & DSISR_PRTABLE_FAULT)) - 3230: 01 05 05 03 .long 0x3050501 + 3220: 20 2e 04 01 .long 0x1042e20 n_gpa = vcpu->arch.fault_gpa & ~0xF000000000000FFFULL; - 3234: 11 2e 05 02 .long 0x2052e11 - 3238: 06 03 7a 20 subfic r3,r26,774 + 3224: 05 03 06 03 .long 0x3060305 + 3228: dd 02 01 05 .long 0x50102dd if (!(dsisr & DSISR_PRTABLE_FAULT)) - 323c: 3d 3e 3d 05 .long 0x53d3e3d + 322c: 06 06 01 05 .long 0x5010606 n_gpa |= ea & 0xFFF; - 3240: 09 06 01 2e cmpwi cr4,r1,1545 - 3244: 05 01 24 4a bl fffffffffe243348 + 3230: 05 03 11 2e cmpwi cr4,r17,773 + 3234: 05 02 06 03 .long 0x3060205 u64 fault_addr, flags = dsisr & DSISR_ISSTORE; - 3248: 20 20 20 20 subfic r1,r0,8224 + 3238: 7a 20 3d 3e addis r17,r29,8314 ret = kvmppc_mmu_walk_radix_tree(vcpu, n_gpa, gpte_p, gp->l1_gr_to_hr, - 324c: 05 03 06 03 .long 0x3060305 - 3250: 5d 4a 05 08 tdi 0,r5,19037 - 3254: 06 01 05 03 .long 0x3050106 - 3258: 06 84 05 06 .long 0x6058406 + 323c: 3d 05 09 06 .long 0x609053d + 3240: 01 2e 05 01 .long 0x1052e01 + 3244: 24 4a 20 20 subfic r1,r0,18980 + 3248: 20 20 05 03 .long 0x3052020 u64 fault_addr, flags = dsisr & DSISR_ISSTORE; - 325c: 06 01 05 03 .long 0x3050106 + 324c: 06 03 5d 4a ba fe5d0304 ret = kvmppc_mmu_walk_radix_tree(vcpu, n_gpa, gpte_p, gp->l1_gr_to_hr, - 3260: 06 32 04 14 .long 0x14043206 - 3264: 05 14 03 8e lbzu r16,5125(r3) + 3250: 05 08 06 01 .long 0x1060805 + 3254: 05 03 06 84 lwzu r0,773(r6) if (ret) { - 3268: 02 01 05 02 .long 0x2050102 - 326c: 18 04 0e 05 .long 0x50e0418 + 3258: 05 06 06 01 .long 0x1060605 + 325c: 05 03 06 32 addic r16,r6,773 if (ret == -EINVAL) { - 3270: 13 03 ca 7a rldcr. r10,r22,r0,12 - 3274: 01 05 02 14 .long 0x14020501 + 3260: 04 14 05 14 .long 0x14051404 + 3264: 03 8e 02 01 .long 0x1028e03 } else if (ret == -ENOENT) { - 3278: 14 13 04 14 .long 0x14041314 - 327c: 05 17 06 03 .long 0x3061705 + 3268: 05 02 18 04 .long 0x4180205 + 326c: 0e 05 13 03 .long 0x313050e } else if (ret == -EFAULT) { - 3280: b1 05 01 04 .long 0x40105b1 - 3284: 0e 05 0b 03 .long 0x30b050e + 3270: ca 7a 01 05 .long 0x5017aca + 3274: 02 14 14 13 vavgub v24,v20,v2 if (ret == RESUME_HOST && - 3288: cf 7a 20 20 subfic r1,r0,31439 + 3278: 04 14 05 17 .long 0x17051404 ret = kvmhv_translate_addr_nested(vcpu, gp, n_gpa, dsisr, &gpte); - 328c: 2e 04 01 05 .long 0x501042e + 327c: 06 03 b1 05 .long 0x5b10306 if (ret == RESUME_HOST && - 3290: 08 03 9e 03 .long 0x39e0308 - 3294: 01 04 0e 05 .long 0x50e0401 - 3298: 0b 03 e2 7c .long 0x7ce2030b - 329c: 3c 05 02 06 .long 0x602053c - 32a0: 21 01 01 13 vmhraddshs v24,v1,v0,v4 + 3280: 01 04 0e 05 .long 0x50e0401 + 3284: 0b 03 cf 7a rldic. r15,r22,32,12 + 3288: 20 20 2e 04 .long 0x42e2020 + 328c: 01 05 08 03 .long 0x3080501 + 3290: 9e 03 01 04 .long 0x401039e bool writing = !!(dsisr & DSISR_ISSTORE); - 32a4: 06 01 04 01 .long 0x1040106 + 3294: 0e 05 0b 03 .long 0x30b050e if (dsisr & DSISR_ISSTORE) { - 32a8: 05 08 03 9c stbu r0,2053(r3) - 32ac: 03 01 04 14 .long 0x14040103 - 32b0: 05 15 03 93 stw r24,5381(r3) - 32b4: 02 20 20 04 .long 0x4202002 + 3298: e2 7c 3c 05 .long 0x53c7ce2 + 329c: 02 06 21 01 .long 0x1210602 + 32a0: 01 13 06 01 .long 0x1061301 + 32a4: 04 01 05 08 tdi 0,r5,260 unsigned long dsisr = vcpu->arch.fault_dsisr; - 32b8: 01 05 03 06 .long 0x6030501 - 32bc: 03 ed 7d 01 .long 0x17ded03 + 32a8: 03 9c 03 01 .long 0x1039c03 + 32ac: 04 14 05 15 .long 0x15051404 bool writing = !!(dsisr & DSISR_ISSTORE); - 32c0: 05 08 06 01 .long 0x1060805 - 32c4: 04 14 05 02 .long 0x2051404 + 32b0: 03 93 02 20 subfic r0,r2,-27901 + 32b4: 20 04 01 05 .long 0x5010420 if (dsisr & DSISR_ISSTORE) { - 32c8: 03 98 02 2e cmpwi cr4,r2,-26621 + 32b8: 03 06 03 ed .long 0xed030603 if (!gpte_p->may_write) { - 32cc: 04 01 05 08 tdi 0,r5,260 - 32d0: 03 e8 7d 2e cmpdi cr4,r29,-6141 - 32d4: 05 03 06 21 subfic r8,r6,773 + 32bc: 7d 01 05 08 tdi 0,r5,381 + 32c0: 06 01 04 14 .long 0x14040106 + 32c4: 05 02 03 98 stb r0,517(r3) if (dsisr & DSISR_SET_RC) { - 32d8: 04 14 05 14 .long 0x14051404 - 32dc: 03 95 02 01 .long 0x1029503 - 32e0: 05 02 14 04 .long 0x4140205 + 32c8: 02 2e 04 01 .long 0x1042e02 + 32cc: 05 08 03 e8 ldu r0,2052(r3) + 32d0: 7d 2e 05 03 .long 0x3052e7d l1_shift = gpte.page_shift; - 32e4: 0e 06 03 91 stw r8,1550(r3) - 32e8: 7b 01 04 14 .long 0x1404017b + 32d4: 06 21 04 14 .long 0x14042106 + 32d8: 05 14 03 95 stwu r8,5125(r3) if (l1_shift < PAGE_SHIFT) { - 32ec: 03 ef 04 20 subfic r0,r4,-4349 - 32f0: 04 0e 05 14 .long 0x14050e04 + 32dc: 02 01 05 02 .long 0x2050102 + 32e0: 14 04 0e 06 .long 0x60e0414 gpa = gpte.raddr; - 32f4: 06 03 8e 7b rldicr r14,r28,32,12 + 32e4: 03 91 7b 01 .long 0x17b9103 memslot = gfn_to_memslot(kvm, gfn); - 32f8: 20 05 02 15 .long 0x15020520 - 32fc: 01 01 20 01 .long 0x1200101 - 3300: 13 13 01 01 .long 0x1011313 - 3304: 13 06 20 2e cmpdi cr4,r0,1555 + 32e8: 04 14 03 ef dsub f24,f3,f2 + 32ec: 04 20 04 0e twlti r4,8196 + 32f0: 05 14 06 03 .long 0x3061405 + 32f4: 8e 7b 20 05 .long 0x5207b8e if (!memslot || (memslot->flags & KVM_MEMSLOT_INVALID)) { - 3308: 04 01 05 03 .long 0x3050104 - 330c: 06 03 d6 02 .long 0x2d60306 - 3310: 01 05 06 06 .long 0x6060501 - 3314: 01 2c 20 03 .long 0x3202c01 - 3318: 71 2e 20 05 .long 0x5202e71 - 331c: 03 06 03 1c mulli r0,r3,1539 + 32f8: 02 15 01 01 .long 0x1011502 + 32fc: 20 01 13 13 vmhaddshs v24,v19,v0,v4 + 3300: 01 01 13 06 .long 0x6130101 + 3304: 20 2e 04 01 .long 0x1042e20 + 3308: 05 03 06 03 .long 0x3060305 + 330c: d6 02 01 05 .long 0x50102d6 if (memslot->flags & KVM_MEM_READONLY) { - 3320: 3c 05 08 06 .long 0x608053c - 3324: 01 05 03 06 .long 0x6030501 + 3310: 06 06 01 2c cmpwi r1,1542 + 3314: 20 03 71 2e cmpdi cr4,r17,800 if (writing) { - 3328: 84 05 06 06 .long 0x6060584 + 3318: 20 05 03 06 .long 0x6030520 kvm_ro = true; - 332c: 01 03 71 2e cmpdi cr4,r17,769 + 331c: 03 1c 3c 05 .long 0x53c1c03 mmu_seq = kvm->mmu_invalidate_seq; - 3330: 05 0a 03 6d xoris r3,r8,2565 + 3320: 08 06 01 05 .long 0x5010608 smp_rmb(); - 3334: 2e 3c 03 79 rldimi r3,r8,39,48 + 3324: 03 06 84 05 .long 0x5840603 pte = __pte(0); - 3338: 58 04 0e 05 .long 0x50e0458 - 333c: 02 06 03 c3 lfs f24,1538(r3) - 3340: 7d 4a 01 20 subfic r0,r1,19069 - 3344: 01 06 3c 06 .long 0x63c0601 - 3348: 01 01 20 01 .long 0x1200101 - 334c: 04 01 05 01 .long 0x1050104 - 3350: 03 c9 06 58 rlmi. r6,r0,r25,4,1 - 3354: 06 4a 04 17 .long 0x17044a06 - 3358: 05 0d 03 86 lwzu r16,3333(r3) - 335c: 79 4a 04 01 .long 0x1044a79 - 3360: 03 fe 06 20 subfic r0,r6,-509 + 3328: 06 06 01 03 .long 0x3010606 + 332c: 71 2e 05 0a tdlti r5,11889 + 3330: 03 66 2e 04 .long 0x42e6603 + 3334: 0e 05 02 06 .long 0x602050e + 3338: 03 c3 7d 4a bla fe7dc300 + 333c: 01 20 01 06 .long 0x6012001 + 3340: 3c 06 01 01 .long 0x101063c + 3344: 20 01 06 01 .long 0x1060120 + 3348: 04 01 05 0a tdlti r5,260 + 334c: 03 c4 02 01 .long 0x102c403 + 3350: 3c 05 01 06 .long 0x601053c if (!shift) - 3364: 05 01 1c 04 .long 0x41c0105 - 3368: 17 05 0d 03 .long 0x30d0517 - 336c: 86 79 74 04 .long 0x4747986 + 3354: 03 85 04 66 oris r4,r16,34051 + 3358: 06 4a 04 17 .long 0x17044a06 + 335c: 05 0d 03 86 lwzu r16,3333(r3) shift = PAGE_SHIFT; - 3370: 01 05 01 03 .long 0x3010501 - 3374: fa 06 2e 05 .long 0x52e06fa + 3360: 79 4a 04 01 .long 0x1044a79 + 3364: 03 fe 06 20 subfic r0,r6,-509 if (pte_p) - 3378: 02 06 3d 05 .long 0x53d0602 - 337c: 0e 06 01 05 .long 0x501060e + 3368: 05 01 1c 04 .long 0x41c0105 + 336c: 17 05 0d 03 .long 0x30d0517 pte = *pte_p; - 3380: 02 06 21 13 vctzlsbb r25,v0 - 3384: 13 05 0d 06 .long 0x60d0513 + 3370: 86 79 74 04 .long 0x4747986 + 3374: 01 05 01 03 .long 0x3010501 if (unlikely(ms->mmiowb_pending)) { - 3388: 01 05 02 06 .long 0x6020501 + 3378: fa 06 2e 05 .long 0x52e06fa struct mmiowb_state *ms = __mmiowb_state(); - 338c: 21 14 04 17 .long 0x17041421 + 337c: 02 06 3d 05 .long 0x53d0602 if (unlikely(ms->mmiowb_pending)) { - 3390: 05 1c 03 fb stdu r24,7172(r3) - 3394: 78 01 05 02 .long 0x2050178 + 3380: 0e 06 01 05 .long 0x501060e + 3384: 02 06 21 13 vctzlsbb r25,v0 ms->nesting_count--; - 3398: 14 14 05 18 .long 0x18051414 - 339c: 01 05 2f 2e cmpdi cr4,r15,1281 - 33a0: 05 06 06 13 .long 0x13060605 - 33a4: 05 2f 1f 05 .long 0x51f2f05 - 33a8: 18 06 20 05 .long 0x5200618 - 33ac: 03 13 05 06 .long 0x6051303 + 3388: 13 05 0d 06 .long 0x60d0513 + 338c: 01 05 02 06 .long 0x6020501 + 3390: 21 14 04 17 .long 0x17041421 + 3394: 05 1c 03 fb stdu r24,7172(r3) + 3398: 78 01 05 02 .long 0x2050178 + 339c: 14 14 05 18 .long 0x18051414 if (!pte_present(pte) || (writing && !(pte_val(pte) & _PAGE_WRITE))) { - 33b0: 06 01 05 2f cmpwi cr6,r5,262 + 33a0: 01 05 2f 2e cmpdi cr4,r15,1281 return (pte_raw(pte) & cpu_to_be64(_PAGE_PRESENT | _PAGE_PTE)) == - 33b4: 06 2d 05 18 .long 0x18052d06 + 33a4: 05 06 06 13 .long 0x13060605 if (pte_hw_valid(pte)) - 33b8: 20 05 03 2f cmpwi cr6,r3,1312 - 33bc: 05 06 06 01 .long 0x1060605 + 33a8: 05 2f 1f 05 .long 0x51f2f05 + 33ac: 18 06 20 05 .long 0x5200618 return (pte_raw(pte) & cpu_to_be64(_PAGE_INVALID | _PAGE_PTE)) == - 33c0: 05 04 06 3d addis r8,r6,1029 - 33c4: 05 20 06 01 .long 0x1062005 - 33c8: 04 01 05 08 tdi 0,r5,260 + 33b0: 03 13 05 06 .long 0x6051303 + 33b4: 06 01 05 2f cmpwi cr6,r5,262 + 33b8: 06 2d 05 18 .long 0x18052d06 ret = kvmppc_book3s_instantiate_page(vcpu, gpa, memslot, - 33cc: 03 ff 06 2e cmpwi cr4,r6,-253 - 33d0: 05 02 06 21 subfic r8,r6,517 - 33d4: 13 05 05 06 .long 0x6050513 - 33d8: 01 05 02 06 .long 0x6020501 - 33dc: 32 13 14 05 .long 0x5141332 - 33e0: 07 06 01 20 subfic r0,r1,1543 - 33e4: 05 02 06 21 subfic r8,r6,517 - 33e8: 05 05 06 01 .long 0x1060505 - 33ec: 05 11 38 05 .long 0x5381105 + 33bc: 20 05 03 2f cmpwi cr6,r3,1312 + 33c0: 05 06 06 01 .long 0x1060605 + 33c4: 05 04 06 3d addis r8,r6,1029 + 33c8: 05 20 06 01 .long 0x1062005 + 33cc: 04 01 05 08 tdi 0,r5,260 + 33d0: 03 ff 06 2e cmpwi cr4,r6,-253 + 33d4: 05 02 06 21 subfic r8,r6,517 + 33d8: 13 05 05 06 .long 0x6050513 + 33dc: 01 05 02 06 .long 0x6020501 if (ret == -EAGAIN) - 33f0: 19 21 20 05 .long 0x5202119 + 33e0: 32 13 14 05 .long 0x5141332 ret = kvmppc_book3s_instantiate_page(vcpu, gpa, memslot, - 33f4: 02 25 05 0d twgti r5,9474 + 33e4: 07 06 01 20 subfic r0,r1,1543 if (ret == -EAGAIN) - 33f8: 03 75 20 05 .long 0x5207503 + 33e8: 05 02 06 21 subfic r8,r6,517 else if (ret) - 33fc: 11 03 11 20 subfic r0,r17,785 - 3400: 03 74 20 05 .long 0x5207403 + 33ec: 05 05 06 01 .long 0x1060505 + 33f0: 05 11 38 05 .long 0x5381105 return PUD_SHIFT; - 3404: 02 26 05 0f twnei r5,9730 + 33f4: 19 21 20 05 .long 0x5202119 shift = kvmppc_radix_level_to_shift(level); - 3408: 1b 05 02 06 .long 0x602051b + 33f8: 02 25 05 0d twgti r5,9474 return PUD_SHIFT; - 340c: 25 05 0a 06 .long 0x60a0525 - 3410: 03 7a 01 05 .long 0x5017a03 + 33fc: 03 75 20 05 .long 0x5207503 + 3400: 11 03 11 20 subfic r0,r17,785 switch (level) { - 3414: 07 20 05 02 .long 0x2052007 + 3404: 03 74 20 05 .long 0x5207403 return PUD_SHIFT; - 3418: 26 00 02 04 .long 0x4020026 - 341c: 01 06 5b 05 .long 0x55b0601 - 3420: 03 00 02 04 .long 0x4020003 + 3408: 02 26 05 0f twnei r5,9730 + 340c: 1b 05 02 06 .long 0x602051b + 3410: 25 05 0a 06 .long 0x60a0525 switch (level) { - 3424: 01 13 00 02 .long 0x2001301 - 3428: 04 01 5a 05 .long 0x55a0104 - 342c: 22 00 02 04 .long 0x4020022 + 3414: 03 7a 01 05 .long 0x5017a03 + 3418: 07 20 05 02 .long 0x2052007 + 341c: 26 00 02 04 .long 0x4020026 return PUD_SHIFT; - 3430: 01 06 01 05 .long 0x5010601 + 3420: 01 06 5b 05 .long 0x55b0601 gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; - 3434: 0f 00 02 04 .long 0x402000f + 3424: 03 00 02 04 .long 0x4020003 return PUD_SHIFT; - 3438: 01 2f 05 11 bcdtrunc. v8,v5,v5,1 + 3428: 01 13 00 02 .long 0x2001301 gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; - 343c: 00 02 04 01 attn - 3440: 1f 05 03 00 .long 0x3051f - 3444: 02 04 01 06 .long 0x6010402 + 342c: 04 01 5a 05 .long 0x55a0104 + 3430: 22 00 02 04 .long 0x4020022 + 3434: 01 06 01 05 .long 0x5010601 shift = kvmppc_radix_level_to_shift(level); - 3448: 21 05 08 00 .long 0x80521 - 344c: 02 04 01 06 .long 0x6010402 + 3438: 0f 00 02 04 .long 0x402000f + 343c: 01 2f 05 11 bcdtrunc. v8,v5,v5,1 flags |= DSISR_PROTFAULT; - 3450: 01 05 12 00 .long 0x120501 + 3440: 00 02 04 01 attn goto forward_to_l1; - 3454: 02 04 01 06 .long 0x6010402 - 3458: 21 00 02 04 .long 0x4020021 - 345c: 01 06 20 05 .long 0x5200601 - 3460: 02 06 22 3d addis r9,r2,1538 - 3464: 2f 06 11 05 .long 0x511062f + 3444: 1f 05 03 00 .long 0x3051f + 3448: 02 04 01 06 .long 0x6010402 + 344c: 21 05 08 00 .long 0x80521 + 3450: 02 04 01 06 .long 0x6010402 + 3454: 01 05 12 00 .long 0x120501 flags |= DSISR_PROTFAULT; - 3468: 0a 03 74 2e cmpdi cr4,r20,778 + 3458: 02 04 01 06 .long 0x6010402 if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { - 346c: 05 01 03 0e twlti r3,261 + 345c: 21 00 02 04 .long 0x4020021 vcpu->arch.fault_dsisr = flags; - 3470: 20 9e 05 0a tdlti r5,-25056 + 3460: 01 06 20 05 .long 0x5200601 if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { - 3474: 03 6b 66 20 subfic r3,r6,27395 - 3478: 20 05 01 03 .long 0x3010520 + 3464: 02 06 22 3d addis r9,r2,1538 + 3468: 2f 06 11 05 .long 0x511062f vcpu->arch.shregs.msr &= SRR1_MSR_BITS; - 347c: 15 2e 06 03 .long 0x3062e15 - 3480: f7 7d 66 05 .long 0x5667df7 - 3484: 02 4b 13 14 .long 0x14134b02 - 3488: 05 21 03 b3 sth r24,8453(r3) + 346c: 0a 03 74 2e cmpdi cr4,r20,778 + 3470: 05 01 03 0e twlti r3,261 + 3474: 20 9e 05 0a tdlti r5,-25056 + 3478: 03 6b 66 20 subfic r3,r6,27395 vcpu->arch.shregs.msr |= flags; - 348c: 7e 01 05 02 .long 0x205017e - 3490: 14 05 01 06 .long 0x6010514 + 347c: 20 05 01 03 .long 0x3010520 + 3480: 15 2e 06 03 .long 0x3062e15 if (ret == RESUME_HOST && - 3494: 03 c7 01 01 .long 0x101c703 - 3498: 05 09 03 b9 lmw r8,2309(r3) - 349c: 7e 3c 20 20 subfic r1,r0,15486 - 34a0: 05 01 03 c7 lfsu f24,261(r3) + 3484: f7 7d 66 05 .long 0x5667df7 + 3488: 02 4b 13 14 .long 0x14134b02 + 348c: 05 21 03 b3 sth r24,8453(r3) + 3490: 7e 01 05 02 .long 0x205017e return RESUME_HOST; - 34a4: 01 01 05 09 tdgti r5,257 + 3494: 14 05 01 06 .long 0x6010514 mutex_unlock(&gp->tlb_lock); - 34a8: 03 b9 7e 4a bla fe7eb900 - 34ac: 2e 05 02 06 .long 0x602052e - 34b0: 03 cc 01 01 .long 0x101cc03 -} - 34b4: 05 05 06 01 .long 0x1060505 - 34b8: 20 05 02 06 .long 0x6020520 - 34bc: 23 14 05 08 tdi 0,r5,5155 - 34c0: 06 01 20 05 .long 0x5200106 - 34c4: 02 06 5a 05 .long 0x55a0602 - 34c8: 01 06 13 3c addis r0,r19,1537 - 34cc: 20 06 03 0a tdlti r3,1568 - 34d0: 58 05 02 4b b ffffffffff023a28 - 34d4: 05 01 06 11 vslq v8,v6,v0 - 34d8: 05 15 3d 05 .long 0x53d1505 - 34dc: 02 06 21 13 vctzlsbb r25,v0 - 34e0: 05 18 06 01 .long 0x1061805 - 34e4: 05 05 23 05 .long 0x5230505 - 34e8: 0c 1d 05 02 .long 0x2051d0c - 34ec: 06 23 05 05 .long 0x5052306 - 34f0: 06 01 05 02 .long 0x2050106 - 34f4: 00 02 04 03 attn - 34f8: 7b 05 03 06 .long 0x603057b - 34fc: 2f 05 14 03 .long 0x314052f + 3498: 03 c7 01 01 .long 0x101c703 + 349c: 05 09 03 b9 lmw r8,2309(r3) + 34a0: 7e 3c 20 20 subfic r1,r0,15486 +} + 34a4: 05 01 03 c7 lfsu f24,261(r3) + 34a8: 01 01 05 09 tdgti r5,257 + 34ac: 03 b9 7e 4a bla fe7eb900 + 34b0: 2e 05 02 06 .long 0x602052e + 34b4: 03 cc 01 01 .long 0x101cc03 + 34b8: 05 05 06 01 .long 0x1060505 + 34bc: 20 05 02 06 .long 0x6020520 + 34c0: 23 14 05 08 tdi 0,r5,5155 + 34c4: 06 01 20 05 .long 0x5200106 + 34c8: 02 06 5a 05 .long 0x55a0602 + 34cc: 01 06 13 3c addis r0,r19,1537 + 34d0: 20 06 03 0a tdlti r3,1568 + 34d4: 58 05 02 4b b ffffffffff023a2c + 34d8: 05 01 06 11 vslq v8,v6,v0 + 34dc: 05 15 3d 05 .long 0x53d1505 + 34e0: 02 06 21 13 vctzlsbb r25,v0 + 34e4: 05 18 06 01 .long 0x1061805 + 34e8: 05 05 23 05 .long 0x5230505 + 34ec: 0c 1d 05 02 .long 0x2051d0c kvmhv_update_ptbl_cache(gp); - 3500: 6a 01 05 02 .long 0x205016a - 3504: 14 05 13 06 .long 0x6130514 + 34f0: 06 23 05 05 .long 0x5052306 + 34f4: 06 01 05 02 .long 0x2050106 if (!gp->l1_gr_to_hr) - 3508: 01 05 06 03 .long 0x3060501 - 350c: 14 20 05 02 .long 0x2052014 - 3510: 06 33 13 05 .long 0x5133306 - 3514: 05 06 20 2e cmpdi cr4,r0,1541 - 3518: 05 02 06 22 subfic r16,r6,517 - 351c: 04 15 05 14 .long 0x14051504 - 3520: 03 cf 7a 01 .long 0x17acf03 + 34f8: 00 02 04 03 attn + 34fc: 7b 05 03 06 .long 0x603057b + 3500: 2f 05 14 03 .long 0x314052f + 3504: 6a 01 05 02 .long 0x205016a + 3508: 14 05 13 06 .long 0x6130514 + 350c: 01 05 06 03 .long 0x3060501 + 3510: 14 20 05 02 .long 0x2052014 if (dsisr & (DSISR_PRTABLE_FAULT | DSISR_BADACCESS)) { - 3524: 05 02 14 05 .long 0x5140205 - 3528: 09 06 01 20 subfic r0,r1,1545 + 3514: 06 33 13 05 .long 0x5133306 + 3518: 05 06 20 2e cmpdi cr4,r0,1541 return kvmppc_hv_emulate_mmio(vcpu, gpa, ea, writing); - 352c: 20 2e 04 01 .long 0x1042e20 - 3530: 05 02 06 03 .long 0x3060205 - 3534: b0 05 01 16 .long 0x160105b0 - 3538: 05 0a 06 01 .long 0x1060a05 - 353c: 05 01 4b 05 .long 0x54b0105 - 3540: 0a 2d 05 01 .long 0x1052d0a - 3544: 21 05 02 00 .long 0x20521 - 3548: 02 04 04 03 .long 0x3040402 - 354c: 71 4a 00 02 .long 0x2004a71 - 3550: 04 04 20 05 .long 0x5200404 - 3554: 13 00 02 04 .long 0x4020013 - 3558: 04 03 6d 20 subfic r3,r13,772 - 355c: 05 06 00 02 .long 0x2000605 - 3560: 04 04 03 14 .long 0x14030404 - 3564: 20 05 02 00 .long 0x20520 - 3568: 02 04 04 1f mulli r24,r4,1026 - 356c: 00 02 04 0a tdlti r4,512 + 351c: 05 02 06 22 subfic r16,r6,517 + 3520: 04 15 05 14 .long 0x14051504 + 3524: 03 cf 7a 01 .long 0x17acf03 + 3528: 05 02 14 05 .long 0x5140205 + 352c: 09 06 01 20 subfic r0,r1,1545 + 3530: 20 2e 04 01 .long 0x1042e20 + 3534: 05 02 06 03 .long 0x3060205 + 3538: b0 05 01 16 .long 0x160105b0 + 353c: 05 0a 06 01 .long 0x1060a05 + 3540: 05 01 4b 05 .long 0x54b0105 + 3544: 0a 2d 05 01 .long 0x1052d0a + 3548: 21 05 02 00 .long 0x20521 + 354c: 02 04 04 03 .long 0x3040402 + 3550: 71 4a 00 02 .long 0x2004a71 + 3554: 04 04 20 05 .long 0x5200404 + 3558: 13 00 02 04 .long 0x4020013 + 355c: 04 03 6d 20 subfic r3,r13,772 } else if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { - 3570: 20 00 02 04 .long 0x4020020 - 3574: 0a 06 20 05 .long 0x520060a + 3560: 05 06 00 02 .long 0x2000605 + 3564: 04 04 03 14 .long 0x14030404 if (!gpte_p->may_execute) { - 3578: 03 00 02 04 .long 0x4020003 + 3568: 20 05 02 00 .long 0x20520 } else if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { - 357c: 0a 13 05 14 .long 0x1405130a + 356c: 02 04 04 1f mulli r24,r4,1026 if (!gpte_p->may_read && !gpte_p->may_write) { - 3580: 00 02 04 0a tdlti r4,512 - 3584: 03 6a 01 05 .long 0x5016a03 - 3588: 02 00 02 04 .long 0x4020002 - 358c: 0a 14 00 02 .long 0x200140a + 3570: 00 02 04 0a tdlti r4,512 + 3574: 20 00 02 04 .long 0x4020020 + 3578: 0a 06 20 05 .long 0x520060a + 357c: 03 00 02 04 .long 0x4020003 if (dsisr & DSISR_SET_RC) { - 3590: 04 0a 06 01 .long 0x1060a04 - 3594: 05 06 00 02 .long 0x2000605 + 3580: 0a 13 05 14 .long 0x1405130a + 3584: 00 02 04 0a tdlti r4,512 ret = kvmhv_handle_nested_set_rc(vcpu, gp, n_gpa, gpte, dsisr); - 3598: 04 0a 03 14 .long 0x14030a04 - 359c: 01 05 02 00 .long 0x20501 + 3588: 03 6a 01 05 .long 0x5016a03 + 358c: 02 00 02 04 .long 0x4020002 pgflags = _PAGE_ACCESSED; - 35a0: 02 04 01 1f mulli r24,r1,1026 - 35a4: 05 03 06 60 ori r6,r0,773 + 3590: 0a 14 00 02 .long 0x200140a + 3594: 04 0a 06 01 .long 0x1060a04 if (pgflags & ~gpte.rc) - 35a8: 05 0a 06 01 .long 0x1060a05 - 35ac: 04 15 05 09 tdgti r5,5380 - 35b0: 03 d2 7a 20 subfic r3,r26,-11773 + 3598: 05 06 00 02 .long 0x2000605 + 359c: 04 0a 03 14 .long 0x14030a04 + 35a0: 01 05 02 00 .long 0x20501 ret = kvmppc_hv_handle_set_rc(kvm, false, writing, - 35b4: 20 04 01 05 .long 0x5010420 - 35b8: 0a 03 ae 05 .long 0x5ae030a - 35bc: 01 05 02 06 .long 0x6020501 - 35c0: 21 04 15 05 .long 0x5150421 - 35c4: 14 03 cf 7a .long 0x7acf0314 - 35c8: 01 05 02 14 .long 0x14020501 - 35cc: 05 09 06 01 .long 0x1060905 - 35d0: 2e 2e 04 01 .long 0x1042e2e - 35d4: 05 02 06 03 .long 0x3060205 - 35d8: b0 05 01 05 .long 0x50105b0 + 35a4: 02 04 01 1f mulli r24,r1,1026 + 35a8: 05 03 06 60 ori r6,r0,773 + 35ac: 05 0a 06 01 .long 0x1060a05 + 35b0: 04 15 05 09 tdgti r5,5380 + 35b4: 03 d2 7a 20 subfic r3,r26,-11773 + 35b8: 20 04 01 05 .long 0x5010420 + 35bc: 0a 03 ae 05 .long 0x5ae030a + 35c0: 01 05 02 06 .long 0x6020501 + 35c4: 21 04 15 05 .long 0x5150421 + 35c8: 14 03 cf 7a .long 0x7acf0314 if (!ret) { - 35dc: 03 13 05 04 .long 0x4051303 - 35e0: 06 01 05 18 .long 0x18050106 + 35cc: 01 05 02 14 .long 0x14020501 + 35d0: 05 09 06 01 .long 0x1060905 ret = kvmppc_hv_handle_set_rc(kvm, true, writing, - 35e4: 20 4a 05 01 .long 0x1054a20 - 35e8: 24 05 03 06 .long 0x6030524 - 35ec: 03 6c 3c 05 .long 0x53c6c03 - 35f0: 15 06 01 05 .long 0x5010615 - 35f4: 01 03 14 20 subfic r0,r20,769 - 35f8: 05 0a 03 6c xoris r3,r0,2565 - 35fc: 20 05 03 06 .long 0x6030520 + 35d4: 2e 2e 04 01 .long 0x1042e2e + 35d8: 05 02 06 03 .long 0x3060205 + 35dc: b0 05 01 05 .long 0x50105b0 + 35e0: 03 13 05 04 .long 0x4051303 + 35e4: 06 01 05 18 .long 0x18050106 + 35e8: 20 4a 05 01 .long 0x1054a20 + 35ec: 24 05 03 06 .long 0x6030524 if (!ret) - 3600: 21 05 01 06 .long 0x6010521 - 3604: 03 13 01 20 subfic r0,r1,4867 + 35f0: 03 6c 3c 05 .long 0x53c6c03 + 35f4: 15 06 01 05 .long 0x5010615 ret = -EINVAL; - 3608: 06 03 22 66 oris r2,r17,774 + 35f8: 01 03 14 20 subfic r0,r20,769 if (unlikely(ms->mmiowb_pending)) { - 360c: 05 0b 06 4f addpcis r24,2829 + 35fc: 05 0a 03 6c xoris r3,r0,2565 struct mmiowb_state *ms = __mmiowb_state(); - 3610: 05 01 1b 05 .long 0x51b0105 + 3600: 20 05 03 06 .long 0x6030520 if (unlikely(ms->mmiowb_pending)) { - 3614: 05 33 05 15 .long 0x15053305 - 3618: 1c 05 01 1f mulli r24,r1,1308 + 3604: 21 05 01 06 .long 0x6010521 + 3608: 03 13 01 20 subfic r0,r1,4867 ms->nesting_count--; - 361c: 05 02 06 3d addis r8,r6,517 - 3620: 13 13 14 05 .long 0x5141313 - 3624: 05 06 01 05 .long 0x5010605 - 3628: 02 06 31 05 .long 0x5310602 - 362c: 18 06 01 05 .long 0x5010618 - 3630: 02 23 05 07 .long 0x7052302 + 360c: 06 03 22 66 oris r2,r17,774 + 3610: 05 0b 06 4f addpcis r24,2829 + 3614: 05 01 1b 05 .long 0x51b0105 + 3618: 05 33 05 15 .long 0x15053305 + 361c: 1c 05 01 1f mulli r24,r1,1308 + 3620: 05 02 06 3d addis r8,r6,517 if (ret) - 3634: 2b 05 02 06 .long 0x602052b - 3638: 2f 14 01 01 .long 0x101142f + 3624: 13 13 14 05 .long 0x5141313 + 3628: 05 06 01 05 .long 0x5010605 if (!(dsisr & (DSISR_BAD_FAULT_64S | DSISR_NOHPTE | - 363c: 01 01 05 0f twnei r5,257 - 3640: 06 03 5a 4a ba fe5a0304 - 3644: 05 12 03 ff dctqpq. f24,f2 - 3648: 7d 90 66 05 .long 0x566907d - 364c: 02 00 02 04 .long 0x4020002 + 362c: 02 06 31 05 .long 0x5310602 + 3630: 18 06 01 05 .long 0x5010618 + 3634: 02 23 05 07 .long 0x7052302 + 3638: 2b 05 02 06 .long 0x602052b + 363c: 2f 14 01 01 .long 0x101142f dsisr &= ~DSISR_SET_RC; - 3650: 04 03 a7 02 .long 0x2a70304 - 3654: 01 00 02 04 .long 0x4020001 - 3658: 04 20 05 2a cmplwi cr4,r5,8196 - 365c: 00 02 04 0a tdlti r4,512 + 3640: 01 01 05 0f twnei r5,257 + 3644: 06 03 5a 4a ba fe5a0304 + 3648: 05 12 03 ff dctqpq. f24,f2 + 364c: 7d 90 66 05 .long 0x566907d kvmppc_core_queue_data_storage(vcpu, ea, dsisr); - 3660: 03 5e 2e 05 .long 0x52e5e03 - 3664: 09 00 02 04 .long 0x4020009 - 3668: 0a 03 fb 7d stvexbx v15,r27,r0 - 366c: 20 05 02 00 .long 0x20520 - 3670: 02 04 0a 03 .long 0x30a0402 + 3650: 02 00 02 04 .long 0x4020002 + 3654: 04 03 a7 02 .long 0x2a70304 + 3658: 01 00 02 04 .long 0x4020001 + 365c: 04 20 05 2a cmplwi cr4,r5,8196 + 3660: 00 02 04 0a tdlti r4,512 return RESUME_GUEST; - 3674: a7 02 20 05 .long 0x52002a7 - 3678: 03 00 02 04 .long 0x4020003 - 367c: 0a 06 21 05 .long 0x521060a - 3680: 0d 00 02 04 .long 0x402000d - 3684: 0a 03 54 01 .long 0x154030a - 3688: 05 02 00 02 .long 0x2000205 - 368c: 04 0a 16 00 .long 0x160a04 + 3664: 03 5e 2e 05 .long 0x52e5e03 + 3668: 09 00 02 04 .long 0x4020009 + 366c: 0a 03 fb 7d stvexbx v15,r27,r0 + 3670: 20 05 02 00 .long 0x20520 + 3674: 02 04 0a 03 .long 0x30a0402 + 3678: a7 02 20 05 .long 0x52002a7 + 367c: 03 00 02 04 .long 0x4020003 return RESUME_GUEST; - 3690: 02 04 0a 13 vavgub v24,v10,v0 - 3694: 05 0f 00 02 .long 0x2000f05 - 3698: 04 0a 06 01 .long 0x1060a04 - 369c: 05 02 00 02 .long 0x2000205 + 3680: 0a 06 21 05 .long 0x521060a + 3684: 0d 00 02 04 .long 0x402000d + 3688: 0a 03 54 01 .long 0x154030a + 368c: 05 02 00 02 .long 0x2000205 ret = kvmhv_handle_nested_set_rc(vcpu, gp, n_gpa, gpte, dsisr); - 36a0: 04 0a 06 21 subfic r8,r6,2564 - 36a4: 00 02 04 0a tdlti r4,512 + 3690: 04 0a 16 00 .long 0x160a04 + 3694: 02 04 0a 13 vavgub v24,v10,v0 pgflags |= _PAGE_DIRTY; - 36a8: 14 05 06 00 .long 0x60514 - 36ac: 02 04 0a 06 .long 0x60a0402 + 3698: 05 0f 00 02 .long 0x2000f05 + 369c: 04 0a 06 01 .long 0x1060a04 if (writing) - 36b0: 01 05 07 00 .long 0x70501 - 36b4: 02 04 0a 21 subfic r8,r10,1026 - 36b8: 05 09 00 02 .long 0x2000905 - 36bc: 04 0a 03 fb std r24,2564(r3) + 36a0: 05 02 00 02 .long 0x2000205 + 36a4: 04 0a 06 21 subfic r8,r6,2564 + 36a8: 00 02 04 0a tdlti r4,512 + 36ac: 14 05 06 00 .long 0x60514 if (!gpte_p->may_execute) { - 36c0: 7d 20 00 02 .long 0x200207d - 36c4: 04 0a 2e 05 .long 0x52e0a04 + 36b0: 02 04 0a 06 .long 0x60a0402 + 36b4: 01 05 07 00 .long 0x70501 vcpu->arch.fault_dsisr = flags; - 36c8: 06 00 02 04 .long 0x4020006 + 36b8: 02 04 0a 21 subfic r8,r10,1026 flags |= SRR1_ISI_N_G_OR_CIP; - 36cc: 0a 03 84 02 .long 0x284030a + 36bc: 05 09 00 02 .long 0x2000905 vcpu->arch.fault_dsisr = flags; - 36d0: 01 05 02 00 .long 0x20501 + 36c0: 04 0a 03 fb std r24,2564(r3) if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { - 36d4: 02 04 0a 06 .long 0x60a0402 - 36d8: 21 00 02 04 .long 0x4020021 - 36dc: 0a 15 05 08 tdi 0,r5,5386 - 36e0: 00 02 04 0a tdlti r4,512 - 36e4: 03 bd 7f 01 .long 0x17fbd03 - 36e8: 05 02 00 02 .long 0x2000205 - 36ec: 04 0a 15 00 .long 0x150a04 - 36f0: 02 04 0a 13 vavgub v24,v10,v0 - 36f4: 00 02 04 0a tdlti r4,512 - 36f8: 14 05 21 00 .long 0x210514 - 36fc: 02 04 0a 03 .long 0x30a0402 + 36c4: 7d 20 00 02 .long 0x200207d + 36c8: 04 0a 2e 05 .long 0x52e0a04 + 36cc: 06 00 02 04 .long 0x4020006 + 36d0: 0a 03 84 02 .long 0x284030a + 36d4: 01 05 02 00 .long 0x20501 + 36d8: 02 04 0a 06 .long 0x60a0402 + 36dc: 21 00 02 04 .long 0x4020021 + 36e0: 0a 15 05 08 tdi 0,r5,5386 + 36e4: 00 02 04 0a tdlti r4,512 + 36e8: 03 bd 7f 01 .long 0x17fbd03 + 36ec: 05 02 00 02 .long 0x2000205 return kmalloc_trace( - 3700: b3 7e 01 05 .long 0x5017eb3 + 36f0: 04 0a 15 00 .long 0x150a04 n_gpa &= ~((1UL << shift) - 1); - 3704: 02 00 02 04 .long 0x4020002 - 3708: 0a 14 00 02 .long 0x200140a - 370c: 04 0a 06 01 .long 0x1060a04 + 36f4: 02 04 0a 13 vavgub v24,v10,v0 + 36f8: 00 02 04 0a tdlti r4,512 + 36fc: 14 05 21 00 .long 0x210514 level = kvmppc_radix_shift_to_level(shift); - 3710: 00 02 04 0a tdlti r4,512 - 3714: 06 03 cc 01 .long 0x1cc0306 + 3700: 02 04 0a 03 .long 0x30a0402 + 3704: b3 7e 01 05 .long 0x5017eb3 n_gpa &= ~((1UL << shift) - 1); - 3718: 01 05 05 00 .long 0x50501 - 371c: 02 04 0a 06 .long 0x60a0402 - 3720: 01 00 02 04 .long 0x4020001 - 3724: 0a 20 05 02 .long 0x205200a - 3728: 06 23 14 05 .long 0x5142306 - if (unlikely(!n_rmap)) - 372c: 08 06 01 20 subfic r0,r1,1544 - 3730: 05 02 06 5a rlmi. r6,r16,r0,8,2 + 3708: 02 00 02 04 .long 0x4020002 + 370c: 0a 14 00 02 .long 0x200140a + 3710: 04 0a 06 01 .long 0x1060a04 + 3714: 00 02 04 0a tdlti r4,512 + 3718: 06 03 cc 01 .long 0x1cc0306 + if (!n_rmap) + 371c: 01 05 05 00 .long 0x50501 + 3720: 02 04 0a 06 .long 0x60a0402 n_rmap = kzalloc(sizeof(*n_rmap), GFP_KERNEL); - 3734: 06 01 06 03 .long 0x3060106 - if (unlikely(!n_rmap)) - 3738: 3c 01 05 05 .long 0x505013c + 3724: 01 00 02 04 .long 0x4020001 + if (!n_rmap) + 3728: 0a 20 05 02 .long 0x205200a (((unsigned long) gp->l1_lpid) << RMAP_NESTED_LPID_SHIFT); - 373c: 06 01 20 20 subfic r1,r0,262 + 372c: 06 23 14 05 .long 0x5142306 n_rmap->rmap = (n_gpa & RMAP_NESTED_GPA_MASK) | - 3740: 04 07 05 13 vsrv v24,v5,v0 + 3730: 08 06 01 20 subfic r0,r1,1544 ret = kvmppc_create_pte(kvm, gp->shadow_pgtable, pte, n_gpa, level, - 3744: 06 03 d9 7c mtdcrx r25,r6 - 3748: 20 05 02 03 .long 0x3020520 - 374c: 09 01 05 14 .long 0x14050109 - 3750: 03 71 01 05 .long 0x5017103 - 3754: 02 14 04 08 tdi 0,r4,5122 - 3758: 05 16 03 94 stwu r0,5637(r3) + 3734: 05 02 06 5a rlmi. r6,r16,r0,8,2 + 3738: 06 01 06 03 .long 0x3060106 + 373c: 3c 01 05 05 .long 0x505013c + 3740: 06 01 20 20 subfic r1,r0,262 + 3744: 04 07 05 13 vsrv v24,v5,v0 + 3748: 06 03 d9 7c mtdcrx r25,r6 n_rmap->rmap = (n_gpa & RMAP_NESTED_GPA_MASK) | - 375c: 7c 01 05 02 .long 0x205017c + 374c: 20 05 02 03 .long 0x3020520 (((unsigned long) gp->l1_lpid) << RMAP_NESTED_LPID_SHIFT); - 3760: 14 06 01 04 .long 0x4010614 + 3750: 09 01 05 14 .long 0x14050109 n_rmap->rmap = (n_gpa & RMAP_NESTED_GPA_MASK) | - 3764: 07 05 17 03 .long 0x3170507 - 3768: ea 03 01 05 .long 0x50103ea + 3754: 03 71 01 05 .long 0x5017103 + 3758: 02 14 04 08 tdi 0,r4,5122 rmapp = &memslot->arch.rmap[gfn - memslot->base_gfn]; - 376c: 05 03 0d 20 subfic r0,r13,773 - 3770: 05 02 06 30 addic r0,r6,517 + 375c: 05 16 03 94 stwu r0,5637(r3) + 3760: 7c 01 05 02 .long 0x205017c ret = kvmppc_create_pte(kvm, gp->shadow_pgtable, pte, n_gpa, level, - 3774: 05 17 06 01 .long 0x1061705 - 3778: 04 01 05 0b tdnei r5,260 - 377c: 03 9c 03 20 subfic r0,r3,-25597 + 3764: 14 06 01 04 .long 0x4010614 + 3768: 07 05 17 03 .long 0x3170507 + 376c: ea 03 01 05 .long 0x50103ea rmapp = &memslot->arch.rmap[gfn - memslot->base_gfn]; - 3780: 04 08 05 1d mulli r8,r5,2052 - 3784: 06 03 e4 78 rldicr r4,r7,32,12 + 3770: 05 03 0d 20 subfic r0,r13,773 + 3774: 05 02 06 30 addic r0,r6,517 ret = kvmppc_create_pte(kvm, gp->shadow_pgtable, pte, n_gpa, level, - 3788: 2e 05 02 14 .long 0x1402052e - 378c: 05 09 06 01 .long 0x1060905 - 3790: 90 04 01 05 .long 0x5010490 - 3794: 21 03 9a 07 .long 0x79a0321 + 3778: 05 17 06 01 .long 0x1061705 + 377c: 04 01 05 0b tdnei r5,260 + 3780: 03 9c 03 20 subfic r0,r3,-25597 + 3784: 04 08 05 1d mulli r8,r5,2052 kfree(n_rmap); - 3798: 01 3c 05 02 .long 0x2053c01 - 379c: 06 03 18 01 .long 0x1180306 - 37a0: 00 02 04 03 attn + 3788: 06 03 e4 78 rldicr r4,r7,32,12 + 378c: 2e 05 02 14 .long 0x1402052e + 3790: 05 09 06 01 .long 0x1060905 if (ret == -EAGAIN) - 37a4: 06 2e 05 03 .long 0x3052e06 - 37a8: 06 2f 05 0d twgti r5,12038 - 37ac: 03 54 01 05 .long 0x5015403 - 37b0: 02 16 13 05 .long 0x5131602 - 37b4: 2a 06 16 05 .long 0x516062a - 37b8: 09 03 fb 7d .long 0x7dfb0309 - 37bc: 20 05 0f 03 .long 0x30f0520 - 37c0: 81 02 20 05 .long 0x5200281 - 37c4: 02 06 21 14 .long 0x14210602 - 37c8: 05 06 06 01 .long 0x1060605 - 37cc: 05 07 21 05 .long 0x5210705 - 37d0: 09 03 fb 7d .long 0x7dfb0309 + 3794: 90 04 01 05 .long 0x5010490 + 3798: 21 03 9a 07 .long 0x79a0321 + 379c: 01 3c 05 02 .long 0x2053c01 + 37a0: 06 03 18 01 .long 0x1180306 + 37a4: 00 02 04 03 attn + 37a8: 06 2e 05 03 .long 0x3052e06 + 37ac: 06 2f 05 0d twgti r5,12038 + 37b0: 03 54 01 05 .long 0x5015403 + 37b4: 02 16 13 05 .long 0x5131602 + 37b8: 2a 06 16 05 .long 0x516062a + 37bc: 09 03 fb 7d .long 0x7dfb0309 + 37c0: 20 05 0f 03 .long 0x30f0520 kvmhv_invalidate_shadow_pte(vcpu, gp, n_gpa, NULL); - 37d4: 20 05 06 03 .long 0x3060520 - 37d8: 84 02 2e 05 .long 0x52e0284 - 37dc: 02 06 21 15 .long 0x15210602 - 37e0: 05 08 03 bd stmw r8,2053(r3) - 37e4: 7f 01 05 02 .long 0x205017f + 37c4: 81 02 20 05 .long 0x5200281 + 37c8: 02 06 21 14 .long 0x14210602 + 37cc: 05 06 06 01 .long 0x1060605 + 37d0: 05 07 21 05 .long 0x5210705 + 37d4: 09 03 fb 7d .long 0x7dfb0309 return RESUME_GUEST; - 37e8: 15 13 14 05 .long 0x5141315 - 37ec: 21 03 b3 7e .long 0x7eb30321 + 37d8: 20 05 06 03 .long 0x3060520 + 37dc: 84 02 2e 05 .long 0x52e0284 if (!pte_present(pte) || (writing && !(pte_val(pte) & _PAGE_WRITE))) { - 37f0: 01 05 02 14 .long 0x14020501 + 37e0: 02 06 21 15 .long 0x15210602 if (PMD_SHIFT < l1_shift) - 37f4: 06 01 06 03 .long 0x3060106 + 37e4: 05 08 03 bd stmw r8,2053(r3) gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; - 37f8: cc 01 01 05 .long 0x50101cc - 37fc: 05 06 01 20 subfic r0,r1,1541 + 37e8: 7f 01 05 02 .long 0x205017f + 37ec: 15 13 14 05 .long 0x5141315 if (PMD_SHIFT < l1_shift) - 3800: 05 02 03 db stfd f24,517(r3) + 37f0: 21 03 b3 7e .long 0x7eb30321 if (shift == PUD_SHIFT) - 3804: 00 20 20 4a b fffffffffe205804 - 3808: 3c 20 20 20 subfic r1,r0,8252 + 37f4: 01 05 02 14 .long 0x14020501 + 37f8: 06 01 06 03 .long 0x3060106 gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; - 380c: 20 20 05 01 .long 0x1052020 + 37fc: cc 01 01 05 .long 0x50101cc if (PMD_SHIFT < l1_shift) - 3810: 3e 05 03 06 .long 0x603053e + 3800: 05 06 01 20 subfic r0,r1,1541 gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; - 3814: 03 67 90 04 .long 0x4906703 + 3804: 05 02 03 db stfd f24,517(r3) if (shift == PUD_SHIFT) - 3818: 18 05 1d 03 .long 0x31d0518 + 3808: 00 20 20 4a b fffffffffe205808 perm |= gpte.may_read ? 0UL : _PAGE_READ; - 381c: f2 79 01 05 .long 0x50179f2 + 380c: 3c 20 20 20 subfic r1,r0,8252 perm |= (gpte.rc & _PAGE_ACCESSED) ? 0UL : _PAGE_ACCESSED; - 3820: 02 15 14 05 .long 0x5141502 + 3810: 20 20 05 01 .long 0x1052020 gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; - 3824: 15 06 19 05 .long 0x5190615 + 3814: 3e 05 03 06 .long 0x603053e perm |= ((gpte.rc & _PAGE_DIRTY) && writing) ? 0UL : _PAGE_DIRTY; - 3828: 2d 82 05 15 .long 0x1505822d + 3818: 03 67 90 04 .long 0x4906703 gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; - 382c: 20 05 2d 20 subfic r1,r13,1312 - perm |= gpte.may_read ? 0UL : _PAGE_READ; - 3830: 05 02 03 79 rldicr. r3,r8,0,8 + 381c: 18 05 1d 03 .long 0x31d0518 perm |= gpte.may_write ? 0UL : _PAGE_WRITE; - 3834: 82 06 03 0a tdlti r3,1666 + 3820: f2 79 01 05 .long 0x50179f2 + perm |= gpte.may_read ? 0UL : _PAGE_READ; + 3824: 02 15 14 05 .long 0x5141502 perm |= gpte.may_execute ? 0UL : _PAGE_EXEC; - 3838: 58 06 01 04 .long 0x4010658 + 3828: 15 06 19 05 .long 0x5190615 perm |= (gpte.rc & _PAGE_ACCESSED) ? 0UL : _PAGE_ACCESSED; - 383c: 01 05 03 06 .long 0x6030501 + 382c: 2d 82 05 15 .long 0x1505822d perm |= ((gpte.rc & _PAGE_DIRTY) && writing) ? 0UL : _PAGE_DIRTY; - 3840: 03 80 06 01 .long 0x1068003 - perm |= gpte.may_read ? 0UL : _PAGE_READ; - 3844: 06 4a 3c 20 subfic r1,r28,18950 + 3830: 20 05 2d 20 subfic r1,r13,1312 perm |= gpte.may_write ? 0UL : _PAGE_WRITE; - 3848: 20 05 01 03 .long 0x3010520 + 3834: 05 02 03 79 rldicr. r3,r8,0,8 + perm |= gpte.may_read ? 0UL : _PAGE_READ; + 3838: 82 06 03 0a tdlti r3,1666 perm |= gpte.may_execute ? 0UL : _PAGE_EXEC; - 384c: 18 ac 06 03 .long 0x306ac18 + 383c: 58 06 01 04 .long 0x4010658 perm |= (gpte.rc & _PAGE_ACCESSED) ? 0UL : _PAGE_ACCESSED; - 3850: 29 74 06 4a bl fffffffffe06ac78 + 3840: 01 05 03 06 .long 0x6030501 perm |= gpte.may_write ? 0UL : _PAGE_WRITE; - 3854: 05 05 32 05 .long 0x5320505 + 3844: 03 80 06 01 .long 0x1068003 perm |= gpte.may_execute ? 0UL : _PAGE_EXEC; - 3858: 01 1c 05 02 .long 0x2051c01 + 3848: 06 4a 3c 20 subfic r1,r28,18950 perm |= (gpte.rc & _PAGE_ACCESSED) ? 0UL : _PAGE_ACCESSED; - 385c: 06 3d 13 14 .long 0x14133d06 + 384c: 20 05 01 03 .long 0x3010520 perm |= ((gpte.rc & _PAGE_DIRTY) && writing) ? 0UL : _PAGE_DIRTY; - 3860: 05 05 06 01 .long 0x1060505 - 3864: 05 02 06 22 subfic r16,r6,517 + 3850: 18 ac 06 03 .long 0x306ac18 + 3854: 29 74 06 4a bl fffffffffe06ac7c pte = __pte(pte_val(pte) & ~perm); - 3868: 05 0d 06 2e cmpwi cr4,r6,3333 + 3858: 05 05 32 05 .long 0x5320505 if (shift > l1_shift) { - 386c: 05 1a 21 05 .long 0x5211a05 + 385c: 01 1c 05 02 .long 0x2051c01 pte = __pte(pte_val(pte) & ~perm); - 3870: 1d 22 20 05 .long 0x520221d - 3874: 06 1d 05 0c twi 0,r5,7430 - 3878: 23 05 06 2b cmplwi cr6,r6,1315 - 387c: 05 02 06 21 subfic r8,r6,517 - 3880: 05 0a 06 01 .long 0x1060a05 - 3884: 05 02 06 22 subfic r16,r6,517 - 3888: 13 14 05 0d twgti r5,5139 - 388c: 01 04 13 05 .long 0x5130401 - 3890: 02 06 03 d7 stfsu f24,1538(r3) - 3894: 79 66 04 01 .long 0x1046679 + 3860: 06 3d 13 14 .long 0x14133d06 + 3864: 05 05 06 01 .long 0x1060505 + 3868: 05 02 06 22 subfic r16,r6,517 + 386c: 05 0d 06 2e cmpwi cr4,r6,3333 + 3870: 05 1a 21 05 .long 0x5211a05 + 3874: 1d 22 20 05 .long 0x520221d + 3878: 06 1d 05 0c twi 0,r5,7430 + 387c: 23 05 06 2b cmplwi cr6,r6,1315 + 3880: 05 02 06 21 subfic r8,r6,517 + 3884: 05 0a 06 01 .long 0x1060a05 if (shift > l1_shift) { - 3898: 05 0f 03 fb stdu r24,3844(r3) + 3888: 05 02 06 22 subfic r16,r6,517 level = kvmppc_radix_shift_to_level(shift); - 389c: 05 4a 05 12 vsrq v16,v5,v9 + 388c: 13 14 05 0d twgti r5,5139 if (shift == PUD_SHIFT) - 38a0: 03 d0 7d 2e cmpdi cr4,r29,-12285 + 3890: 01 04 13 05 .long 0x5130401 pte = __pte(pte_val(pte) & ~perm); - 38a4: 82 05 03 00 .long 0x30582 + 3894: 02 06 03 d7 stfsu f24,1538(r3) if (shift == PUD_SHIFT) - 38a8: 02 04 02 06 .long 0x6020402 - 38ac: 03 df 02 01 .long 0x102df03 - 38b0: 00 02 04 02 attn - 38b4: 13 05 0d 00 .long 0xd0513 + 3898: 79 66 04 01 .long 0x1046679 + 389c: 05 0f 03 fb stdu r24,3844(r3) + 38a0: 05 4a 05 12 vsrq v16,v5,v9 + 38a4: 03 d0 7d 2e cmpdi cr4,r29,-12285 if (shift == PMD_SHIFT) - 38b8: 02 04 02 03 .long 0x3020402 - 38bc: 60 01 05 02 .long 0x2050160 - 38c0: 00 02 04 02 attn + 38a8: 82 05 03 00 .long 0x30582 + 38ac: 02 04 02 06 .long 0x6020402 + 38b0: 03 df 02 01 .long 0x102df03 if (shift == PAGE_SHIFT) - 38c4: 15 04 15 05 .long 0x5150415 - 38c8: 22 00 02 04 .long 0x4020022 + 38b4: 00 02 04 02 attn + 38b8: 13 05 0d 00 .long 0xd0513 WARN_ON_ONCE(1); - 38cc: 02 03 92 7a rldicl r18,r20,32,12 + 38bc: 02 04 02 03 .long 0x3020402 vcpu->arch.fault_gpa = fault_addr; - 38d0: 01 05 02 00 .long 0x20501 - 38d4: 02 04 02 14 .long 0x14020402 + 38c0: 60 01 05 02 .long 0x2050160 + 38c4: 00 02 04 02 attn flags |= DSISR_PRTABLE_FAULT; - 38d8: 05 09 00 02 .long 0x2000905 + 38c8: 15 04 15 05 .long 0x5150415 vcpu->arch.fault_gpa = fault_addr; - 38dc: 04 02 01 04 .long 0x4010204 - 38e0: 01 05 12 00 .long 0x120501 - 38e4: 02 04 02 06 .long 0x6020402 - 38e8: 03 88 06 01 .long 0x1068803 - 38ec: 04 15 05 09 tdgti r5,5380 + 38cc: 22 00 02 04 .long 0x4020022 + 38d0: 02 03 92 7a rldicl r18,r20,32,12 + 38d4: 01 05 02 00 .long 0x20501 + 38d8: 02 04 02 14 .long 0x14020402 + 38dc: 05 09 00 02 .long 0x2000905 kvmppc_core_queue_data_storage(vcpu, ea, - 38f0: 00 02 04 02 attn - 38f4: 06 03 f8 79 rldicr r24,r15,32,12 - 38f8: 3c 00 02 04 .long 0x402003c - 38fc: 02 01 00 02 .long 0x2000102 - 3900: 04 02 01 00 .long 0x10204 + 38e0: 04 02 01 04 .long 0x4010204 + 38e4: 01 05 12 00 .long 0x120501 + 38e8: 02 04 02 06 .long 0x6020402 + 38ec: 03 88 06 01 .long 0x1068803 + 38f0: 04 15 05 09 tdgti r5,5380 return RESUME_GUEST; - 3904: 02 04 02 01 .long 0x1020402 - 3908: 00 02 04 02 attn - 390c: 01 00 02 04 .long 0x4020001 - 3910: 02 01 00 02 .long 0x2000102 - 3914: 04 02 01 00 .long 0x10204 - 3918: 02 04 02 01 .long 0x1020402 - 391c: 00 02 04 02 attn - 3920: 01 00 02 04 .long 0x4020001 - 3924: 02 01 00 02 .long 0x2000102 - 3928: 04 02 01 00 .long 0x10204 - 392c: 02 04 02 20 subfic r0,r2,1026 + 38f4: 00 02 04 02 attn + 38f8: 06 03 f8 79 rldicr r24,r15,32,12 + 38fc: 3c 00 02 04 .long 0x402003c + 3900: 02 01 00 02 .long 0x2000102 + 3904: 04 02 01 00 .long 0x10204 + 3908: 02 04 02 01 .long 0x1020402 + 390c: 00 02 04 02 attn + 3910: 01 00 02 04 .long 0x4020001 + 3914: 02 01 00 02 .long 0x2000102 + 3918: 04 02 01 00 .long 0x10204 + 391c: 02 04 02 01 .long 0x1020402 flags |= DSISR_UNSUPP_MMU; - 3930: 00 02 04 02 attn - 3934: 01 00 02 04 .long 0x4020001 - 3938: 02 01 00 02 .long 0x2000102 - 393c: 04 02 01 04 .long 0x4010204 + 3920: 00 02 04 02 attn + 3924: 01 00 02 04 .long 0x4020001 + 3928: 02 01 00 02 .long 0x2000102 + 392c: 04 02 01 00 .long 0x10204 flags |= DSISR_NOHPTE; - 3940: 13 05 01 00 .long 0x10513 - 3944: 02 04 02 10 vavgub v0,v2,v0 - 3948: 05 02 00 02 .long 0x2000205 - 394c: 04 02 14 05 .long 0x5140204 + 3930: 02 04 02 20 subfic r0,r2,1026 + 3934: 00 02 04 02 attn + 3938: 01 00 02 04 .long 0x4020001 + 393c: 02 01 00 02 .long 0x2000102 if (PMD_SHIFT < l1_shift) - 3950: 03 00 02 04 .long 0x4020003 - 3954: 02 03 09 01 .long 0x1090302 - 3958: 05 01 00 02 .long 0x2000105 - 395c: 04 02 03 51 rlwimi r3,r8,0,8,2 + 3940: 04 02 01 04 .long 0x4010204 + 3944: 13 05 01 00 .long 0x10513 + 3948: 02 04 02 10 vavgub v0,v2,v0 + 394c: 05 02 00 02 .long 0x2000205 actual_shift = PMD_SHIFT; - 3960: 01 05 02 00 .long 0x20501 + 3950: 04 02 14 05 .long 0x5140204 mask = (1UL << shift) - (1UL << actual_shift); - 3964: 02 04 02 14 .long 0x14020402 + 3954: 03 00 02 04 .long 0x4020003 level = kvmppc_radix_shift_to_level(shift); - 3968: 00 02 04 02 attn + 3958: 02 03 09 01 .long 0x1090302 mask = (1UL << shift) - (1UL << actual_shift); - 396c: 14 00 02 04 .long 0x4020014 + 395c: 05 01 00 02 .long 0x2000105 if (shift == PUD_SHIFT) - 3970: 02 44 00 02 .long 0x2004402 + 3960: 04 02 03 51 rlwimi r3,r8,0,8,2 mask = (1UL << shift) - (1UL << actual_shift); - 3974: 04 02 06 01 .long 0x1060204 + 3964: 01 05 02 00 .long 0x20501 shift = actual_shift; - 3978: 04 15 05 09 tdgti r5,5380 + 3968: 02 04 02 14 .long 0x14020402 pte = __pte(pte_val(pte) | (gpa & mask)); - 397c: 00 02 04 02 attn - 3980: 06 03 1a 01 .long 0x11a0306 - 3984: 00 02 04 02 attn - 3988: 01 00 02 04 .long 0x4020001 - 398c: 02 01 00 02 .long 0x2000102 - 3990: 04 02 01 00 .long 0x10204 - 3994: 02 04 02 01 .long 0x1020402 - 3998: 00 02 04 02 attn - 399c: 20 00 02 04 .long 0x4020020 - 39a0: 02 01 00 02 .long 0x2000102 - 39a4: 04 02 06 01 .long 0x1060204 - 39a8: 04 01 05 02 .long 0x2050104 + 396c: 00 02 04 02 attn + 3970: 14 00 02 04 .long 0x4020014 + 3974: 02 44 00 02 .long 0x2004402 + 3978: 04 02 06 01 .long 0x1060204 + 397c: 04 15 05 09 tdgti r5,5380 + 3980: 00 02 04 02 attn + 3984: 06 03 1a 01 .long 0x11a0306 + 3988: 00 02 04 02 attn + 398c: 01 00 02 04 .long 0x4020001 + 3990: 02 01 00 02 .long 0x2000102 + 3994: 04 02 01 00 .long 0x10204 + 3998: 02 04 02 01 .long 0x1020402 shift = actual_shift; - 39ac: 00 02 04 02 attn + 399c: 00 02 04 02 attn if (!pte_present(pte) || (writing && !(pte_val(pte) & _PAGE_WRITE))) { - 39b0: 06 03 ed 05 .long 0x5ed0306 - 39b4: 01 00 02 04 .long 0x4020001 - 39b8: 02 13 00 02 .long 0x2001302 - 39bc: 04 02 14 00 .long 0x140204 + 39a0: 20 00 02 04 .long 0x4020020 + 39a4: 02 01 00 02 .long 0x2000102 + 39a8: 04 02 06 01 .long 0x1060204 + 39ac: 04 01 05 02 .long 0x2050104 ret = 0; - 39c0: 02 04 02 01 .long 0x1020402 - 39c4: 00 02 04 02 attn - 39c8: 06 2e 2e 20 subfic r1,r14,11782 - 39cc: 05 2a 03 6d xoris r3,r8,10757 + 39b0: 00 02 04 02 attn + 39b4: 06 03 ed 05 .long 0x5ed0306 + 39b8: 01 00 02 04 .long 0x4020001 + 39bc: 02 13 00 02 .long 0x2001302 bool kvm_ro = false; - 39d0: 2e 05 09 03 .long 0x309052e - 39d4: cc 7d 20 05 .long 0x5207dcc - 39d8: 02 03 c7 02 .long 0x2c70302 - 39dc: 20 05 03 06 .long 0x6030520 - 39e0: 21 05 0d 03 .long 0x30d0521 - 39e4: 63 01 05 02 .long 0x2050163 - 39e8: 15 13 13 13 mtvsrbmi v24,4903 + 39c0: 04 02 14 00 .long 0x140204 + 39c4: 02 04 02 01 .long 0x1020402 + 39c8: 00 02 04 02 attn + 39cc: 06 2e 2e 20 subfic r1,r14,11782 + 39d0: 05 2a 03 6d xoris r3,r8,10757 + 39d4: 2e 05 09 03 .long 0x309052e + 39d8: cc 7d 20 05 .long 0x5207dcc unsigned int actual_shift = PAGE_SHIFT; - 39ec: 14 13 13 05 .long 0x5131314 - 39f0: 21 03 c9 7d .long 0x7dc90321 - 39f4: 01 05 02 14 .long 0x14020501 - 39f8: 05 0f 06 03 .long 0x3060f05 - 39fc: b0 02 01 05 .long 0x50102b0 + 39dc: 02 03 c7 02 .long 0x2c70302 + 39e0: 20 05 03 06 .long 0x6030520 + 39e4: 21 05 0d 03 .long 0x30d0521 + 39e8: 63 01 05 02 .long 0x2050163 + 39ec: 15 13 13 13 mtvsrbmi v24,4903 switch (level) { - 3a00: 09 03 d0 7d .long 0x7dd00309 - 3a04: 2e 3c 05 02 .long 0x2053c2e - 3a08: 06 03 b6 02 .long 0x2b60306 - 3a0c: 01 06 03 11 bcdadd. v8,v3,v0,1 + 39f0: 14 13 13 05 .long 0x5131314 + 39f4: 21 03 c9 7d .long 0x7dc90321 + 39f8: 01 05 02 14 .long 0x14020501 + 39fc: 05 0f 06 03 .long 0x3060f05 vcpu->arch.fault_dsisr = flags; - 3a10: 01 05 05 03 .long 0x3050501 - 3a14: 6f 20 05 03 .long 0x305206f + 3a00: b0 02 01 05 .long 0x50102b0 + 3a04: 09 03 d0 7d .long 0x7dd00309 if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { - 3a18: 06 2f 06 01 .long 0x1062f06 - 3a1c: 06 03 12 01 .long 0x1120306 - 3a20: 05 02 3a 01 .long 0x13a0205 - 3a24: 06 2e 05 03 .long 0x3052e06 - 3a28: 06 3d 05 0d twgti r5,15622 - 3a2c: 03 63 01 05 .long 0x5016303 + 3a08: 2e 3c 05 02 .long 0x2053c2e + 3a0c: 06 03 b6 02 .long 0x2b60306 + 3a10: 01 06 03 11 bcdadd. v8,v3,v0,1 + 3a14: 01 05 05 03 .long 0x3050501 + 3a18: 6f 20 05 03 .long 0x305206f + 3a1c: 06 2f 06 01 .long 0x1062f06 ms->mmiowb_pending = 0; - 3a30: 02 15 13 13 vavgsb v24,v19,v2 - 3a34: 05 2a 06 16 .long 0x16062a05 + 3a20: 06 03 12 01 .long 0x1120306 + 3a24: 05 02 3a 01 .long 0x13a0205 mmiowb(); - 3a38: 05 09 03 cc lfdu f0,2309(r3) - 3a3c: 7d 20 05 0f twnei r5,8317 + 3a28: 06 2e 05 03 .long 0x3052e06 + 3a2c: 06 3d 05 0d twgti r5,15622 return PMD_SHIFT; - 3a40: 03 b0 02 20 subfic r0,r2,-20477 + 3a30: 03 63 01 05 .long 0x5016303 gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; - 3a44: 05 02 06 21 subfic r8,r6,517 - 3a48: 14 13 13 05 .long 0x5131314 - 3a4c: 21 03 c9 7d .long 0x7dc90321 + 3a34: 02 15 13 13 vavgsb v24,v19,v2 + 3a38: 05 2a 06 16 .long 0x16062a05 + 3a3c: 05 09 03 cc lfdu f0,2309(r3) return PMD_SHIFT; - 3a50: 01 05 02 14 .long 0x14020501 - 3a54: 05 09 06 01 .long 0x1060905 - 3a58: 3c 05 02 06 .long 0x602053c - 3a5c: 03 b6 02 01 .long 0x102b603 - 3a60: 05 05 06 01 .long 0x1060505 - 3a64: 05 02 03 11 vsrq v8,v3,v0 - 3a68: 2e 06 03 73 andi. r3,r24,1582 - 3a6c: 2e 05 08 03 .long 0x308052e + 3a40: 7d 20 05 0f twnei r5,8317 + 3a44: 03 b0 02 20 subfic r0,r2,-20477 + 3a48: 05 02 06 21 subfic r8,r6,517 + 3a4c: 14 13 13 05 .long 0x5131314 + 3a50: 21 03 c9 7d .long 0x7dc90321 + 3a54: 01 05 02 14 .long 0x14020501 + 3a58: 05 09 06 01 .long 0x1060905 + 3a5c: 3c 05 02 06 .long 0x602053c ms->mmiowb_pending = 0; - 3a70: 8b 7f 01 05 .long 0x5017f8b - 3a74: 02 15 13 14 .long 0x14131502 + 3a60: 03 b6 02 01 .long 0x102b603 + 3a64: 05 05 06 01 .long 0x1060505 mmiowb(); - 3a78: 05 21 03 b3 sth r24,8453(r3) - 3a7c: 7e 01 05 02 .long 0x205017e - 3a80: 14 05 09 06 .long 0x6090514 - 3a84: 01 2e 2e 05 .long 0x52e2e01 - 3a88: 02 06 03 cc lfdu f0,1538(r3) - 3a8c: 01 01 05 05 .long 0x5050101 - 3a90: 06 01 20 20 subfic r1,r0,262 - 3a94: 05 06 03 e7 psq_lu f24,1541(r3),0,0 - 3a98: 00 01 05 08 tdi 0,r5,256 - 3a9c: 03 9e 7f 20 subfic r3,r31,-25085 + 3a68: 05 02 03 11 vsrq v8,v3,v0 + 3a6c: 2e 06 03 73 andi. r3,r24,1582 + 3a70: 2e 05 08 03 .long 0x308052e + 3a74: 8b 7f 01 05 .long 0x5017f8b + 3a78: 02 15 13 14 .long 0x14131502 + 3a7c: 05 21 03 b3 sth r24,8453(r3) + 3a80: 7e 01 05 02 .long 0x205017e + 3a84: 14 05 09 06 .long 0x6090514 + 3a88: 01 2e 2e 05 .long 0x52e2e01 + 3a8c: 02 06 03 cc lfdu f0,1538(r3) } - 3aa0: 20 20 05 06 .long 0x6052020 - 3aa4: 03 e2 00 20 subfic r0,r0,-7677 + 3a90: 01 01 05 05 .long 0x5050101 + 3a94: 06 01 20 20 subfic r1,r0,262 pr_err("KVM: L1 guest page shift (%d) less than our own (%d)\n", - 3aa8: 05 02 06 03 .long 0x3060205 - 3aac: 9c 7f 20 14 .long 0x14207f9c - 3ab0: 05 08 06 01 .long 0x1060805 + 3a98: 05 06 03 e7 psq_lu f24,1541(r3),0,0 + 3a9c: 00 01 05 08 tdi 0,r5,256 + 3aa0: 03 9e 7f 20 subfic r3,r31,-25085 return -EINVAL; - 3ab4: 05 02 06 3e addis r16,r6,517 + 3aa4: 20 20 05 06 .long 0x6052020 pr_err("KVM: L1 guest page shift (%d) less than our own (%d)\n", - 3ab8: 06 01 06 03 .long 0x3060106 - 3abc: e9 00 01 05 .long 0x50100e9 - 3ac0: 05 06 01 04 .long 0x4010605 + 3aa8: 03 e2 00 20 subfic r0,r0,-7677 + 3aac: 05 02 06 03 .long 0x3060205 + 3ab0: 9c 7f 20 14 .long 0x14207f9c return -EINVAL; - 3ac4: 07 05 13 06 .long 0x6130507 - 3ac8: 03 ac 7c 3c addis r3,r28,-21501 - 3acc: 05 02 03 09 tdgti r3,517 - 3ad0: 01 05 14 03 .long 0x3140501 - 3ad4: 71 01 05 02 .long 0x2050171 -{ - 3ad8: 14 04 08 05 .long 0x5080414 - 3adc: 16 03 94 7c divweu r4,r20,r0 - 3ae0: 01 05 02 14 .long 0x14020501 - 3ae4: 06 01 04 07 .long 0x7040106 - 3ae8: 05 17 03 ea ldu r16,5892(r3) - 3aec: 03 01 05 05 .long 0x5050103 + 3ab4: 05 08 06 01 .long 0x1060805 + 3ab8: 05 02 06 3e addis r16,r6,517 + 3abc: 06 01 06 03 .long 0x3060106 + 3ac0: e9 00 01 05 .long 0x50100e9 + 3ac4: 05 06 01 04 .long 0x4010605 +{ + 3ac8: 07 05 13 06 .long 0x6130507 + 3acc: 03 ac 7c 3c addis r3,r28,-21501 + 3ad0: 05 02 03 09 tdgti r3,517 + 3ad4: 01 05 14 03 .long 0x3140501 + 3ad8: 71 01 05 02 .long 0x2050171 + 3adc: 14 04 08 05 .long 0x5080414 int ret = lpid + 1; - 3af0: 03 0d 20 05 .long 0x5200d03 + 3ae0: 16 03 94 7c divweu r4,r20,r0 { - 3af4: 02 06 30 05 .long 0x5300602 - 3af8: 17 06 01 04 .long 0x4010617 - 3afc: 01 05 0b 03 .long 0x30b0501 - 3b00: c9 03 20 04 .long 0x42003c9 - 3b04: 08 05 1d 06 .long 0x61d0508 - 3b08: 03 b7 78 2e cmpdi cr4,r24,-18685 + 3ae4: 01 05 02 14 .long 0x14020501 + 3ae8: 06 01 04 07 .long 0x7040106 + 3aec: 05 17 03 ea ldu r16,5892(r3) + 3af0: 03 01 05 05 .long 0x5050103 + 3af4: 03 0d 20 05 .long 0x5200d03 + 3af8: 02 06 30 05 .long 0x5300602 int ret = lpid + 1; - 3b0c: 05 02 14 05 .long 0x5140205 - 3b10: 09 06 01 90 stw r0,1545(r1) - 3b14: 04 01 05 21 subfic r8,r5,260 + 3afc: 17 06 01 04 .long 0x4010617 + 3b00: 01 05 0b 03 .long 0x30b0501 + 3b04: c9 03 20 04 .long 0x42003c9 if (!idr_get_next(&kvm->arch.kvm_nested_guest_idr, &ret)) - 3b18: 03 c7 07 01 .long 0x107c703 - 3b1c: 05 03 06 3d addis r8,r6,773 - 3b20: 06 58 2e 06 .long 0x62e5806 - 3b24: 03 7a 2e 06 .long 0x62e7a03 - 3b28: 01 06 03 12 bcdadd. v16,v3,v0,1 - 3b2c: 01 05 02 2c cmpwi r2,1281 + 3b08: 08 05 1d 06 .long 0x61d0508 + 3b0c: 03 b7 78 2e cmpdi cr4,r24,-18685 + 3b10: 05 02 14 05 .long 0x5140205 + 3b14: 09 06 01 90 stw r0,1545(r1) + 3b18: 04 01 05 21 subfic r8,r5,260 + 3b1c: 03 c7 07 01 .long 0x107c703 if (unlikely(ms->mmiowb_pending)) { - 3b30: 01 06 01 05 .long 0x5010601 + 3b20: 05 03 06 3d addis r8,r6,773 struct mmiowb_state *ms = __mmiowb_state(); - 3b34: 1b 06 03 17 .long 0x1703061b + 3b24: 06 58 2e 06 .long 0x62e5806 if (unlikely(ms->mmiowb_pending)) { - 3b38: 01 05 0d 20 subfic r0,r13,1281 - 3b3c: 06 58 20 2e cmpdi cr4,r0,22534 + 3b28: 03 7a 2e 06 .long 0x62e7a03 + 3b2c: 01 06 03 12 bcdadd. v16,v3,v0,1 ms->nesting_count--; - 3b40: 20 2e 20 05 .long 0x5202e20 - 3b44: 01 6a 74 20 subfic r3,r20,27137 - 3b48: 20 20 20 20 subfic r1,r0,8224 - 3b4c: f2 06 03 de stfdu f16,1778(r3) - 3b50: 01 58 06 4a bl fffffffffe069350 - 3b54: 05 02 06 59 rlmi. r6,r8,r0,8,2 -} - 3b58: 14 04 10 05 .long 0x5100414 - 3b5c: 15 03 f9 78 .long 0x78f90315 - 3b60: 01 05 02 14 .long 0x14020501 - 3b64: 06 01 04 01 .long 0x1040106 + 3b30: 01 05 02 2c cmpwi r2,1281 + 3b34: 01 06 01 05 .long 0x5010601 + 3b38: 1b 06 03 17 .long 0x1703061b + 3b3c: 01 05 0d 20 subfic r0,r13,1281 + 3b40: 06 58 20 2e cmpdi cr4,r0,22534 + 3b44: 20 2e 20 05 .long 0x5202e20 +} + 3b48: 01 6a 74 20 subfic r3,r20,27137 + 3b4c: 20 20 20 20 subfic r1,r0,8224 + 3b50: f2 06 03 de stfdu f16,1778(r3) + 3b54: 01 58 06 4a bl fffffffffe069354 return ret; - 3b68: 05 08 03 85 lwzu r8,2053(r3) + 3b58: 05 02 06 59 rlmi. r6,r8,r0,8,2 } - 3b6c: 07 01 04 10 vcmpnezb v0,v4,v0 - 3b70: 05 15 06 03 .long 0x3061505 - 3b74: f9 78 20 05 .long 0x52078f9 - 3b78: 02 14 06 01 .long 0x1061402 - 3b7c: 05 15 06 10 evmhossiaaw r0,r6,r2 - 3b80: 05 02 14 05 .long 0x5140205 - 3b84: 1c 06 01 20 subfic r0,r1,1564 - 3b88: 04 01 05 0c twi 0,r5,260 - 3b8c: 06 03 c2 06 .long 0x6c20306 + 3b5c: 14 04 10 05 .long 0x5100414 + 3b60: 15 03 f9 78 .long 0x78f90315 + 3b64: 01 05 02 14 .long 0x14020501 + 3b68: 06 01 04 01 .long 0x1040106 + 3b6c: 05 08 03 85 lwzu r8,2053(r3) + 3b70: 07 01 04 10 vcmpnezb v0,v4,v0 + 3b74: 05 15 06 03 .long 0x3061505 + 3b78: f9 78 20 05 .long 0x52078f9 + 3b7c: 02 14 06 01 .long 0x1061402 if (unlikely(ms->mmiowb_pending)) { - 3b90: 01 05 02 15 .long 0x15020501 + 3b80: 05 15 06 10 evmhossiaaw r0,r6,r2 ret = -1; - 3b94: 05 0e 06 01 .long 0x1060e05 - 3b98: 05 02 06 21 subfic r8,r6,517 + 3b84: 05 02 14 05 .long 0x5140205 + 3b88: 1c 06 01 20 subfic r0,r1,1564 struct mmiowb_state *ms = __mmiowb_state(); - 3b9c: 13 13 13 13 .long 0x13131313 + 3b8c: 04 01 05 0c twi 0,r5,260 if (unlikely(ms->mmiowb_pending)) { - 3ba0: 14 05 13 03 .long 0x3130514 - 3ba4: 81 7f 01 05 .long 0x5017f81 + 3b90: 06 03 c2 06 .long 0x6c20306 + 3b94: 01 05 02 15 .long 0x15020501 ms->mmiowb_pending = 0; - 3ba8: 02 14 05 0f twnei r5,5122 - 3bac: 06 03 0f 01 .long 0x10f0306 + 3b98: 05 0e 06 01 .long 0x1060e05 + 3b9c: 05 02 06 21 subfic r8,r6,517 mmiowb(); - 3bb0: 05 05 03 fc .long 0xfc030505 - 3bb4: 00 20 05 02 .long 0x2052000 + 3ba0: 13 13 13 13 .long 0x13131313 + 3ba4: 14 05 13 03 .long 0x3130514 } - 3bb8: 06 03 73 20 subfic r3,r19,774 - 3bbc: 05 13 03 85 lwzu r8,4869(r3) - 3bc0: 7f 01 05 02 .long 0x205017f - 3bc4: 14 06 01 06 .long 0x6010614 - 3bc8: 03 fa 00 01 .long 0x100fa03 - 3bcc: 05 13 03 89 lbz r8,4869(r3) - 3bd0: 7f 01 05 02 .long 0x205017f - 3bd4: 14 06 01 06 .long 0x6010614 - 3bd8: 03 f6 00 01 .long 0x100f603 - 3bdc: 05 13 03 8d lbzu r8,4869(r3) - 3be0: 7f 01 05 02 .long 0x205017f - 3be4: 14 06 01 06 .long 0x6010614 - 3be8: 03 f2 00 01 .long 0x100f203 - 3bec: 05 13 03 91 stw r8,4869(r3) - 3bf0: 7f 01 05 02 .long 0x205017f - 3bf4: 14 06 01 06 .long 0x6010614 - 3bf8: 03 f7 00 01 .long 0x100f703 - 3bfc: 05 05 06 01 .long 0x1060505 - 3c00: 2e 20 05 0b tdnei r5,8238 - 3c04: 20 05 14 2e cmpwi cr4,r20,1312 - 3c08: 05 22 3c 05 .long 0x53c2205 - 3c0c: 2f 2e 05 1a .long 0x1a052e2f - 3c10: 2f 05 0d 20 subfic r0,r13,1327 - 3c14: 05 03 06 03 .long 0x3060305 - 3c18: 09 2e 05 14 .long 0x14052e09 - 3c1c: 03 87 7f 01 .long 0x17f8703 - 3c20: 05 02 14 06 .long 0x6140205 - 3c24: 01 05 03 06 .long 0x6030501 - 3c28: 03 f8 00 01 .long 0x100f803 - 3c2c: 05 13 03 81 lwz r8,4869(r3) - 3c30: 7f 01 05 02 .long 0x205017f - 3c34: 14 06 01 05 .long 0x5010614 - 3c38: 03 06 03 fe .long 0xfe030603 - 3c3c: 00 01 05 09 tdgti r5,256 - 3c40: 06 20 20 20 subfic r1,r0,8198 - 3c44: 20 05 03 06 .long 0x6030520 - 3c48: 2f 06 01 05 .long 0x501062f - 3c4c: 02 06 03 20 subfic r0,r3,1538 - 3c50: 01 05 05 06 .long 0x6050501 - 3c54: 01 2e 05 09 tdgti r5,11777 - 3c58: 30 05 01 2f cmpwi cr6,r1,1328 - 3c5c: 05 02 03 54 rlwinm. r3,r0,0,8,2 - 3c60: 82 06 4a 04 .long 0x44a0682 - 3c64: 06 06 03 aa lha r16,1542(r3) - 3c68: 79 2e 20 04 .long 0x4202e79 - 3c6c: 01 05 03 06 .long 0x6030501 - 3c70: 03 ea 06 2e cmpwi cr4,r6,-5629 - 3c74: 05 0d 03 41 bdnztl so,4978 - 3c78: 01 05 02 14 .long 0x14020501 - 3c7c: 13 13 05 03 .long 0x3051313 - 3c80: 06 17 05 02 .long 0x2051706 - 3c84: 1e 04 0b 03 .long 0x30b041e - 3c88: 8c 78 20 04 .long 0x420788c - 3c8c: 01 05 06 03 .long 0x3060501 - 3c90: f1 07 20 05 .long 0x52007f1 - 3c94: 02 06 22 04 .long 0x4220602 - 3c98: 06 05 1d 03 .long 0x31d0506 - 3c9c: cd 79 01 05 .long 0x50179cd - 3ca0: 02 14 06 2e cmpwi cr4,r6,5122 - 3ca4: 04 01 06 03 .long 0x3060104 - 3ca8: b2 06 01 05 .long 0x50106b2 - 3cac: 03 59 04 06 .long 0x6045903 - 3cb0: 05 1d 03 f3 xsmaxdp vs56,vs35,vs3 - 3cb4: 79 01 05 02 .long 0x2050179 - 3cb8: 14 04 09 05 .long 0x5090414 - 3cbc: 14 03 85 7e .long 0x7e850314 - 3cc0: 01 05 02 14 .long 0x14020501 - 3cc4: 01 01 13 04 .long 0x4130101 - 3cc8: 06 05 14 03 .long 0x3140506 - 3ccc: 3a 01 05 02 .long 0x205013a - 3cd0: 14 04 0a 05 .long 0x50a0414 - 3cd4: 14 03 e7 7e .long 0x7ee70314 - 3cd8: 01 05 02 14 .long 0x14020501 - 3cdc: 05 05 06 14 .long 0x14060505 - 3ce0: 05 03 06 30 addic r0,r6,773 - 3ce4: 05 02 15 05 .long 0x5150205 - 3ce8: 13 06 01 04 .long 0x4010613 - 3cec: 06 05 02 06 .long 0x6020506 - 3cf0: 03 91 01 3c addis r0,r1,-28413 - 3cf4: 04 0b 05 14 .long 0x14050b04 - 3cf8: 03 4f 01 05 .long 0x5014f03 - 3cfc: 02 14 01 01 .long 0x1011402 - 3d00: 01 01 01 01 .long 0x1010101 - 3d04: 01 01 01 20 subfic r0,r1,257 - 3d08: 01 01 01 01 .long 0x1010101 - 3d0c: 01 01 20 01 .long 0x1200101 - 3d10: 01 01 13 06 .long 0x6130101 - 3d14: 01 04 06 06 .long 0x6060401 - 3d18: 03 2f 01 06 .long 0x6012f03 - 3d1c: 01 04 09 06 .long 0x6090401 - 3d20: 03 43 01 06 .long 0x6014303 - 3d24: 01 04 01 05 .long 0x5010401 - 3d28: 03 06 03 83 lwz r24,1539(r3) - 3d2c: 08 01 06 20 subfic r0,r6,264 - 3d30: 06 2f 04 06 .long 0x6042f06 - 3d34: 05 1d 03 c9 lfd f8,7429(r3) - 3d38: 79 01 05 02 .long 0x2050179 - 3d3c: 14 06 3c 04 .long 0x43c0614 - 3d40: 01 06 03 b2 sth r16,1537(r3) - 3d44: 06 01 06 2e cmpwi cr4,r6,262 - 3d48: 06 3c 06 2e cmpwi cr4,r6,15366 - 3d4c: 04 0a 05 05 .long 0x5050a04 - 3d50: 03 a5 77 20 subfic r3,r23,-23293 - 3d54: 05 1c 1e 05 .long 0x51e1c05 - 3d58: 02 06 22 04 .long 0x4220602 - 3d5c: 01 06 03 db stfd f24,1537(r3) - 3d60: 08 01 06 25 dozi r8,r6,264 - 3d64: 04 06 05 1d mulli r8,r5,1540 - 3d68: 03 ef 79 01 .long 0x179ef03 - 3d6c: 05 02 14 04 .long 0x4140205 - 3d70: 09 05 14 03 .long 0x3140509 - 3d74: 85 7e 01 05 .long 0x5017e85 - 3d78: 02 14 01 01 .long 0x1011402 - 3d7c: 13 04 06 05 .long 0x5060413 - 3d80: 14 03 3a 01 .long 0x13a0314 - 3d84: 05 02 14 04 .long 0x4140205 - 3d88: 0a 05 14 03 .long 0x314050a - 3d8c: e7 7e 01 05 .long 0x5017ee7 - 3d90: 02 14 05 05 .long 0x5051402 - 3d94: 06 14 05 03 .long 0x3051406 - 3d98: 06 30 05 02 .long 0x2053006 - 3d9c: 15 05 13 06 .long 0x6130515 - 3da0: 01 04 06 05 .long 0x5060401 - 3da4: 02 06 03 91 stw r8,1538(r3) - 3da8: 01 3c 04 0b tdnei r4,15361 - 3dac: 05 14 03 4f addpcis r24,5127 - 3db0: 01 05 02 14 .long 0x14020501 - 3db4: 01 01 01 01 .long 0x1010101 + 3ba8: 81 7f 01 05 .long 0x5017f81 + 3bac: 02 14 05 0f twnei r5,5122 + 3bb0: 06 03 0f 01 .long 0x10f0306 + 3bb4: 05 05 03 fc .long 0xfc030505 + 3bb8: 00 20 05 02 .long 0x2052000 + 3bbc: 06 03 73 20 subfic r3,r19,774 + 3bc0: 05 13 03 85 lwzu r8,4869(r3) + 3bc4: 7f 01 05 02 .long 0x205017f + 3bc8: 14 06 01 06 .long 0x6010614 + 3bcc: 03 fa 00 01 .long 0x100fa03 + 3bd0: 05 13 03 89 lbz r8,4869(r3) + 3bd4: 7f 01 05 02 .long 0x205017f + 3bd8: 14 06 01 06 .long 0x6010614 + 3bdc: 03 f6 00 01 .long 0x100f603 + 3be0: 05 13 03 8d lbzu r8,4869(r3) + 3be4: 7f 01 05 02 .long 0x205017f + 3be8: 14 06 01 06 .long 0x6010614 + 3bec: 03 f2 00 01 .long 0x100f203 + 3bf0: 05 13 03 91 stw r8,4869(r3) + 3bf4: 7f 01 05 02 .long 0x205017f + 3bf8: 14 06 01 06 .long 0x6010614 + 3bfc: 03 f7 00 01 .long 0x100f703 + 3c00: 05 05 06 01 .long 0x1060505 + 3c04: 2e 20 05 0b tdnei r5,8238 + 3c08: 20 05 14 2e cmpwi cr4,r20,1312 + 3c0c: 05 22 3c 05 .long 0x53c2205 + 3c10: 2f 2e 05 1a .long 0x1a052e2f + 3c14: 2f 05 0d 20 subfic r0,r13,1327 + 3c18: 05 03 06 03 .long 0x3060305 + 3c1c: 09 2e 05 14 .long 0x14052e09 + 3c20: 03 87 7f 01 .long 0x17f8703 + 3c24: 05 02 14 06 .long 0x6140205 + 3c28: 01 05 03 06 .long 0x6030501 + 3c2c: 03 f8 00 01 .long 0x100f803 + 3c30: 05 13 03 81 lwz r8,4869(r3) + 3c34: 7f 01 05 02 .long 0x205017f + 3c38: 14 06 01 05 .long 0x5010614 + 3c3c: 03 06 03 fe .long 0xfe030603 + 3c40: 00 01 05 09 tdgti r5,256 + 3c44: 06 20 20 20 subfic r1,r0,8198 + 3c48: 20 05 03 06 .long 0x6030520 + 3c4c: 2f 06 01 05 .long 0x501062f + 3c50: 02 06 03 20 subfic r0,r3,1538 + 3c54: 01 05 05 06 .long 0x6050501 + 3c58: 01 2e 05 09 tdgti r5,11777 + 3c5c: 30 05 01 2f cmpwi cr6,r1,1328 + 3c60: 05 02 03 54 rlwinm. r3,r0,0,8,2 + 3c64: 82 06 4a 04 .long 0x44a0682 + 3c68: 06 06 03 aa lha r16,1542(r3) + 3c6c: 79 2e 20 04 .long 0x4202e79 + 3c70: 01 05 03 06 .long 0x6030501 + 3c74: 03 ea 06 2e cmpwi cr4,r6,-5629 + 3c78: 05 0d 03 41 bdnztl so,497c + 3c7c: 01 05 02 14 .long 0x14020501 + 3c80: 13 13 05 03 .long 0x3051313 + 3c84: 06 17 05 02 .long 0x2051706 + 3c88: 1e 04 0b 03 .long 0x30b041e + 3c8c: 8c 78 20 04 .long 0x420788c + 3c90: 01 05 06 03 .long 0x3060501 + 3c94: f1 07 20 05 .long 0x52007f1 + 3c98: 02 06 22 04 .long 0x4220602 + 3c9c: 06 05 1d 03 .long 0x31d0506 + 3ca0: cd 79 01 05 .long 0x50179cd + 3ca4: 02 14 06 2e cmpwi cr4,r6,5122 + 3ca8: 04 01 06 03 .long 0x3060104 + 3cac: b2 06 01 05 .long 0x50106b2 + 3cb0: 03 59 04 06 .long 0x6045903 + 3cb4: 05 1d 03 f3 xsmaxdp vs56,vs35,vs3 + 3cb8: 79 01 05 02 .long 0x2050179 + 3cbc: 14 04 09 05 .long 0x5090414 + 3cc0: 14 03 85 7e .long 0x7e850314 + 3cc4: 01 05 02 14 .long 0x14020501 + 3cc8: 01 01 13 04 .long 0x4130101 + 3ccc: 06 05 14 03 .long 0x3140506 + 3cd0: 3a 01 05 02 .long 0x205013a + 3cd4: 14 04 0a 05 .long 0x50a0414 + 3cd8: 14 03 e7 7e .long 0x7ee70314 + 3cdc: 01 05 02 14 .long 0x14020501 + 3ce0: 05 05 06 14 .long 0x14060505 + 3ce4: 05 03 06 30 addic r0,r6,773 + 3ce8: 05 02 15 05 .long 0x5150205 + 3cec: 13 06 01 04 .long 0x4010613 + 3cf0: 06 05 02 06 .long 0x6020506 + 3cf4: 03 91 01 3c addis r0,r1,-28413 + 3cf8: 04 0b 05 14 .long 0x14050b04 + 3cfc: 03 4f 01 05 .long 0x5014f03 + 3d00: 02 14 01 01 .long 0x1011402 + 3d04: 01 01 01 01 .long 0x1010101 + 3d08: 01 01 01 20 subfic r0,r1,257 + 3d0c: 01 01 01 01 .long 0x1010101 + 3d10: 01 01 20 01 .long 0x1200101 + 3d14: 01 01 13 06 .long 0x6130101 + 3d18: 01 04 06 06 .long 0x6060401 + 3d1c: 03 2f 01 06 .long 0x6012f03 + 3d20: 01 04 09 06 .long 0x6090401 + 3d24: 03 43 01 06 .long 0x6014303 + 3d28: 01 04 01 05 .long 0x5010401 + 3d2c: 03 06 03 83 lwz r24,1539(r3) + 3d30: 08 01 06 20 subfic r0,r6,264 + 3d34: 06 2f 04 06 .long 0x6042f06 + 3d38: 05 1d 03 c9 lfd f8,7429(r3) + 3d3c: 79 01 05 02 .long 0x2050179 + 3d40: 14 06 3c 04 .long 0x43c0614 + 3d44: 01 06 03 b2 sth r16,1537(r3) + 3d48: 06 01 06 2e cmpwi cr4,r6,262 + 3d4c: 06 3c 06 2e cmpwi cr4,r6,15366 + 3d50: 04 0a 05 05 .long 0x5050a04 + 3d54: 03 a5 77 20 subfic r3,r23,-23293 + 3d58: 05 1c 1e 05 .long 0x51e1c05 + 3d5c: 02 06 22 04 .long 0x4220602 + 3d60: 01 06 03 db stfd f24,1537(r3) + 3d64: 08 01 06 25 dozi r8,r6,264 + 3d68: 04 06 05 1d mulli r8,r5,1540 + 3d6c: 03 ef 79 01 .long 0x179ef03 + 3d70: 05 02 14 04 .long 0x4140205 + 3d74: 09 05 14 03 .long 0x3140509 + 3d78: 85 7e 01 05 .long 0x5017e85 + 3d7c: 02 14 01 01 .long 0x1011402 + 3d80: 13 04 06 05 .long 0x5060413 + 3d84: 14 03 3a 01 .long 0x13a0314 + 3d88: 05 02 14 04 .long 0x4140205 + 3d8c: 0a 05 14 03 .long 0x314050a + 3d90: e7 7e 01 05 .long 0x5017ee7 + 3d94: 02 14 05 05 .long 0x5051402 + 3d98: 06 14 05 03 .long 0x3051406 + 3d9c: 06 30 05 02 .long 0x2053006 + 3da0: 15 05 13 06 .long 0x6130515 + 3da4: 01 04 06 05 .long 0x5060401 + 3da8: 02 06 03 91 stw r8,1538(r3) + 3dac: 01 3c 04 0b tdnei r4,15361 + 3db0: 05 14 03 4f addpcis r24,5127 + 3db4: 01 05 02 14 .long 0x14020501 3db8: 01 01 01 01 .long 0x1010101 - 3dbc: 01 20 01 01 .long 0x1012001 - 3dc0: 01 01 01 01 .long 0x1010101 - 3dc4: 06 20 06 20 subfic r0,r6,8198 - 3dc8: 01 01 01 13 vcmpuq cr6,v1,v0 - 3dcc: 06 01 04 06 .long 0x6040106 - 3dd0: 06 03 2f 01 .long 0x12f0306 - 3dd4: 06 01 04 09 tdgti r4,262 - 3dd8: 06 03 43 01 .long 0x1430306 - 3ddc: 06 01 04 01 .long 0x1040106 - 3de0: 06 03 ce 08 tdllei r14,774 - 3de4: 01 06 3c 05 .long 0x53c0601 - 3de8: 03 06 03 63 ori r3,r24,1539 - 3dec: 20 05 08 06 .long 0x6080520 - 3df0: 01 20 20 20 subfic r1,r0,8193 - 3df4: 05 03 06 21 subfic r8,r6,773 - 3df8: 05 06 06 01 .long 0x1060605 - 3dfc: 20 05 04 06 .long 0x6040520 - 3e00: 21 06 20 06 .long 0x6200621 - 3e04: 3d 06 2e 05 .long 0x52e063d - 3e08: 02 06 03 1a .long 0x1a030602 - 3e0c: 01 06 20 3c lis r1,1537 - 3e10: 20 04 0a 05 .long 0x50a0420 - 3e14: 03 06 03 d9 stfd f8,1539(r3) - 3e18: 76 3c 05 16 .long 0x16053c76 - 3e1c: 06 01 05 03 .long 0x3050106 - 3e20: 06 2f 01 01 .long 0x1012f06 - 3e24: 01 01 06 2e cmpwi cr4,r6,257 - 3e28: 20 04 01 05 .long 0x5010420 - 3e2c: 0a 03 a7 09 tdi 13,r7,778 - 3e30: 01 20 04 0a tdlti r4,8193 - 3e34: 05 03 06 03 .long 0x3060305 - 3e38: d8 76 2e 05 .long 0x52e76d8 - 3e3c: 16 06 01 05 .long 0x5010616 - 3e40: 03 06 21 01 .long 0x1210603 - 3e44: 01 01 01 06 .long 0x6010101 - 3e48: 2e 04 01 05 .long 0x501042e - 3e4c: 01 03 a9 09 tdi 13,r9,769 - 3e50: 66 2e 05 0a tdlti r5,11878 - 3e54: 2c 20 05 01 .long 0x105202c - 3e58: 06 03 c3 00 .long 0xc30306 - 3e5c: 4a 06 4a 05 .long 0x54a064a - 3e60: 09 03 f7 7a rldic. r23,r23,0,12 - 3e64: 3c 05 01 03 .long 0x301053c - 3e68: 89 05 20 05 .long 0x5200589 - 3e6c: 02 06 03 0a tdlti r3,1538 - 3e70: 82 05 07 06 .long 0x6070582 - 3e74: 01 05 21 06 .long 0x6210501 - 3e78: 03 eb 7a 20 subfic r3,r26,-5373 - 3e7c: 05 02 14 05 .long 0x5140205 - 3e80: 09 06 01 20 subfic r0,r1,1545 - 3e84: 05 01 03 89 lbz r8,261(r3) - 3e88: 05 01 20 05 .long 0x5200105 - 3e8c: 12 03 f7 7a rldcr r23,r23,r0,12 - 3e90: 3c 05 09 20 subfic r0,r9,1340 - 3e94: 3c 05 05 03 .long 0x305053c - 3e98: 93 05 01 05 .long 0x5010593 - 3e9c: 02 06 34 05 .long 0x5340602 - 3ea0: 0c 06 01 05 .long 0x501060c - 3ea4: 05 20 05 02 .long 0x2052005 - 3ea8: 06 03 13 2e cmpwi cr4,r19,774 - 3eac: 05 05 06 01 .long 0x1060505 - 3eb0: 05 11 00 02 .long 0x2001105 - 3eb4: 04 01 2e 05 .long 0x52e0104 - 3eb8: 02 06 31 05 .long 0x5310602 - 3ebc: 05 06 01 20 subfic r0,r1,1541 - 3ec0: 05 01 24 05 .long 0x5240105 - 3ec4: 0a 03 67 20 subfic r3,r7,778 - 3ec8: 05 01 03 19 .long 0x19030105 - 3ecc: 20 3c 20 20 subfic r1,r0,15392 - 3ed0: 20 58 05 06 .long 0x6055820 - 3ed4: 03 b1 7f 4a bla fe7fb100 - 3ed8: 05 0d 03 12 evmhossiaaw r16,r3,r1 - 3edc: 20 05 13 03 .long 0x3130520 - 3ee0: 79 3c 05 03 .long 0x3053c79 - 3ee4: 06 54 13 05 .long 0x5135406 - 3ee8: 12 06 01 05 .long 0x5010612 - 3eec: 06 20 05 2f cmpwi cr6,r5,8198 - 3ef0: 06 2c 05 18 .long 0x18052c06 - 3ef4: 01 05 02 03 .long 0x3020501 - 3ef8: 15 3c 05 09 tdgti r5,15381 - 3efc: 06 01 05 03 .long 0x3050106 - 3f00: 06 03 70 58 rlmi r16,r3,r0,12,3 - 3f04: 05 19 06 13 vslq v24,v6,v3 - 3f08: 05 22 1f 05 .long 0x51f2205 - 3f0c: 03 06 21 13 .long 0x13210603 - 3f10: 05 19 06 11 vslq v8,v6,v3 - 3f14: 05 0c 1f 05 .long 0x51f0c05 - 3f18: 06 22 05 03 .long 0x3052206 - 3f1c: 06 3f 13 04 .long 0x4133f06 - 3f20: 19 05 13 03 .long 0x3130519 - 3f24: 8f 76 01 05 .long 0x501768f - 3f28: 02 14 06 01 .long 0x1061402 - 3f2c: 04 01 05 03 .long 0x3050104 - 3f30: 06 03 f0 09 tdi 15,r16,774 - 3f34: 01 05 0d 06 .long 0x60d0501 - 3f38: 20 20 05 11 vmhaddshs v8,v5,v4,v0 - 3f3c: 43 05 03 06 .long 0x6030543 - 3f40: 03 7a 20 05 .long 0x5207a03 - 3f44: 04 13 05 14 .long 0x14051304 - 3f48: 03 b1 7e 01 .long 0x17eb103 - 3f4c: 05 02 14 06 .long 0x6140205 - 3f50: 01 05 0a 03 .long 0x30a0501 - 3f54: cd 01 01 05 .long 0x50101cd - 3f58: 09 4e 05 0a tdlti r5,19977 - 3f5c: 1c 05 04 06 .long 0x604051c - 3f60: 24 05 11 13 vmsumubm v24,v17,v0,v20 - 3f64: 05 07 06 1d mulli r8,r6,1797 - 3f68: 05 04 06 20 subfic r0,r6,1029 - 3f6c: 05 07 06 01 .long 0x1060705 - 3f70: 05 0c 21 20 subfic r1,r1,3077 - 3f74: 05 01 03 38 addi r0,r3,261 - 3f78: 66 4a 20 20 subfic r1,r0,19046 - 3f7c: 20 05 03 06 .long 0x6030520 - 3f80: 03 67 4a 05 .long 0x54a6703 - 3f84: 0d 03 b0 7f .long 0x7fb0030d - 3f88: 01 05 02 15 .long 0x15020501 - 3f8c: 13 14 05 07 .long 0x7051413 - 3f90: 06 01 05 02 .long 0x2050106 - 3f94: 06 4b 05 05 .long 0x5054b06 - 3f98: 06 01 20 05 .long 0x5200106 - 3f9c: 03 06 21 06 .long 0x6210603 - 3fa0: 20 06 3d 06 .long 0x63d0620 - 3fa4: 66 06 03 da stfd f16,1638(r3) - 3fa8: 00 01 05 0d twgti r5,256 - 3fac: 03 9d 7f 01 .long 0x17f9d03 - 3fb0: 05 02 15 13 vsrq v24,v21,v0 - 3fb4: 14 05 07 06 .long 0x6070514 - 3fb8: 01 05 02 06 .long 0x6020501 - 3fbc: 4b 05 05 06 .long 0x605054b - 3fc0: 01 20 05 03 .long 0x3052001 - 3fc4: 06 21 06 20 subfic r0,r6,8454 - 3fc8: 06 3d 06 3c addis r0,r6,15622 - 3fcc: 05 04 06 03 .long 0x3060405 - 3fd0: 1f 01 05 0d twgti r5,287 - 3fd4: 03 58 01 05 .long 0x5015803 - 3fd8: 02 15 13 14 .long 0x14131502 - 3fdc: 05 07 06 01 .long 0x1060705 - 3fe0: 05 02 06 4b bl ffffffffff0641e4 - 3fe4: 05 05 06 01 .long 0x1060505 - 3fe8: 05 03 06 2f cmpwi cr6,r6,773 - 3fec: 06 20 06 3d addis r8,r6,8198 - 3ff0: 06 2e 05 01 .long 0x1052e06 - 3ff4: 06 03 8c 03 .long 0x38c0306 - 3ff8: 90 06 4a 05 .long 0x54a0690 - 3ffc: 1b c9 05 01 .long 0x105c91b - 4000: 1f 05 02 06 .long 0x602051f - 4004: 3d 13 14 06 .long 0x614133d - 4008: 2e 06 2f 05 .long 0x52f062e - 400c: 11 03 d1 7e .long 0x7ed10311 - 4010: 01 05 02 15 .long 0x15020501 - 4014: 05 16 06 14 .long 0x14061605 - 4018: 05 22 24 05 .long 0x5242205 - 401c: 0e 03 7a 20 subfic r3,r26,782 - 4020: 05 02 06 21 subfic r8,r6,517 - 4024: 13 05 10 06 .long 0x6100513 - 4028: 17 05 14 1c mulli r0,r20,1303 - 402c: 05 09 03 0c twi 0,r3,2309 - 4030: 82 05 16 03 .long 0x3160582 - 4034: 73 20 05 02 .long 0x2052073 - 4038: 06 21 13 05 .long 0x5132106 - 403c: 08 06 01 05 .long 0x5010608 - 4040: 02 06 21 13 vctzlsbb r25,v0 - 4044: 13 13 13 13 .long 0x13131313 - 4048: 05 0f 06 01 .long 0x1060f05 - 404c: 05 20 20 05 .long 0x5202005 - 4050: 02 06 21 13 vctzlsbb r25,v0 - 4054: 13 14 05 05 .long 0x5051413 - 4058: 06 01 05 02 .long 0x2050106 - 405c: 06 36 05 08 tdi 0,r5,13830 - 4060: 06 20 05 05 .long 0x5052006 - 4064: 21 05 08 1f mulli r24,r8,1313 - 4068: 05 02 06 2f cmpwi cr6,r6,517 - 406c: 05 05 06 01 .long 0x1060505 - 4070: 05 03 06 21 subfic r8,r6,773 - 4074: 05 0f 06 01 .long 0x1060f05 - 4078: 05 09 20 05 .long 0x5200905 - 407c: 02 06 21 05 .long 0x5210602 - 4080: 0c 03 e4 7e dcblc 23,r4,r0 - 4084: 01 05 02 17 .long 0x17020501 - 4088: 05 06 06 01 .long 0x1060605 - 408c: 05 08 23 20 subfic r1,r3,2053 - 4090: 05 06 39 05 .long 0x5390605 - 4094: 02 06 21 14 .long 0x14210602 - 4098: 05 08 06 01 .long 0x1060805 - 409c: 05 02 06 31 addic r8,r6,517 - 40a0: 05 05 06 01 .long 0x1060505 - 40a4: 05 03 06 30 addic r0,r6,773 - 40a8: 05 06 06 01 .long 0x1060605 - 40ac: 05 0a 06 31 addic r8,r6,2565 - 40b0: 05 0d 06 01 .long 0x1060d05 - 40b4: 05 0a 06 31 addic r8,r6,2565 - 40b8: 05 0d 06 01 .long 0x1060d05 - 40bc: 2e 05 05 03 .long 0x305052e - 40c0: 90 01 01 05 .long 0x5010190 - 40c4: 06 03 79 20 subfic r3,r25,774 - 40c8: 05 02 06 27 dozi r24,r6,517 - 40cc: 05 05 06 01 .long 0x1060505 - 40d0: 2e 2e 05 07 .long 0x7052e2e - 40d4: 03 6a 20 05 .long 0x5206a03 - 40d8: 06 03 91 7f mtdcrx r17,r28 - 40dc: 20 05 10 03 .long 0x3100520 - 40e0: ea 00 4a 05 .long 0x54a00ea - 40e4: 07 33 05 03 .long 0x3053307 - 40e8: 06 03 91 7f mtdcrx r17,r28 - 40ec: 2e 05 06 06 .long 0x606052e - 40f0: 01 05 04 06 .long 0x6040501 - 40f4: 22 05 0f 06 .long 0x60f0522 - 40f8: 01 05 07 20 subfic r0,r7,1281 - 40fc: 2e 05 02 06 .long 0x602052e - 4100: 03 83 01 01 .long 0x1018303 - 4104: 16 16 05 05 .long 0x5051616 - 4108: 06 01 05 02 .long 0x2050106 - 410c: 06 03 12 3c addis r0,r18,774 - 4110: 05 11 06 01 .long 0x1061105 - 4114: 05 0b 20 05 .long 0x5200b05 - 4118: 02 06 21 05 .long 0x5210602 - 411c: 05 06 01 05 .long 0x5010605 - 4120: 02 06 34 05 .long 0x5340602 - 4124: 06 06 01 05 .long 0x5010606 - 4128: 02 06 21 16 .long 0x16210602 - 412c: 05 0c 06 01 .long 0x1060c05 - 4130: 2e 05 02 06 .long 0x602052e - 4134: 2f 05 05 06 .long 0x605052f - 4138: 01 20 05 1a stxvp vs16,8192(r5) - 413c: 2e 05 0f 20 subfic r0,r15,1326 - 4140: 05 02 06 03 .long 0x3060205 - 4144: 0a 2e 05 05 .long 0x5052e0a - 4148: 06 01 05 03 .long 0x3050106 - 414c: 06 2f 05 06 .long 0x6052f06 - 4150: 06 01 05 0a tdlti r5,262 - 4154: 26 05 02 06 .long 0x6020526 - 4158: 26 05 0a 06 .long 0x60a0526 - 415c: 01 05 02 06 .long 0x6020501 - 4160: 21 01 01 01 .long 0x1010121 - 4164: 01 20 15 05 .long 0x5152001 - 4168: 06 06 01 04 .long 0x4010606 - 416c: 06 05 02 03 .long 0x3020506 - 4170: ab 76 20 20 subfic r1,r0,30379 - 4174: 04 01 05 06 .long 0x6050104 - 4178: 03 d5 09 01 .long 0x109d503 - 417c: 05 02 06 21 subfic r8,r6,517 - 4180: 04 06 05 1d mulli r8,r5,1540 - 4184: 03 a8 76 01 .long 0x176a803 - 4188: 05 02 14 06 .long 0x6140205 - 418c: 2e 04 01 06 .long 0x601042e - 4190: 03 d7 09 01 .long 0x109d703 - 4194: 04 1a 05 16 .long 0x16051a04 - 4198: 03 d4 78 01 .long 0x178d403 - 419c: 05 02 15 14 .long 0x14150205 - 41a0: 14 05 08 06 .long 0x6080514 - 41a4: 01 4a 2e 04 .long 0x42e4a01 - 41a8: 01 05 05 03 .long 0x3050501 - 41ac: a6 07 01 04 .long 0x40107a6 - 41b0: 1a 05 02 06 .long 0x602051a - 41b4: 03 dc 78 20 subfic r3,r24,-9213 - 41b8: 06 01 04 01 .long 0x1040106 - 41bc: 06 03 a4 07 .long 0x7a40306 - 41c0: 01 05 05 06 .long 0x6050501 - 41c4: 01 05 03 06 .long 0x6030501 - 41c8: 2f 05 09 06 .long 0x609052f - 41cc: 01 05 02 06 .long 0x6020501 - 41d0: 2f 05 05 06 .long 0x605052f - 41d4: 01 05 03 06 .long 0x6030501 - 41d8: 2f 05 07 06 .long 0x607052f - 41dc: 01 05 02 06 .long 0x6020501 - 41e0: 2f 04 06 05 .long 0x506042f - 41e4: 1d 03 ca 76 andis. r10,r22,797 - 41e8: 01 05 02 14 .long 0x14020501 - 41ec: 04 09 05 14 .long 0x14050904 - 41f0: 03 85 7e 01 .long 0x17e8503 - 41f4: 05 02 14 01 .long 0x1140205 - 41f8: 01 13 04 06 .long 0x6041301 - 41fc: 05 14 03 3a addi r16,r3,5125 - 4200: 01 05 02 14 .long 0x14020501 - 4204: 04 0a 05 14 .long 0x14050a04 - 4208: 03 e7 7e 01 .long 0x17ee703 - 420c: 05 02 14 05 .long 0x5140205 - 4210: 05 06 14 05 .long 0x5140605 - 4214: 1c 1e 05 02 .long 0x2051e1c - 4218: 06 22 05 05 .long 0x5052206 - 421c: 06 01 05 03 .long 0x3050106 - 4220: 06 30 05 02 .long 0x2053006 - 4224: 15 05 13 06 .long 0x6130515 - 4228: 01 04 06 05 .long 0x5060401 - 422c: 02 06 03 91 stw r8,1538(r3) - 4230: 01 3c 04 0b tdnei r4,15361 - 4234: 05 14 03 4f addpcis r24,5127 - 4238: 01 05 02 14 .long 0x14020501 - 423c: 01 01 01 01 .long 0x1010101 + 3dbc: 01 01 01 01 .long 0x1010101 + 3dc0: 01 20 01 01 .long 0x1012001 + 3dc4: 01 01 01 01 .long 0x1010101 + 3dc8: 06 20 06 20 subfic r0,r6,8198 + 3dcc: 01 01 01 13 vcmpuq cr6,v1,v0 + 3dd0: 06 01 04 06 .long 0x6040106 + 3dd4: 06 03 2f 01 .long 0x12f0306 + 3dd8: 06 01 04 09 tdgti r4,262 + 3ddc: 06 03 43 01 .long 0x1430306 + 3de0: 06 01 04 01 .long 0x1040106 + 3de4: 06 03 ce 08 tdllei r14,774 + 3de8: 01 06 3c 05 .long 0x53c0601 + 3dec: 03 06 03 63 ori r3,r24,1539 + 3df0: 20 05 08 06 .long 0x6080520 + 3df4: 01 20 20 20 subfic r1,r0,8193 + 3df8: 05 03 06 21 subfic r8,r6,773 + 3dfc: 05 06 06 01 .long 0x1060605 + 3e00: 20 05 04 06 .long 0x6040520 + 3e04: 21 06 20 06 .long 0x6200621 + 3e08: 3d 06 2e 05 .long 0x52e063d + 3e0c: 02 06 03 1a .long 0x1a030602 + 3e10: 01 06 20 3c lis r1,1537 + 3e14: 20 04 0a 05 .long 0x50a0420 + 3e18: 03 06 03 d9 stfd f8,1539(r3) + 3e1c: 76 3c 05 16 .long 0x16053c76 + 3e20: 06 01 05 03 .long 0x3050106 + 3e24: 06 2f 01 01 .long 0x1012f06 + 3e28: 01 01 06 2e cmpwi cr4,r6,257 + 3e2c: 20 04 01 05 .long 0x5010420 + 3e30: 0a 03 a7 09 tdi 13,r7,778 + 3e34: 01 20 04 0a tdlti r4,8193 + 3e38: 05 03 06 03 .long 0x3060305 + 3e3c: d8 76 2e 05 .long 0x52e76d8 + 3e40: 16 06 01 05 .long 0x5010616 + 3e44: 03 06 21 01 .long 0x1210603 + 3e48: 01 01 01 06 .long 0x6010101 + 3e4c: 2e 04 01 05 .long 0x501042e + 3e50: 01 03 a9 09 tdi 13,r9,769 + 3e54: 66 2e 05 0a tdlti r5,11878 + 3e58: 2c 20 05 01 .long 0x105202c + 3e5c: 06 03 c3 00 .long 0xc30306 + 3e60: 4a 06 4a 05 .long 0x54a064a + 3e64: 09 03 f7 7a rldic. r23,r23,0,12 + 3e68: 3c 05 01 03 .long 0x301053c + 3e6c: 89 05 20 05 .long 0x5200589 + 3e70: 02 06 03 0a tdlti r3,1538 + 3e74: 82 05 07 06 .long 0x6070582 + 3e78: 01 05 21 06 .long 0x6210501 + 3e7c: 03 eb 7a 20 subfic r3,r26,-5373 + 3e80: 05 02 14 05 .long 0x5140205 + 3e84: 09 06 01 20 subfic r0,r1,1545 + 3e88: 05 01 03 89 lbz r8,261(r3) + 3e8c: 05 01 20 05 .long 0x5200105 + 3e90: 12 03 f7 7a rldcr r23,r23,r0,12 + 3e94: 3c 05 09 20 subfic r0,r9,1340 + 3e98: 3c 05 05 03 .long 0x305053c + 3e9c: 93 05 01 05 .long 0x5010593 + 3ea0: 02 06 34 05 .long 0x5340602 + 3ea4: 0c 06 01 05 .long 0x501060c + 3ea8: 05 20 05 02 .long 0x2052005 + 3eac: 06 03 13 2e cmpwi cr4,r19,774 + 3eb0: 05 05 06 01 .long 0x1060505 + 3eb4: 05 11 00 02 .long 0x2001105 + 3eb8: 04 01 2e 05 .long 0x52e0104 + 3ebc: 02 06 31 05 .long 0x5310602 + 3ec0: 05 06 01 20 subfic r0,r1,1541 + 3ec4: 05 01 24 05 .long 0x5240105 + 3ec8: 0a 03 67 20 subfic r3,r7,778 + 3ecc: 05 01 03 19 .long 0x19030105 + 3ed0: 20 3c 20 20 subfic r1,r0,15392 + 3ed4: 20 58 05 06 .long 0x6055820 + 3ed8: 03 b1 7f 4a bla fe7fb100 + 3edc: 05 0d 03 12 evmhossiaaw r16,r3,r1 + 3ee0: 20 05 13 03 .long 0x3130520 + 3ee4: 79 3c 05 03 .long 0x3053c79 + 3ee8: 06 54 13 05 .long 0x5135406 + 3eec: 12 06 01 05 .long 0x5010612 + 3ef0: 06 20 05 2f cmpwi cr6,r5,8198 + 3ef4: 06 2c 05 18 .long 0x18052c06 + 3ef8: 01 05 02 03 .long 0x3020501 + 3efc: 15 3c 05 09 tdgti r5,15381 + 3f00: 06 01 05 03 .long 0x3050106 + 3f04: 06 03 70 58 rlmi r16,r3,r0,12,3 + 3f08: 05 19 06 13 vslq v24,v6,v3 + 3f0c: 05 22 1f 05 .long 0x51f2205 + 3f10: 03 06 21 13 .long 0x13210603 + 3f14: 05 19 06 11 vslq v8,v6,v3 + 3f18: 05 0c 1f 05 .long 0x51f0c05 + 3f1c: 06 22 05 03 .long 0x3052206 + 3f20: 06 3f 13 04 .long 0x4133f06 + 3f24: 19 05 13 03 .long 0x3130519 + 3f28: 8f 76 01 05 .long 0x501768f + 3f2c: 02 14 06 01 .long 0x1061402 + 3f30: 04 01 05 03 .long 0x3050104 + 3f34: 06 03 f0 09 tdi 15,r16,774 + 3f38: 01 05 0d 06 .long 0x60d0501 + 3f3c: 20 20 05 11 vmhaddshs v8,v5,v4,v0 + 3f40: 43 05 03 06 .long 0x6030543 + 3f44: 03 7a 20 05 .long 0x5207a03 + 3f48: 04 13 05 14 .long 0x14051304 + 3f4c: 03 b1 7e 01 .long 0x17eb103 + 3f50: 05 02 14 06 .long 0x6140205 + 3f54: 01 05 0a 03 .long 0x30a0501 + 3f58: cd 01 01 05 .long 0x50101cd + 3f5c: 09 4e 05 0a tdlti r5,19977 + 3f60: 1c 05 04 06 .long 0x604051c + 3f64: 24 05 11 13 vmsumubm v24,v17,v0,v20 + 3f68: 05 07 06 1d mulli r8,r6,1797 + 3f6c: 05 04 06 20 subfic r0,r6,1029 + 3f70: 05 07 06 01 .long 0x1060705 + 3f74: 05 0c 21 20 subfic r1,r1,3077 + 3f78: 05 01 03 38 addi r0,r3,261 + 3f7c: 66 4a 20 20 subfic r1,r0,19046 + 3f80: 20 05 03 06 .long 0x6030520 + 3f84: 03 67 4a 05 .long 0x54a6703 + 3f88: 0d 03 b0 7f .long 0x7fb0030d + 3f8c: 01 05 02 15 .long 0x15020501 + 3f90: 13 14 05 07 .long 0x7051413 + 3f94: 06 01 05 02 .long 0x2050106 + 3f98: 06 4b 05 05 .long 0x5054b06 + 3f9c: 06 01 20 05 .long 0x5200106 + 3fa0: 03 06 21 06 .long 0x6210603 + 3fa4: 20 06 3d 06 .long 0x63d0620 + 3fa8: 66 06 03 da stfd f16,1638(r3) + 3fac: 00 01 05 0d twgti r5,256 + 3fb0: 03 9d 7f 01 .long 0x17f9d03 + 3fb4: 05 02 15 13 vsrq v24,v21,v0 + 3fb8: 14 05 07 06 .long 0x6070514 + 3fbc: 01 05 02 06 .long 0x6020501 + 3fc0: 4b 05 05 06 .long 0x605054b + 3fc4: 01 20 05 03 .long 0x3052001 + 3fc8: 06 21 06 20 subfic r0,r6,8454 + 3fcc: 06 3d 06 3c addis r0,r6,15622 + 3fd0: 05 04 06 03 .long 0x3060405 + 3fd4: 1f 01 05 0d twgti r5,287 + 3fd8: 03 58 01 05 .long 0x5015803 + 3fdc: 02 15 13 14 .long 0x14131502 + 3fe0: 05 07 06 01 .long 0x1060705 + 3fe4: 05 02 06 4b bl ffffffffff0641e8 + 3fe8: 05 05 06 01 .long 0x1060505 + 3fec: 05 03 06 2f cmpwi cr6,r6,773 + 3ff0: 06 20 06 3d addis r8,r6,8198 + 3ff4: 06 2e 05 01 .long 0x1052e06 + 3ff8: 06 03 8c 03 .long 0x38c0306 + 3ffc: 90 06 4a 05 .long 0x54a0690 + 4000: 1b c9 05 01 .long 0x105c91b + 4004: 1f 05 02 06 .long 0x602051f + 4008: 3d 13 14 06 .long 0x614133d + 400c: 2e 06 2f 05 .long 0x52f062e + 4010: 11 03 d1 7e .long 0x7ed10311 + 4014: 01 05 02 15 .long 0x15020501 + 4018: 05 16 06 14 .long 0x14061605 + 401c: 05 22 24 05 .long 0x5242205 + 4020: 0e 03 7a 20 subfic r3,r26,782 + 4024: 05 02 06 21 subfic r8,r6,517 + 4028: 13 05 10 06 .long 0x6100513 + 402c: 17 05 14 1c mulli r0,r20,1303 + 4030: 05 09 03 0c twi 0,r3,2309 + 4034: 82 05 16 03 .long 0x3160582 + 4038: 73 20 05 02 .long 0x2052073 + 403c: 06 21 13 05 .long 0x5132106 + 4040: 08 06 01 05 .long 0x5010608 + 4044: 02 06 21 13 vctzlsbb r25,v0 + 4048: 13 13 13 13 .long 0x13131313 + 404c: 05 0f 06 01 .long 0x1060f05 + 4050: 05 20 20 05 .long 0x5202005 + 4054: 02 06 21 13 vctzlsbb r25,v0 + 4058: 13 14 05 05 .long 0x5051413 + 405c: 06 01 05 02 .long 0x2050106 + 4060: 06 36 05 08 tdi 0,r5,13830 + 4064: 06 20 05 05 .long 0x5052006 + 4068: 21 05 08 1f mulli r24,r8,1313 + 406c: 05 02 06 2f cmpwi cr6,r6,517 + 4070: 05 05 06 01 .long 0x1060505 + 4074: 05 03 06 21 subfic r8,r6,773 + 4078: 05 0f 06 01 .long 0x1060f05 + 407c: 05 09 20 05 .long 0x5200905 + 4080: 02 06 21 05 .long 0x5210602 + 4084: 0c 03 e4 7e dcblc 23,r4,r0 + 4088: 01 05 02 17 .long 0x17020501 + 408c: 05 06 06 01 .long 0x1060605 + 4090: 05 08 23 20 subfic r1,r3,2053 + 4094: 05 06 39 05 .long 0x5390605 + 4098: 02 06 21 14 .long 0x14210602 + 409c: 05 08 06 01 .long 0x1060805 + 40a0: 05 02 06 31 addic r8,r6,517 + 40a4: 05 05 06 01 .long 0x1060505 + 40a8: 05 03 06 30 addic r0,r6,773 + 40ac: 05 06 06 01 .long 0x1060605 + 40b0: 05 0a 06 31 addic r8,r6,2565 + 40b4: 05 0d 06 01 .long 0x1060d05 + 40b8: 05 0a 06 31 addic r8,r6,2565 + 40bc: 05 0d 06 01 .long 0x1060d05 + 40c0: 2e 05 05 03 .long 0x305052e + 40c4: 90 01 01 05 .long 0x5010190 + 40c8: 06 03 79 20 subfic r3,r25,774 + 40cc: 05 02 06 27 dozi r24,r6,517 + 40d0: 05 05 06 01 .long 0x1060505 + 40d4: 2e 2e 05 07 .long 0x7052e2e + 40d8: 03 6a 20 05 .long 0x5206a03 + 40dc: 06 03 91 7f mtdcrx r17,r28 + 40e0: 20 05 10 03 .long 0x3100520 + 40e4: ea 00 4a 05 .long 0x54a00ea + 40e8: 07 33 05 03 .long 0x3053307 + 40ec: 06 03 91 7f mtdcrx r17,r28 + 40f0: 2e 05 06 06 .long 0x606052e + 40f4: 01 05 04 06 .long 0x6040501 + 40f8: 22 05 0f 06 .long 0x60f0522 + 40fc: 01 05 07 20 subfic r0,r7,1281 + 4100: 2e 05 02 06 .long 0x602052e + 4104: 03 83 01 01 .long 0x1018303 + 4108: 16 16 05 05 .long 0x5051616 + 410c: 06 01 05 02 .long 0x2050106 + 4110: 06 03 12 3c addis r0,r18,774 + 4114: 05 11 06 01 .long 0x1061105 + 4118: 05 0b 20 05 .long 0x5200b05 + 411c: 02 06 21 05 .long 0x5210602 + 4120: 05 06 01 05 .long 0x5010605 + 4124: 02 06 34 05 .long 0x5340602 + 4128: 06 06 01 05 .long 0x5010606 + 412c: 02 06 21 16 .long 0x16210602 + 4130: 05 0c 06 01 .long 0x1060c05 + 4134: 2e 05 02 06 .long 0x602052e + 4138: 2f 05 05 06 .long 0x605052f + 413c: 01 20 05 1a stxvp vs16,8192(r5) + 4140: 2e 05 0f 20 subfic r0,r15,1326 + 4144: 05 02 06 03 .long 0x3060205 + 4148: 0a 2e 05 05 .long 0x5052e0a + 414c: 06 01 05 03 .long 0x3050106 + 4150: 06 2f 05 06 .long 0x6052f06 + 4154: 06 01 05 0a tdlti r5,262 + 4158: 26 05 02 06 .long 0x6020526 + 415c: 26 05 0a 06 .long 0x60a0526 + 4160: 01 05 02 06 .long 0x6020501 + 4164: 21 01 01 01 .long 0x1010121 + 4168: 01 20 15 05 .long 0x5152001 + 416c: 06 06 01 04 .long 0x4010606 + 4170: 06 05 02 03 .long 0x3020506 + 4174: ab 76 20 20 subfic r1,r0,30379 + 4178: 04 01 05 06 .long 0x6050104 + 417c: 03 d5 09 01 .long 0x109d503 + 4180: 05 02 06 21 subfic r8,r6,517 + 4184: 04 06 05 1d mulli r8,r5,1540 + 4188: 03 a8 76 01 .long 0x176a803 + 418c: 05 02 14 06 .long 0x6140205 + 4190: 2e 04 01 06 .long 0x601042e + 4194: 03 d7 09 01 .long 0x109d703 + 4198: 04 1a 05 16 .long 0x16051a04 + 419c: 03 d4 78 01 .long 0x178d403 + 41a0: 05 02 15 14 .long 0x14150205 + 41a4: 14 05 08 06 .long 0x6080514 + 41a8: 01 4a 2e 04 .long 0x42e4a01 + 41ac: 01 05 05 03 .long 0x3050501 + 41b0: a6 07 01 04 .long 0x40107a6 + 41b4: 1a 05 02 06 .long 0x602051a + 41b8: 03 dc 78 20 subfic r3,r24,-9213 + 41bc: 06 01 04 01 .long 0x1040106 + 41c0: 06 03 a4 07 .long 0x7a40306 + 41c4: 01 05 05 06 .long 0x6050501 + 41c8: 01 05 03 06 .long 0x6030501 + 41cc: 2f 05 09 06 .long 0x609052f + 41d0: 01 05 02 06 .long 0x6020501 + 41d4: 2f 05 05 06 .long 0x605052f + 41d8: 01 05 03 06 .long 0x6030501 + 41dc: 2f 05 07 06 .long 0x607052f + 41e0: 01 05 02 06 .long 0x6020501 + 41e4: 2f 04 06 05 .long 0x506042f + 41e8: 1d 03 ca 76 andis. r10,r22,797 + 41ec: 01 05 02 14 .long 0x14020501 + 41f0: 04 09 05 14 .long 0x14050904 + 41f4: 03 85 7e 01 .long 0x17e8503 + 41f8: 05 02 14 01 .long 0x1140205 + 41fc: 01 13 04 06 .long 0x6041301 + 4200: 05 14 03 3a addi r16,r3,5125 + 4204: 01 05 02 14 .long 0x14020501 + 4208: 04 0a 05 14 .long 0x14050a04 + 420c: 03 e7 7e 01 .long 0x17ee703 + 4210: 05 02 14 05 .long 0x5140205 + 4214: 05 06 14 05 .long 0x5140605 + 4218: 1c 1e 05 02 .long 0x2051e1c + 421c: 06 22 05 05 .long 0x5052206 + 4220: 06 01 05 03 .long 0x3050106 + 4224: 06 30 05 02 .long 0x2053006 + 4228: 15 05 13 06 .long 0x6130515 + 422c: 01 04 06 05 .long 0x5060401 + 4230: 02 06 03 91 stw r8,1538(r3) + 4234: 01 3c 04 0b tdnei r4,15361 + 4238: 05 14 03 4f addpcis r24,5127 + 423c: 01 05 02 14 .long 0x14020501 4240: 01 01 01 01 .long 0x1010101 - 4244: 01 20 01 01 .long 0x1012001 - 4248: 01 01 01 01 .long 0x1010101 - 424c: 06 20 06 20 subfic r0,r6,8198 - 4250: 01 01 01 13 vcmpuq cr6,v1,v0 - 4254: 06 01 04 06 .long 0x6040106 - 4258: 06 03 2f 01 .long 0x12f0306 - 425c: 06 01 04 09 tdgti r4,262 - 4260: 06 03 43 01 .long 0x1430306 - 4264: 06 01 04 01 .long 0x1040106 - 4268: 06 03 ad 0b tdi 29,r13,774 - 426c: 01 04 07 05 .long 0x5070401 - 4270: 13 03 c4 77 andis. r4,r30,787 - 4274: 20 05 02 03 .long 0x3020520 - 4278: 09 01 05 14 .long 0x14050109 - 427c: 03 71 01 05 .long 0x5017103 - 4280: 02 14 04 08 tdi 0,r4,5122 - 4284: 05 16 03 94 stwu r0,5637(r3) - 4288: 7c 01 05 02 .long 0x205017c - 428c: 14 06 01 04 .long 0x4010614 - 4290: 07 05 17 03 .long 0x3170507 - 4294: ea 03 01 05 .long 0x50103ea - 4298: 05 03 0d 20 subfic r0,r13,773 - 429c: 05 02 06 30 addic r0,r6,517 - 42a0: 05 17 06 01 .long 0x1061705 - 42a4: 04 01 05 05 .long 0x5050104 - 42a8: 03 b1 08 20 subfic r0,r8,-20221 - 42ac: 05 03 06 30 addic r0,r6,773 - 42b0: 05 09 06 01 .long 0x1060905 - 42b4: 3c 05 06 68 xori r6,r0,1340 - 42b8: 05 07 1e 05 .long 0x51e0705 - 42bc: 03 06 22 05 .long 0x5220603 - 42c0: 06 06 01 05 .long 0x5010606 - 42c4: 08 06 22 05 .long 0x5220608 - 42c8: 0b 06 01 05 .long 0x501060b - 42cc: 03 06 30 05 .long 0x5300603 - 42d0: 0a 06 03 f4 stxsd v0,1544(r3) - 42d4: 7e 01 05 0b tdnei r5,382 - 42d8: 03 8c 01 20 subfic r0,r1,-29693 - 42dc: 05 13 06 03 .long 0x3061305 - 42e0: f0 7e 20 05 .long 0x5207ef0 - 42e4: 02 14 05 0a tdlti r5,5122 - 42e8: 06 14 05 02 .long 0x2051406 - 42ec: 2c 05 0a 22 subfic r16,r10,1324 - 42f0: 05 02 3a 05 .long 0x53a0205 - 42f4: 03 06 3e 05 .long 0x53e0603 - 42f8: 0a 06 01 05 .long 0x501060a - 42fc: 16 03 8f 01 .long 0x18f0316 - 4300: 20 05 0a 03 .long 0x30a0520 - 4304: f1 7e 20 05 .long 0x5207ef1 - 4308: 16 03 8f 01 .long 0x18f0316 - 430c: 20 05 0f 20 subfic r0,r15,1312 - 4310: 20 05 09 1d mulli r8,r9,1312 - 4314: 05 05 06 03 .long 0x3060505 - 4318: ab 7e 2e 06 .long 0x62e7eab - 431c: 21 05 0b 57 rlwinm. r11,r24,0,20,16 - 4320: 05 05 06 21 subfic r8,r6,1285 - 4324: 05 02 03 14 .long 0x14030205 - 4328: 01 05 05 06 .long 0x6050501 - 432c: 13 05 19 1f mulli r24,r25,1299 - 4330: 05 02 06 21 subfic r8,r6,517 - 4334: 05 05 06 01 .long 0x1060505 - 4338: 05 03 06 2f cmpwi cr6,r6,773 - 433c: 13 05 19 06 .long 0x6190513 - 4340: 11 4b 2e 05 .long 0x52e4b11 - 4344: 02 06 03 ea lwa r16,1536(r3) - 4348: 00 01 05 19 lxvp vs8,256(r5) - 434c: 06 01 20 05 .long 0x5200106 - 4350: 0b 03 71 3c addis r3,r17,779 - 4354: 20 05 02 06 .long 0x6020520 - 4358: 03 9b 01 01 .long 0x1019b03 - 435c: 3d 05 01 06 .long 0x601053d - 4360: 13 c8 2e 05 .long 0x52ec813 - 4364: 03 06 03 e1 lq r8,1536(r3) - 4368: 7e 4a 2f 05 .long 0x52f4a7e - 436c: 0a 06 01 05 .long 0x501060a - 4370: 06 20 58 05 .long 0x5582006 - 4374: 03 06 03 38 addi r0,r3,1539 - 4378: 20 05 06 06 .long 0x6060520 - 437c: 01 05 03 06 .long 0x6030501 - 4380: 35 05 0a 06 .long 0x60a0535 - 4384: 01 4a 3c 20 subfic r1,r28,18945 - 4388: 3c 06 03 d2 stfs f16,1596(r3) - 438c: 7e 66 05 0d twgti r5,26238 - 4390: 06 01 05 0f twnei r5,262 - 4394: 30 05 0d 1e mulli r16,r13,1328 - 4398: 05 04 06 28 cmplwi r6,1029 - 439c: 05 07 06 01 .long 0x1060705 - 43a0: 05 1a 2e 2e cmpdi cr4,r14,6661 - 43a4: 05 02 06 03 .long 0x3060205 - 43a8: f7 00 01 1a .long 0x1a0100f7 - 43ac: 05 05 06 01 .long 0x1060505 - 43b0: 05 03 06 2f cmpwi cr6,r6,773 - 43b4: 06 20 05 0a tdlti r5,8198 - 43b8: 03 9e 7f 20 subfic r3,r31,-25085 - 43bc: 2e 05 0d 06 .long 0x60d052e - 43c0: 03 74 01 05 .long 0x5017403 - 43c4: 02 18 13 13 vmaxub v24,v19,v3 - 43c8: 13 15 13 14 .long 0x14131513 - 43cc: 05 05 06 01 .long 0x1060505 - 43d0: 20 05 02 06 .long 0x6020520 - 43d4: 23 04 06 05 .long 0x5060423 - 43d8: 1d 03 be 77 andis. r30,r29,797 - 43dc: 01 05 02 14 .long 0x14020501 - 43e0: 04 01 05 08 tdi 0,r5,260 - 43e4: 06 03 c2 08 tdllei r2,774 - 43e8: 20 04 06 05 .long 0x5060420 - 43ec: 02 03 be 77 andis. r30,r29,770 - 43f0: 20 2e 04 01 .long 0x1042e20 - 43f4: 06 03 c2 08 tdllei r2,774 - 43f8: 01 05 08 06 .long 0x6080501 - 43fc: 01 05 02 06 .long 0x6020501 - 4400: 76 05 05 06 .long 0x6050576 - 4404: 01 05 02 06 .long 0x6020501 - 4408: 34 05 08 06 .long 0x6080534 - 440c: 01 58 05 02 .long 0x2055801 - 4410: 06 30 05 05 .long 0x5053006 - 4414: 06 01 05 07 .long 0x7050106 - 4418: 03 79 2e 05 .long 0x52e7903 - 441c: 02 06 03 0d twgti r3,1538 - 4420: 20 04 06 05 .long 0x5060420 - 4424: 1d 03 d4 77 andis. r20,r30,797 - 4428: 01 05 02 14 .long 0x14020501 - 442c: 04 09 05 14 .long 0x14050904 - 4430: 03 85 7e 01 .long 0x17e8503 - 4434: 05 02 14 01 .long 0x1140205 - 4438: 01 13 04 06 .long 0x6041301 - 443c: 05 14 03 3a addi r16,r3,5125 - 4440: 01 05 02 14 .long 0x14020501 - 4444: 04 0a 05 14 .long 0x14050a04 - 4448: 03 e7 7e 01 .long 0x17ee703 - 444c: 05 02 14 05 .long 0x5140205 - 4450: 05 06 14 05 .long 0x5140605 - 4454: 1c 1e 05 02 .long 0x2051e1c - 4458: 06 22 05 05 .long 0x5052206 - 445c: 06 01 05 03 .long 0x3050106 - 4460: 06 30 05 02 .long 0x2053006 - 4464: 15 05 13 06 .long 0x6130515 - 4468: 01 04 06 05 .long 0x5060401 - 446c: 02 06 03 91 stw r8,1538(r3) - 4470: 01 3c 04 0b tdnei r4,15361 - 4474: 05 14 03 4f addpcis r24,5127 - 4478: 01 05 02 14 .long 0x14020501 - 447c: 01 01 01 01 .long 0x1010101 + 4244: 01 01 01 01 .long 0x1010101 + 4248: 01 20 01 01 .long 0x1012001 + 424c: 01 01 01 01 .long 0x1010101 + 4250: 06 20 06 20 subfic r0,r6,8198 + 4254: 01 01 01 13 vcmpuq cr6,v1,v0 + 4258: 06 01 04 06 .long 0x6040106 + 425c: 06 03 2f 01 .long 0x12f0306 + 4260: 06 01 04 09 tdgti r4,262 + 4264: 06 03 43 01 .long 0x1430306 + 4268: 06 01 04 01 .long 0x1040106 + 426c: 06 03 ad 0b tdi 29,r13,774 + 4270: 01 04 07 05 .long 0x5070401 + 4274: 13 03 c4 77 andis. r4,r30,787 + 4278: 20 05 02 03 .long 0x3020520 + 427c: 09 01 05 14 .long 0x14050109 + 4280: 03 71 01 05 .long 0x5017103 + 4284: 02 14 04 08 tdi 0,r4,5122 + 4288: 05 16 03 94 stwu r0,5637(r3) + 428c: 7c 01 05 02 .long 0x205017c + 4290: 14 06 01 04 .long 0x4010614 + 4294: 07 05 17 03 .long 0x3170507 + 4298: ea 03 01 05 .long 0x50103ea + 429c: 05 03 0d 20 subfic r0,r13,773 + 42a0: 05 02 06 30 addic r0,r6,517 + 42a4: 05 17 06 01 .long 0x1061705 + 42a8: 04 01 05 05 .long 0x5050104 + 42ac: 03 b1 08 20 subfic r0,r8,-20221 + 42b0: 05 03 06 30 addic r0,r6,773 + 42b4: 05 09 06 01 .long 0x1060905 + 42b8: 3c 05 06 68 xori r6,r0,1340 + 42bc: 05 07 1e 05 .long 0x51e0705 + 42c0: 03 06 22 05 .long 0x5220603 + 42c4: 06 06 01 05 .long 0x5010606 + 42c8: 08 06 22 05 .long 0x5220608 + 42cc: 0b 06 01 05 .long 0x501060b + 42d0: 03 06 30 05 .long 0x5300603 + 42d4: 0a 06 03 f4 stxsd v0,1544(r3) + 42d8: 7e 01 05 0b tdnei r5,382 + 42dc: 03 8c 01 20 subfic r0,r1,-29693 + 42e0: 05 13 06 03 .long 0x3061305 + 42e4: f0 7e 20 05 .long 0x5207ef0 + 42e8: 02 14 05 0a tdlti r5,5122 + 42ec: 06 14 05 02 .long 0x2051406 + 42f0: 2c 05 0a 22 subfic r16,r10,1324 + 42f4: 05 02 3a 05 .long 0x53a0205 + 42f8: 03 06 3e 05 .long 0x53e0603 + 42fc: 0a 06 01 05 .long 0x501060a + 4300: 16 03 8f 01 .long 0x18f0316 + 4304: 20 05 0a 03 .long 0x30a0520 + 4308: f1 7e 20 05 .long 0x5207ef1 + 430c: 16 03 8f 01 .long 0x18f0316 + 4310: 20 05 0f 20 subfic r0,r15,1312 + 4314: 20 05 09 1d mulli r8,r9,1312 + 4318: 05 05 06 03 .long 0x3060505 + 431c: ab 7e 2e 06 .long 0x62e7eab + 4320: 21 05 0b 57 rlwinm. r11,r24,0,20,16 + 4324: 05 05 06 21 subfic r8,r6,1285 + 4328: 05 02 03 14 .long 0x14030205 + 432c: 01 05 05 06 .long 0x6050501 + 4330: 13 05 19 1f mulli r24,r25,1299 + 4334: 05 02 06 21 subfic r8,r6,517 + 4338: 05 05 06 01 .long 0x1060505 + 433c: 05 03 06 2f cmpwi cr6,r6,773 + 4340: 13 05 19 06 .long 0x6190513 + 4344: 11 4b 2e 05 .long 0x52e4b11 + 4348: 02 06 03 ea lwa r16,1536(r3) + 434c: 00 01 05 19 lxvp vs8,256(r5) + 4350: 06 01 20 05 .long 0x5200106 + 4354: 0b 03 71 3c addis r3,r17,779 + 4358: 20 05 02 06 .long 0x6020520 + 435c: 03 9b 01 01 .long 0x1019b03 + 4360: 3d 05 01 06 .long 0x601053d + 4364: 13 c8 2e 05 .long 0x52ec813 + 4368: 03 06 03 e1 lq r8,1536(r3) + 436c: 7e 4a 2f 05 .long 0x52f4a7e + 4370: 0a 06 01 05 .long 0x501060a + 4374: 06 20 58 05 .long 0x5582006 + 4378: 03 06 03 38 addi r0,r3,1539 + 437c: 20 05 06 06 .long 0x6060520 + 4380: 01 05 03 06 .long 0x6030501 + 4384: 35 05 0a 06 .long 0x60a0535 + 4388: 01 4a 3c 20 subfic r1,r28,18945 + 438c: 3c 06 03 d2 stfs f16,1596(r3) + 4390: 7e 66 05 0d twgti r5,26238 + 4394: 06 01 05 0f twnei r5,262 + 4398: 30 05 0d 1e mulli r16,r13,1328 + 439c: 05 04 06 28 cmplwi r6,1029 + 43a0: 05 07 06 01 .long 0x1060705 + 43a4: 05 1a 2e 2e cmpdi cr4,r14,6661 + 43a8: 05 02 06 03 .long 0x3060205 + 43ac: f7 00 01 1a .long 0x1a0100f7 + 43b0: 05 05 06 01 .long 0x1060505 + 43b4: 05 03 06 2f cmpwi cr6,r6,773 + 43b8: 06 20 05 0a tdlti r5,8198 + 43bc: 03 9e 7f 20 subfic r3,r31,-25085 + 43c0: 2e 05 0d 06 .long 0x60d052e + 43c4: 03 74 01 05 .long 0x5017403 + 43c8: 02 18 13 13 vmaxub v24,v19,v3 + 43cc: 13 15 13 14 .long 0x14131513 + 43d0: 05 05 06 01 .long 0x1060505 + 43d4: 20 05 02 06 .long 0x6020520 + 43d8: 23 04 06 05 .long 0x5060423 + 43dc: 1d 03 be 77 andis. r30,r29,797 + 43e0: 01 05 02 14 .long 0x14020501 + 43e4: 04 01 05 08 tdi 0,r5,260 + 43e8: 06 03 c2 08 tdllei r2,774 + 43ec: 20 04 06 05 .long 0x5060420 + 43f0: 02 03 be 77 andis. r30,r29,770 + 43f4: 20 2e 04 01 .long 0x1042e20 + 43f8: 06 03 c2 08 tdllei r2,774 + 43fc: 01 05 08 06 .long 0x6080501 + 4400: 01 05 02 06 .long 0x6020501 + 4404: 76 05 05 06 .long 0x6050576 + 4408: 01 05 02 06 .long 0x6020501 + 440c: 34 05 08 06 .long 0x6080534 + 4410: 01 58 05 02 .long 0x2055801 + 4414: 06 30 05 05 .long 0x5053006 + 4418: 06 01 05 07 .long 0x7050106 + 441c: 03 79 2e 05 .long 0x52e7903 + 4420: 02 06 03 0d twgti r3,1538 + 4424: 20 04 06 05 .long 0x5060420 + 4428: 1d 03 d4 77 andis. r20,r30,797 + 442c: 01 05 02 14 .long 0x14020501 + 4430: 04 09 05 14 .long 0x14050904 + 4434: 03 85 7e 01 .long 0x17e8503 + 4438: 05 02 14 01 .long 0x1140205 + 443c: 01 13 04 06 .long 0x6041301 + 4440: 05 14 03 3a addi r16,r3,5125 + 4444: 01 05 02 14 .long 0x14020501 + 4448: 04 0a 05 14 .long 0x14050a04 + 444c: 03 e7 7e 01 .long 0x17ee703 + 4450: 05 02 14 05 .long 0x5140205 + 4454: 05 06 14 05 .long 0x5140605 + 4458: 1c 1e 05 02 .long 0x2051e1c + 445c: 06 22 05 05 .long 0x5052206 + 4460: 06 01 05 03 .long 0x3050106 + 4464: 06 30 05 02 .long 0x2053006 + 4468: 15 05 13 06 .long 0x6130515 + 446c: 01 04 06 05 .long 0x5060401 + 4470: 02 06 03 91 stw r8,1538(r3) + 4474: 01 3c 04 0b tdnei r4,15361 + 4478: 05 14 03 4f addpcis r24,5127 + 447c: 01 05 02 14 .long 0x14020501 4480: 01 01 01 01 .long 0x1010101 - 4484: 01 20 01 01 .long 0x1012001 - 4488: 01 01 01 01 .long 0x1010101 - 448c: 2e 01 01 01 .long 0x101012e - 4490: 13 06 01 04 .long 0x4010613 - 4494: 06 06 03 2f cmpwi cr6,r3,1542 - 4498: 01 06 01 04 .long 0x4010601 - 449c: 09 06 03 43 bcl- 24,so,4aa4 - 44a0: 01 06 01 04 .long 0x4010601 - 44a4: 01 06 03 a2 lhz r16,1537(r3) - 44a8: 0a 01 06 01 .long 0x106010a - 44ac: 05 03 06 03 .long 0x3060305 - 44b0: ca 00 01 14 .long 0x140100ca - 44b4: 05 06 06 01 .long 0x1060605 - 44b8: 05 03 06 30 addic r0,r6,773 - 44bc: 13 05 06 06 .long 0x6060513 - 44c0: 01 05 09 57 rlwinm. r9,r24,0,20,0 - 44c4: 05 04 06 03 .long 0x3060405 - 44c8: 1c 4a 06 3c addis r0,r6,18972 - 44cc: 06 2f 06 01 .long 0x1062f06 - 44d0: 20 58 05 0b tdnei r5,22560 - 44d4: 03 66 20 05 .long 0x5206603 - 44d8: 03 06 03 78 rldicl. r3,r0,32,24 - 44dc: 4a 06 20 05 .long 0x520064a - 44e0: 0b 03 a0 7f .long 0x7fa0030b - 44e4: 20 2e 05 0d twgti r5,11808 - 44e8: 06 03 72 01 .long 0x1720306 - 44ec: 05 02 18 13 vsrq v24,v24,v0 - 44f0: 13 13 15 13 .long 0x13151313 - 44f4: 06 4a 05 04 .long 0x4054a06 - 44f8: 06 03 5b 01 .long 0x15b0306 - 44fc: 05 07 06 01 .long 0x1060705 - 4500: 05 02 06 03 .long 0x3060205 - 4504: 10 2e 05 19 lxvp vs8,11792(r5) - 4508: 06 01 05 0b tdnei r5,262 - 450c: 03 71 20 05 .long 0x5207103 - 4510: 19 03 0f 20 subfic r0,r15,793 - 4514: 05 02 06 21 subfic r8,r6,517 - 4518: 06 74 4a 04 .long 0x44a7406 - 451c: 0d 05 0a 03 .long 0x30a050d - 4520: bf 79 01 04 .long 0x40179bf - 4524: 01 05 12 03 .long 0x3120501 - 4528: 9b 08 20 04 .long 0x420089b - 452c: 0d 05 0a 03 .long 0x30a050d - 4530: e5 77 20 04 .long 0x42077e5 - 4534: 01 05 08 03 .long 0x3080501 - 4538: 9a 08 2e 05 .long 0x52e089a - 453c: 02 06 21 04 .long 0x4210602 - 4540: 0d 05 0a 06 .long 0x60a050d - 4544: 03 e5 77 01 .long 0x177e503 - 4548: 04 01 05 0b tdnei r5,260 - 454c: 03 9b 08 20 subfic r0,r8,-25853 - 4550: 05 08 20 05 .long 0x5200805 - 4554: 02 06 24 04 .long 0x4240602 - 4558: 0d 05 25 03 .long 0x325050d - 455c: eb 78 01 05 .long 0x50178eb - 4560: 02 14 05 2e cmpwi cr4,r5,5122 - 4564: 03 eb 7e 01 .long 0x17eeb03 - 4568: 05 02 14 05 .long 0x5140205 - 456c: 03 13 14 15 .long 0x15141303 - 4570: 05 25 03 df stfdu f24,9477(r3) - 4574: 7e 01 05 02 .long 0x205017e - 4578: 15 15 15 14 .long 0x14151515 - 457c: 14 13 06 01 .long 0x1061314 - 4580: 05 03 06 03 .long 0x3060305 - 4584: 94 01 01 05 .long 0x5010194 - 4588: 0a 06 01 3c addis r0,r1,1546 - 458c: 04 01 05 05 .long 0x5050104 - 4590: 03 a0 08 01 .long 0x108a003 - 4594: 04 0d 05 0a tdlti r5,3332 - 4598: 03 e0 77 20 subfic r3,r23,-8189 - 459c: 20 04 01 05 .long 0x5010420 - 45a0: 09 03 9f 08 tdeqi r31,777 - 45a4: 01 05 02 06 .long 0x6020501 - 45a8: 21 05 05 06 .long 0x6050521 - 45ac: 01 05 02 06 .long 0x6020501 - 45b0: 22 05 05 06 .long 0x6050522 - 45b4: 13 05 18 1f mulli r24,r24,1299 - 45b8: 05 08 23 05 .long 0x5230805 - 45bc: 18 63 05 22 subfic r16,r5,25368 - 45c0: 21 05 30 1f mulli r25,r16,1313 - 45c4: 05 0f 20 05 .long 0x5200f05 - 45c8: 02 06 22 13 .long 0x13220602 - 45cc: 05 22 06 11 vsrq v8,v6,v4 - 45d0: 05 08 20 21 subfic r9,r0,2053 - 45d4: 05 22 3b 05 .long 0x53b2205 - 45d8: 1d 20 05 08 tdi 0,r5,8221 - 45dc: 21 05 02 4c .long 0x4c020521 - 45e0: 06 20 2f 05 .long 0x52f2006 - 45e4: 05 06 01 2e cmpwi cr4,r1,1541 - 45e8: 58 05 02 06 .long 0x6020558 - 45ec: 5e 59 05 09 tdgti r5,22878 - 45f0: 06 01 05 18 .long 0x18050106 - 45f4: 03 49 2e 05 .long 0x52e4903 - 45f8: 07 03 1c 20 subfic r0,r28,775 - 45fc: 05 16 03 6f xoris r3,r24,5637 - 4600: 20 05 07 03 .long 0x3070520 - 4604: 11 2e 05 0f twnei r5,11793 - 4608: 03 ea 7e 20 subfic r3,r30,-5629 - 460c: 05 16 03 85 lwzu r8,5637(r3) - 4610: 01 2e 05 07 .long 0x7052e01 - 4614: 03 11 20 05 .long 0x5201103 - 4618: 0f 03 6f 20 subfic r3,r15,783 - 461c: 03 fb 7e 20 subfic r3,r30,-1277 - 4620: 20 05 02 06 .long 0x6020520 - 4624: 03 85 01 01 .long 0x1018503 - 4628: 05 18 06 17 .long 0x17061805 - 462c: 05 0f 24 05 .long 0x5240f05 - 4630: 0d 03 77 20 subfic r3,r23,781 - 4634: 05 35 03 0a tdlti r3,13573 - 4638: 20 05 06 03 .long 0x3060520 - 463c: 76 20 05 02 .long 0x2052076 - 4640: 06 25 13 05 .long 0x5132506 - 4644: 1e 06 11 05 .long 0x511061e - 4648: 1f 21 05 21 subfic r8,r5,8479 - 464c: 21 05 2b 22 subfic r17,r11,1313 - 4650: 05 35 21 05 .long 0x5213505 - 4654: 1e 1b 05 1f mulli r24,r5,6942 - 4658: 21 05 21 21 subfic r9,r1,1313 - 465c: 05 2b 22 05 .long 0x5222b05 - 4660: 07 1d 05 02 .long 0x2051d07 - 4664: 06 21 05 07 .long 0x7052106 - 4668: 06 01 05 02 .long 0x2050106 - 466c: 06 22 05 07 .long 0x7052206 - 4670: 06 01 05 02 .long 0x2050106 - 4674: 06 21 05 35 addic. r8,r5,8454 - 4678: 06 01 05 23 subfic r24,r5,262 - 467c: 20 05 02 06 .long 0x6020520 - 4680: 21 05 08 06 .long 0x6080521 - 4684: 01 05 05 23 subfic r24,r5,1281 - 4688: 05 08 1d 20 subfic r0,r29,2053 - 468c: 20 05 02 06 .long 0x6020520 - 4690: 85 05 05 06 .long 0x6050585 - 4694: 01 05 0a 03 .long 0x30a0501 - 4698: 09 20 05 0c twi 0,r5,8201 - 469c: 03 e4 7e 20 subfic r3,r30,-7165 - 46a0: 05 06 03 90 stw r0,1541(r3) - 46a4: 01 20 05 02 .long 0x2052001 - 46a8: 06 03 0c 20 subfic r0,r12,774 - 46ac: 05 13 03 e2 lq r16,4864(r3) - 46b0: 7e 01 05 02 .long 0x205017e - 46b4: 14 05 0f 06 .long 0x60f0514 - 46b8: 01 05 05 2e cmpwi cr4,r5,1281 - 46bc: 05 02 06 30 addic r0,r6,517 - 46c0: 05 0f 06 01 .long 0x1060f05 - 46c4: 05 05 20 05 .long 0x5200505 - 46c8: 02 06 30 05 .long 0x5300602 - 46cc: 05 06 01 05 .long 0x5010605 - 46d0: 02 06 30 01 .long 0x1300602 - 46d4: 01 01 01 20 subfic r0,r1,257 - 46d8: 01 06 01 05 .long 0x5010601 - 46dc: 04 06 03 9b stb r24,1540(r3) - 46e0: 7f 01 05 19 .long 0x1905017f - 46e4: 06 13 05 0a tdlti r5,4870 - 46e8: 2d 05 04 06 .long 0x604052d - 46ec: 21 05 19 06 .long 0x6190521 - 46f0: 01 58 05 04 .long 0x4055801 - 46f4: 06 03 c1 01 .long 0x1c10306 - 46f8: 01 06 2e 06 .long 0x62e0601 - 46fc: 3e 06 01 3c addis r0,r1,1598 - 4700: 58 06 03 b6 sthu r16,1624(r3) - 4704: 7e 3c 05 0a tdlti r5,15486 - 4708: 06 20 20 05 .long 0x5202006 - 470c: 04 06 31 05 .long 0x5310604 - 4710: 0a 06 20 20 subfic r1,r0,1546 - 4714: 2e 05 03 06 .long 0x603052e - 4718: 03 f6 01 01 .long 0x101f603 - 471c: 13 13 05 11 .long 0x11051313 - 4720: 06 01 05 07 .long 0x7050106 - 4724: 20 05 06 20 subfic r0,r6,1312 - 4728: 05 04 06 2f cmpwi cr6,r6,1029 - 472c: 05 11 06 01 .long 0x1061105 - 4730: 05 20 21 05 .long 0x5212005 - 4734: 0a 24 05 20 subfic r0,r5,9226 - 4738: 1c 05 0c 03 .long 0x30c051c - 473c: e8 7e 20 20 subfic r1,r0,32488 - 4740: 05 03 06 03 .long 0x3060305 - 4744: 98 01 01 13 vextdubvlx v24,v1,v0,r6 - 4748: 05 08 06 11 vrlq v8,v6,v1 - 474c: 05 09 22 1f mulli r25,r2,2309 - 4750: 20 2e 05 07 .long 0x7052e20 - 4754: 82 05 03 06 .long 0x6030582 - 4758: 21 06 20 05 .long 0x5200621 - 475c: 24 03 60 01 .long 0x1600324 - 4760: 05 07 03 f1 xvmaxdp vs40,vs35,vs0 - 4764: 7e 4a 4a 03 .long 0x34a4a7e - 4768: 2f 01 4a 05 .long 0x54a012f - 476c: 10 03 fb 00 .long 0xfb0310 - 4770: 3c 58 05 02 .long 0x205583c - 4774: 03 df 7e 01 .long 0x17edf03 - 4778: 20 20 2e 06 .long 0x62e2020 - 477c: 03 4e 01 05 .long 0x5014e03 - 4780: 19 06 01 05 .long 0x5010619 - 4784: 02 06 2f 06 .long 0x62f0602 - 4788: 66 04 0a 05 .long 0x50a0466 - 478c: 03 06 03 b1 sth r8,1539(r3) - 4790: 75 01 05 16 .long 0x16050175 - 4794: 06 01 05 03 .long 0x3050106 - 4798: 06 2f 01 01 .long 0x1012f06 - 479c: 01 01 06 2e cmpwi cr4,r6,257 - 47a0: 04 01 06 03 .long 0x3060104 - 47a4: 83 0b 01 05 .long 0x5010b83 - 47a8: 0a 06 01 05 .long 0x501060a - 47ac: 16 03 8d 01 .long 0x18d0316 - 47b0: 20 20 05 0f twnei r5,8224 - 47b4: 20 05 0a 03 .long 0x30a0520 - 47b8: f3 7e 20 4a bla fe207ef0 - 47bc: 4a 04 0a 05 .long 0x50a044a - 47c0: 03 06 03 fc .long 0xfc030603 - 47c4: 74 01 05 16 .long 0x16050174 - 47c8: 06 01 05 03 .long 0x3050106 - 47cc: 06 2f 01 01 .long 0x1012f06 - 47d0: 01 01 06 2e cmpwi cr4,r6,257 - 47d4: 04 01 05 01 .long 0x1050104 - 47d8: 03 c8 0c 82 lwz r16,-14333(r12) - 47dc: 05 03 06 03 .long 0x3060305 - 47e0: 8f 7f 2e 01 .long 0x12e7f8f - 47e4: 01 01 01 05 .long 0x5010101 - 47e8: 0a 06 3e 05 .long 0x53e060a - 47ec: 03 1e 06 3e addis r16,r6,7683 - 47f0: 05 01 03 f2 xsadddp vs48,vs35,vs0 - 47f4: 00 58 06 4a b fffffffffe069ff4 - 47f8: 05 11 2f 05 .long 0x52f1105 - 47fc: 01 1f 3c 05 .long 0x53c1f01 - 4800: 02 06 3d 05 .long 0x53d0602 - 4804: 06 06 01 05 .long 0x5010606 - 4808: 02 06 22 04 .long 0x4220602 - 480c: 06 05 1d 03 .long 0x31d0506 - 4810: d7 75 01 05 .long 0x50175d7 - 4814: 02 14 06 2e cmpwi cr4,r6,5122 - 4818: 04 01 06 03 .long 0x3060104 - 481c: a8 0a 01 05 .long 0x5010aa8 - 4820: 07 06 01 05 .long 0x5010607 - 4824: 05 4a 05 02 .long 0x2054a05 - 4828: 06 30 04 06 .long 0x6043006 - 482c: 05 1d 03 fc .long 0xfc031d05 - 4830: 75 01 05 02 .long 0x2050175 - 4834: 14 04 09 05 .long 0x5090414 - 4838: 14 03 85 7e .long 0x7e850314 - 483c: 01 05 02 14 .long 0x14020501 - 4840: 01 01 13 04 .long 0x4130101 - 4844: 06 05 14 03 .long 0x3140506 - 4848: 3a 01 05 02 .long 0x205013a - 484c: 14 04 0a 05 .long 0x50a0414 - 4850: 14 03 e7 7e .long 0x7ee70314 - 4854: 01 05 02 14 .long 0x14020501 - 4858: 05 05 06 14 .long 0x14060505 - 485c: 05 1c 1e 05 .long 0x51e1c05 - 4860: 02 06 22 05 .long 0x5220602 - 4864: 05 06 01 05 .long 0x5010605 - 4868: 03 06 30 05 .long 0x5300603 - 486c: 02 15 05 13 vavgsb v24,v5,v2 - 4870: 06 01 04 06 .long 0x6040106 - 4874: 05 02 06 03 .long 0x3060205 - 4878: 91 01 3c 04 .long 0x43c0191 - 487c: 0b 05 14 03 .long 0x314050b - 4880: 4f 01 05 02 .long 0x205014f - 4884: 14 01 01 01 .long 0x1010114 - 4888: 01 01 01 01 .long 0x1010101 - 488c: 01 01 20 01 .long 0x1200101 - 4890: 01 01 01 01 .long 0x1010101 - 4894: 01 2e 01 01 .long 0x1012e01 - 4898: 01 13 06 01 .long 0x1061301 - 489c: 04 06 06 03 .long 0x3060604 - 48a0: 2f 01 06 01 .long 0x106012f - 48a4: 04 09 06 03 .long 0x3060904 - 48a8: 43 01 06 01 .long 0x1060143 - 48ac: 04 01 06 03 .long 0x3060104 - 48b0: fb 0b 01 05 .long 0x5010bfb - 48b4: 01 06 13 05 .long 0x5130601 - 48b8: 09 49 05 01 .long 0x1054909 - 48bc: 21 4a 05 03 .long 0x3054a21 - 48c0: 06 54 04 0a tdlti r4,21510 - 48c4: 05 05 06 03 .long 0x3060505 - 48c8: ae 73 01 04 .long 0x40173ae - 48cc: 01 05 07 03 .long 0x3070501 - 48d0: d2 0c 20 05 .long 0x5200cd2 - 48d4: 02 06 2f 04 .long 0x42f0602 - 48d8: 06 05 1d 03 .long 0x31d0506 - 48dc: fc 75 01 05 .long 0x50175fc - 48e0: 02 14 04 09 tdgti r4,5122 - 48e4: 05 14 03 85 lwzu r8,5125(r3) - 48e8: 7e 01 05 02 .long 0x205017e - 48ec: 14 01 01 13 mtvsrbmi v24,258 - 48f0: 04 06 05 14 .long 0x14050604 - 48f4: 03 3a 01 05 .long 0x5013a03 - 48f8: 02 14 04 0a tdlti r4,5122 - 48fc: 05 14 03 e7 psq_lu f24,1029(r3),0,1 - 4900: 7e 01 05 02 .long 0x205017e - 4904: 14 05 1c 06 .long 0x61c0514 - 4908: 01 05 02 06 .long 0x6020501 - 490c: 22 05 05 06 .long 0x6050522 - 4910: 01 05 03 06 .long 0x6030501 - 4914: 2f 05 16 06 .long 0x616052f - 4918: 01 05 03 06 .long 0x6030501 - 491c: 2f 01 01 01 .long 0x101012f - 4920: 01 06 2e 04 .long 0x42e0601 - 4924: 01 05 01 03 .long 0x3010501 - 4928: d4 0c 01 02 .long 0x2010cd4 - 492c: 02 00 01 01 .long 0x1010002 + 4484: 01 01 01 01 .long 0x1010101 + 4488: 01 20 01 01 .long 0x1012001 + 448c: 01 01 01 01 .long 0x1010101 + 4490: 2e 01 01 01 .long 0x101012e + 4494: 13 06 01 04 .long 0x4010613 + 4498: 06 06 03 2f cmpwi cr6,r3,1542 + 449c: 01 06 01 04 .long 0x4010601 + 44a0: 09 06 03 43 bcl- 24,so,4aa8 + 44a4: 01 06 01 04 .long 0x4010601 + 44a8: 01 06 03 a2 lhz r16,1537(r3) + 44ac: 0a 01 06 01 .long 0x106010a + 44b0: 05 03 06 03 .long 0x3060305 + 44b4: ca 00 01 14 .long 0x140100ca + 44b8: 05 06 06 01 .long 0x1060605 + 44bc: 05 03 06 30 addic r0,r6,773 + 44c0: 13 05 06 06 .long 0x6060513 + 44c4: 01 05 09 57 rlwinm. r9,r24,0,20,0 + 44c8: 05 04 06 03 .long 0x3060405 + 44cc: 1c 4a 06 3c addis r0,r6,18972 + 44d0: 06 2f 06 01 .long 0x1062f06 + 44d4: 20 58 05 0b tdnei r5,22560 + 44d8: 03 66 20 05 .long 0x5206603 + 44dc: 03 06 03 78 rldicl. r3,r0,32,24 + 44e0: 4a 06 20 05 .long 0x520064a + 44e4: 0b 03 a0 7f .long 0x7fa0030b + 44e8: 20 2e 05 0d twgti r5,11808 + 44ec: 06 03 72 01 .long 0x1720306 + 44f0: 05 02 18 13 vsrq v24,v24,v0 + 44f4: 13 13 15 13 .long 0x13151313 + 44f8: 06 4a 05 04 .long 0x4054a06 + 44fc: 06 03 5b 01 .long 0x15b0306 + 4500: 05 07 06 01 .long 0x1060705 + 4504: 05 02 06 03 .long 0x3060205 + 4508: 10 2e 05 19 lxvp vs8,11792(r5) + 450c: 06 01 05 0b tdnei r5,262 + 4510: 03 71 20 05 .long 0x5207103 + 4514: 19 03 0f 20 subfic r0,r15,793 + 4518: 05 02 06 21 subfic r8,r6,517 + 451c: 06 74 4a 04 .long 0x44a7406 + 4520: 0d 05 0a 03 .long 0x30a050d + 4524: bf 79 01 04 .long 0x40179bf + 4528: 01 05 12 03 .long 0x3120501 + 452c: 9b 08 20 04 .long 0x420089b + 4530: 0d 05 0a 03 .long 0x30a050d + 4534: e5 77 20 04 .long 0x42077e5 + 4538: 01 05 08 03 .long 0x3080501 + 453c: 9a 08 2e 05 .long 0x52e089a + 4540: 02 06 21 04 .long 0x4210602 + 4544: 0d 05 0a 06 .long 0x60a050d + 4548: 03 e5 77 01 .long 0x177e503 + 454c: 04 01 05 0b tdnei r5,260 + 4550: 03 9b 08 20 subfic r0,r8,-25853 + 4554: 05 08 20 05 .long 0x5200805 + 4558: 02 06 24 04 .long 0x4240602 + 455c: 0d 05 25 03 .long 0x325050d + 4560: eb 78 01 05 .long 0x50178eb + 4564: 02 14 05 2e cmpwi cr4,r5,5122 + 4568: 03 eb 7e 01 .long 0x17eeb03 + 456c: 05 02 14 05 .long 0x5140205 + 4570: 03 13 14 15 .long 0x15141303 + 4574: 05 25 03 df stfdu f24,9477(r3) + 4578: 7e 01 05 02 .long 0x205017e + 457c: 15 15 15 14 .long 0x14151515 + 4580: 14 13 06 01 .long 0x1061314 + 4584: 05 03 06 03 .long 0x3060305 + 4588: 94 01 01 05 .long 0x5010194 + 458c: 0a 06 01 3c addis r0,r1,1546 + 4590: 04 01 05 05 .long 0x5050104 + 4594: 03 a0 08 01 .long 0x108a003 + 4598: 04 0d 05 0a tdlti r5,3332 + 459c: 03 e0 77 20 subfic r3,r23,-8189 + 45a0: 20 04 01 05 .long 0x5010420 + 45a4: 09 03 9f 08 tdeqi r31,777 + 45a8: 01 05 02 06 .long 0x6020501 + 45ac: 21 05 05 06 .long 0x6050521 + 45b0: 01 05 02 06 .long 0x6020501 + 45b4: 22 05 05 06 .long 0x6050522 + 45b8: 13 05 18 1f mulli r24,r24,1299 + 45bc: 05 08 23 05 .long 0x5230805 + 45c0: 18 63 05 22 subfic r16,r5,25368 + 45c4: 21 05 30 1f mulli r25,r16,1313 + 45c8: 05 0f 20 05 .long 0x5200f05 + 45cc: 02 06 22 13 .long 0x13220602 + 45d0: 05 22 06 11 vsrq v8,v6,v4 + 45d4: 05 08 20 21 subfic r9,r0,2053 + 45d8: 05 22 3b 05 .long 0x53b2205 + 45dc: 1d 20 05 08 tdi 0,r5,8221 + 45e0: 21 05 02 4c .long 0x4c020521 + 45e4: 06 20 2f 05 .long 0x52f2006 + 45e8: 05 06 01 2e cmpwi cr4,r1,1541 + 45ec: 58 05 02 06 .long 0x6020558 + 45f0: 5e 59 05 09 tdgti r5,22878 + 45f4: 06 01 05 18 .long 0x18050106 + 45f8: 03 49 2e 05 .long 0x52e4903 + 45fc: 07 03 1c 20 subfic r0,r28,775 + 4600: 05 16 03 6f xoris r3,r24,5637 + 4604: 20 05 07 03 .long 0x3070520 + 4608: 11 2e 05 0f twnei r5,11793 + 460c: 03 ea 7e 20 subfic r3,r30,-5629 + 4610: 05 16 03 85 lwzu r8,5637(r3) + 4614: 01 2e 05 07 .long 0x7052e01 + 4618: 03 11 20 05 .long 0x5201103 + 461c: 0f 03 6f 20 subfic r3,r15,783 + 4620: 03 fb 7e 20 subfic r3,r30,-1277 + 4624: 20 05 02 06 .long 0x6020520 + 4628: 03 85 01 01 .long 0x1018503 + 462c: 05 18 06 17 .long 0x17061805 + 4630: 05 0f 24 05 .long 0x5240f05 + 4634: 0d 03 77 20 subfic r3,r23,781 + 4638: 05 35 03 0a tdlti r3,13573 + 463c: 20 05 06 03 .long 0x3060520 + 4640: 76 20 05 02 .long 0x2052076 + 4644: 06 25 13 05 .long 0x5132506 + 4648: 1f 06 01 05 .long 0x501061f + 464c: 1e 1f 05 21 subfic r8,r5,7966 + 4650: 22 05 2b 22 subfic r17,r11,1314 + 4654: 05 35 21 05 .long 0x5213505 + 4658: 1f 1c 05 1e mulli r16,r5,7199 + 465c: 1f 05 21 22 subfic r17,r1,1311 + 4660: 05 2b 22 05 .long 0x5222b05 + 4664: 07 1d 05 02 .long 0x2051d07 + 4668: 06 21 05 07 .long 0x7052106 + 466c: 06 01 05 02 .long 0x2050106 + 4670: 06 22 05 07 .long 0x7052206 + 4674: 06 01 05 02 .long 0x2050106 + 4678: 06 21 05 35 addic. r8,r5,8454 + 467c: 06 01 05 23 subfic r24,r5,262 + 4680: 20 05 02 06 .long 0x6020520 + 4684: 21 05 08 06 .long 0x6080521 + 4688: 01 05 05 23 subfic r24,r5,1281 + 468c: 05 08 1d 20 subfic r0,r29,2053 + 4690: 20 20 05 02 .long 0x2052020 + 4694: 06 77 05 05 .long 0x5057706 + 4698: 06 01 05 0a tdlti r5,262 + 469c: 03 09 20 05 .long 0x5200903 + 46a0: 0c 03 e4 7e dcblc 23,r4,r0 + 46a4: 20 05 06 03 .long 0x3060520 + 46a8: 90 01 20 05 .long 0x5200190 + 46ac: 02 06 03 0c twi 0,r3,1538 + 46b0: 20 05 13 03 .long 0x3130520 + 46b4: e2 7e 01 05 .long 0x5017ee2 + 46b8: 02 14 05 0f twnei r5,5122 + 46bc: 06 01 05 05 .long 0x5050106 + 46c0: 2e 05 02 06 .long 0x602052e + 46c4: 30 05 0f 06 .long 0x60f0530 + 46c8: 01 05 05 20 subfic r0,r5,1281 + 46cc: 05 02 06 30 addic r0,r6,517 + 46d0: 05 05 06 01 .long 0x1060505 + 46d4: 05 02 06 30 addic r0,r6,517 + 46d8: 01 01 01 01 .long 0x1010101 + 46dc: 20 01 06 01 .long 0x1060120 + 46e0: 05 04 06 03 .long 0x3060405 + 46e4: 9b 7f 01 05 .long 0x5017f9b + 46e8: 19 06 13 05 .long 0x5130619 + 46ec: 0a 2d 05 04 .long 0x4052d0a + 46f0: 06 21 05 19 .long 0x19052106 + 46f4: 06 01 58 05 .long 0x5580106 + 46f8: 04 06 03 c1 lfs f8,1540(r3) + 46fc: 01 01 06 2e cmpwi cr4,r6,257 + 4700: 06 3e 06 01 .long 0x1063e06 + 4704: 3c 58 06 03 .long 0x306583c + 4708: b6 7e 3c 05 .long 0x53c7eb6 + 470c: 0a 06 20 20 subfic r1,r0,1546 + 4710: 05 04 06 31 addic r8,r6,1029 + 4714: 05 0a 06 20 subfic r0,r6,2565 + 4718: 20 2e 05 03 .long 0x3052e20 + 471c: 06 03 f6 01 .long 0x1f60306 + 4720: 01 13 13 05 .long 0x5131301 + 4724: 11 06 01 05 .long 0x5010611 + 4728: 07 20 05 06 .long 0x6052007 + 472c: 20 05 04 06 .long 0x6040520 + 4730: 2f 05 11 06 .long 0x611052f + 4734: 01 05 20 21 subfic r9,r0,1281 + 4738: 05 0a 24 05 .long 0x5240a05 + 473c: 20 1c 05 0c twi 0,r5,7200 + 4740: 03 e8 7e 20 subfic r3,r30,-6141 + 4744: 20 05 03 06 .long 0x6030520 + 4748: 03 98 01 01 .long 0x1019803 + 474c: 13 05 08 06 .long 0x6080513 + 4750: 11 05 09 22 subfic r16,r9,1297 + 4754: 1f 20 2e 05 .long 0x52e201f + 4758: 07 82 05 03 .long 0x3058207 + 475c: 06 21 06 20 subfic r0,r6,8454 + 4760: 05 24 03 60 ori r3,r0,9221 + 4764: 01 05 07 03 .long 0x3070501 + 4768: f1 7e 4a 4a bl fffffffffe4ac658 + 476c: 03 2f 01 4a bla fe012f00 + 4770: 05 10 03 fb stdu r24,4100(r3) + 4774: 00 3c 58 05 .long 0x5583c00 + 4778: 02 03 df 7e .long 0x7edf0302 + 477c: 01 20 20 2e cmpdi cr4,r0,8193 + 4780: 06 03 4e 01 .long 0x14e0306 + 4784: 05 19 06 01 .long 0x1061905 + 4788: 05 02 06 2f cmpwi cr6,r6,517 + 478c: 06 66 04 0a tdlti r4,26118 + 4790: 05 03 06 03 .long 0x3060305 + 4794: b1 75 01 05 .long 0x50175b1 + 4798: 16 06 01 05 .long 0x5010616 + 479c: 03 06 2f 01 .long 0x12f0603 + 47a0: 01 01 01 06 .long 0x6010101 + 47a4: 2e 04 01 06 .long 0x601042e + 47a8: 03 83 0b 01 .long 0x10b8303 + 47ac: 05 0a 06 01 .long 0x1060a05 + 47b0: 05 16 03 8d lbzu r8,5637(r3) + 47b4: 01 20 20 05 .long 0x5202001 + 47b8: 0f 20 05 0a tdlti r5,8207 + 47bc: 03 f3 7e 20 subfic r3,r30,-3325 + 47c0: 4a 4a 04 0a tdlti r4,19018 + 47c4: 05 03 06 03 .long 0x3060305 + 47c8: fc 74 01 05 .long 0x50174fc + 47cc: 16 06 01 05 .long 0x5010616 + 47d0: 03 06 2f 01 .long 0x12f0603 + 47d4: 01 01 01 06 .long 0x6010101 + 47d8: 2e 04 01 05 .long 0x501042e + 47dc: 01 03 c8 0c twllei r8,769 + 47e0: 82 05 03 06 .long 0x6030582 + 47e4: 03 8f 7f 2e cmpdi cr4,r31,-28925 + 47e8: 01 01 01 01 .long 0x1010101 + 47ec: 05 0a 06 3e addis r16,r6,2565 + 47f0: 05 03 1e 06 .long 0x61e0305 + 47f4: 3e 05 01 03 .long 0x301053e + 47f8: f2 00 58 06 .long 0x65800f2 + 47fc: 4a 05 11 2f cmpwi cr6,r17,1354 + 4800: 05 01 1f 3c addis r0,r31,261 + 4804: 05 02 06 3d addis r8,r6,517 + 4808: 05 06 06 01 .long 0x1060605 + 480c: 05 02 06 22 subfic r16,r6,517 + 4810: 04 06 05 1d mulli r8,r5,1540 + 4814: 03 d7 75 01 .long 0x175d703 + 4818: 05 02 14 06 .long 0x6140205 + 481c: 2e 04 01 06 .long 0x601042e + 4820: 03 a8 0a 01 .long 0x10aa803 + 4824: 05 07 06 01 .long 0x1060705 + 4828: 05 05 4a 05 .long 0x54a0505 + 482c: 02 06 30 04 .long 0x4300602 + 4830: 06 05 1d 03 .long 0x31d0506 + 4834: fc 75 01 05 .long 0x50175fc + 4838: 02 14 04 09 tdgti r4,5122 + 483c: 05 14 03 85 lwzu r8,5125(r3) + 4840: 7e 01 05 02 .long 0x205017e + 4844: 14 01 01 13 mtvsrbmi v24,258 + 4848: 04 06 05 14 .long 0x14050604 + 484c: 03 3a 01 05 .long 0x5013a03 + 4850: 02 14 04 0a tdlti r4,5122 + 4854: 05 14 03 e7 psq_lu f24,1029(r3),0,1 + 4858: 7e 01 05 02 .long 0x205017e + 485c: 14 05 05 06 .long 0x6050514 + 4860: 14 05 1c 1e mulli r16,r28,1300 + 4864: 05 02 06 22 subfic r16,r6,517 + 4868: 05 05 06 01 .long 0x1060505 + 486c: 05 03 06 30 addic r0,r6,773 + 4870: 05 02 15 05 .long 0x5150205 + 4874: 13 06 01 04 .long 0x4010613 + 4878: 06 05 02 06 .long 0x6020506 + 487c: 03 91 01 3c addis r0,r1,-28413 + 4880: 04 0b 05 14 .long 0x14050b04 + 4884: 03 4f 01 05 .long 0x5014f03 + 4888: 02 14 01 01 .long 0x1011402 + 488c: 01 01 01 01 .long 0x1010101 + 4890: 01 01 01 20 subfic r0,r1,257 + 4894: 01 01 01 01 .long 0x1010101 + 4898: 01 01 2e 01 .long 0x12e0101 + 489c: 01 01 13 06 .long 0x6130101 + 48a0: 01 04 06 06 .long 0x6060401 + 48a4: 03 2f 01 06 .long 0x6012f03 + 48a8: 01 04 09 06 .long 0x6090401 + 48ac: 03 43 01 06 .long 0x6014303 + 48b0: 01 04 01 06 .long 0x6010401 + 48b4: 03 fb 0b 01 .long 0x10bfb03 + 48b8: 05 01 06 13 vslq v24,v6,v0 + 48bc: 05 09 49 05 .long 0x5490905 + 48c0: 01 21 4a 05 .long 0x54a2101 + 48c4: 03 06 54 04 .long 0x4540603 + 48c8: 0a 05 05 06 .long 0x605050a + 48cc: 03 ae 73 01 .long 0x173ae03 + 48d0: 04 01 05 07 .long 0x7050104 + 48d4: 03 d2 0c 20 subfic r0,r12,-11773 + 48d8: 05 02 06 2f cmpwi cr6,r6,517 + 48dc: 04 06 05 1d mulli r8,r5,1540 + 48e0: 03 fc 75 01 .long 0x175fc03 + 48e4: 05 02 14 04 .long 0x4140205 + 48e8: 09 05 14 03 .long 0x3140509 + 48ec: 85 7e 01 05 .long 0x5017e85 + 48f0: 02 14 01 01 .long 0x1011402 + 48f4: 13 04 06 05 .long 0x5060413 + 48f8: 14 03 3a 01 .long 0x13a0314 + 48fc: 05 02 14 04 .long 0x4140205 + 4900: 0a 05 14 03 .long 0x314050a + 4904: e7 7e 01 05 .long 0x5017ee7 + 4908: 02 14 05 1c mulli r0,r5,5122 + 490c: 06 01 05 02 .long 0x2050106 + 4910: 06 22 05 05 .long 0x5052206 + 4914: 06 01 05 03 .long 0x3050106 + 4918: 06 2f 05 16 .long 0x16052f06 + 491c: 06 01 05 03 .long 0x3050106 + 4920: 06 2f 01 01 .long 0x1012f06 + 4924: 01 01 06 2e cmpwi cr4,r6,257 + 4928: 04 01 05 01 .long 0x1050104 + 492c: 03 d4 0c 01 .long 0x10cd403 + 4930: 02 02 00 01 .long 0x1000202 + 4934: Address 0x0000000000004934 is out of bounds. + Disassembly of section .debug_str: @@ -46564,7 +46571,7 @@ Disassembly of section .debug_str: hr->amor = swab64(hr->amor); 6c: 50 4d 5f 52 rlwimi r31,r18,9,21,8 hr->pcr = swab64(hr->pcr) | PCR_MASK; - 70: 45 51 5f 49 bl 15f51b4 + 70: 45 51 5f 49 bl 15f51b4 { 74: 44 4c 45 00 .long 0x454c44 hr->lpid = swab32(hr->lpid); @@ -46661,7 +46668,7 @@ Disassembly of section .debug_str: hr->purr = swab64(hr->purr); 138: 4d 53 43 41 bdztl so,5484 <.debug_str+0x5484> hr->spurr = swab64(hr->spurr); - 13c: 4e 5f 54 48 ba 545f4c + 13c: 4e 5f 54 48 ba 545f4c hr->ic = swab64(hr->ic); 140: 52 4f 54 54 rlwinm r20,r2,9,29,9 hr->vtb = swab64(hr->vtb); @@ -46720,8 +46727,8 @@ Disassembly of section .debug_str: hr->cfar = swab64(hr->cfar); 1b4: 00 49 52 51 rlwimi r18,r10,9,4,0 hr->ppr = swab64(hr->ppr); - 1b8: 5f 57 41 4b bla ff41575c - 1bc: 45 5f 54 48 bl 546100 + 1b8: 5f 57 41 4b bla ff41575c + 1bc: 45 5f 54 48 bl 546100 hr->srr0 = swab64(hr->srr0); 1c0: 52 45 41 44 .long 0x44414552 hr->dawr1 = swab64(hr->dawr1); @@ -46809,9 +46816,9 @@ Disassembly of section .debug_str: 2b0: 49 4e 54 45 .long 0x45544e49 2b4: 52 4c 45 41 bdzta 4*cr1+gt,4c50 <.debug_str+0x4c50> rc = plpar_hcall_norets(H_RPT_INVALIDATE, pid, target, type, - 2b8: 56 45 5f 48 ba 5f4554 + 2b8: 56 45 5f 48 ba 5f4554 2bc: 49 54 00 4d .long 0x4d005449 - 2c0: 4d 5f 46 49 bl 146620c + 2c0: 4d 5f 46 49 bl 146620c 2c4: 4c 45 50 41 bdzt 4*cr4+lt,4810 <.debug_str+0x4810> 2c8: 47 45 53 00 .long 0x534547 2cc: 6e 65 65 64 oris r5,r3,25966 @@ -47158,12 +47165,12 @@ static bool kvmhv_invalidate_shadow_pte( 6b0: 64 5f 64 65 oris r4,r11,24420 pseries_partition_tb = kmalloc(sizeof(struct patb_entry) << ptb_order, 6b4: 6c 61 79 00 .long 0x79616c - if (unlikely(!pseries_partition_tb)) { + if (!pseries_partition_tb) { 6b8: 72 65 73 74 andis. r19,r3,25970 pseries_partition_tb = kmalloc(sizeof(struct patb_entry) << ptb_order, 6bc: 6f 72 65 5f rlwnm. r5,r27,r14,9,23 6c0: 68 76 5f 72 andi. r31,r18,30312 - if (unlikely(!pseries_partition_tb)) { + if (!pseries_partition_tb) { 6c4: 65 67 73 00 .long 0x736765 ptcr = __pa(pseries_partition_tb) | (ptb_order - 12); 6c8: 75 6e 73 69 xori r19,r11,28277 @@ -47340,7 +47347,7 @@ static bool kvmhv_invalidate_shadow_pte( dw0 = PATB_HR | radix__get_tree_size() | 8cc: 4e 56 5f 50 rlwimi r31,r2,10,25,7 kvmhv_set_ptbl_entry(gp->shadow_lpid, dw0, gp->process_table); - 8d0: 4f 53 53 49 bla 153534c + 8d0: 4f 53 53 49 bla 153534c 8d4: 42 4c 45 00 .long 0x454c42 8d8: 6e 65 73 74 andis. r19,r3,25966 dw0 = PATB_HR | radix__get_tree_size() | @@ -47423,7 +47430,7 @@ static bool kvmhv_invalidate_shadow_pte( 9c8: 6e 73 74 61 ori r20,r11,29550 9cc: 6e 63 65 5f rlwnm r5,r27,r12,13,23 9d0: 63 6f 6f 6b xori r15,r27,28515 - 9d4: 69 65 00 4b bl ffffffffff006f3c + 9d4: 69 65 00 4b bl ffffffffff006f3c { 9d8: 56 4d 5f 53 rlwimi r31,r26,9,21,11 9dc: 54 41 54 5f rlwnm r20,r26,r8,5,10 @@ -47466,7 +47473,7 @@ static bool kvmhv_invalidate_shadow_pte( } a54: 6f 75 6e 74 andis. r14,r3,30063 a58: 65 72 00 57 rlwinm. r0,r24,14,9,18 - a5c: 4d 41 52 4b bl ffffffffff524ba8 + a5c: 4d 41 52 4b bl ffffffffff524ba8 a60: 5f 4c 4f 57 rlwinm. r15,r26,9,17,15 a64: 00 64 65 76 andis. r5,r19,25600 a68: 5f 67 72 6f xoris r18,r27,26463 @@ -47537,7 +47544,7 @@ static void kvmhv_emulate_tlbie_lpid(str b3c: 6d 61 5f 70 andi. r31,r2,24941 struct kvm *kvm = gp->l1_host; b40: 68 79 73 00 .long 0x737968 - b44: 48 52 54 49 b 1545d8c + b44: 48 52 54 49 b 1545d8c b48: 4d 45 52 5f rlwnm. r18,r26,r8,21,6 b4c: 42 41 53 45 .long 0x45534142 kvmppc_free_pgtable_radix(kvm, gp->shadow_pgtable, gp->shadow_lpid); @@ -47627,7 +47634,7 @@ static void kvmhv_emulate_tlbie_lpid(str c58: 74 5f 64 65 oris r4,r11,24436 c5c: 70 74 68 00 .long 0x687470 struct kvm *kvm = gp->l1_host; - c60: 48 52 54 49 b 1545ea8 + c60: 48 52 54 49 b 1545ea8 c64: 4d 45 52 5f rlwnm. r18,r26,r8,21,6 int lpid = gp->l1_lpid; c68: 42 41 53 45 .long 0x45534142 @@ -47651,7 +47658,7 @@ static void kvmhv_emulate_tlbie_lpid(str struct mmiowb_state *ms = __mmiowb_state(); ca0: 4b 5f 49 46 .long 0x46495f4b if (unlikely(ms->mmiowb_pending)) { - ca4: 45 54 43 48 bl 4360e8 + ca4: 45 54 43 48 bl 4360e8 ca8: 00 73 74 61 ori r20,r11,29440 ms->nesting_count--; cac: 72 74 5f 64 oris r31,r2,29810 @@ -47758,7 +47765,7 @@ static void kvmhv_emulate_tlbie_lpid(str dec: 5f 4e 4f 54 rlwinm. r15,r2,9,25,15 df0: 49 46 59 5f rlwnm. r25,r26,r8,25,4 df4: 50 52 4f 54 rlwinm r15,r2,10,9,8 - df8: 45 43 54 49 bl 154513c + df8: 45 43 54 49 bl 154513c dfc: 4f 4e 5f 50 rlwimi. r31,r2,9,25,7 e00: 41 47 45 00 .long 0x454741 e04: 69 63 70 74 andis. r16,r3,25449 @@ -47776,7 +47783,7 @@ static void kvmhv_emulate_tlbie_lpid(str e28: 55 4c 54 5f rlwnm. r20,r26,r9,17,10 e2c: 46 4c 41 47 .long 0x47414c46 if (ret == H_SUCCESS) - e30: 5f 57 52 49 bla 152575c + e30: 5f 57 52 49 bla 152575c e34: 54 45 00 69 xori r0,r8,17748 long ret = H_SUCCESS; e38: 72 71 5f 73 andi. r31,r26,29042 @@ -47866,7 +47873,7 @@ static void kvmhv_emulate_tlbie_lpid(str f34: 5f 48 4f 52 rlwimi. r15,r18,9,1,15 gp->next = freelist; f38: 49 5f 50 4f .long 0x4f505f49 - f3c: 53 5f 52 49 bla 1525f50 + f3c: 53 5f 52 49 bla 1525f50 idr_for_each_entry(&kvm->arch.kvm_nested_guest_idr, gp, lpid) { f40: 47 48 54 00 .long 0x544847 f44: 50 52 4f 42 bc 18,4*cr3+so,6194 <.debug_str+0x6194> @@ -47892,7 +47899,7 @@ static void kvmhv_emulate_tlbie_lpid(str f80: 65 00 5f 5f rlwnm. r31,r26,r0,1,18 f84: 73 36 34 00 .long 0x343673 f88: 4c 52 55 5f rlwnm r21,r26,r10,9,6 - f8c: 41 43 54 49 bl 15452cc + f8c: 41 43 54 49 bl 15452cc f90: 56 45 5f 41 bdzta 4*cr7+so,4554 <.debug_str+0x4554> f94: 4e 4f 4e 00 .long 0x4e4f4e while ((gp = freelist) != NULL) { @@ -48012,7 +48019,7 @@ static void kvmhv_emulate_tlbie_lpid(str 1110: 52 5f 5a 4f .long 0x4f5a5f52 1114: 4e 45 5f 41 bdzta 4*cr7+so,454c <.debug_str+0x454c> 1118: 43 54 49 56 rlwinm. r9,r18,10,17,1 - 111c: 45 5f 46 49 bl 1467060 + 111c: 45 5f 46 49 bl 1467060 kvm_for_each_memslot(memslot, bkt, kvm_memslots(kvm)) 1120: 4c 45 00 46 .long 0x4600454c ms->mmiowb_pending = 0; @@ -48103,13 +48110,13 @@ static void kvmhv_emulate_tlbie_lpid(str 1238: 5f 70 74 65 oris r20,r11,28767 123c: 00 72 65 71 andi. r5,r11,29184 1240: 75 65 73 74 andis. r19,r3,25973 - 1244: 73 00 4d 49 bla 14d0070 + 1244: 73 00 4d 49 bla 14d0070 1248: 47 52 41 54 rlwinm. r1,r2,10,9,3 124c: 45 5f 43 4d addpcis r10,24391 return NULL; 1250: 41 00 66 5f rlwnm. r6,r27,r0,1,0 1254: 6f 70 00 50 rlwimi. r0,r0,14,1,23 - 1258: 47 50 47 49 bla 1475044 + 1258: 47 50 47 49 bla 1475044 125c: 4e 00 77 61 ori r23,r11,78 return kmalloc_trace( 1260: 69 74 5f 72 andi. r31,r18,29801 @@ -48119,7 +48126,7 @@ static void kvmhv_emulate_tlbie_lpid(str 1270: 69 72 6d 5f rlwnm. r13,r27,r14,9,20 1274: 73 77 69 74 andis. r9,r3,30579 1278: 63 68 00 73 andi. r0,r24,26723 - if (unlikely(!gp)) + if (!gp) 127c: 68 61 64 6f xoris r4,r27,24936 1280: 77 5f 73 68 xori r19,r3,24439 1284: 69 66 74 00 .long 0x746669 @@ -48223,13 +48230,11 @@ static void kvmhv_emulate_tlbie_lpid(str 13a4: 6b 76 6d 70 andi. r13,r3,30315 13a8: 70 63 5f 6f xoris r31,r26,25456 13ac: 70 73 00 6b xori r0,r24,29552 - ms->mmiowb_pending = 0; + pgd = kmem_cache_alloc(PGT_CACHE(PGD_INDEX_SIZE), 13b0: 6d 65 6d 5f rlwnm. r13,r27,r12,21,22 13b4: 63 61 63 68 xori r3,r3,24931 - mmiowb(); 13b8: 65 00 4d 43 bcl- 26,4*cr3+gt,141c <.debug_str+0x141c> - 13bc: 45 5f 44 49 bl 1447300 - pgd = kmem_cache_alloc(PGT_CACHE(PGD_INDEX_SIZE), + 13bc: 45 5f 44 49 bl 1447300 13c0: 53 50 4f 53 rlwimi. r15,r26,10,1,9 13c4: 49 54 49 4f .long 0x4f495449 13c8: 4e 5f 52 45 .long 0x45525f4e @@ -48237,11 +48242,13 @@ static void kvmhv_emulate_tlbie_lpid(str 13d0: 52 45 44 00 .long 0x444552 13d4: 69 6e 6f 64 oris r15,r3,28265 13d8: 65 00 64 72 andi. r4,r19,101 + if (unlikely(!pgd)) 13dc: 69 76 65 72 andi. r5,r19,30313 + ms->mmiowb_pending = 0; 13e0: 73 5f 64 69 xori r4,r11,24435 13e4: 72 00 4e 52 rlwimi r14,r18,0,1,25 + mmiowb(); 13e8: 5f 5a 4f 4e .long 0x4e4f5a5f - if (unlikely(!pgd)) 13ec: 45 5f 41 43 bcl- 26,gt,7330 <.debug_str+0x7330> pgd_free(kvm->mm, gp->shadow_pgtable); 13f0: 54 49 56 45 .long 0x45564954 @@ -48258,7 +48265,7 @@ static void kvmhv_emulate_tlbie_lpid(str 1410: 5f 50 41 47 .long 0x4741505f 1414: 45 5f 54 41 bdztl 4*cr5+lt,7358 <.debug_str+0x7358> 1418: 42 4c 45 5f rlwnm r5,r26,r9,17,1 - 141c: 57 41 4c 4b bla ff4c4154 + 141c: 57 41 4c 4b bla ff4c4154 if (idr_replace(&kvm->arch.kvm_nested_guest_idr, gp, lpid)) 1420: 5f 49 46 45 .long 0x4546495f 1424: 54 43 48 00 .long 0x484354 @@ -48359,7 +48366,7 @@ static void kvmhv_emulate_tlbie_lpid(str 155c: 79 73 5f 61 ori r31,r10,29561 ms->mmiowb_pending = 0; 1560: 64 64 72 00 .long 0x726464 - 1564: 48 52 54 49 b 15467ac + 1564: 48 52 54 49 b 15467ac mmiowb(); 1568: 4d 45 52 5f rlwnm. r18,r26,r8,21,6 156c: 52 45 53 54 rlwinm r19,r2,8,21,9 @@ -48510,7 +48517,7 @@ static void kvmhv_emulate_tlbie_lpid(str 1744: 61 67 65 00 .long 0x656761 WARN_ON_ONCE(idx & ~0x1); 1748: 4e 55 4d 41 bdzta 4*cr3+gt,554c <.debug_str+0x554c> - 174c: 5f 4f 54 48 bla 544f5c + 174c: 5f 4f 54 48 bla 544f5c 1750: 45 52 00 73 andi. r0,r24,21061 1754: 6c 62 6d 74 andis. r13,r3,25196 1758: 65 00 6e 75 andis. r14,r11,101 @@ -48629,7 +48636,7 @@ static void kvmhv_emulate_tlbie_lpid(str 18c4: 45 46 45 52 rlwimi. r5,r18,8,25,2 saved_l1_regs = vcpu->arch.regs; 18c8: 52 45 44 5f rlwnm r4,r26,r8,21,9 - 18cc: 53 50 4c 49 bla 14c5050 + 18cc: 53 50 4c 49 bla 14c5050 18d0: 54 5f 50 41 bdzt 4*cr4+lt,7824 <.debug_str+0x7824> 18d4: 47 45 00 6b xori r0,r24,17735 vcpu->arch.regs.msr = vcpu->arch.shregs.msr; @@ -48694,7 +48701,7 @@ static void kvmhv_emulate_tlbie_lpid(str vc->dpdes = hr->dpdes; 195c: 46 41 4c 4c .long 0x4c4c4146 (vc->lpcr & ~mask) | (*lpcr & mask)); - 1960: 42 41 43 4b ba ff434140 + 1960: 42 41 43 4b ba ff434140 vcpu->arch.purr = hr->purr; 1964: 00 6e 65 73 andi. r5,r27,28160 vcpu->arch.ciabr = hr->ciabr; @@ -48788,7 +48795,7 @@ static void kvmhv_emulate_tlbie_lpid(str vcpu->arch.shregs.sprg0 = hr->sprg[0]; 1a28: 43 48 5f 46 .long 0x465f4843 vcpu->arch.dawr1 = hr->dawr1; - 1a2c: 4f 52 45 49 bla 145524c + 1a2c: 4f 52 45 49 bla 145524c vcpu->arch.dawrx1 = hr->dawrx1; 1a30: 47 4e 00 62 ori r0,r16,20039 (vc->lpcr & ~mask) | (*lpcr & mask)); @@ -48902,7 +48909,7 @@ static void kvmhv_emulate_tlbie_lpid(str hr->srr0 = vcpu->arch.shregs.srr0; 1b30: 00 4d 43 45 .long 0x45434d00 delta_vtb = vc->vtb - l2_hv.vtb; - 1b34: 5f 49 4e 49 bla 14e495c + 1b34: 5f 49 4e 49 bla 14e495c delta_purr = vcpu->arch.purr - l2_hv.purr; 1b38: 54 49 41 54 rlwinm r1,r2,9,5,10 hr->srr0 = vcpu->arch.shregs.srr0; @@ -49000,7 +49007,7 @@ static void kvmhv_emulate_tlbie_lpid(str vc->dpdes = hr->dpdes; 1c0c: 65 73 00 50 rlwimi. r0,r0,14,13,18 vcpu->arch.hfscr = hr->hfscr; - 1c10: 45 5f 53 49 bl 1537b54 + 1c10: 45 5f 53 49 bl 1537b54 vcpu->arch.dawr0 = hr->dawr0; 1c14: 5a 45 5f 50 rlwimi r31,r2,8,21,13 vc->tb_offset = saved_l1_hv.tb_offset; @@ -49071,7 +49078,7 @@ static void kvmhv_emulate_tlbie_lpid(str 1ca0: 72 73 00 50 rlwimi r0,r0,14,13,25 vcpu->arch.shregs.sprg0 = hr->sprg[0]; 1ca4: 47 53 43 41 bdztla so,5344 <.debug_str+0x5344> - 1ca8: 4e 5f 44 49 ba 1445f4c + 1ca8: 4e 5f 44 49 ba 1445f4c vcpu->arch.cfar = hr->cfar; 1cac: 52 45 43 54 rlwinm r3,r2,8,21,9 vcpu->arch.ppr = hr->ppr; @@ -49107,7 +49114,7 @@ static void kvmhv_emulate_tlbie_lpid(str vcpu->arch.purr += delta_purr; 1cec: 53 54 41 54 rlwinm. r1,r2,10,17,9 vcpu->arch.spurr += delta_spurr; - 1cf0: 45 5f 4c 49 bl 14c7c34 + 1cf0: 45 5f 4c 49 bl 14c7c34 vcpu->arch.ic += delta_ic; 1cf4: 4e 45 5f 4c .long 0x4c5f454e vc->vtb += delta_vtb; @@ -49255,7 +49262,7 @@ static void kvmhv_emulate_tlbie_lpid(str return kvm_vcpu_write_guest(vcpu, hv_ptr, l2_hv, size) || 1ed0: 39 00 4f 4f .long 0x4f4f0039 WARN_ON_ONCE(idx & ~0x1); - 1ed4: 4d 5f 4b 49 bl 14b7e20 + 1ed4: 4d 5f 4b 49 bl 14b7e20 1ed8: 4c 4c 00 69 xori r0,r8,19532 1edc: 5f 68 61 73 andi. r1,r27,26719 1ee0: 68 00 72 65 oris r18,r11,104 @@ -49355,7 +49362,7 @@ static void kvmhv_emulate_tlbie_lpid(str WARN_ON_ONCE(idx & ~0x1); 1fe0: 73 00 43 4f .long 0x4f430073 1fe4: 4d 50 41 43 bcl- 26,gt,7030 <.debug_str+0x7030> - 1fe8: 54 46 41 49 b 141663c + 1fe8: 54 46 41 49 b 141663c 1fec: 4c 00 62 69 xori r2,r11,76 if (WARN_ON_ONCE(vcpu->arch.shregs.msr & MSR_TS_MASK)) 1ff0: 6f 5f 6c 69 xori r12,r11,24431 @@ -49376,7 +49383,7 @@ static void kvmhv_emulate_tlbie_lpid(str 2028: 61 63 6b 5f rlwnm. r11,r27,r12,13,16 202c: 70 6f 69 6e xoris r9,r19,28528 2030: 74 65 72 00 .long 0x726574 - 2034: 4e 52 5f 4b ba ff5f524c + 2034: 4e 52 5f 4b ba ff5f524c 2038: 4d 41 4c 4c .long 0x4c4c414d 203c: 4f 43 5f 54 rlwinm. r31,r2,8,13,7 return -1; @@ -49430,7 +49437,7 @@ static void kvmhv_emulate_tlbie_lpid(str 20ec: 6f 6b 69 65 oris r9,r11,27503 20f0: 00 4d 45 4d .long 0x4d454d00 20f4: 4f 52 59 5f rlwnm. r25,r26,r10,9,7 - 20f8: 44 45 56 49 b 156663c + 20f8: 44 45 56 49 b 156663c 20fc: 43 45 5f 50 rlwimi. r31,r2,8,21,1 2100: 43 49 5f 50 rlwimi. r31,r2,9,5,1 2104: 32 50 44 4d .long 0x4d445032 @@ -49467,7 +49474,7 @@ static void kvmhv_emulate_tlbie_lpid(str 216c: 00 64 65 6c xoris r5,r3,25600 2170: 61 79 5f 77 andis. r31,r26,31073 2174: 6f 72 6b 00 .long 0x6b726f - if (unlikely(!buf)) + if (!buf) 2178: 73 6c 62 6d xoris r2,r11,27763 217c: 66 65 76 00 .long 0x766566 gp = kvmhv_get_nested(vcpu->kvm, l1_lpid, false); @@ -49524,7 +49531,7 @@ static void kvmhv_emulate_tlbie_lpid(str 2218: 54 48 52 4f .long 0x4f524854 kvmhv_put_nested(gp); 221c: 54 54 4c 45 .long 0x454c5454 - 2220: 5f 57 52 49 bla 152575c + 2220: 5f 57 52 49 bla 152575c 2224: 54 45 42 41 bdzt eq,6778 <.debug_str+0x6778> kfree(buf); 2228: 43 4b 00 73 andi. r0,r24,19267 @@ -49548,7 +49555,7 @@ static void kvmhv_emulate_tlbie_lpid(str 2268: 69 74 00 50 rlwimi. r0,r0,14,17,20 226c: 47 53 43 41 bdztla so,5344 <.debug_str+0x5344> rc = __kvmhv_copy_tofrom_guest_radix(gp->shadow_lpid, pid, - 2270: 4e 5f 44 49 ba 1445f4c + 2270: 4e 5f 44 49 ba 1445f4c 2274: 52 45 43 54 rlwinm r3,r2,8,21,9 2278: 5f 54 48 52 rlwimi. r8,r18,10,17,15 227c: 4f 54 54 4c .long 0x4c54544f @@ -49602,7 +49609,7 @@ static void kvmhv_emulate_tlbie_lpid(str 2310: 73 74 61 72 andi. r1,r19,29811 2314: 74 00 63 72 andi. r3,r19,116 2318: 63 73 00 55 rlwinm. r0,r8,14,13,17 - 231c: 4e 45 56 49 ba 156454c + 231c: 4e 45 56 49 ba 156454c 2320: 43 54 41 42 bcla 18,gt,5440 <.debug_str+0x5440> 2324: 4c 45 5f 50 rlwimi r31,r2,8,21,6 2328: 47 4d 4c 4f .long 0x4f4c4d47 @@ -49613,45 +49620,45 @@ static void kvmhv_emulate_tlbie_lpid(str rc = kvm_vcpu_write_guest(vcpu, gp_to, buf, n); 2338: 5a 45 5f 57 rlwinm r31,r26,8,21,13 233c: 52 49 54 45 .long 0x45544952 - return H_NO_MEM; + return H_PARAMETER; 2340: 00 4d 49 47 .long 0x47494d00 2344: 52 41 54 45 .long 0x45544152 2348: 5f 48 49 47 .long 0x4749485f 234c: 48 41 54 4f .long 0x4f544148 + WARN_ON_ONCE(idx & ~0x1); 2350: 4d 49 43 00 .long 0x43494d 2354: 73 65 74 61 ori r20,r11,25971 2358: 74 74 72 00 .long 0x727474 235c: 74 65 78 61 ori r24,r11,25972 - return H_PARAMETER; 2360: 73 72 00 66 oris r0,r16,29299 + return H_NO_MEM; 2364: 5f 6d 61 70 andi. r1,r3,27999 2368: 70 69 6e 67 oris r14,r27,26992 236c: 00 6e 6f 69 xori r15,r11,28160 - WARN_ON_ONCE(idx & ~0x1); 2370: 6e 73 74 72 andi. r20,r19,29550 2374: 5f 74 65 78 .long 0x7865745f 2378: 74 5f 73 74 andis. r19,r3,24436 237c: 61 72 74 00 .long 0x747261 2380: 70 72 65 70 andi. r5,r3,29296 2384: 61 72 65 00 .long 0x657261 +{ 2388: 62 69 6e 5f rlwnm r14,r27,r13,5,17 238c: 61 74 74 72 andi. r20,r19,29793 2390: 73 00 73 61 ori r19,r11,115 2394: 73 5f 73 73 andi. r19,r27,24435 -{ 2398: 5f 66 6c 61 ori r12,r11,26207 239c: 67 73 00 66 oris r0,r16,29543 23a0: 5f 6d 6f 64 oris r15,r3,27999 23a4: 65 00 69 73 andi. r9,r27,101 + for (psize = 0; psize < MMU_PAGE_COUNT; psize++) { 23a8: 5f 6d 73 69 xori r19,r11,27999 + int shift, shadow_shift; 23ac: 78 00 61 6c xoris r1,r3,120 +{ 23b0: 69 67 6e 5f rlwnm. r14,r27,r12,29,20 23b4: 63 74 6c 00 .long 0x6c7463 - for (psize = 0; psize < MMU_PAGE_COUNT; psize++) { 23b8: 6b 69 5f 63 ori r31,r26,26987 - int shift, shadow_shift; 23bc: 6f 6d 70 6c xoris r16,r3,28015 -{ 23c0: 65 74 65 00 .long 0x657465 23c4: 76 74 69 6d xoris r9,r11,29814 23c8: 65 5f 73 74 andis. r19,r3,24421 @@ -49660,102 +49667,102 @@ static void kvmhv_emulate_tlbie_lpid(str 23d4: 65 5f 66 6c xoris r6,r3,24421 23d8: 69 70 73 00 .long 0x737069 23dc: 73 65 74 5f rlwnm. r20,r27,r12,21,25 + struct kvm *kvm = vcpu->kvm; 23e0: 61 63 6c 00 .long 0x6c6361 + int shift, shadow_shift; 23e4: 6d 6d 75 5f rlwnm. r21,r27,r13,21,22 23e8: 66 65 61 74 andis. r1,r3,25958 23ec: 75 72 65 5f rlwnm. r5,r27,r14,9,26 - struct kvm *kvm = vcpu->kvm; + if (mmu_psize_defs[psize].ap == ap) 23f0: 6b 65 79 73 andi. r25,r27,25963 - int shift, shadow_shift; + for (psize = 0; psize < MMU_PAGE_COUNT; psize++) { 23f4: 00 72 66 69 xori r6,r11,29184 + if (mmu_psize_defs[psize].ap == ap) 23f8: 5f 66 6c 75 andis. r12,r11,26207 23fc: 73 68 5f 66 oris r31,r18,26739 - if (mmu_psize_defs[psize].ap == ap) - 2400: 61 6c 6c 62 ori r12,r19,27745 for (psize = 0; psize < MMU_PAGE_COUNT; psize++) { + 2400: 61 6c 6c 62 ori r12,r19,27745 2404: 61 63 6b 5f rlwnm. r11,r27,r12,13,16 - if (mmu_psize_defs[psize].ap == ap) 2408: 61 72 65 61 ori r5,r11,29281 + if (mmu_psize_defs[psize].ap == ap) 240c: 00 62 75 73 andi. r21,r27,25088 - for (psize = 0; psize < MMU_PAGE_COUNT; psize++) { 2410: 5f 64 6d 61 ori r13,r11,25695 2414: 5f 72 65 67 oris r5,r27,29279 + return mmu_psize_defs[psize].shift; 2418: 69 6f 6e 00 .long 0x6e6f69 - if (mmu_psize_defs[psize].ap == ap) 241c: 64 72 69 76 andis. r9,r19,29284 + shift = ap_to_shift(ap); 2420: 65 72 00 6d xoris r0,r8,29285 + if (shift < 0) 2424: 73 69 78 5f rlwnm. r24,r27,r13,5,25 - return mmu_psize_defs[psize].shift; 2428: 63 74 72 6c xoris r18,r3,29795 + gp = kvmhv_get_nested(kvm, lpid, false); 242c: 00 69 5f 6f xoris r31,r26,26880 - shift = ap_to_shift(ap); 2430: 70 00 64 5f rlwnm r4,r27,r0,1,24 - if (shift < 0) + if (!gp) /* No such guest -> nothing to do */ 2434: 72 74 5f 73 andi. r31,r26,29810 2438: 70 63 5f 68 xori r31,r2,25456 - gp = kvmhv_get_nested(kvm, lpid, false); 243c: 61 72 64 6c xoris r4,r3,29281 + addr &= ~((1UL << shift) - 1); 2440: 69 6d 69 74 andis. r9,r3,28009 - if (!gp) /* No such guest -> nothing to do */ + npages = 1UL << (shift - PAGE_SHIFT); 2444: 00 6f 72 69 xori r18,r11,28416 2448: 67 5f 67 70 andi. r7,r3,24423 + mutex_lock(&gp->tlb_lock); 244c: 72 33 00 69 xori r0,r8,13170 - addr &= ~((1UL << shift) - 1); + addr = epn << 12; 2450: 73 5f 6b 76 andis. r11,r19,24435 - npages = 1UL << (shift - PAGE_SHIFT); + npages -= 1UL << (shadow_shift - PAGE_SHIFT); 2454: 6d 70 70 63 ori r16,r27,28781 + addr &= ~((1UL << shift) - 1); 2458: 5f 72 65 73 andi. r5,r27,29279 mutex_lock(&gp->tlb_lock); 245c: 75 6d 65 5f rlwnm. r5,r27,r13,21,26 - addr = epn << 12; + npages = 1UL << (shift - PAGE_SHIFT); 2460: 67 75 65 73 andi. r5,r27,30055 - npages -= 1UL << (shadow_shift - PAGE_SHIFT); - 2464: 74 00 6b 6f xoris r11,r27,116 addr &= ~((1UL << shift) - 1); + 2464: 74 00 6b 6f xoris r11,r27,116 2468: 62 6a 5f 6e xoris r31,r18,27234 mutex_lock(&gp->tlb_lock); 246c: 73 5f 74 79 rldcr. r20,r11,r11,61 - npages = 1UL << (shift - PAGE_SHIFT); 2470: 70 65 5f 6f xoris r31,r26,25968 - addr &= ~((1UL << shift) - 1); 2474: 70 65 72 61 ori r18,r11,25968 2478: 74 69 6f 6e xoris r15,r19,26996 - mutex_lock(&gp->tlb_lock); 247c: 73 00 44 51 rlwimi. r4,r10,0,1,25 + kvmhv_invalidate_shadow_pte(vcpu, gp, addr, &shadow_shift); 2480: 53 54 5f 46 .long 0x465f5453 2484: 52 45 45 5f rlwnm r5,r26,r8,21,9 2488: 44 51 55 4f addpcis r26,20842 248c: 54 53 00 74 andis. r0,r0,21332 - kvmhv_invalidate_shadow_pte(vcpu, gp, addr, &shadow_shift); 2490: 68 72 65 61 ori r5,r11,29288 + npages -= 1UL << (shadow_shift - PAGE_SHIFT); 2494: 64 5f 63 70 andi. r3,r3,24420 2498: 75 00 73 65 oris r19,r11,117 + addr += 1UL << shadow_shift; 249c: 71 63 6f 75 andis. r15,r11,25457 - 24a0: 6e 74 5f 72 andi. r31,r18,29806 npages -= 1UL << (shadow_shift - PAGE_SHIFT); + 24a0: 6e 74 5f 72 andi. r31,r18,29806 + addr += 1UL << shadow_shift; 24a4: 61 77 5f 73 andi. r31,r26,30561 + } while (npages > 0); 24a8: 70 69 6e 6c xoris r14,r3,26992 - addr += 1UL << shadow_shift; 24ac: 6f 63 6b 5f rlwnm. r11,r27,r12,13,23 - npages -= 1UL << (shadow_shift - PAGE_SHIFT); + mutex_unlock(&gp->tlb_lock); 24b0: 74 00 70 65 oris r16,r11,116 - addr += 1UL << shadow_shift; 24b4: 72 63 70 75 andis. r16,r11,25458 - } while (npages > 0); 24b8: 5f 72 77 5f rlwnm. r23,r27,r14,9,15 + kvmhv_put_nested(gp); 24bc: 73 65 6d 61 ori r13,r11,25971 - mutex_unlock(&gp->tlb_lock); 24c0: 70 68 6f 72 andi. r15,r19,26736 24c4: 65 00 57 4f .long 0x4f570065 24c8: 52 4b 49 4e .long 0x4e494b52 - kvmhv_put_nested(gp); + return 0; 24cc: 47 53 45 54 rlwinm. r5,r2,10,13,3 +} 24d0: 5f 41 43 54 rlwinm. r3,r2,8,5,15 24d4: 49 56 41 54 rlwinm. r1,r2,10,25,4 - 24d8: 45 5f 46 49 bl 146841c - return 0; + 24d8: 45 5f 46 49 bl 146841c 24dc: 4c 45 00 63 ori r0,r24,17740 -} 24e0: 6f 6e 66 69 xori r6,r11,28271 24e4: 67 75 72 65 oris r18,r11,30055 24e8: 5f 6d 6d 75 andis. r13,r11,27999 @@ -49768,261 +49775,261 @@ static void kvmhv_emulate_tlbie_lpid(str 2504: 41 53 53 5f rlwnm. r19,r26,r10,13,0 2508: 55 4e 4b 4e .long 0x4e4b4e55 250c: 4f 57 4e 00 .long 0x4e574f + return -EINVAL; 2510: 6d 61 73 30 addic r3,r19,24941 2514: 00 72 65 73 andi. r5,r27,29184 2518: 65 72 76 65 oris r22,r11,29285 251c: 64 31 30 00 .long 0x303164 - return -EINVAL; +} 2520: 72 65 73 65 oris r19,r11,25970 2524: 72 76 65 64 oris r5,r3,30322 2528: 31 31 00 72 andi. r0,r16,12593 252c: 65 73 65 72 andi. r5,r19,29541 -} 2530: 76 65 64 31 addic r11,r4,25974 2534: 32 00 72 65 oris r18,r11,50 +{ 2538: 73 65 72 76 andis. r18,r19,25971 253c: 65 64 31 33 addic r25,r17,25701 2540: 00 6d 61 73 andi. r1,r27,27904 2544: 36 00 6c 69 xori r12,r11,54 -{ 2548: 73 74 5f 6c xoris r31,r2,29811 254c: 72 75 5f 6e xoris r31,r18,30066 2550: 6f 64 65 00 .long 0x65646f + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2554: 73 72 63 75 andis. r3,r11,29299 2558: 5f 67 70 5f rlwnm. r16,r27,r12,29,15 +{ 255c: 73 65 71 5f rlwnm. r17,r27,r12,21,25 2560: 6e 65 65 64 oris r5,r3,25966 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2564: 65 64 5f 65 oris r31,r10,25701 2568: 78 70 00 69 xori r0,r8,28792 -{ + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 256c: 72 71 5f 63 ori r31,r26,29042 2570: 70 75 5f 69 xori r31,r10,30064 + if (!gp) 2574: 64 00 68 63 ori r8,r27,100 2578: 61 6c 6c 00 .long 0x6c6c61 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); + pte = __find_linux_pte(gp->shadow_pgtable, ea, NULL, hshift); 257c: 73 70 69 6e xoris r9,r19,28787 2580: 6c 6f 63 6b xori r3,r27,28524 - if (!gp) 2584: 5f 74 00 69 xori r0,r8,29791 2588: 72 71 5f 72 andi. r31,r18,29042 - pte = __find_linux_pte(gp->shadow_pgtable, ea, NULL, hshift); 258c: 65 6c 65 61 ori r5,r11,27749 2590: 73 65 5f 72 andi. r31,r18,25971 +} 2594: 65 73 6f 75 andis. r15,r11,29541 2598: 72 63 65 73 andi. r5,r27,25458 259c: 00 73 63 72 andi. r3,r19,29440 25a0: 61 74 63 68 xori r3,r3,29793 -} 25a4: 33 00 6d 61 ori r13,r11,51 25a8: 73 6b 00 74 andis. r0,r0,27507 25ac: 6d 5f 70 70 andi. r16,r3,24429 25b0: 72 00 6f 6c xoris r15,r3,114 25b4: 64 5f 62 65 oris r2,r11,24420 +{ 25b8: 00 77 61 69 xori r1,r11,30464 25bc: 74 5f 71 75 andis. r17,r11,24436 25c0: 65 75 65 5f rlwnm. r5,r27,r14,21,18 25c4: 68 65 61 64 oris r1,r3,25960 -{ 25c8: 00 77 6f 72 andi. r15,r19,30464 25cc: 6b 5f 66 75 andis. r6,r11,24427 25d0: 6e 63 5f 74 andis. r31,r2,25454 + struct llist_node *entry = ((struct llist_head *) rmapp)->first; 25d4: 00 66 77 6e xoris r23,r19,26112 + u64 rmap, new_rmap = (*n_rmap)->rmap; 25d8: 6f 64 65 00 .long 0x65646f + if (!(*rmapp)) { 25dc: 70 73 70 62 ori r16,r19,29552 + u64 rmap, new_rmap = (*n_rmap)->rmap; 25e0: 00 69 73 5f rlwnm r19,r27,r13,4,0 - struct llist_node *entry = ((struct llist_head *) rmapp)->first; + if (!(*rmapp)) { 25e4: 64 69 72 74 andis. r18,r3,26980 - u64 rmap, new_rmap = (*n_rmap)->rmap; 25e8: 79 5f 77 72 andi. r23,r19,24441 - if (!(*rmapp)) { 25ec: 69 74 65 62 ori r5,r19,29801 - u64 rmap, new_rmap = (*n_rmap)->rmap; 25f0: 61 63 6b 00 .long 0x6b6361 - if (!(*rmapp)) { 25f4: 74 72 61 63 ori r1,r27,29300 25f8: 65 5f 62 70 andi. r2,r3,24421 25fc: 72 69 6e 74 andis. r14,r3,26994 + for_each_nest_rmap_safe(cursor, entry, &rmap) { 2600: 6b 5f 66 6d xoris r6,r11,24427 2604: 74 5f 73 74 andis. r19,r3,24436 + return !((rmap_1 ^ rmap_2) & (RMAP_NESTED_LPID_MASK | 2608: 61 72 74 00 .long 0x747261 + if (kvmhv_n_rmap_is_equal(rmap, new_rmap)) 260c: 68 75 67 65 oris r7,r11,30056 - for_each_nest_rmap_safe(cursor, entry, &rmap) { 2610: 5f 66 61 75 andis. r1,r11,26207 + if (rmap & RMAP_NESTED_IS_SINGLE_ENTRY) /* Not previously a list */ 2614: 6c 74 00 5f rlwnm r0,r24,r14,17,22 - return !((rmap_1 ^ rmap_2) & (RMAP_NESTED_LPID_MASK | 2618: 5f 76 65 63 ori r5,r27,30303 - if (kvmhv_n_rmap_is_equal(rmap, new_rmap)) 261c: 74 6f 72 31 addic r11,r18,28532 2620: 32 38 00 6b xori r0,r24,14386 - if (rmap & RMAP_NESTED_IS_SINGLE_ENTRY) /* Not previously a list */ + return llist_add_batch(new, new, head); 2624: 73 74 61 74 andis. r1,r3,29811 2628: 66 73 00 6d xoris r0,r8,29542 262c: 63 65 5f 75 andis. r31,r10,25955 2630: 65 5f 63 6f xoris r3,r27,24421 - return llist_add_batch(new, new, head); + *n_rmap = NULL; 2634: 75 6e 74 00 .long 0x746e75 - 2638: 44 45 56 49 b 1566b7c + 2638: 44 45 56 49 b 1566b7c 263c: 43 45 5f 56 rlwinm. r31,r18,8,21,1 2640: 45 52 54 5f rlwnm. r20,r26,r10,9,2 - *n_rmap = NULL; +} 2644: 50 4f 53 5f rlwnm r19,r26,r9,29,8 2648: 55 50 50 45 .long 0x45505055 + *n_rmap = NULL; 264c: 52 00 70 74 andis. r16,r3,82 - 2650: 72 61 63 65 oris r3,r11,24946 } + 2650: 72 61 63 65 oris r3,r11,24946 2654: 00 6b 70 72 andi. r16,r19,27392 2658: 6f 62 65 5f rlwnm. r5,r27,r12,9,23 - *n_rmap = NULL; 265c: 62 6c 61 63 ori r1,r27,27746 -} + for_each_nest_rmap_safe(cursor, entry, &rmap) { 2660: 6b 6c 69 73 andi. r9,r27,27755 2664: 74 00 63 70 andi. r3,r3,116 + return !((rmap_1 ^ rmap_2) & (RMAP_NESTED_LPID_MASK | 2668: 75 73 5f 70 andi. r31,r2,29557 + if (kvmhv_n_rmap_is_equal(rmap, new_rmap)) 266c: 74 72 00 69 xori r0,r8,29300 for_each_nest_rmap_safe(cursor, entry, &rmap) { 2670: 74 65 72 61 ori r18,r11,25972 2674: 74 65 00 69 xori r0,r8,25972 - return !((rmap_1 ^ rmap_2) & (RMAP_NESTED_LPID_MASK | - 2678: 5f 64 65 6e xoris r5,r19,25695 if (kvmhv_n_rmap_is_equal(rmap, new_rmap)) - 267c: 74 72 79 00 .long 0x797274 + 2678: 5f 64 65 6e xoris r5,r19,25695 for_each_nest_rmap_safe(cursor, entry, &rmap) { + 267c: 74 72 79 00 .long 0x797274 2680: 65 6e 71 75 andis. r17,r11,28261 2684: 65 75 65 5f rlwnm. r5,r27,r14,21,18 - if (kvmhv_n_rmap_is_equal(rmap, new_rmap)) 2688: 64 69 73 70 andi. r19,r3,26980 - for_each_nest_rmap_safe(cursor, entry, &rmap) { 268c: 61 74 63 68 xori r3,r3,29793 + *rmapp = 0UL; 2690: 5f 74 62 00 .long 0x62745f 2694: 67 72 61 62 ori r1,r19,29287 2698: 5f 63 75 72 andi. r21,r19,25439 269c: 72 65 6e 74 andis. r14,r3,25970 - *rmapp = 0UL; 26a0: 5f 6e 73 00 .long 0x736e5f 26a4: 52 53 45 51 rlwimi r5,r10,10,13,9 26a8: 5f 45 56 45 .long 0x4556455f + (*n_rmap)->list.next = (struct llist_node *) rmap; 26ac: 4e 54 5f 50 rlwimi r31,r2,10,17,7 26b0: 52 45 45 4d .long 0x4d454552 26b4: 50 54 5f 42 bc 18,4*cr7+so,7b04 <.debug_str+0x7b04> 26b8: 49 54 00 61 ori r0,r8,21577 - (*n_rmap)->list.next = (struct llist_node *) rmap; 26bc: 6c 74 6d 61 ori r13,r11,29804 26c0: 70 00 64 62 ori r4,r19,112 +} 26c4: 65 6c 6c 5f rlwnm. r12,r27,r13,17,18 26c8: 65 78 69 74 andis. r9,r3,30821 26cc: 73 00 66 73 andi. r6,r27,115 + *rmapp = new_rmap | RMAP_NESTED_IS_SINGLE_ENTRY; 26d0: 6e 6f 74 69 xori r20,r11,28526 } 26d4: 66 79 5f 6d xoris r31,r10,31078 + *rmapp = new_rmap | RMAP_NESTED_IS_SINGLE_ENTRY; 26d8: 61 72 6b 5f rlwnm. r11,r27,r14,9,16 +} 26dc: 63 6f 6e 6e xoris r14,r19,28515 - *rmapp = new_rmap | RMAP_NESTED_IS_SINGLE_ENTRY; 26e0: 65 63 74 6f xoris r20,r27,25445 -} 26e4: 72 00 5f 73 andi. r31,r26,114 - *rmapp = new_rmap | RMAP_NESTED_IS_SINGLE_ENTRY; 26e8: 69 67 73 79 rldic. r19,r11,12,61 -} 26ec: 73 00 65 73 andi. r5,r27,115 26f0: 69 64 00 72 andi. r0,r16,25705 26f4: 70 74 65 00 .long 0x657470 +{ 26f8: 72 6d 61 70 andi. r1,r3,28018 26fc: 00 73 72 63 ori r18,r27,29440 2700: 75 5f 63 62 ori r3,r19,24437 2704: 5f 6d 75 74 andis. r21,r3,27999 -{ + if ((clr | set) & ~(_PAGE_DIRTY | _PAGE_ACCESSED)) 2708: 65 78 00 4d .long 0x4d007865 - 270c: 43 45 5f 49 bla 15f4540 +{ + 270c: 43 45 5f 49 bla 15f4540 2710: 6e 69 74 69 xori r20,r11,26990 - 2714: 61 74 6f 72 andi. r15,r19,29793 if ((clr | set) & ~(_PAGE_DIRTY | _PAGE_ACCESSED)) + 2714: 61 74 6f 72 andi. r15,r19,29793 + struct llist_node *entry = ((struct llist_head *) rmapp)->first; 2718: 00 69 5f 73 andi. r31,r26,26880 { 271c: 62 00 70 6c xoris r16,r3,98 2720: 61 74 66 6f xoris r6,r27,29793 - if ((clr | set) & ~(_PAGE_DIRTY | _PAGE_ACCESSED)) 2724: 72 6d 5f 6d xoris r31,r10,28018 - struct llist_node *entry = ((struct llist_head *) rmapp)->first; + if ((clr | set) & ~(_PAGE_DIRTY | _PAGE_ACCESSED)) 2728: 73 69 5f 70 andi. r31,r2,26995 -{ 272c: 72 69 76 5f rlwnm r22,r27,r13,5,25 + mask = PTE_RPN_MASK & ~(nbytes - 1); 2730: 64 61 74 61 ori r20,r11,24932 + for_each_nest_rmap_safe(cursor, entry, &rmap) 2734: 00 5f 44 51 rlwimi r4,r10,11,28,0 - if ((clr | set) & ~(_PAGE_DIRTY | _PAGE_ACCESSED)) 2738: 53 54 5f 44 .long 0x445f5453 - 273c: 51 53 54 41 bdztl 4*cr5+lt,7a8c <.debug_str+0x7a8c> mask = PTE_RPN_MASK & ~(nbytes - 1); + 273c: 51 53 54 41 bdztl 4*cr5+lt,7a8c <.debug_str+0x7a8c> 2740: 54 5f 4c 41 bdzt 4*cr3+lt,8694 <.debug_str+0x8694> for_each_nest_rmap_safe(cursor, entry, &rmap) 2744: 53 54 00 76 andis. r0,r16,21587 2748: 72 5f 74 6d xoris r20,r11,24434 - mask = PTE_RPN_MASK & ~(nbytes - 1); 274c: 00 4d 4f 44 .long 0x444f4d00 2750: 55 4c 45 5f rlwnm. r5,r26,r9,17,10 - for_each_nest_rmap_safe(cursor, entry, &rmap) + unsigned int shift, lpid; 2754: 53 54 41 54 rlwinm. r1,r2,10,17,9 2758: 45 5f 55 4e addpcis r18,24427 275c: 46 4f 52 4d .long 0x4d524f46 2760: 45 44 00 65 oris r0,r8,17477 - unsigned int shift, lpid; 2764: 78 70 69 72 andi. r9,r19,28792 2768: 65 73 00 75 andis. r0,r8,29541 276c: 73 65 72 5f rlwnm. r18,r27,r12,21,25 2770: 65 72 72 6f xoris r18,r27,29285 2774: 72 5f 74 79 rldcr r20,r11,r11,61 + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2778: 70 65 00 72 andi. r0,r16,25968 277c: 63 75 77 61 ori r23,r11,30051 2780: 69 74 00 6e xoris r0,r16,29801 2784: 69 76 63 73 andi. r3,r27,30313 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2788: 77 00 74 6d xoris r20,r11,119 278c: 5f 73 63 72 andi. r3,r19,29535 + for_each_nest_rmap_safe(cursor, entry, &rmap) 2790: 61 74 63 68 xori r3,r3,29793 2794: 00 75 5f 66 oris r31,r18,29952 2798: 6c 61 67 73 andi. r7,r27,24940 + lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; 279c: 00 4d 4f 44 .long 0x444f4d00 - for_each_nest_rmap_safe(cursor, entry, &rmap) + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 27a0: 55 4c 45 5f rlwnm. r5,r26,r9,17,10 + for_each_nest_rmap_safe(cursor, entry, &rmap) 27a4: 53 54 41 54 rlwinm. r1,r2,10,17,9 + unsigned int shift, lpid; 27a8: 45 5f 47 4f addpcis r26,24399 - lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; + gpa = n_rmap & RMAP_NESTED_GPA_MASK; 27ac: 49 4e 47 00 .long 0x474e49 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); + lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; 27b0: 44 4c 5f 44 .long 0x445f4c44 - for_each_nest_rmap_safe(cursor, entry, &rmap) + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 27b4: 45 56 5f 55 rlwinm. r31,r10,10,25,2 - unsigned int shift, lpid; 27b8: 4e 42 49 4e .long 0x4e49424e gpa = n_rmap & RMAP_NESTED_GPA_MASK; 27bc: 44 49 4e 47 .long 0x474e4944 - lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; + if (!gp) 27c0: 00 6d 75 6c xoris r21,r3,27904 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 27c4: 74 69 5f 63 ori r31,r26,26996 + pte = __find_linux_pte(gp->shadow_pgtable, ea, NULL, hshift); 27c8: 61 70 00 74 andis. r0,r0,28769 - gpa = n_rmap & RMAP_NESTED_GPA_MASK; 27cc: 68 72 65 61 ori r5,r11,29288 - if (!gp) 27d0: 64 00 70 6d xoris r16,r11,100 27d4: 63 72 65 67 oris r5,r27,29283 - pte = __find_linux_pte(gp->shadow_pgtable, ea, NULL, hshift); 27d8: 73 5f 69 6e xoris r9,r19,24435 27dc: 5f 75 73 65 oris r19,r11,30047 + if (ptep && pte_present(*ptep) && ((pte_val(*ptep) & mask) == hpa)) { 27e0: 00 73 75 62 ori r21,r19,29440 27e4: 73 79 73 5f rlwnm. r19,r27,r15,5,25 27e8: 70 72 69 76 andis. r9,r19,29296 + return (pte_raw(pte) & cpu_to_be64(_PAGE_PRESENT | _PAGE_PTE)) == 27ec: 61 74 65 00 .long 0x657461 - if (ptep && pte_present(*ptep) && ((pte_val(*ptep) & mask) == hpa)) { + if (pte_hw_valid(pte)) 27f0: 72 65 61 64 oris r1,r3,25970 27f4: 79 5f 66 6f xoris r6,r27,24441 + return (pte_raw(pte) & cpu_to_be64(_PAGE_INVALID | _PAGE_PTE)) == 27f8: 72 5f 69 6e xoris r9,r19,24434 - return (pte_raw(pte) & cpu_to_be64(_PAGE_PRESENT | _PAGE_PTE)) == 27fc: 74 65 72 72 andi. r18,r19,25972 - if (pte_hw_valid(pte)) 2800: 75 70 74 5f rlwnm. r20,r27,r14,1,26 2804: 69 6e 6a 65 oris r10,r11,28265 - return (pte_raw(pte) & cpu_to_be64(_PAGE_INVALID | _PAGE_PTE)) == 2808: 63 74 69 6f xoris r9,r27,29795 280c: 6e 00 73 5f rlwnm r19,r27,r0,1,23 2810: 74 69 6d 65 oris r13,r11,26996 @@ -50034,34 +50041,34 @@ static void kvmhv_emulate_tlbie_lpid(str 2828: 72 65 6d 6f xoris r13,r27,25970 282c: 74 65 5f 74 andis. r31,r2,25972 2830: 6c 62 5f 66 oris r31,r18,25196 + for_each_nest_rmap_safe(cursor, entry, &rmap) 2834: 6c 75 73 68 xori r19,r3,30060 2838: 00 68 6f 73 andi. r15,r27,26624 283c: 74 5f 70 75 andis. r16,r11,24436 2840: 72 72 00 73 andi. r0,r24,29298 - for_each_nest_rmap_safe(cursor, entry, &rmap) + lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; 2844: 5f 64 65 76 andis. r5,r19,25695 + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2848: 00 67 75 65 oris r21,r11,26368 + unsigned int shift, lpid; 284c: 73 74 5f 65 oris r31,r10,29811 + gpa = n_rmap & RMAP_NESTED_GPA_MASK; 2850: 73 69 64 00 .long 0x646973 lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; 2854: 67 65 74 5f rlwnm. r20,r27,r12,21,19 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2858: 6e 65 78 74 andis. r24,r3,25966 - unsigned int shift, lpid; 285c: 5f 69 64 00 .long 0x64695f gpa = n_rmap & RMAP_NESTED_GPA_MASK; 2860: 72 77 6c 6f xoris r12,r27,30578 - lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; + if (!gp) 2864: 63 6b 5f 74 andis. r31,r2,27491 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2868: 00 63 70 75 andis. r16,r11,25344 + for_each_nest_rmap_safe(cursor, entry, &rmap) 286c: 5f 66 65 61 ori r5,r11,26207 - gpa = n_rmap & RMAP_NESTED_GPA_MASK; 2870: 74 75 72 65 oris r18,r11,30068 - if (!gp) 2874: 5f 6b 65 79 .long 0x79656b5f 2878: 73 00 70 67 oris r16,r27,115 - for_each_nest_rmap_safe(cursor, entry, &rmap) 287c: 70 72 6f 74 andis. r15,r3,29296 2880: 00 66 61 6c xoris r1,r3,26112 2884: 73 65 00 6f xoris r0,r24,25971 @@ -50074,21 +50081,21 @@ static void kvmhv_emulate_tlbie_lpid(str 28a0: 77 5f 70 61 ori r16,r11,24439 28a4: 74 68 00 67 oris r0,r24,26740 28a8: 70 5f 74 6f xoris r20,r27,24432 +} 28ac: 00 50 49 44 .long 0x44495000 28b0: 54 59 50 45 .long 0x45505954 - 28b4: 5f 54 47 49 bla 147545c + 28b4: 5f 54 47 49 bla 147545c 28b8: 44 00 6b 76 andis. r11,r19,68 -} 28bc: 6d 5f 69 6f xoris r9,r27,24429 28c0: 5f 62 75 73 andi. r21,r27,25183 28c4: 00 6d 65 6d xoris r5,r11,27904 28c8: 66 64 5f 6e xoris r31,r18,25702 28cc: 6f 65 78 65 oris r24,r11,25967 + : "r" (ptep), "r" (cpu_to_be64(set)), "r" (cpu_to_be64(clr)) 28d0: 63 5f 73 63 ori r19,r27,24419 28d4: 6f 70 65 00 .long 0x65706f 28d8: 73 74 65 61 ori r5,r11,29811 28dc: 6c 5f 74 69 xori r20,r11,24428 - : "r" (ptep), "r" (cpu_to_be64(set)), "r" (cpu_to_be64(clr)) 28e0: 6d 65 00 6c xoris r0,r0,25965 28e4: 31 5f 68 76 andis. r8,r19,24369 28e8: 00 5f 64 75 andis. r4,r11,24320 @@ -50103,17 +50110,17 @@ static void kvmhv_emulate_tlbie_lpid(str 290c: 76 65 6e 74 andis. r14,r3,25974 2910: 5f 69 74 65 oris r20,r11,26975 2914: 6d 00 73 77 andis. r19,r27,109 + __asm__ __volatile__( 2918: 61 70 5f 69 xori r31,r10,28769 291c: 6e 66 6f 5f rlwnm r15,r27,r12,25,23 2920: 73 74 72 75 andis. r18,r11,29811 2924: 63 74 00 73 andi. r0,r24,29795 - __asm__ __volatile__( 2928: 65 71 75 65 oris r21,r11,29029 + kvmppc_radix_tlbie_page(kvm, gpa, shift, lpid); 292c: 6e 63 65 00 .long 0x65636e 2930: 72 74 5f 73 andi. r31,r26,29810 2934: 70 63 5f 77 andis. r31,r26,25456 2938: 61 72 6e 6c xoris r14,r3,29281 - kvmppc_radix_tlbie_page(kvm, gpa, shift, lpid); 293c: 69 6d 69 74 andis. r9,r3,28009 2940: 00 75 76 6d xoris r22,r11,29952 2944: 65 6d 5f 70 andi. r31,r2,28005 @@ -50130,142 +50137,144 @@ static void kvmhv_emulate_tlbie_lpid(str 2970: 79 70 65 00 .long 0x657079 2974: 6d 73 69 5f rlwnm. r9,r27,r14,13,22 2978: 64 6f 6d 61 ori r13,r11,28516 +} 297c: 69 6e 5f 69 xori r31,r10,28265 2980: 64 73 00 5f rlwnm r0,r24,r14,13,18 2984: 64 61 74 61 ori r20,r11,24932 2988: 00 74 61 73 andi. r1,r27,29696 -} 298c: 6b 73 00 5f rlwnm. r0,r24,r14,13,21 2990: 70 69 64 00 .long 0x646970 2994: 64 65 6c 74 andis. r12,r3,25956 +{ 2998: 61 5f 70 75 andis. r16,r11,24417 299c: 72 72 00 6d xoris r0,r8,29298 29a0: 6d 5f 63 6f xoris r3,r27,24429 29a4: 6e 74 65 78 rldimi r5,r3,46,49 -{ 29a8: 74 5f 74 00 .long 0x745f74 29ac: 5f 5f 63 61 ori r3,r11,24415 + if (!memslot) 29b0: 6c 6c 5f 73 andi. r31,r26,27756 +{ 29b4: 69 6e 67 6c xoris r7,r3,28265 29b8: 65 5f 6e 6f xoris r14,r27,24421 29bc: 64 65 00 73 andi. r0,r24,25956 if (!memslot) 29c0: 74 61 72 74 andis. r18,r3,24948 -{ + gfn = (gpa >> PAGE_SHIFT) - memslot->base_gfn; 29c4: 75 70 00 6d xoris r0,r8,28789 29c8: 6d 75 5f 70 andi. r31,r2,30061 29cc: 61 72 74 69 xori r20,r11,29281 - if (!memslot) + end_gfn = gfn + (nbytes >> PAGE_SHIFT); 29d0: 74 69 6f 6e xoris r15,r19,26996 - gfn = (gpa >> PAGE_SHIFT) - memslot->base_gfn; + addr_mask = PTE_RPN_MASK & ~(nbytes - 1); 29d4: 5f 74 61 62 ori r1,r19,29791 29d8: 6c 65 5f 73 andi. r31,r26,25964 + gfn = (gpa >> PAGE_SHIFT) - memslot->base_gfn; 29dc: 65 74 5f 65 oris r31,r10,29797 - end_gfn = gfn + (nbytes >> PAGE_SHIFT); - 29e0: 6e 74 72 79 rldimi r18,r11,46,49 addr_mask = PTE_RPN_MASK & ~(nbytes - 1); + 29e0: 6e 74 72 79 rldimi r18,r11,46,49 29e4: 00 69 72 71 andi. r18,r11,26880 - 29e8: 5f 6d 61 73 andi. r1,r27,27999 gfn = (gpa >> PAGE_SHIFT) - memslot->base_gfn; + 29e8: 5f 6d 61 73 andi. r1,r27,27999 + end_gfn = gfn + (nbytes >> PAGE_SHIFT); 29ec: 6b 5f 61 63 ori r1,r27,24427 - addr_mask = PTE_RPN_MASK & ~(nbytes - 1); + for (; gfn < end_gfn; gfn++) { 29f0: 6b 00 69 73 andi. r9,r27,107 29f4: 5f 76 69 72 andi. r9,r19,30303 - gfn = (gpa >> PAGE_SHIFT) - memslot->base_gfn; 29f8: 74 75 61 6c xoris r1,r3,30068 - end_gfn = gfn + (nbytes >> PAGE_SHIFT); 29fc: 00 66 70 5f rlwnm r16,r27,r12,24,0 - for (; gfn < end_gfn; gfn++) { 2a00: 73 74 61 74 andis. r1,r3,29811 2a04: 65 00 73 65 oris r19,r11,101 2a08: 71 63 6f 75 andis. r15,r11,25457 2a0c: 6e 74 5f 73 andi. r31,r26,29806 2a10: 70 69 6e 6c xoris r14,r3,26992 2a14: 6f 63 6b 5f rlwnm. r11,r27,r12,13,23 + unsigned int shift, lpid; 2a18: 74 00 65 78 .long 0x78650074 2a1c: 74 65 72 6e xoris r18,r19,25972 + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2a20: 61 6c 5f 6f xoris r31,r26,27745 2a24: 6e 65 73 68 xori r19,r3,25966 - unsigned int shift, lpid; 2a28: 6f 74 00 6d xoris r0,r8,29807 2a2c: 6d 75 63 66 oris r3,r19,30061 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2a30: 67 00 70 61 ori r16,r11,103 2a34: 6e 65 6c 00 .long 0x6c656e 2a38: 69 6e 61 63 ori r1,r27,28265 2a3c: 74 69 76 65 oris r22,r11,26996 + unsigned long *rmap = &memslot->arch.rmap[gfn]; 2a40: 5f 74 69 6d xoris r9,r11,29791 2a44: 65 72 00 5f rlwnm. r0,r24,r14,9,18 2a48: 70 6b 65 79 rldcl r5,r11,r13,45 + return xchg(&head->first, NULL); 2a4c: 00 73 5f 65 oris r31,r10,29440 - unsigned long *rmap = &memslot->arch.rmap[gfn]; 2a50: 78 70 6f 72 andi. r15,r19,28792 2a54: 74 5f 6f 70 andi. r15,r3,24436 2a58: 00 6e 72 5f rlwnm r18,r27,r13,24,0 - return xchg(&head->first, NULL); 2a5c: 64 65 66 65 oris r6,r11,25956 + for_each_nest_rmap_safe(cursor, entry, &rmap) { 2a60: 72 72 65 64 oris r5,r3,29298 2a64: 00 64 61 74 andis. r1,r3,25600 2a68: 61 5f 6f 66 oris r15,r19,24417 2a6c: 66 73 65 74 andis. r5,r3,29542 - for_each_nest_rmap_safe(cursor, entry, &rmap) { 2a70: 00 69 5f 66 oris r31,r18,26880 2a74: 6c 63 74 78 rldimi r20,r3,12,45 2a78: 00 73 74 61 ori r20,r11,29440 + lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; 2a7c: 73 68 65 64 oris r5,r3,26739 + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2a80: 00 63 6f 6e xoris r15,r19,25344 + for_each_nest_rmap_safe(cursor, entry, &rmap) { 2a84: 64 5f 73 75 andis. r19,r11,24420 + unsigned int shift, lpid; 2a88: 73 70 65 6e xoris r5,r19,28787 - lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; 2a8c: 64 5f 64 65 oris r4,r11,24420 return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2a90: 70 74 68 00 .long 0x687470 - for_each_nest_rmap_safe(cursor, entry, &rmap) { 2a94: 64 62 73 72 andi. r19,r19,25188 - unsigned int shift, lpid; 2a98: 00 76 6d 5f rlwnm r13,r27,r14,24,0 + for_each_nest_rmap_safe(cursor, entry, &rmap) { 2a9c: 70 61 67 65 oris r7,r11,24944 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); + if (!gp) 2aa0: 5f 70 72 6f xoris r18,r27,28767 2aa4: 74 00 74 69 xori r20,r11,116 + kfree(cursor); 2aa8: 6d 65 73 70 andi. r19,r3,25965 - for_each_nest_rmap_safe(cursor, entry, &rmap) { 2aac: 65 63 36 34 addic. r1,r22,25445 - if (!gp) 2ab0: 00 50 49 44 .long 0x44495000 + for_each_nest_rmap_safe(cursor, entry, &rmap) { 2ab4: 54 59 50 45 .long 0x45505954 - kfree(cursor); 2ab8: 5f 53 49 44 .long 0x4449535f 2abc: 00 62 70 66 oris r16,r19,25088 2ac0: 5f 63 74 78 .long 0x7874635f - for_each_nest_rmap_safe(cursor, entry, &rmap) { 2ac4: 00 64 5f 70 andi. r31,r2,25600 + lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; 2ac8: 72 75 6e 65 oris r14,r11,30066 + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2acc: 00 70 72 69 xori r18,r11,28672 + unsigned int shift, lpid; 2ad0: 6e 74 65 64 oris r5,r3,29806 + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2ad4: 00 72 65 73 andi. r5,r27,29184 - lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; 2ad8: 75 6d 65 5f rlwnm. r5,r27,r13,21,26 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2adc: 6e 6f 69 72 andi. r9,r19,28526 - unsigned int shift, lpid; + if (!gp) 2ae0: 71 00 70 61 ori r16,r11,113 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2ae4: 67 65 00 6d xoris r0,r8,25959 + for_each_nest_rmap_safe(cursor, entry, &rmap) { 2ae8: 75 74 65 78 .long 0x78657475 2aec: 5f 75 6e 6c xoris r14,r3,30047 - if (!gp) + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2af0: 6f 63 6b 00 .long 0x6b636f 2af4: 77 61 74 63 ori r20,r27,24951 - for_each_nest_rmap_safe(cursor, entry, &rmap) { 2af8: 68 64 6f 67 oris r15,r27,25704 2afc: 5f 65 6e 61 ori r14,r11,25951 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); + if (!gp) 2b00: 62 6c 65 64 oris r5,r3,27746 2b04: 00 74 72 63 ori r18,r27,29696 + gpa = n_rmap & RMAP_NESTED_GPA_MASK; 2b08: 5f 68 6f 6c xoris r15,r3,26719 + pte = __find_linux_pte(gp->shadow_pgtable, ea, NULL, hshift); 2b0c: 64 6f 75 74 andis. r21,r3,28516 - if (!gp) 2b10: 5f 6c 69 73 andi. r9,r27,27743 2b14: 74 00 67 65 oris r7,r11,116 gpa = n_rmap & RMAP_NESTED_GPA_MASK; @@ -50274,22 +50283,20 @@ static void kvmhv_emulate_tlbie_lpid(str 2b1c: 6f 64 65 5f rlwnm. r5,r27,r12,17,23 2b20: 75 73 61 67 oris r1,r27,29557 2b24: 65 00 64 65 oris r4,r11,101 - gpa = n_rmap & RMAP_NESTED_GPA_MASK; + if (ptep && pte_present(*ptep) && ((pte_val(*ptep) & mask) == hpa)) 2b28: 76 69 63 65 oris r3,r11,26998 - pte = __find_linux_pte(gp->shadow_pgtable, ea, NULL, hshift); 2b2c: 5f 6e 6f 64 oris r15,r3,28255 2b30: 65 00 6e 6f xoris r14,r27,101 + return (pte_raw(pte) & cpu_to_be64(_PAGE_PRESENT | _PAGE_PTE)) == 2b34: 72 6d 61 6c xoris r1,r3,28018 - if (ptep && pte_present(*ptep) && ((pte_val(*ptep) & mask) == hpa)) + if (pte_hw_valid(pte)) 2b38: 5f 70 72 69 xori r18,r11,28767 2b3c: 6f 00 64 65 oris r4,r11,111 + return (pte_raw(pte) & cpu_to_be64(_PAGE_INVALID | _PAGE_PTE)) == 2b40: 73 74 72 6f xoris r18,r27,29811 - return (pte_raw(pte) & cpu_to_be64(_PAGE_PRESENT | _PAGE_PTE)) == 2b44: 79 5f 69 6e xoris r9,r19,24441 - if (pte_hw_valid(pte)) 2b48: 6f 64 65 00 .long 0x65646f 2b4c: 72 65 6c 65 oris r12,r11,25970 - return (pte_raw(pte) & cpu_to_be64(_PAGE_INVALID | _PAGE_PTE)) == 2b50: 61 73 65 5f rlwnm. r5,r27,r14,13,16 2b54: 66 6f 6c 69 xori r12,r11,28518 2b58: 6f 00 6c 61 ori r12,r11,111 @@ -50301,24 +50308,24 @@ static void kvmhv_emulate_tlbie_lpid(str 2b70: 68 6f 73 74 andis. r19,r3,28520 2b74: 00 75 61 64 oris r1,r3,29952 2b78: 64 72 00 76 andis. r0,r16,29284 + kvmppc_unmap_pte(kvm, ptep, gpa, shift, NULL, gp->shadow_lpid); 2b7c: 76 61 6c 00 .long 0x6c6176 2b80: 74 6d 5f 74 andis. r31,r2,28020 2b84: 61 72 00 68 xori r0,r0,29281 2b88: 6f 73 74 5f rlwnm. r20,r27,r14,13,23 - kvmppc_unmap_pte(kvm, ptep, gpa, shift, NULL, gp->shadow_lpid); 2b8c: 70 69 64 00 .long 0x646970 2b90: 73 5f 77 62 ori r23,r19,24435 2b94: 5f 65 72 72 andi. r18,r19,25951 2b98: 00 73 68 6d xoris r8,r11,29440 2b9c: 5f 63 6c 69 xori r12,r11,25439 + kfree(cursor); 2ba0: 73 74 00 69 xori r0,r8,29811 2ba4: 73 5f 63 68 xori r3,r3,24435 + for (; gfn < end_gfn; gfn++) { 2ba8: 69 6c 64 5f rlwnm. r4,r27,r13,17,20 2bac: 73 75 62 72 andi. r2,r19,30067 - kfree(cursor); 2bb0: 65 61 70 65 oris r16,r11,24933 2bb4: 72 00 67 72 andi. r7,r19,114 - for (; gfn < end_gfn; gfn++) { 2bb8: 61 70 68 5f rlwnm. r8,r27,r14,1,16 2bbc: 67 65 74 5f rlwnm. r20,r27,r12,21,19 2bc0: 72 65 6d 6f xoris r13,r27,25970 @@ -50328,17 +50335,17 @@ static void kvmhv_emulate_tlbie_lpid(str 2bd0: 6d 6d 69 6f xoris r9,r27,28013 2bd4: 5f 69 73 5f rlwnm. r19,r27,r13,5,15 2bd8: 77 72 69 74 andis. r9,r3,29303 - 2bdc: 65 00 54 48 bl 542c40 - 2be0: 50 5f 4d 49 b 14d8b30 + 2bdc: 65 00 54 48 bl 542c40 + 2be0: 50 5f 4d 49 b 14d8b30 2be4: 47 52 41 54 rlwinm. r1,r2,10,9,3 2be8: 49 4f 4e 5f rlwnm. r14,r26,r9,29,4 - 2bec: 53 50 4c 49 bla 14c5050 + 2bec: 53 50 4c 49 bla 14c5050 2bf0: 54 00 64 5f rlwnm r4,r27,r0,1,10 +} 2bf4: 77 61 69 74 andis. r9,r3,24951 2bf8: 00 65 78 65 oris r24,r11,25856 2bfc: 63 5f 76 6d xoris r22,r11,24419 2c00: 00 6d 6d 75 andis. r13,r11,27904 -} 2c04: 5f 73 65 74 andis. r5,r3,29535 2c08: 75 70 5f 6c xoris r31,r2,28789 2c0c: 6f 63 6b 00 .long 0x6b636f @@ -50368,28 +50375,28 @@ static void kvmhv_emulate_tlbie_lpid(str 2c6c: 4c 4f 43 5f rlwnm r3,r26,r9,29,6 2c70: 52 45 43 4c .long 0x4c434552 2c74: 41 49 4d 00 .long 0x4d4941 +{ 2c78: 64 5f 69 6e xoris r9,r19,24420 2c7c: 61 6d 65 00 .long 0x656d61 2c80: 73 65 63 75 andis. r3,r11,25971 2c84: 72 65 5f 67 oris r31,r26,25970 -{ 2c88: 75 65 73 74 andis. r19,r3,25973 2c8c: 00 65 64 65 oris r4,r11,25856 2c90: 76 73 00 48 ba 7374 <.debug_str+0x7374> 2c94: 52 54 49 4d .long 0x4d495452 2c98: 45 52 5f 42 bcl 18,4*cr7+so,7edc <.debug_str+0x7edc> + ret = kvmhv_emulate_priv_tlbie(vcpu, kvmppc_get_gpr(vcpu, 4), 2c9c: 41 53 45 5f rlwnm. r5,r26,r10,13,0 2ca0: 4d 4f 4e 4f .long 0x4f4e4f4d - 2ca4: 54 4f 4e 49 b 14e7bf8 + struct kvm *kvm = vcpu->kvm; + 2ca4: 54 4f 4e 49 b 14e7bf8 + return r_val & 0xffffffff; 2ca8: 43 5f 53 4f .long 0x4f535f43 - ret = kvmhv_emulate_priv_tlbie(vcpu, kvmppc_get_gpr(vcpu, 4), + if ((!r) || (prs) || (ric == 3) || (is == 1) || 2cac: 46 54 00 6d xoris r0,r8,21574 2cb0: 61 73 6b 5f rlwnm. r11,r27,r14,13,16 - struct kvm *kvm = vcpu->kvm; 2cb4: 34 6b 00 69 xori r0,r8,27444 - return r_val & 0xffffffff; 2cb8: 5f 6d 61 70 andi. r1,r3,27999 - if ((!r) || (prs) || (ric == 3) || (is == 1) || 2cbc: 70 69 6e 67 oris r14,r27,26992 2cc0: 00 69 6e 62 ori r14,r19,26880 2cc4: 6c 6f 63 6b xori r3,r27,28524 @@ -50400,219 +50407,219 @@ static void kvmhv_emulate_tlbie_lpid(str 2cd8: 6e 74 00 69 xori r0,r8,29806 2cdc: 5f 72 74 5f rlwnm. r20,r27,r14,9,15 2ce0: 73 70 63 5f rlwnm. r3,r27,r14,1,25 + ((!is) && (ric == 1 || ric == 2))) 2ce4: 74 69 6d 65 oris r13,r11,26996 2ce8: 6c 69 6d 69 xori r13,r11,26988 2cec: 74 00 76 73 andi. r22,r27,116 + ret = kvmhv_emulate_tlbie_tlb_addr(vcpu, lpid, ap, epn); 2cf0: 78 31 36 76 andis. r22,r17,12664 - ((!is) && (ric == 1 || ric == 2))) 2cf4: 61 6c 00 72 andi. r0,r16,27745 2cf8: 73 65 71 5f rlwnm. r17,r27,r12,21,25 2cfc: 73 69 67 00 .long 0x676973 - ret = kvmhv_emulate_tlbie_tlb_addr(vcpu, lpid, ap, epn); 2d00: 4c 52 55 5f rlwnm r21,r26,r10,9,6 2d04: 49 4e 41 43 bcl- 26,gt,7b4c <.debug_str+0x7b4c> + if (ret) 2d08: 54 49 56 45 .long 0x45564954 2d0c: 5f 46 49 4c .long 0x4c49465f 2d10: 45 00 64 65 oris r4,r11,69 2d14: 76 5f 70 6d xoris r16,r11,24438 - if (ret) + return H_SUCCESS; 2d18: 5f 64 6f 6d xoris r15,r11,25695 2d1c: 61 69 6e 00 .long 0x6e6961 +} 2d20: 64 71 69 5f rlwnm r9,r27,r14,5,18 2d24: 6d 61 78 5f rlwnm. r24,r27,r12,5,22 - return H_SUCCESS; 2d28: 69 6e 6f 5f rlwnm. r15,r27,r13,25,20 2d2c: 6c 69 6d 69 xori r13,r11,26988 -} 2d30: 74 00 74 66 oris r20,r19,116 2d34: 69 61 72 00 .long 0x726169 - 2d38: 57 4f 52 4b bla ff524f54 + 2d38: 57 4f 52 4b bla ff524f54 2d3c: 49 4e 47 53 rlwimi. r7,r26,9,25,4 + switch (is) { 2d40: 45 54 5f 41 bdztl 4*cr7+so,8184 <.debug_str+0x8184> 2d44: 43 54 49 56 rlwinm. r9,r18,10,17,1 2d48: 41 54 45 5f rlwnm. r5,r26,r10,17,0 2d4c: 42 41 53 45 .long 0x45534142 - switch (is) { 2d50: 00 6b 76 6d xoris r22,r11,27392 2d54: 70 70 63 5f rlwnm r3,r27,r14,1,24 2d58: 68 6f 73 74 andis. r19,r3,28520 2d5c: 5f 73 74 61 ori r20,r11,29535 2d60: 74 65 00 6d xoris r0,r8,25972 + kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); 2d64: 69 67 72 61 ori r18,r11,26473 + idr_for_each_entry(&kvm->arch.kvm_nested_guest_idr, gp, lpid) { 2d68: 74 65 5f 6d xoris r31,r10,25972 2d6c: 6f 64 65 00 .long 0x65646f + int lpid; 2d70: 5f 5f 5f 5f rlwnm. r31,r26,r11,29,15 - kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); 2d74: 70 74 72 00 .long 0x727470 - idr_for_each_entry(&kvm->arch.kvm_nested_guest_idr, gp, lpid) { 2d78: 53 57 41 50 rlwimi. r1,r2,10,29,9 + idr_for_each_entry(&kvm->arch.kvm_nested_guest_idr, gp, lpid) { 2d7c: 5f 52 41 5f rlwnm. r1,r26,r10,9,15 - int lpid; 2d80: 48 49 54 00 .long 0x544948 2d84: 74 69 6d 65 oris r13,r11,26996 2d88: 72 5f 72 75 andis. r18,r11,24434 - idr_for_each_entry(&kvm->arch.kvm_nested_guest_idr, gp, lpid) { 2d8c: 6e 6e 69 6e xoris r9,r19,28270 + if (unlikely(ms->mmiowb_pending)) { 2d90: 67 00 70 6f xoris r16,r27,103 2d94: 77 65 72 6f xoris r18,r27,25975 + ms->nesting_count--; 2d98: 66 66 5f 6c xoris r31,r2,26214 2d9c: 61 74 65 00 .long 0x657461 - if (unlikely(ms->mmiowb_pending)) { 2da0: 66 74 72 61 ori r18,r11,29798 2da4: 63 65 5f 63 ori r31,r26,25955 - ms->nesting_count--; 2da8: 61 6c 6c 73 andi. r12,r27,27745 + kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); 2dac: 69 74 65 73 andi. r5,r27,29801 2db0: 00 64 5f 68 xori r31,r2,25600 2db4: 61 73 68 00 .long 0x687361 2db8: 64 6c 5f 62 ori r31,r18,27748 - kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); 2dbc: 77 00 6b 6f xoris r11,r27,119 2dc0: 62 6a 00 66 oris r0,r16,27234 + idr_for_each_entry(&kvm->arch.kvm_nested_guest_idr, gp, lpid) { 2dc4: 73 79 6e 63 ori r14,r27,31091 2dc8: 00 6d 74 64 oris r20,r3,27904 2dcc: 5f 69 6e 66 oris r14,r19,26975 2dd0: 6f 00 4d 43 bcla- 26,4*cr3+gt,6c <.debug_str+0x6c> - idr_for_each_entry(&kvm->arch.kvm_nested_guest_idr, gp, lpid) { 2dd4: 45 5f 45 52 rlwimi. r5,r18,11,29,2 2dd8: 41 54 5f 45 .long 0x455f5441 2ddc: 52 52 4f 52 rlwimi r15,r18,10,9,9 2de0: 5f 50 41 52 rlwimi. r1,r18,10,1,15 + if (unlikely(ms->mmiowb_pending)) { 2de4: 49 54 59 00 .long 0x595449 + struct mmiowb_state *ms = __mmiowb_state(); 2de8: 68 64 65 63 ori r5,r27,25704 2dec: 5f 65 78 70 andi. r24,r3,25951 - 2df0: 00 4e 52 5f rlwnm r18,r26,r9,24,0 if (unlikely(ms->mmiowb_pending)) { + 2df0: 00 4e 52 5f rlwnm r18,r26,r9,24,0 2df4: 49 53 4f 4c .long 0x4c4f5349 - struct mmiowb_state *ms = __mmiowb_state(); + ms->nesting_count--; 2df8: 41 54 45 44 .long 0x44455441 2dfc: 5f 41 4e 4f .long 0x4f4e415f - if (unlikely(ms->mmiowb_pending)) { 2e00: 4e 00 6b 65 oris r11,r11,78 2e04: 72 6e 65 6c xoris r5,r3,28274 - ms->nesting_count--; 2e08: 5f 73 69 67 oris r9,r27,29535 2e0c: 69 6e 66 6f xoris r6,r27,28265 + if (ret) 2e10: 00 75 70 72 andi. r16,r19,29952 2e14: 6f 62 65 73 andi. r5,r27,25199 2e18: 5f 73 74 61 ori r20,r11,29535 2e1c: 74 65 00 46 .long 0x46006574 - if (ret) + gp = kvmhv_get_nested(kvm, lpid, false); 2e20: 41 55 4c 54 rlwinm. r12,r2,10,21,0 2e24: 5f 46 4c 41 bdztla 4*cr3+lt,465c <.debug_str+0x465c> 2e28: 47 5f 52 45 .long 0x45525f47 2e2c: 4d 4f 54 45 .long 0x45544f4d - gp = kvmhv_get_nested(kvm, lpid, false); + if (gp) { 2e30: 00 6b 65 72 andi. r5,r19,27392 2e34: 6e 65 6c 5f rlwnm r12,r27,r12,21,23 + kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); 2e38: 73 69 67 69 xori r7,r11,26995 2e3c: 6e 66 6f 5f rlwnm r15,r27,r12,25,23 - if (gp) { 2e40: 74 00 72 62 ori r18,r19,116 2e44: 5f 6e 6f 64 oris r15,r3,28255 - kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); + kvmhv_put_nested(gp); 2e48: 65 00 70 75 andis. r16,r11,101 2e4c: 73 68 61 62 ori r1,r19,26739 + if (ret) 2e50: 6c 65 5f 74 andis. r31,r2,25964 2e54: 61 73 6b 73 andi. r11,r27,29537 - kvmhv_put_nested(gp); 2e58: 00 70 6c 61 ori r12,r11,28672 2e5c: 74 66 6f 72 andi. r15,r19,26228 - if (ret) 2e60: 6d 5f 64 61 ori r4,r11,24429 2e64: 74 61 00 73 andi. r0,r24,24948 2e68: 69 67 68 61 ori r8,r11,26473 2e6c: 6e 64 00 69 xori r0,r8,25710 + ms->mmiowb_pending = 0; 2e70: 74 65 72 61 ori r18,r11,25972 2e74: 74 65 5f 73 andi. r31,r26,25972 + mmiowb(); 2e78: 68 61 72 65 oris r18,r11,24936 2e7c: 64 00 69 73 andi. r9,r27,100 - ms->mmiowb_pending = 0; 2e80: 5f 76 69 73 andi. r9,r27,30303 + return H_PARAMETER; 2e84: 69 62 6c 65 oris r12,r11,25193 - mmiowb(); 2e88: 00 73 69 67 oris r9,r27,29440 2e8c: 6e 61 6c 00 .long 0x6c616e + ms->mmiowb_pending = 0; 2e90: 72 65 6c 65 oris r12,r11,25970 - return H_PARAMETER; + mmiowb(); 2e94: 61 73 65 64 oris r5,r3,29537 2e98: 00 74 68 72 andi. r8,r19,29696 2e9c: 65 61 64 5f rlwnm. r4,r27,r12,5,18 - ms->mmiowb_pending = 0; 2ea0: 66 6e 00 64 oris r0,r0,28262 - mmiowb(); 2ea4: 65 70 5f 6d xoris r31,r10,28773 2ea8: 61 70 00 61 ori r0,r8,28769 2eac: 6c 6c 6f 63 ori r15,r27,27756 2eb0: 5f 64 71 75 andis. r17,r11,25695 +} 2eb4: 6f 74 00 70 andi. r0,r0,29807 2eb8: 6d 5f 6d 65 oris r13,r11,24429 2ebc: 73 73 61 67 oris r1,r27,29555 2ec0: 65 00 6d 61 ori r13,r11,101 -} + return H_PARAMETER; 2ec4: 79 5f 73 70 andi. r19,r3,24441 2ec8: 6c 69 74 00 .long 0x74696c 2ecc: 6d 65 6d 5f rlwnm. r13,r27,r12,21,22 2ed0: 63 67 72 6f xoris r18,r27,26467 - return H_PARAMETER; 2ed4: 75 70 00 6c xoris r0,r0,28789 +{ 2ed8: 61 73 74 5f rlwnm. r20,r27,r14,13,16 2edc: 75 70 64 61 ori r4,r11,28789 2ee0: 74 65 5f 74 andis. r31,r2,25972 2ee4: 69 6d 65 00 .long 0x656d69 -{ 2ee8: 73 6c 62 5f rlwnm. r2,r27,r13,17,25 2eec: 61 64 64 72 andi. r4,r19,25697 2ef0: 5f 6c 69 6d xoris r9,r11,27743 + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2ef4: 69 74 00 68 xori r0,r0,29801 +{ 2ef8: 6f 73 74 5f rlwnm. r20,r27,r14,13,23 2efc: 70 6d 63 00 .long 0x636d70 2f00: 72 6f 62 75 andis. r2,r11,28530 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2f04: 73 74 5f 6c xoris r31,r2,29811 -{ 2f08: 69 73 74 5f rlwnm. r20,r27,r14,13,20 2f0c: 68 65 61 64 oris r1,r3,25960 2f10: 00 4e 52 5f rlwnm r18,r26,r9,24,0 2f14: 41 4e 4f 4e .long 0x4e4f4e41 + if (!__find_nested(vcpu->kvm, lpid)) 2f18: 5f 4d 41 50 rlwimi. r1,r2,9,21,15 + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2f1c: 50 45 44 00 .long 0x444550 +{ 2f20: 63 6f 75 6e xoris r21,r19,28515 2f24: 74 00 6c 65 oris r12,r11,116 - if (!__find_nested(vcpu->kvm, lpid)) 2f28: 76 65 6c 00 .long 0x6c6576 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2f2c: 70 61 72 61 ori r18,r11,24944 -{ + return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 2f30: 6d 73 00 73 andi. r0,r24,29549 2f34: 79 73 63 61 ori r3,r11,29561 2f38: 6c 6c 5f 65 oris r31,r10,27756 2f3c: 78 69 74 73 andi. r20,r27,27000 - return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); + if (!__find_nested(vcpu->kvm, lpid)) 2f40: 00 73 5f 75 andis. r31,r10,29440 2f44: 73 65 72 5f rlwnm. r18,r27,r12,21,25 + if ((type & H_RPTI_TYPE_NESTED_ALL) == H_RPTI_TYPE_NESTED_ALL) 2f48: 6e 73 00 73 andi. r0,r24,29550 2f4c: 72 63 76 65 oris r22,r11,25458 - if (!__find_nested(vcpu->kvm, lpid)) 2f50: 72 73 69 6f xoris r9,r27,29554 + if (start == 0 && end == -1) 2f54: 6e 00 64 63 ori r4,r27,110 - if ((type & H_RPTI_TYPE_NESTED_ALL) == H_RPTI_TYPE_NESTED_ALL) 2f58: 6f 6f 6b 69 xori r11,r11,28527 2f5c: 65 00 69 5f rlwnm. r9,r27,r0,1,18 2f60: 64 61 74 61 ori r20,r11,24932 - if (start == 0 && end == -1) + if (type & H_RPTI_TYPE_TLB) 2f64: 00 75 6c 6f xoris r12,r27,29952 2f68: 6e 67 00 73 andi. r0,r24,26478 +} 2f6c: 5f 66 73 6e xoris r19,r19,26207 + return do_tlb_invalidate_nested_all(vcpu, lpid, RIC_FLUSH_ALL); 2f70: 6f 74 69 66 oris r9,r19,29807 - if (type & H_RPTI_TYPE_TLB) +} 2f74: 79 5f 6d 61 ori r13,r11,24441 2f78: 72 6b 73 00 .long 0x736b72 -} 2f7c: 6b 76 6d 70 andi. r13,r3,30315 - return do_tlb_invalidate_nested_all(vcpu, lpid, RIC_FLUSH_ALL); 2f80: 70 63 5f 76 andis. r31,r18,25456 -} 2f84: 70 61 00 68 xori r0,r0,24944 2f88: 6c 69 73 74 andis. r19,r3,26988 2f8c: 5f 68 65 61 ori r5,r11,26719 @@ -50624,79 +50631,79 @@ static void kvmhv_emulate_tlbie_lpid(str 2fa4: 63 72 00 71 andi. r0,r8,29283 2fa8: 66 5f 6f 77 andis. r15,r27,24422 2fac: 6e 65 72 00 .long 0x72656e + int ret = H_P4; 2fb0: 67 72 61 70 andi. r1,r3,29287 + page_size = 1UL << def->shift; 2fb4: 68 5f 70 61 ori r16,r11,24424 2fb8: 72 73 65 5f rlwnm r5,r27,r14,13,25 2fbc: 65 6e 64 70 andi. r4,r3,28261 - int ret = H_P4; + nr_pages = (end - start) >> def->shift; 2fc0: 6f 69 6e 74 andis. r14,r3,26991 - page_size = 1UL << def->shift; 2fc4: 00 44 51 53 rlwimi r17,r26,8,16,0 2fc8: 54 5f 53 59 rlmi r19,r10,r11,29,10 2fcc: 4e 43 53 00 .long 0x53434e - nr_pages = (end - start) >> def->shift; 2fd0: 73 74 61 63 ori r1,r27,29811 + if (!(pg_sizes & def->h_rpt_pgsize)) 2fd4: 6b 5f 76 6d xoris r22,r11,24427 2fd8: 00 75 73 61 ori r19,r11,29952 2fdc: 67 65 5f 63 ori r31,r26,25959 + for (psize = 0; psize < MMU_PAGE_COUNT; psize++) { 2fe0: 6f 75 6e 74 andis. r14,r3,30063 - if (!(pg_sizes & def->h_rpt_pgsize)) 2fe4: 00 5f 66 6f xoris r6,r27,24320 2fe8: 6c 69 6f 5f rlwnm r15,r27,r13,5,22 + return ret; 2fec: 6e 72 5f 70 andi. r31,r2,29294 - for (psize = 0; psize < MMU_PAGE_COUNT; psize++) { 2ff0: 61 67 65 73 andi. r5,r27,26465 2ff4: 00 68 61 72 andi. r1,r19,26624 2ff8: 64 69 72 71 andi. r18,r11,26980 - return ret; 2ffc: 5f 74 69 6d xoris r9,r11,29791 + flush_lpid = nr_pages > tlb_range_flush_page_ceiling; 3000: 65 00 73 68 xori r19,r3,101 + nr_pages = (end - start) >> def->shift; 3004: 6f 77 00 75 andis. r0,r8,30575 + flush_lpid = nr_pages > tlb_range_flush_page_ceiling; 3008: 6e 73 69 67 oris r9,r27,29550 + nr_pages = (end - start) >> def->shift; 300c: 6e 65 64 20 subfic r3,r4,25966 - flush_lpid = nr_pages > tlb_range_flush_page_ceiling; + if (flush_lpid) 3010: 63 68 61 72 andi. r1,r19,26723 - nr_pages = (end - start) >> def->shift; 3014: 00 75 6d 6f xoris r13,r27,29952 - flush_lpid = nr_pages > tlb_range_flush_page_ceiling; 3018: 75 6e 74 5f rlwnm. r20,r27,r13,25,26 - nr_pages = (end - start) >> def->shift; + page_size = 1UL << def->shift; 301c: 62 65 67 69 xori r7,r11,25954 - if (flush_lpid) 3020: 6e 00 61 66 oris r1,r19,110 3024: 66 69 6e 69 xori r14,r11,26982 3028: 74 79 5f 6e xoris r31,r18,31092 - page_size = 1UL << def->shift; 302c: 6f 74 69 66 oris r9,r19,29807 + } while (addr < end); 3030: 79 00 76 64 oris r22,r3,121 + ret = kvmhv_emulate_tlbie_tlb_addr(vcpu, lpid, ap, 3034: 73 6f 00 6d xoris r0,r8,28531 3038: 6d 61 70 5f rlwnm. r16,r27,r12,5,22 303c: 6c 65 67 61 ori r7,r11,25964 - } while (addr < end); 3040: 63 79 5f 62 ori r31,r18,31075 - ret = kvmhv_emulate_tlbie_tlb_addr(vcpu, lpid, ap, + addr += page_size; 3044: 61 73 65 00 .long 0x657361 + ret = kvmhv_emulate_tlbie_tlb_addr(vcpu, lpid, ap, 3048: 50 41 47 45 .long 0x45474150 + } while (addr < end); 304c: 4f 55 54 52 rlwimi. r20,r18,10,21,7 + if (ret) 3050: 55 4e 00 73 andi. r0,r24,20053 - addr += page_size; 3054: 5f 74 79 70 andi. r25,r3,29791 - ret = kvmhv_emulate_tlbie_tlb_addr(vcpu, lpid, ap, + return H_P4; 3058: 65 00 70 69 xori r16,r11,101 - } while (addr < end); 305c: 70 65 5f 69 xori r31,r10,25968 - if (ret) 3060: 6e 6f 64 65 oris r4,r11,28526 3064: 5f 69 6e 66 oris r14,r19,26975 - return H_P4; 3068: 6f 00 73 65 oris r19,r11,111 306c: 63 75 72 65 oris r18,r11,30051 3070: 62 69 74 73 andi. r20,r27,26978 +} 3074: 00 73 74 61 ori r20,r11,29440 3078: 74 65 5f 69 xori r31,r10,25972 307c: 6e 69 74 69 xori r20,r11,26990 3080: 61 6c 69 7a rldicl. r9,r19,13,49 -} 3084: 65 64 00 75 andis. r0,r8,25701 3088: 72 69 6e 67 oris r14,r27,26994 308c: 5f 63 6d 64 oris r13,r3,25439 @@ -50704,61 +50711,61 @@ static void kvmhv_emulate_tlbie_lpid(str 3094: 6f 6c 6c 00 .long 0x6c6c6f 3098: 75 65 76 65 oris r22,r11,25973 309c: 6e 74 5f 6f xoris r31,r26,29806 + gp = kvmhv_get_nested(kvm, lpid, false); 30a0: 70 73 00 73 andi. r0,r24,29552 30a4: 61 73 5f 73 andi. r31,r26,29537 30a8: 73 5f 73 70 andi. r19,r3,24435 30ac: 00 4e 52 5f rlwnm r18,r26,r9,24,0 - gp = kvmhv_get_nested(kvm, lpid, false); + if (gp) { 30b0: 5a 4f 4e 45 .long 0x454e4f5a 30b4: 5f 49 4e 41 bdztla 4*cr3+eq,495c <.debug_str+0x495c> + kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); 30b8: 43 54 49 56 rlwinm. r9,r18,10,17,1 30bc: 45 5f 41 4e addpcis r18,24387 - if (gp) { 30c0: 4f 4e 00 6e xoris r0,r16,20047 30c4: 72 5f 64 69 xori r4,r11,24434 - kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); + kvmhv_put_nested(gp); 30c8: 72 74 69 65 oris r9,r11,29810 30cc: 64 00 6e 75 andis. r14,r11,100 30d0: 6d 5f 6b 70 andi. r11,r3,24429 30d4: 72 6f 62 65 oris r2,r11,28530 - kvmhv_put_nested(gp); 30d8: 5f 62 6c 61 ori r12,r11,25183 30dc: 63 6b 6c 69 xori r12,r11,27491 + gp = kvmhv_get_nested(kvm, lpid, false); 30e0: 73 74 00 4e .long 0x4e007473 30e4: 52 5f 46 52 rlwimi r6,r18,11,29,9 30e8: 45 45 5f 50 rlwimi. r31,r2,8,21,2 30ec: 41 47 45 53 rlwimi. r5,r26,8,29,0 - gp = kvmhv_get_nested(kvm, lpid, false); + if (gp) { 30f0: 00 52 53 45 .long 0x45535200 30f4: 51 5f 43 53 rlwimi. r3,r26,11,29,8 + kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); 30f8: 5f 46 4c 41 bdztla 4*cr3+lt,465c <.debug_str+0x465c> 30fc: 47 5f 4e 4f .long 0x4f4e5f47 - if (gp) { 3100: 5f 52 45 53 rlwimi. r5,r26,10,9,15 3104: 54 41 52 54 rlwinm r18,r2,8,5,10 - kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); + kvmhv_put_nested(gp); 3108: 5f 4f 4e 5f rlwnm. r14,r26,r9,29,15 310c: 50 52 45 45 .long 0x45455250 3110: 4d 50 54 5f rlwnm. r20,r26,r10,1,6 + gp = kvmhv_get_nested(kvm, lpid, false); 3114: 42 49 54 00 .long 0x544942 - kvmhv_put_nested(gp); 3118: 75 73 65 72 andi. r5,r19,29557 311c: 5f 70 74 5f rlwnm. r20,r27,r14,1,15 3120: 72 65 67 73 andi. r7,r27,25970 - gp = kvmhv_get_nested(kvm, lpid, false); + if (gp) { 3124: 00 70 6d 6d xoris r13,r11,28672 3128: 61 72 00 73 andi. r0,r24,29281 + kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); 312c: 5f 76 66 73 andi. r6,r27,30303 3130: 5f 72 65 6e xoris r5,r19,29279 - if (gp) { 3134: 61 6d 65 5f rlwnm. r5,r27,r13,21,16 3138: 6d 75 74 65 oris r20,r11,30061 - kvmhv_emulate_tlbie_lpid(vcpu, gp, ric); + kvmhv_put_nested(gp); 313c: 78 00 73 75 andis. r19,r11,120 3140: 73 70 65 6e xoris r5,r19,28787 3144: 64 5f 6c 61 ori r12,r11,24420 3148: 74 65 00 77 andis. r0,r24,25972 - kvmhv_put_nested(gp); 314c: 61 6b 65 75 andis. r5,r11,27489 3150: 70 00 63 69 xori r3,r11,112 3154: 64 5f 6c 6f xoris r12,r27,24420 @@ -50766,11 +50773,11 @@ static void kvmhv_emulate_tlbie_lpid(str 315c: 67 5f 6c 69 xori r12,r11,24423 3160: 73 74 00 6d xoris r0,r8,29811 3164: 63 65 5f 6e xoris r31,r18,25955 +{ 3168: 65 73 74 5f rlwnm. r20,r27,r14,13,18 316c: 63 6f 75 6e xoris r21,r19,28515 3170: 74 00 76 70 andi. r22,r3,116 3174: 61 5f 75 70 andi. r21,r3,24417 -{ 3178: 64 61 74 65 oris r20,r11,24932 317c: 5f 6c 6f 63 ori r15,r27,27743 3180: 6b 00 73 72 andi. r19,r19,107 @@ -50784,152 +50791,152 @@ static void kvmhv_emulate_tlbie_lpid(str 31a0: 64 78 00 69 xori r0,r8,30820 31a4: 73 5f 77 72 andi. r23,r19,24435 31a8: 69 74 65 00 .long 0x657469 + struct kvm_nested_guest *gp = vcpu->arch.nested; 31ac: 64 72 69 76 andis. r9,r19,29284 +{ 31b0: 65 72 5f 66 oris r31,r18,29285 31b4: 6c 61 67 73 andi. r7,r27,24940 31b8: 00 6b 76 6d xoris r22,r11,27392 - struct kvm_nested_guest *gp = vcpu->arch.nested; + mutex_lock(&gp->tlb_lock); 31bc: 5f 76 63 70 andi. r3,r3,30303 -{ 31c0: 75 5f 77 72 andi. r23,r19,24437 31c4: 69 74 65 5f rlwnm. r5,r27,r14,17,20 31c8: 67 75 65 73 andi. r5,r27,30055 - mutex_lock(&gp->tlb_lock); + struct rmap_nested *n_rmap; 31cc: 74 00 72 77 andis. r18,r27,116 + unsigned long dsisr = vcpu->arch.fault_dsisr; 31d0: 5f 73 65 6d xoris r5,r11,29535 + struct kvm *kvm = vcpu->kvm; 31d4: 61 70 68 6f xoris r8,r27,28769 + unsigned long ea = vcpu->arch.fault_dar; 31d8: 72 65 00 72 andi. r0,r16,25970 - struct rmap_nested *n_rmap; + struct kvmppc_pte gpte; 31dc: 65 73 75 6d xoris r21,r11,29541 - unsigned long dsisr = vcpu->arch.fault_dsisr; 31e0: 65 5f 65 61 ori r5,r11,24421 - struct kvm *kvm = vcpu->kvm; 31e4: 72 6c 79 00 .long 0x796c72 - unsigned long ea = vcpu->arch.fault_dar; 31e8: 6d 6e 74 5f rlwnm. r20,r27,r13,25,22 - struct kvmppc_pte gpte; 31ec: 73 62 00 6e xoris r0,r16,25203 31f0: 65 65 64 5f rlwnm. r4,r27,r12,21,18 31f4: 74 6c 62 5f rlwnm r2,r27,r13,17,26 31f8: 66 6c 75 73 andi. r21,r27,27750 + if (!gp->l1_gr_to_hr) { 31fc: 68 00 63 68 xori r3,r3,104 + struct rmap_nested *n_rmap; 3200: 69 6c 64 5f rlwnm. r4,r27,r13,17,20 + pte_t pte, *pte_p; 3204: 72 65 61 70 andi. r1,r3,25970 + unsigned int shift, l1_shift, level; 3208: 65 72 00 69 xori r0,r8,29285 - if (!gp->l1_gr_to_hr) { 320c: 6e 66 6f 00 .long 0x6f666e - struct rmap_nested *n_rmap; + if (!gp->l1_gr_to_hr) { 3210: 70 68 79 73 andi. r25,r27,26736 - pte_t pte, *pte_p; 3214: 69 63 61 6c xoris r1,r3,25449 - unsigned int shift, l1_shift, level; + n_gpa = vcpu->arch.fault_gpa & ~0xF000000000000FFFULL; 3218: 5f 6c 6f 63 ori r15,r27,27743 321c: 61 74 69 6f xoris r9,r27,29793 - if (!gp->l1_gr_to_hr) { + if (!(dsisr & DSISR_PRTABLE_FAULT)) 3220: 6e 00 64 6d xoris r4,r11,110 - 3224: 61 5f 72 61 ori r18,r11,24417 n_gpa = vcpu->arch.fault_gpa & ~0xF000000000000FFFULL; + 3224: 61 5f 72 61 ori r18,r11,24417 3228: 6e 67 65 5f rlwnm r5,r27,r12,29,23 - 322c: 6d 61 70 00 .long 0x70616d if (!(dsisr & DSISR_PRTABLE_FAULT)) + 322c: 6d 61 70 00 .long 0x70616d + n_gpa |= ea & 0xFFF; 3230: 6d 6d 75 5f rlwnm. r21,r27,r13,21,22 - n_gpa = vcpu->arch.fault_gpa & ~0xF000000000000FFFULL; 3234: 6e 6f 74 69 xori r20,r11,28526 + u64 fault_addr, flags = dsisr & DSISR_ISSTORE; 3238: 66 69 65 72 andi. r5,r19,26982 - if (!(dsisr & DSISR_PRTABLE_FAULT)) + ret = kvmppc_mmu_walk_radix_tree(vcpu, n_gpa, gpte_p, gp->l1_gr_to_hr, 323c: 5f 6f 70 73 andi. r16,r27,28511 - n_gpa |= ea & 0xFFF; 3240: 00 66 69 65 oris r9,r11,26112 3244: 6d 61 70 00 .long 0x70616d - u64 fault_addr, flags = dsisr & DSISR_ISSTORE; 3248: 77 61 69 74 andis. r9,r3,24951 - ret = kvmppc_mmu_walk_radix_tree(vcpu, n_gpa, gpte_p, gp->l1_gr_to_hr, + u64 fault_addr, flags = dsisr & DSISR_ISSTORE; 324c: 65 72 73 00 .long 0x737265 + ret = kvmppc_mmu_walk_radix_tree(vcpu, n_gpa, gpte_p, gp->l1_gr_to_hr, 3250: 70 63 69 5f rlwnm r9,r27,r12,13,24 3254: 63 6f 6e 74 andis. r14,r3,28515 + if (ret) { 3258: 72 6f 6c 6c xoris r12,r3,28530 - u64 fault_addr, flags = dsisr & DSISR_ISSTORE; 325c: 65 72 00 6d xoris r0,r8,29285 - ret = kvmppc_mmu_walk_radix_tree(vcpu, n_gpa, gpte_p, gp->l1_gr_to_hr, + if (ret == -EINVAL) { 3260: 70 69 63 00 .long 0x636970 3264: 73 65 73 73 andi. r19,r27,25971 - if (ret) { + } else if (ret == -ENOENT) { 3268: 69 6f 6e 69 xori r14,r11,28521 326c: 64 00 6e 62 ori r14,r19,100 - if (ret == -EINVAL) { + } else if (ret == -EFAULT) { 3270: 79 74 65 73 andi. r5,r27,29817 3274: 00 5f 73 69 xori r19,r11,24320 - } else if (ret == -ENOENT) { + if (ret == RESUME_HOST && 3278: 66 69 65 6c xoris r5,r3,26982 + ret = kvmhv_translate_addr_nested(vcpu, gp, n_gpa, dsisr, &gpte); 327c: 64 73 00 6d xoris r0,r8,29540 - } else if (ret == -EFAULT) { + if (ret == RESUME_HOST && 3280: 65 6d 63 67 oris r3,r27,28005 3284: 5f 69 6e 5f rlwnm. r14,r27,r13,5,15 - if (ret == RESUME_HOST && 3288: 6f 6f 6d 00 .long 0x6d6f6f - ret = kvmhv_translate_addr_nested(vcpu, gp, n_gpa, dsisr, &gpte); 328c: 64 5f 6d 61 ori r13,r11,24420 - if (ret == RESUME_HOST && 3290: 6e 61 67 65 oris r7,r11,24942 + bool writing = !!(dsisr & DSISR_ISSTORE); 3294: 00 68 61 6e xoris r1,r19,26624 + if (dsisr & DSISR_ISSTORE) { 3298: 64 6c 65 72 andi. r5,r19,27748 329c: 5f 64 61 74 andis. r1,r3,25695 32a0: 61 00 66 69 xori r6,r11,97 - bool writing = !!(dsisr & DSISR_ISSTORE); 32a4: 65 6d 61 70 andi. r1,r3,28005 - if (dsisr & DSISR_ISSTORE) { + unsigned long dsisr = vcpu->arch.fault_dsisr; 32a8: 5f 65 78 74 andis. r24,r3,25951 32ac: 65 6e 74 5f rlwnm. r20,r27,r13,25,18 + bool writing = !!(dsisr & DSISR_ISSTORE); 32b0: 69 6e 66 6f xoris r6,r27,28265 32b4: 00 70 61 64 oris r1,r3,28672 - unsigned long dsisr = vcpu->arch.fault_dsisr; + if (dsisr & DSISR_ISSTORE) { 32b8: 64 69 6e 67 oris r14,r27,26980 + if (!gpte_p->may_write) { 32bc: 31 00 70 61 ori r16,r11,49 - bool writing = !!(dsisr & DSISR_ISSTORE); 32c0: 64 64 69 6e xoris r9,r19,25700 32c4: 67 32 00 6c xoris r0,r0,12903 - if (dsisr & DSISR_ISSTORE) { + if (dsisr & DSISR_SET_RC) { 32c8: 6c 69 73 74 andis. r19,r3,26988 - if (!gpte_p->may_write) { 32cc: 00 70 72 6f xoris r18,r27,28672 32d0: 74 6f 5f 76 andis. r31,r18,28532 + l1_shift = gpte.page_shift; 32d4: 73 69 64 5f rlwnm. r4,r27,r13,5,25 - if (dsisr & DSISR_SET_RC) { 32d8: 66 69 72 73 andi. r18,r27,26982 + if (l1_shift < PAGE_SHIFT) { 32dc: 74 00 69 72 andi. r9,r19,116 32e0: 71 5f 73 72 andi. r19,r19,24433 - l1_shift = gpte.page_shift; + gpa = gpte.raddr; 32e4: 63 75 00 6c xoris r0,r0,30051 + memslot = gfn_to_memslot(kvm, gfn); 32e8: 6f 61 64 5f rlwnm. r4,r27,r12,5,23 - if (l1_shift < PAGE_SHIFT) { 32ec: 66 72 6f 6d xoris r15,r11,29286 32f0: 5f 65 61 64 oris r1,r3,25951 - gpa = gpte.raddr; 32f4: 64 72 00 65 oris r0,r8,29284 - memslot = gfn_to_memslot(kvm, gfn); + if (!memslot || (memslot->flags & KVM_MEMSLOT_INVALID)) { 32f8: 6c 65 6d 00 .long 0x6d656c 32fc: 6e 72 5f 72 andi. r31,r18,29294 3300: 65 74 72 69 xori r18,r11,29797 - 3304: 65 73 00 49 bl 100a668 - if (!memslot || (memslot->flags & KVM_MEMSLOT_INVALID)) { - 3308: 52 51 43 48 ba 435150 + 3304: 65 73 00 49 bl 100a668 + 3308: 52 51 43 48 ba 435150 330c: 49 50 5f 53 rlwimi. r31,r26,10,1,4 + if (memslot->flags & KVM_MEM_READONLY) { 3310: 54 41 54 45 .long 0x45544154 3314: 5f 50 45 4e .long 0x4e45505f + if (writing) { 3318: 44 49 4e 47 .long 0x474e4944 + kvm_ro = true; 331c: 00 73 69 67 oris r9,r27,29440 - if (memslot->flags & KVM_MEM_READONLY) { + mmu_seq = kvm->mmu_invalidate_seq; 3320: 76 61 6c 5f rlwnm r12,r27,r12,5,27 + smp_rmb(); 3324: 74 00 73 6c xoris r19,r3,116 - if (writing) { + pte = __pte(0); 3328: 62 5f 6e 72 andi. r14,r19,24418 - kvm_ro = true; 332c: 00 75 6e 64 oris r14,r3,29952 - mmu_seq = kvm->mmu_invalidate_seq; 3330: 6f 5f 6c 69 xori r12,r11,24431 - smp_rmb(); 3334: 73 74 00 69 xori r0,r8,29811 - pte = __pte(0); 3338: 72 71 5f 64 oris r31,r2,29042 333c: 61 74 61 00 .long 0x617461 3340: 64 69 72 74 andis. r18,r3,26980 @@ -50937,134 +50944,134 @@ static void kvmhv_emulate_tlbie_lpid(str 3348: 64 65 78 00 .long 0x786564 334c: 70 67 74 61 ori r20,r11,26480 3350: 62 6c 65 00 .long 0x656c62 + if (!shift) 3354: 6d 63 5f 65 oris r31,r10,25453 3358: 6d 65 72 67 oris r18,r27,25965 335c: 65 6e 63 79 rldicr. r3,r11,13,57 + shift = PAGE_SHIFT; 3360: 5f 73 70 00 .long 0x70735f - if (!shift) 3364: 6b 76 6d 70 andi. r13,r3,30315 + if (pte_p) 3368: 70 63 5f 73 andi. r31,r26,25456 336c: 6c 62 00 6d xoris r0,r8,25196 - shift = PAGE_SHIFT; + pte = *pte_p; 3370: 69 73 73 65 oris r19,r11,29545 3374: 64 00 69 6e xoris r9,r19,100 - if (pte_p) + if (unlikely(ms->mmiowb_pending)) { 3378: 6a 65 63 74 andis. r3,r3,25962 + struct mmiowb_state *ms = __mmiowb_state(); 337c: 5f 69 6e 74 andis. r14,r3,26975 - pte = *pte_p; + if (unlikely(ms->mmiowb_pending)) { 3380: 65 72 72 75 andis. r18,r11,29285 3384: 70 74 00 76 andis. r0,r16,29808 - if (unlikely(ms->mmiowb_pending)) { + ms->nesting_count--; 3388: 63 70 75 73 andi. r21,r27,28771 - struct mmiowb_state *ms = __mmiowb_state(); 338c: 5f 72 75 6e xoris r21,r19,29279 - if (unlikely(ms->mmiowb_pending)) { 3390: 6e 69 6e 67 oris r14,r27,26990 3394: 00 73 74 5f rlwnm r20,r27,r14,12,0 - ms->nesting_count--; 3398: 73 68 6e 64 oris r14,r3,26739 339c: 78 00 66 72 andi. r6,r19,120 + if (!pte_present(pte) || (writing && !(pte_val(pte) & _PAGE_WRITE))) { 33a0: 65 65 00 50 rlwimi. r0,r0,12,21,18 + return (pte_raw(pte) & cpu_to_be64(_PAGE_PRESENT | _PAGE_PTE)) == 33a4: 47 53 43 41 bdztla so,5344 <.debug_str+0x5344> + if (pte_hw_valid(pte)) 33a8: 4e 5f 4b 53 rlwimi r11,r26,11,29,7 33ac: 57 41 50 44 .long 0x44504157 - if (!pte_present(pte) || (writing && !(pte_val(pte) & _PAGE_WRITE))) { + return (pte_raw(pte) & cpu_to_be64(_PAGE_INVALID | _PAGE_PTE)) == 33b0: 00 68 6f 73 andi. r15,r27,26624 - return (pte_raw(pte) & cpu_to_be64(_PAGE_PRESENT | _PAGE_PTE)) == 33b4: 74 5f 64 73 andi. r4,r27,24436 - if (pte_hw_valid(pte)) 33b8: 63 72 00 43 bdnzla- 7260 <.debug_str+0x7260> + ret = kvmppc_book3s_instantiate_page(vcpu, gpa, memslot, 33bc: 4d 41 5f 41 bdztl 4*cr7+so,7508 <.debug_str+0x7508> - return (pte_raw(pte) & cpu_to_be64(_PAGE_INVALID | _PAGE_PTE)) == 33c0: 4c 4c 4f 43 bc- 26,4*cr3+so,800c <.debug_str+0x800c> 33c4: 5f 53 55 43 bcla- 26,4*cr5+gt,535c <.debug_str+0x535c> 33c8: 43 45 53 53 rlwimi. r19,r26,8,21,1 - ret = kvmppc_book3s_instantiate_page(vcpu, gpa, memslot, 33cc: 00 74 79 70 andi. r25,r3,29696 33d0: 65 00 6d 65 oris r13,r11,101 33d4: 6d 62 61 72 andi. r1,r19,25197 33d8: 72 69 65 72 andi. r5,r19,26994 33dc: 5f 73 74 61 ori r20,r11,29535 - 33e0: 74 65 00 49 b 1009954 - 33e4: 52 51 5f 48 ba 5f5150 + if (ret == -EAGAIN) + 33e0: 74 65 00 49 b 1009954 + ret = kvmppc_book3s_instantiate_page(vcpu, gpa, memslot, + 33e4: 52 51 5f 48 ba 5f5150 + if (ret == -EAGAIN) 33e8: 41 4e 44 4c .long 0x4c444e41 + else if (ret) 33ec: 45 44 00 73 andi. r0,r24,17477 - if (ret == -EAGAIN) 33f0: 68 61 64 6f xoris r4,r27,24936 - ret = kvmppc_book3s_instantiate_page(vcpu, gpa, memslot, + return PUD_SHIFT; 33f4: 77 5f 73 72 andi. r19,r19,24439 - if (ret == -EAGAIN) + shift = kvmppc_radix_level_to_shift(level); 33f8: 72 31 00 70 andi. r0,r0,12658 - else if (ret) + return PUD_SHIFT; 33fc: 61 67 65 5f rlwnm. r5,r27,r12,29,16 3400: 70 6f 6f 6c xoris r15,r3,28528 - return PUD_SHIFT; + switch (level) { 3404: 00 73 75 73 andi. r21,r27,29440 - shift = kvmppc_radix_level_to_shift(level); - 3408: 70 65 6e 64 oris r14,r3,25968 return PUD_SHIFT; + 3408: 70 65 6e 64 oris r14,r3,25968 340c: 00 69 6e 69 xori r14,r11,26880 3410: 74 00 66 69 xori r6,r11,116 switch (level) { 3414: 6c 65 73 5f rlwnm r19,r27,r12,21,22 - return PUD_SHIFT; 3418: 73 74 72 75 andis. r18,r11,29811 341c: 63 74 00 77 andis. r0,r24,29795 + return PUD_SHIFT; 3420: 72 69 74 65 oris r20,r11,26994 - switch (level) { + gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; 3424: 5f 69 74 65 oris r20,r11,26975 + return PUD_SHIFT; 3428: 72 00 6c 31 addic r11,r12,114 + gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; 342c: 64 5f 66 6c xoris r6,r3,24420 - return PUD_SHIFT; 3430: 75 73 68 5f rlwnm. r8,r27,r14,13,26 - gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; 3434: 73 69 7a 65 oris r26,r11,26995 - return PUD_SHIFT; + shift = kvmppc_radix_level_to_shift(level); 3438: 00 73 5f 64 oris r31,r2,29440 - gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; 343c: 69 6f 5f 64 oris r31,r2,28521 + flags |= DSISR_PROTFAULT; 3440: 6f 6e 65 5f rlwnm. r5,r27,r13,25,23 + goto forward_to_l1; 3444: 77 71 00 44 svcla 7261 - shift = kvmppc_radix_level_to_shift(level); 3448: 52 4f 50 5f rlwnm r16,r26,r9,29,9 344c: 53 4c 41 42 bcla 18,gt,4c50 <.debug_str+0x4c50> - flags |= DSISR_PROTFAULT; 3450: 00 5f 64 75 andis. r4,r11,24320 - goto forward_to_l1; 3454: 6d 6d 79 5f rlwnm. r25,r27,r13,21,22 + flags |= DSISR_PROTFAULT; 3458: 62 6e 64 00 .long 0x646e62 + if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { 345c: 73 61 73 5f rlwnm. r19,r27,r12,5,25 + vcpu->arch.fault_dsisr = flags; 3460: 73 73 5f 73 andi. r31,r26,29555 + if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { 3464: 69 7a 65 00 .long 0x657a69 - flags |= DSISR_PROTFAULT; 3468: 73 61 76 65 oris r22,r11,24947 - if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { + vcpu->arch.shregs.msr &= SRR1_MSR_BITS; 346c: 64 5f 78 69 xori r24,r11,24420 - vcpu->arch.fault_dsisr = flags; 3470: 72 72 00 66 oris r0,r16,29298 - if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { 3474: 69 6c 65 5f rlwnm. r5,r27,r13,17,20 3478: 73 79 73 74 andis. r19,r3,31091 - vcpu->arch.shregs.msr &= SRR1_MSR_BITS; + vcpu->arch.shregs.msr |= flags; 347c: 65 6d 5f 74 andis. r31,r2,28005 3480: 79 70 65 00 .long 0x657079 + if (ret == RESUME_HOST && 3484: 63 6f 6e 74 andis. r14,r3,28515 3488: 65 78 74 5f rlwnm. r20,r27,r15,1,18 - vcpu->arch.shregs.msr |= flags; 348c: 69 64 00 4d .long 0x4d006469 3490: 53 49 5f 53 rlwimi. r31,r26,9,5,9 - if (ret == RESUME_HOST && + return RESUME_HOST; 3494: 45 43 4f 4e addpcis r18,17247 + mutex_unlock(&gp->tlb_lock); 3498: 44 41 52 59 rlmi r18,r10,r8,5,2 349c: 5f 44 4f 4d .long 0x4d4f445f 34a0: 41 49 4e 00 .long 0x4e4941 - return RESUME_HOST; +} 34a4: 6d 74 69 6d xoris r9,r11,29805 - mutex_unlock(&gp->tlb_lock); 34a8: 65 00 76 6d xoris r22,r11,101 34ac: 5f 66 61 75 andis. r1,r11,26207 34b0: 6c 74 00 6f xoris r0,r24,29804 -} 34b4: 6f 6d 5f 73 andi. r31,r26,28015 34b8: 63 6f 72 65 oris r18,r11,28515 34bc: 5f 61 64 6a xori r4,r19,24927 @@ -51080,162 +51087,162 @@ static void kvmhv_emulate_tlbie_lpid(str 34e4: 00 78 69 63 ori r9,r27,30720 34e8: 73 00 6b 76 andis. r11,r19,115 34ec: 6d 70 70 63 ori r16,r27,28781 + kvmhv_update_ptbl_cache(gp); 34f0: 5f 6d 6d 75 andis. r13,r11,27999 34f4: 5f 77 61 6c xoris r1,r3,30559 + if (!gp->l1_gr_to_hr) 34f8: 6b 5f 72 61 ori r18,r11,24427 34fc: 64 69 78 5f rlwnm r24,r27,r13,5,18 - kvmhv_update_ptbl_cache(gp); 3500: 74 72 65 65 oris r5,r11,29300 3504: 00 69 6e 76 andis. r14,r19,26880 - if (!gp->l1_gr_to_hr) 3508: 5f 77 65 69 xori r5,r11,30559 350c: 67 68 74 00 .long 0x746867 3510: 64 69 72 74 andis. r18,r3,26980 + if (dsisr & (DSISR_PRTABLE_FAULT | DSISR_BADACCESS)) { 3514: 79 5f 69 6e xoris r9,r19,24441 3518: 6f 64 65 00 .long 0x65646f + return kvmppc_hv_emulate_mmio(vcpu, gpa, ea, writing); 351c: 73 72 63 75 andis. r3,r11,29299 3520: 5f 62 61 72 andi. r1,r19,25183 - if (dsisr & (DSISR_PRTABLE_FAULT | DSISR_BADACCESS)) { 3524: 72 69 65 72 andi. r5,r19,26994 3528: 5f 68 65 61 ori r5,r11,26719 - return kvmppc_hv_emulate_mmio(vcpu, gpa, ea, writing); 352c: 64 00 5f 5f rlwnm r31,r26,r0,1,18 3530: 61 69 5f 70 andi. r31,r2,26977 3534: 74 72 00 54 rlwinm r0,r0,14,9,26 3538: 48 50 5f 46 .long 0x465f5048 353c: 49 4c 45 5f rlwnm. r5,r26,r9,17,4 3540: 46 41 4c 4c .long 0x4c4c4146 - 3544: 42 41 43 4b ba ff434140 + 3544: 42 41 43 4b ba ff434140 3548: 00 70 63 70 andi. r3,r3,28672 354c: 75 5f 66 63 ori r6,r27,24437 3550: 00 74 6f 63 ori r15,r27,29696 3554: 5f 73 65 63 ori r5,r27,29535 3558: 74 69 6f 6e xoris r15,r19,26996 355c: 00 73 74 5f rlwnm r20,r27,r14,12,0 + } else if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { 3560: 73 69 7a 65 oris r26,r11,26995 3564: 00 76 63 70 andi. r3,r3,30208 + if (!gpte_p->may_execute) { 3568: 75 5f 74 6f xoris r20,r27,24437 - 356c: 6b 65 6e 00 .long 0x6e656b } else if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { + 356c: 6b 65 6e 00 .long 0x6e656b + if (!gpte_p->may_read && !gpte_p->may_write) { 3570: 72 6d 74 70 andi. r20,r3,28018 3574: 00 6b 76 6d xoris r22,r11,27392 - if (!gpte_p->may_execute) { 3578: 5f 72 6f 00 .long 0x6f725f - } else if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { 357c: 65 6e 61 62 ori r1,r19,28261 - if (!gpte_p->may_read && !gpte_p->may_write) { + if (dsisr & DSISR_SET_RC) { 3580: 6c 65 5f 64 oris r31,r2,25964 3584: 61 77 72 31 addic r11,r18,30561 + ret = kvmhv_handle_nested_set_rc(vcpu, gp, n_gpa, gpte, dsisr); 3588: 00 69 74 6c xoris r20,r3,26880 358c: 62 5f 76 69 xori r22,r11,24418 - if (dsisr & DSISR_SET_RC) { + pgflags = _PAGE_ACCESSED; 3590: 72 74 5f 6d xoris r31,r10,29810 3594: 69 73 73 5f rlwnm. r19,r27,r14,13,20 - ret = kvmhv_handle_nested_set_rc(vcpu, gp, n_gpa, gpte, dsisr); + if (pgflags & ~gpte.rc) 3598: 65 78 69 74 andis. r9,r3,30821 359c: 73 00 61 73 andi. r1,r27,115 - pgflags = _PAGE_ACCESSED; 35a0: 5f 69 64 00 .long 0x64695f + ret = kvmppc_hv_handle_set_rc(kvm, false, writing, 35a4: 69 73 69 5f rlwnm. r9,r27,r14,13,20 - if (pgflags & ~gpte.rc) 35a8: 65 78 69 74 andis. r9,r3,30821 35ac: 73 00 6e 75 andis. r14,r11,115 35b0: 6d 5f 74 72 andi. r20,r19,24429 - ret = kvmppc_hv_handle_set_rc(kvm, false, writing, 35b4: 61 63 65 70 andi. r5,r3,25441 35b8: 6f 69 6e 74 andis. r14,r3,26991 35bc: 73 00 71 75 andis. r17,r11,115 35c0: 65 75 65 5f rlwnm. r5,r27,r14,21,18 35c4: 69 6e 74 72 andi. r20,r19,28265 35c8: 00 72 6d 76 andis. r13,r19,29184 + if (!ret) { 35cc: 5f 65 6e 74 andis. r14,r3,25951 35d0: 72 79 00 65 oris r0,r8,31090 + ret = kvmppc_hv_handle_set_rc(kvm, true, writing, 35d4: 78 69 74 5f rlwnm r20,r27,r13,5,28 35d8: 63 6f 64 65 oris r4,r11,28515 - if (!ret) { 35dc: 00 65 78 65 oris r24,r11,25856 35e0: 63 5f 73 74 andis. r19,r3,24419 - ret = kvmppc_hv_handle_set_rc(kvm, true, writing, 35e4: 61 72 74 00 .long 0x747261 35e8: 63 6f 6e 73 andi. r14,r27,28515 35ec: 75 6d 65 72 andi. r5,r19,28021 + if (!ret) 35f0: 73 00 6b 65 oris r11,r11,115 35f4: 72 6e 66 73 andi. r6,r27,28274 + ret = -EINVAL; 35f8: 5f 65 6c 65 oris r12,r11,25951 + if (unlikely(ms->mmiowb_pending)) { 35fc: 6d 5f 73 79 rldimi. r19,r11,11,61 - if (!ret) + struct mmiowb_state *ms = __mmiowb_state(); 3600: 6d 6c 69 6e xoris r9,r19,27757 + if (unlikely(ms->mmiowb_pending)) { 3604: 6b 00 6e 72 andi. r14,r19,107 - ret = -EINVAL; 3608: 5f 69 74 65 oris r20,r11,26975 - if (unlikely(ms->mmiowb_pending)) { + ms->nesting_count--; 360c: 6d 73 00 63 ori r0,r24,29549 - struct mmiowb_state *ms = __mmiowb_state(); 3610: 6c 6f 63 6b xori r3,r27,28524 - if (unlikely(ms->mmiowb_pending)) { 3614: 5f 77 61 73 andi. r1,r27,30559 3618: 5f 73 65 74 andis. r5,r3,29535 - ms->nesting_count--; 361c: 5f 73 65 71 andi. r5,r11,29535 3620: 00 50 47 53 rlwimi r7,r26,10,0,0 + if (ret) 3624: 43 41 4e 5f rlwnm. r14,r26,r8,5,1 3628: 4b 48 55 47 .long 0x4755484b + if (!(dsisr & (DSISR_BAD_FAULT_64S | DSISR_NOHPTE | 362c: 45 50 41 47 .long 0x47415045 3630: 45 44 00 66 oris r0,r16,17477 - if (ret) 3634: 5f 76 65 72 andi. r5,r19,30303 3638: 73 69 6f 6e xoris r15,r19,26995 - if (!(dsisr & (DSISR_BAD_FAULT_64S | DSISR_NOHPTE | 363c: 00 61 72 63 ori r18,r27,24832 + dsisr &= ~DSISR_SET_RC; 3640: 68 5f 75 70 andi. r21,r3,24424 3644: 72 6f 62 65 oris r2,r11,28530 3648: 5f 74 61 73 andi. r1,r27,29791 364c: 6b 00 73 72 andi. r19,r19,107 - dsisr &= ~DSISR_SET_RC; + kvmppc_core_queue_data_storage(vcpu, ea, dsisr); 3650: 63 75 5f 6e xoris r31,r18,30051 3654: 5f 6c 6f 63 ori r15,r27,27743 3658: 6b 5f 72 65 oris r18,r11,24427 365c: 74 72 69 65 oris r9,r11,29300 - kvmppc_core_queue_data_storage(vcpu, ea, dsisr); 3660: 73 00 69 5f rlwnm. r9,r27,r0,1,25 + return RESUME_GUEST; 3664: 66 6f 70 00 .long 0x706f66 3668: 73 61 5f 68 xori r31,r2,24947 366c: 61 6e 64 6c xoris r4,r3,28257 3670: 65 72 00 50 rlwimi. r0,r0,14,9,18 - return RESUME_GUEST; 3674: 47 52 45 55 rlwinm. r5,r10,10,9,3 3678: 53 45 00 68 xori r0,r0,17747 367c: 69 67 68 5f rlwnm. r8,r27,r12,29,20 + return RESUME_GUEST; 3680: 73 6c 69 63 ori r9,r27,27763 3684: 65 73 00 69 xori r0,r8,29541 3688: 6f 6d 6d 75 andis. r13,r11,28015 368c: 5f 67 72 6f xoris r18,r27,26463 - return RESUME_GUEST; + ret = kvmhv_handle_nested_set_rc(vcpu, gp, n_gpa, gpte, dsisr); 3690: 75 70 00 70 andi. r0,r0,28789 3694: 65 72 69 6f xoris r9,r27,29285 + pgflags |= _PAGE_DIRTY; 3698: 64 5f 63 6f xoris r3,r27,24420 369c: 6e 74 72 69 xori r18,r11,29806 - ret = kvmhv_handle_nested_set_rc(vcpu, gp, n_gpa, gpte, dsisr); + if (writing) 36a0: 62 00 69 67 oris r9,r27,98 36a4: 6e 6f 72 65 oris r18,r11,28526 - pgflags |= _PAGE_DIRTY; 36a8: 5f 65 76 65 oris r22,r11,25951 36ac: 6e 74 00 66 oris r0,r16,29806 - if (writing) + if (!gpte_p->may_execute) { 36b0: 73 67 69 64 oris r9,r3,26483 36b4: 00 73 77 61 ori r23,r11,29440 + vcpu->arch.fault_dsisr = flags; 36b8: 70 5f 72 77 andis. r18,r27,24432 + flags |= SRR1_ISI_N_G_OR_CIP; 36bc: 00 6e 65 65 oris r5,r11,28160 - if (!gpte_p->may_execute) { + vcpu->arch.fault_dsisr = flags; 36c0: 64 5f 70 61 ori r16,r11,24420 + if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { 36c4: 72 65 6e 74 andis. r14,r3,25970 - vcpu->arch.fault_dsisr = flags; 36c8: 5f 6c 6f 63 ori r15,r27,27743 - flags |= SRR1_ISI_N_G_OR_CIP; 36cc: 6b 00 69 73 andi. r9,r27,107 - vcpu->arch.fault_dsisr = flags; 36d0: 5f 70 72 65 oris r18,r11,28767 - if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { 36d4: 70 61 72 65 oris r18,r11,24944 36d8: 64 00 70 72 andi. r16,r19,100 36dc: 6f 63 5f 64 oris r31,r2,25455 @@ -51243,70 +51250,70 @@ static void kvmhv_emulate_tlbie_lpid(str 36e4: 6e 74 72 79 rldimi r18,r11,46,49 36e8: 00 6c 6f 77 andis. r15,r27,27648 36ec: 5f 73 6c 69 xori r12,r11,29535 + return kmalloc_trace( 36f0: 63 65 73 5f rlwnm. r19,r27,r12,21,17 + n_gpa &= ~((1UL << shift) - 1); 36f4: 70 73 69 7a rldcl r9,r19,r14,45 36f8: 65 00 76 6d xoris r22,r11,101 36fc: 5f 6f 70 73 andi. r16,r27,28511 - return kmalloc_trace( + level = kvmppc_radix_shift_to_level(shift); 3700: 00 69 6f 70 andi. r15,r3,26880 - n_gpa &= ~((1UL << shift) - 1); 3704: 6f 6c 6c 00 .long 0x6c6c6f + n_gpa &= ~((1UL << shift) - 1); 3708: 54 48 50 5f rlwnm r16,r26,r9,1,10 370c: 4d 49 47 52 rlwimi. r7,r18,9,5,6 - level = kvmppc_radix_shift_to_level(shift); 3710: 41 54 49 4f .long 0x4f495441 3714: 4e 5f 46 41 bdzta 4*cr1+eq,5f4c <.debug_str+0x5f4c> - n_gpa &= ~((1UL << shift) - 1); 3718: 49 4c 00 70 andi. r0,r0,19529 + if (!n_rmap) 371c: 61 67 65 73 andi. r5,r27,26465 3720: 69 7a 65 00 .long 0x657a69 + n_rmap = kzalloc(sizeof(*n_rmap), GFP_KERNEL); 3724: 65 72 61 74 andis. r1,r3,29285 + if (!n_rmap) 3728: 5f 65 72 72 andi. r18,r19,25951 - if (unlikely(!n_rmap)) + (((unsigned long) gp->l1_lpid) << RMAP_NESTED_LPID_SHIFT); 372c: 6f 72 00 73 andi. r0,r24,29295 + n_rmap->rmap = (n_gpa & RMAP_NESTED_GPA_MASK) | 3730: 5f 62 6c 6f xoris r12,r27,25183 - n_rmap = kzalloc(sizeof(*n_rmap), GFP_KERNEL); + ret = kvmppc_create_pte(kvm, gp->shadow_pgtable, pte, n_gpa, level, 3734: 63 6b 73 69 xori r19,r11,27491 - if (unlikely(!n_rmap)) 3738: 7a 65 00 76 andis. r0,r16,25978 - (((unsigned long) gp->l1_lpid) << RMAP_NESTED_LPID_SHIFT); 373c: 6d 5f 70 67 oris r16,r27,24429 - n_rmap->rmap = (n_gpa & RMAP_NESTED_GPA_MASK) | 3740: 6f 66 66 00 .long 0x66666f - ret = kvmppc_create_pte(kvm, gp->shadow_pgtable, pte, n_gpa, level, 3744: 6b 76 6d 5f rlwnm. r13,r27,r14,25,21 3748: 69 6f 5f 72 andi. r31,r18,28521 + n_rmap->rmap = (n_gpa & RMAP_NESTED_GPA_MASK) | 374c: 61 6e 67 65 oris r7,r11,28257 + (((unsigned long) gp->l1_lpid) << RMAP_NESTED_LPID_SHIFT); 3750: 00 6e 75 6d xoris r21,r11,28160 + n_rmap->rmap = (n_gpa & RMAP_NESTED_GPA_MASK) | 3754: 61 5f 77 6f xoris r23,r27,24417 3758: 72 6b 00 65 oris r0,r8,27506 - n_rmap->rmap = (n_gpa & RMAP_NESTED_GPA_MASK) | + rmapp = &memslot->arch.rmap[gfn - memslot->base_gfn]; 375c: 72 61 74 5f rlwnm r20,r27,r12,5,25 - (((unsigned long) gp->l1_lpid) << RMAP_NESTED_LPID_SHIFT); 3760: 65 72 72 6f xoris r18,r27,29285 - n_rmap->rmap = (n_gpa & RMAP_NESTED_GPA_MASK) | + ret = kvmppc_create_pte(kvm, gp->shadow_pgtable, pte, n_gpa, level, 3764: 72 5f 74 79 rldcr r20,r11,r11,61 3768: 70 65 00 5f rlwnm r0,r24,r12,21,24 - rmapp = &memslot->arch.rmap[gfn - memslot->base_gfn]; 376c: 63 61 6c 6c xoris r12,r3,24931 + rmapp = &memslot->arch.rmap[gfn - memslot->base_gfn]; 3770: 5f 61 64 64 oris r4,r3,24927 - ret = kvmppc_create_pte(kvm, gp->shadow_pgtable, pte, n_gpa, level, 3774: 72 00 46 57 rlwinm r6,r26,0,1,25 + ret = kvmppc_create_pte(kvm, gp->shadow_pgtable, pte, n_gpa, level, 3778: 5f 46 45 41 bdztla 4*cr1+gt,465c <.debug_str+0x465c> 377c: 54 55 52 45 .long 0x45525554 - rmapp = &memslot->arch.rmap[gfn - memslot->base_gfn]; 3780: 5f 4e 41 54 rlwinm. r1,r2,9,25,15 3784: 49 56 45 5f rlwnm. r5,r26,r10,25,4 - ret = kvmppc_create_pte(kvm, gp->shadow_pgtable, pte, n_gpa, level, + kfree(n_rmap); 3788: 41 4c 57 41 bdztl 4*cr5+so,83c8 <.debug_str+0x83c8> 378c: 59 53 00 6c xoris r0,r0,21337 3790: 6f 67 69 6e xoris r9,r19,26479 + if (ret == -EAGAIN) 3794: 75 69 64 00 .long 0x646975 - kfree(n_rmap); 3798: 63 68 65 63 ori r5,r27,26723 - 379c: 6b 00 54 48 bla 540068 - 37a0: 50 5f 46 49 b 14696f0 - if (ret == -EAGAIN) + 379c: 6b 00 54 48 bla 540068 + 37a0: 50 5f 46 49 b 14696f0 37a4: 4c 45 5f 4d .long 0x4d5f454c 37a8: 41 50 50 45 .long 0x45505041 37ac: 44 00 73 79 rldicr r19,r11,0,1 @@ -51315,131 +51322,131 @@ static void kvmhv_emulate_tlbie_lpid(str 37b8: 00 73 6c 62 ori r12,r19,29440 37bc: 76 00 74 72 andi. r20,r19,118 37c0: 61 70 00 65 oris r0,r8,28769 + kvmhv_invalidate_shadow_pte(vcpu, gp, n_gpa, NULL); 37c4: 78 70 69 72 andi. r9,r19,28792 37c8: 79 00 6f 70 andi. r15,r3,121 37cc: 74 69 6d 69 xori r13,r11,26996 37d0: 73 74 69 63 ori r9,r27,29811 - kvmhv_invalidate_shadow_pte(vcpu, gp, n_gpa, NULL); 37d4: 5f 73 70 69 xori r16,r11,29535 + return RESUME_GUEST; 37d8: 6e 5f 71 75 andis. r17,r11,24430 37dc: 65 75 65 00 .long 0x657565 + if (!pte_present(pte) || (writing && !(pte_val(pte) & _PAGE_WRITE))) { 37e0: 68 61 6c 74 andis. r12,r3,24936 + if (PMD_SHIFT < l1_shift) 37e4: 5f 70 6f 6c xoris r15,r3,28767 - return RESUME_GUEST; + gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; 37e8: 6c 5f 69 6e xoris r9,r19,24428 37ec: 76 61 6c 69 xori r12,r11,24950 - if (!pte_present(pte) || (writing && !(pte_val(pte) & _PAGE_WRITE))) { - 37f0: 64 00 64 65 oris r4,r11,100 if (PMD_SHIFT < l1_shift) + 37f0: 64 00 64 65 oris r4,r11,100 + if (shift == PUD_SHIFT) 37f4: 63 5f 65 78 rldicl. r5,r3,43,61 - gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; 37f8: 70 69 72 65 oris r18,r11,26992 + gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; 37fc: 73 00 41 4c .long 0x4c410073 if (PMD_SHIFT < l1_shift) 3800: 4c 4f 43 53 rlwimi r3,r26,9,29,6 - if (shift == PUD_SHIFT) + gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; 3804: 54 41 4c 4c .long 0x4c4c4154 + if (shift == PUD_SHIFT) 3808: 5f 4e 4f 52 rlwimi. r15,r18,9,25,15 - gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; + perm |= gpte.may_read ? 0UL : _PAGE_READ; 380c: 4d 41 4c 00 .long 0x4c414d - if (PMD_SHIFT < l1_shift) + perm |= (gpte.rc & _PAGE_ACCESSED) ? 0UL : _PAGE_ACCESSED; 3810: 5f 5f 6c 73 andi. r12,r27,24415 gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; 3814: 74 61 74 65 oris r20,r11,24948 - if (shift == PUD_SHIFT) + perm |= ((gpte.rc & _PAGE_DIRTY) && writing) ? 0UL : _PAGE_DIRTY; 3818: 00 70 69 64 oris r9,r3,28672 - perm |= gpte.may_read ? 0UL : _PAGE_READ; + gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; 381c: 5f 61 6c 6c xoris r12,r3,24927 - perm |= (gpte.rc & _PAGE_ACCESSED) ? 0UL : _PAGE_ACCESSED; + perm |= gpte.may_write ? 0UL : _PAGE_WRITE; 3820: 6f 63 61 74 andis. r1,r3,25455 - gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; + perm |= gpte.may_read ? 0UL : _PAGE_READ; 3824: 65 64 00 76 andis. r0,r16,25701 - perm |= ((gpte.rc & _PAGE_DIRTY) && writing) ? 0UL : _PAGE_DIRTY; + perm |= gpte.may_execute ? 0UL : _PAGE_EXEC; 3828: 73 63 72 00 .long 0x726373 - gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; + perm |= (gpte.rc & _PAGE_ACCESSED) ? 0UL : _PAGE_ACCESSED; 382c: 6c 6f 63 6b xori r3,r27,28524 - perm |= gpte.may_read ? 0UL : _PAGE_READ; + perm |= ((gpte.rc & _PAGE_DIRTY) && writing) ? 0UL : _PAGE_DIRTY; 3830: 5f 63 6f 75 andis. r15,r11,25439 perm |= gpte.may_write ? 0UL : _PAGE_WRITE; 3834: 6e 74 00 72 andi. r0,r16,29806 - perm |= gpte.may_execute ? 0UL : _PAGE_EXEC; + perm |= gpte.may_read ? 0UL : _PAGE_READ; 3838: 65 66 63 6f xoris r3,r27,26213 - perm |= (gpte.rc & _PAGE_ACCESSED) ? 0UL : _PAGE_ACCESSED; + perm |= gpte.may_execute ? 0UL : _PAGE_EXEC; 383c: 75 6e 74 5f rlwnm. r20,r27,r13,25,26 - perm |= ((gpte.rc & _PAGE_DIRTY) && writing) ? 0UL : _PAGE_DIRTY; + perm |= (gpte.rc & _PAGE_ACCESSED) ? 0UL : _PAGE_ACCESSED; 3840: 74 00 66 74 andis. r6,r3,116 - perm |= gpte.may_read ? 0UL : _PAGE_READ; - 3844: 72 61 63 65 oris r3,r11,24946 perm |= gpte.may_write ? 0UL : _PAGE_WRITE; - 3848: 5f 65 6e 61 ori r14,r11,25951 + 3844: 72 61 63 65 oris r3,r11,24946 perm |= gpte.may_execute ? 0UL : _PAGE_EXEC; - 384c: 62 6c 65 64 oris r5,r3,27746 + 3848: 5f 65 6e 61 ori r14,r11,25951 perm |= (gpte.rc & _PAGE_ACCESSED) ? 0UL : _PAGE_ACCESSED; + 384c: 62 6c 65 64 oris r5,r3,27746 + perm |= ((gpte.rc & _PAGE_DIRTY) && writing) ? 0UL : _PAGE_DIRTY; 3850: 00 70 6c 75 andis. r12,r11,28672 - perm |= gpte.may_write ? 0UL : _PAGE_WRITE; 3854: 67 00 63 68 xori r3,r3,103 - perm |= gpte.may_execute ? 0UL : _PAGE_EXEC; + pte = __pte(pte_val(pte) & ~perm); 3858: 69 6c 64 5f rlwnm. r4,r27,r13,17,20 - perm |= (gpte.rc & _PAGE_ACCESSED) ? 0UL : _PAGE_ACCESSED; + if (shift > l1_shift) { 385c: 63 6f 75 6e xoris r21,r19,28515 - perm |= ((gpte.rc & _PAGE_DIRTY) && writing) ? 0UL : _PAGE_DIRTY; + pte = __pte(pte_val(pte) & ~perm); 3860: 74 00 73 61 ori r19,r11,116 3864: 76 65 64 5f rlwnm r4,r27,r12,21,27 - pte = __pte(pte_val(pte) & ~perm); 3868: 61 75 78 76 andis. r24,r19,30049 - if (shift > l1_shift) { 386c: 00 62 6f 6f xoris r15,r27,25088 - pte = __pte(pte_val(pte) & ~perm); 3870: 6b 33 73 00 .long 0x73336b 3874: 73 5f 66 73 andi. r6,r27,24435 3878: 6e 6f 74 69 xori r20,r11,28526 387c: 66 79 5f 63 ori r31,r26,31078 3880: 6f 6e 6e 65 oris r14,r11,28271 3884: 63 74 6f 72 andi. r15,r19,29795 - 3888: 73 00 54 48 bla 540070 - 388c: 50 5f 4d 49 b 14d97dc + if (shift > l1_shift) { + 3888: 73 00 54 48 bla 540070 + level = kvmppc_radix_shift_to_level(shift); + 388c: 50 5f 4d 49 b 14d97dc + if (shift == PUD_SHIFT) 3890: 47 52 41 54 rlwinm. r1,r2,10,9,3 + pte = __pte(pte_val(pte) & ~perm); 3894: 49 4f 4e 5f rlwnm. r14,r26,r9,29,4 - if (shift > l1_shift) { + if (shift == PUD_SHIFT) 3898: 53 55 43 43 bcla- 26,so,5550 <.debug_str+0x5550> - level = kvmppc_radix_shift_to_level(shift); 389c: 45 53 53 00 .long 0x535345 - if (shift == PUD_SHIFT) 38a0: 6e 75 6d 5f rlwnm r13,r27,r14,21,23 - pte = __pte(pte_val(pte) & ~perm); 38a4: 62 75 67 73 andi. r7,r27,30050 - if (shift == PUD_SHIFT) + if (shift == PMD_SHIFT) 38a8: 00 71 66 5f rlwnm r6,r27,r14,4,0 38ac: 6f 70 73 00 .long 0x73706f 38b0: 5f 5f 76 6d xoris r22,r11,24415 + if (shift == PAGE_SHIFT) 38b4: 5f 66 6c 61 ori r12,r11,26207 - if (shift == PMD_SHIFT) 38b8: 67 73 00 64 oris r0,r0,29543 + WARN_ON_ONCE(1); 38bc: 62 63 72 00 .long 0x726362 + vcpu->arch.fault_gpa = fault_addr; 38c0: 6b 76 6d 70 andi. r13,r3,30315 - if (shift == PAGE_SHIFT) 38c4: 70 63 5f 72 andi. r31,r18,25456 + flags |= DSISR_PRTABLE_FAULT; 38c8: 61 64 69 78 rldicl. r9,r3,12,49 - WARN_ON_ONCE(1); - 38cc: 5f 73 68 69 xori r8,r11,29535 vcpu->arch.fault_gpa = fault_addr; + 38cc: 5f 73 68 69 xori r8,r11,29535 38d0: 66 74 5f 74 andis. r31,r2,29798 38d4: 6f 5f 6c 65 oris r12,r11,24431 - flags |= DSISR_PRTABLE_FAULT; 38d8: 76 65 6c 00 .long 0x6c6576 - vcpu->arch.fault_gpa = fault_addr; 38dc: 6b 76 6d 68 xori r13,r3,30315 + kvmppc_core_queue_data_storage(vcpu, ea, 38e0: 76 5f 73 65 oris r19,r11,24438 38e4: 74 5f 70 61 ori r16,r11,24436 38e8: 72 74 69 74 andis. r9,r3,29810 38ec: 69 6f 6e 5f rlwnm. r14,r27,r13,29,20 - kvmppc_core_queue_data_storage(vcpu, ea, 38f0: 74 61 62 6c xoris r2,r3,24948 + return RESUME_GUEST; 38f4: 65 00 6d 6f xoris r13,r27,101 38f8: 64 5f 6e 61 ori r14,r11,24420 38fc: 6d 65 00 70 andi. r0,r0,25965 3900: 72 6f 70 65 oris r16,r11,28530 - return RESUME_GUEST; 3904: 72 74 79 5f rlwnm r25,r27,r14,17,25 3908: 72 65 61 64 oris r1,r3,25970 390c: 5f 73 74 72 andi. r20,r19,29535 @@ -51447,40 +51454,40 @@ static void kvmhv_emulate_tlbie_lpid(str 3914: 61 72 72 61 ori r18,r11,29281 3918: 79 00 6d 6d xoris r13,r11,121 391c: 5f 63 69 64 oris r9,r3,25439 + flags |= DSISR_UNSUPP_MMU; 3920: 00 72 69 73 andi. r9,r27,29184 3924: 63 76 5f 63 ori r31,r26,30307 3928: 73 72 00 75 andis. r0,r8,29299 392c: 6e 6c 6f 63 ori r15,r27,27758 - flags |= DSISR_UNSUPP_MMU; + flags |= DSISR_NOHPTE; 3930: 6b 65 64 5f rlwnm. r4,r27,r12,21,21 3934: 69 6f 63 74 andis. r3,r3,28521 3938: 6c 00 72 73 andi. r18,r27,108 393c: 65 71 5f 6c xoris r31,r2,29029 - flags |= DSISR_NOHPTE; + if (PMD_SHIFT < l1_shift) 3940: 65 6e 00 77 andis. r0,r24,28261 3944: 61 6b 65 5f rlwnm. r5,r27,r13,13,16 3948: 64 65 70 74 andis. r16,r3,25956 394c: 68 00 70 6f xoris r16,r27,104 - if (PMD_SHIFT < l1_shift) + actual_shift = PMD_SHIFT; 3950: 6c 6c 66 64 oris r6,r3,27756 + mask = (1UL << shift) - (1UL << actual_shift); 3954: 00 6b 76 6d xoris r22,r11,27392 + level = kvmppc_radix_shift_to_level(shift); 3958: 5f 64 69 72 andi. r9,r19,25695 + mask = (1UL << shift) - (1UL << actual_shift); 395c: 74 79 5f 67 oris r31,r26,31092 - actual_shift = PMD_SHIFT; + if (shift == PUD_SHIFT) 3960: 66 6e 00 46 .long 0x46006e66 mask = (1UL << shift) - (1UL << actual_shift); 3964: 57 5f 46 45 .long 0x45465f57 - level = kvmppc_radix_shift_to_level(shift); + shift = actual_shift; 3968: 41 54 55 52 rlwimi. r21,r18,10,17,0 - mask = (1UL << shift) - (1UL << actual_shift); + pte = __pte(pte_val(pte) | (gpa & mask)); 396c: 45 5f 4e 41 bdztl 4*cr3+eq,98b0 <.debug_str+0x98b0> - if (shift == PUD_SHIFT) 3970: 54 49 56 45 .long 0x45564954 - mask = (1UL << shift) - (1UL << actual_shift); 3974: 5f 50 4f 53 rlwimi. r15,r26,10,1,15 - shift = actual_shift; 3978: 53 49 42 4c .long 0x4c424953 - pte = __pte(pte_val(pte) | (gpa & mask)); 397c: 45 00 6c 6c xoris r12,r3,69 3980: 69 73 74 5f rlwnm. r20,r27,r14,13,20 3984: 6e 6f 64 65 oris r4,r11,28526 @@ -51489,88 +51496,90 @@ static void kvmhv_emulate_tlbie_lpid(str 3990: 43 52 45 41 bdztla 4*cr1+gt,5240 <.debug_str+0x5240> 3994: 54 45 00 70 andi. r0,r0,17748 3998: 72 6f 6a 69 xori r10,r11,28530 + shift = actual_shift; 399c: 64 00 6d 65 oris r13,r11,100 + if (!pte_present(pte) || (writing && !(pte_val(pte) & _PAGE_WRITE))) { 39a0: 6d 63 67 5f rlwnm. r7,r27,r12,13,22 39a4: 61 77 61 72 andi. r1,r19,30561 39a8: 65 00 69 66 oris r9,r19,101 - shift = actual_shift; 39ac: 5f 66 6c 61 ori r12,r11,26207 - if (!pte_present(pte) || (writing && !(pte_val(pte) & _PAGE_WRITE))) { + ret = 0; 39b0: 67 00 73 74 andis. r19,r3,103 39b4: 61 74 65 5f rlwnm. r5,r27,r14,17,16 39b8: 75 73 65 5f rlwnm. r5,r27,r14,13,26 39bc: 61 63 63 65 oris r3,r11,25441 - ret = 0; + bool kvm_ro = false; 39c0: 73 73 6f 72 andi. r15,r19,29555 39c4: 73 00 66 6f xoris r6,r27,115 39c8: 72 77 61 72 andi. r1,r19,30578 39cc: 64 5f 74 6f xoris r20,r27,24420 - bool kvm_ro = false; 39d0: 5f 6c 31 00 .long 0x316c5f 39d4: 4d 43 45 5f rlwnm. r5,r26,r8,13,6 39d8: 53 4c 42 5f rlwnm. r2,r26,r9,17,9 + unsigned int actual_shift = PAGE_SHIFT; 39dc: 45 52 52 4f addpcis r26,21093 39e0: 52 5f 4d 55 rlwinm r13,r10,11,29,9 - 39e4: 4c 54 49 48 b 498e30 + 39e4: 4c 54 49 48 b 498e30 39e8: 49 54 00 64 oris r0,r0,21577 - unsigned int actual_shift = PAGE_SHIFT; 39ec: 65 76 5f 6e xoris r31,r18,30309 + switch (level) { 39f0: 61 6d 65 00 .long 0x656d61 39f4: 73 68 61 64 oris r1,r3,26739 39f8: 6f 77 5f 66 oris r31,r18,30575 39fc: 73 63 72 00 .long 0x726373 - switch (level) { + vcpu->arch.fault_dsisr = flags; 3a00: 68 76 5f 67 oris r31,r26,30312 3a04: 75 65 73 74 andis. r19,r3,25973 + if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { 3a08: 5f 73 74 61 ori r20,r11,29535 3a0c: 74 65 5f 73 andi. r31,r26,25972 - vcpu->arch.fault_dsisr = flags; 3a10: 69 7a 65 00 .long 0x657a69 3a14: 6e 75 6d 5f rlwnm r13,r27,r14,21,23 - if (vcpu->arch.trap == BOOK3S_INTERRUPT_H_INST_STORAGE) { 3a18: 66 74 72 61 ori r18,r11,29798 3a1c: 63 65 5f 63 ori r31,r26,25955 + ms->mmiowb_pending = 0; 3a20: 61 6c 6c 73 andi. r12,r27,27745 3a24: 69 74 65 73 andi. r5,r27,29801 + mmiowb(); 3a28: 00 63 74 72 andi. r20,r19,25344 3a2c: 5f 74 6d 00 .long 0x6d745f - ms->mmiowb_pending = 0; + return PMD_SHIFT; 3a30: 73 6f 66 74 andis. r6,r3,28531 + gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; 3a34: 69 72 71 5f rlwnm. r17,r27,r14,9,20 - mmiowb(); 3a38: 65 78 70 69 xori r16,r11,30821 3a3c: 72 65 73 5f rlwnm r19,r27,r12,21,25 return PMD_SHIFT; 3a40: 6e 65 78 74 andis. r24,r3,25966 - gfn = (gpa & ~((1UL << shift) - 1)) >> PAGE_SHIFT; 3a44: 00 48 54 4c .long 0x4c544800 3a48: 42 5f 42 55 rlwinm r2,r10,11,29,1 3a4c: 44 44 59 5f rlwnm r25,r26,r8,17,2 - return PMD_SHIFT; 3a50: 50 47 41 4c .long 0x4c414750 3a54: 4c 4f 43 5f rlwnm r3,r26,r9,29,6 3a58: 46 41 49 4c .long 0x4c494146 3a5c: 00 4d 4d 55 rlwinm r13,r10,9,20,0 + ms->mmiowb_pending = 0; 3a60: 5f 4e 4f 54 rlwinm. r15,r2,9,25,15 3a64: 49 46 59 5f rlwnm. r25,r26,r8,25,4 + mmiowb(); 3a68: 52 45 4c 45 .long 0x454c4552 3a6c: 41 53 45 00 .long 0x455341 - ms->mmiowb_pending = 0; 3a70: 70 74 62 6c xoris r2,r3,29808 3a74: 5f 61 64 64 oris r4,r3,24927 - mmiowb(); 3a78: 72 00 6b 76 andis. r11,r19,114 3a7c: 6d 68 76 5f rlwnm. r22,r27,r13,1,22 3a80: 75 70 64 61 ori r4,r11,28789 3a84: 74 65 5f 6e xoris r31,r18,25972 3a88: 65 73 74 5f rlwnm. r20,r27,r14,13,18 3a8c: 72 6d 61 70 andi. r1,r3,28018 +} 3a90: 5f 72 63 5f rlwnm. r3,r27,r14,9,15 3a94: 6c 69 73 74 andis. r19,r3,26988 + pr_err("KVM: L1 guest page shift (%d) less than our own (%d)\n", 3a98: 00 72 65 61 ori r5,r11,29184 3a9c: 64 6c 69 6e xoris r9,r19,27748 -} 3aa0: 6b 00 6d 69 xori r13,r11,107 + return -EINVAL; 3aa4: 67 72 61 74 andis. r1,r3,29287 pr_err("KVM: L1 guest page shift (%d) less than our own (%d)\n", 3aa8: 69 6f 6e 5f rlwnm. r14,r27,r13,29,20 @@ -51578,91 +51587,89 @@ static void kvmhv_emulate_tlbie_lpid(str 3ab0: 73 00 4d 43 bcla- 26,4*cr3+gt,70 <.debug_str+0x70> return -EINVAL; 3ab4: 45 5f 45 52 rlwimi. r5,r18,11,29,2 - pr_err("KVM: L1 guest page shift (%d) less than our own (%d)\n", 3ab8: 52 4f 52 5f rlwnm r18,r26,r9,29,9 3abc: 54 59 50 45 .long 0x45505954 - 3ac0: 5f 55 4e 4b bla ff4e555c - return -EINVAL; + 3ac0: 5f 55 4e 4b bla ff4e555c 3ac4: 4e 4f 57 4e .long 0x4e574f4e +{ 3ac8: 00 73 6c 62 ori r12,r19,29440 3acc: 5f 73 68 61 ori r8,r11,29535 3ad0: 64 6f 77 5f rlwnm r23,r27,r13,29,18 3ad4: 6d 61 78 00 .long 0x78616d -{ 3ad8: 5f 5f 6d 65 oris r13,r11,24415 3adc: 6d 73 6c 6f xoris r12,r27,29549 + int ret = lpid + 1; 3ae0: 74 73 00 5f rlwnm r0,r24,r14,13,26 +{ 3ae4: 70 69 6e 63 ori r14,r27,26992 3ae8: 6f 75 6e 74 andis. r14,r3,30063 3aec: 00 64 74 6c xoris r20,r3,25600 - int ret = lpid + 1; 3af0: 5f 69 6e 64 oris r14,r3,26975 -{ 3af4: 65 78 00 44 scv 67 3af8: 45 56 49 43 bcl- 26,4*cr2+gt,913c <.debug_str+0x913c> + int ret = lpid + 1; 3afc: 45 5f 50 41 bdztl 4*cr4+lt,9a40 <.debug_str+0x9a40> 3b00: 4e 45 4c 5f rlwnm r12,r26,r8,21,7 3b04: 42 4f 54 54 rlwinm r20,r2,9,29,1 + if (!idr_get_next(&kvm->arch.kvm_nested_guest_idr, &ret)) 3b08: 4f 4d 00 6b xori r0,r24,19791 - int ret = lpid + 1; 3b0c: 76 6d 70 70 andi. r16,r3,28022 3b10: 63 5f 78 69 xori r24,r11,24419 3b14: 76 65 5f 76 andis. r31,r18,25974 - if (!idr_get_next(&kvm->arch.kvm_nested_guest_idr, &ret)) 3b18: 63 70 75 00 .long 0x757063 3b1c: 70 72 65 65 oris r5,r11,29296 + if (unlikely(ms->mmiowb_pending)) { 3b20: 6d 70 74 5f rlwnm. r20,r27,r14,1,22 + struct mmiowb_state *ms = __mmiowb_state(); 3b24: 74 62 00 6c xoris r0,r0,25204 + if (unlikely(ms->mmiowb_pending)) { 3b28: 69 73 74 5f rlwnm. r20,r27,r14,13,20 3b2c: 68 65 61 64 oris r1,r3,25960 - if (unlikely(ms->mmiowb_pending)) { + ms->nesting_count--; 3b30: 00 67 65 74 andis. r5,r3,26368 - struct mmiowb_state *ms = __mmiowb_state(); 3b34: 5f 73 6d 6d xoris r13,r11,29535 - if (unlikely(ms->mmiowb_pending)) { 3b38: 75 5f 69 6e xoris r9,r19,24437 3b3c: 66 6f 00 74 andis. r0,r0,28518 - ms->nesting_count--; 3b40: 67 69 64 00 .long 0x646967 3b44: 6d 61 73 6b xori r19,r27,24941 +} 3b48: 5f 36 34 6b xori r20,r25,13919 3b4c: 00 73 61 76 andis. r1,r19,29440 3b50: 65 5f 61 72 andi. r1,r19,24421 3b54: 65 61 00 77 andis. r0,r24,24933 -} + return ret; 3b58: 72 69 74 65 oris r20,r11,26994 +} 3b5c: 5f 70 72 6f xoris r18,r27,28767 3b60: 74 65 63 74 andis. r3,r3,25972 3b64: 5f 73 65 71 andi. r5,r11,29535 - return ret; 3b68: 00 57 4d 41 bdzt 4*cr3+gt,9268 <.debug_str+0x9268> -} 3b6c: 52 4b 5f 4d .long 0x4d5f4b52 3b70: 49 4e 00 62 ori r0,r16,20041 3b74: 65 70 69 00 .long 0x697065 3b78: 69 6e 76 61 ori r22,r11,28265 3b7c: 6c 69 64 61 ori r4,r11,26988 + if (unlikely(ms->mmiowb_pending)) { 3b80: 74 65 5f 72 andi. r31,r18,25972 + ret = -1; 3b84: 61 6e 67 65 oris r7,r11,28257 3b88: 5f 65 6e 64 oris r14,r3,25951 + struct mmiowb_state *ms = __mmiowb_state(); 3b8c: 00 5f 74 69 xori r20,r11,24320 if (unlikely(ms->mmiowb_pending)) { 3b90: 64 00 6b 69 xori r11,r11,100 - ret = -1; 3b94: 6f 63 62 00 .long 0x62636f + ms->mmiowb_pending = 0; 3b98: 6c 61 73 74 andis. r19,r3,24940 - struct mmiowb_state *ms = __mmiowb_state(); 3b9c: 5f 73 74 61 ori r20,r11,29535 - if (unlikely(ms->mmiowb_pending)) { + mmiowb(); 3ba0: 74 75 73 00 .long 0x737574 3ba4: 73 5f 69 6e xoris r9,r19,24435 - ms->mmiowb_pending = 0; +} 3ba8: 6f 64 65 5f rlwnm. r5,r27,r12,17,23 3bac: 77 62 6c 69 xori r12,r11,25207 - mmiowb(); 3bb0: 73 74 5f 6c xoris r31,r2,29811 3bb4: 6f 63 6b 00 .long 0x6b636f -} 3bb8: 65 6e 64 5f rlwnm. r4,r27,r13,25,18 3bbc: 63 6f 64 65 oris r4,r11,28515 3bc0: 00 68 72 74 andis. r18,r3,26624 @@ -51740,7 +51747,7 @@ static void kvmhv_emulate_tlbie_lpid(str 3ce0: 69 6e 64 65 oris r4,r11,28265 3ce4: 78 00 50 47 .long 0x47500078 3ce8: 44 45 4d 4f addpcis r26,17754 - 3cec: 54 45 5f 4b b ffffffffff5f8240 + 3cec: 54 45 5f 4b b ffffffffff5f8240 3cf0: 48 55 47 45 .long 0x45475548 3cf4: 50 41 47 45 .long 0x45474150 3cf8: 44 00 6d 6d xoris r13,r11,68 @@ -51821,7 +51828,7 @@ static void kvmhv_emulate_tlbie_lpid(str 3e24: 00 6e 65 77 andis. r5,r27,28160 3e28: 5f 76 61 6c xoris r1,r3,30303 3e2c: 75 65 00 57 rlwinm. r0,r24,12,21,26 - 3e30: 4d 41 52 4b bl ffffffffff527f7c + 3e30: 4d 41 52 4b bl ffffffffff527f7c 3e34: 5f 48 49 47 .long 0x4749485f 3e38: 48 00 6b 65 oris r11,r11,72 3e3c: 72 6e 66 73 andi. r6,r27,28274 @@ -51836,7 +51843,7 @@ static void kvmhv_emulate_tlbie_lpid(str 3e60: 00 4d 4d 5f rlwnm r13,r26,r9,20,0 3e64: 41 4e 4f 4e .long 0x4e4f4e41 3e68: 50 41 47 45 .long 0x45474150 - 3e6c: 53 00 4d 49 bla 14d0050 + 3e6c: 53 00 4d 49 bla 14d0050 3e70: 47 52 41 54 rlwinm. r1,r2,10,9,3 3e74: 45 5f 53 59 rlmi. r19,r10,r11,29,2 3e78: 4e 43 5f 4e .long 0x4e5f434e @@ -51870,11 +51877,11 @@ static void kvmhv_emulate_tlbie_lpid(str 3ee8: 65 79 00 5f rlwnm. r0,r24,r15,5,18 3eec: 5f 63 6f 75 andis. r15,r11,25439 3ef0: 6e 74 00 57 rlwinm r0,r24,14,17,23 - 3ef4: 4f 52 4b 49 bla 14b524c + 3ef4: 4f 52 4b 49 bla 14b524c 3ef8: 4e 47 53 45 .long 0x4553474e 3efc: 54 5f 52 45 .long 0x45525f54 3f00: 53 54 4f 52 rlwimi. r15,r18,10,17,9 - 3f04: 45 5f 46 49 bl 1469e48 + 3f04: 45 5f 46 49 bl 1469e48 3f08: 4c 45 00 73 andi. r0,r24,17740 3f0c: 74 61 74 69 xori r20,r11,24948 3f10: 63 5f 70 72 andi. r16,r19,24419 @@ -52030,7 +52037,7 @@ static void kvmhv_emulate_tlbie_lpid(str 4168: 6f 6c 65 6e xoris r5,r19,27759 416c: 00 4e 52 5f rlwnm r18,r26,r9,24,0 4170: 53 57 41 50 rlwimi. r1,r2,10,29,9 - 4174: 43 41 43 48 bla 434140 + 4174: 43 41 43 48 bla 434140 4178: 45 00 50 43 bcl- 26,4*cr4+lt,41bc <.debug_str+0x41bc> 417c: 50 55 5f 46 .long 0x465f5550 4180: 43 5f 45 4d .long 0x4d455f43 @@ -52159,7 +52166,7 @@ static void kvmhv_emulate_tlbie_lpid(str 436c: 5f 56 4d 5f rlwnm. r13,r26,r10,25,15 4370: 4e 55 4d 41 bdzta 4*cr3+gt,554c <.debug_str+0x554c> 4374: 5f 45 56 45 .long 0x4556455f - 4378: 4e 54 5f 49 ba 15f544c + 4378: 4e 54 5f 49 ba 15f544c 437c: 54 45 4d 53 rlwimi r13,r26,8,21,10 4380: 00 63 6f 6e xoris r15,r19,25344 4384: 74 72 6f 6c xoris r15,r3,29300 @@ -52186,7 +52193,7 @@ static void kvmhv_emulate_tlbie_lpid(str 43d8: 70 63 72 00 .long 0x726370 43dc: 4b 43 4f 4d .long 0x4d4f434b 43e0: 50 41 43 54 rlwinm r3,r2,8,5,8 - 43e4: 44 5f 4d 49 b 14da328 + 43e4: 44 5f 4d 49 b 14da328 43e8: 47 52 41 54 rlwinm. r1,r2,10,9,3 43ec: 45 5f 53 43 bcl- 26,4*cr4+so,a330 <.debug_str+0xa330> 43f0: 41 4e 4e 45 .long 0x454e4e41 @@ -52830,7 +52837,7 @@ static void kvmhv_emulate_tlbie_lpid(str 4de8: 41 55 4c 54 rlwinm. r12,r2,10,21,0 4dec: 5f 46 41 4c .long 0x4c41465f 4df0: 4c 42 41 43 bc- 26,gt,903c <.debug_str+0x903c> - 4df4: 4b 5f 43 48 bla 435f48 + 4df4: 4b 5f 43 48 bla 435f48 4df8: 41 52 47 45 .long 0x45475241 4dfc: 00 64 65 76 andis. r5,r19,25600 4e00: 5f 70 61 67 oris r1,r27,28767 @@ -52904,7 +52911,7 @@ static void kvmhv_emulate_tlbie_lpid(str 4f10: 45 56 45 52 rlwimi. r5,r18,10,25,2 4f14: 45 00 75 74 andis. r21,r3,69 4f18: 69 6c 5f 61 ori r31,r10,27753 - 4f1c: 76 67 00 4b ba ff006774 + 4f1c: 76 67 00 4b ba ff006774 4f20: 53 4d 5f 53 rlwimi. r31,r26,9,21,9 4f24: 57 50 49 4e .long 0x4e495057 4f28: 5f 43 4f 50 rlwimi. r15,r2,8,13,15 @@ -52925,7 +52932,7 @@ static void kvmhv_emulate_tlbie_lpid(str 4f64: 5f 6c 6f 63 ori r15,r27,27743 4f68: 6b 00 50 47 .long 0x4750006b 4f6c: 53 43 41 4e .long 0x4e414353 - 4f70: 5f 53 4b 49 bla 14b535c + 4f70: 5f 53 4b 49 bla 14b535c 4f74: 50 5f 4e 4f .long 0x4f4e5f50 4f78: 52 4d 41 4c .long 0x4c414d52 4f7c: 00 65 70 73 andi. r16,r27,25856 @@ -52966,7 +52973,7 @@ static void kvmhv_emulate_tlbie_lpid(str 5008: 55 5f 4e 4f .long 0x4f4e5f55 500c: 54 49 46 59 rlmi r6,r10,r9,5,10 5010: 5f 45 58 43 bcla- 26,4*cr6+lt,455c <.debug_str+0x455c> - 5014: 4c 55 53 49 b 153a560 + 5014: 4c 55 53 49 b 153a560 5018: 56 45 00 6d xoris r0,r8,17750 501c: 6d 5f 63 74 andis. r3,r3,24429 5020: 78 5f 68 69 xori r8,r11,24440 @@ -52995,7 +53002,7 @@ static void kvmhv_emulate_tlbie_lpid(str 507c: 73 74 5f 64 oris r31,r2,29811 5080: 65 62 75 67 oris r21,r27,25189 5084: 00 70 74 65 oris r20,r11,28672 - 5088: 70 00 4d 49 b 14d50f8 + 5088: 70 00 4d 49 b 14d50f8 508c: 47 52 41 54 rlwinm. r1,r2,10,9,3 5090: 45 5f 55 4e addpcis r18,24427 5094: 4d 4f 56 41 bdztl 4*cr5+eq,9fe0 <.debug_str+0x9fe0> @@ -53132,9 +53139,9 @@ static void kvmhv_emulate_tlbie_lpid(str 52a0: 4b 53 57 41 bdztla 4*cr5+so,5348 <.debug_str+0x5348> 52a4: 50 44 5f 4c .long 0x4c5f4450 52a8: 4f 57 5f 57 rlwinm. r31,r26,10,29,7 - 52ac: 4d 41 52 4b bl ffffffffff5293f8 + 52ac: 4d 41 52 4b bl ffffffffff5293f8 52b0: 5f 48 49 54 rlwinm. r9,r2,9,1,15 - 52b4: 5f 51 55 49 bla 155515c + 52b4: 5f 51 55 49 bla 155515c 52b8: 43 4b 4c 59 rlmi. r12,r10,r9,13,1 52bc: 00 67 72 61 ori r18,r11,26368 52c0: 70 68 5f 67 oris r31,r26,26736 @@ -53142,7 +53149,7 @@ static void kvmhv_emulate_tlbie_lpid(str 52c8: 6f 72 74 5f rlwnm. r20,r27,r14,9,23 52cc: 70 61 72 65 oris r18,r11,24944 52d0: 6e 74 00 55 rlwinm r0,r8,14,17,23 - 52d4: 4e 45 56 49 ba 156454c + 52d4: 4e 45 56 49 ba 156454c 52d8: 43 54 41 42 bcla 18,gt,5440 <.debug_str+0x5440> 52dc: 4c 45 5f 50 rlwimi r31,r2,8,21,6 52e0: 47 52 45 53 rlwimi. r5,r26,10,9,3 @@ -53234,7 +53241,7 @@ static void kvmhv_emulate_tlbie_lpid(str 5438: 67 74 68 00 .long 0x687467 543c: 52 50 4d 5f rlwnm r13,r26,r10,1,9 5440: 53 55 53 50 rlwimi. r19,r2,10,21,9 - 5444: 45 4e 44 49 bl 144a288 + 5444: 45 4e 44 49 bl 144a288 5448: 4e 47 00 62 ori r0,r16,18254 544c: 75 66 6c 65 oris r12,r11,26229 5450: 6e 00 73 61 ori r19,r11,110 @@ -53337,7 +53344,7 @@ static void kvmhv_emulate_tlbie_lpid(str 55d4: 45 44 00 70 andi. r0,r0,17477 55d8: 61 72 65 6e xoris r5,r19,29281 55dc: 74 00 4d 43 bc- 26,4*cr3+gt,5650 <.debug_str+0x5650> - 55e0: 45 5f 44 49 bl 144b524 + 55e0: 45 5f 44 49 bl 144b524 55e4: 53 50 4f 53 rlwimi. r15,r26,10,1,9 55e8: 49 54 49 4f .long 0x4f495449 55ec: 4e 5f 4e 4f .long 0x4f4e5f4e @@ -53543,11 +53550,11 @@ static void kvmhv_emulate_tlbie_lpid(str 590c: 63 79 00 73 andi. r0,r24,31075 5910: 68 61 72 65 oris r18,r11,24936 5914: 64 00 4d 43 bc- 26,4*cr3+gt,5978 <.debug_str+0x5978> - 5918: 45 5f 4c 49 bl 14cb85c + 5918: 45 5f 4c 49 bl 14cb85c 591c: 4e 4b 5f 45 .long 0x455f4b4e 5920: 52 52 4f 52 rlwimi r15,r18,10,9,9 5924: 5f 4c 4f 41 bdztla 4*cr3+so,4c5c <.debug_str+0x4c5c> - 5928: 44 5f 54 49 b 154b86c + 5928: 44 5f 54 49 b 154b86c 592c: 4d 45 4f 55 rlwinm. r15,r10,8,21,6 5930: 54 00 64 6d xoris r4,r11,84 5934: 61 5f 6d 65 oris r13,r11,24417 @@ -53588,7 +53595,7 @@ static void kvmhv_emulate_tlbie_lpid(str 59c0: 46 57 5f 46 .long 0x465f5746 59c4: 45 41 54 55 rlwinm. r20,r10,8,5,2 59c8: 52 45 5f 50 rlwimi r31,r2,8,21,9 - 59cc: 53 45 52 49 bla 1524550 + 59cc: 53 45 52 49 bla 1524550 59d0: 45 53 5f 41 bdztl 4*cr7+so,ad14 <.debug_str+0xad14> 59d4: 4c 57 41 59 rlmi r1,r10,r10,29,6 59d8: 53 00 4d 43 bcla- 26,4*cr3+gt,50 <.debug_str+0x50> @@ -53681,7 +53688,7 @@ static void kvmhv_emulate_tlbie_lpid(str 5b34: 75 6c 74 5f rlwnm. r20,r27,r13,17,26 5b38: 74 69 6d 65 oris r13,r11,26996 5b3c: 00 4e 52 5f rlwnm r18,r26,r9,24,0 - 5b40: 41 43 54 49 bl 1549e80 + 5b40: 41 43 54 49 bl 1549e80 5b44: 56 45 5f 41 bdzta 4*cr7+so,4554 <.debug_str+0x4554> 5b48: 4e 4f 4e 00 .long 0x4e4f4e 5b4c: 4e 55 4d 41 bdzta 4*cr3+gt,554c <.debug_str+0x554c> @@ -53788,9 +53795,9 @@ static void kvmhv_emulate_tlbie_lpid(str 5ce0: 64 71 62 5f rlwnm r2,r27,r14,5,18 5ce4: 69 73 6f 66 oris r15,r19,29545 5ce8: 74 6c 69 6d xoris r9,r11,27764 - 5cec: 69 74 00 4b bl ffffffffff00d154 + 5cec: 69 74 00 4b bl ffffffffff00d154 5cf0: 56 4d 5f 56 rlwinm r31,r18,9,21,11 - 5cf4: 49 52 54 49 bl 154af3c + 5cf4: 49 52 54 49 bl 154af3c 5cf8: 4f 5f 43 43 bcla- 26,so,5f4c <.debug_str+0x5f4c> 5cfc: 57 5f 4e 4f .long 0x4f4e5f57 5d00: 54 49 46 59 rlmi r6,r10,r9,5,10 @@ -53887,13 +53894,13 @@ static void kvmhv_emulate_tlbie_lpid(str 5e6c: 65 7a 65 5f rlwnm. r5,r27,r15,9,18 5e70: 63 6f 75 6e xoris r21,r19,28515 5e74: 74 00 4d 43 bc- 26,4*cr3+gt,5ee8 <.debug_str+0x5ee8> - 5e78: 45 5f 4c 49 bl 14cbdbc + 5e78: 45 5f 4c 49 bl 14cbdbc 5e7c: 4e 4b 5f 45 .long 0x455f4b4e 5e80: 52 52 4f 52 rlwimi r15,r18,10,9,9 5e84: 5f 50 41 47 .long 0x4741505f 5e88: 45 5f 54 41 bdztl 4*cr5+lt,bdcc <.debug_str+0xbdcc> 5e8c: 42 4c 45 5f rlwnm r5,r26,r9,17,1 - 5e90: 57 41 4c 4b bla ff4c4154 + 5e90: 57 41 4c 4b bla ff4c4154 5e94: 5f 49 46 45 .long 0x4546495f 5e98: 54 43 48 5f rlwnm r8,r26,r8,13,10 5e9c: 54 49 4d 45 .long 0x454d4954 @@ -53958,7 +53965,7 @@ static void kvmhv_emulate_tlbie_lpid(str 5f88: 63 6c 00 6d xoris r0,r8,27747 5f8c: 65 6d 73 65 oris r19,r11,28005 5f90: 74 00 54 52 rlwimi r20,r18,0,1,26 - 5f94: 41 4e 53 48 bl 53add4 + 5f94: 41 4e 53 48 bl 53add4 5f98: 55 47 45 5f rlwnm. r5,r26,r8,29,10 5f9c: 50 41 47 45 .long 0x45474150 5fa0: 5f 44 54 4f .long 0x4f54445f @@ -54176,7 +54183,7 @@ static void kvmhv_emulate_tlbie_lpid(str 62f0: 67 00 73 63 ori r19,r27,103 62f4: 68 65 64 5f rlwnm r4,r27,r12,21,20 62f8: 6f 75 74 00 .long 0x74756f - 62fc: 44 45 56 49 b 156a840 + 62fc: 44 45 56 49 b 156a840 6300: 43 45 5f 50 rlwimi. r31,r2,8,21,1 6304: 41 4e 45 4c .long 0x4c454e41 6308: 5f 4c 45 46 .long 0x46454c5f @@ -54191,7 +54198,7 @@ static void kvmhv_emulate_tlbie_lpid(str 632c: 6f 6d 61 69 xori r1,r11,28015 6330: 6e 00 6d 61 ori r13,r11,110 6334: 79 5f 72 65 oris r18,r11,24441 - 6338: 61 64 00 42 bdnzl c798 + 6338: 61 64 00 42 bdnzl c798 633c: 41 4c 4c 4f .long 0x4f4c4c41 6340: 4f 4e 5f 4d .long 0x4d5f4e4f 6344: 49 47 52 41 bdztl 4*cr4+eq,aa8c <.debug_str+0xaa8c> @@ -54551,7 +54558,7 @@ static void kvmhv_emulate_tlbie_lpid(str 68cc: 73 00 5f 5f rlwnm. r31,r26,r0,1,25 68d0: 53 44 5f 50 rlwimi. r31,r2,8,17,9 68d4: 52 45 46 45 .long 0x45464552 - 68d8: 52 5f 53 49 ba 1535f50 + 68d8: 52 5f 53 49 ba 1535f50 68dc: 42 4c 49 4e .long 0x4e494c42 68e0: 47 00 70 6c xoris r16,r3,71 68e4: 70 61 72 5f rlwnm r18,r27,r12,5,24 @@ -54687,7 +54694,7 @@ static void kvmhv_emulate_tlbie_lpid(str 6aec: 64 00 46 41 bdzt 4*cr1+eq,6b50 <.debug_str+0x6b50> 6af0: 55 4c 54 5f rlwnm. r20,r26,r9,17,10 6af4: 46 4c 41 47 .long 0x47414c46 - 6af8: 5f 54 52 49 bla 152545c + 6af8: 5f 54 52 49 bla 152545c 6afc: 45 44 00 77 andis. r0,r24,17477 6b00: 6f 72 6b 65 oris r11,r11,29295 6b04: 72 5f 70 72 andi. r16,r19,24434 @@ -54719,7 +54726,7 @@ static void kvmhv_emulate_tlbie_lpid(str 6b6c: 6c 6f 63 61 ori r3,r11,28524 6b70: 6c 5f 66 6c xoris r6,r3,24428 6b74: 61 67 73 00 .long 0x736761 - 6b78: 57 4f 52 4b bla ff524f54 + 6b78: 57 4f 52 4b bla ff524f54 6b7c: 49 4e 47 53 rlwimi. r7,r26,9,25,4 6b80: 45 54 5f 52 rlwimi. r31,r18,10,17,2 6b84: 45 46 41 55 rlwinm. r1,r10,8,25,2 @@ -54734,7 +54741,7 @@ static void kvmhv_emulate_tlbie_lpid(str 6ba8: 73 74 61 74 andis. r1,r3,29811 6bac: 65 00 50 47 .long 0x47500065 6bb0: 53 54 45 41 bdztla 4*cr1+gt,5450 <.debug_str+0x5450> - 6bb4: 4c 5f 4b 48 b 4bcb00 + 6bb4: 4c 5f 4b 48 b 4bcb00 6bb8: 55 47 45 50 rlwimi. r5,r2,8,29,10 6bbc: 41 47 45 44 .long 0x44454741 6bc0: 00 6f 72 69 xori r18,r11,28416 @@ -54761,7 +54768,7 @@ static void kvmhv_emulate_tlbie_lpid(str 6c14: 5f 53 44 5f rlwnm. r4,r26,r10,13,15 6c18: 42 41 4c 41 bdzta 4*cr3+lt,4140 <.debug_str+0x4140> 6c1c: 4e 43 45 5f rlwnm r5,r26,r8,13,7 - 6c20: 46 4f 52 4b ba ff524f44 + 6c20: 46 4f 52 4b ba ff524f44 6c24: 00 6b 76 6d xoris r22,r11,27392 6c28: 68 76 5f 72 andi. r31,r18,30312 6c2c: 65 73 74 6f xoris r20,r27,29541 @@ -54778,7 +54785,7 @@ static void kvmhv_emulate_tlbie_lpid(str 6c58: 75 72 63 65 oris r3,r11,29301 6c5c: 00 66 5f 70 andi. r31,r2,26112 6c60: 6f 73 00 4e .long 0x4e00736f - 6c64: 52 5f 46 49 ba 1465f50 + 6c64: 52 5f 46 49 ba 1465f50 6c68: 4c 45 5f 44 .long 0x445f454c 6c6c: 49 52 54 59 rlmi. r20,r10,r10,9,4 6c70: 00 4d 43 45 .long 0x45434d00 @@ -54904,7 +54911,7 @@ static void kvmhv_emulate_tlbie_lpid(str 6e50: 5f 72 63 00 .long 0x63725f 6e54: 69 5f 61 74 andis. r1,r3,24425 6e58: 69 6d 65 00 .long 0x656d69 - 6e5c: 44 45 56 49 b 156b3a0 + 6e5c: 44 45 56 49 b 156b3a0 6e60: 43 45 5f 46 .long 0x465f4543 6e64: 49 58 45 44 .long 0x44455849 6e68: 00 70 74 65 oris r20,r11,28672 @@ -54955,7 +54962,7 @@ static void kvmhv_emulate_tlbie_lpid(str 6f1c: 68 65 73 00 .long 0x736568 6f20: 4b 43 4f 4d .long 0x4d4f434b 6f24: 50 41 43 54 rlwinm r3,r2,8,5,8 - 6f28: 44 5f 57 41 bdzt 4*cr5+so,ce6c + 6f28: 44 5f 57 41 bdzt 4*cr5+so,ce6c 6f2c: 4b 45 00 73 andi. r0,r24,17739 6f30: 74 6f 6c 65 oris r12,r11,28532 6f34: 6e 5f 6c 6f xoris r12,r27,24430 @@ -55029,7 +55036,7 @@ static void kvmhv_emulate_tlbie_lpid(str 7044: 65 73 00 5f rlwnm. r0,r24,r14,13,18 7048: 75 70 70 65 oris r16,r11,28789 704c: 72 00 4d 43 bca- 26,4*cr3+gt,70 <.debug_str+0x70> - 7050: 45 5f 4c 49 bl 14ccf94 + 7050: 45 5f 4c 49 bl 14ccf94 7054: 4e 4b 5f 45 .long 0x455f4b4e 7058: 52 52 4f 52 rlwimi r15,r18,10,9,9 705c: 5f 49 46 45 .long 0x4546495f @@ -55090,7 +55097,7 @@ static void kvmhv_emulate_tlbie_lpid(str 7138: 6f 73 74 5f rlwnm. r20,r27,r14,13,23 713c: 73 74 61 63 ori r1,r27,29811 7140: 6b 00 4e 52 rlwimi. r14,r18,0,1,21 - 7144: 5f 57 52 49 bla 152575c + 7144: 5f 57 52 49 bla 152575c 7148: 54 54 45 4e .long 0x4e455454 714c: 00 76 61 6c xoris r1,r3,30208 7150: 69 64 00 69 xori r0,r8,25705 @@ -55180,7 +55187,7 @@ static void kvmhv_emulate_tlbie_lpid(str 72a0: 70 65 72 69 xori r18,r11,25968 72a4: 6f 64 00 4e .long 0x4e00646f 72a8: 52 5f 57 52 rlwimi r23,r18,11,29,9 - 72ac: 49 54 45 42 bcl 18,4*cr1+gt,c6f4 + 72ac: 49 54 45 42 bcl 18,4*cr1+gt,c6f4 72b0: 41 43 4b 5f rlwnm. r11,r26,r8,13,0 72b4: 54 45 4d 50 rlwimi r13,r2,8,21,10 72b8: 00 69 5f 66 oris r31,r18,26880 @@ -55287,7 +55294,7 @@ static void kvmhv_emulate_tlbie_lpid(str 744c: 5f 6f 70 73 andi. r16,r27,28511 7450: 5f 62 79 70 andi. r25,r3,25183 7454: 61 73 73 00 .long 0x737361 - 7458: 48 52 54 49 b 154c6a0 + 7458: 48 52 54 49 b 154c6a0 745c: 4d 45 52 5f rlwnm. r18,r26,r8,21,6 7460: 42 41 53 45 .long 0x45534142 7464: 5f 52 45 41 bdztla 4*cr1+gt,525c <.debug_str+0x525c> @@ -55296,10 +55303,10 @@ static void kvmhv_emulate_tlbie_lpid(str 7470: 72 5f 76 61 ori r22,r11,24434 7474: 6c 69 64 00 .long 0x64696c 7478: 4b 53 57 41 bdztla 4*cr5+so,5348 <.debug_str+0x5348> - 747c: 50 44 5f 48 b 5fb8cc + 747c: 50 44 5f 48 b 5fb8cc 7480: 49 47 48 5f rlwnm. r8,r26,r8,29,4 7484: 57 4d 41 52 rlwimi. r1,r18,9,21,11 - 7488: 4b 5f 48 49 bla 1485f48 + 7488: 4b 5f 48 49 bla 1485f48 748c: 54 5f 51 55 rlwinm r17,r10,11,29,10 7490: 49 43 4b 4c .long 0x4c4b4349 7494: 59 00 70 72 andi. r16,r19,89 @@ -55338,7 +55345,7 @@ static void kvmhv_emulate_tlbie_lpid(str 7518: 69 76 65 5f rlwnm. r5,r27,r14,25,20 751c: 76 63 70 75 andis. r16,r11,25462 7520: 00 4f 50 41 bdzt 4*cr4+lt,c420 <.debug_str+0xc420> - 7524: 4c 5f 50 48 b 50d470 + 7524: 4c 5f 50 48 b 50d470 7528: 42 33 5f 4e crorc 4*cr4+eq,4*cr7+so,4*cr1+eq 752c: 55 4d 5f 50 rlwimi. r31,r2,9,21,10 7530: 45 53 54 5f rlwnm. r20,r26,r10,13,2 @@ -55415,7 +55422,7 @@ static void kvmhv_emulate_tlbie_lpid(str 764c: 4e 52 5f 53 rlwimi r31,r26,10,9,7 7650: 4c 41 42 5f rlwnm r2,r26,r8,5,6 7654: 55 4e 52 45 .long 0x45524e55 - 7658: 43 4c 41 49 bla 1414c40 + 7658: 43 4c 41 49 bla 1414c40 765c: 4d 41 42 4c .long 0x4c42414d 7660: 45 5f 42 00 .long 0x425f45 7664: 6d 75 74 65 oris r20,r11,30061 @@ -55425,7 +55432,7 @@ static void kvmhv_emulate_tlbie_lpid(str 7674: 70 75 73 5f rlwnm r19,r27,r14,21,24 7678: 61 6c 6c 6f xoris r12,r27,27745 767c: 77 65 64 00 .long 0x646577 - 7680: 4e 52 5f 4b ba ff5f524c + 7680: 4e 52 5f 4b ba ff5f524c 7684: 45 52 4e 45 .long 0x454e5245 7688: 4c 5f 53 54 rlwinm r19,r2,11,29,6 768c: 41 43 4b 5f rlwnm. r11,r26,r8,13,0 @@ -55433,7 +55440,7 @@ static void kvmhv_emulate_tlbie_lpid(str 7694: 52 5f 56 4d .long 0x4d565f52 7698: 5f 4e 4f 44 .long 0x444f4e5f 769c: 45 5f 53 54 rlwinm. r19,r2,11,29,2 - 76a0: 41 54 5f 49 bl 15fcae0 + 76a0: 41 54 5f 49 bl 15fcae0 76a4: 54 45 4d 53 rlwimi r13,r26,8,21,10 76a8: 00 72 61 77 andis. r1,r27,29184 76ac: 5f 73 70 69 xori r16,r11,29535 @@ -55496,7 +55503,7 @@ static void kvmhv_emulate_tlbie_lpid(str 7790: 72 5f 73 70 andi. r19,r3,24434 7794: 65 63 69 61 ori r9,r11,25445 7798: 6c 00 4e 55 rlwinm r14,r10,0,1,22 - 779c: 4d 41 5f 48 bl 5fb8e8 + 779c: 4d 41 5f 48 bl 5fb8e8 77a0: 49 54 00 64 oris r0,r0,21577 77a4: 61 77 72 78 rldicl. r18,r3,14,61 77a8: 30 00 64 61 ori r4,r11,48 @@ -55518,7 +55525,7 @@ static void kvmhv_emulate_tlbie_lpid(str 77e8: 48 50 5f 53 rlwimi r31,r26,10,1,4 77ec: 50 4c 49 54 rlwinm r9,r2,9,17,8 77f0: 5f 50 41 47 .long 0x4741505f - 77f4: 45 5f 46 41 bdztl 4*cr1+eq,d738 + 77f4: 45 5f 46 41 bdztl 4*cr1+eq,d738 77f8: 49 4c 45 44 .long 0x44454c49 77fc: 00 69 5f 73 andi. r31,r26,26880 7800: 65 71 75 65 oris r21,r11,29029 @@ -55670,7 +55677,7 @@ static void kvmhv_emulate_tlbie_lpid(str 7a48: 4c 42 5f 42 bc 18,4*cr7+so,bc94 <.debug_str+0xbc94> 7a4c: 55 44 44 59 rlmi. r4,r10,r8,17,10 7a50: 5f 50 47 41 bdztla 4*cr1+so,505c <.debug_str+0x505c> - 7a54: 4c 4c 4f 43 bc- 26,4*cr3+so,c6a0 + 7a54: 4c 4c 4f 43 bc- 26,4*cr3+so,c6a0 7a58: 00 73 63 68 xori r3,r3,29440 7a5c: 65 64 5f 63 ori r31,r26,25701 7a60: 6f 6e 74 72 andi. r20,r19,28271 @@ -55761,7 +55768,7 @@ static void kvmhv_emulate_tlbie_lpid(str 7bb4: 5f 5a 45 52 rlwimi. r5,r18,11,9,15 7bb8: 4f 5f 50 41 bdztla 4*cr4+lt,5f4c <.debug_str+0x5f4c> 7bbc: 47 45 5f 41 bdztla 4*cr7+so,4544 <.debug_str+0x4544> - 7bc0: 4c 4c 4f 43 bc- 26,4*cr3+so,c80c + 7bc0: 4c 4c 4f 43 bc- 26,4*cr3+so,c80c 7bc4: 00 4e 45 54 rlwinm r5,r2,9,24,0 7bc8: 5f 54 58 5f rlwnm. r24,r26,r10,17,15 7bcc: 53 4f 46 54 rlwinm. r6,r2,9,29,9 @@ -55817,7 +55824,7 @@ static void kvmhv_emulate_tlbie_lpid(str 7c94: 00 4d 4d 55 rlwinm r13,r10,9,20,0 7c98: 5f 4e 4f 54 rlwinm. r15,r2,9,25,15 7c9c: 49 46 59 5f rlwnm. r25,r26,r8,25,4 - 7ca0: 55 4e 4d 41 bdztl 4*cr3+gt,caf4 + 7ca0: 55 4e 4d 41 bdztl 4*cr3+gt,caf4 7ca4: 50 00 66 72 andi. r6,r19,80 7ca8: 65 65 5f 6e xoris r31,r18,25957 7cac: 6f 74 69 66 oris r9,r19,29807 @@ -55855,7 +55862,7 @@ static void kvmhv_emulate_tlbie_lpid(str 7d2c: 6d 65 72 00 .long 0x72656d 7d30: 4d 45 4d 4f .long 0x4f4d454d 7d34: 52 59 5f 44 .long 0x445f5952 - 7d38: 45 56 49 43 bcl- 26,4*cr2+gt,d37c + 7d38: 45 56 49 43 bcl- 26,4*cr2+gt,d37c 7d3c: 45 5f 43 4f addpcis r26,24391 7d40: 48 45 52 45 .long 0x45524548 7d44: 4e 54 00 70 andi. r0,r0,21582 @@ -55916,7 +55923,7 @@ static void kvmhv_emulate_tlbie_lpid(str 7e20: 69 73 74 00 .long 0x747369 7e24: 46 41 55 4c .long 0x4c554146 7e28: 54 5f 46 4c .long 0x4c465f54 - 7e2c: 41 47 5f 41 bdztl 4*cr7+so,c56c + 7e2c: 41 47 5f 41 bdztl 4*cr7+so,c56c 7e30: 4c 4c 4f 57 rlwinm r15,r26,9,17,6 7e34: 5f 52 45 54 rlwinm. r5,r2,10,9,15 7e38: 52 59 00 64 oris r0,r0,22866 @@ -56015,7 +56022,7 @@ static void kvmhv_emulate_tlbie_lpid(str 7fac: 73 74 61 74 andis. r1,r3,29811 7fb0: 73 5f 69 64 oris r9,r3,24435 7fb4: 00 50 47 4d .long 0x4d475000 - 7fb8: 49 47 52 41 bdztl 4*cr4+eq,c700 + 7fb8: 49 47 52 41 bdztl 4*cr4+eq,c700 7fbc: 54 45 5f 46 .long 0x465f4554 7fc0: 41 49 4c 00 .long 0x4c4941 7fc4: 64 65 76 69 xori r22,r11,25956 @@ -56098,7 +56105,7 @@ static void kvmhv_emulate_tlbie_lpid(str 80f8: 6f 63 6b 5f rlwnm. r11,r27,r12,13,23 80fc: 74 00 4d 4d .long 0x4d4d0074 8100: 5f 53 48 4d .long 0x4d48535f - 8104: 45 4d 50 41 bdztl 4*cr4+lt,ce48 + 8104: 45 4d 50 41 bdztl 4*cr4+lt,ce48 8108: 47 45 53 00 .long 0x534547 810c: 4d 43 45 5f rlwnm. r5,r26,r8,13,6 8110: 55 45 5f 45 .long 0x455f4555 @@ -56127,7 +56134,7 @@ static void kvmhv_emulate_tlbie_lpid(str 816c: 61 74 74 72 andi. r20,r19,29793 8170: 73 00 52 50 rlwimi. r18,r2,0,1,25 8174: 4d 5f 52 45 .long 0x45525f4d - 8178: 53 55 4d 49 bla 14d5550 + 8178: 53 55 4d 49 bla 14d5550 817c: 4e 47 00 64 oris r0,r0,18254 8180: 5f 77 65 61 ori r5,r11,30559 8184: 6b 5f 72 65 oris r18,r11,24427 @@ -56148,7 +56155,7 @@ static void kvmhv_emulate_tlbie_lpid(str 81c0: 52 5f 56 4d .long 0x4d565f52 81c4: 53 43 41 4e .long 0x4e414353 81c8: 5f 49 4d 4d .long 0x4d4d495f - 81cc: 45 44 49 41 bdztl 4*cr2+gt,c610 + 81cc: 45 44 49 41 bdztl 4*cr2+gt,c610 81d0: 54 45 00 73 andi. r0,r24,17748 81d4: 5f 71 75 6f xoris r21,r27,29023 81d8: 74 61 5f 74 andis. r31,r2,24948 @@ -56157,7 +56164,7 @@ static void kvmhv_emulate_tlbie_lpid(str 81e4: 5a 4f 4e 45 .long 0x454e4f5a 81e8: 5f 49 4e 41 bdztla 4*cr3+eq,495c <.debug_str+0x495c> 81ec: 43 54 49 56 rlwinm. r9,r18,10,17,1 - 81f0: 45 5f 46 49 bl 146e134 + 81f0: 45 5f 46 49 bl 146e134 81f4: 4c 45 00 69 xori r0,r8,17740 81f8: 72 71 63 68 xori r3,r3,29042 81fc: 69 70 5f 69 xori r31,r10,28777 @@ -56209,7 +56216,7 @@ static void kvmhv_emulate_tlbie_lpid(str 82b4: 5f 45 52 52 rlwimi. r18,r18,8,21,15 82b8: 4f 52 5f 54 rlwinm. r31,r2,10,9,7 82bc: 59 50 45 5f rlwnm. r5,r26,r10,1,12 - 82c0: 4c 49 4e 4b b ffffffffff4ecc0c + 82c0: 4c 49 4e 4b b ffffffffff4ecc0c 82c4: 00 73 79 73 andi. r25,r27,29440 82c8: 63 72 00 70 andi. r0,r0,29283 82cc: 6b 65 79 5f rlwnm. r25,r27,r12,21,21 @@ -56250,7 +56257,7 @@ static void kvmhv_emulate_tlbie_lpid(str 8358: 52 52 4f 52 rlwimi r15,r18,10,9,9 835c: 5f 49 4e 44 .long 0x444e495f 8360: 45 54 45 52 rlwimi. r5,r18,10,17,2 - 8364: 4d 49 4e 41 bdztl 4*cr3+eq,ccb0 + 8364: 4d 49 4e 41 bdztl 4*cr3+eq,ccb0 8368: 54 45 00 70 andi. r0,r0,17748 836c: 61 67 65 66 oris r5,r19,26465 8370: 61 75 6c 74 andis. r12,r3,30049 @@ -56258,7 +56265,7 @@ static void kvmhv_emulate_tlbie_lpid(str 8378: 61 62 6c 65 oris r12,r11,25185 837c: 64 00 4d 41 bdzt 4*cr3+gt,83e0 <.debug_str+0x83e0> 8380: 58 5f 5a 4f .long 0x4f5a5f58 - 8384: 4e 45 4c 49 ba 14c454c + 8384: 4e 45 4c 49 ba 14c454c 8388: 53 54 53 00 .long 0x535453 838c: 73 79 73 63 ori r19,r27,31091 8390: 77 00 69 6c xoris r9,r3,119 @@ -56304,11 +56311,11 @@ static void kvmhv_emulate_tlbie_lpid(str 8430: 67 00 71 75 andis. r17,r11,103 8434: 6f 74 61 5f rlwnm. r1,r27,r14,17,23 8438: 65 6e 61 62 ori r1,r19,28261 - 843c: 6c 65 00 4b b ffffffffff00e9a8 + 843c: 6c 65 00 4b b ffffffffff00e9a8 8440: 43 4f 4d 50 rlwimi. r13,r2,9,29,1 8444: 41 43 54 44 .long 0x44544341 8448: 5f 46 52 45 .long 0x4552465f - 844c: 45 5f 53 43 bcl- 26,4*cr4+so,e390 + 844c: 45 5f 53 43 bcl- 26,4*cr4+so,e390 8450: 41 4e 4e 45 .long 0x454e4e41 8454: 44 00 64 65 oris r4,r11,68 8458: 76 69 63 65 oris r3,r11,26998 @@ -56390,7 +56397,7 @@ static void kvmhv_emulate_tlbie_lpid(str 8588: 52 4b 49 4e .long 0x4e494b52 858c: 47 53 45 54 rlwinm. r5,r2,10,13,3 8590: 5f 4e 4f 44 .long 0x444f4e5f - 8594: 45 52 45 43 bcl- 26,4*cr1+gt,d7d8 + 8594: 45 52 45 43 bcl- 26,4*cr1+gt,d7d8 8598: 4c 41 49 4d .long 0x4d49414c 859c: 00 70 65 6e xoris r5,r19,28672 85a0: 64 69 6e 67 oris r14,r27,26980 @@ -56416,7 +56423,7 @@ static void kvmhv_emulate_tlbie_lpid(str 85f0: 20 32 30 32 addic r17,r16,12832 85f4: 32 31 31 32 addic r17,r17,12594 85f8: 31 20 28 52 rlwimi. r8,r17,4,0,24 - 85fc: 65 64 20 48 bl 20ea60 + 85fc: 65 64 20 48 bl 20ea60 8600: 61 74 20 31 addic r9,r0,29793 8604: 32 2e 32 2e cmpdi cr4,r18,11826 8608: 31 2d 34 29 cmpldi cr2,r20,11569 @@ -56606,7 +56613,7 @@ static void kvmhv_emulate_tlbie_lpid(str 88e8: 79 00 4e 52 rlwimi. r14,r18,0,1,28 88ec: 5f 46 52 45 .long 0x4552465f 88f0: 45 5f 43 4d addpcis r10,24391 - 88f4: 41 5f 50 41 bdztl 4*cr4+lt,e834 + 88f4: 41 5f 50 41 bdztl 4*cr4+lt,e834 88f8: 47 45 53 00 .long 0x534547 88fc: 71 72 77 6c xoris r23,r3,29297 8900: 6f 63 6b 00 .long 0x6b636f @@ -56679,11 +56686,11 @@ static void kvmhv_emulate_tlbie_lpid(str 8a0c: 65 00 6c 6c xoris r12,r3,101 8a10: 73 65 65 6b xori r5,r27,25971 8a14: 00 4e 52 5f rlwnm r18,r26,r9,24,0 - 8a18: 4d 4d 5f 43 bcl- 26,4*cr7+so,d764 + 8a18: 4d 4d 5f 43 bcl- 26,4*cr7+so,d764 8a1c: 4f 55 4e 54 rlwinm. r14,r2,10,21,7 8a20: 45 52 53 00 .long 0x535245 - 8a24: 44 45 56 49 b 156cf68 - 8a28: 43 45 5f 48 bla 5f4540 + 8a24: 44 45 56 49 b 156cf68 + 8a28: 43 45 5f 48 bla 5f4540 8a2c: 4f 52 49 5f rlwnm. r9,r26,r10,9,7 8a30: 50 4f 53 5f rlwnm r19,r26,r9,29,8 8a34: 43 45 4e 54 rlwinm. r14,r2,8,21,1 @@ -56694,7 +56701,7 @@ static void kvmhv_emulate_tlbie_lpid(str 8a48: 65 67 73 00 .long 0x736765 8a4c: 44 4c 5f 44 .long 0x445f4c44 8a50: 45 56 5f 50 rlwimi. r31,r2,10,25,2 - 8a54: 52 4f 42 49 ba 1424f50 + 8a54: 52 4f 42 49 ba 1424f50 8a58: 4e 47 00 63 ori r0,r24,18254 8a5c: 6f 6d 6d 69 xori r13,r11,28015 8a60: 74 5f 64 71 andi. r4,r11,24436 @@ -56739,7 +56746,7 @@ static void kvmhv_emulate_tlbie_lpid(str 8afc: 5f 63 6f 6e xoris r15,r19,25439 8b00: 73 75 6d 65 oris r13,r11,30067 8b04: 72 00 4d 43 bca- 26,4*cr3+gt,70 <.debug_str+0x70> - 8b08: 45 5f 45 43 bcl- 26,4*cr1+gt,ea4c + 8b08: 45 5f 45 43 bcl- 26,4*cr1+gt,ea4c 8b0c: 4c 41 53 53 rlwimi r19,r26,8,5,6 8b10: 5f 48 41 52 rlwimi. r1,r18,9,1,15 8b14: 44 57 41 52 rlwimi r1,r18,10,29,2 @@ -56777,7 +56784,7 @@ static void kvmhv_emulate_tlbie_lpid(str 8b94: 6e 63 5f 74 andis. r31,r2,25454 8b98: 00 4e 52 5f rlwnm r18,r26,r9,24,0 8b9c: 57 52 49 54 rlwinm. r9,r2,10,9,11 - 8ba0: 45 42 41 43 bcl- 26,gt,cde4 + 8ba0: 45 42 41 43 bcl- 26,gt,cde4 8ba4: 4b 00 73 5f rlwnm. r19,r27,r0,1,5 8ba8: 6d 61 78 62 ori r24,r19,24941 8bac: 79 74 65 73 andi. r5,r27,29817 @@ -56793,7 +56800,7 @@ static void kvmhv_emulate_tlbie_lpid(str 8bd4: 00 6c 61 73 andi. r1,r27,27648 8bd8: 74 5f 63 70 andi. r3,r3,24436 8bdc: 75 00 55 4e .long 0x4e550075 - 8be0: 45 56 49 43 bcl- 26,4*cr2+gt,e224 + 8be0: 45 56 49 43 bcl- 26,4*cr2+gt,e224 8be4: 54 41 42 4c .long 0x4c424154 8be8: 45 5f 50 47 .long 0x47505f45 8bec: 53 54 52 41 bdztla 4*cr4+eq,5450 <.debug_str+0x5450> @@ -56982,7 +56989,7 @@ static void kvmhv_emulate_tlbie_lpid(str 8ec8: 79 5f 6c 6f xoris r12,r27,24441 8ecc: 67 00 4e 52 rlwimi. r14,r18,0,1,19 8ed0: 5f 46 49 4c .long 0x4c49465f - 8ed4: 45 5f 50 41 bdztl 4*cr4+lt,ee18 + 8ed4: 45 5f 50 41 bdztl 4*cr4+lt,ee18 8ed8: 47 45 53 00 .long 0x534547 8edc: 75 73 65 64 oris r5,r3,29557 8ee0: 5f 76 72 00 .long 0x72765f @@ -57000,7 +57007,7 @@ static void kvmhv_emulate_tlbie_lpid(str 8f10: 65 67 5f 70 andi. r31,r2,26469 8f14: 61 67 65 5f rlwnm. r5,r27,r12,29,16 8f18: 73 69 7a 65 oris r26,r11,26995 - 8f1c: 00 4b 4f 42 bc 18,4*cr3+so,da1c + 8f1c: 00 4b 4f 42 bc 18,4*cr3+so,da1c 8f20: 4a 5f 4e 53 rlwimi r14,r26,11,29,5 8f24: 5f 54 59 50 rlwimi. r25,r2,10,17,15 8f28: 45 53 00 70 andi. r0,r0,21317 @@ -57017,11 +57024,11 @@ static void kvmhv_emulate_tlbie_lpid(str 8f54: 00 76 6d 5f rlwnm r13,r27,r14,24,0 8f58: 62 75 67 67 oris r7,r27,30050 8f5c: 65 64 00 57 rlwinm. r0,r24,12,17,18 - 8f60: 4f 52 4b 49 bla 14b524c + 8f60: 4f 52 4b 49 bla 14b524c 8f64: 4e 47 53 45 .long 0x4553474e 8f68: 54 5f 52 45 .long 0x45525f54 8f6c: 53 54 4f 52 rlwimi. r15,r18,10,17,9 - 8f70: 45 5f 42 41 bdztl eq,eeb4 + 8f70: 45 5f 42 41 bdztl eq,eeb4 8f74: 53 45 00 4d .long 0x4d004553 8f78: 4d 55 5f 4e .long 0x4e5f554d 8f7c: 4f 54 49 46 .long 0x4649544f @@ -57073,7 +57080,7 @@ static void kvmhv_emulate_tlbie_lpid(str 9034: 63 6c 61 73 andi. r1,r27,27747 9038: 73 00 4d 43 bcla- 26,4*cr3+gt,70 <.debug_str+0x70> 903c: 45 5f 49 4e addpcis r18,24403 - 9040: 49 54 49 41 bdztl 4*cr2+gt,e488 + 9040: 49 54 49 41 bdztl 4*cr2+gt,e488 9044: 54 4f 52 5f rlwnm r18,r26,r9,29,10 9048: 50 4f 57 45 .long 0x45574f50 904c: 52 4d 47 4d .long 0x4d474d52 @@ -57085,10 +57092,10 @@ static void kvmhv_emulate_tlbie_lpid(str 9064: 5f 70 65 6e xoris r5,r19,28767 9068: 64 69 6e 67 oris r14,r27,26980 906c: 00 5f 5f 53 rlwimi r31,r26,11,28,0 - 9070: 44 5f 53 48 b 53efb4 + 9070: 44 5f 53 48 b 53efb4 9074: 41 52 45 5f rlwnm. r5,r26,r10,9,0 9078: 43 50 55 43 bcla- 26,4*cr5+gt,5040 <.debug_str+0x5040> - 907c: 41 50 41 43 bcl- 26,gt,e0bc + 907c: 41 50 41 43 bcl- 26,gt,e0bc 9080: 49 54 59 00 .long 0x595449 9084: 70 61 64 64 oris r4,r3,24944 9088: 69 6e 67 00 .long 0x676e69 @@ -57155,7 +57162,7 @@ static void kvmhv_emulate_tlbie_lpid(str 917c: 4c 42 5f 45 .long 0x455f424c 9180: 52 52 4f 52 rlwimi r15,r18,10,9,9 9184: 5f 4d 55 4c .long 0x4c554d5f - 9188: 54 49 48 49 b 148dadc + 9188: 54 49 48 49 b 148dadc 918c: 54 00 76 6d xoris r22,r11,84 9190: 5f 65 6e 64 oris r14,r3,25951 9194: 00 6c 61 73 andi. r1,r27,27648 @@ -57174,7 +57181,7 @@ static void kvmhv_emulate_tlbie_lpid(str 91c8: 61 74 65 00 .long 0x657461 91cc: 6e 70 61 67 oris r1,r27,28782 91d0: 65 73 00 50 rlwimi. r0,r0,14,13,18 - 91d4: 53 57 50 49 bla 1505750 + 91d4: 53 57 50 49 bla 1505750 91d8: 4e 00 66 69 xori r6,r11,78 91dc: 72 73 74 00 .long 0x747372 91e0: 69 6e 5f 6e xoris r31,r18,28265 @@ -57224,7 +57231,7 @@ static void kvmhv_emulate_tlbie_lpid(str 9290: 48 49 4e 54 rlwinm r14,r2,9,5,4 9294: 5f 46 41 55 rlwinm. r1,r10,8,25,15 9298: 4c 54 53 5f rlwnm r19,r26,r10,17,6 - 929c: 4c 4f 43 41 bdzt so,e1e8 + 929c: 4c 4f 43 41 bdzt so,e1e8 92a0: 4c 00 6d 63 ori r13,r27,76 92a4: 73 72 00 73 andi. r0,r24,29299 92a8: 72 63 75 5f rlwnm r21,r27,r12,13,25 @@ -57255,7 +57262,7 @@ static void kvmhv_emulate_tlbie_lpid(str 930c: 78 79 00 63 ori r0,r24,31096 9310: 61 6e 5f 77 andis. r31,r26,28257 9314: 61 6b 65 75 andis. r5,r11,27489 - 9318: 70 00 54 49 b 1549388 + 9318: 70 00 54 49 b 1549388 931c: 4d 45 52 5f rlwnm. r18,r26,r8,21,6 9320: 53 4f 46 54 rlwinm. r6,r2,9,29,9 9324: 49 52 51 00 .long 0x515249 @@ -57309,7 +57316,7 @@ static void kvmhv_emulate_tlbie_lpid(str 93e4: 4f 4e 45 4c .long 0x4c454e4f 93e8: 49 53 54 5f rlwnm. r20,r26,r10,13,4 93ec: 46 41 4c 4c .long 0x4c4c4146 - 93f0: 42 41 43 4b ba ff434140 + 93f0: 42 41 43 4b ba ff434140 93f4: 00 75 6e 6d xoris r14,r11,29952 93f8: 61 70 5f 67 oris r31,r26,28769 93fc: 66 6e 5f 72 andi. r31,r18,28262 @@ -57456,7 +57463,7 @@ static void kvmhv_emulate_tlbie_lpid(str 9630: 64 65 6e 74 andis. r14,r3,25956 9634: 72 79 5f 6c xoris r31,r2,31090 9638: 72 75 00 42 bdnza 7570 <.debug_str+0x7570> - 963c: 4c 4f 43 4b b ffffffffff43e588 + 963c: 4c 4f 43 4b b ffffffffff43e588 9640: 5f 53 4f 46 .long 0x464f535f 9644: 54 49 52 51 rlwimi r18,r10,9,5,10 9648: 00 6e 65 74 andis. r5,r3,28160 @@ -57475,8 +57482,8 @@ static void kvmhv_emulate_tlbie_lpid(str 967c: 70 6c 61 63 ori r1,r27,27760 9680: 65 6d 65 6e xoris r5,r19,28005 9684: 74 00 43 4f .long 0x4f430074 - 9688: 4d 50 41 43 bcl- 26,gt,e6d4 - 968c: 54 53 55 43 bc- 26,4*cr5+gt,e9e0 + 9688: 4d 50 41 43 bcl- 26,gt,e6d4 + 968c: 54 53 55 43 bc- 26,4*cr5+gt,e9e0 9690: 43 45 53 53 rlwimi. r19,r26,8,21,1 9694: 00 70 67 74 andis. r7,r3,28672 9698: 61 62 6c 65 oris r12,r11,25185 @@ -57499,7 +57506,7 @@ static void kvmhv_emulate_tlbie_lpid(str 96dc: 5f 66 6c 61 ori r12,r11,26207 96e0: 67 73 00 48 bla 7364 <.debug_str+0x7364> 96e4: 52 54 49 4d .long 0x4d495452 - 96e8: 45 52 5f 42 bcl 18,4*cr7+so,e92c + 96e8: 45 52 5f 42 bcl 18,4*cr7+so,e92c 96ec: 41 53 45 5f rlwnm. r5,r26,r10,13,0 96f0: 54 41 49 00 .long 0x494154 96f4: 6b 69 5f 77 andis. r31,r26,26987 @@ -57521,7 +57528,7 @@ static void kvmhv_emulate_tlbie_lpid(str 9734: 5a 4f 4e 45 .long 0x454e4f5a 9738: 5f 52 45 43 bcla- 26,4*cr1+gt,525c <.debug_str+0x525c> 973c: 4c 41 49 4d .long 0x4d49414c - 9740: 5f 46 41 49 bla 141465c + 9740: 5f 46 41 49 bla 141465c 9744: 4c 45 44 00 .long 0x44454c 9748: 70 61 72 65 oris r18,r11,24944 974c: 6e 74 5f 69 xori r31,r10,29806 @@ -57558,11 +57565,11 @@ static void kvmhv_emulate_tlbie_lpid(str 97c8: 61 00 64 6c xoris r4,r3,97 97cc: 5f 74 69 6d xoris r9,r11,29791 97d0: 65 72 00 57 rlwinm. r0,r24,14,9,18 - 97d4: 4f 52 4b 49 bla 14b524c + 97d4: 4f 52 4b 49 bla 14b524c 97d8: 4e 47 53 45 .long 0x4553474e - 97dc: 54 5f 41 43 bc- 26,gt,f730 - 97e0: 54 49 56 41 bdzt 4*cr5+eq,e134 - 97e4: 54 45 5f 41 bdzt 4*cr7+so,dd38 + 97dc: 54 5f 41 43 bc- 26,gt,f730 + 97e0: 54 49 56 41 bdzt 4*cr5+eq,e134 + 97e4: 54 45 5f 41 bdzt 4*cr7+so,dd38 97e8: 4e 4f 4e 00 .long 0x4e4f4e 97ec: 74 6c 62 5f rlwnm r2,r27,r13,17,26 97f0: 73 65 74 73 andi. r20,r27,25971 @@ -57571,12 +57578,12 @@ static void kvmhv_emulate_tlbie_lpid(str 97fc: 4e 4f 5f 44 .long 0x445f4f4e 9800: 52 49 56 45 .long 0x45564952 9804: 52 00 4d 43 bca- 26,4*cr3+gt,50 <.debug_str+0x50> - 9808: 45 5f 4c 49 bl 14cf74c + 9808: 45 5f 4c 49 bl 14cf74c 980c: 4e 4b 5f 45 .long 0x455f4b4e 9810: 52 52 4f 52 rlwimi r15,r18,10,9,9 9814: 5f 49 4e 44 .long 0x444e495f 9818: 45 54 45 52 rlwimi. r5,r18,10,17,2 - 981c: 4d 49 4e 41 bdztl 4*cr3+eq,e168 + 981c: 4d 49 4e 41 bdztl 4*cr3+eq,e168 9820: 54 45 00 46 .long 0x46004554 9824: 41 55 4c 54 rlwinm. r12,r2,10,21,0 9828: 5f 46 4c 41 bdztla 4*cr3+lt,465c <.debug_str+0x465c> @@ -57606,14 +57613,14 @@ static void kvmhv_emulate_tlbie_lpid(str 9888: 5f 63 6f 75 andis. r15,r11,25439 988c: 6e 74 73 00 .long 0x73746e 9890: 4d 4d 55 5f rlwnm. r21,r26,r9,21,6 - 9894: 4e 4f 54 49 ba 1544f4c + 9894: 4e 4f 54 49 ba 1544f4c 9898: 46 59 5f 4d .long 0x4d5f5946 - 989c: 49 47 52 41 bdztl 4*cr4+eq,dfe4 + 989c: 49 47 52 41 bdztl 4*cr4+eq,dfe4 98a0: 54 45 00 4d .long 0x4d004554 98a4: 43 45 5f 45 .long 0x455f4543 98a8: 52 52 4f 52 rlwimi r15,r18,10,9,9 98ac: 5f 54 59 50 rlwimi. r25,r2,10,17,15 - 98b0: 45 5f 49 43 bcl- 26,4*cr2+gt,f7f4 + 98b0: 45 5f 49 43 bcl- 26,4*cr2+gt,f7f4 98b4: 41 43 48 45 .long 0x45484341 98b8: 00 73 69 76 andis. r9,r19,29440 98bc: 61 6c 5f 69 xori r31,r10,27745 @@ -57659,7 +57666,7 @@ static void kvmhv_emulate_tlbie_lpid(str 995c: 00 5f 5f 53 rlwimi r31,r26,11,28,0 9960: 44 5f 41 53 rlwimi r1,r26,11,29,2 9964: 59 4d 5f 50 rlwimi. r31,r2,9,21,12 - 9968: 41 43 4b 49 bl 14bdca8 + 9968: 41 43 4b 49 bl 14bdca8 996c: 4e 47 00 6d xoris r0,r8,18254 9970: 69 6e 5f 66 oris r31,r18,28265 9974: 6c 74 00 64 oris r0,r0,29804 @@ -57697,9 +57704,9 @@ static void kvmhv_emulate_tlbie_lpid(str 99f4: 65 64 00 4e .long 0x4e006465 99f8: 52 5f 53 4c .long 0x4c535f52 99fc: 41 42 5f 52 rlwimi. r31,r18,8,9,0 - 9a00: 45 43 4c 41 bdztl 4*cr3+lt,dd44 - 9a04: 49 4d 41 42 bcl 18,gt,e74c - 9a08: 4c 45 5f 42 bc 18,4*cr7+so,df54 + 9a00: 45 43 4c 41 bdztl 4*cr3+lt,dd44 + 9a04: 49 4d 41 42 bcl 18,gt,e74c + 9a08: 4c 45 5f 42 bc 18,4*cr7+so,df54 9a0c: 00 61 63 74 andis. r3,r3,24832 9a10: 69 76 65 5f rlwnm. r5,r27,r14,25,20 9a14: 63 6f 75 6e xoris r21,r19,28515 @@ -58015,7 +58022,7 @@ static void kvmhv_emulate_tlbie_lpid(str 9eec: 00 44 45 56 rlwinm r5,r18,8,16,0 9ef0: 49 43 45 5f rlwnm. r5,r26,r8,13,4 9ef4: 50 41 4e 45 .long 0x454e4150 - 9ef8: 4c 5f 42 41 bdzt eq,fe44 + 9ef8: 4c 5f 42 41 bdzt eq,fe44 9efc: 43 4b 00 69 xori r0,r8,19267 9f00: 5f 77 72 69 xori r18,r11,30559 9f04: 74 65 63 6f xoris r3,r27,25972 @@ -58109,7 +58116,7 @@ static void kvmhv_emulate_tlbie_lpid(str a064: 73 6b 00 70 andi. r0,r0,27507 a068: 69 6d 61 70 andi. r1,r3,28009 a06c: 00 4e 52 5f rlwnm r18,r26,r9,24,0 - a070: 49 4e 41 43 bcl- 26,gt,eeb8 + a070: 49 4e 41 43 bcl- 26,gt,eeb8 a074: 54 49 56 45 .long 0x45564954 a078: 5f 46 49 4c .long 0x4c49465f a07c: 45 00 5f 5f rlwnm. r31,r26,r0,1,2 @@ -58117,7 +58124,7 @@ static void kvmhv_emulate_tlbie_lpid(str a084: 77 61 72 6e xoris r18,r19,24951 a088: 5f 6f 6e 00 .long 0x6e6f5f a08c: 4c 52 55 5f rlwnm r21,r26,r10,9,6 - a090: 49 4e 41 43 bcl- 26,gt,eed8 + a090: 49 4e 41 43 bcl- 26,gt,eed8 a094: 54 49 56 45 .long 0x45564954 a098: 5f 41 4e 4f .long 0x4f4e415f a09c: 4e 00 74 68 xori r20,r3,78 @@ -58182,9 +58189,9 @@ static void kvmhv_emulate_tlbie_lpid(str a188: 6d 73 69 5f rlwnm. r9,r27,r14,13,22 a18c: 6d 73 67 00 .long 0x67736d a190: 55 4e 45 56 rlwinm. r5,r18,9,25,10 - a194: 49 43 54 41 bdztl 4*cr5+lt,e4dc + a194: 49 43 54 41 bdztl 4*cr5+lt,e4dc a198: 42 4c 45 5f rlwnm r5,r26,r9,17,1 - a19c: 50 47 53 43 bc- 26,4*cr4+so,e8ec + a19c: 50 47 53 43 bc- 26,4*cr4+so,e8ec a1a0: 41 4e 4e 45 .long 0x454e4e41 a1a4: 44 00 61 63 ori r1,r27,68 a1a8: 74 69 76 65 oris r22,r11,26996 @@ -58206,10 +58213,10 @@ static void kvmhv_emulate_tlbie_lpid(str a1e8: 00 46 41 55 rlwinm r1,r10,8,24,0 a1ec: 4c 54 5f 46 .long 0x465f544c a1f0: 4c 41 47 5f rlwnm r7,r26,r8,5,6 - a1f4: 55 4e 53 48 bl 53f048 + a1f4: 55 4e 53 48 bl 53f048 a1f8: 41 52 45 00 .long 0x455241 - a1fc: 44 45 56 49 b 156e740 - a200: 43 45 5f 48 bla 5f4540 + a1fc: 44 45 56 49 b 156e740 + a200: 43 45 5f 48 bla 5f4540 a204: 4f 52 49 5f rlwnm. r9,r26,r10,9,7 a208: 50 4f 53 5f rlwnm r19,r26,r9,29,8 a20c: 4c 45 46 54 rlwinm r6,r2,8,21,6 @@ -58268,11 +58275,11 @@ static void kvmhv_emulate_tlbie_lpid(str a2e0: 00 70 6f 73 andi. r15,r27,28672 a2e4: 69 78 5f 74 andis. r31,r2,30825 a2e8: 69 6d 65 72 andi. r5,r19,28009 - a2ec: 73 00 54 48 bla 540070 + a2ec: 73 00 54 48 bla 540070 a2f0: 50 5f 43 4f .long 0x4f435f50 a2f4: 4c 4c 41 50 rlwimi r1,r2,9,17,6 a2f8: 53 45 5f 41 bdztla 4*cr7+so,4550 <.debug_str+0x4550> - a2fc: 4c 4c 4f 43 bc- 26,4*cr3+so,ef48 + a2fc: 4c 4c 4f 43 bc- 26,4*cr3+so,ef48 a300: 00 6b 76 6d xoris r22,r11,27392 a304: 68 76 5f 66 oris r31,r18,30312 a308: 6c 75 73 68 xori r19,r3,30060 @@ -58280,7 +58287,7 @@ static void kvmhv_emulate_tlbie_lpid(str a310: 74 65 64 00 .long 0x646574 a314: 4d 45 4d 4f .long 0x4f4d454d a318: 52 59 5f 44 .long 0x445f5952 - a31c: 45 56 49 43 bcl- 26,4*cr2+gt,f960 + a31c: 45 56 49 43 bcl- 26,4*cr2+gt,f960 a320: 45 5f 50 52 rlwimi. r16,r18,11,29,2 a324: 49 56 41 54 rlwinm. r1,r2,10,25,4 a328: 45 00 67 65 oris r7,r11,69 @@ -58311,7 +58318,7 @@ static void kvmhv_emulate_tlbie_lpid(str a38c: 75 72 63 65 oris r3,r11,29301 a390: 5f 6c 69 73 andi. r9,r27,27743 a394: 74 00 4e 5f rlwnm r14,r26,r0,1,26 - a398: 4f 4e 4c 49 bla 14c4e4c + a398: 4f 4e 4c 49 bla 14c4e4c a39c: 4e 45 00 68 xori r0,r0,17742 a3a0: 63 61 6c 6c xoris r12,r3,24931 a3a4: 5f 69 6d 70 andi. r13,r3,26975 @@ -58333,7 +58340,7 @@ static void kvmhv_emulate_tlbie_lpid(str a3e4: 61 63 74 69 xori r20,r11,25441 a3e8: 76 65 5f 72 andi. r31,r18,25974 a3ec: 65 66 00 4d .long 0x4d006665 - a3f0: 49 47 52 41 bdztl 4*cr4+eq,eb38 + a3f0: 49 47 52 41 bdztl 4*cr4+eq,eb38 a3f4: 54 45 5f 50 rlwimi r31,r2,8,21,10 a3f8: 43 50 54 59 rlmi. r20,r10,r10,1,1 a3fc: 50 45 53 00 .long 0x534550 @@ -58349,7 +58356,7 @@ static void kvmhv_emulate_tlbie_lpid(str a424: 65 64 00 52 rlwimi. r0,r16,12,17,18 a428: 53 45 51 5f rlwnm. r17,r26,r8,21,9 a42c: 45 56 45 4e addpcis r18,22091 - a430: 54 5f 53 49 b 1540384 + a430: 54 5f 53 49 b 1540384 a434: 47 4e 41 4c .long 0x4c414e47 a438: 5f 42 49 54 rlwinm. r9,r2,8,9,15 a43c: 00 6f 6e 6c xoris r14,r3,28416 @@ -58406,7 +58413,7 @@ static void kvmhv_emulate_tlbie_lpid(str a508: 5f 61 63 63 ori r3,r27,24927 a50c: 65 73 73 65 oris r19,r11,29541 a510: 64 00 52 53 rlwimi r18,r26,0,1,18 - a514: 45 51 5f 43 bcl- 26,4*cr7+so,f658 + a514: 45 51 5f 43 bcl- 26,4*cr7+so,f658 a518: 53 5f 46 4c .long 0x4c465f53 a51c: 41 47 5f 4e .long 0x4e5f4741 a520: 4f 5f 52 45 .long 0x45525f4f @@ -58417,13 +58424,13 @@ static void kvmhv_emulate_tlbie_lpid(str a534: 42 49 54 00 .long 0x544942 a538: 4e 55 4d 41 bdzta 4*cr3+gt,554c <.debug_str+0x554c> a53c: 5f 48 49 4e .long 0x4e49485f - a540: 54 5f 46 41 bdzt 4*cr1+eq,10494 + a540: 54 5f 46 41 bdzt 4*cr1+eq,10494 a544: 55 4c 54 53 rlwimi. r20,r26,9,17,10 a548: 00 6e 72 5f rlwnm r18,r27,r13,24,0 a54c: 61 63 74 69 xori r20,r11,25441 a550: 6f 6e 73 00 .long 0x736e6f a554: 4b 53 57 41 bdztla 4*cr5+so,5348 <.debug_str+0x5348> - a558: 50 44 5f 49 b 15fe9a8 + a558: 50 44 5f 49 b 15fe9a8 a55c: 4e 4f 44 45 .long 0x45444f4e a560: 53 54 45 41 bdztla 4*cr1+gt,5450 <.debug_str+0x5450> a564: 4c 00 5f 5f rlwnm r31,r26,r0,1,6 @@ -58446,9 +58453,9 @@ static void kvmhv_emulate_tlbie_lpid(str a5a8: 75 6e 74 00 .long 0x746e75 a5ac: 46 41 55 4c .long 0x4c554146 a5b0: 54 5f 46 4c .long 0x4c465f54 - a5b4: 41 47 5f 49 bl 15fecf4 + a5b4: 41 47 5f 49 bl 15fecf4 a5b8: 4e 53 54 52 rlwimi r20,r18,10,13,7 - a5bc: 55 43 54 49 bl 154e910 + a5bc: 55 43 54 49 bl 154e910 a5c0: 4f 4e 00 5f rlwnm. r0,r24,r9,25,7 a5c4: 73 74 69 6d xoris r9,r11,29811 a5c8: 65 00 6b 76 andis. r11,r19,101 @@ -58540,7 +58547,7 @@ static void kvmhv_emulate_tlbie_lpid(str a720: 64 61 77 72 andi. r23,r19,24932 a724: 30 00 44 52 rlwimi r4,r18,0,0,24 a728: 4f 50 5f 50 rlwimi. r31,r2,10,1,7 - a72c: 41 47 45 43 bcl- 26,4*cr1+gt,ee6c + a72c: 41 47 45 43 bcl- 26,4*cr1+gt,ee6c a730: 41 43 48 45 .long 0x45484341 a734: 00 4d 43 45 .long 0x45434d00 a738: 5f 45 43 4c .long 0x4c43455f @@ -58548,7 +58555,7 @@ static void kvmhv_emulate_tlbie_lpid(str a740: 48 41 52 44 .long 0x44524148 a744: 5f 49 4e 44 .long 0x444e495f a748: 45 54 45 52 rlwimi. r5,r18,10,17,2 - a74c: 4d 49 4e 41 bdztl 4*cr3+eq,f098 + a74c: 4d 49 4e 41 bdztl 4*cr3+eq,f098 a750: 54 45 00 72 andi. r0,r16,17748 a754: 65 6d 6f 76 andis. r15,r19,28005 a758: 61 62 6c 65 oris r12,r11,25185 @@ -58556,7 +58563,7 @@ static void kvmhv_emulate_tlbie_lpid(str a760: 5f 45 52 52 rlwimi. r18,r18,8,21,15 a764: 4f 52 5f 54 rlwinm. r31,r2,10,9,7 a768: 59 50 45 5f rlwnm. r5,r26,r10,1,12 - a76c: 44 43 41 43 bc- 26,gt,eab0 + a76c: 44 43 41 43 bc- 26,gt,eab0 a770: 48 45 00 6f xoris r0,r24,17736 a774: 73 69 5f 65 oris r31,r10,26995 a778: 6e 61 62 6c xoris r2,r3,24942 @@ -58597,7 +58604,7 @@ static void kvmhv_emulate_tlbie_lpid(str a804: 00 63 6d 6f xoris r13,r27,25344 a808: 5f 66 61 75 andis. r1,r11,26207 a80c: 6c 74 73 00 .long 0x73746c - a810: 50 47 53 43 bc- 26,4*cr4+so,ef60 + a810: 50 47 53 43 bc- 26,4*cr4+so,ef60 a814: 41 4e 5f 46 .long 0x465f4e41 a818: 49 4c 45 00 .long 0x454c49 a81c: 69 5f 6d 6d xoris r13,r11,24425 @@ -58793,12 +58800,12 @@ static void kvmhv_emulate_tlbie_lpid(str ab14: 6f 75 6e 74 andis. r14,r3,30063 ab18: 00 66 61 6c xoris r1,r3,26112 ab1c: 6c 6f 63 61 ori r3,r11,28524 - ab20: 74 65 00 48 b 11094 + ab20: 74 65 00 48 b 11094 ab24: 52 54 49 4d .long 0x4d495452 - ab28: 45 52 5f 42 bcl 18,4*cr7+so,fd6c + ab28: 45 52 5f 42 bcl 18,4*cr7+so,fd6c ab2c: 41 53 45 5f rlwnm. r5,r26,r10,13,0 ab30: 4d 4f 4e 4f .long 0x4f4e4f4d - ab34: 54 4f 4e 49 b 14efa88 + ab34: 54 4f 4e 49 b 14efa88 ab38: 43 00 69 5f rlwnm. r9,r27,r0,1,1 ab3c: 73 70 63 5f rlwnm. r3,r27,r14,1,25 ab40: 77 61 72 6e xoris r18,r19,24951 @@ -58991,10 +58998,10 @@ static void kvmhv_emulate_tlbie_lpid(str ae2c: 66 73 00 73 andi. r0,r24,29542 ae30: 70 5f 73 74 andis. r19,r3,24432 ae34: 6f 72 61 67 oris r1,r27,29295 - ae38: 65 00 54 48 bl 54ae9c - ae3c: 50 5f 46 49 b 1470d8c - ae40: 4c 45 5f 41 bdzt 4*cr7+so,f38c - ae44: 4c 4c 4f 43 bc- 26,4*cr3+so,fa90 + ae38: 65 00 54 48 bl 54ae9c + ae3c: 50 5f 46 49 b 1470d8c + ae40: 4c 45 5f 41 bdzt 4*cr7+so,f38c + ae44: 4c 4c 4f 43 bc- 26,4*cr3+so,fa90 ae48: 00 73 75 62 ori r21,r19,29440 ae4c: 65 72 72 6f xoris r18,r27,29285 ae50: 72 00 63 66 oris r3,r19,114 @@ -59029,7 +59036,7 @@ static void kvmhv_emulate_tlbie_lpid(str aec4: 45 52 49 45 .long 0x45495245 aec8: 53 5f 50 4f .long 0x4f505f53 aecc: 53 53 49 42 bcla 18,4*cr2+gt,5350 <.debug_str+0x5350> - aed0: 4c 45 00 4b b ffffffffff00f41c + aed0: 4c 45 00 4b b ffffffffff00f41c aed4: 56 4d 5f 46 .long 0x465f4d56 aed8: 41 53 54 5f rlwnm. r20,r26,r10,13,0 aedc: 4d 4d 49 4f .long 0x4f494d4d @@ -59043,7 +59050,7 @@ static void kvmhv_emulate_tlbie_lpid(str aefc: 74 6f 6c 74 andis. r12,r3,28532 af00: 62 5f 6c 6f xoris r12,r27,24418 af04: 63 6b 00 4d .long 0x4d006b63 - af08: 49 47 52 41 bdztl 4*cr4+eq,f650 + af08: 49 47 52 41 bdztl 4*cr4+eq,f650 af0c: 54 45 5f 4d .long 0x4d5f4554 af10: 4f 56 41 42 bcla 18,gt,564c <.debug_str+0x564c> af14: 4c 45 00 73 andi. r0,r24,17740 @@ -59070,7 +59077,7 @@ static void kvmhv_emulate_tlbie_lpid(str af68: 00 62 69 6e xoris r9,r19,25088 af6c: 66 6d 74 00 .long 0x746d66 af70: 52 50 4d 5f rlwnm r13,r26,r10,1,9 - af74: 41 43 54 49 bl 154f2b4 + af74: 41 43 54 49 bl 154f2b4 af78: 56 45 00 73 andi. r0,r24,17750 af7c: 69 67 6e 65 oris r14,r11,26473 af80: 64 20 63 68 xori r3,r3,8292 @@ -59098,7 +59105,7 @@ static void kvmhv_emulate_tlbie_lpid(str afd8: 65 6c 64 6d xoris r4,r11,27749 afdc: 61 73 6b 00 .long 0x6b7361 afe0: 4d 4d 55 5f rlwnm. r21,r26,r9,21,6 - afe4: 4e 4f 54 49 ba 1544f4c + afe4: 4e 4f 54 49 ba 1544f4c afe8: 46 59 5f 50 rlwimi r31,r2,11,5,3 afec: 52 4f 54 45 .long 0x45544f52 aff0: 43 54 49 4f .long 0x4f495443 @@ -59155,8 +59162,8 @@ static void kvmhv_emulate_tlbie_lpid(str b0bc: 73 00 70 61 ori r16,r11,115 b0c0: 74 62 5f 65 oris r31,r10,25204 b0c4: 6e 74 72 79 rldimi r18,r11,46,49 - b0c8: 00 4b 4d 41 bdzt 4*cr3+gt,fbc8 - b0cc: 4c 4c 4f 43 bc- 26,4*cr3+so,fd18 + b0c8: 00 4b 4d 41 bdzt 4*cr3+gt,fbc8 + b0cc: 4c 4c 4f 43 bc- 26,4*cr3+so,fd18 b0d0: 5f 43 47 52 rlwimi. r7,r18,8,13,15 b0d4: 4f 55 50 00 .long 0x50554f b0d8: 6e 6f 5f 70 andi. r31,r2,28526 @@ -59169,9 +59176,9 @@ static void kvmhv_emulate_tlbie_lpid(str b0f4: 00 6b 74 69 xori r20,r11,27392 b0f8: 6d 65 5f 74 andis. r31,r2,25965 b0fc: 00 4e 55 4d .long 0x4d554e00 - b100: 41 5f 50 41 bdztl 4*cr4+lt,11040 + b100: 41 5f 50 41 bdztl 4*cr4+lt,11040 b104: 47 45 5f 4d .long 0x4d5f4547 - b108: 49 47 52 41 bdztl 4*cr4+eq,f850 + b108: 49 47 52 41 bdztl 4*cr4+eq,f850 b10c: 54 45 00 73 andi. r0,r24,17748 b110: 68 61 64 6f xoris r4,r27,24936 b114: 77 5f 6d 73 andi. r13,r27,24439 @@ -59200,7 +59207,7 @@ static void kvmhv_emulate_tlbie_lpid(str b170: 6d 65 72 00 .long 0x72656d b174: 4e 52 5f 41 bdzta 4*cr7+so,524c <.debug_str+0x524c> b178: 43 54 49 56 rlwinm. r9,r18,10,17,1 - b17c: 45 5f 46 49 bl 14710c0 + b17c: 45 5f 46 49 bl 14710c0 b180: 4c 45 00 66 oris r0,r16,17740 b184: 75 6e 63 73 andi. r3,r27,28277 b188: 00 65 6e 64 oris r14,r3,25856 @@ -59208,7 +59215,7 @@ static void kvmhv_emulate_tlbie_lpid(str b190: 61 00 6c 70 andi. r12,r3,97 b194: 69 64 00 50 rlwimi. r0,r0,12,17,20 b198: 47 53 54 45 .long 0x45545347 - b19c: 41 4c 5f 4b bl ffffffffff5ffddc + b19c: 41 4c 5f 4b bl ffffffffff5ffddc b1a0: 53 57 41 50 rlwimi. r1,r2,10,29,9 b1a4: 44 00 64 6f xoris r4,r27,68 b1a8: 6e 61 74 65 oris r20,r11,24942 @@ -59316,7 +59323,7 @@ static void kvmhv_emulate_tlbie_lpid(str b340: 6f 72 5f 74 andis. r31,r2,29295 b344: 79 70 65 00 .long 0x657079 b348: 55 53 52 51 rlwimi. r18,r10,10,13,10 - b34c: 55 4f 54 41 bdztl 4*cr5+lt,102a0 + b34c: 55 4f 54 41 bdztl 4*cr5+lt,102a0 b350: 00 69 64 72 andi. r4,r19,26880 b354: 5f 61 6c 6c xoris r12,r3,24927 b358: 6f 63 00 69 xori r0,r8,25455 @@ -59361,7 +59368,7 @@ static void kvmhv_emulate_tlbie_lpid(str b3f4: 74 00 75 6e xoris r21,r19,116 b3f8: 72 65 67 66 oris r7,r19,25970 b3fc: 75 6e 63 00 .long 0x636e75 - b400: 57 4f 52 4b bla ff524f54 + b400: 57 4f 52 4b bla ff524f54 b404: 49 4e 47 53 rlwimi. r7,r26,9,25,4 b408: 45 54 5f 52 rlwimi. r31,r18,10,17,2 b40c: 45 53 54 4f addpcis r26,21353 @@ -59421,8 +59428,8 @@ static void kvmhv_emulate_tlbie_lpid(str b4e4: 72 6b 5f 64 oris r31,r2,27506 b4e8: 69 72 74 79 rldic. r20,r11,14,41 b4ec: 00 5f 5f 53 rlwimi r31,r26,11,28,0 - b4f0: 44 5f 42 41 bdzt eq,11434 - b4f4: 4c 41 4e 43 bc- 26,4*cr3+eq,f640 + b4f0: 44 5f 42 41 bdzt eq,11434 + b4f4: 4c 41 4e 43 bc- 26,4*cr3+eq,f640 b4f8: 45 5f 4e 45 .long 0x454e5f45 b4fc: 57 49 44 4c .long 0x4c444957 b500: 45 00 63 75 andis. r3,r11,69 @@ -59431,7 +59438,7 @@ static void kvmhv_emulate_tlbie_lpid(str b50c: 45 4c 49 53 rlwimi. r9,r26,9,17,2 b510: 54 5f 4e 4f .long 0x4f4e5f54 b514: 46 41 4c 4c .long 0x4c4c4146 - b518: 42 41 43 4b ba ff434140 + b518: 42 41 43 4b ba ff434140 b51c: 00 74 68 72 andi. r8,r19,29696 b520: 65 61 64 5f rlwnm. r4,r27,r12,5,18 b524: 66 6c 61 67 oris r1,r27,27750 @@ -59472,8 +59479,8 @@ static void kvmhv_emulate_tlbie_lpid(str b5b0: 63 5f 69 6e xoris r9,r19,24419 b5b4: 66 6f 00 65 oris r0,r8,28518 b5b8: 78 67 65 6e xoris r5,r19,26488 - b5bc: 00 56 54 49 b 1550bbc - b5c0: 4d 45 5f 49 bl 15ffb0c + b5bc: 00 56 54 49 b 1550bbc + b5c0: 4d 45 5f 49 bl 15ffb0c b5c4: 4e 41 43 54 rlwinm r3,r2,8,5,7 b5c8: 49 56 45 00 .long 0x455649 b5cc: 6b 76 6d 5f rlwnm. r13,r27,r14,25,21 @@ -59514,8 +59521,8 @@ static void kvmhv_emulate_tlbie_lpid(str b658: 41 42 4c 45 .long 0x454c4241 b65c: 00 50 47 50 rlwimi r7,r2,10,0,0 b660: 52 4f 4d 4f .long 0x4f4d4f52 - b664: 54 45 5f 43 bc- 26,4*cr7+so,fbb8 - b668: 41 4e 44 49 bl 14504a8 + b664: 54 45 5f 43 bc- 26,4*cr7+so,fbb8 + b668: 41 4e 44 49 bl 14504a8 b66c: 44 41 54 45 .long 0x45544144 b670: 00 61 63 70 andi. r3,r3,24832 b674: 69 5f 6d 61 ori r13,r11,24425 @@ -59537,7 +59544,7 @@ static void kvmhv_emulate_tlbie_lpid(str b6b4: 6c 6c 73 79 rldimi r19,r11,13,49 b6b8: 6d 73 00 6d xoris r0,r8,29549 b6bc: 6e 74 5f 69 xori r31,r10,29806 - b6c0: 64 00 4d 49 b 14db724 + b6c0: 64 00 4d 49 b 14db724 b6c4: 47 52 41 54 rlwinm. r1,r2,10,9,3 b6c8: 45 5f 54 59 rlmi. r20,r10,r11,29,2 b6cc: 50 45 53 00 .long 0x534550 @@ -59588,9 +59595,9 @@ static void kvmhv_emulate_tlbie_lpid(str b780: 52 41 5f 45 .long 0x455f4152 b784: 52 52 4f 52 rlwimi r15,r18,10,9,9 b788: 5f 50 41 47 .long 0x4741505f - b78c: 45 5f 54 41 bdztl 4*cr5+lt,116d0 + b78c: 45 5f 54 41 bdztl 4*cr5+lt,116d0 b790: 42 4c 45 5f rlwnm r5,r26,r9,17,1 - b794: 57 41 4c 4b bla ff4c4154 + b794: 57 41 4c 4b bla ff4c4154 b798: 5f 4c 4f 41 bdztla 4*cr3+so,4c5c <.debug_str+0x4c5c> b79c: 44 5f 53 54 rlwinm r19,r2,11,29,2 b7a0: 4f 52 45 00 .long 0x45524f @@ -59675,7 +59682,7 @@ static void kvmhv_emulate_tlbie_lpid(str b8dc: 41 42 4c 45 .long 0x454c4241 b8e0: 5f 57 41 4c .long 0x4c41575f b8e4: 4b 5f 49 46 .long 0x46495f4b - b8e8: 45 54 43 48 bl 440d2c + b8e8: 45 54 43 48 bl 440d2c b8ec: 5f 46 4f 52 rlwimi. r15,r18,8,25,15 b8f0: 45 49 47 4e addpcis r18,18767 b8f4: 00 62 75 73 andi. r21,r27,25088 @@ -59718,12 +59725,12 @@ static void kvmhv_emulate_tlbie_lpid(str b988: 4e 52 5f 5a rlmi r31,r18,r10,9,7 b98c: 4f 4e 45 5f rlwnm. r5,r26,r9,25,7 b990: 55 4e 45 56 rlwinm. r5,r18,9,25,10 - b994: 49 43 54 41 bdztl 4*cr5+lt,fcdc + b994: 49 43 54 41 bdztl 4*cr5+lt,fcdc b998: 42 4c 45 00 .long 0x454c42 b99c: 4d 49 47 52 rlwimi. r7,r18,9,5,6 b9a0: 41 54 45 5f rlwnm. r5,r26,r10,17,0 b9a4: 52 45 43 4c .long 0x4c434552 - b9a8: 41 49 4d 41 bdztl 4*cr3+gt,102e8 + b9a8: 41 49 4d 41 bdztl 4*cr3+gt,102e8 b9ac: 42 4c 45 00 .long 0x454c42 b9b0: 68 61 6c 74 andis. r12,r3,24936 b9b4: 5f 73 75 63 ori r21,r27,29535 @@ -59743,7 +59750,7 @@ static void kvmhv_emulate_tlbie_lpid(str b9ec: 46 4c 41 47 .long 0x47414c46 b9f0: 5f 49 4e 54 rlwinm. r14,r2,9,5,15 b9f4: 45 52 52 55 rlwinm. r18,r10,10,9,2 - b9f8: 50 54 49 42 bc 18,4*cr2+gt,10e48 + b9f8: 50 54 49 42 bc 18,4*cr2+gt,10e48 b9fc: 4c 45 00 76 andis. r0,r16,17740 ba00: 63 70 75 5f rlwnm. r21,r27,r14,1,17 ba04: 69 64 00 70 andi. r0,r0,25705 @@ -59772,7 +59779,7 @@ static void kvmhv_emulate_tlbie_lpid(str ba60: 52 5f 46 4f .long 0x4f465f52 ba64: 4c 4c 5f 50 rlwimi r31,r2,9,17,6 ba68: 49 4e 5f 52 rlwimi. r31,r18,9,25,4 - ba6c: 45 4c 45 41 bdztl 4*cr1+gt,106b0 + ba6c: 45 4c 45 41 bdztl 4*cr1+gt,106b0 ba70: 53 45 44 00 .long 0x444553 ba74: 67 66 70 5f rlwnm. r16,r27,r12,25,19 ba78: 6d 61 73 6b xori r19,r27,24941 @@ -59788,7 +59795,7 @@ static void kvmhv_emulate_tlbie_lpid(str baa0: 45 4c 5f 4d addpcis r10,19583 baa4: 49 53 43 5f rlwnm. r3,r26,r10,13,4 baa8: 52 45 43 4c .long 0x4c434552 - baac: 41 49 4d 41 bdztl 4*cr3+gt,103ec + baac: 41 49 4d 41 bdztl 4*cr3+gt,103ec bab0: 42 4c 45 00 .long 0x454c42 bab4: 66 72 65 65 oris r5,r11,29286 bab8: 5f 69 6e 6f xoris r14,r27,26975 @@ -59916,8 +59923,8 @@ static void kvmhv_emulate_tlbie_lpid(str bca0: 5f 5a 45 52 rlwimi. r5,r18,11,9,15 bca4: 4f 5f 50 41 bdztla 4*cr4+lt,5f4c <.debug_str+0x5f4c> bca8: 47 45 5f 41 bdztla 4*cr7+so,4544 <.debug_str+0x4544> - bcac: 4c 4c 4f 43 bc- 26,4*cr3+so,108f8 - bcb0: 5f 46 41 49 bla 141465c + bcac: 4c 4c 4f 43 bc- 26,4*cr3+so,108f8 + bcb0: 5f 46 41 49 bla 141465c bcb4: 4c 45 44 00 .long 0x44454c bcb8: 66 69 6e 64 oris r14,r3,26982 bcbc: 5f 6b 76 6d xoris r22,r11,27487 @@ -59926,18 +59933,18 @@ static void kvmhv_emulate_tlbie_lpid(str bcc8: 72 79 5f 70 andi. r31,r2,31090 bccc: 74 65 00 70 andi. r0,r0,25972 bcd0: 63 6f 75 6e xoris r21,r19,28515 - bcd4: 74 00 54 48 b 54bd48 - bcd8: 50 5f 46 41 bdzt 4*cr1+eq,11c28 + bcd4: 74 00 54 48 b 54bd48 + bcd8: 50 5f 46 41 bdzt 4*cr1+eq,11c28 bcdc: 55 4c 54 5f rlwnm. r20,r26,r9,17,10 bce0: 46 41 4c 4c .long 0x4c4c4146 - bce4: 42 41 43 4b ba ff434140 + bce4: 42 41 43 4b ba ff434140 bce8: 00 77 69 6d xoris r9,r11,30464 bcec: 67 00 72 65 oris r18,r11,103 bcf0: 73 74 6f 72 andi. r15,r19,29811 bcf4: 65 5f 6e 6f xoris r14,r27,24421 bcf8: 69 72 71 00 .long 0x717269 bcfc: 5f 5f 53 44 .long 0x44535f5f - bd00: 5f 57 41 4b bla ff41575c + bd00: 5f 57 41 4b bla ff41575c bd04: 45 5f 41 46 .long 0x46415f45 bd08: 46 49 4e 45 .long 0x454e4946 bd0c: 00 72 65 67 oris r5,r27,29184 @@ -59983,7 +59990,7 @@ static void kvmhv_emulate_tlbie_lpid(str bdac: 75 6e 74 69 xori r20,r11,28277 bdb0: 6d 65 5f 61 ori r31,r10,25965 bdb4: 75 74 6f 00 .long 0x6f7475 - bdb8: 50 52 4f 42 bc 18,4*cr3+so,11008 + bdb8: 50 52 4f 42 bc 18,4*cr3+so,11008 bdbc: 45 5f 44 45 .long 0x45445f45 bdc0: 46 41 55 4c .long 0x4c554146 bdc4: 54 5f 53 54 rlwinm r19,r2,11,29,10 @@ -60078,10 +60085,10 @@ static void kvmhv_emulate_tlbie_lpid(str bf28: 74 5f 70 72 andi. r16,r19,24436 bf2c: 69 6f 72 69 xori r18,r11,28521 bf30: 74 79 00 44 svc 75,7,5 - bf34: 45 56 49 43 bcl- 26,4*cr2+gt,11578 - bf38: 45 5f 50 41 bdztl 4*cr4+lt,11e7c + bf34: 45 56 49 43 bcl- 26,4*cr2+gt,11578 + bf38: 45 5f 50 41 bdztl 4*cr4+lt,11e7c bf3c: 4e 45 4c 5f rlwnm r12,r26,r8,21,7 - bf40: 52 49 47 48 ba 474950 + bf40: 52 49 47 48 ba 474950 bf44: 54 00 74 71 andi. r20,r11,84 bf48: 68 65 61 64 oris r1,r3,25960 bf4c: 00 73 74 61 ori r20,r11,29440 @@ -60092,7 +60099,7 @@ static void kvmhv_emulate_tlbie_lpid(str bf60: 74 69 76 65 oris r22,r11,26996 bf64: 00 5f 5f 53 rlwimi r31,r26,11,28,0 bf68: 44 5f 46 4c addpcis r2,24396 - bf6c: 41 47 5f 43 bcl- 26,4*cr7+so,106ac + bf6c: 41 47 5f 43 bcl- 26,4*cr7+so,106ac bf70: 4e 54 00 72 andi. r0,r16,21582 bf74: 5f 76 61 6c xoris r1,r3,30303 bf78: 00 72 65 6d xoris r5,r11,29184 @@ -60214,7 +60221,7 @@ static void kvmhv_emulate_tlbie_lpid(str c148: 78 69 74 5f rlwnm r20,r27,r13,5,28 c14c: 73 74 61 74 andis. r1,r3,29811 c150: 65 00 52 53 rlwimi. r18,r26,0,1,18 - c154: 45 51 5f 43 bcl- 26,4*cr7+so,11298 + c154: 45 51 5f 43 bcl- 26,4*cr7+so,11298 c158: 53 5f 46 4c .long 0x4c465f53 c15c: 41 47 5f 4e .long 0x4e5f4741 c160: 4f 5f 52 45 .long 0x45525f4f @@ -60233,8 +60240,8 @@ static void kvmhv_emulate_tlbie_lpid(str c194: 65 6e 64 65 oris r4,r11,28261 c198: 64 00 73 79 rldicr r19,r11,0,33 c19c: 73 76 73 65 oris r19,r11,30323 - c1a0: 6d 00 54 48 bl 54c20c - c1a4: 50 5f 46 41 bdzt 4*cr1+eq,120f4 + c1a0: 6d 00 54 48 bl 54c20c + c1a4: 50 5f 46 41 bdzt 4*cr1+eq,120f4 c1a8: 55 4c 54 5f rlwnm. r20,r26,r9,17,10 c1ac: 41 4c 4c 4f .long 0x4f4c4c41 c1b0: 43 00 6e 75 andis. r14,r11,67 @@ -60275,7 +60282,7 @@ static void kvmhv_emulate_tlbie_lpid(str c23c: 45 4e 00 6e xoris r0,r16,20037 c240: 6f 74 69 66 oris r9,r19,29807 c244: 79 00 4e 55 rlwinm. r14,r10,0,1,28 - c248: 4c 4c 5f 43 bc- 26,4*cr7+so,10e94 + c248: 4c 4c 5f 43 bc- 26,4*cr7+so,10e94 c24c: 4f 4d 50 4f .long 0x4f504d4f c250: 55 4e 44 5f rlwnm. r4,r26,r9,25,10 c254: 44 54 4f 52 rlwimi r15,r18,10,17,2 @@ -60317,7 +60324,7 @@ static void kvmhv_emulate_tlbie_lpid(str c2e4: 69 6e 74 00 .long 0x746e69 c2e8: 5f 5f 53 44 .long 0x44535f5f c2ec: 5f 53 45 52 rlwimi. r5,r18,10,13,15 - c2f0: 49 41 4c 49 bl 14d0438 + c2f0: 49 41 4c 49 bl 14d0438 c2f4: 5a 45 00 72 andi. r0,r16,17754 c2f8: 74 61 73 5f rlwnm r19,r27,r12,5,26 c2fc: 74 6f 6b 65 oris r11,r11,28532 @@ -60453,7 +60460,7 @@ Disassembly of section .comment: 0000000000000000 <.comment>: { - 0: 00 47 43 43 bc- 26,so,4700 + 0: 00 47 43 43 bc- 26,so,4700 4: 3a 20 28 47 .long 0x4728203a for (; addr < ((unsigned long *) (regs + 1)); addr++) 8: 4e 55 29 20 subfic r1,r9,21838 @@ -60568,11 +60575,11 @@ Disassembly of section .debug_frame: hr->dawrx0 = swab64(hr->dawrx0); 128: 49 0e 70 9f stbu r27,3657(r16) hr->srr1 = swab64(hr->srr1); - 12c: 01 46 09 41 bdnztl 4*cr2+gt,472c + 12c: 01 46 09 41 bdnztl 4*cr2+gt,472c hr->ciabr = swab64(hr->ciabr); - 130: 00 43 11 41 bdnzt 4*cr4+gt,4430 + 130: 00 43 11 41 bdnzt 4*cr4+gt,4430 hr->hdec_expiry = swab64(hr->hdec_expiry); - 134: 7e 49 06 41 bdnzta 4*cr1+eq,497c + 134: 7e 49 06 41 bdnzta 4*cr1+eq,497c hr->purr = swab64(hr->purr); 138: 41 0e 00 41 bdnztl lt,f78 hr->spurr = swab64(hr->spurr); @@ -60589,7 +60596,7 @@ Disassembly of section .debug_frame: hr->sprg[1] = swab64(hr->sprg[1]); 15c: 41 7e 43 0e twi 18,r3,32321 hr->hdar = swab64(hr->hdar); - 160: 00 42 06 41 bdnzt 4*cr1+eq,4360 + 160: 00 42 06 41 bdnzt 4*cr1+eq,4360 hr->hdsisr = swab64(hr->hdsisr); 164: 00 00 00 00 .long 0x0 hr->sprg[1] = swab64(hr->sprg[1]); @@ -60612,10 +60619,10 @@ Disassembly of section .debug_frame: hr->vtb = swab64(hr->vtb); 198: 41 df de dd stfdu f14,-8383(r30) hr->sprg[3] = swab64(hr->sprg[3]); - 19c: dc 44 0b 41 bdnzt 4*cr2+so,4678 + 19c: dc 44 0b 41 bdnzt 4*cr2+so,4678 hr->pidr = swab64(hr->pidr); 1a0: 9b 05 5a 0a tdi 18,r26,1435 - 1a4: db 41 0b 42 bcla 16,4*cr2+so,41d8 + 1a4: db 41 0b 42 bcla 16,4*cr2+so,41d8 hr->heir = swab64(hr->heir); 1a8: 0a db 46 0b tdi 26,r6,-9462 hr->cfar = swab64(hr->cfar); @@ -60643,7 +60650,7 @@ Disassembly of section .debug_frame: hr->sprg[2] = swab64(hr->sprg[2]); 1e4: 43 0b 55 0e twi 18,r21,2883 hr->sprg[3] = swab64(hr->sprg[3]); - 1e8: 00 43 06 41 bdnzt 4*cr1+eq,44e8 + 1e8: 00 43 06 41 bdnzt 4*cr1+eq,44e8 hr->pidr = swab64(hr->pidr); 1ec: df 00 00 00 .long 0xdf hr->cfar = swab64(hr->cfar); @@ -60662,10 +60669,10 @@ Disassembly of section .debug_frame: 220: 46 06 41 df stfdu f26,1606(r1) 224: de dd dc 44 .long 0x44dcddde 228: 0b 58 0a 0e twlti r10,22539 - 22c: 00 46 06 41 bdnzt 4*cr1+eq,482c + 22c: 00 46 06 41 bdnzt 4*cr1+eq,482c 230: df de dd dc stfdu f6,-8481(r29) 234: 42 0b 41 9b stb r26,2882(r1) - 238: 05 5b db 48 bl db5d3c + 238: 05 5b db 48 bl db5d3c 23c: 9b 05 43 db stfd f26,1435(r3) radix__flush_all_lpid(lpid); 240: 45 9b 05 00 .long 0x59b45 @@ -60709,7 +60716,7 @@ Disassembly of section .debug_frame: 2d8: 4a 06 41 df stfdu f26,1610(r1) if (rc == H_BUSY) { 2dc: de dd dc db stfd f30,-8738(r28) - 2e0: da d9 d8 41 blta- cr6,ffffd9d8 + 2e0: da d9 d8 41 blta- cr6,ffffd9d8 } else if (rc == H_SUCCESS) 2e4: 0b 00 00 00 .long 0xb 2e8: 6c 00 00 00 .long 0x6c @@ -60720,7 +60727,7 @@ Disassembly of section .debug_frame: 300: 48 0e 50 9e stbu r18,3656(r16) 304: 02 11 48 7f .long 0x7f481102 308: 46 09 41 00 .long 0x410946 - 30c: 41 9b 05 41 bdnztl 4*cr1+gt,ffffffffffff9e4c + 30c: 41 9b 05 41 bdnztl 4*cr1+gt,ffffffffffff9e4c 310: 9d 03 43 9c stbu r2,925(r3) 314: 04 41 9f 01 .long 0x19f4104 318: 43 11 41 7e .long 0x7e411143 @@ -60736,10 +60743,10 @@ Disassembly of section .debug_frame: 334: 04 9d 03 9e stbu r16,-25340(r3) static bool kvmhv_invalidate_shadow_pte(struct kvm_vcpu *vcpu, 338: 02 9f 01 11 .long 0x11019f02 - 33c: 41 7e 11 48 bl 11817c - 340: 7f 44 db 41 bsola- cr6,447c - 344: dc 41 dd 41 bgt- cr7,4520 - 348: df 41 06 41 bdnztla 4*cr1+eq,41dc + 33c: 41 7e 11 48 bl 11817c + 340: 7f 44 db 41 bsola- cr6,447c + 344: dc 41 dd 41 bgt- cr7,4520 + 348: df 41 06 41 bdnztla 4*cr1+eq,41dc 34c: 44 9b 05 9c stbu r0,-25788(r5) 350: 04 9d 03 9f stbu r24,-25340(r3) int shift; @@ -60757,7 +60764,7 @@ static bool kvmhv_invalidate_shadow_pte( int shift; 384: 41 df de 44 .long 0x44dedf41 388: 0b 41 0a 0e twlti r10,16651 - 38c: 00 45 06 41 bdnzt 4*cr1+eq,488c + 38c: 00 45 06 41 bdnzt 4*cr1+eq,488c return idr_find(&kvm->arch.kvm_nested_guest_idr, lpid); 390: df de 42 0b tdi 26,r2,-8481 394: 00 00 00 00 .long 0x0 @@ -60773,7 +60780,7 @@ static bool kvmhv_invalidate_shadow_pte( if (!shift) 3c0: 97 09 41 98 stb r2,2455(r1) pte = __find_linux_pte(gp->shadow_pgtable, ea, NULL, hshift); - 3c4: 08 6c d7 41 bso- cr5,6fcc + 3c4: 08 6c d7 41 bso- cr5,6fcc if (!shift) 3c8: d8 48 0e 00 .long 0xe48d8 3cc: 44 06 41 df stfdu f26,1604(r1) @@ -60784,36 +60791,36 @@ static bool kvmhv_invalidate_shadow_pte( return (pte_raw(pte) & cpu_to_be64(_PAGE_PRESENT | _PAGE_PTE)) == 3dc: 01 11 41 7e .long 0x7e411101 if (pte_hw_valid(pte)) - 3e0: 4e 9e 02 42 bca 16,eq,ffff9e4c + 3e0: 4e 9e 02 42 bca 16,eq,ffff9e4c 3e4: 8f 11 41 90 stw r2,4495(r1) return (pte_raw(pte) & cpu_to_be64(_PAGE_INVALID | _PAGE_PTE)) == 3e8: 10 41 91 0f twi 28,r17,16656 - 3ec: 41 92 0e 41 bdnztl 4*cr3+eq,ffffffffffff962c + 3ec: 41 92 0e 41 bdnztl 4*cr3+eq,ffffffffffff962c 3f0: 93 0d 41 94 stwu r2,3475(r1) if (unlikely(ms->mmiowb_pending)) { 3f4: 0c 41 95 0b tdi 28,r21,16652 struct mmiowb_state *ms = __mmiowb_state(); - 3f8: 41 96 0a 41 bdnztl 4*cr2+eq,ffffffffffff9a38 + 3f8: 41 96 0a 41 bdnztl 4*cr2+eq,ffffffffffff9a38 if (unlikely(ms->mmiowb_pending)) { 3fc: 9a 06 41 9b stb r26,1690(r1) 400: 05 41 9c 04 .long 0x49c4105 ms->nesting_count--; - 404: 41 9d 03 41 bdnztl so,ffffffffffffa144 + 404: 41 9d 03 41 bdnztl so,ffffffffffffa144 408: cf d0 d1 d2 stfs f22,-12081(r17) 40c: d3 d4 d5 d6 stfsu f22,-11053(r21) 410: d7 d8 da db stfd f30,-10025(r26) 414: dc dd de 44 .long 0x44dedddc 418: 97 09 98 08 tdeqi r24,2455 if (shift_ret) - 41c: 4d 9e 02 41 bdnztl eq,ffffffffffffa268 + 41c: 4d 9e 02 41 bdnztl eq,ffffffffffffa268 420: 8f 11 41 90 stw r2,4495(r1) *shift_ret = shift; 424: 10 41 91 0f twi 28,r17,16656 - 428: 41 92 0e 41 bdnztl 4*cr3+eq,ffffffffffff9668 + 428: 41 92 0e 41 bdnztl 4*cr3+eq,ffffffffffff9668 } 42c: 93 0d 41 94 stwu r2,3475(r1) 430: 0c 41 95 0b tdi 28,r21,16652 - 434: 41 96 0a 41 bdnztl 4*cr2+eq,ffffffffffff9a74 + 434: 41 96 0a 41 bdnztl 4*cr2+eq,ffffffffffff9a74 438: 9a 06 41 9b stb r26,1690(r1) 43c: 05 41 9c 04 .long 0x49c4105 440: 41 9d 03 03 .long 0x3039d41 @@ -60854,17 +60861,17 @@ static bool kvmhv_invalidate_shadow_pte( if (!shift) 4b0: dd de 41 9e stbu r18,-8483(r1) 4b4: 02 41 8f 11 vmaxsb v12,v15,v8 - 4b8: 42 90 10 41 bdnzta 4*cr4+lt,ffff9040 + 4b8: 42 90 10 41 bdnzta 4*cr4+lt,ffff9040 shift = PAGE_SHIFT; 4bc: 91 0f 41 92 stw r18,3985(r1) 4c0: 0e 41 93 0d twgei r19,16654 if (ptep && pte_present(*ptep)) { - 4c4: 41 94 0c 41 bdnztl 4*cr3+lt,ffffffffffff9904 + 4c4: 41 94 0c 41 bdnztl 4*cr3+lt,ffffffffffff9904 } 4c8: 95 0b 41 96 stwu r18,2965(r1) 4cc: 0a 41 9a 06 .long 0x69a410a { - 4d0: 41 9b 05 41 bdnztl 4*cr1+gt,ffffffffffffa010 + 4d0: 41 9b 05 41 bdnztl 4*cr1+gt,ffffffffffffa010 4d4: 9c 04 41 9d stbu r10,1180(r1) hr->pcr = vc->pcr | PCR_MASK; 4d8: 03 47 0a cf lfdu f24,18179(r10) @@ -60885,49 +60892,49 @@ static bool kvmhv_invalidate_shadow_pte( 504: dd de 41 8f lbzu r26,-8483(r1) 508: 11 41 90 10 mulchwu. r4,r16,r8 hr->tb_offset = vc->tb_offset; - 50c: 41 91 0f 41 bdnztl 4*cr3+so,ffffffffffff964c + 50c: 41 91 0f 41 bdnztl 4*cr3+so,ffffffffffff964c 510: 92 0e 41 93 stw r26,3730(r1) hr->dawr0 = vcpu->arch.dawr0; 514: 0d 41 94 0c tweqi r20,16653 - 518: 41 95 0b 41 bdnztl 4*cr2+so,ffffffffffff9a58 + 518: 41 95 0b 41 bdnztl 4*cr2+so,ffffffffffff9a58 hr->dawrx0 = vcpu->arch.dawrx0; 51c: 96 0a 41 97 stwu r26,2710(r1) 520: 09 41 98 08 tdeqi r24,16649 hr->ciabr = vcpu->arch.ciabr; - 524: 41 9a 06 41 bdnztl 4*cr1+eq,ffffffffffff9f64 + 524: 41 9a 06 41 bdnztl 4*cr1+eq,ffffffffffff9f64 528: 9b 05 41 9c stbu r2,1435(r1) hr->purr = vcpu->arch.purr; 52c: 04 41 9d 03 .long 0x39d4104 530: 41 9e 02 00 .long 0x29e41 hr->spurr = vcpu->arch.spurr; 534: 00 00 00 00 .long 0x0 - 538: 7c 00 00 00 .long 0x7c + 538: 84 00 00 00 .long 0x84 ... hr->vtb = vc->vtb; - 548: 9c 02 00 00 .long 0x29c + 548: 90 02 00 00 .long 0x290 hr->srr0 = vcpu->arch.shregs.srr0; 54c: 00 00 00 00 .long 0x0 550: 47 9f 01 97 stwu r24,-24761(r1) hr->srr1 = vcpu->arch.shregs.srr1; 554: 09 48 0e 70 andi. r14,r0,18441 - 558: 98 08 9a 06 .long 0x69a0898 + 558: 98 08 99 07 .long 0x7990898 hr->sprg[0] = vcpu->arch.shregs.sprg0; - 55c: 11 48 7f 9b stb r27,18449(r31) - 560: 05 9d 03 9e stbu r16,-25339(r3) + 55c: 11 48 7f 9a stb r19,18449(r31) + 560: 06 9d 03 9e stbu r16,-25338(r3) hr->sprg[1] = vcpu->arch.shregs.sprg1; - 564: 02 4f 09 41 bdnzta 4*cr2+gt,4f00 - 568: 00 43 9c 04 .long 0x49c4300 + 564: 02 4f 09 41 bdnzta 4*cr2+gt,4f00 + 568: 00 43 9b 05 .long 0x59b4300 hr->sprg[2] = vcpu->arch.shregs.sprg2; 56c: 41 11 41 7e .long 0x7e411141 - 570: 4b 99 07 63 ori r7,r24,39243 + 570: 4b 9c 04 63 ori r4,r24,40011 hr->sprg[3] = vcpu->arch.shregs.sprg3; - 574: d9 45 dc 41 bltl- cr7,4b4c + 574: dc 45 db 41 bso- cr6,4b50 578: 06 41 41 0e twi 18,r1,16646 hr->pidr = vcpu->arch.pid; - 57c: 00 4a 06 48 b 64f7c - 580: df de dd db stfd f30,-8481(r29) + 57c: 00 4a 06 48 b 64f7c + 580: df de dd da stfd f22,-8481(r29) hr->cfar = vcpu->arch.cfar; - 584: da d8 d7 41 bsoa- cr5,ffffd8d8 + 584: d9 d8 d7 41 bsol- cr5,ffffffffffffde5c 588: 0e 70 97 09 tdgei r23,28686 hr->ppr = vcpu->arch.ppr; 58c: 98 08 99 07 .long 0x7990898 @@ -60937,417 +60944,425 @@ static bool kvmhv_invalidate_shadow_pte( 598: 9e 02 9f 01 .long 0x19f029e hr->dawrx1 = vcpu->arch.dawrx1; 59c: 11 41 7e 11 mulchwu. r11,r30,r8 - 5a0: 48 7f 64 d9 stfd f11,32584(r4) + 5a0: 48 7f 64 dc stfdu f3,32584(r4) } - 5a4: 44 99 07 4c addpcis r0,-26290 - 5a8: d9 42 dc 42 .long 0x42dc42d9 - 5ac: 06 41 48 99 stb r10,16646(r8) + 5a4: 44 9c 04 4c addpcis r0,-25528 + 5a8: db dc 06 41 bdnztla 4*cr1+eq,ffffdcd8 + 5ac: 44 9b 05 9c stbu r0,-25788(r5) { - 5b0: 07 9c 04 11 vcmpneb. v8,v4,v19 - 5b4: 41 7e 00 00 .long 0x7e41 + 5b0: 04 11 41 7e .long 0x7e411104 + 5b4: 45 dc 42 db stfd f26,-9147(r2) + vc->dpdes = hr->dpdes; + 5b8: 42 06 41 00 .long 0x410642 + struct kvmppc_vcore *vc = vcpu->arch.vcore; + 5bc: 00 00 00 00 .long 0x0 vc->dpdes = hr->dpdes; - 5b8: 44 00 00 00 .long 0x44 + 5c0: 44 00 00 00 .long 0x44 ... - vcpu->arch.hfscr = hr->hfscr; - 5c8: a0 01 00 00 .long 0x1a0 vcpu->arch.purr = hr->purr; - 5cc: 00 00 00 00 .long 0x0 - 5d0: 4c 09 41 00 .long 0x41094c + 5d0: a0 01 00 00 .long 0x1a0 vcpu->arch.spurr = hr->spurr; - 5d4: 9c 04 9d 03 .long 0x39d049c - 5d8: 9b 05 9f 01 .long 0x19f059b + 5d4: 00 00 00 00 .long 0x0 + 5d8: 4c 09 41 00 .long 0x41094c vcpu->arch.ic = hr->ic; - 5dc: 45 0e 60 11 .long 0x11600e45 - 5e0: 41 7e 5d 9e stbu r18,32321(r29) + 5dc: 9c 04 9d 03 .long 0x39d049c + 5e0: 9b 05 9f 01 .long 0x19f059b vc->vtb = hr->vtb; - 5e4: 02 43 9a 06 .long 0x69a4302 - 5e8: 5f da 41 de stfdu f18,-9633(r1) + 5e4: 45 0e 60 11 .long 0x11600e45 + 5e8: 41 7e 5d 9e stbu r18,32321(r29) vcpu->arch.fault_dar = hr->hdar; - 5ec: 48 0a 0e 00 .long 0xe0a48 - 5f0: 46 06 41 df stfdu f26,1606(r1) + 5ec: 02 43 9a 06 .long 0x69a4302 + 5f0: 5f da 41 de stfdu f18,-9633(r1) vcpu->arch.fault_dsisr = hr->hdsisr; - 5f4: dd dc db 43 .long 0x43dbdcdd - 5f8: 0b 43 9a 06 .long 0x69a430b + 5f4: 48 0a 0e 00 .long 0xe0a48 + 5f8: 46 06 41 df stfdu f26,1606(r1) vcpu->arch.fault_gpa = hr->asdr; - 5fc: 41 9e 02 00 .long 0x29e41 - 600: 2c 00 00 00 .long 0x2c + 5fc: dd dc db 43 .long 0x43dbdcdd + 600: 0b 43 9a 06 .long 0x69a430b + vcpu->arch.emul_inst = hr->heir; + 604: 41 9e 02 00 .long 0x29e41 + 608: 2c 00 00 00 .long 0x2c ... - vcpu->arch.shregs.srr0 = hr->srr0; - 610: 74 00 00 00 .long 0x74 vcpu->arch.shregs.srr1 = hr->srr1; - 614: 00 00 00 00 .long 0x0 - 618: 49 09 41 00 .long 0x410949 + 618: 74 00 00 00 .long 0x74 vcpu->arch.shregs.sprg0 = hr->sprg[0]; - 61c: 9e 02 9f 01 .long 0x19f029e - 620: 44 0e 30 11 .long 0x11300e44 + 61c: 00 00 00 00 .long 0x0 + 620: 49 09 41 00 .long 0x410949 vcpu->arch.shregs.sprg1 = hr->sprg[1]; - 624: 41 7e 4b 0e twi 18,r11,32321 - 628: 00 44 06 41 bdnzt 4*cr1+eq,4a28 + 624: 9e 02 9f 01 .long 0x19f029e + 628: 44 0e 30 11 .long 0x11300e44 vcpu->arch.shregs.sprg2 = hr->sprg[2]; - 62c: df de 00 00 .long 0xdedf - 630: 4c 00 00 00 .long 0x4c + 62c: 41 7e 4b 0e twi 18,r11,32321 + 630: 00 44 06 41 bdnzt 4*cr1+eq,4a30 + vcpu->arch.shregs.sprg3 = hr->sprg[3]; + 634: df de 00 00 .long 0xdedf + 638: 4c 00 00 00 .long 0x4c ... - vcpu->arch.pid = hr->pidr; - 640: 2c 01 00 00 .long 0x12c vcpu->arch.cfar = hr->cfar; - 644: 00 00 00 00 .long 0x0 - 648: 46 0e 30 9e stbu r17,3654(r16) + 648: 2c 01 00 00 .long 0x12c vcpu->arch.ppr = hr->ppr; - 64c: 02 47 9f 01 .long 0x19f4702 - 650: 4b 09 41 00 .long 0x41094b + 64c: 00 00 00 00 .long 0x0 + 650: 46 0e 30 9e stbu r17,3654(r16) } - 654: 42 11 41 7e .long 0x7e411142 - 658: 49 df 41 0e twi 18,r1,-8375 - 65c: 00 42 06 41 bdnzt 4*cr1+eq,485c - 660: de 44 0e 30 addic r0,r14,17630 - 664: 9e 02 9f 01 .long 0x19f029e -{ - 668: 4c 11 41 7e dcbtls 18,r1,r2 - 66c: 4c 06 41 41 bdzt gt,cb8 - 670: df 41 0e 00 .long 0xe41df - 674: 41 de 41 0e twi 18,r1,-8639 - 678: 30 9e 02 42 bc 16,eq,ffffffffffffa4a8 + 654: 02 47 9f 01 .long 0x19f4702 + 658: 4b 09 41 00 .long 0x41094b + 65c: 42 11 41 7e .long 0x7e411142 + 660: 49 df 41 0e twi 18,r1,-8375 + 664: 00 42 06 41 bdnzt 4*cr1+eq,4864 +{ + 668: de 44 0e 30 addic r0,r14,17630 + 66c: 9e 02 9f 01 .long 0x19f029e + 670: 4c 11 41 7e dcbtls 18,r1,r2 + 674: 4c 06 41 41 bdzt gt,cc0 + 678: df 41 0e 00 .long 0xe41df return 0; - 67c: 0e 00 42 de stfdu f18,14(r2) - 680: a4 00 00 00 .long 0xa4 + 67c: 41 de 41 0e twi 18,r1,-8639 + 680: 30 9e 02 42 bc 16,eq,ffffffffffffa4b0 + 684: 0e 00 42 de stfdu f18,14(r2) + 688: a4 00 00 00 .long 0xa4 ... - 690: 8c 02 00 00 .long 0x28c { - 694: 00 00 00 00 .long 0x0 - 698: 47 0e 80 01 .long 0x1800e47 + 698: 8c 02 00 00 .long 0x28c return kmalloc_large(size, flags); - 69c: 9f 01 4a 9c stbu r2,415(r10) - 6a0: 04 44 09 41 bdnzt 4*cr2+gt,4aa4 - 6a4: 00 41 96 0a tdlei r22,16640 - 6a8: 41 97 09 43 bcl- 24,4*cr2+gt,ffffffffffff9de8 - 6ac: 98 08 41 99 stb r10,2200(r1) - 6b0: 07 43 9a 06 .long 0x69a4307 + 69c: 00 00 00 00 .long 0x0 + 6a0: 47 0e 80 01 .long 0x1800e47 + 6a4: 9f 01 4a 9c stbu r2,415(r10) + 6a8: 04 44 09 41 bdnzt 4*cr2+gt,4aac + 6ac: 00 41 96 0a tdlei r22,16640 + 6b0: 41 97 09 43 bcl- 24,4*cr2+gt,ffffffffffff9df0 pseries_partition_tb = kmalloc(sizeof(struct patb_entry) << ptb_order, - 6b4: 41 9b 05 43 bcl- 24,4*cr1+gt,ffffffffffffa1f4 - if (unlikely(!pseries_partition_tb)) { - 6b8: 11 41 7e 41 bdztl 4*cr7+eq,47c8 + 6b4: 98 08 41 99 stb r10,2200(r1) + if (!pseries_partition_tb) { + 6b8: 07 43 9a 06 .long 0x69a4307 pseries_partition_tb = kmalloc(sizeof(struct patb_entry) << ptb_order, - 6bc: 9d 03 41 9e stbu r18,925(r1) - 6c0: 02 02 40 d6 .long 0xd6400202 - if (unlikely(!pseries_partition_tb)) { - 6c4: 41 d7 41 d8 stfd f2,-10431(r1) + 6bc: 41 9b 05 43 bcl- 24,4*cr1+gt,ffffffffffffa1fc + 6c0: 11 41 7e 41 bdztl 4*cr7+eq,47d0 + if (!pseries_partition_tb) { + 6c4: 9d 03 41 9e stbu r18,925(r1) ptcr = __pa(pseries_partition_tb) | (ptb_order - 12); - 6c8: 41 d9 41 da stfd f18,-9919(r1) + 6c8: 02 02 40 d6 .long 0xd6400202 rc = plpar_hcall_norets(H_SET_PARTITION_TABLE, ptcr); - 6cc: 41 db 41 dc stfdu f2,-9407(r1) - 6d0: 41 dd 41 de stfdu f18,-8895(r1) - 6d4: 41 06 41 46 .long 0x46410641 - 6d8: 0e 00 41 df stfdu f26,14(r1) - 6dc: 42 0e 80 01 .long 0x1800e42 + 6cc: 41 d7 41 d8 stfd f2,-10431(r1) + 6d0: 41 d9 41 da stfd f18,-9919(r1) + 6d4: 41 db 41 dc stfdu f2,-9407(r1) + 6d8: 41 dd 41 de stfdu f18,-8895(r1) + 6dc: 41 06 41 46 .long 0x46410641 if (rc != H_SUCCESS) { - 6e0: 96 0a 97 09 tdgei r23,2710 - 6e4: 98 08 99 07 .long 0x7990898 + 6e0: 0e 00 41 df stfdu f26,14(r1) + 6e4: 42 0e 80 01 .long 0x1800e42 return 0; - 6e8: 9a 06 9b 05 .long 0x59b069a + 6e8: 96 0a 97 09 tdgei r23,2710 } - 6ec: 9c 04 9d 03 .long 0x39d049c - 6f0: 9e 02 9f 01 .long 0x19f029e - 6f4: 11 41 7e 5e rlwnm. r30,r19,r8,4,8 - 6f8: d6 d7 d8 d9 stfd f14,-10282(r24) - 6fc: da db dd de stfdu f22,-9254(r29) + 6ec: 98 08 99 07 .long 0x7990898 + 6f0: 9a 06 9b 05 .long 0x59b069a + 6f4: 9c 04 9d 03 .long 0x39d049c + 6f8: 9e 02 9f 01 .long 0x19f029e + 6fc: 11 41 7e 5e rlwnm. r30,r19,r8,4,8 return -ENODEV; - 700: 06 41 41 dc stfdu f2,16646(r1) + 700: d6 d7 d8 d9 stfd f14,-10282(r24) } - 704: 42 09 41 00 .long 0x410942 + 704: da db dd de stfdu f22,-9254(r29) pr_err("kvm-hv: Parent hypervisor does not support nesting (rc=%ld)\n", - 708: 41 96 0a 41 bdnztl 4*cr2+eq,ffffffffffff9d48 - 70c: 97 09 41 98 stb r2,2455(r1) - 710: 08 41 99 07 .long 0x7994108 - 714: 41 11 41 7e .long 0x7e411141 + 708: 06 41 41 dc stfdu f2,16646(r1) + 70c: 42 09 41 00 .long 0x410942 + 710: 41 96 0a 41 bdnztl 4*cr2+eq,ffffffffffff9d50 + 714: 97 09 41 98 stb r2,2455(r1) kfree(pseries_partition_tb); - 718: 41 9a 06 41 bdnztl 4*cr1+eq,ffffffffffffa158 - 71c: 9b 05 41 9c stbu r2,1435(r1) - 720: 04 41 9d 03 .long 0x39d4104 + 718: 08 41 99 07 .long 0x7994108 + 71c: 41 11 41 7e .long 0x7e411141 + 720: 41 9a 06 41 bdnztl 4*cr1+eq,ffffffffffffa160 pseries_partition_tb = NULL; - 724: 41 9e 02 00 .long 0x29e41 + 724: 9b 05 41 9c stbu r2,1435(r1) return -ENODEV; - 728: bc 00 00 00 .long 0xbc + 728: 04 41 9d 03 .long 0x39d4104 + pseries_partition_tb = NULL; + 72c: 41 9e 02 00 .long 0x29e41 + return -ENODEV; + 730: bc 00 00 00 .long 0xbc ... pr_err("kvm-hv: failed to allocated nested partition table\n"); - 738: d4 02 00 00 .long 0x2d4 - 73c: 00 00 00 00 .long 0x0 - 740: 46 0e b0 01 .long 0x1b00e46 + 740: d4 02 00 00 .long 0x2d4 return -ENOMEM; - 744: 93 0d 46 94 stwu r2,3475(r6) - 748: 0c 41 97 09 tdgei r23,16652 - 74c: 44 99 07 48 b 7a090 - 750: 09 41 00 41 bdnztl lt,4858 - 754: 92 0e 41 95 stwu r10,3730(r1) -{ - 758: 0b 43 96 0a tdlei r22,17163 - 75c: 41 98 08 43 bcl- 24,4*cr2+lt,ffffffffffff9f9c - 760: 9a 06 42 11 vextduhvlx v10,v2,v0,r26 - 764: 41 7e 41 91 stw r10,32321(r1) - 768: 0f 41 9b 05 .long 0x59b410f - 76c: 41 9c 04 41 bdnztl 4*cr1+lt,ffffffffffffa3ac + 744: 00 00 00 00 .long 0x0 + 748: 46 0e b0 01 .long 0x1b00e46 + 74c: 93 0d 46 94 stwu r2,3475(r6) + 750: 0c 41 97 09 tdgei r23,16652 + 754: 44 99 07 48 b 7a098 +{ + 758: 09 41 00 41 bdnztl lt,4860 + 75c: 92 0e 41 95 stwu r10,3730(r1) + 760: 0b 43 96 0a tdlei r22,17163 + 764: 41 98 08 43 bcl- 24,4*cr2+lt,ffffffffffff9fa4 + 768: 9a 06 42 11 vextduhvlx v10,v2,v0,r26 + 76c: 41 7e 41 91 stw r10,32321(r1) if (kvmhv_on_pseries() && pseries_partition_tb) { - 770: 9d 03 41 9e stbu r18,925(r1) + 770: 0f 41 9b 05 .long 0x59b410f { - 774: 02 41 9f 01 .long 0x19f4102 - 778: 02 5f d1 41 bgta- cr4,5f00 + 774: 41 9c 04 41 bdnztl 4*cr1+lt,ffffffffffffa3b4 + 778: 9d 03 41 9e stbu r18,925(r1) if (kvmhv_on_pseries() && pseries_partition_tb) { - 77c: d2 41 d4 41 blta- cr5,41d0 - 780: d5 41 d6 41 beql- cr5,4954 - 784: d7 41 d8 41 bltla- cr6,41d4 - 788: d9 41 da 41 beql- cr6,4960 + 77c: 02 41 9f 01 .long 0x19f4102 + 780: 02 5f d1 41 bgta- cr4,5f00 + 784: d2 41 d4 41 blta- cr5,41d0 + 788: d5 41 d6 41 beql- cr5,495c plpar_hcall_norets(H_SET_PARTITION_TABLE, 0); - 78c: 06 41 41 db stfd f26,16646(r1) - 790: 41 dc 41 dd stfdu f10,-9151(r1) - 794: 41 de 41 df stfdu f26,-8639(r1) - 798: 46 0e 00 41 bdnzta lt,e44 - 79c: d3 41 0e b0 sth r0,16851(r14) - 7a0: 01 93 0d 94 stwu r0,-27903(r13) - 7a4: 0c 97 09 99 stb r8,-26868(r9) + 78c: d7 41 d8 41 bltla- cr6,41d4 + 790: d9 41 da 41 beql- cr6,4968 + 794: 06 41 41 db stfd f26,16646(r1) + 798: 41 dc 41 dd stfdu f10,-9151(r1) + 79c: 41 de 41 df stfdu f26,-8639(r1) + 7a0: 46 0e 00 41 bdnzta lt,e44 + 7a4: d3 41 0e b0 sth r0,16851(r14) kfree(pseries_partition_tb); - 7a8: 07 41 d4 41 bltla- cr5,4104 - 7ac: d7 41 d9 42 .long 0x42d941d7 - 7b0: 09 41 00 41 bdnztl lt,48b8 + 7a8: 01 93 0d 94 stwu r0,-27903(r13) + 7ac: 0c 97 09 99 stb r8,-26868(r9) + 7b0: 07 41 d4 41 bltla- cr5,4104 pseries_partition_tb = NULL; - 7b4: 91 0f 41 92 stw r18,3985(r1) - 7b8: 0e 41 94 0c tweqi r20,16654 - 7bc: 41 95 0b 41 bdnztl 4*cr2+so,ffffffffffff9cfc - 7c0: 11 41 7e 41 bdztl 4*cr7+eq,48d0 -} - 7c4: 96 0a 41 97 stwu r26,2710(r1) - 7c8: 09 41 98 08 tdeqi r24,16649 - 7cc: 41 99 07 41 bdnztl 4*cr1+so,ffffffffffffa10c - 7d0: 9a 06 41 9b stb r26,1690(r1) - 7d4: 05 41 9c 04 .long 0x49c4105 -{ - 7d8: 41 9d 03 41 bdnztl so,ffffffffffffa518 - 7dc: 9e 02 41 9f stbu r26,670(r1) - 7e0: 01 00 00 00 .long 0x1 - 7e4: 00 00 00 00 .long 0x0 - 7e8: 9c 00 00 00 .long 0x9c - ... - 7f8: 58 02 00 00 .long 0x258 + 7b4: d7 41 d9 42 .long 0x42d941d7 + 7b8: 09 41 00 41 bdnztl lt,48c0 + 7bc: 91 0f 41 92 stw r18,3985(r1) + 7c0: 0e 41 94 0c tweqi r20,16654 +} + 7c4: 41 95 0b 41 bdnztl 4*cr2+so,ffffffffffff9d04 + 7c8: 11 41 7e 41 bdztl 4*cr7+eq,48d8 + 7cc: 96 0a 41 97 stwu r26,2710(r1) + 7d0: 09 41 98 08 tdeqi r24,16649 + 7d4: 41 99 07 41 bdnztl 4*cr1+so,ffffffffffffa114 +{ + 7d8: 9a 06 41 9b stb r26,1690(r1) + 7dc: 05 41 9c 04 .long 0x49c4105 + 7e0: 41 9d 03 41 bdnztl so,ffffffffffffa520 + 7e4: 9e 02 41 9f stbu r26,670(r1) + 7e8: 01 00 00 00 .long 0x1 + 7ec: 00 00 00 00 .long 0x0 mmu_partition_table_set_entry(lpid, dw0, dw1, true); - 7fc: 00 00 00 00 .long 0x0 - 800: 46 0e 60 9d .long 0x9d600e46 + 7f0: 9c 00 00 00 .long 0x9c + ... + 800: 58 02 00 00 .long 0x258 } - 804: 03 4a 9e 02 .long 0x29e4a03 - 808: 4f 09 41 00 .long 0x41094f - 80c: 44 11 41 7e .long 0x7e411144 - 810: 45 de 42 06 .long 0x642de45 - 814: 41 46 0e 00 .long 0xe4641 - 818: 41 dd 41 0e twi 18,r1,-8895 - 81c: 60 9d 03 9e stbu r16,-25248(r3) + 804: 00 00 00 00 .long 0x0 + 808: 46 0e 60 9d .long 0x9d600e46 + 80c: 03 4a 9e 02 .long 0x29e4a03 + 810: 4f 09 41 00 .long 0x41094f + 814: 44 11 41 7e .long 0x7e411144 + 818: 45 de 42 06 .long 0x642de45 + 81c: 41 46 0e 00 .long 0xe4641 pseries_partition_tb[lpid].patb0 = cpu_to_be64(dw0); - 820: 02 42 09 41 bdnzta 4*cr2+gt,4200 - 824: 00 41 9f 01 .long 0x19f4100 - 828: 42 11 41 7e .long 0x7e411142 - 82c: 43 9b 05 41 bdnztla 4*cr1+gt,ffff9b40 - 830: 9c 04 6c db stfd f27,1180(r12) - 834: 41 dc 41 df stfdu f26,-9151(r1) + 820: 41 dd 41 0e twi 18,r1,-8895 + 824: 60 9d 03 9e stbu r16,-25248(r3) + 828: 02 42 09 41 bdnzta 4*cr2+gt,4200 + 82c: 00 41 9f 01 .long 0x19f4100 + 830: 42 11 41 7e .long 0x7e411142 + 834: 43 9b 05 41 bdnztla 4*cr1+gt,ffff9b40 pseries_partition_tb[lpid].patb1 = cpu_to_be64(dw1); - 838: 41 9f 01 4d .long 0x4d019f41 - 83c: 0a df 43 0b tdi 26,r3,-8438 + 838: 9c 04 6c db stfd f27,1180(r12) + 83c: 41 dc 41 df stfdu f26,-9151(r1) kvmhv_flush_lpid(lpid); - 840: 41 df 43 9b stb r26,-8383(r3) - 844: 05 9c 04 9f stbu r24,-25595(r4) - 848: 01 44 db dc stfdu f6,17409(r27) - 84c: df 06 41 41 bdztla gt,6dc <.debug_frame+0x6dc> - 850: de 43 9b 05 .long 0x59b43de - 854: 9c 04 9e 02 .long 0x29e049c -{ - 858: 9f 01 11 41 bdnztla 4*cr4+gt,19c <.debug_frame+0x19c> - 85c: 7e 43 db dc stfdu f6,17278(r27) - 860: de df 06 41 bdnzta 4*cr1+eq,ffffdfdc - 864: 41 09 41 00 .long 0x410941 - 868: 41 9b 05 41 bdnztl 4*cr1+gt,ffffffffffffa3a8 - 86c: 9c 04 41 9e stbu r18,1180(r1) - 870: 02 41 9f 01 .long 0x19f4102 + 840: 41 9f 01 4d .long 0x4d019f41 + 844: 0a df 43 0b tdi 26,r3,-8438 + 848: 41 df 43 9b stb r26,-8383(r3) + 84c: 05 9c 04 9f stbu r24,-25595(r4) + 850: 01 44 db dc stfdu f6,17409(r27) + 854: df 06 41 41 bdztla gt,6dc <.debug_frame+0x6dc> +{ + 858: de 43 9b 05 .long 0x59b43de + 85c: 9c 04 9e 02 .long 0x29e049c + 860: 9f 01 11 41 bdnztla 4*cr4+gt,19c <.debug_frame+0x19c> + 864: 7e 43 db dc stfdu f6,17278(r27) + 868: de df 06 41 bdnzta 4*cr1+eq,ffffdfdc + 86c: 41 09 41 00 .long 0x410941 + 870: 41 9b 05 41 bdnztl 4*cr1+gt,ffffffffffffa3b0 struct patb_entry ptbl_entry; - 874: 41 11 41 7e .long 0x7e411141 + 874: 9c 04 41 9e stbu r18,1180(r1) { - 878: 42 db dc df stfdu f30,-9406(r28) - 87c: 42 de 42 06 .long 0x642de42 - 880: 41 00 00 00 .long 0x41 - 884: 00 00 00 00 .long 0x0 - 888: 9c 00 00 00 .long 0x9c + 878: 02 41 9f 01 .long 0x19f4102 + 87c: 41 11 41 7e .long 0x7e411141 + 880: 42 db dc df stfdu f30,-9406(r28) + 884: 42 de 42 06 .long 0x642de42 + 888: 41 00 00 00 .long 0x41 + struct kvm *kvm = gp->l1_host; + 88c: 00 00 00 00 .long 0x0 + ptbl_addr = (kvm->arch.l1_ptcr & PRTB_MASK) + (gp->l1_lpid << 4); + 890: 9c 00 00 00 .long 0x9c ... - 898: 88 02 00 00 .long 0x288 - 89c: 00 00 00 00 .long 0x0 struct patb_entry ptbl_entry; - 8a0: 47 09 41 00 .long 0x410947 - 8a4: 97 09 9a 06 .long 0x69a0997 + 8a0: 88 02 00 00 .long 0x288 + 8a4: 00 00 00 00 .long 0x0 ptbl_addr = (kvm->arch.l1_ptcr & PRTB_MASK) + (gp->l1_lpid << 4); - 8a8: 44 9b 05 9c stbu r0,-25788(r5) + 8a8: 47 09 41 00 .long 0x410947 if (gp->l1_lpid < (1ul << ((kvm->arch.l1_ptcr & PRTS_MASK) + 12 - 4))) { - 8ac: 04 44 9d 03 .long 0x39d4404 - 8b0: 9e 02 45 9f stbu r26,670(r5) - 8b4: 01 11 41 7e .long 0x7e411101 - 8b8: 42 0e 90 01 .long 0x1900e42 - 8bc: 50 0a 0e 00 .long 0xe0a50 + 8ac: 97 09 9a 06 .long 0x69a0997 + 8b0: 44 9b 05 9c stbu r0,-25788(r5) + 8b4: 04 44 9d 03 .long 0x39d4404 + 8b8: 9e 02 45 9f stbu r26,670(r5) + 8bc: 01 11 41 7e .long 0x7e411101 gp->process_table = 0; - 8c0: 4a 06 41 df stfdu f26,1610(r1) + 8c0: 42 0e 90 01 .long 0x1900e42 gp->l1_gr_to_hr = 0; - 8c4: de dd dc db stfd f30,-8738(r28) + 8c4: 50 0a 0e 00 .long 0xe0a50 __pa(gp->shadow_pgtable) | RADIX_PGD_INDEX_SIZE; - 8c8: da d7 42 0b tdi 26,r2,-10278 + 8c8: 4a 06 41 df stfdu f26,1610(r1) dw0 = PATB_HR | radix__get_tree_size() | - 8cc: 42 98 08 41 bdnzta 4*cr2+lt,ffff9840 + 8cc: de dd dc db stfd f30,-8738(r28) kvmhv_set_ptbl_entry(gp->shadow_lpid, dw0, gp->process_table); - 8d0: 93 0d 44 94 stwu r2,3475(r4) - 8d4: 0c 41 95 0b tdi 28,r21,16652 - 8d8: 43 96 0a 41 bdnztla 4*cr2+eq,ffff9640 + 8d0: da d7 42 0b tdi 26,r2,-10278 + 8d4: 42 98 08 41 bdnzta 4*cr2+lt,ffff9840 + 8d8: 93 0d 44 94 stwu r2,3475(r4) dw0 = PATB_HR | radix__get_tree_size() | - 8dc: 99 07 64 d3 stfs f27,1945(r4) + 8dc: 0c 41 95 0b tdi 28,r21,16652 __pa(gp->shadow_pgtable) | RADIX_PGD_INDEX_SIZE; - 8e0: 41 d4 41 d5 stfsu f10,-11199(r1) + 8e0: 43 96 0a 41 bdnztla 4*cr2+eq,ffff9640 dw0 = PATB_HR | radix__get_tree_size() | - 8e4: 41 d6 41 d8 stfd f2,-10687(r1) + 8e4: 99 07 64 d3 stfs f27,1945(r4) kvmhv_set_ptbl_entry(gp->shadow_lpid, dw0, gp->process_table); - 8e8: 41 d9 41 0e twi 18,r1,-9919 - 8ec: 00 49 06 41 bdnzt 4*cr1+eq,51ec + 8e8: 41 d4 41 d5 stfsu f10,-11199(r1) + 8ec: 41 d6 41 d8 stfd f2,-10687(r1) } - 8f0: df de dd dc stfdu f6,-8481(r29) - 8f4: db da d7 41 bsola- cr5,ffffdad8 - 8f8: 0e 90 01 97 stwu r24,-28658(r1) - 8fc: 09 9a 06 9b stb r24,-26103(r6) - 900: 05 9c 04 9d stbu r8,-25595(r4) - 904: 03 9e 02 9f stbu r24,-25085(r2) - 908: 01 11 41 7e .long 0x7e411101 - 90c: 5d 93 0d 94 stwu r0,-27811(r13) - 910: 0c 95 0b 96 stwu r16,-27380(r11) - 914: 0a 98 08 99 stb r8,-26614(r8) - 918: 07 4d d3 41 bsola- cr4,4d04 - 91c: d4 41 d5 41 bgt- cr5,4af0 - 920: d6 41 d8 41 blta- cr6,41d4 - 924: d9 00 00 00 .long 0xd9 - 928: 74 01 00 00 .long 0x174 + 8f0: 41 d9 41 0e twi 18,r1,-9919 + 8f4: 00 49 06 41 bdnzt 4*cr1+eq,51f4 + 8f8: df de dd dc stfdu f6,-8481(r29) + 8fc: db da d7 41 bsola- cr5,ffffdad8 + 900: 0e 90 01 97 stwu r24,-28658(r1) + 904: 09 9a 06 9b stb r24,-26103(r6) + 908: 05 9c 04 9d stbu r8,-25595(r4) + 90c: 03 9e 02 9f stbu r24,-25085(r2) + 910: 01 11 41 7e .long 0x7e411101 + 914: 5d 93 0d 94 stwu r0,-27811(r13) + 918: 0c 95 0b 96 stwu r16,-27380(r11) + 91c: 0a 98 08 99 stb r8,-26614(r8) + 920: 07 4d d3 41 bsola- cr4,4d04 + 924: d4 41 d5 41 bgt- cr5,4af8 + 928: d6 41 d8 41 blta- cr6,41d4 + 92c: d9 00 00 00 .long 0xd9 + int srcu_idx = srcu_read_lock(&kvm->srcu); + 930: 74 01 00 00 .long 0x174 ... - ptbl_addr = (kvm->arch.l1_ptcr & PRTB_MASK) + (gp->l1_lpid << 4); - 938: 50 09 00 00 .long 0x950 - 93c: 00 00 00 00 .long 0x0 retval = __srcu_read_lock(ssp); - 940: 4c 09 41 00 .long 0x41094c - 944: 97 09 98 08 tdeqi r24,2455 - 948: 99 07 9d 03 .long 0x39d0799 - 94c: 9e 02 9f 01 .long 0x19f029e - 950: 45 0e d0 02 .long 0x2d00e45 + 940: 50 09 00 00 .long 0x950 + ptbl_addr = (kvm->arch.l1_ptcr & PRTB_MASK) + (gp->l1_lpid << 4); + 944: 00 00 00 00 .long 0x0 + 948: 4c 09 41 00 .long 0x41094c + 94c: 97 09 98 08 tdeqi r24,2455 + 950: 99 07 9d 03 .long 0x39d0799 ret = kvm_read_guest(kvm, ptbl_addr, - 954: 11 41 7e 9a stb r19,16657(r30) - 958: 06 11 48 7f .long 0x7f481106 - 95c: 5c 9b 05 5b rlmi r5,r24,r19,13,14 - 960: 0a db 42 0b tdi 26,r2,-9462 - 964: 41 9c 04 43 bcl- 24,4*cr1+lt,ffffffffffffa5a4 - 968: 93 0d 41 95 stwu r10,3475(r1) - 96c: 0b 41 94 0c tweqi r20,16651 - 970: 42 96 0a 49 ba 10a9640 - WARN_ON_ONCE(idx & ~0x1); - 974: 92 0e 4c 91 stw r10,3730(r12) - 978: 0f 02 4f d1 stfs f10,527(r15) - 97c: d2 42 d3 41 bsoa- cr4,42d0 + 954: 9e 02 9f 01 .long 0x19f029e + 958: 45 0e d0 02 .long 0x2d00e45 + 95c: 11 41 7e 9a stb r19,16657(r30) + 960: 06 11 48 7f .long 0x7f481106 + 964: 5c 9b 05 5b rlmi r5,r24,r19,13,14 + 968: 0a db 42 0b tdi 26,r2,-9462 + 96c: 41 9c 04 43 bcl- 24,4*cr1+lt,ffffffffffffa5ac + 970: 93 0d 41 95 stwu r10,3475(r1) + WARN_ON_ONCE(idx & ~0x1); + 974: 0b 41 94 0c tweqi r20,16651 + 978: 42 96 0a 49 ba 10a9640 + 97c: 92 0e 4c 91 stw r10,3730(r12) __srcu_read_unlock(ssp, idx); - 980: d4 41 d5 41 bgt- cr5,4b54 - 984: d6 41 dc 4f .long 0x4fdc41d6 - 988: db 4a 0a 0e twlti r10,19163 - 98c: 00 4b 06 41 bdnzt 4*cr1+eq,548c + 980: 0f 02 4f d1 stfs f10,527(r15) + 984: d2 42 d3 41 bsoa- cr4,42d0 + 988: d4 41 d5 41 bgt- cr5,4b5c + 98c: d6 41 dc 4f .long 0x4fdc41d6 if (ret) { - 990: 41 06 48 df stfdu f26,1601(r8) - 994: de dd da d9 stfd f14,-8738(r26) - 998: d8 d7 41 0b tdi 26,r1,-10280 - 99c: 48 91 0f 92 stw r16,-28344(r15) + 990: db 4a 0a 0e twlti r10,19163 + 994: 00 4b 06 41 bdnzt 4*cr1+eq,5494 + 998: 41 06 48 df stfdu f26,1601(r8) + 99c: de dd da d9 stfd f14,-8738(r26) gp->l1_gr_to_hr = be64_to_cpu(ptbl_entry.patb0); - 9a0: 0e 93 0d 94 stwu r0,-27890(r13) + 9a0: d8 d7 41 0b tdi 26,r1,-10280 gp->process_table = be64_to_cpu(ptbl_entry.patb1); - 9a4: 0c 95 0b 96 stwu r16,-27380(r11) + 9a4: 48 91 0f 92 stw r16,-28344(r15) gp->l1_gr_to_hr = be64_to_cpu(ptbl_entry.patb0); - 9a8: 0a 9b 05 9c stbu r0,-25846(r5) + 9a8: 0e 93 0d 94 stwu r0,-27890(r13) gp->process_table = be64_to_cpu(ptbl_entry.patb1); - 9ac: 04 41 d1 4a b fffffffffed14ab0 - 9b0: d2 41 d3 41 bsoa- cr4,41d0 - 9b4: d4 41 d5 41 bgt- cr5,4b88 - 9b8: d6 41 db 41 bsoa- cr6,41d4 - 9bc: dc 43 93 0d twgei r19,17372 - WARN_ON_ONCE(idx & ~0x1); - 9c0: 94 0c 95 0b tdi 28,r21,3220 - 9c4: 96 0a 9b 05 .long 0x59b0a96 -} - 9c8: 9c 04 7a 92 stw r19,1180(r26) - 9cc: 0e 48 d2 41 beqa- cr4,480c - 9d0: d3 41 d4 41 bltla- cr5,41d0 - 9d4: d5 41 d6 41 beql- cr5,4ba8 -{ - 9d8: dc 41 db 44 .long 0x44db41dc - 9dc: 93 0d 94 0c tweqi r20,3475 - 9e0: 95 0b 96 0a tdlei r22,2965 - 9e4: 9b 05 9c 04 .long 0x49c059b - 9e8: 4e d3 41 d4 stfsu f2,-11442(r1) - 9ec: 41 d5 41 d6 stfsu f18,-10943(r1) - 9f0: 41 dc 42 91 stw r10,-9151(r2) - 9f4: 0f 92 0e 93 stw r24,-28145(r14) - 9f8: 0d 94 0c 95 stwu r8,-27635(r12) + 9ac: 0c 95 0b 96 stwu r16,-27380(r11) + 9b0: 0a 9b 05 9c stbu r0,-25846(r5) + 9b4: 04 41 d1 4a b fffffffffed14ab8 + 9b8: d2 41 d3 41 bsoa- cr4,41d0 + 9bc: d4 41 d5 41 bgt- cr5,4b90 + WARN_ON_ONCE(idx & ~0x1); + 9c0: d6 41 db 41 bsoa- cr6,41d4 + 9c4: dc 43 93 0d twgei r19,17372 +} + 9c8: 94 0c 95 0b tdi 28,r21,3220 + 9cc: 96 0a 9b 05 .long 0x59b0a96 + 9d0: 9c 04 7a 92 stw r19,1180(r26) + 9d4: 0e 48 d2 41 beqa- cr4,480c +{ + 9d8: d3 41 d4 41 bltla- cr5,41d0 + 9dc: d5 41 d6 41 beql- cr5,4bb0 + 9e0: dc 41 db 44 .long 0x44db41dc + 9e4: 93 0d 94 0c tweqi r20,3475 + 9e8: 95 0b 96 0a tdlei r22,2965 + 9ec: 9b 05 9c 04 .long 0x49c059b + 9f0: 4e d3 41 d4 stfsu f2,-11442(r1) + 9f4: 41 d5 41 d6 stfsu f18,-10943(r1) + 9f8: 41 dc 42 91 stw r10,-9151(r2) if (gp->shadow_pgtable) { - 9fc: 0b 96 0a 9c stbu r0,-27125(r10) - a00: 04 70 d1 44 .long 0x44d17004 - a04: d2 41 d3 41 bsoa- cr4,41d0 + 9fc: 0f 92 0e 93 stw r24,-28145(r14) + a00: 0d 94 0c 95 stwu r8,-27635(r12) + a04: 0b 96 0a 9c stbu r0,-27125(r10) kvmppc_free_pgtable_radix(kvm, gp->shadow_pgtable, - a08: d4 41 d5 41 bgt- cr5,4bdc - a0c: d6 41 dc 47 .long 0x47dc41d6 - a10: 91 0f 92 0e twlei r18,3985 - a14: 93 0d 94 0c tweqi r20,3475 + a08: 04 70 d1 44 .long 0x44d17004 + a0c: d2 41 d3 41 bsoa- cr4,41d0 + a10: d4 41 d5 41 bgt- cr5,4be4 + a14: d6 41 dc 47 .long 0x47dc41d6 pgd_free(kvm->mm, gp->shadow_pgtable); - a18: 95 0b 96 0a tdlei r22,2965 - a1c: 9c 04 78 d1 stfs f11,1180(r24) + a18: 91 0f 92 0e twlei r18,3985 + a1c: 93 0d 94 0c tweqi r20,3475 free_page((unsigned long)pgd); - a20: d2 d3 d4 d5 stfsu f14,-11310(r20) - a24: d6 dc 48 91 stw r10,-9002(r8) - a28: 0f 92 0e 93 stw r24,-28145(r14) + a20: 95 0b 96 0a tdlei r22,2965 + a24: 9c 04 78 d1 stfs f11,1180(r24) + a28: d2 d3 d4 d5 stfsu f14,-11310(r20) kvmhv_set_ptbl_entry(gp->shadow_lpid, 0, 0); - a2c: 0d 94 0c 95 stwu r8,-27635(r12) - a30: 0b 96 0a 9c stbu r0,-27125(r10) - a34: 04 46 d1 42 .long 0x42d14604 - a38: d2 41 d3 41 bsoa- cr4,41d0 + a2c: d6 dc 48 91 stw r10,-9002(r8) + a30: 0f 92 0e 93 stw r24,-28145(r14) + a34: 0d 94 0c 95 stwu r8,-27635(r12) + a38: 0b 96 0a 9c stbu r0,-27125(r10) kvmppc_free_lpid(gp->shadow_lpid); - a3c: d4 41 d5 41 bgt- cr5,4c10 - a40: d6 41 db 41 bsoa- cr6,41d4 - a44: dc 42 9b 05 .long 0x59b42dc + a3c: 04 46 d1 42 .long 0x42d14604 + a40: d2 41 d3 41 bsoa- cr4,41d0 + a44: d4 41 d5 41 bgt- cr5,4c18 kfree(gp); - a48: 48 91 0f 92 stw r16,-28344(r15) - a4c: 0e 93 0d 94 stwu r0,-27890(r13) - a50: 0c 95 0b 96 stwu r16,-27380(r11) -} - a54: 0a 9c 04 5c rlwnm r4,r0,r19,16,5 - a58: d1 d2 44 91 stw r10,-11567(r4) - a5c: 0f 92 0e 50 rlwimi. r14,r0,18,8,7 - a60: d1 d2 43 d3 stfs f26,-11567(r3) - a64: 41 d4 41 d5 stfsu f10,-11199(r1) - a68: 41 d6 41 dc stfdu f2,-10687(r1) - a6c: 41 91 0f 92 stw r16,-28351(r15) + a48: d6 41 db 41 bsoa- cr6,41d4 + a4c: dc 42 9b 05 .long 0x59b42dc + a50: 48 91 0f 92 stw r16,-28344(r15) +} + a54: 0e 93 0d 94 stwu r0,-27890(r13) + a58: 0c 95 0b 96 stwu r16,-27380(r11) + a5c: 0a 9c 04 5c rlwnm r4,r0,r19,16,5 + a60: d1 d2 44 91 stw r10,-11567(r4) + a64: 0f 92 0e 50 rlwimi. r14,r0,18,8,7 + a68: d1 d2 43 d3 stfs f26,-11567(r3) + a6c: 41 d4 41 d5 stfsu f10,-11199(r1) kmem_cache_free(PGT_CACHE(PGD_INDEX_SIZE), pgd); - a70: 0e 93 0d 94 stwu r0,-27890(r13) - a74: 0c 95 0b 96 stwu r16,-27380(r11) - a78: 0a 9c 04 50 rlwimi r4,r0,19,16,5 - a7c: d1 d2 44 d3 stfs f26,-11567(r4) - a80: d4 d5 d6 db stfd f30,-10796(r22) - a84: dc 41 91 0f twi 28,r17,16860 - a88: 41 92 0e 41 bdnztl 4*cr3+eq,ffffffffffff9cc8 - a8c: 93 0d 41 94 stwu r2,3475(r1) - a90: 0c 41 95 0b tdi 28,r21,16652 - a94: 41 96 0a 41 bdnztl 4*cr2+eq,ffffffffffffa0d4 + a70: 41 d6 41 dc stfdu f2,-10687(r1) + a74: 41 91 0f 92 stw r16,-28351(r15) + a78: 0e 93 0d 94 stwu r0,-27890(r13) + a7c: 0c 95 0b 96 stwu r16,-27380(r11) + a80: 0a 9c 04 50 rlwimi r4,r0,19,16,5 + a84: d1 d2 44 d3 stfs f26,-11567(r4) + a88: d4 d5 d6 db stfd f30,-10796(r22) + a8c: dc 41 91 0f twi 28,r17,16860 + a90: 41 92 0e 41 bdnztl 4*cr3+eq,ffffffffffff9cd0 + a94: 93 0d 41 94 stwu r2,3475(r1) kvmhv_set_ptbl_entry(gp->shadow_lpid, 0, 0); - a98: 9b 05 41 9c stbu r2,1435(r1) - a9c: 04 42 d1 00 .long 0xd14204 - aa0: 2c 00 00 00 .long 0x2c - ... + a98: 0c 41 95 0b tdi 28,r21,16652 + a9c: 41 96 0a 41 bdnztl 4*cr2+eq,ffffffffffffa0dc + aa0: 9b 05 41 9c stbu r2,1435(r1) + aa4: 04 42 d1 00 .long 0xd14204 kvmppc_free_lpid(gp->shadow_lpid); - ab0: e8 00 00 00 .long 0xe8 + aa8: 2c 00 00 00 .long 0x2c + ... kfree(gp); - ab4: 00 00 00 00 .long 0x0 - ab8: 47 09 41 00 .long 0x410947 - abc: 9f 01 43 0e twi 18,r3,415 -} - ac0: 40 11 41 7e .long 0x7e411140 - ac4: 5d 0a 0e 00 .long 0xe0a5d - ac8: 43 06 41 df stfdu f26,1603(r1) - acc: 44 0b 00 00 .long 0xb44 + ab8: e8 00 00 00 .long 0xe8 + abc: 00 00 00 00 .long 0x0 +} + ac0: 47 09 41 00 .long 0x410947 + ac4: 9f 01 43 0e twi 18,r3,415 + ac8: 40 11 41 7e .long 0x7e411140 + acc: 5d 0a 0e 00 .long 0xe0a5d + ad0: 43 06 41 df stfdu f26,1603(r1) + ad4: 44 0b 00 00 .long 0xb44 Disassembly of section __mcount_loc: