Messages in this thread Patch in this message | | | Date | Wed, 9 Sep 2015 05:04:01 +0200 | Subject | Re: [llvmlinux] percpu | bitmap issue? (Cannot boot on bare metal due to a kernel NULL pointer dereference) | From | Sedat Dilek <> |
| |
On Wed, Sep 9, 2015 at 4:51 AM, Sedat Dilek <sedat.dilek@gmail.com> wrote: > On Wed, Sep 9, 2015 at 4:29 AM, Baoquan He <bhe@redhat.com> wrote: >> >> Seems it happened when call num_possible_cpus() which is a inline >> function to call __bitmap_weight(). So did you check >> lib/bitmap.c:__bitmap_weight() by objdump? >> >> setup_percpu: NR_CPUS:256 nr_cpumask_bits:256 nr_cpu_ids:1 nr_node_ids:1 >> > > [ CC->TO Denys ] > > Hi Boaquan, > > Thanks for your reply. > > I tried a lot in the meantime :-). > > For example I applied a patch from Denys Vlasenko <dvlasenk@redhat.com>... > > commit 1a1d48a4a8fde49aedc045d894efe67173d59fe0 > "linux/bitmap: Force inlining of bitmap weight functions" > > ...on top of Linux v4.2. > > This resulted in the same call-trace in QEMU. > > I hacked around to only re-build mm/percpu.c with GCC (rest with > CLANG) with some guidance from Linus (compiler warapper-script) etc. > > What do you need for outputs? > objdump of lib/bitmap.o? > From both builds - with GCC and CLANG? > > Please give me clear instructions, Thanks! > > Regards, > - Sedat - > > [1] http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=1a1d48a4a8fde49aedc045d894efe67173d59fe0
Below snippets against Linux v4.2 and Linux v4.2 plus llvmlinux-fixes (see file-attachment)... ( The patch "linux/bitmap: Force inlining of bitmap weight functions" from Denys was not applied. )
[ lib-bitmap_o-objdump-drw_CLANG-3-7.txt ]
0000000000000670 <__bitmap_weight>: 670: 49 89 f8 mov %rdi,%r8 673: 31 d2 xor %edx,%edx 675: 41 89 f1 mov %esi,%r9d 678: 41 c1 e9 06 shr $0x6,%r9d 67c: b8 00 00 00 00 mov $0x0,%eax 681: 74 26 je 6a9 <__bitmap_weight+0x39> 683: 31 d2 xor %edx,%edx 685: 45 89 ca mov %r9d,%r10d 688: 4c 89 c1 mov %r8,%rcx 68b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 690: 48 8b 39 mov (%rcx),%rdi 693: e8 00 00 00 00 callq 698 <__bitmap_weight+0x28> 694: R_X86_64_PC32 __sw_hweight64-0x4 698: 89 d2 mov %edx,%edx 69a: 48 01 c2 add %rax,%rdx 69d: 48 83 c1 08 add $0x8,%rcx 6a1: 41 ff ca dec %r10d 6a4: 75 ea jne 690 <__bitmap_weight+0x20> 6a6: 44 89 c8 mov %r9d,%eax 6a9: 40 f6 c6 3f test $0x3f,%sil 6ad: 74 1c je 6cb <__bitmap_weight+0x5b> 6af: f7 de neg %esi 6b1: 48 c7 c7 ff ff ff ff mov $0xffffffffffffffff,%rdi 6b8: 40 88 f1 mov %sil,%cl 6bb: 48 d3 ef shr %cl,%rdi 6be: 49 23 3c c0 and (%r8,%rax,8),%rdi 6c2: e8 00 00 00 00 callq 6c7 <__bitmap_weight+0x57> 6c3: R_X86_64_PC32 __sw_hweight64-0x4 6c7: 01 d0 add %edx,%eax 6c9: 89 c2 mov %eax,%edx 6cb: 89 d0 mov %edx,%eax 6cd: c3 retq 6ce: 66 90 xchg %ax,%ax
[ lib-bitmap_o-objdump-drw_GCC-4-9.txt ]
0000000000000d60 <__bitmap_weight>: d60: 89 f1 mov %esi,%ecx d62: 55 push %rbp d63: 49 89 fa mov %rdi,%r10 d66: c1 e9 06 shr $0x6,%ecx d69: 85 c9 test %ecx,%ecx d6b: 48 89 e5 mov %rsp,%rbp d6e: 74 52 je dc2 <__bitmap_weight+0x62> d70: 8d 41 ff lea -0x1(%rcx),%eax d73: 48 89 fa mov %rdi,%rdx d76: 45 31 c0 xor %r8d,%r8d d79: 4c 8d 0c c5 08 00 00 00 lea 0x8(,%rax,8),%r9 d81: 49 01 f9 add %rdi,%r9 d84: 48 8b 3a mov (%rdx),%rdi d87: 48 83 c2 08 add $0x8,%rdx d8b: e8 00 00 00 00 callq d90 <__bitmap_weight+0x30> d8c: R_X86_64_PC32 __sw_hweight64-0x4 d90: 41 01 c0 add %eax,%r8d d93: 4c 39 ca cmp %r9,%rdx d96: 75 ec jne d84 <__bitmap_weight+0x24> d98: 40 f6 c6 3f test $0x3f,%sil d9c: 44 89 c0 mov %r8d,%eax d9f: 74 1f je dc0 <__bitmap_weight+0x60> da1: f7 de neg %esi da3: 89 ca mov %ecx,%edx da5: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax dac: 89 f1 mov %esi,%ecx dae: 48 d3 e8 shr %cl,%rax db1: 49 23 04 d2 and (%r10,%rdx,8),%rax db5: 48 89 c7 mov %rax,%rdi db8: e8 00 00 00 00 callq dbd <__bitmap_weight+0x5d> db9: R_X86_64_PC32 __sw_hweight64-0x4 dbd: 44 01 c0 add %r8d,%eax dc0: 5d pop %rbp dc1: c3 retq dc2: 85 f6 test %esi,%esi dc4: 74 19 je ddf <__bitmap_weight+0x7f> dc6: f7 de neg %esi dc8: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax dcf: 45 31 c0 xor %r8d,%r8d dd2: 89 f1 mov %esi,%ecx dd4: 48 d3 e8 shr %cl,%rax dd7: 49 23 02 and (%r10),%rax dda: 48 89 c7 mov %rax,%rdi ddd: eb d9 jmp db8 <__bitmap_weight+0x58> ddf: 31 c0 xor %eax,%eax de1: 5d pop %rbp de2: c3 retq de3: 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 nopw %cs:0x0(%rax,%rax,1)
- Sedat -
lib/bitmap.o: file format elf64-x86-64
Disassembly of section .text:
0000000000000000 <__bitmap_equal>: 0: 45 31 c9 xor %r9d,%r9d 3: 41 89 d0 mov %edx,%r8d 6: 41 c1 e8 06 shr $0x6,%r8d a: 74 31 je 3d <__bitmap_equal+0x3d> c: 49 89 fa mov %rdi,%r10 f: 48 89 f1 mov %rsi,%rcx 12: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 nopw %cs:0x0(%rax,%rax,1) 20: 4d 8b 1a mov (%r10),%r11 23: 31 c0 xor %eax,%eax 25: 4c 3b 19 cmp (%rcx),%r11 28: 75 3a jne 64 <__bitmap_equal+0x64> 2a: 41 ff c1 inc %r9d 2d: 48 83 c1 08 add $0x8,%rcx 31: 49 83 c2 08 add $0x8,%r10 35: 45 39 c1 cmp %r8d,%r9d 38: 72 e6 jb 20 <__bitmap_equal+0x20> 3a: 45 89 c9 mov %r9d,%r9d 3d: f6 c2 3f test $0x3f,%dl 40: 74 1d je 5f <__bitmap_equal+0x5f> 42: 4a 8b 34 ce mov (%rsi,%r9,8),%rsi 46: 4a 33 34 cf xor (%rdi,%r9,8),%rsi 4a: f7 da neg %edx 4c: 48 c7 c7 ff ff ff ff mov $0xffffffffffffffff,%rdi 53: 88 d1 mov %dl,%cl 55: 48 d3 ef shr %cl,%rdi 58: 31 c0 xor %eax,%eax 5a: 48 85 fe test %rdi,%rsi 5d: 75 05 jne 64 <__bitmap_equal+0x64> 5f: b8 01 00 00 00 mov $0x1,%eax 64: c3 retq 65: 66 66 2e 0f 1f 84 00 00 00 00 00 data32 nopw %cs:0x0(%rax,%rax,1)
0000000000000070 <__bitmap_complement>: 70: 31 c0 xor %eax,%eax 72: 41 89 d0 mov %edx,%r8d 75: 41 c1 e8 06 shr $0x6,%r8d 79: 0f 84 8c 00 00 00 je 10b <__bitmap_complement+0x9b> 7f: 45 8d 48 ff lea -0x1(%r8),%r9d 83: 31 c9 xor %ecx,%ecx 85: 41 f6 c0 03 test $0x3,%r8b 89: 74 28 je b3 <__bitmap_complement+0x43> 8b: 45 89 c2 mov %r8d,%r10d 8e: 41 83 e2 03 and $0x3,%r10d 92: 31 c9 xor %ecx,%ecx 94: 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 nopw %cs:0x0(%rax,%rax,1) a0: 48 8b 04 ce mov (%rsi,%rcx,8),%rax a4: 48 f7 d0 not %rax a7: 48 89 04 cf mov %rax,(%rdi,%rcx,8) ab: 48 ff c1 inc %rcx ae: 41 39 ca cmp %ecx,%r10d b1: 75 ed jne a0 <__bitmap_complement+0x30> b3: 41 83 f9 03 cmp $0x3,%r9d b7: 72 4f jb 108 <__bitmap_complement+0x98> b9: 45 89 c1 mov %r8d,%r9d bc: 41 29 c9 sub %ecx,%r9d bf: 4c 8d 54 cf 18 lea 0x18(%rdi,%rcx,8),%r10 c4: 48 8d 4c ce 18 lea 0x18(%rsi,%rcx,8),%rcx c9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) d0: 48 8b 41 e8 mov -0x18(%rcx),%rax d4: 48 f7 d0 not %rax d7: 49 89 42 e8 mov %rax,-0x18(%r10) db: 48 8b 41 f0 mov -0x10(%rcx),%rax df: 48 f7 d0 not %rax e2: 49 89 42 f0 mov %rax,-0x10(%r10) e6: 48 8b 41 f8 mov -0x8(%rcx),%rax ea: 48 f7 d0 not %rax ed: 49 89 42 f8 mov %rax,-0x8(%r10) f1: 48 8b 01 mov (%rcx),%rax f4: 48 f7 d0 not %rax f7: 49 89 02 mov %rax,(%r10) fa: 49 83 c2 20 add $0x20,%r10 fe: 48 83 c1 20 add $0x20,%rcx 102: 41 83 c1 fc add $0xfffffffc,%r9d 106: 75 c8 jne d0 <__bitmap_complement+0x60> 108: 44 89 c0 mov %r8d,%eax 10b: f6 c2 3f test $0x3f,%dl 10e: 74 0b je 11b <__bitmap_complement+0xab> 110: 48 8b 0c c6 mov (%rsi,%rax,8),%rcx 114: 48 f7 d1 not %rcx 117: 48 89 0c c7 mov %rcx,(%rdi,%rax,8) 11b: c3 retq 11c: 0f 1f 40 00 nopl 0x0(%rax)
0000000000000120 <__bitmap_shift_right>: 120: 55 push %rbp 121: 48 89 e5 mov %rsp,%rbp 124: 41 57 push %r15 126: 41 56 push %r14 128: 41 55 push %r13 12a: 41 54 push %r12 12c: 53 push %rbx 12d: 48 83 ec 18 sub $0x18,%rsp 131: 89 cb mov %ecx,%ebx 133: 4c 8d 53 3f lea 0x3f(%rbx),%r10 137: 49 c1 ea 06 shr $0x6,%r10 13b: 41 89 d0 mov %edx,%r8d 13e: 41 c1 e8 06 shr $0x6,%r8d 142: f7 d9 neg %ecx 144: 49 c7 c4 ff ff ff ff mov $0xffffffffffffffff,%r12 14b: 49 d3 ec shr %cl,%r12 14e: 44 89 d0 mov %r10d,%eax 151: 44 29 c0 sub %r8d,%eax 154: 48 89 45 c8 mov %rax,-0x38(%rbp) 158: 0f 86 9b 00 00 00 jbe 1f9 <__bitmap_shift_right+0xd9> 15e: 83 e2 3f and $0x3f,%edx 161: 41 89 d6 mov %edx,%r14d 164: b8 40 00 00 00 mov $0x40,%eax 169: 29 d0 sub %edx,%eax 16b: 48 89 45 d0 mov %rax,-0x30(%rbp) 16f: 48 83 c3 3f add $0x3f,%rbx 173: 48 c1 eb 06 shr $0x6,%rbx 177: 41 89 df mov %ebx,%r15d 17a: 45 29 c7 sub %r8d,%r15d 17d: 4e 8d 6c c6 08 lea 0x8(%rsi,%r8,8),%r13 182: ff cb dec %ebx 184: 4d 89 c1 mov %r8,%r9 187: 49 29 d9 sub %rbx,%r9 18a: 31 db xor %ebx,%ebx 18c: 0f 1f 40 00 nopl 0x0(%rax) 190: 4d 8d 1c 19 lea (%r9,%rbx,1),%r11 194: 85 d2 test %edx,%edx 196: 74 38 je 1d0 <__bitmap_shift_right+0xb0> 198: 49 8d 4c 18 01 lea 0x1(%r8,%rbx,1),%rcx 19d: 4c 39 d1 cmp %r10,%rcx 1a0: be 00 00 00 00 mov $0x0,%esi 1a5: 73 2b jae 1d2 <__bitmap_shift_right+0xb2> 1a7: 49 8d 4c 19 01 lea 0x1(%r9,%rbx,1),%rcx 1ac: 48 83 f9 01 cmp $0x1,%rcx 1b0: 48 19 f6 sbb %rsi,%rsi 1b3: 48 f7 d6 not %rsi 1b6: 4c 09 e6 or %r12,%rsi 1b9: 49 23 74 dd 00 and 0x0(%r13,%rbx,8),%rsi 1be: 48 8b 4d d0 mov -0x30(%rbp),%rcx 1c2: 48 d3 e6 shl %cl,%rsi 1c5: eb 0b jmp 1d2 <__bitmap_shift_right+0xb2> 1c7: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 1d0: 31 f6 xor %esi,%esi 1d2: 49 83 fb 01 cmp $0x1,%r11 1d6: 48 19 c0 sbb %rax,%rax 1d9: 48 f7 d0 not %rax 1dc: 4c 09 e0 or %r12,%rax 1df: 49 23 44 dd f8 and -0x8(%r13,%rbx,8),%rax 1e4: 44 88 f1 mov %r14b,%cl 1e7: 48 d3 e8 shr %cl,%rax 1ea: 48 09 f0 or %rsi,%rax 1ed: 48 89 04 df mov %rax,(%rdi,%rbx,8) 1f1: 48 ff c3 inc %rbx 1f4: 41 39 df cmp %ebx,%r15d 1f7: 75 97 jne 190 <__bitmap_shift_right+0x70> 1f9: 45 85 c0 test %r8d,%r8d 1fc: 74 16 je 214 <__bitmap_shift_right+0xf4> 1fe: 48 8b 45 c8 mov -0x38(%rbp),%rax 202: 48 8d 3c c7 lea (%rdi,%rax,8),%rdi 206: 44 89 c2 mov %r8d,%edx 209: 48 c1 e2 03 shl $0x3,%rdx 20d: 31 f6 xor %esi,%esi 20f: e8 00 00 00 00 callq 214 <__bitmap_shift_right+0xf4> 210: R_X86_64_PC32 memset-0x4 214: 48 83 c4 18 add $0x18,%rsp 218: 5b pop %rbx 219: 41 5c pop %r12 21b: 41 5d pop %r13 21d: 41 5e pop %r14 21f: 41 5f pop %r15 221: 5d pop %rbp 222: c3 retq 223: 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 nopw %cs:0x0(%rax,%rax,1)
0000000000000230 <__bitmap_shift_left>: 230: 55 push %rbp 231: 48 89 e5 mov %rsp,%rbp 234: 41 57 push %r15 236: 41 56 push %r14 238: 53 push %rbx 239: 50 push %rax 23a: 41 89 cb mov %ecx,%r11d 23d: 49 8d 43 3f lea 0x3f(%r11),%rax 241: 48 c1 e8 06 shr $0x6,%rax 245: 41 89 d2 mov %edx,%r10d 248: 41 c1 ea 06 shr $0x6,%r10d 24c: 44 39 d0 cmp %r10d,%eax 24f: 0f 8e 80 00 00 00 jle 2d5 <__bitmap_shift_left+0xa5> 255: 83 e2 3f and $0x3f,%edx 258: 41 b8 40 00 00 00 mov $0x40,%r8d 25e: 41 29 d0 sub %edx,%r8d 261: 41 89 d1 mov %edx,%r9d 264: 49 83 c3 3f add $0x3f,%r11 268: 49 c1 eb 06 shr $0x6,%r11 26c: 44 89 d8 mov %r11d,%eax 26f: 44 29 d0 sub %r10d,%eax 272: 48 98 cltq 274: 48 ff c8 dec %rax 277: 41 8d 4b fe lea -0x2(%r11),%ecx 27b: 44 29 d1 sub %r10d,%ecx 27e: 48 63 c9 movslq %ecx,%rcx 281: 4c 8d 3c ce lea (%rsi,%rcx,8),%r15 285: 41 ff cb dec %r11d 288: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1) 290: 85 d2 test %edx,%edx 292: 74 1c je 2b0 <__bitmap_shift_left+0x80> 294: 85 c0 test %eax,%eax 296: 41 be 00 00 00 00 mov $0x0,%r14d 29c: 7e 15 jle 2b3 <__bitmap_shift_left+0x83> 29e: 4d 8b 37 mov (%r15),%r14 2a1: 44 88 c1 mov %r8b,%cl 2a4: 49 d3 ee shr %cl,%r14 2a7: eb 0a jmp 2b3 <__bitmap_shift_left+0x83> 2a9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 2b0: 45 31 f6 xor %r14d,%r14d 2b3: 48 8b 1c c6 mov (%rsi,%rax,8),%rbx 2b7: 44 88 c9 mov %r9b,%cl 2ba: 48 d3 e3 shl %cl,%rbx 2bd: 4c 09 f3 or %r14,%rbx 2c0: 44 89 d9 mov %r11d,%ecx 2c3: 48 89 1c cf mov %rbx,(%rdi,%rcx,8) 2c7: 48 ff c8 dec %rax 2ca: 49 83 c7 f8 add $0xfffffffffffffff8,%r15 2ce: 41 ff cb dec %r11d 2d1: 85 c0 test %eax,%eax 2d3: 79 bb jns 290 <__bitmap_shift_left+0x60> 2d5: 45 85 d2 test %r10d,%r10d 2d8: 74 0e je 2e8 <__bitmap_shift_left+0xb8> 2da: 44 89 d2 mov %r10d,%edx 2dd: 48 c1 e2 03 shl $0x3,%rdx 2e1: 31 f6 xor %esi,%esi 2e3: e8 00 00 00 00 callq 2e8 <__bitmap_shift_left+0xb8> 2e4: R_X86_64_PC32 memset-0x4 2e8: 48 83 c4 08 add $0x8,%rsp 2ec: 5b pop %rbx 2ed: 41 5e pop %r14 2ef: 41 5f pop %r15 2f1: 5d pop %rbp 2f2: c3 retq 2f3: 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 nopw %cs:0x0(%rax,%rax,1)
0000000000000300 <__bitmap_and>: 300: 41 56 push %r14 302: 53 push %rbx 303: 31 c0 xor %eax,%eax 305: 41 89 c8 mov %ecx,%r8d 308: 41 c1 e8 06 shr $0x6,%r8d 30c: 41 b9 00 00 00 00 mov $0x0,%r9d 312: 74 6c je 380 <__bitmap_and+0x80> 314: 31 db xor %ebx,%ebx 316: 0f ba e1 06 bt $0x6,%ecx 31a: b8 00 00 00 00 mov $0x0,%eax 31f: 73 0e jae 32f <__bitmap_and+0x2f> 321: 48 8b 02 mov (%rdx),%rax 324: 48 23 06 and (%rsi),%rax 327: 48 89 07 mov %rax,(%rdi) 32a: bb 01 00 00 00 mov $0x1,%ebx 32f: 41 83 f8 01 cmp $0x1,%r8d 333: 74 48 je 37d <__bitmap_and+0x7d> 335: 45 89 c1 mov %r8d,%r9d 338: 41 29 d9 sub %ebx,%r9d 33b: 4c 8d 54 de 08 lea 0x8(%rsi,%rbx,8),%r10 340: 4c 8d 5c da 08 lea 0x8(%rdx,%rbx,8),%r11 345: 4c 8d 74 df 08 lea 0x8(%rdi,%rbx,8),%r14 34a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 350: 49 8b 5b f8 mov -0x8(%r11),%rbx 354: 49 23 5a f8 and -0x8(%r10),%rbx 358: 49 89 5e f8 mov %rbx,-0x8(%r14) 35c: 48 09 c3 or %rax,%rbx 35f: 49 8b 03 mov (%r11),%rax 362: 49 23 02 and (%r10),%rax 365: 49 89 06 mov %rax,(%r14) 368: 48 09 d8 or %rbx,%rax 36b: 49 83 c2 10 add $0x10,%r10 36f: 49 83 c3 10 add $0x10,%r11 373: 49 83 c6 10 add $0x10,%r14 377: 41 83 c1 fe add $0xfffffffe,%r9d 37b: 75 d3 jne 350 <__bitmap_and+0x50> 37d: 45 89 c1 mov %r8d,%r9d 380: f6 c1 3f test $0x3f,%cl 383: 74 1b je 3a0 <__bitmap_and+0xa0> 385: f7 d9 neg %ecx 387: 48 c7 c3 ff ff ff ff mov $0xffffffffffffffff,%rbx 38e: 48 d3 eb shr %cl,%rbx 391: 4a 23 1c ce and (%rsi,%r9,8),%rbx 395: 4a 23 1c ca and (%rdx,%r9,8),%rbx 399: 4a 89 1c cf mov %rbx,(%rdi,%r9,8) 39d: 48 09 d8 or %rbx,%rax 3a0: 48 85 c0 test %rax,%rax 3a3: 0f 95 c0 setne %al 3a6: 0f b6 c0 movzbl %al,%eax 3a9: 5b pop %rbx 3aa: 41 5e pop %r14 3ac: c3 retq 3ad: 0f 1f 00 nopl (%rax)
00000000000003b0 <__bitmap_or>: 3b0: 89 c8 mov %ecx,%eax 3b2: 48 8d 48 3f lea 0x3f(%rax),%rcx 3b6: 48 c1 e9 06 shr $0x6,%rcx 3ba: 85 c9 test %ecx,%ecx 3bc: 74 78 je 436 <__bitmap_or+0x86> 3be: 48 8d 48 3f lea 0x3f(%rax),%rcx 3c2: 49 89 c9 mov %rcx,%r9 3c5: 49 c1 e9 06 shr $0x6,%r9 3c9: 45 31 c0 xor %r8d,%r8d 3cc: 48 0f ba e1 06 bt $0x6,%rcx 3d1: 73 0f jae 3e2 <__bitmap_or+0x32> 3d3: 48 8b 0a mov (%rdx),%rcx 3d6: 48 0b 0e or (%rsi),%rcx 3d9: 48 89 0f mov %rcx,(%rdi) 3dc: 41 b8 01 00 00 00 mov $0x1,%r8d 3e2: 41 83 f9 01 cmp $0x1,%r9d 3e6: 74 4e je 436 <__bitmap_or+0x86> 3e8: 48 83 c0 3f add $0x3f,%rax 3ec: 48 c1 e8 06 shr $0x6,%rax 3f0: 44 29 c0 sub %r8d,%eax 3f3: 4a 8d 4c c6 08 lea 0x8(%rsi,%r8,8),%rcx 3f8: 4a 8d 54 c2 08 lea 0x8(%rdx,%r8,8),%rdx 3fd: 4a 8d 74 c7 08 lea 0x8(%rdi,%r8,8),%rsi 402: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 nopw %cs:0x0(%rax,%rax,1) 410: 48 8b 7a f8 mov -0x8(%rdx),%rdi 414: 48 0b 79 f8 or -0x8(%rcx),%rdi 418: 48 89 7e f8 mov %rdi,-0x8(%rsi) 41c: 48 8b 3a mov (%rdx),%rdi 41f: 48 0b 39 or (%rcx),%rdi 422: 48 89 3e mov %rdi,(%rsi) 425: 48 83 c1 10 add $0x10,%rcx 429: 48 83 c2 10 add $0x10,%rdx 42d: 48 83 c6 10 add $0x10,%rsi 431: 83 c0 fe add $0xfffffffe,%eax 434: 75 da jne 410 <__bitmap_or+0x60> 436: c3 retq 437: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1)
0000000000000440 <__bitmap_xor>: 440: 89 c8 mov %ecx,%eax 442: 48 8d 48 3f lea 0x3f(%rax),%rcx 446: 48 c1 e9 06 shr $0x6,%rcx 44a: 85 c9 test %ecx,%ecx 44c: 74 78 je 4c6 <__bitmap_xor+0x86> 44e: 48 8d 48 3f lea 0x3f(%rax),%rcx 452: 49 89 c9 mov %rcx,%r9 455: 49 c1 e9 06 shr $0x6,%r9 459: 45 31 c0 xor %r8d,%r8d 45c: 48 0f ba e1 06 bt $0x6,%rcx 461: 73 0f jae 472 <__bitmap_xor+0x32> 463: 48 8b 0a mov (%rdx),%rcx 466: 48 33 0e xor (%rsi),%rcx 469: 48 89 0f mov %rcx,(%rdi) 46c: 41 b8 01 00 00 00 mov $0x1,%r8d 472: 41 83 f9 01 cmp $0x1,%r9d 476: 74 4e je 4c6 <__bitmap_xor+0x86> 478: 48 83 c0 3f add $0x3f,%rax 47c: 48 c1 e8 06 shr $0x6,%rax 480: 44 29 c0 sub %r8d,%eax 483: 4a 8d 4c c6 08 lea 0x8(%rsi,%r8,8),%rcx 488: 4a 8d 54 c2 08 lea 0x8(%rdx,%r8,8),%rdx 48d: 4a 8d 74 c7 08 lea 0x8(%rdi,%r8,8),%rsi 492: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 nopw %cs:0x0(%rax,%rax,1) 4a0: 48 8b 7a f8 mov -0x8(%rdx),%rdi 4a4: 48 33 79 f8 xor -0x8(%rcx),%rdi 4a8: 48 89 7e f8 mov %rdi,-0x8(%rsi) 4ac: 48 8b 3a mov (%rdx),%rdi 4af: 48 33 39 xor (%rcx),%rdi 4b2: 48 89 3e mov %rdi,(%rsi) 4b5: 48 83 c1 10 add $0x10,%rcx 4b9: 48 83 c2 10 add $0x10,%rdx 4bd: 48 83 c6 10 add $0x10,%rsi 4c1: 83 c0 fe add $0xfffffffe,%eax 4c4: 75 da jne 4a0 <__bitmap_xor+0x60> 4c6: c3 retq 4c7: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1)
00000000000004d0 <__bitmap_andnot>: 4d0: 41 56 push %r14 4d2: 53 push %rbx 4d3: 31 c0 xor %eax,%eax 4d5: 41 89 c8 mov %ecx,%r8d 4d8: 41 c1 e8 06 shr $0x6,%r8d 4dc: 41 b9 00 00 00 00 mov $0x0,%r9d 4e2: 74 72 je 556 <__bitmap_andnot+0x86> 4e4: 31 db xor %ebx,%ebx 4e6: 0f ba e1 06 bt $0x6,%ecx 4ea: b8 00 00 00 00 mov $0x0,%eax 4ef: 73 11 jae 502 <__bitmap_andnot+0x32> 4f1: 48 8b 02 mov (%rdx),%rax 4f4: 48 f7 d0 not %rax 4f7: 48 23 06 and (%rsi),%rax 4fa: 48 89 07 mov %rax,(%rdi) 4fd: bb 01 00 00 00 mov $0x1,%ebx 502: 41 83 f8 01 cmp $0x1,%r8d 506: 74 4b je 553 <__bitmap_andnot+0x83> 508: 45 89 c1 mov %r8d,%r9d 50b: 41 29 d9 sub %ebx,%r9d 50e: 4c 8d 54 de 08 lea 0x8(%rsi,%rbx,8),%r10 513: 4c 8d 5c da 08 lea 0x8(%rdx,%rbx,8),%r11 518: 4c 8d 74 df 08 lea 0x8(%rdi,%rbx,8),%r14 51d: 0f 1f 00 nopl (%rax) 520: 49 8b 5b f8 mov -0x8(%r11),%rbx 524: 48 f7 d3 not %rbx 527: 49 23 5a f8 and -0x8(%r10),%rbx 52b: 49 89 5e f8 mov %rbx,-0x8(%r14) 52f: 48 09 c3 or %rax,%rbx 532: 49 8b 03 mov (%r11),%rax 535: 48 f7 d0 not %rax 538: 49 23 02 and (%r10),%rax 53b: 49 89 06 mov %rax,(%r14) 53e: 48 09 d8 or %rbx,%rax 541: 49 83 c2 10 add $0x10,%r10 545: 49 83 c3 10 add $0x10,%r11 549: 49 83 c6 10 add $0x10,%r14 54d: 41 83 c1 fe add $0xfffffffe,%r9d 551: 75 cd jne 520 <__bitmap_andnot+0x50> 553: 45 89 c1 mov %r8d,%r9d 556: f6 c1 3f test $0x3f,%cl 559: 74 21 je 57c <__bitmap_andnot+0xac> 55b: 4a 8b 14 ca mov (%rdx,%r9,8),%rdx 55f: 48 f7 d2 not %rdx 562: f7 d9 neg %ecx 564: 48 c7 c3 ff ff ff ff mov $0xffffffffffffffff,%rbx 56b: 48 d3 eb shr %cl,%rbx 56e: 4a 23 1c ce and (%rsi,%r9,8),%rbx 572: 48 21 d3 and %rdx,%rbx 575: 4a 89 1c cf mov %rbx,(%rdi,%r9,8) 579: 48 09 d8 or %rbx,%rax 57c: 48 85 c0 test %rax,%rax 57f: 0f 95 c0 setne %al 582: 0f b6 c0 movzbl %al,%eax 585: 5b pop %rbx 586: 41 5e pop %r14 588: c3 retq 589: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
0000000000000590 <__bitmap_intersects>: 590: 45 31 c0 xor %r8d,%r8d 593: 41 89 d1 mov %edx,%r9d 596: 41 c1 e9 06 shr $0x6,%r9d 59a: 74 34 je 5d0 <__bitmap_intersects+0x40> 59c: 49 89 fa mov %rdi,%r10 59f: 48 89 f1 mov %rsi,%rcx 5a2: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 nopw %cs:0x0(%rax,%rax,1) 5b0: 4c 8b 19 mov (%rcx),%r11 5b3: b8 01 00 00 00 mov $0x1,%eax 5b8: 4d 85 1a test %r11,(%r10) 5bb: 75 37 jne 5f4 <__bitmap_intersects+0x64> 5bd: 41 ff c0 inc %r8d 5c0: 48 83 c1 08 add $0x8,%rcx 5c4: 49 83 c2 08 add $0x8,%r10 5c8: 45 39 c8 cmp %r9d,%r8d 5cb: 72 e3 jb 5b0 <__bitmap_intersects+0x20> 5cd: 45 89 c0 mov %r8d,%r8d 5d0: f6 c2 3f test $0x3f,%dl 5d3: 74 1d je 5f2 <__bitmap_intersects+0x62> 5d5: f7 da neg %edx 5d7: 49 c7 c1 ff ff ff ff mov $0xffffffffffffffff,%r9 5de: 88 d1 mov %dl,%cl 5e0: 49 d3 e9 shr %cl,%r9 5e3: 4e 23 0c c7 and (%rdi,%r8,8),%r9 5e7: b8 01 00 00 00 mov $0x1,%eax 5ec: 4e 85 0c c6 test %r9,(%rsi,%r8,8) 5f0: 75 02 jne 5f4 <__bitmap_intersects+0x64> 5f2: 31 c0 xor %eax,%eax 5f4: c3 retq 5f5: 66 66 2e 0f 1f 84 00 00 00 00 00 data32 nopw %cs:0x0(%rax,%rax,1)
0000000000000600 <__bitmap_subset>: 600: 45 31 c0 xor %r8d,%r8d 603: 41 89 d1 mov %edx,%r9d 606: 41 c1 e9 06 shr $0x6,%r9d 60a: 74 34 je 640 <__bitmap_subset+0x40> 60c: 49 89 fa mov %rdi,%r10 60f: 49 89 f3 mov %rsi,%r11 612: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 nopw %cs:0x0(%rax,%rax,1) 620: 49 8b 0b mov (%r11),%rcx 623: 48 f7 d1 not %rcx 626: 31 c0 xor %eax,%eax 628: 49 85 0a test %rcx,(%r10) 62b: 75 3d jne 66a <__bitmap_subset+0x6a> 62d: 41 ff c0 inc %r8d 630: 49 83 c3 08 add $0x8,%r11 634: 49 83 c2 08 add $0x8,%r10 638: 45 39 c8 cmp %r9d,%r8d 63b: 72 e3 jb 620 <__bitmap_subset+0x20> 63d: 45 89 c0 mov %r8d,%r8d 640: f6 c2 3f test $0x3f,%dl 643: 74 20 je 665 <__bitmap_subset+0x65> 645: 4e 8b 0c c6 mov (%rsi,%r8,8),%r9 649: 49 f7 d1 not %r9 64c: f7 da neg %edx 64e: 48 c7 c6 ff ff ff ff mov $0xffffffffffffffff,%rsi 655: 88 d1 mov %dl,%cl 657: 48 d3 ee shr %cl,%rsi 65a: 4a 23 34 c7 and (%rdi,%r8,8),%rsi 65e: 31 c0 xor %eax,%eax 660: 4c 85 ce test %r9,%rsi 663: 75 05 jne 66a <__bitmap_subset+0x6a> 665: b8 01 00 00 00 mov $0x1,%eax 66a: c3 retq 66b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
0000000000000670 <__bitmap_weight>: 670: 49 89 f8 mov %rdi,%r8 673: 31 d2 xor %edx,%edx 675: 41 89 f1 mov %esi,%r9d 678: 41 c1 e9 06 shr $0x6,%r9d 67c: b8 00 00 00 00 mov $0x0,%eax 681: 74 26 je 6a9 <__bitmap_weight+0x39> 683: 31 d2 xor %edx,%edx 685: 45 89 ca mov %r9d,%r10d 688: 4c 89 c1 mov %r8,%rcx 68b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 690: 48 8b 39 mov (%rcx),%rdi 693: e8 00 00 00 00 callq 698 <__bitmap_weight+0x28> 694: R_X86_64_PC32 __sw_hweight64-0x4 698: 89 d2 mov %edx,%edx 69a: 48 01 c2 add %rax,%rdx 69d: 48 83 c1 08 add $0x8,%rcx 6a1: 41 ff ca dec %r10d 6a4: 75 ea jne 690 <__bitmap_weight+0x20> 6a6: 44 89 c8 mov %r9d,%eax 6a9: 40 f6 c6 3f test $0x3f,%sil 6ad: 74 1c je 6cb <__bitmap_weight+0x5b> 6af: f7 de neg %esi 6b1: 48 c7 c7 ff ff ff ff mov $0xffffffffffffffff,%rdi 6b8: 40 88 f1 mov %sil,%cl 6bb: 48 d3 ef shr %cl,%rdi 6be: 49 23 3c c0 and (%r8,%rax,8),%rdi 6c2: e8 00 00 00 00 callq 6c7 <__bitmap_weight+0x57> 6c3: R_X86_64_PC32 __sw_hweight64-0x4 6c7: 01 d0 add %edx,%eax 6c9: 89 c2 mov %eax,%edx 6cb: 89 d0 mov %edx,%eax 6cd: c3 retq 6ce: 66 90 xchg %ax,%ax
00000000000006d0 <bitmap_set>: 6d0: 53 push %rbx 6d1: 89 f1 mov %esi,%ecx 6d3: 41 89 ca mov %ecx,%r10d 6d6: 41 c1 ea 06 shr $0x6,%r10d 6da: 4a 8d 04 d7 lea (%rdi,%r10,8),%rax 6de: 49 c7 c3 ff ff ff ff mov $0xffffffffffffffff,%r11 6e5: 49 d3 e3 shl %cl,%r11 6e8: 89 cb mov %ecx,%ebx 6ea: 83 cb c0 or $0xffffffc0,%ebx 6ed: 41 89 d8 mov %ebx,%r8d 6f0: 41 01 d0 add %edx,%r8d 6f3: 78 42 js 737 <bitmap_set+0x67> 6f5: 45 89 c1 mov %r8d,%r9d 6f8: 41 c1 e9 06 shr $0x6,%r9d 6fc: 41 8d 71 01 lea 0x1(%r9),%esi 700: 40 f6 c6 03 test $0x3,%sil 704: 74 36 je 73c <bitmap_set+0x6c> 706: 01 d3 add %edx,%ebx 708: c1 eb 06 shr $0x6,%ebx 70b: ff c3 inc %ebx 70d: 83 e3 03 and $0x3,%ebx 710: f7 db neg %ebx 712: 44 89 c6 mov %r8d,%esi 715: 66 66 2e 0f 1f 84 00 00 00 00 00 data32 nopw %cs:0x0(%rax,%rax,1) 720: 4c 09 18 or %r11,(%rax) 723: 48 83 c0 08 add $0x8,%rax 727: 83 c6 c0 add $0xffffffc0,%esi 72a: ff c3 inc %ebx 72c: 49 c7 c3 ff ff ff ff mov $0xffffffffffffffff,%r11 733: 75 eb jne 720 <bitmap_set+0x50> 735: eb 08 jmp 73f <bitmap_set+0x6f> 737: 41 89 d0 mov %edx,%r8d 73a: eb 60 jmp 79c <bitmap_set+0xcc> 73c: 44 89 c6 mov %r8d,%esi 73f: 4b 8d 5c 0a 01 lea 0x1(%r10,%r9,1),%rbx 744: 41 c1 e1 06 shl $0x6,%r9d 748: 41 81 f8 c0 00 00 00 cmp $0xc0,%r8d 74f: 72 3d jb 78e <bitmap_set+0xbe> 751: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0(%rax,%rax,1) 760: 4c 09 18 or %r11,(%rax) 763: 48 c7 40 08 ff ff ff ff movq $0xffffffffffffffff,0x8(%rax) 76b: 48 c7 40 10 ff ff ff ff movq $0xffffffffffffffff,0x10(%rax) 773: 48 c7 40 18 ff ff ff ff movq $0xffffffffffffffff,0x18(%rax) 77b: 48 83 c0 20 add $0x20,%rax 77f: 81 c6 00 ff ff ff add $0xffffff00,%esi 785: 49 c7 c3 ff ff ff ff mov $0xffffffffffffffff,%r11 78c: 79 d2 jns 760 <bitmap_set+0x90> 78e: 48 8d 04 df lea (%rdi,%rbx,8),%rax 792: 45 29 c8 sub %r9d,%r8d 795: 49 c7 c3 ff ff ff ff mov $0xffffffffffffffff,%r11 79c: 45 85 c0 test %r8d,%r8d 79f: 74 14 je 7b5 <bitmap_set+0xe5> 7a1: 01 d1 add %edx,%ecx 7a3: f7 d9 neg %ecx 7a5: 48 c7 c2 ff ff ff ff mov $0xffffffffffffffff,%rdx 7ac: 48 d3 ea shr %cl,%rdx 7af: 49 21 d3 and %rdx,%r11 7b2: 4c 09 18 or %r11,(%rax) 7b5: 5b pop %rbx 7b6: c3 retq 7b7: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1)
00000000000007c0 <bitmap_clear>: 7c0: 41 56 push %r14 7c2: 53 push %rbx 7c3: 89 f1 mov %esi,%ecx 7c5: 41 89 ca mov %ecx,%r10d 7c8: 41 c1 ea 06 shr $0x6,%r10d 7cc: 4a 8d 04 d7 lea (%rdi,%r10,8),%rax 7d0: 49 c7 c3 ff ff ff ff mov $0xffffffffffffffff,%r11 7d7: 49 d3 e3 shl %cl,%r11 7da: 89 cb mov %ecx,%ebx 7dc: 83 cb c0 or $0xffffffc0,%ebx 7df: 41 89 d9 mov %ebx,%r9d 7e2: 41 01 d1 add %edx,%r9d 7e5: 78 3f js 826 <bitmap_clear+0x66> 7e7: 49 f7 d3 not %r11 7ea: 45 89 c8 mov %r9d,%r8d 7ed: 41 c1 e8 06 shr $0x6,%r8d 7f1: 41 8d 70 01 lea 0x1(%r8),%esi 7f5: 40 f6 c6 03 test $0x3,%sil 7f9: 74 30 je 82b <bitmap_clear+0x6b> 7fb: 01 d3 add %edx,%ebx 7fd: c1 eb 06 shr $0x6,%ebx 800: ff c3 inc %ebx 802: 83 e3 03 and $0x3,%ebx 805: f7 db neg %ebx 807: 45 31 f6 xor %r14d,%r14d 80a: 44 89 ce mov %r9d,%esi 80d: 0f 1f 00 nopl (%rax) 810: 4c 21 18 and %r11,(%rax) 813: 48 83 c0 08 add $0x8,%rax 817: 83 c6 c0 add $0xffffffc0,%esi 81a: ff c3 inc %ebx 81c: 41 bb 00 00 00 00 mov $0x0,%r11d 822: 75 ec jne 810 <bitmap_clear+0x50> 824: eb 0b jmp 831 <bitmap_clear+0x71> 826: 41 89 d1 mov %edx,%r9d 829: eb 60 jmp 88b <bitmap_clear+0xcb> 82b: 44 89 ce mov %r9d,%esi 82e: 4d 89 de mov %r11,%r14 831: 4b 8d 5c 02 01 lea 0x1(%r10,%r8,1),%rbx 836: 41 c1 e0 06 shl $0x6,%r8d 83a: 41 81 f9 c0 00 00 00 cmp $0xc0,%r9d 841: 72 3a jb 87d <bitmap_clear+0xbd> 843: 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 nopw %cs:0x0(%rax,%rax,1) 850: 4c 21 30 and %r14,(%rax) 853: 48 c7 40 08 00 00 00 00 movq $0x0,0x8(%rax) 85b: 48 c7 40 10 00 00 00 00 movq $0x0,0x10(%rax) 863: 48 c7 40 18 00 00 00 00 movq $0x0,0x18(%rax) 86b: 48 83 c0 20 add $0x20,%rax 86f: 81 c6 00 ff ff ff add $0xffffff00,%esi 875: 41 be 00 00 00 00 mov $0x0,%r14d 87b: 79 d3 jns 850 <bitmap_clear+0x90> 87d: 48 8d 04 df lea (%rdi,%rbx,8),%rax 881: 45 29 c1 sub %r8d,%r9d 884: 49 c7 c3 ff ff ff ff mov $0xffffffffffffffff,%r11 88b: 45 85 c9 test %r9d,%r9d 88e: 74 17 je 8a7 <bitmap_clear+0xe7> 890: 01 d1 add %edx,%ecx 892: f7 d9 neg %ecx 894: 48 c7 c2 ff ff ff ff mov $0xffffffffffffffff,%rdx 89b: 48 d3 ea shr %cl,%rdx 89e: 49 21 d3 and %rdx,%r11 8a1: 49 f7 d3 not %r11 8a4: 4c 21 18 and %r11,(%rax) 8a7: 5b pop %rbx 8a8: 41 5e pop %r14 8aa: c3 retq 8ab: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
00000000000008b0 <bitmap_find_next_zero_area_off>: 8b0: 55 push %rbp 8b1: 48 89 e5 mov %rsp,%rbp 8b4: 41 57 push %r15 8b6: 41 56 push %r14 8b8: 41 55 push %r13 8ba: 41 54 push %r12 8bc: 53 push %rbx 8bd: 48 83 ec 18 sub $0x18,%rsp 8c1: 4d 89 ce mov %r9,%r14 8c4: 4c 89 75 d0 mov %r14,-0x30(%rbp) 8c8: 4d 89 c7 mov %r8,%r15 8cb: 89 4d c0 mov %ecx,-0x40(%rbp) 8ce: 49 89 f5 mov %rsi,%r13 8d1: 49 89 fc mov %rdi,%r12 8d4: e8 00 00 00 00 callq 8d9 <bitmap_find_next_zero_area_off+0x29> 8d5: R_X86_64_PC32 find_next_zero_bit-0x4 8d9: 4b 8d 0c 3e lea (%r14,%r15,1),%rcx 8dd: 48 89 4d c8 mov %rcx,-0x38(%rbp) 8e1: 48 8d 1c 08 lea (%rax,%rcx,1),%rbx 8e5: 49 f7 d7 not %r15 8e8: 4c 21 fb and %r15,%rbx 8eb: 4c 29 f3 sub %r14,%rbx 8ee: 8b 45 c0 mov -0x40(%rbp),%eax 8f1: 48 89 45 c0 mov %rax,-0x40(%rbp) 8f5: eb 2d jmp 924 <bitmap_find_next_zero_area_off+0x74> 8f7: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 900: 48 ff c0 inc %rax 903: 4c 89 e7 mov %r12,%rdi 906: 4c 89 ee mov %r13,%rsi 909: 48 89 c2 mov %rax,%rdx 90c: e8 00 00 00 00 callq 911 <bitmap_find_next_zero_area_off+0x61> 90d: R_X86_64_PC32 find_next_zero_bit-0x4 911: 48 8b 4d c8 mov -0x38(%rbp),%rcx 915: 48 8d 1c 08 lea (%rax,%rcx,1),%rbx 919: 4c 21 fb and %r15,%rbx 91c: 48 2b 5d d0 sub -0x30(%rbp),%rbx 920: 48 8b 45 c0 mov -0x40(%rbp),%rax 924: 4c 8d 34 03 lea (%rbx,%rax,1),%r14 928: 4d 39 ee cmp %r13,%r14 92b: 77 16 ja 943 <bitmap_find_next_zero_area_off+0x93> 92d: 4c 89 e7 mov %r12,%rdi 930: 4c 89 f6 mov %r14,%rsi 933: 48 89 da mov %rbx,%rdx 936: e8 00 00 00 00 callq 93b <bitmap_find_next_zero_area_off+0x8b> 937: R_X86_64_PC32 find_next_bit-0x4 93b: 4c 39 f0 cmp %r14,%rax 93e: 49 89 de mov %rbx,%r14 941: 72 bd jb 900 <bitmap_find_next_zero_area_off+0x50> 943: 4c 89 f0 mov %r14,%rax 946: 48 83 c4 18 add $0x18,%rsp 94a: 5b pop %rbx 94b: 41 5c pop %r12 94d: 41 5d pop %r13 94f: 41 5e pop %r14 951: 41 5f pop %r15 953: 5d pop %rbp 954: c3 retq 955: 66 66 2e 0f 1f 84 00 00 00 00 00 data32 nopw %cs:0x0(%rax,%rax,1)
0000000000000960 <__bitmap_parse>: 960: 55 push %rbp 961: 48 89 e5 mov %rsp,%rbp 964: 41 57 push %r15 966: 41 56 push %r14 968: 41 55 push %r13 96a: 41 54 push %r12 96c: 53 push %rbx 96d: 48 83 ec 48 sub $0x48,%rsp 971: 44 89 45 bc mov %r8d,-0x44(%rbp) 975: 49 89 cf mov %rcx,%r15 978: 89 55 d0 mov %edx,-0x30(%rbp) 97b: 41 89 f4 mov %esi,%r12d 97e: 49 89 fd mov %rdi,%r13 981: 44 89 c3 mov %r8d,%ebx 984: 48 83 c3 3f add $0x3f,%rbx 988: 48 c1 eb 06 shr $0x6,%rbx 98c: 48 8d 14 dd 00 00 00 00 lea 0x0(,%rbx,8),%rdx 994: 45 31 f6 xor %r14d,%r14d 997: 31 f6 xor %esi,%esi 999: 4c 89 ff mov %r15,%rdi 99c: e8 00 00 00 00 callq 9a1 <__bitmap_parse+0x41> 99d: R_X86_64_PC32 memset-0x4 9a1: 49 89 d9 mov %rbx,%r9 9a4: 4d 89 f8 mov %r15,%r8 9a7: 4d 89 ca mov %r9,%r10 9aa: 49 ff ca dec %r10 9ad: 41 8d 41 fe lea -0x2(%r9),%eax 9b1: 48 98 cltq 9b3: 49 8d 04 c0 lea (%r8,%rax,8),%rax 9b7: 48 89 45 b0 mov %rax,-0x50(%rbp) 9bb: c7 45 c0 00 00 00 00 movl $0x0,-0x40(%rbp) 9c2: 31 ff xor %edi,%edi 9c4: c7 45 c4 00 00 00 00 movl $0x0,-0x3c(%rbp) 9cb: 4d 89 ef mov %r13,%r15 9ce: 89 7d c8 mov %edi,-0x38(%rbp) 9d1: c7 45 cc 00 00 00 00 movl $0x0,-0x34(%rbp) 9d8: 45 31 db xor %r11d,%r11d 9db: 44 89 e3 mov %r12d,%ebx 9de: eb 40 jmp a20 <__bitmap_parse+0xc0> 9e0: 45 89 dc mov %r11d,%r12d 9e3: 41 c1 e4 04 shl $0x4,%r12d 9e7: 44 89 f7 mov %r14d,%edi 9ea: 4c 89 45 a8 mov %r8,-0x58(%rbp) 9ee: 4c 89 4d 98 mov %r9,-0x68(%rbp) 9f2: 4c 89 55 a0 mov %r10,-0x60(%rbp) 9f6: e8 00 00 00 00 callq 9fb <__bitmap_parse+0x9b> 9f7: R_X86_64_PC32 hex_to_bin-0x4 9fb: 8b 7d c8 mov -0x38(%rbp),%edi 9fe: 4c 8b 55 a0 mov -0x60(%rbp),%r10 a02: 4c 8b 4d 98 mov -0x68(%rbp),%r9 a06: 4c 8b 45 a8 mov -0x58(%rbp),%r8 a0a: 41 09 c4 or %eax,%r12d a0d: 45 89 e3 mov %r12d,%r11d a10: ff 45 cc incl -0x34(%rbp) a13: ff 45 c0 incl -0x40(%rbp) a16: 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:0x0(%rax,%rax,1) a20: 44 89 f6 mov %r14d,%esi a23: 45 31 e4 xor %r12d,%r12d a26: 85 db test %ebx,%ebx a28: 0f 84 a8 00 00 00 je ad6 <__bitmap_parse+0x176> a2e: 83 7d d0 00 cmpl $0x0,-0x30(%rbp) a32: 74 2c je a60 <__bitmap_parse+0x100> a34: 31 c9 xor %ecx,%ecx a36: 90 nop a37: 90 nop a38: 90 nop a39: 41 8a 55 00 mov 0x0(%r13),%dl a3d: 90 nop a3e: 90 nop a3f: 90 nop a40: b8 f2 ff ff ff mov $0xfffffff2,%eax a45: 85 c9 test %ecx,%ecx a47: 0f 85 26 01 00 00 jne b73 <__bitmap_parse+0x213> a4d: 49 ff c5 inc %r13 a50: eb 14 jmp a66 <__bitmap_parse+0x106> a52: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 nopw %cs:0x0(%rax,%rax,1) a60: 41 8a 17 mov (%r15),%dl a63: 49 ff c7 inc %r15 a66: 44 0f be f2 movsbl %dl,%r14d a6a: ff cb dec %ebx a6c: 41 0f b6 c6 movzbl %r14b,%eax a70: 8a 88 00 00 00 00 mov 0x0(%rax),%cl a72: R_X86_64_32S _ctype a76: f6 c1 20 test $0x20,%cl a79: 75 a5 jne a20 <__bitmap_parse+0xc0> a7b: 83 7d c0 00 cmpl $0x0,-0x40(%rbp) a7f: 74 1a je a9b <__bitmap_parse+0x13b> a81: 84 d2 test %dl,%dl a83: 74 16 je a9b <__bitmap_parse+0x13b> a85: 40 0f b6 f6 movzbl %sil,%esi a89: b8 ea ff ff ff mov $0xffffffea,%eax a8e: f6 86 00 00 00 00 20 testb $0x20,0x0(%rsi) a90: R_X86_64_32S _ctype a95: 0f 85 d8 00 00 00 jne b73 <__bitmap_parse+0x213> a9b: 84 d2 test %dl,%dl a9d: 74 31 je ad0 <__bitmap_parse+0x170> a9f: 0f b6 c2 movzbl %dl,%eax aa2: 83 f8 2c cmp $0x2c,%eax aa5: 74 29 je ad0 <__bitmap_parse+0x170> aa7: b8 ea ff ff ff mov $0xffffffea,%eax aac: f6 c1 44 test $0x44,%cl aaf: 0f 84 be 00 00 00 je b73 <__bitmap_parse+0x213> ab5: b8 b5 ff ff ff mov $0xffffffb5,%eax aba: 41 81 fb ff ff ff 0f cmp $0xfffffff,%r11d ac1: 0f 86 19 ff ff ff jbe 9e0 <__bitmap_parse+0x80> ac7: e9 a7 00 00 00 jmpq b73 <__bitmap_parse+0x213> acc: 0f 1f 40 00 nopl 0x0(%rax) ad0: 44 89 f6 mov %r14d,%esi ad3: 41 89 dc mov %ebx,%r12d ad6: 8b 4d cc mov -0x34(%rbp),%ecx ad9: b8 ea ff ff ff mov $0xffffffea,%eax ade: 85 c9 test %ecx,%ecx ae0: 0f 84 8d 00 00 00 je b73 <__bitmap_parse+0x213> ae6: 44 89 d8 mov %r11d,%eax ae9: 09 f8 or %edi,%eax aeb: 74 70 je b5d <__bitmap_parse+0x1fd> aed: 89 fb mov %edi,%ebx aef: 45 85 c9 test %r9d,%r9d af2: 48 8b 45 b0 mov -0x50(%rbp),%rax af6: 4c 89 d1 mov %r10,%rcx af9: 74 2e je b29 <__bitmap_parse+0x1c9> afb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) b00: 48 85 c9 test %rcx,%rcx b03: ba 00 00 00 00 mov $0x0,%edx b08: 7e 03 jle b0d <__bitmap_parse+0x1ad> b0a: 8b 50 04 mov 0x4(%rax),%edx b0d: 49 8b 3c c8 mov (%r8,%rcx,8),%rdi b11: 48 c1 e7 20 shl $0x20,%rdi b15: 48 09 d7 or %rdx,%rdi b18: 89 ca mov %ecx,%edx b1a: 49 89 3c d0 mov %rdi,(%r8,%rdx,8) b1e: 48 ff c9 dec %rcx b21: 48 83 c0 f8 add $0xfffffffffffffff8,%rax b25: 85 c9 test %ecx,%ecx b27: 79 d7 jns b00 <__bitmap_parse+0x1a0> b29: 44 89 d8 mov %r11d,%eax b2c: 49 09 00 or %rax,(%r8) b2f: b8 20 00 00 00 mov $0x20,%eax b34: 89 df mov %ebx,%edi b36: 85 ff test %edi,%edi b38: 75 0f jne b49 <__bitmap_parse+0x1e9> b3a: 44 89 5d d4 mov %r11d,-0x2c(%rbp) b3e: b8 ff ff ff ff mov $0xffffffff,%eax b43: 0f bd 45 d4 bsr -0x2c(%rbp),%eax b47: ff c0 inc %eax b49: 8b 4d c4 mov -0x3c(%rbp),%ecx b4c: 01 c1 add %eax,%ecx b4e: 89 4d c4 mov %ecx,-0x3c(%rbp) b51: b8 b5 ff ff ff mov $0xffffffb5,%eax b56: 3b 4d bc cmp -0x44(%rbp),%ecx b59: 7f 18 jg b73 <__bitmap_parse+0x213> b5b: ff c7 inc %edi b5d: 31 c0 xor %eax,%eax b5f: 83 fe 2c cmp $0x2c,%esi b62: 75 0f jne b73 <__bitmap_parse+0x213> b64: 41 be 2c 00 00 00 mov $0x2c,%r14d b6a: 45 85 e4 test %r12d,%r12d b6d: 0f 85 5b fe ff ff jne 9ce <__bitmap_parse+0x6e> b73: 48 83 c4 48 add $0x48,%rsp b77: 5b pop %rbx b78: 41 5c pop %r12 b7a: 41 5d pop %r13 b7c: 41 5e pop %r14 b7e: 41 5f pop %r15 b80: 5d pop %rbp b81: c3 retq b82: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 nopw %cs:0x0(%rax,%rax,1)
0000000000000b90 <bitmap_parse_user>: b90: 55 push %rbp b91: 48 89 e5 mov %rsp,%rbp b94: 41 89 c8 mov %ecx,%r8d b97: 49 89 d1 mov %rdx,%r9 b9a: 89 f2 mov %esi,%edx b9c: 65 48 8b 0c 25 00 00 00 00 mov %gs:0x0,%rcx ba1: R_X86_64_32S cpu_tss+0x4 ba5: b8 f2 ff ff ff mov $0xfffffff2,%eax baa: 48 01 fa add %rdi,%rdx bad: 72 16 jb bc5 <bitmap_parse_user+0x35> baf: 48 3b 91 18 c0 ff ff cmp -0x3fe8(%rcx),%rdx bb6: 77 0d ja bc5 <bitmap_parse_user+0x35> bb8: ba 01 00 00 00 mov $0x1,%edx bbd: 4c 89 c9 mov %r9,%rcx bc0: e8 00 00 00 00 callq bc5 <bitmap_parse_user+0x35> bc1: R_X86_64_PC32 __bitmap_parse-0x4 bc5: 5d pop %rbp bc6: c3 retq bc7: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1)
0000000000000bd0 <bitmap_print_to_pagebuf>: bd0: 55 push %rbp bd1: 48 89 e5 mov %rsp,%rbp bd4: 49 89 d0 mov %rdx,%r8 bd7: 4c 8d 8e fe 1f 00 00 lea 0x1ffe(%rsi),%r9 bde: 49 81 e1 00 f0 ff ff and $0xfffffffffffff000,%r9 be5: 49 29 f1 sub %rsi,%r9 be8: 31 c0 xor %eax,%eax bea: 49 83 f9 02 cmp $0x2,%r9 bee: 7c 22 jl c12 <bitmap_print_to_pagebuf+0x42> bf0: 40 84 ff test %dil,%dil bf3: 74 09 je bfe <bitmap_print_to_pagebuf+0x2e> bf5: 48 c7 c2 00 00 00 00 mov $0x0,%rdx bf8: R_X86_64_32S .rodata.str1.1 bfc: eb 07 jmp c05 <bitmap_print_to_pagebuf+0x35> bfe: 48 c7 c2 00 00 00 00 mov $0x0,%rdx c01: R_X86_64_32S .rodata.str1.1+0x7 c05: 31 c0 xor %eax,%eax c07: 48 89 f7 mov %rsi,%rdi c0a: 4c 89 ce mov %r9,%rsi c0d: e8 00 00 00 00 callq c12 <bitmap_print_to_pagebuf+0x42> c0e: R_X86_64_PC32 scnprintf-0x4 c12: 5d pop %rbp c13: c3 retq c14: 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 nopw %cs:0x0(%rax,%rax,1)
0000000000000c20 <bitmap_parselist>: c20: 55 push %rbp c21: 48 89 e5 mov %rsp,%rbp c24: 41 57 push %r15 c26: 41 56 push %r14 c28: 53 push %rbx c29: 50 push %rax c2a: 41 89 d6 mov %edx,%r14d c2d: 49 89 f7 mov %rsi,%r15 c30: 48 89 fb mov %rdi,%rbx c33: be 0a 00 00 00 mov $0xa,%esi c38: e8 00 00 00 00 callq c3d <bitmap_parselist+0x1d> c39: R_X86_64_PC32 strchrnul-0x4 c3d: 29 d8 sub %ebx,%eax c3f: 31 d2 xor %edx,%edx c41: 48 89 df mov %rbx,%rdi c44: 89 c6 mov %eax,%esi c46: 4c 89 f9 mov %r15,%rcx c49: 45 89 f0 mov %r14d,%r8d c4c: e8 0f 00 00 00 callq c60 <__bitmap_parselist> c51: 48 83 c4 08 add $0x8,%rsp c55: 5b pop %rbx c56: 41 5e pop %r14 c58: 41 5f pop %r15 c5a: 5d pop %rbp c5b: c3 retq c5c: 0f 1f 40 00 nopl 0x0(%rax)
0000000000000c60 <__bitmap_parselist>: c60: 55 push %rbp c61: 48 89 e5 mov %rsp,%rbp c64: 41 57 push %r15 c66: 41 56 push %r14 c68: 41 55 push %r13 c6a: 41 54 push %r12 c6c: 53 push %rbx c6d: 48 83 ec 18 sub $0x18,%rsp c71: 44 89 45 d0 mov %r8d,-0x30(%rbp) c75: 49 89 cf mov %rcx,%r15 c78: 41 89 d4 mov %edx,%r12d c7b: 89 f3 mov %esi,%ebx c7d: 49 89 fd mov %rdi,%r13 c80: 44 89 c2 mov %r8d,%edx c83: 48 83 c2 3f add $0x3f,%rdx c87: 48 c1 ea 03 shr $0x3,%rdx c8b: 81 e2 f8 ff ff 3f and $0x3ffffff8,%edx c91: 45 31 f6 xor %r14d,%r14d c94: 31 f6 xor %esi,%esi c96: 4c 89 ff mov %r15,%rdi c99: e8 00 00 00 00 callq c9e <__bitmap_parselist+0x3e> c9a: R_X86_64_PC32 memset-0x4 c9e: c7 45 d4 01 00 00 00 movl $0x1,-0x2c(%rbp) ca5: 31 f6 xor %esi,%esi ca7: 31 d2 xor %edx,%edx ca9: c7 45 cc 00 00 00 00 movl $0x0,-0x34(%rbp) cb0: 45 31 d2 xor %r10d,%r10d cb3: 4c 89 e9 mov %r13,%rcx cb6: eb 28 jmp ce0 <__bitmap_parselist+0x80> cb8: 43 8d 04 9b lea (%r11,%r11,4),%eax cbc: 44 8d 74 46 d0 lea -0x30(%rsi,%rax,2),%r14d cc1: 45 85 d2 test %r10d,%r10d cc4: 41 0f 44 d6 cmove %r14d,%edx cc8: ff 45 cc incl -0x34(%rbp) ccb: c7 45 d4 00 00 00 00 movl $0x0,-0x2c(%rbp) cd2: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 nopw %cs:0x0(%rax,%rax,1) ce0: 89 d8 mov %ebx,%eax ce2: 45 89 f3 mov %r14d,%r11d ce5: 89 c3 mov %eax,%ebx ce7: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) cf0: 89 f7 mov %esi,%edi cf2: 31 c0 xor %eax,%eax cf4: 85 db test %ebx,%ebx cf6: 0f 84 94 00 00 00 je d90 <__bitmap_parselist+0x130> cfc: 45 85 e4 test %r12d,%r12d cff: 74 1f je d20 <__bitmap_parselist+0xc0> d01: 31 f6 xor %esi,%esi d03: 90 nop d04: 90 nop d05: 90 nop d06: 41 8a 45 00 mov 0x0(%r13),%al d0a: 90 nop d0b: 90 nop d0c: 90 nop d0d: 41 be f2 ff ff ff mov $0xfffffff2,%r14d d13: 85 f6 test %esi,%esi d15: 0f 85 dc 00 00 00 jne df7 <__bitmap_parselist+0x197> d1b: 49 ff c5 inc %r13 d1e: eb 05 jmp d25 <__bitmap_parselist+0xc5> d20: 8a 01 mov (%rcx),%al d22: 48 ff c1 inc %rcx d25: 0f be f0 movsbl %al,%esi d28: ff cb dec %ebx d2a: 44 0f b6 ce movzbl %sil,%r9d d2e: 45 8a 81 00 00 00 00 mov 0x0(%r9),%r8b d31: R_X86_64_32S _ctype d35: 41 f6 c0 20 test $0x20,%r8b d39: 75 b5 jne cf0 <__bitmap_parselist+0x90> d3b: 83 7d cc 00 cmpl $0x0,-0x34(%rbp) d3f: 74 1b je d5c <__bitmap_parselist+0xfc> d41: 84 c0 test %al,%al d43: 74 17 je d5c <__bitmap_parselist+0xfc> d45: 40 0f b6 ff movzbl %dil,%edi d49: 41 be ea ff ff ff mov $0xffffffea,%r14d d4f: f6 87 00 00 00 00 20 testb $0x20,0x0(%rdi) d51: R_X86_64_32S _ctype d56: 0f 85 9b 00 00 00 jne df7 <__bitmap_parselist+0x197> d5c: 41 83 f9 2d cmp $0x2d,%r9d d60: 75 1b jne d7d <__bitmap_parselist+0x11d> d62: 41 be ea ff ff ff mov $0xffffffea,%r14d d68: 45 31 db xor %r11d,%r11d d6b: 44 0b 55 d4 or -0x2c(%rbp),%r10d d6f: 41 ba 01 00 00 00 mov $0x1,%r10d d75: 0f 84 75 ff ff ff je cf0 <__bitmap_parselist+0x90> d7b: eb 7a jmp df7 <__bitmap_parselist+0x197> d7d: 84 c0 test %al,%al d7f: 74 08 je d89 <__bitmap_parselist+0x129> d81: 0f b6 c0 movzbl %al,%eax d84: 83 f8 2c cmp $0x2c,%eax d87: 75 5e jne de7 <__bitmap_parselist+0x187> d89: 89 f7 mov %esi,%edi d8b: 89 d8 mov %ebx,%eax d8d: 0f 1f 00 nopl (%rax) d90: 41 be ea ff ff ff mov $0xffffffea,%r14d d96: 44 39 da cmp %r11d,%edx d99: 77 5c ja df7 <__bitmap_parselist+0x197> d9b: 41 be de ff ff ff mov $0xffffffde,%r14d da1: 44 3b 5d d0 cmp -0x30(%rbp),%r11d da5: 73 50 jae df7 <__bitmap_parselist+0x197> da7: 83 7d d4 00 cmpl $0x0,-0x2c(%rbp) dab: 75 11 jne dbe <__bitmap_parselist+0x15e> dad: 0f 1f 00 nopl (%rax) db0: 89 d6 mov %edx,%esi db2: f0 49 0f ab 37 lock bts %rsi,(%r15) db7: ff c2 inc %edx db9: 44 39 da cmp %r11d,%edx dbc: 76 f2 jbe db0 <__bitmap_parselist+0x150> dbe: 45 31 f6 xor %r14d,%r14d dc1: 83 ff 2c cmp $0x2c,%edi dc4: 75 31 jne df7 <__bitmap_parselist+0x197> dc6: c7 45 d4 01 00 00 00 movl $0x1,-0x2c(%rbp) dcd: be 2c 00 00 00 mov $0x2c,%esi dd2: 85 c0 test %eax,%eax dd4: ba 00 00 00 00 mov $0x0,%edx dd9: 41 ba 00 00 00 00 mov $0x0,%r10d ddf: 0f 85 fd fe ff ff jne ce2 <__bitmap_parselist+0x82> de5: eb 10 jmp df7 <__bitmap_parselist+0x197> de7: 41 be ea ff ff ff mov $0xffffffea,%r14d ded: 41 f6 c0 04 test $0x4,%r8b df1: 0f 85 c1 fe ff ff jne cb8 <__bitmap_parselist+0x58> df7: 44 89 f0 mov %r14d,%eax dfa: 48 83 c4 18 add $0x18,%rsp dfe: 5b pop %rbx dff: 41 5c pop %r12 e01: 41 5d pop %r13 e03: 41 5e pop %r14 e05: 41 5f pop %r15 e07: 5d pop %rbp e08: c3 retq e09: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
0000000000000e10 <bitmap_parselist_user>: e10: 55 push %rbp e11: 48 89 e5 mov %rsp,%rbp e14: 41 89 c8 mov %ecx,%r8d e17: 49 89 d1 mov %rdx,%r9 e1a: 89 f2 mov %esi,%edx e1c: 65 48 8b 0c 25 00 00 00 00 mov %gs:0x0,%rcx e21: R_X86_64_32S cpu_tss+0x4 e25: b8 f2 ff ff ff mov $0xfffffff2,%eax e2a: 48 01 fa add %rdi,%rdx e2d: 72 16 jb e45 <bitmap_parselist_user+0x35> e2f: 48 3b 91 18 c0 ff ff cmp -0x3fe8(%rcx),%rdx e36: 77 0d ja e45 <bitmap_parselist_user+0x35> e38: ba 01 00 00 00 mov $0x1,%edx e3d: 4c 89 c9 mov %r9,%rcx e40: e8 1b fe ff ff callq c60 <__bitmap_parselist> e45: 5d pop %rbp e46: c3 retq e47: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1)
0000000000000e50 <bitmap_ord_to_pos>: e50: 55 push %rbp e51: 48 89 e5 mov %rsp,%rbp e54: 41 57 push %r15 e56: 41 56 push %r14 e58: 41 55 push %r13 e5a: 41 54 push %r12 e5c: 53 push %rbx e5d: 50 push %rax e5e: 41 89 d7 mov %edx,%r15d e61: 41 89 f4 mov %esi,%r12d e64: 49 89 fe mov %rdi,%r14 e67: 45 89 fd mov %r15d,%r13d e6a: 4c 89 ee mov %r13,%rsi e6d: e8 00 00 00 00 callq e72 <bitmap_ord_to_pos+0x22> e6e: R_X86_64_PC32 find_first_bit-0x4 e72: 45 85 e4 test %r12d,%r12d e75: 74 34 je eab <bitmap_ord_to_pos+0x5b> e77: 44 39 f8 cmp %r15d,%eax e7a: 73 2f jae eab <bitmap_ord_to_pos+0x5b> e7c: bb 01 00 00 00 mov $0x1,%ebx e81: 44 29 e3 sub %r12d,%ebx e84: 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 nopw %cs:0x0(%rax,%rax,1) e90: ff c0 inc %eax e92: 4c 89 f7 mov %r14,%rdi e95: 4c 89 ee mov %r13,%rsi e98: 48 89 c2 mov %rax,%rdx e9b: e8 00 00 00 00 callq ea0 <bitmap_ord_to_pos+0x50> e9c: R_X86_64_PC32 find_next_bit-0x4 ea0: 85 db test %ebx,%ebx ea2: 74 07 je eab <bitmap_ord_to_pos+0x5b> ea4: ff c3 inc %ebx ea6: 44 39 f8 cmp %r15d,%eax ea9: 72 e5 jb e90 <bitmap_ord_to_pos+0x40> eab: 48 83 c4 08 add $0x8,%rsp eaf: 5b pop %rbx eb0: 41 5c pop %r12 eb2: 41 5d pop %r13 eb4: 41 5e pop %r14 eb6: 41 5f pop %r15 eb8: 5d pop %rbp eb9: c3 retq eba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1)
0000000000000ec0 <bitmap_remap>: ec0: 55 push %rbp ec1: 48 89 e5 mov %rsp,%rbp ec4: 41 57 push %r15 ec6: 41 56 push %r14 ec8: 41 55 push %r13 eca: 41 54 push %r12 ecc: 53 push %rbx ecd: 48 83 ec 28 sub $0x28,%rsp ed1: 45 89 c4 mov %r8d,%r12d ed4: 48 89 4d c8 mov %rcx,-0x38(%rbp) ed8: 48 89 d3 mov %rdx,%rbx edb: 48 89 5d b0 mov %rbx,-0x50(%rbp) edf: 48 89 75 c0 mov %rsi,-0x40(%rbp) ee3: 48 89 7d b8 mov %rdi,-0x48(%rbp) ee7: 48 39 f7 cmp %rsi,%rdi eea: 0f 84 9e 01 00 00 je 108e <bitmap_remap+0x1ce> ef0: 41 be ff ff ff ff mov $0xffffffff,%r14d ef6: 44 89 e0 mov %r12d,%eax ef9: 48 89 45 d0 mov %rax,-0x30(%rbp) efd: 48 8d 50 3f lea 0x3f(%rax),%rdx f01: 48 c1 ea 03 shr $0x3,%rdx f05: 81 e2 f8 ff ff 3f and $0x3ffffff8,%edx f0b: 45 31 ff xor %r15d,%r15d f0e: 31 f6 xor %esi,%esi f10: 48 8b 7d b8 mov -0x48(%rbp),%rdi f14: e8 00 00 00 00 callq f19 <bitmap_remap+0x59> f15: R_X86_64_PC32 memset-0x4 f19: 44 89 e1 mov %r12d,%ecx f1c: c1 e9 06 shr $0x6,%ecx f1f: b8 00 00 00 00 mov $0x0,%eax f24: 74 22 je f48 <bitmap_remap+0x88> f26: 45 31 ff xor %r15d,%r15d f29: 48 8b 55 c8 mov -0x38(%rbp),%rdx f2d: 89 ce mov %ecx,%esi f2f: 90 nop f30: 48 8b 3a mov (%rdx),%rdi f33: e8 00 00 00 00 callq f38 <bitmap_remap+0x78> f34: R_X86_64_PC32 __sw_hweight64-0x4 f38: 4d 21 f7 and %r14,%r15 f3b: 49 01 c7 add %rax,%r15 f3e: 48 83 c2 08 add $0x8,%rdx f42: ff ce dec %esi f44: 75 ea jne f30 <bitmap_remap+0x70> f46: 89 c8 mov %ecx,%eax f48: 41 f6 c4 3f test $0x3f,%r12b f4c: 74 22 je f70 <bitmap_remap+0xb0> f4e: 44 89 e1 mov %r12d,%ecx f51: f7 d9 neg %ecx f53: 48 c7 c7 ff ff ff ff mov $0xffffffffffffffff,%rdi f5a: 48 d3 ef shr %cl,%rdi f5d: 48 8b 4d c8 mov -0x38(%rbp),%rcx f61: 48 23 3c c1 and (%rcx,%rax,8),%rdi f65: e8 00 00 00 00 callq f6a <bitmap_remap+0xaa> f66: R_X86_64_PC32 __sw_hweight64-0x4 f6a: 44 01 f8 add %r15d,%eax f6d: 41 89 c7 mov %eax,%r15d f70: 48 8b 7d c0 mov -0x40(%rbp),%rdi f74: 48 8b 75 d0 mov -0x30(%rbp),%rsi f78: e8 00 00 00 00 callq f7d <bitmap_remap+0xbd> f79: R_X86_64_PC32 find_first_bit-0x4 f7d: eb 17 jmp f96 <bitmap_remap+0xd6> f7f: 90 nop f80: 41 ff c5 inc %r13d f83: 4d 21 f5 and %r14,%r13 f86: 48 8b 7d c0 mov -0x40(%rbp),%rdi f8a: 48 8b 75 d0 mov -0x30(%rbp),%rsi f8e: 4c 89 ea mov %r13,%rdx f91: e8 00 00 00 00 callq f96 <bitmap_remap+0xd6> f92: R_X86_64_PC32 find_next_bit-0x4 f96: 49 89 c5 mov %rax,%r13 f99: 45 39 e5 cmp %r12d,%r13d f9c: 0f 83 ec 00 00 00 jae 108e <bitmap_remap+0x1ce> fa2: 4d 89 e8 mov %r13,%r8 fa5: 4d 21 f0 and %r14,%r8 fa8: 4c 0f a3 03 bt %r8,(%rbx) fac: 19 c0 sbb %eax,%eax fae: 85 c0 test %eax,%eax fb0: 0f 84 ca 00 00 00 je 1080 <bitmap_remap+0x1c0> fb6: 31 f6 xor %esi,%esi fb8: 44 89 ea mov %r13d,%edx fbb: c1 ea 06 shr $0x6,%edx fbe: b8 00 00 00 00 mov $0x0,%eax fc3: 74 26 je feb <bitmap_remap+0x12b> fc5: 48 89 d8 mov %rbx,%rax fc8: 49 89 c2 mov %rax,%r10 fcb: 89 d1 mov %edx,%ecx fcd: 31 f6 xor %esi,%esi fcf: 90 nop fd0: 48 8b 3b mov (%rbx),%rdi fd3: e8 00 00 00 00 callq fd8 <bitmap_remap+0x118> fd4: R_X86_64_PC32 __sw_hweight64-0x4 fd8: 4c 21 f6 and %r14,%rsi fdb: 48 01 c6 add %rax,%rsi fde: 48 83 c3 08 add $0x8,%rbx fe2: ff c9 dec %ecx fe4: 75 ea jne fd0 <bitmap_remap+0x110> fe6: 89 d0 mov %edx,%eax fe8: 4c 89 d3 mov %r10,%rbx feb: 41 f6 c5 3f test $0x3f,%r13b fef: 74 1c je 100d <bitmap_remap+0x14d> ff1: 44 89 e9 mov %r13d,%ecx ff4: f7 d9 neg %ecx ff6: 48 c7 c7 ff ff ff ff mov $0xffffffffffffffff,%rdi ffd: 48 d3 ef shr %cl,%rdi 1000: 48 23 3c c3 and (%rbx,%rax,8),%rdi 1004: e8 00 00 00 00 callq 1009 <bitmap_remap+0x149> 1005: R_X86_64_PC32 __sw_hweight64-0x4 1009: 01 f0 add %esi,%eax 100b: 89 c6 mov %eax,%esi 100d: 45 85 ff test %r15d,%r15d 1010: 74 6e je 1080 <bitmap_remap+0x1c0> 1012: 85 f6 test %esi,%esi 1014: 78 6a js 1080 <bitmap_remap+0x1c0> 1016: 31 d2 xor %edx,%edx 1018: 89 f0 mov %esi,%eax 101a: 41 f7 f7 div %r15d 101d: 89 d3 mov %edx,%ebx 101f: 48 8b 7d c8 mov -0x38(%rbp),%rdi 1023: 48 8b 75 d0 mov -0x30(%rbp),%rsi 1027: e8 00 00 00 00 callq 102c <bitmap_remap+0x16c> 1028: R_X86_64_PC32 find_first_bit-0x4 102c: 89 d9 mov %ebx,%ecx 102e: 85 c9 test %ecx,%ecx 1030: 74 2e je 1060 <bitmap_remap+0x1a0> 1032: 44 39 e0 cmp %r12d,%eax 1035: 73 29 jae 1060 <bitmap_remap+0x1a0> 1037: bb 01 00 00 00 mov $0x1,%ebx 103c: 29 cb sub %ecx,%ebx 103e: 66 90 xchg %ax,%ax 1040: ff c0 inc %eax 1042: 4c 21 f0 and %r14,%rax 1045: 48 8b 7d c8 mov -0x38(%rbp),%rdi 1049: 48 8b 75 d0 mov -0x30(%rbp),%rsi 104d: 48 89 c2 mov %rax,%rdx 1050: e8 00 00 00 00 callq 1055 <bitmap_remap+0x195> 1051: R_X86_64_PC32 find_next_bit-0x4 1055: 85 db test %ebx,%ebx 1057: 74 07 je 1060 <bitmap_remap+0x1a0> 1059: ff c3 inc %ebx 105b: 44 39 e0 cmp %r12d,%eax 105e: 72 e0 jb 1040 <bitmap_remap+0x180> 1060: 4c 21 f0 and %r14,%rax 1063: 48 8b 4d b8 mov -0x48(%rbp),%rcx 1067: f0 48 0f ab 01 lock bts %rax,(%rcx) 106c: 48 8b 5d b0 mov -0x50(%rbp),%rbx 1070: e9 0b ff ff ff jmpq f80 <bitmap_remap+0xc0> 1075: 66 66 2e 0f 1f 84 00 00 00 00 00 data32 nopw %cs:0x0(%rax,%rax,1) 1080: 48 8b 45 b8 mov -0x48(%rbp),%rax 1084: f0 4c 0f ab 00 lock bts %r8,(%rax) 1089: e9 f2 fe ff ff jmpq f80 <bitmap_remap+0xc0> 108e: 48 83 c4 28 add $0x28,%rsp 1092: 5b pop %rbx 1093: 41 5c pop %r12 1095: 41 5d pop %r13 1097: 41 5e pop %r14 1099: 41 5f pop %r15 109b: 5d pop %rbp 109c: c3 retq 109d: 0f 1f 00 nopl (%rax)
00000000000010a0 <bitmap_bitremap>: 10a0: 55 push %rbp 10a1: 48 89 e5 mov %rsp,%rbp 10a4: 41 57 push %r15 10a6: 41 56 push %r14 10a8: 41 55 push %r13 10aa: 41 54 push %r12 10ac: 53 push %rbx 10ad: 50 push %rax 10ae: 41 89 cf mov %ecx,%r15d 10b1: 49 89 d6 mov %rdx,%r14 10b4: 41 89 f8 mov %edi,%r8d 10b7: 41 bd ff ff ff ff mov $0xffffffff,%r13d 10bd: 31 db xor %ebx,%ebx 10bf: 45 89 f9 mov %r15d,%r9d 10c2: 41 c1 e9 06 shr $0x6,%r9d 10c6: b8 00 00 00 00 mov $0x0,%eax 10cb: 74 2c je 10f9 <bitmap_bitremap+0x59> 10cd: 31 db xor %ebx,%ebx 10cf: 4c 89 f2 mov %r14,%rdx 10d2: 44 89 c9 mov %r9d,%ecx 10d5: 66 66 2e 0f 1f 84 00 00 00 00 00 data32 nopw %cs:0x0(%rax,%rax,1) 10e0: 48 8b 3a mov (%rdx),%rdi 10e3: e8 00 00 00 00 callq 10e8 <bitmap_bitremap+0x48> 10e4: R_X86_64_PC32 __sw_hweight64-0x4 10e8: 4c 21 eb and %r13,%rbx 10eb: 48 01 c3 add %rax,%rbx 10ee: 48 83 c2 08 add $0x8,%rdx 10f2: ff c9 dec %ecx 10f4: 75 ea jne 10e0 <bitmap_bitremap+0x40> 10f6: 44 89 c8 mov %r9d,%eax 10f9: 41 f6 c7 3f test $0x3f,%r15b 10fd: 74 1c je 111b <bitmap_bitremap+0x7b> 10ff: 44 89 f9 mov %r15d,%ecx 1102: f7 d9 neg %ecx 1104: 48 c7 c7 ff ff ff ff mov $0xffffffffffffffff,%rdi 110b: 48 d3 ef shr %cl,%rdi 110e: 49 23 3c c6 and (%r14,%rax,8),%rdi 1112: e8 00 00 00 00 callq 1117 <bitmap_bitremap+0x77> 1113: R_X86_64_PC32 __sw_hweight64-0x4 1117: 01 d8 add %ebx,%eax 1119: 89 c3 mov %eax,%ebx 111b: 45 39 f8 cmp %r15d,%r8d 111e: 0f 83 d0 00 00 00 jae 11f4 <bitmap_bitremap+0x154> 1124: 44 89 c0 mov %r8d,%eax 1127: 48 0f a3 06 bt %rax,(%rsi) 112b: 19 c0 sbb %eax,%eax 112d: 85 c0 test %eax,%eax 112f: 0f 84 bf 00 00 00 je 11f4 <bitmap_bitremap+0x154> 1135: 45 31 d2 xor %r10d,%r10d 1138: 45 89 c1 mov %r8d,%r9d 113b: 41 c1 e9 06 shr $0x6,%r9d 113f: b8 00 00 00 00 mov $0x0,%eax 1144: 74 23 je 1169 <bitmap_bitremap+0xc9> 1146: 45 31 d2 xor %r10d,%r10d 1149: 48 89 f1 mov %rsi,%rcx 114c: 44 89 ca mov %r9d,%edx 114f: 90 nop 1150: 48 8b 39 mov (%rcx),%rdi 1153: e8 00 00 00 00 callq 1158 <bitmap_bitremap+0xb8> 1154: R_X86_64_PC32 __sw_hweight64-0x4 1158: 4d 21 ea and %r13,%r10 115b: 49 01 c2 add %rax,%r10 115e: 48 83 c1 08 add $0x8,%rcx 1162: ff ca dec %edx 1164: 75 ea jne 1150 <bitmap_bitremap+0xb0> 1166: 44 89 c8 mov %r9d,%eax 1169: 41 f6 c0 3f test $0x3f,%r8b 116d: 74 1e je 118d <bitmap_bitremap+0xed> 116f: 44 89 c1 mov %r8d,%ecx 1172: f7 d9 neg %ecx 1174: 48 c7 c7 ff ff ff ff mov $0xffffffffffffffff,%rdi 117b: 48 d3 ef shr %cl,%rdi 117e: 48 23 3c c6 and (%rsi,%rax,8),%rdi 1182: e8 00 00 00 00 callq 1187 <bitmap_bitremap+0xe7> 1183: R_X86_64_PC32 __sw_hweight64-0x4 1187: 44 01 d0 add %r10d,%eax 118a: 41 89 c2 mov %eax,%r10d 118d: 85 db test %ebx,%ebx 118f: 74 63 je 11f4 <bitmap_bitremap+0x154> 1191: 45 85 d2 test %r10d,%r10d 1194: 78 5e js 11f4 <bitmap_bitremap+0x154> 1196: 44 89 d0 mov %r10d,%eax 1199: 99 cltd 119a: f7 fb idiv %ebx 119c: 41 89 d4 mov %edx,%r12d 119f: 44 89 fb mov %r15d,%ebx 11a2: 4c 89 f7 mov %r14,%rdi 11a5: 48 89 de mov %rbx,%rsi 11a8: e8 00 00 00 00 callq 11ad <bitmap_bitremap+0x10d> 11a9: R_X86_64_PC32 find_first_bit-0x4 11ad: 44 89 e1 mov %r12d,%ecx 11b0: 49 89 c0 mov %rax,%r8 11b3: 85 c9 test %ecx,%ecx 11b5: 74 3d je 11f4 <bitmap_bitremap+0x154> 11b7: 45 39 f8 cmp %r15d,%r8d 11ba: 73 38 jae 11f4 <bitmap_bitremap+0x154> 11bc: 41 bc 01 00 00 00 mov $0x1,%r12d 11c2: 41 29 cc sub %ecx,%r12d 11c5: 66 66 2e 0f 1f 84 00 00 00 00 00 data32 nopw %cs:0x0(%rax,%rax,1) 11d0: 41 ff c0 inc %r8d 11d3: 4d 21 e8 and %r13,%r8 11d6: 4c 89 f7 mov %r14,%rdi 11d9: 48 89 de mov %rbx,%rsi 11dc: 4c 89 c2 mov %r8,%rdx 11df: e8 00 00 00 00 callq 11e4 <bitmap_bitremap+0x144> 11e0: R_X86_64_PC32 find_next_bit-0x4 11e4: 49 89 c0 mov %rax,%r8 11e7: 45 85 e4 test %r12d,%r12d 11ea: 74 08 je 11f4 <bitmap_bitremap+0x154> 11ec: 41 ff c4 inc %r12d 11ef: 45 39 f8 cmp %r15d,%r8d 11f2: 72 dc jb 11d0 <bitmap_bitremap+0x130> 11f4: 44 89 c0 mov %r8d,%eax 11f7: 48 83 c4 08 add $0x8,%rsp 11fb: 5b pop %rbx 11fc: 41 5c pop %r12 11fe: 41 5d pop %r13 1200: 41 5e pop %r14 1202: 41 5f pop %r15 1204: 5d pop %rbp 1205: c3 retq 1206: 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:0x0(%rax,%rax,1)
0000000000001210 <bitmap_onto>: 1210: 55 push %rbp 1211: 48 89 e5 mov %rsp,%rbp 1214: 41 57 push %r15 1216: 41 56 push %r14 1218: 41 55 push %r13 121a: 41 54 push %r12 121c: 53 push %rbx 121d: 48 83 ec 18 sub $0x18,%rsp 1221: 41 89 cd mov %ecx,%r13d 1224: 48 89 55 d0 mov %rdx,-0x30(%rbp) 1228: 49 89 f7 mov %rsi,%r15 122b: 48 89 7d c8 mov %rdi,-0x38(%rbp) 122f: 4c 39 ff cmp %r15,%rdi 1232: 74 74 je 12a8 <bitmap_onto+0x98> 1234: 44 89 eb mov %r13d,%ebx 1237: 48 8d 53 3f lea 0x3f(%rbx),%rdx 123b: 48 c1 ea 03 shr $0x3,%rdx 123f: 81 e2 f8 ff ff 3f and $0x3ffffff8,%edx 1245: 45 31 e4 xor %r12d,%r12d 1248: 31 f6 xor %esi,%esi 124a: 48 8b 7d c8 mov -0x38(%rbp),%rdi 124e: e8 00 00 00 00 callq 1253 <bitmap_onto+0x43> 124f: R_X86_64_PC32 memset-0x4 1253: 48 8b 7d d0 mov -0x30(%rbp),%rdi 1257: 48 89 de mov %rbx,%rsi 125a: e8 00 00 00 00 callq 125f <bitmap_onto+0x4f> 125b: R_X86_64_PC32 find_first_bit-0x4 125f: 44 39 e8 cmp %r13d,%eax 1262: 73 44 jae 12a8 <bitmap_onto+0x98> 1264: 41 be ff ff ff ff mov $0xffffffff,%r14d 126a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 1270: 44 89 e1 mov %r12d,%ecx 1273: 49 0f a3 0f bt %rcx,(%r15) 1277: 19 c9 sbb %ecx,%ecx 1279: 85 c9 test %ecx,%ecx 127b: 74 0f je 128c <bitmap_onto+0x7c> 127d: 48 89 c1 mov %rax,%rcx 1280: 4c 21 f1 and %r14,%rcx 1283: 48 8b 55 c8 mov -0x38(%rbp),%rdx 1287: f0 48 0f ab 0a lock bts %rcx,(%rdx) 128c: 41 ff c4 inc %r12d 128f: ff c0 inc %eax 1291: 4c 21 f0 and %r14,%rax 1294: 48 8b 7d d0 mov -0x30(%rbp),%rdi 1298: 48 89 de mov %rbx,%rsi 129b: 48 89 c2 mov %rax,%rdx 129e: e8 00 00 00 00 callq 12a3 <bitmap_onto+0x93> 129f: R_X86_64_PC32 find_next_bit-0x4 12a3: 44 39 e8 cmp %r13d,%eax 12a6: 72 c8 jb 1270 <bitmap_onto+0x60> 12a8: 48 83 c4 18 add $0x18,%rsp 12ac: 5b pop %rbx 12ad: 41 5c pop %r12 12af: 41 5d pop %r13 12b1: 41 5e pop %r14 12b3: 41 5f pop %r15 12b5: 5d pop %rbp 12b6: c3 retq 12b7: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1)
00000000000012c0 <bitmap_fold>: 12c0: 55 push %rbp 12c1: 48 89 e5 mov %rsp,%rbp 12c4: 41 57 push %r15 12c6: 41 56 push %r14 12c8: 41 55 push %r13 12ca: 41 54 push %r12 12cc: 53 push %rbx 12cd: 50 push %rax 12ce: 41 89 cf mov %ecx,%r15d 12d1: 41 89 d6 mov %edx,%r14d 12d4: 49 89 f4 mov %rsi,%r12 12d7: 49 89 fd mov %rdi,%r13 12da: 4d 39 e5 cmp %r12,%r13 12dd: 74 56 je 1335 <bitmap_fold+0x75> 12df: 44 89 fb mov %r15d,%ebx 12e2: 48 8d 53 3f lea 0x3f(%rbx),%rdx 12e6: 48 c1 ea 03 shr $0x3,%rdx 12ea: 81 e2 f8 ff ff 3f and $0x3ffffff8,%edx 12f0: 31 f6 xor %esi,%esi 12f2: 4c 89 ef mov %r13,%rdi 12f5: e8 00 00 00 00 callq 12fa <bitmap_fold+0x3a> 12f6: R_X86_64_PC32 memset-0x4 12fa: 4c 89 e7 mov %r12,%rdi 12fd: 48 89 de mov %rbx,%rsi 1300: e8 00 00 00 00 callq 1305 <bitmap_fold+0x45> 1301: R_X86_64_PC32 find_first_bit-0x4 1305: eb 26 jmp 132d <bitmap_fold+0x6d> 1307: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 1310: 31 d2 xor %edx,%edx 1312: 89 c8 mov %ecx,%eax 1314: 41 f7 f6 div %r14d 1317: f0 49 0f ab 55 00 lock bts %rdx,0x0(%r13) 131d: ff c1 inc %ecx 131f: 4c 89 e7 mov %r12,%rdi 1322: 48 89 de mov %rbx,%rsi 1325: 48 89 ca mov %rcx,%rdx 1328: e8 00 00 00 00 callq 132d <bitmap_fold+0x6d> 1329: R_X86_64_PC32 find_next_bit-0x4 132d: 48 89 c1 mov %rax,%rcx 1330: 44 39 f9 cmp %r15d,%ecx 1333: 72 db jb 1310 <bitmap_fold+0x50> 1335: 48 83 c4 08 add $0x8,%rsp 1339: 5b pop %rbx 133a: 41 5c pop %r12 133c: 41 5d pop %r13 133e: 41 5e pop %r14 1340: 41 5f pop %r15 1342: 5d pop %rbp 1343: c3 retq 1344: 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 nopw %cs:0x0(%rax,%rax,1)
0000000000001350 <bitmap_find_free_region>: 1350: 55 push %rbp 1351: 41 57 push %r15 1353: 41 56 push %r14 1355: 41 54 push %r12 1357: 53 push %rbx 1358: 41 ba 01 00 00 00 mov $0x1,%r10d 135e: 88 d1 mov %dl,%cl 1360: 41 d3 e2 shl %cl,%r10d 1363: b8 f4 ff ff ff mov $0xfffffff4,%eax 1368: 41 39 f2 cmp %esi,%r10d 136b: 0f 87 cb 00 00 00 ja 143c <bitmap_find_free_region+0xec> 1371: 4d 63 f2 movslq %r10d,%r14 1374: 49 83 c6 3f add $0x3f,%r14 1378: 4d 89 f1 mov %r14,%r9 137b: 49 c1 e9 06 shr $0x6,%r9 137f: 41 83 fa 41 cmp $0x41,%r10d 1383: b9 40 00 00 00 mov $0x40,%ecx 1388: 41 0f 4c ca cmovl %r10d,%ecx 138c: ff c9 dec %ecx 138e: 41 bf 02 00 00 00 mov $0x2,%r15d 1394: 49 d3 e7 shl %cl,%r15 1397: 49 ff cf dec %r15 139a: 4c 89 f3 mov %r14,%rbx 139d: 48 c1 fb 06 sar $0x6,%rbx 13a1: 45 31 c0 xor %r8d,%r8d 13a4: 45 89 d4 mov %r10d,%r12d 13a7: 44 89 c2 mov %r8d,%edx 13aa: c1 ea 06 shr $0x6,%edx 13ad: 89 d5 mov %edx,%ebp 13af: c1 e5 06 shl $0x6,%ebp 13b2: 44 89 c1 mov %r8d,%ecx 13b5: 29 e9 sub %ebp,%ecx 13b7: 4d 89 fb mov %r15,%r11 13ba: 49 d3 e3 shl %cl,%r11 13bd: 45 85 c9 test %r9d,%r9d 13c0: b9 00 00 00 00 mov $0x0,%ecx 13c5: 7e 72 jle 1439 <bitmap_find_free_region+0xe9> 13c7: 66 0f 1f 84 00 00 00 00 00 nopw 0x0(%rax,%rax,1) 13d0: 8d 2c 0a lea (%rdx,%rcx,1),%ebp 13d3: 48 63 ed movslq %ebp,%rbp 13d6: 4c 85 1c ef test %r11,(%rdi,%rbp,8) 13da: 75 14 jne 13f0 <bitmap_find_free_region+0xa0> 13dc: 48 ff c1 inc %rcx 13df: 48 39 d9 cmp %rbx,%rcx 13e2: 7c ec jl 13d0 <bitmap_find_free_region+0x80> 13e4: eb 17 jmp 13fd <bitmap_find_free_region+0xad> 13e6: 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:0x0(%rax,%rax,1) 13f0: 45 01 d4 add %r10d,%r12d 13f3: 45 01 d0 add %r10d,%r8d 13f6: 41 39 f4 cmp %esi,%r12d 13f9: 76 ac jbe 13a7 <bitmap_find_free_region+0x57> 13fb: eb 3f jmp 143c <bitmap_find_free_region+0xec> 13fd: 31 c9 xor %ecx,%ecx 13ff: 49 0f ba e6 06 bt $0x6,%r14 1404: 73 0b jae 1411 <bitmap_find_free_region+0xc1> 1406: 89 d0 mov %edx,%eax 1408: 4c 09 1c c7 or %r11,(%rdi,%rax,8) 140c: b9 01 00 00 00 mov $0x1,%ecx 1411: 41 83 f9 01 cmp $0x1,%r9d 1415: 74 22 je 1439 <bitmap_find_free_region+0xe9> 1417: 41 29 c9 sub %ecx,%r9d 141a: 8d 44 0a 01 lea 0x1(%rdx,%rcx,1),%eax 141e: 01 ca add %ecx,%edx 1420: 48 63 d2 movslq %edx,%rdx 1423: 4c 09 1c d7 or %r11,(%rdi,%rdx,8) 1427: 48 98 cltq 1429: 4c 09 1c c7 or %r11,(%rdi,%rax,8) 142d: 83 c0 02 add $0x2,%eax 1430: 83 c2 02 add $0x2,%edx 1433: 41 83 c1 fe add $0xfffffffe,%r9d 1437: 75 e7 jne 1420 <bitmap_find_free_region+0xd0> 1439: 44 89 c0 mov %r8d,%eax 143c: 5b pop %rbx 143d: 41 5c pop %r12 143f: 41 5e pop %r14 1441: 41 5f pop %r15 1443: 5d pop %rbp 1444: c3 retq 1445: 66 66 2e 0f 1f 84 00 00 00 00 00 data32 nopw %cs:0x0(%rax,%rax,1)
0000000000001450 <bitmap_release_region>: 1450: 41 b8 01 00 00 00 mov $0x1,%r8d 1456: 88 d1 mov %dl,%cl 1458: 41 d3 e0 shl %cl,%r8d 145b: 4d 63 c8 movslq %r8d,%r9 145e: 49 83 c1 3f add $0x3f,%r9 1462: 4c 89 c8 mov %r9,%rax 1465: 48 c1 e8 06 shr $0x6,%rax 1469: 85 c0 test %eax,%eax 146b: 7e 6c jle 14d9 <bitmap_release_region+0x89> 146d: 89 f2 mov %esi,%edx 146f: c1 ea 06 shr $0x6,%edx 1472: 41 83 f8 41 cmp $0x41,%r8d 1476: b9 40 00 00 00 mov $0x40,%ecx 147b: 41 0f 4c c8 cmovl %r8d,%ecx 147f: ff c9 dec %ecx 1481: 41 b8 02 00 00 00 mov $0x2,%r8d 1487: 49 d3 e0 shl %cl,%r8 148a: 49 ff c8 dec %r8 148d: 89 d1 mov %edx,%ecx 148f: c1 e1 06 shl $0x6,%ecx 1492: 29 ce sub %ecx,%esi 1494: 40 88 f1 mov %sil,%cl 1497: 49 d3 e0 shl %cl,%r8 149a: 49 f7 d0 not %r8 149d: 31 f6 xor %esi,%esi 149f: 49 0f ba e1 06 bt $0x6,%r9 14a4: 73 0b jae 14b1 <bitmap_release_region+0x61> 14a6: 89 d1 mov %edx,%ecx 14a8: 4c 21 04 cf and %r8,(%rdi,%rcx,8) 14ac: be 01 00 00 00 mov $0x1,%esi 14b1: 83 f8 01 cmp $0x1,%eax 14b4: 74 23 je 14d9 <bitmap_release_region+0x89> 14b6: 29 f0 sub %esi,%eax 14b8: 8d 4c 32 01 lea 0x1(%rdx,%rsi,1),%ecx 14bc: 01 f2 add %esi,%edx 14be: 66 90 xchg %ax,%ax 14c0: 48 63 d2 movslq %edx,%rdx 14c3: 4c 21 04 d7 and %r8,(%rdi,%rdx,8) 14c7: 48 63 c9 movslq %ecx,%rcx 14ca: 4c 21 04 cf and %r8,(%rdi,%rcx,8) 14ce: 83 c1 02 add $0x2,%ecx 14d1: 83 c2 02 add $0x2,%edx 14d4: 83 c0 fe add $0xfffffffe,%eax 14d7: 75 e7 jne 14c0 <bitmap_release_region+0x70> 14d9: c3 retq 14da: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1)
00000000000014e0 <bitmap_allocate_region>: 14e0: b8 01 00 00 00 mov $0x1,%eax 14e5: 88 d1 mov %dl,%cl 14e7: d3 e0 shl %cl,%eax 14e9: 89 f2 mov %esi,%edx 14eb: c1 ea 06 shr $0x6,%edx 14ee: 89 d1 mov %edx,%ecx 14f0: c1 e1 06 shl $0x6,%ecx 14f3: 29 ce sub %ecx,%esi 14f5: 48 63 c8 movslq %eax,%rcx 14f8: 4c 8d 51 3f lea 0x3f(%rcx),%r10 14fc: 4d 89 d0 mov %r10,%r8 14ff: 49 c1 e8 06 shr $0x6,%r8 1503: 83 f9 41 cmp $0x41,%ecx 1506: b8 40 00 00 00 mov $0x40,%eax 150b: 0f 4d c8 cmovge %eax,%ecx 150e: ff c9 dec %ecx 1510: 41 b9 02 00 00 00 mov $0x2,%r9d 1516: 49 d3 e1 shl %cl,%r9 1519: 49 ff c9 dec %r9 151c: 40 88 f1 mov %sil,%cl 151f: 49 d3 e1 shl %cl,%r9 1522: 31 c0 xor %eax,%eax 1524: 45 85 c0 test %r8d,%r8d 1527: 7e 61 jle 158a <bitmap_allocate_region+0xaa> 1529: 49 63 c8 movslq %r8d,%rcx 152c: 31 f6 xor %esi,%esi 152e: 66 90 xchg %ax,%ax 1530: 8d 04 32 lea (%rdx,%rsi,1),%eax 1533: 48 98 cltq 1535: 4c 85 0c c7 test %r9,(%rdi,%rax,8) 1539: b8 f0 ff ff ff mov $0xfffffff0,%eax 153e: 75 4a jne 158a <bitmap_allocate_region+0xaa> 1540: 48 ff c6 inc %rsi 1543: 48 39 ce cmp %rcx,%rsi 1546: 7c e8 jl 1530 <bitmap_allocate_region+0x50> 1548: 31 c0 xor %eax,%eax 154a: 49 0f ba e2 06 bt $0x6,%r10 154f: be 00 00 00 00 mov $0x0,%esi 1554: 73 0b jae 1561 <bitmap_allocate_region+0x81> 1556: 89 d1 mov %edx,%ecx 1558: 4c 09 0c cf or %r9,(%rdi,%rcx,8) 155c: be 01 00 00 00 mov $0x1,%esi 1561: 41 83 f8 01 cmp $0x1,%r8d 1565: 74 23 je 158a <bitmap_allocate_region+0xaa> 1567: 41 29 f0 sub %esi,%r8d 156a: 8d 4c 32 01 lea 0x1(%rdx,%rsi,1),%ecx 156e: 01 f2 add %esi,%edx 1570: 48 63 d2 movslq %edx,%rdx 1573: 4c 09 0c d7 or %r9,(%rdi,%rdx,8) 1577: 48 63 c9 movslq %ecx,%rcx 157a: 4c 09 0c cf or %r9,(%rdi,%rcx,8) 157e: 83 c1 02 add $0x2,%ecx 1581: 83 c2 02 add $0x2,%edx 1584: 41 83 c0 fe add $0xfffffffe,%r8d 1588: 75 e6 jne 1570 <bitmap_allocate_region+0x90> 158a: c3 retq
Disassembly of section .altinstr_replacement:
0000000000000000 <.altinstr_replacement>: 0: f3 48 0f b8 c7 popcnt %rdi,%rax 5: f3 48 0f b8 c7 popcnt %rdi,%rax a: 0f 01 (bad) c: cb lret d: 0f 01 (bad) f: ca 0f 01 lret $0x10f 12: cb lret 13: 0f 01 (bad) 15: ca f3 48 lret $0x48f3 18: 0f b8 (bad) 1a: c7 (bad) 1b: f3 48 0f b8 c7 popcnt %rdi,%rax 20: f3 48 0f b8 c7 popcnt %rdi,%rax 25: f3 48 0f b8 c7 popcnt %rdi,%rax 2a: f3 48 0f b8 c7 popcnt %rdi,%rax 2f: f3 48 0f b8 c7 popcnt %rdi,%rax 34: f3 48 0f b8 c7 popcnt %rdi,%rax 39: f3 48 0f b8 c7 popcnt %rdi,%rax
Disassembly of section .fixup:
0000000000000000 <.fixup>: 0: b9 f2 ff ff ff mov $0xfffffff2,%ecx 5: 30 d2 xor %dl,%dl 7: e9 00 00 00 00 jmpq c <.fixup+0xc> 8: R_X86_64_PC32 .text+0xa39 c: be f2 ff ff ff mov $0xfffffff2,%esi 11: 30 c0 xor %al,%al 13: e9 00 00 00 00 jmpq 18 <__kstrtab___bitmap_complement+0x9> 14: R_X86_64_PC32 .text+0xd06
lib/bitmap.o: file format elf64-x86-64
Disassembly of section .text:
0000000000000000 <__bitmap_equal>: 0: 41 89 d2 mov %edx,%r10d 3: 55 push %rbp 4: 41 c1 ea 06 shr $0x6,%r10d 8: 45 85 d2 test %r10d,%r10d b: 48 89 e5 mov %rsp,%rbp e: 74 27 je 37 <__bitmap_equal+0x37> 10: 48 8b 06 mov (%rsi),%rax 13: 48 39 07 cmp %rax,(%rdi) 16: 75 4a jne 62 <__bitmap_equal+0x62> 18: 31 c0 xor %eax,%eax 1a: 45 31 c0 xor %r8d,%r8d 1d: eb 0f jmp 2e <__bitmap_equal+0x2e> 1f: 4c 8b 4c 07 08 mov 0x8(%rdi,%rax,1),%r9 24: 48 83 c0 08 add $0x8,%rax 28: 4c 3b 0c 06 cmp (%rsi,%rax,1),%r9 2c: 75 34 jne 62 <__bitmap_equal+0x62> 2e: 41 83 c0 01 add $0x1,%r8d 32: 45 39 d0 cmp %r10d,%r8d 35: 75 e8 jne 1f <__bitmap_equal+0x1f> 37: f6 c2 3f test $0x3f,%dl 3a: b8 01 00 00 00 mov $0x1,%eax 3f: 74 1f je 60 <__bitmap_equal+0x60> 41: 4a 8b 34 d6 mov (%rsi,%r10,8),%rsi 45: 4a 33 34 d7 xor (%rdi,%r10,8),%rsi 49: 89 d1 mov %edx,%ecx 4b: f7 d9 neg %ecx 4d: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax 54: 48 d3 e8 shr %cl,%rax 57: 48 85 c6 test %rax,%rsi 5a: 0f 94 c0 sete %al 5d: 0f b6 c0 movzbl %al,%eax 60: 5d pop %rbp 61: c3 retq 62: 31 c0 xor %eax,%eax 64: 5d pop %rbp 65: c3 retq 66: 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:0x0(%rax,%rax,1)
0000000000000070 <__bitmap_complement>: 70: 41 89 d0 mov %edx,%r8d 73: 55 push %rbp 74: 41 c1 e8 06 shr $0x6,%r8d 78: 45 85 c0 test %r8d,%r8d 7b: 48 89 e5 mov %rsp,%rbp 7e: 74 16 je 96 <__bitmap_complement+0x26> 80: 31 c0 xor %eax,%eax 82: 48 8b 0c c6 mov (%rsi,%rax,8),%rcx 86: 48 f7 d1 not %rcx 89: 48 89 0c c7 mov %rcx,(%rdi,%rax,8) 8d: 48 83 c0 01 add $0x1,%rax 91: 41 39 c0 cmp %eax,%r8d 94: 77 ec ja 82 <__bitmap_complement+0x12> 96: 83 e2 3f and $0x3f,%edx 99: 74 0b je a6 <__bitmap_complement+0x36> 9b: 4a 8b 04 c6 mov (%rsi,%r8,8),%rax 9f: 48 f7 d0 not %rax a2: 4a 89 04 c7 mov %rax,(%rdi,%r8,8) a6: 5d pop %rbp a7: c3 retq a8: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1)
00000000000000b0 <__bitmap_and>: b0: 41 89 ca mov %ecx,%r10d b3: 55 push %rbp b4: 41 c1 ea 06 shr $0x6,%r10d b8: 45 85 d2 test %r10d,%r10d bb: 48 89 e5 mov %rsp,%rbp be: 74 4d je 10d <__bitmap_and+0x5d> c0: 31 c0 xor %eax,%eax c2: 45 31 c9 xor %r9d,%r9d c5: 4c 8b 04 c2 mov (%rdx,%rax,8),%r8 c9: 4c 23 04 c6 and (%rsi,%rax,8),%r8 cd: 4c 89 04 c7 mov %r8,(%rdi,%rax,8) d1: 48 83 c0 01 add $0x1,%rax d5: 4d 09 c1 or %r8,%r9 d8: 41 39 c2 cmp %eax,%r10d db: 77 e8 ja c5 <__bitmap_and+0x15> dd: f6 c1 3f test $0x3f,%cl e0: 74 21 je 103 <__bitmap_and+0x53> e2: 4a 8b 04 d6 mov (%rsi,%r10,8),%rax e6: 4a 23 04 d2 and (%rdx,%r10,8),%rax ea: f7 d9 neg %ecx ec: 48 89 c2 mov %rax,%rdx ef: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax f6: 48 d3 e8 shr %cl,%rax f9: 48 21 d0 and %rdx,%rax fc: 4a 89 04 d7 mov %rax,(%rdi,%r10,8) 100: 49 09 c1 or %rax,%r9 103: 31 c0 xor %eax,%eax 105: 4d 85 c9 test %r9,%r9 108: 0f 95 c0 setne %al 10b: 5d pop %rbp 10c: c3 retq 10d: 45 31 c9 xor %r9d,%r9d 110: eb cb jmp dd <__bitmap_and+0x2d> 112: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 nopw %cs:0x0(%rax,%rax,1)
0000000000000120 <__bitmap_or>: 120: 89 c9 mov %ecx,%ecx 122: 55 push %rbp 123: 31 c0 xor %eax,%eax 125: 48 83 c1 3f add $0x3f,%rcx 129: 48 c1 e9 06 shr $0x6,%rcx 12d: 48 89 e5 mov %rsp,%rbp 130: 48 85 c9 test %rcx,%rcx 133: 41 89 c8 mov %ecx,%r8d 136: 74 15 je 14d <__bitmap_or+0x2d> 138: 48 8b 0c c2 mov (%rdx,%rax,8),%rcx 13c: 48 0b 0c c6 or (%rsi,%rax,8),%rcx 140: 48 89 0c c7 mov %rcx,(%rdi,%rax,8) 144: 48 83 c0 01 add $0x1,%rax 148: 41 39 c0 cmp %eax,%r8d 14b: 77 eb ja 138 <__bitmap_or+0x18> 14d: 5d pop %rbp 14e: c3 retq 14f: 90 nop
0000000000000150 <__bitmap_xor>: 150: 89 c9 mov %ecx,%ecx 152: 55 push %rbp 153: 31 c0 xor %eax,%eax 155: 48 83 c1 3f add $0x3f,%rcx 159: 48 c1 e9 06 shr $0x6,%rcx 15d: 48 89 e5 mov %rsp,%rbp 160: 48 85 c9 test %rcx,%rcx 163: 41 89 c8 mov %ecx,%r8d 166: 74 15 je 17d <__bitmap_xor+0x2d> 168: 48 8b 0c c2 mov (%rdx,%rax,8),%rcx 16c: 48 33 0c c6 xor (%rsi,%rax,8),%rcx 170: 48 89 0c c7 mov %rcx,(%rdi,%rax,8) 174: 48 83 c0 01 add $0x1,%rax 178: 41 39 c0 cmp %eax,%r8d 17b: 77 eb ja 168 <__bitmap_xor+0x18> 17d: 5d pop %rbp 17e: c3 retq 17f: 90 nop
0000000000000180 <__bitmap_andnot>: 180: 41 89 ca mov %ecx,%r10d 183: 55 push %rbp 184: 41 c1 ea 06 shr $0x6,%r10d 188: 45 85 d2 test %r10d,%r10d 18b: 48 89 e5 mov %rsp,%rbp 18e: 74 54 je 1e4 <__bitmap_andnot+0x64> 190: 45 31 c0 xor %r8d,%r8d 193: 45 31 c9 xor %r9d,%r9d 196: 4a 8b 04 c2 mov (%rdx,%r8,8),%rax 19a: 48 f7 d0 not %rax 19d: 4a 23 04 c6 and (%rsi,%r8,8),%rax 1a1: 4a 89 04 c7 mov %rax,(%rdi,%r8,8) 1a5: 49 83 c0 01 add $0x1,%r8 1a9: 49 09 c1 or %rax,%r9 1ac: 45 39 c2 cmp %r8d,%r10d 1af: 77 e5 ja 196 <__bitmap_andnot+0x16> 1b1: f6 c1 3f test $0x3f,%cl 1b4: 74 24 je 1da <__bitmap_andnot+0x5a> 1b6: f7 d9 neg %ecx 1b8: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax 1bf: 48 d3 e8 shr %cl,%rax 1c2: 4a 23 04 d6 and (%rsi,%r10,8),%rax 1c6: 48 89 c1 mov %rax,%rcx 1c9: 4a 8b 04 d2 mov (%rdx,%r10,8),%rax 1cd: 48 f7 d0 not %rax 1d0: 48 21 c8 and %rcx,%rax 1d3: 4a 89 04 d7 mov %rax,(%rdi,%r10,8) 1d7: 49 09 c1 or %rax,%r9 1da: 31 c0 xor %eax,%eax 1dc: 4d 85 c9 test %r9,%r9 1df: 0f 95 c0 setne %al 1e2: 5d pop %rbp 1e3: c3 retq 1e4: 45 31 c9 xor %r9d,%r9d 1e7: eb c8 jmp 1b1 <__bitmap_andnot+0x31> 1e9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
00000000000001f0 <__bitmap_intersects>: 1f0: 41 89 d2 mov %edx,%r10d 1f3: 55 push %rbp 1f4: 41 c1 ea 06 shr $0x6,%r10d 1f8: 45 85 d2 test %r10d,%r10d 1fb: 48 89 e5 mov %rsp,%rbp 1fe: 74 2b je 22b <__bitmap_intersects+0x3b> 200: 48 8b 07 mov (%rdi),%rax 203: 48 85 06 test %rax,(%rsi) 206: 75 4e jne 256 <__bitmap_intersects+0x66> 208: 31 c0 xor %eax,%eax 20a: 45 31 c9 xor %r9d,%r9d 20d: eb 13 jmp 222 <__bitmap_intersects+0x32> 20f: 4c 8b 44 06 08 mov 0x8(%rsi,%rax,1),%r8 214: 4c 23 44 07 08 and 0x8(%rdi,%rax,1),%r8 219: 48 83 c0 08 add $0x8,%rax 21d: 4d 85 c0 test %r8,%r8 220: 75 34 jne 256 <__bitmap_intersects+0x66> 222: 41 83 c1 01 add $0x1,%r9d 226: 45 39 d1 cmp %r10d,%r9d 229: 75 e4 jne 20f <__bitmap_intersects+0x1f> 22b: 31 c0 xor %eax,%eax 22d: f6 c2 3f test $0x3f,%dl 230: 74 22 je 254 <__bitmap_intersects+0x64> 232: 4a 8b 04 d7 mov (%rdi,%r10,8),%rax 236: 4a 23 04 d6 and (%rsi,%r10,8),%rax 23a: 89 d1 mov %edx,%ecx 23c: f7 d9 neg %ecx 23e: 48 89 c6 mov %rax,%rsi 241: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax 248: 48 d3 e8 shr %cl,%rax 24b: 48 85 c6 test %rax,%rsi 24e: 0f 95 c0 setne %al 251: 0f b6 c0 movzbl %al,%eax 254: 5d pop %rbp 255: c3 retq 256: b8 01 00 00 00 mov $0x1,%eax 25b: 5d pop %rbp 25c: c3 retq 25d: 0f 1f 00 nopl (%rax)
0000000000000260 <__bitmap_subset>: 260: 41 89 d2 mov %edx,%r10d 263: 55 push %rbp 264: 41 c1 ea 06 shr $0x6,%r10d 268: 45 85 d2 test %r10d,%r10d 26b: 48 89 e5 mov %rsp,%rbp 26e: 74 32 je 2a2 <__bitmap_subset+0x42> 270: 48 8b 06 mov (%rsi),%rax 273: 48 f7 d0 not %rax 276: 48 85 07 test %rax,(%rdi) 279: 75 55 jne 2d0 <__bitmap_subset+0x70> 27b: 45 31 c0 xor %r8d,%r8d 27e: 45 31 c9 xor %r9d,%r9d 281: eb 16 jmp 299 <__bitmap_subset+0x39> 283: 4a 8b 44 06 08 mov 0x8(%rsi,%r8,1),%rax 288: 48 f7 d0 not %rax 28b: 4a 23 44 07 08 and 0x8(%rdi,%r8,1),%rax 290: 49 83 c0 08 add $0x8,%r8 294: 48 85 c0 test %rax,%rax 297: 75 37 jne 2d0 <__bitmap_subset+0x70> 299: 41 83 c1 01 add $0x1,%r9d 29d: 45 39 d1 cmp %r10d,%r9d 2a0: 75 e1 jne 283 <__bitmap_subset+0x23> 2a2: f6 c2 3f test $0x3f,%dl 2a5: b8 01 00 00 00 mov $0x1,%eax 2aa: 74 22 je 2ce <__bitmap_subset+0x6e> 2ac: 89 d1 mov %edx,%ecx 2ae: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax 2b5: 4a 8b 14 d6 mov (%rsi,%r10,8),%rdx 2b9: f7 d9 neg %ecx 2bb: 48 d3 e8 shr %cl,%rax 2be: 4a 23 04 d7 and (%rdi,%r10,8),%rax 2c2: 48 f7 d2 not %rdx 2c5: 48 85 d0 test %rdx,%rax 2c8: 0f 94 c0 sete %al 2cb: 0f b6 c0 movzbl %al,%eax 2ce: 5d pop %rbp 2cf: c3 retq 2d0: 31 c0 xor %eax,%eax 2d2: 5d pop %rbp 2d3: c3 retq 2d4: 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 nopw %cs:0x0(%rax,%rax,1)
00000000000002e0 <bitmap_set>: 2e0: 89 f0 mov %esi,%eax 2e2: 89 f1 mov %esi,%ecx 2e4: 55 push %rbp 2e5: c1 e8 06 shr $0x6,%eax 2e8: 83 e1 3f and $0x3f,%ecx 2eb: 48 8d 04 c7 lea (%rdi,%rax,8),%rax 2ef: 48 c7 c7 ff ff ff ff mov $0xffffffffffffffff,%rdi 2f6: 48 89 e5 mov %rsp,%rbp 2f9: 48 d3 e7 shl %cl,%rdi 2fc: 8d 4c 0a c0 lea -0x40(%rdx,%rcx,1),%ecx 300: 85 c9 test %ecx,%ecx 302: 78 4a js 34e <bitmap_set+0x6e> 304: 41 89 c9 mov %ecx,%r9d 307: 41 c1 e9 06 shr $0x6,%r9d 30b: 45 89 c8 mov %r9d,%r8d 30e: 4e 8d 04 c5 08 00 00 00 lea 0x8(,%r8,8),%r8 316: 49 01 c0 add %rax,%r8 319: 48 09 38 or %rdi,(%rax) 31c: 48 83 c0 08 add $0x8,%rax 320: 48 c7 c7 ff ff ff ff mov $0xffffffffffffffff,%rdi 327: 4c 39 c0 cmp %r8,%rax 32a: 75 ed jne 319 <bitmap_set+0x39> 32c: 41 c1 e1 06 shl $0x6,%r9d 330: 44 29 c9 sub %r9d,%ecx 333: 85 c9 test %ecx,%ecx 335: 74 15 je 34c <bitmap_set+0x6c> 337: 8d 0c 16 lea (%rsi,%rdx,1),%ecx 33a: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax 341: f7 d9 neg %ecx 343: 48 d3 e8 shr %cl,%rax 346: 48 21 c7 and %rax,%rdi 349: 49 09 38 or %rdi,(%r8) 34c: 5d pop %rbp 34d: c3 retq 34e: 49 89 c0 mov %rax,%r8 351: 89 d1 mov %edx,%ecx 353: eb de jmp 333 <bitmap_set+0x53> 355: 66 66 2e 0f 1f 84 00 00 00 00 00 data32 nopw %cs:0x0(%rax,%rax,1)
0000000000000360 <bitmap_clear>: 360: 89 f0 mov %esi,%eax 362: 89 f1 mov %esi,%ecx 364: 55 push %rbp 365: c1 e8 06 shr $0x6,%eax 368: 83 e1 3f and $0x3f,%ecx 36b: 48 8d 04 c7 lea (%rdi,%rax,8),%rax 36f: 48 c7 c7 ff ff ff ff mov $0xffffffffffffffff,%rdi 376: 48 89 e5 mov %rsp,%rbp 379: 48 d3 e7 shl %cl,%rdi 37c: 8d 4c 0a c0 lea -0x40(%rdx,%rcx,1),%ecx 380: 85 c9 test %ecx,%ecx 382: 78 50 js 3d4 <bitmap_clear+0x74> 384: 41 89 c9 mov %ecx,%r9d 387: 41 c1 e9 06 shr $0x6,%r9d 38b: 45 89 c8 mov %r9d,%r8d 38e: 4e 8d 04 c5 08 00 00 00 lea 0x8(,%r8,8),%r8 396: 49 01 c0 add %rax,%r8 399: 48 f7 d7 not %rdi 39c: 48 21 38 and %rdi,(%rax) 39f: 48 83 c0 08 add $0x8,%rax 3a3: 4c 39 c0 cmp %r8,%rax 3a6: 48 c7 c7 ff ff ff ff mov $0xffffffffffffffff,%rdi 3ad: 75 ea jne 399 <bitmap_clear+0x39> 3af: 41 c1 e1 06 shl $0x6,%r9d 3b3: 44 29 c9 sub %r9d,%ecx 3b6: 85 c9 test %ecx,%ecx 3b8: 74 18 je 3d2 <bitmap_clear+0x72> 3ba: 8d 0c 16 lea (%rsi,%rdx,1),%ecx 3bd: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax 3c4: f7 d9 neg %ecx 3c6: 48 d3 e8 shr %cl,%rax 3c9: 48 21 c7 and %rax,%rdi 3cc: 48 f7 d7 not %rdi 3cf: 49 21 38 and %rdi,(%r8) 3d2: 5d pop %rbp 3d3: c3 retq 3d4: 49 89 c0 mov %rax,%r8 3d7: 89 d1 mov %edx,%ecx 3d9: eb db jmp 3b6 <bitmap_clear+0x56> 3db: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
00000000000003e0 <__reg_op>: 3e0: 41 89 ca mov %ecx,%r10d 3e3: b8 01 00 00 00 mov $0x1,%eax 3e8: 89 d1 mov %edx,%ecx 3ea: d3 e0 shl %cl,%eax 3ec: 41 b8 40 00 00 00 mov $0x40,%r8d 3f2: 55 push %rbp 3f3: 4c 63 c8 movslq %eax,%r9 3f6: 89 f0 mov %esi,%eax 3f8: 4c 89 ca mov %r9,%rdx 3fb: 49 83 c1 3f add $0x3f,%r9 3ff: 48 89 e5 mov %rsp,%rbp 402: 49 c1 e9 06 shr $0x6,%r9 406: 83 fa 40 cmp $0x40,%edx 409: 41 0f 4f d0 cmovg %r8d,%edx 40d: c1 e8 06 shr $0x6,%eax 410: 8d 4a ff lea -0x1(%rdx),%ecx 413: ba 02 00 00 00 mov $0x2,%edx 418: 48 d3 e2 shl %cl,%rdx 41b: 89 f1 mov %esi,%ecx 41d: 48 83 ea 01 sub $0x1,%rdx 421: 48 d3 e2 shl %cl,%rdx 424: 41 83 fa 01 cmp $0x1,%r10d 428: 74 5a je 484 <__reg_op+0xa4> 42a: 41 83 fa 02 cmp $0x2,%r10d 42e: 74 36 je 466 <__reg_op+0x86> 430: 45 85 d2 test %r10d,%r10d 433: 74 04 je 439 <__reg_op+0x59> 435: 31 c0 xor %eax,%eax 437: 5d pop %rbp 438: c3 retq 439: 45 85 c9 test %r9d,%r9d 43c: 7e 21 jle 45f <__reg_op+0x7f> 43e: 48 63 c8 movslq %eax,%rcx 441: 48 85 14 cf test %rdx,(%rdi,%rcx,8) 445: 75 ee jne 435 <__reg_op+0x55> 447: 8d 48 01 lea 0x1(%rax),%ecx 44a: 44 01 c8 add %r9d,%eax 44d: eb 0c jmp 45b <__reg_op+0x7b> 44f: 48 63 f1 movslq %ecx,%rsi 452: 83 c1 01 add $0x1,%ecx 455: 48 85 14 f7 test %rdx,(%rdi,%rsi,8) 459: 75 da jne 435 <__reg_op+0x55> 45b: 39 c1 cmp %eax,%ecx 45d: 75 f0 jne 44f <__reg_op+0x6f> 45f: b8 01 00 00 00 mov $0x1,%eax 464: 5d pop %rbp 465: c3 retq 466: 45 85 c9 test %r9d,%r9d 469: 48 f7 d2 not %rdx 46c: 42 8d 34 08 lea (%rax,%r9,1),%esi 470: 7e c3 jle 435 <__reg_op+0x55> 472: 48 63 c8 movslq %eax,%rcx 475: 83 c0 01 add $0x1,%eax 478: 48 21 14 cf and %rdx,(%rdi,%rcx,8) 47c: 39 f0 cmp %esi,%eax 47e: 75 f2 jne 472 <__reg_op+0x92> 480: 31 c0 xor %eax,%eax 482: eb b3 jmp 437 <__reg_op+0x57> 484: 45 85 c9 test %r9d,%r9d 487: 42 8d 34 08 lea (%rax,%r9,1),%esi 48b: 7e a8 jle 435 <__reg_op+0x55> 48d: 48 63 c8 movslq %eax,%rcx 490: 83 c0 01 add $0x1,%eax 493: 48 09 14 cf or %rdx,(%rdi,%rcx,8) 497: 39 f0 cmp %esi,%eax 499: 75 f2 jne 48d <__reg_op+0xad> 49b: 31 c0 xor %eax,%eax 49d: eb 98 jmp 437 <__reg_op+0x57> 49f: 90 nop
00000000000004a0 <bitmap_find_free_region>: 4a0: 55 push %rbp 4a1: 89 d1 mov %edx,%ecx 4a3: 48 89 e5 mov %rsp,%rbp 4a6: 41 57 push %r15 4a8: 41 56 push %r14 4aa: 41 55 push %r13 4ac: 41 54 push %r12 4ae: 41 bc 01 00 00 00 mov $0x1,%r12d 4b4: 53 push %rbx 4b5: 41 d3 e4 shl %cl,%r12d 4b8: 31 db xor %ebx,%ebx 4ba: 46 8d 3c 23 lea (%rbx,%r12,1),%r15d 4be: 49 89 fe mov %rdi,%r14 4c1: 41 89 d5 mov %edx,%r13d 4c4: 48 83 ec 08 sub $0x8,%rsp 4c8: 89 75 d4 mov %esi,-0x2c(%rbp) 4cb: 44 3b 7d d4 cmp -0x2c(%rbp),%r15d 4cf: 77 20 ja 4f1 <bitmap_find_free_region+0x51> 4d1: 31 c9 xor %ecx,%ecx 4d3: 44 89 ea mov %r13d,%edx 4d6: 89 de mov %ebx,%esi 4d8: 4c 89 f7 mov %r14,%rdi 4db: e8 00 ff ff ff callq 3e0 <__reg_op> 4e0: 85 c0 test %eax,%eax 4e2: 75 21 jne 505 <bitmap_find_free_region+0x65> 4e4: 44 89 fb mov %r15d,%ebx 4e7: 46 8d 3c 23 lea (%rbx,%r12,1),%r15d 4eb: 44 3b 7d d4 cmp -0x2c(%rbp),%r15d 4ef: 76 e0 jbe 4d1 <bitmap_find_free_region+0x31> 4f1: 48 83 c4 08 add $0x8,%rsp 4f5: b8 f4 ff ff ff mov $0xfffffff4,%eax 4fa: 5b pop %rbx 4fb: 41 5c pop %r12 4fd: 41 5d pop %r13 4ff: 41 5e pop %r14 501: 41 5f pop %r15 503: 5d pop %rbp 504: c3 retq 505: 44 89 ea mov %r13d,%edx 508: 89 de mov %ebx,%esi 50a: 4c 89 f7 mov %r14,%rdi 50d: b9 01 00 00 00 mov $0x1,%ecx 512: e8 c9 fe ff ff callq 3e0 <__reg_op> 517: 48 83 c4 08 add $0x8,%rsp 51b: 89 d8 mov %ebx,%eax 51d: 5b pop %rbx 51e: 41 5c pop %r12 520: 41 5d pop %r13 522: 41 5e pop %r14 524: 41 5f pop %r15 526: 5d pop %rbp 527: c3 retq 528: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1)
0000000000000530 <bitmap_release_region>: 530: 55 push %rbp 531: b9 02 00 00 00 mov $0x2,%ecx 536: 48 89 e5 mov %rsp,%rbp 539: e8 a2 fe ff ff callq 3e0 <__reg_op> 53e: 5d pop %rbp 53f: c3 retq
0000000000000540 <bitmap_allocate_region>: 540: 55 push %rbp 541: 31 c9 xor %ecx,%ecx 543: 48 89 e5 mov %rsp,%rbp 546: 41 55 push %r13 548: 41 54 push %r12 54a: 53 push %rbx 54b: 41 89 d5 mov %edx,%r13d 54e: 48 89 fb mov %rdi,%rbx 551: 41 89 f4 mov %esi,%r12d 554: e8 87 fe ff ff callq 3e0 <__reg_op> 559: 89 c2 mov %eax,%edx 55b: b8 f0 ff ff ff mov $0xfffffff0,%eax 560: 85 d2 test %edx,%edx 562: 74 13 je 577 <bitmap_allocate_region+0x37> 564: b9 01 00 00 00 mov $0x1,%ecx 569: 44 89 ea mov %r13d,%edx 56c: 44 89 e6 mov %r12d,%esi 56f: 48 89 df mov %rbx,%rdi 572: e8 69 fe ff ff callq 3e0 <__reg_op> 577: 5b pop %rbx 578: 41 5c pop %r12 57a: 41 5d pop %r13 57c: 5d pop %rbp 57d: c3 retq 57e: 66 90 xchg %ax,%ax
0000000000000580 <__bitmap_shift_right>: 580: 55 push %rbp 581: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax 588: 48 89 e5 mov %rsp,%rbp 58b: 41 57 push %r15 58d: 41 56 push %r14 58f: 41 55 push %r13 591: 41 89 cd mov %ecx,%r13d 594: 41 54 push %r12 596: 49 83 c5 3f add $0x3f,%r13 59a: 41 89 d7 mov %edx,%r15d 59d: 53 push %rbx 59e: f7 d9 neg %ecx 5a0: 49 c1 ed 06 shr $0x6,%r13 5a4: 41 c1 ef 06 shr $0x6,%r15d 5a8: 48 83 ec 18 sub $0x18,%rsp 5ac: 48 d3 e8 shr %cl,%rax 5af: 83 e2 3f and $0x3f,%edx 5b2: 45 39 fd cmp %r15d,%r13d 5b5: 48 89 45 c8 mov %rax,-0x38(%rbp) 5b9: 76 60 jbe 61b <__bitmap_shift_right+0x9b> 5bb: 41 be 40 00 00 00 mov $0x40,%r14d 5c1: 45 8d 65 ff lea -0x1(%r13),%r12d 5c5: 45 8d 57 01 lea 0x1(%r15),%r10d 5c9: 44 89 eb mov %r13d,%ebx 5cc: 49 89 fb mov %rdi,%r11 5cf: 45 89 f8 mov %r15d,%r8d 5d2: 41 29 d6 sub %edx,%r14d 5d5: 31 c0 xor %eax,%eax 5d7: 85 d2 test %edx,%edx 5d9: 74 17 je 5f2 <__bitmap_shift_right+0x72> 5db: 44 39 d3 cmp %r10d,%ebx 5de: 76 12 jbe 5f2 <__bitmap_shift_right+0x72> 5e0: 44 89 d0 mov %r10d,%eax 5e3: 45 39 e2 cmp %r12d,%r10d 5e6: 48 8b 04 c6 mov (%rsi,%rax,8),%rax 5ea: 74 5e je 64a <__bitmap_shift_right+0xca> 5ec: 44 89 f1 mov %r14d,%ecx 5ef: 48 d3 e0 shl %cl,%rax 5f2: 44 89 c1 mov %r8d,%ecx 5f5: 45 39 e0 cmp %r12d,%r8d 5f8: 4c 8b 0c ce mov (%rsi,%rcx,8),%r9 5fc: 74 46 je 644 <__bitmap_shift_right+0xc4> 5fe: 89 d1 mov %edx,%ecx 600: 41 83 c0 01 add $0x1,%r8d 604: 41 83 c2 01 add $0x1,%r10d 608: 49 d3 e9 shr %cl,%r9 60b: 49 83 c3 08 add $0x8,%r11 60f: 4c 09 c8 or %r9,%rax 612: 49 89 43 f8 mov %rax,-0x8(%r11) 616: 44 39 c3 cmp %r8d,%ebx 619: 75 ba jne 5d5 <__bitmap_shift_right+0x55> 61b: 45 85 ff test %r15d,%r15d 61e: 74 15 je 635 <__bitmap_shift_right+0xb5> 620: 45 29 fd sub %r15d,%r13d 623: 44 89 fa mov %r15d,%edx 626: 31 f6 xor %esi,%esi 628: 4a 8d 3c ef lea (%rdi,%r13,8),%rdi 62c: 48 c1 e2 03 shl $0x3,%rdx 630: e8 00 00 00 00 callq 635 <__bitmap_shift_right+0xb5> 631: R_X86_64_PC32 memset-0x4 635: 48 83 c4 18 add $0x18,%rsp 639: 5b pop %rbx 63a: 41 5c pop %r12 63c: 41 5d pop %r13 63e: 41 5e pop %r14 640: 41 5f pop %r15 642: 5d pop %rbp 643: c3 retq 644: 4c 23 4d c8 and -0x38(%rbp),%r9 648: eb b4 jmp 5fe <__bitmap_shift_right+0x7e> 64a: 48 23 45 c8 and -0x38(%rbp),%rax 64e: eb 9c jmp 5ec <__bitmap_shift_right+0x6c>
0000000000000650 <__bitmap_shift_left>: 650: 41 89 d2 mov %edx,%r10d 653: 55 push %rbp 654: 89 c8 mov %ecx,%eax 656: 41 c1 ea 06 shr $0x6,%r10d 65a: 48 83 c0 3f add $0x3f,%rax 65e: 45 89 d0 mov %r10d,%r8d 661: 48 89 e5 mov %rsp,%rbp 664: 48 c1 e8 06 shr $0x6,%rax 668: 41 54 push %r12 66a: 83 e2 3f and $0x3f,%edx 66d: 53 push %rbx 66e: 41 f7 d0 not %r8d 671: bb 40 00 00 00 mov $0x40,%ebx 676: 41 0f 95 c3 setne %r11b 67a: 29 d3 sub %edx,%ebx 67c: 44 01 c0 add %r8d,%eax 67f: 79 2d jns 6ae <__bitmap_shift_left+0x5e> 681: eb 3b jmp 6be <__bitmap_shift_left+0x6e> 683: 45 84 db test %r11b,%r11b 686: 74 31 je 6b9 <__bitmap_shift_left+0x69> 688: 4e 8b 44 0e f8 mov -0x8(%rsi,%r9,1),%r8 68d: 89 d9 mov %ebx,%ecx 68f: 49 d3 e8 shr %cl,%r8 692: 4e 8b 0c 0e mov (%rsi,%r9,1),%r9 696: 89 d1 mov %edx,%ecx 698: 46 8d 24 10 lea (%rax,%r10,1),%r12d 69c: 83 e8 01 sub $0x1,%eax 69f: 49 d3 e1 shl %cl,%r9 6a2: 4d 09 c8 or %r9,%r8 6a5: 83 f8 ff cmp $0xffffffff,%eax 6a8: 4e 89 04 e7 mov %r8,(%rdi,%r12,8) 6ac: 74 10 je 6be <__bitmap_shift_left+0x6e> 6ae: 4c 63 c8 movslq %eax,%r9 6b1: 49 c1 e1 03 shl $0x3,%r9 6b5: 85 c0 test %eax,%eax 6b7: 7f ca jg 683 <__bitmap_shift_left+0x33> 6b9: 45 31 c0 xor %r8d,%r8d 6bc: eb d4 jmp 692 <__bitmap_shift_left+0x42> 6be: 45 85 d2 test %r10d,%r10d 6c1: 74 0e je 6d1 <__bitmap_shift_left+0x81> 6c3: 44 89 d2 mov %r10d,%edx 6c6: 31 f6 xor %esi,%esi 6c8: 48 c1 e2 03 shl $0x3,%rdx 6cc: e8 00 00 00 00 callq 6d1 <__bitmap_shift_left+0x81> 6cd: R_X86_64_PC32 memset-0x4 6d1: 5b pop %rbx 6d2: 41 5c pop %r12 6d4: 5d pop %rbp 6d5: c3 retq 6d6: 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:0x0(%rax,%rax,1)
00000000000006e0 <__bitmap_parselist>: 6e0: 55 push %rbp 6e1: 48 89 e5 mov %rsp,%rbp 6e4: 41 57 push %r15 6e6: 41 56 push %r14 6e8: 41 55 push %r13 6ea: 41 54 push %r12 6ec: 41 89 d5 mov %edx,%r13d 6ef: 53 push %rbx 6f0: 44 89 c2 mov %r8d,%edx 6f3: 49 89 fc mov %rdi,%r12 6f6: 89 f3 mov %esi,%ebx 6f8: 48 89 cf mov %rcx,%rdi 6fb: 31 f6 xor %esi,%esi 6fd: 48 83 ec 18 sub $0x18,%rsp 701: 89 55 cc mov %edx,-0x34(%rbp) 704: 48 83 c2 3f add $0x3f,%rdx 708: 48 c1 ea 06 shr $0x6,%rdx 70c: 48 89 4d c0 mov %rcx,-0x40(%rbp) 710: 48 c1 e2 03 shl $0x3,%rdx 714: e8 00 00 00 00 callq 719 <__bitmap_parselist+0x39> 715: R_X86_64_PC32 memset-0x4 719: 4d 89 e0 mov %r12,%r8 71c: 31 ff xor %edi,%edi 71e: 45 31 c9 xor %r9d,%r9d 721: 85 db test %ebx,%ebx 723: 0f 84 43 01 00 00 je 86c <__bitmap_parselist+0x18c> 729: 45 31 f6 xor %r14d,%r14d 72c: 41 bb 01 00 00 00 mov $0x1,%r11d 732: 31 c9 xor %ecx,%ecx 734: 31 f6 xor %esi,%esi 736: 45 31 ff xor %r15d,%r15d 739: e9 89 00 00 00 jmpq 7c7 <__bitmap_parselist+0xe7> 73e: 4d 8d 50 01 lea 0x1(%r8),%r10 742: 44 89 fa mov %r15d,%edx 745: 90 nop 746: 90 nop 747: 90 nop 748: 41 8a 00 mov (%r8),%al 74b: 90 nop 74c: 90 nop 74d: 90 nop 74e: 85 d2 test %edx,%edx 750: 0f be c0 movsbl %al,%eax 753: 0f 85 f7 00 00 00 jne 850 <__bitmap_parselist+0x170> 759: 4d 89 d0 mov %r10,%r8 75c: 0f b6 d0 movzbl %al,%edx 75f: 83 eb 01 sub $0x1,%ebx 762: 0f b6 92 00 00 00 00 movzbl 0x0(%rdx),%edx 765: R_X86_64_32S _ctype 769: f6 c2 20 test $0x20,%dl 76c: 75 6d jne 7db <__bitmap_parselist+0xfb> 76e: 85 c0 test %eax,%eax 770: 74 16 je 788 <__bitmap_parselist+0xa8> 772: 85 ff test %edi,%edi 774: 74 12 je 788 <__bitmap_parselist+0xa8> 776: 45 0f b6 c9 movzbl %r9b,%r9d 77a: 41 f6 81 00 00 00 00 20 testb $0x20,0x0(%r9) 77d: R_X86_64_32S _ctype 782: 0f 85 b4 00 00 00 jne 83c <__bitmap_parselist+0x15c> 788: 83 f8 2c cmp $0x2c,%eax 78b: 0f 84 d3 00 00 00 je 864 <__bitmap_parselist+0x184> 791: 85 c0 test %eax,%eax 793: 0f 84 cb 00 00 00 je 864 <__bitmap_parselist+0x184> 799: 83 f8 2d cmp $0x2d,%eax 79c: 0f 84 82 00 00 00 je 824 <__bitmap_parselist+0x144> 7a2: 83 e2 04 and $0x4,%edx 7a5: 0f 84 91 00 00 00 je 83c <__bitmap_parselist+0x15c> 7ab: 8d 14 89 lea (%rcx,%rcx,4),%edx 7ae: 41 89 c1 mov %eax,%r9d 7b1: 8d 4c 12 d0 lea -0x30(%rdx,%rdx,1),%ecx 7b5: 01 c1 add %eax,%ecx 7b7: 45 85 f6 test %r14d,%r14d 7ba: 0f 44 f1 cmove %ecx,%esi 7bd: 83 c7 01 add $0x1,%edi 7c0: 45 31 db xor %r11d,%r11d 7c3: 85 db test %ebx,%ebx 7c5: 74 1b je 7e2 <__bitmap_parselist+0x102> 7c7: 45 85 ed test %r13d,%r13d 7ca: 0f 85 6e ff ff ff jne 73e <__bitmap_parselist+0x5e> 7d0: 41 0f be 04 24 movsbl (%r12),%eax 7d5: 49 83 c4 01 add $0x1,%r12 7d9: eb 81 jmp 75c <__bitmap_parselist+0x7c> 7db: 85 db test %ebx,%ebx 7dd: 41 89 c1 mov %eax,%r9d 7e0: 75 e5 jne 7c7 <__bitmap_parselist+0xe7> 7e2: 39 f1 cmp %esi,%ecx 7e4: 72 56 jb 83c <__bitmap_parselist+0x15c> 7e6: 39 4d cc cmp %ecx,-0x34(%rbp) 7e9: 0f 86 88 00 00 00 jbe 877 <__bitmap_parselist+0x197> 7ef: 45 85 db test %r11d,%r11d 7f2: 75 12 jne 806 <__bitmap_parselist+0x126> 7f4: 48 8b 45 c0 mov -0x40(%rbp),%rax 7f8: 89 f2 mov %esi,%edx 7fa: f0 48 0f ab 10 lock bts %rdx,(%rax) 7ff: 83 c6 01 add $0x1,%esi 802: 39 ce cmp %ecx,%esi 804: 76 f2 jbe 7f8 <__bitmap_parselist+0x118> 806: 41 83 f9 2c cmp $0x2c,%r9d 80a: 41 b9 2c 00 00 00 mov $0x2c,%r9d 810: 0f 94 c2 sete %dl 813: 85 db test %ebx,%ebx 815: 0f 95 c0 setne %al 818: 84 c2 test %al,%dl 81a: 0f 85 01 ff ff ff jne 721 <__bitmap_parselist+0x41> 820: 31 c0 xor %eax,%eax 822: eb 1d jmp 841 <__bitmap_parselist+0x161> 824: 45 09 de or %r11d,%r14d 827: 75 13 jne 83c <__bitmap_parselist+0x15c> 829: 41 b9 2d 00 00 00 mov $0x2d,%r9d 82f: 41 be 01 00 00 00 mov $0x1,%r14d 835: 45 31 db xor %r11d,%r11d 838: 31 c9 xor %ecx,%ecx 83a: eb 87 jmp 7c3 <__bitmap_parselist+0xe3> 83c: b8 ea ff ff ff mov $0xffffffea,%eax 841: 48 83 c4 18 add $0x18,%rsp 845: 5b pop %rbx 846: 41 5c pop %r12 848: 41 5d pop %r13 84a: 41 5e pop %r14 84c: 41 5f pop %r15 84e: 5d pop %rbp 84f: c3 retq 850: 48 83 c4 18 add $0x18,%rsp 854: b8 f2 ff ff ff mov $0xfffffff2,%eax 859: 5b pop %rbx 85a: 41 5c pop %r12 85c: 41 5d pop %r13 85e: 41 5e pop %r14 860: 41 5f pop %r15 862: 5d pop %rbp 863: c3 retq 864: 41 89 c1 mov %eax,%r9d 867: e9 76 ff ff ff jmpq 7e2 <__bitmap_parselist+0x102> 86c: 83 7d cc 01 cmpl $0x1,-0x34(%rbp) 870: 19 c0 sbb %eax,%eax 872: 83 e0 de and $0xffffffde,%eax 875: eb ca jmp 841 <__bitmap_parselist+0x161> 877: b8 de ff ff ff mov $0xffffffde,%eax 87c: eb c3 jmp 841 <__bitmap_parselist+0x161> 87e: 66 90 xchg %ax,%ax
0000000000000880 <bitmap_find_next_zero_area_off>: 880: 55 push %rbp 881: 4c 89 c0 mov %r8,%rax 884: 4d 01 c8 add %r9,%r8 887: 48 f7 d0 not %rax 88a: 48 89 e5 mov %rsp,%rbp 88d: 41 57 push %r15 88f: 41 56 push %r14 891: 41 55 push %r13 893: 41 54 push %r12 895: 41 89 cd mov %ecx,%r13d 898: 53 push %rbx 899: 49 89 fc mov %rdi,%r12 89c: 48 89 f3 mov %rsi,%rbx 89f: 48 83 ec 28 sub $0x28,%rsp 8a3: 4c 89 4d b8 mov %r9,-0x48(%rbp) 8a7: 48 89 45 c0 mov %rax,-0x40(%rbp) 8ab: 4c 89 45 c8 mov %r8,-0x38(%rbp) 8af: eb 17 jmp 8c8 <bitmap_find_next_zero_area_off+0x48> 8b1: 48 89 ca mov %rcx,%rdx 8b4: 4c 89 f6 mov %r14,%rsi 8b7: 4c 89 e7 mov %r12,%rdi 8ba: e8 00 00 00 00 callq 8bf <bitmap_find_next_zero_area_off+0x3f> 8bb: R_X86_64_PC32 find_next_bit-0x4 8bf: 49 39 c6 cmp %rax,%r14 8c2: 76 3d jbe 901 <bitmap_find_next_zero_area_off+0x81> 8c4: 48 8d 50 01 lea 0x1(%rax),%rdx 8c8: 48 89 de mov %rbx,%rsi 8cb: 4c 89 e7 mov %r12,%rdi 8ce: e8 00 00 00 00 callq 8d3 <bitmap_find_next_zero_area_off+0x53> 8cf: R_X86_64_PC32 find_next_zero_bit-0x4 8d3: 48 8b 75 c8 mov -0x38(%rbp),%rsi 8d7: 48 8d 0c 30 lea (%rax,%rsi,1),%rcx 8db: 48 23 4d c0 and -0x40(%rbp),%rcx 8df: 48 2b 4d b8 sub -0x48(%rbp),%rcx 8e3: 4e 8d 34 29 lea (%rcx,%r13,1),%r14 8e7: 49 89 cf mov %rcx,%r15 8ea: 4c 39 f3 cmp %r14,%rbx 8ed: 73 c2 jae 8b1 <bitmap_find_next_zero_area_off+0x31> 8ef: 48 83 c4 28 add $0x28,%rsp 8f3: 4c 89 f0 mov %r14,%rax 8f6: 5b pop %rbx 8f7: 41 5c pop %r12 8f9: 41 5d pop %r13 8fb: 41 5e pop %r14 8fd: 41 5f pop %r15 8ff: 5d pop %rbp 900: c3 retq 901: 48 83 c4 28 add $0x28,%rsp 905: 4c 89 f8 mov %r15,%rax 908: 5b pop %rbx 909: 41 5c pop %r12 90b: 41 5d pop %r13 90d: 41 5e pop %r14 90f: 41 5f pop %r15 911: 5d pop %rbp 912: c3 retq 913: 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 nopw %cs:0x0(%rax,%rax,1)
0000000000000920 <bitmap_parselist_user>: 920: 41 89 f1 mov %esi,%r9d 923: 65 48 8b 04 25 00 00 00 00 mov %gs:0x0,%rax 928: R_X86_64_32S cpu_tss+0x4 92c: 49 01 f9 add %rdi,%r9 92f: 4c 8b 80 18 c0 ff ff mov -0x3fe8(%rax),%r8 936: b8 f2 ff ff ff mov $0xfffffff2,%eax 93b: 72 1a jb 957 <bitmap_parselist_user+0x37> 93d: 4d 39 c8 cmp %r9,%r8 940: 72 15 jb 957 <bitmap_parselist_user+0x37> 942: 55 push %rbp 943: 41 89 c8 mov %ecx,%r8d 946: 48 89 d1 mov %rdx,%rcx 949: ba 01 00 00 00 mov $0x1,%edx 94e: 48 89 e5 mov %rsp,%rbp 951: e8 8a fd ff ff callq 6e0 <__bitmap_parselist> 956: 5d pop %rbp 957: f3 c3 repz retq 959: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
0000000000000960 <bitmap_print_to_pagebuf>: 960: 48 8d 86 fe 1f 00 00 lea 0x1ffe(%rsi),%rax 967: 49 89 f1 mov %rsi,%r9 96a: 48 25 00 f0 ff ff and $0xfffffffffffff000,%rax 970: 48 29 f0 sub %rsi,%rax 973: 48 83 f8 01 cmp $0x1,%rax 977: 48 89 c6 mov %rax,%rsi 97a: 7e 32 jle 9ae <bitmap_print_to_pagebuf+0x4e> 97c: 55 push %rbp 97d: 40 84 ff test %dil,%dil 980: 49 89 d0 mov %rdx,%r8 983: 48 89 e5 mov %rsp,%rbp 986: 74 13 je 99b <bitmap_print_to_pagebuf+0x3b> 988: 48 c7 c2 00 00 00 00 mov $0x0,%rdx 98b: R_X86_64_32S .rodata.str1.1 98f: 4c 89 cf mov %r9,%rdi 992: 31 c0 xor %eax,%eax 994: e8 00 00 00 00 callq 999 <bitmap_print_to_pagebuf+0x39> 995: R_X86_64_PC32 scnprintf-0x4 999: 5d pop %rbp 99a: c3 retq 99b: 48 c7 c2 00 00 00 00 mov $0x0,%rdx 99e: R_X86_64_32S .rodata.str1.1+0x7 9a2: 4c 89 cf mov %r9,%rdi 9a5: 31 c0 xor %eax,%eax 9a7: e8 00 00 00 00 callq 9ac <bitmap_print_to_pagebuf+0x4c> 9a8: R_X86_64_PC32 scnprintf-0x4 9ac: 5d pop %rbp 9ad: c3 retq 9ae: 31 c0 xor %eax,%eax 9b0: c3 retq 9b1: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0(%rax,%rax,1)
00000000000009c0 <bitmap_parselist>: 9c0: 55 push %rbp 9c1: 48 89 e5 mov %rsp,%rbp 9c4: 41 55 push %r13 9c6: 41 54 push %r12 9c8: 53 push %rbx 9c9: 49 89 f4 mov %rsi,%r12 9cc: 48 89 fb mov %rdi,%rbx 9cf: be 0a 00 00 00 mov $0xa,%esi 9d4: 41 89 d5 mov %edx,%r13d 9d7: 48 83 ec 08 sub $0x8,%rsp 9db: e8 00 00 00 00 callq 9e0 <bitmap_parselist+0x20> 9dc: R_X86_64_PC32 strchrnul-0x4 9e0: 48 29 d8 sub %rbx,%rax 9e3: 45 89 e8 mov %r13d,%r8d 9e6: 4c 89 e1 mov %r12,%rcx 9e9: 48 89 df mov %rbx,%rdi 9ec: 48 89 c6 mov %rax,%rsi 9ef: 31 d2 xor %edx,%edx 9f1: e8 ea fc ff ff callq 6e0 <__bitmap_parselist> 9f6: 48 83 c4 08 add $0x8,%rsp 9fa: 5b pop %rbx 9fb: 41 5c pop %r12 9fd: 41 5d pop %r13 9ff: 5d pop %rbp a00: c3 retq a01: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0(%rax,%rax,1)
0000000000000a10 <bitmap_onto>: a10: 48 39 f7 cmp %rsi,%rdi a13: 0f 84 87 00 00 00 je aa0 <bitmap_onto+0x90> a19: 55 push %rbp a1a: 48 89 e5 mov %rsp,%rbp a1d: 41 57 push %r15 a1f: 41 56 push %r14 a21: 41 55 push %r13 a23: 41 54 push %r12 a25: 41 89 cf mov %ecx,%r15d a28: 53 push %rbx a29: 49 89 f5 mov %rsi,%r13 a2c: 31 f6 xor %esi,%esi a2e: 48 89 fb mov %rdi,%rbx a31: 4d 89 fc mov %r15,%r12 a34: 48 83 ec 18 sub $0x18,%rsp a38: 48 89 55 c8 mov %rdx,-0x38(%rbp) a3c: 49 8d 57 3f lea 0x3f(%r15),%rdx a40: 48 c1 ea 06 shr $0x6,%rdx a44: 48 c1 e2 03 shl $0x3,%rdx a48: e8 00 00 00 00 callq a4d <bitmap_onto+0x3d> a49: R_X86_64_PC32 memset-0x4 a4d: 48 8b 7d c8 mov -0x38(%rbp),%rdi a51: 4c 89 fe mov %r15,%rsi a54: e8 00 00 00 00 callq a59 <bitmap_onto+0x49> a55: R_X86_64_PC32 find_first_bit-0x4 a59: 41 39 c7 cmp %eax,%r15d a5c: 89 c2 mov %eax,%edx a5e: 76 32 jbe a92 <bitmap_onto+0x82> a60: 45 31 f6 xor %r14d,%r14d a63: 44 89 f0 mov %r14d,%eax a66: 49 0f a3 45 00 bt %rax,0x0(%r13) a6b: 19 c0 sbb %eax,%eax a6d: 85 c0 test %eax,%eax a6f: 74 07 je a78 <bitmap_onto+0x68> a71: 89 d0 mov %edx,%eax a73: f0 48 0f ab 03 lock bts %rax,(%rbx) a78: 48 8b 7d c8 mov -0x38(%rbp),%rdi a7c: 83 c2 01 add $0x1,%edx a7f: 4c 89 fe mov %r15,%rsi a82: 41 83 c6 01 add $0x1,%r14d a86: e8 00 00 00 00 callq a8b <bitmap_onto+0x7b> a87: R_X86_64_PC32 find_next_bit-0x4 a8b: 41 39 c4 cmp %eax,%r12d a8e: 89 c2 mov %eax,%edx a90: 77 d1 ja a63 <bitmap_onto+0x53> a92: 48 83 c4 18 add $0x18,%rsp a96: 5b pop %rbx a97: 41 5c pop %r12 a99: 41 5d pop %r13 a9b: 41 5e pop %r14 a9d: 41 5f pop %r15 a9f: 5d pop %rbp aa0: f3 c3 repz retq aa2: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 nopw %cs:0x0(%rax,%rax,1)
0000000000000ab0 <bitmap_fold>: ab0: 48 39 f7 cmp %rsi,%rdi ab3: 74 76 je b2b <bitmap_fold+0x7b> ab5: 55 push %rbp ab6: 48 89 e5 mov %rsp,%rbp ab9: 41 57 push %r15 abb: 41 89 cf mov %ecx,%r15d abe: 41 56 push %r14 ac0: 41 55 push %r13 ac2: 49 89 f5 mov %rsi,%r13 ac5: 41 54 push %r12 ac7: 41 89 d4 mov %edx,%r12d aca: 49 8d 57 3f lea 0x3f(%r15),%rdx ace: 53 push %rbx acf: 31 f6 xor %esi,%esi ad1: 48 89 fb mov %rdi,%rbx ad4: 48 c1 ea 06 shr $0x6,%rdx ad8: 4d 89 fe mov %r15,%r14 adb: 48 83 ec 08 sub $0x8,%rsp adf: 48 c1 e2 03 shl $0x3,%rdx ae3: e8 00 00 00 00 callq ae8 <bitmap_fold+0x38> ae4: R_X86_64_PC32 memset-0x4 ae8: 4c 89 fe mov %r15,%rsi aeb: 4c 89 ef mov %r13,%rdi aee: e8 00 00 00 00 callq af3 <bitmap_fold+0x43> aef: R_X86_64_PC32 find_first_bit-0x4 af3: 41 39 c7 cmp %eax,%r15d af6: 89 c1 mov %eax,%ecx af8: 76 23 jbe b1d <bitmap_fold+0x6d> afa: 89 c8 mov %ecx,%eax afc: 31 d2 xor %edx,%edx afe: 41 f7 f4 div %r12d b01: 89 d2 mov %edx,%edx b03: f0 48 0f ab 13 lock bts %rdx,(%rbx) b08: 8d 51 01 lea 0x1(%rcx),%edx b0b: 4c 89 fe mov %r15,%rsi b0e: 4c 89 ef mov %r13,%rdi b11: e8 00 00 00 00 callq b16 <bitmap_fold+0x66> b12: R_X86_64_PC32 find_next_bit-0x4 b16: 41 39 c6 cmp %eax,%r14d b19: 89 c1 mov %eax,%ecx b1b: 77 dd ja afa <bitmap_fold+0x4a> b1d: 48 83 c4 08 add $0x8,%rsp b21: 5b pop %rbx b22: 41 5c pop %r12 b24: 41 5d pop %r13 b26: 41 5e pop %r14 b28: 41 5f pop %r15 b2a: 5d pop %rbp b2b: f3 c3 repz retq b2d: 0f 1f 00 nopl (%rax)
0000000000000b30 <__bitmap_parse>: b30: 55 push %rbp b31: 48 89 e5 mov %rsp,%rbp b34: 41 57 push %r15 b36: 41 56 push %r14 b38: 41 55 push %r13 b3a: 41 54 push %r12 b3c: 41 89 f5 mov %esi,%r13d b3f: 53 push %rbx b40: 31 f6 xor %esi,%esi b42: 45 31 ff xor %r15d,%r15d b45: 48 83 ec 38 sub $0x38,%rsp b49: 89 55 c8 mov %edx,-0x38(%rbp) b4c: 44 89 c2 mov %r8d,%edx b4f: 89 55 b0 mov %edx,-0x50(%rbp) b52: 48 83 c2 3f add $0x3f,%rdx b56: 48 89 7d c0 mov %rdi,-0x40(%rbp) b5a: 48 c1 ea 06 shr $0x6,%rdx b5e: 48 89 cf mov %rcx,%rdi b61: 48 89 4d a8 mov %rcx,-0x58(%rbp) b65: 48 c1 e2 03 shl $0x3,%rdx b69: e8 00 00 00 00 callq b6e <__bitmap_parse+0x3e> b6a: R_X86_64_PC32 memset-0x4 b6e: 4c 8b 4d c0 mov -0x40(%rbp),%r9 b72: 44 8b 55 c8 mov -0x38(%rbp),%r10d b76: 44 89 f8 mov %r15d,%eax b79: c7 45 b4 00 00 00 00 movl $0x0,-0x4c(%rbp) b80: c7 45 b8 00 00 00 00 movl $0x0,-0x48(%rbp) b87: 31 d2 xor %edx,%edx b89: 41 89 c6 mov %eax,%r14d b8c: 4d 89 cf mov %r9,%r15 b8f: 45 85 ed test %r13d,%r13d b92: 0f 84 e8 00 00 00 je c80 <__bitmap_parse+0x150> b98: 45 31 e4 xor %r12d,%r12d b9b: c7 45 bc 00 00 00 00 movl $0x0,-0x44(%rbp) ba2: 44 89 e0 mov %r12d,%eax ba5: 4d 89 cc mov %r9,%r12 ba8: e9 89 00 00 00 jmpq c36 <__bitmap_parse+0x106> bad: 49 8d 7f 01 lea 0x1(%r15),%rdi bb1: 31 c9 xor %ecx,%ecx bb3: 90 nop bb4: 90 nop bb5: 90 nop bb6: 41 8a 1f mov (%r15),%bl bb9: 90 nop bba: 90 nop bbb: 90 nop bbc: 85 c9 test %ecx,%ecx bbe: 0f be db movsbl %bl,%ebx bc1: 0f 85 cd 00 00 00 jne c94 <__bitmap_parse+0x164> bc7: 49 89 ff mov %rdi,%r15 bca: 0f b6 cb movzbl %bl,%ecx bcd: 41 83 ed 01 sub $0x1,%r13d bd1: 0f b6 89 00 00 00 00 movzbl 0x0(%rcx),%ecx bd4: R_X86_64_32S _ctype bd8: f6 c1 20 test $0x20,%cl bdb: 75 52 jne c2f <__bitmap_parse+0xff> bdd: 85 db test %ebx,%ebx bdf: 74 15 je bf6 <__bitmap_parse+0xc6> be1: 45 85 f6 test %r14d,%r14d be4: 74 10 je bf6 <__bitmap_parse+0xc6> be6: 0f b6 d2 movzbl %dl,%edx be9: f6 82 00 00 00 00 20 testb $0x20,0x0(%rdx) beb: R_X86_64_32S _ctype bf0: 0f 85 8a 00 00 00 jne c80 <__bitmap_parse+0x150> bf6: 83 fb 2c cmp $0x2c,%ebx bf9: 74 4f je c4a <__bitmap_parse+0x11a> bfb: 85 db test %ebx,%ebx bfd: 74 4b je c4a <__bitmap_parse+0x11a> bff: 83 e1 44 and $0x44,%ecx c02: 74 7c je c80 <__bitmap_parse+0x150> c04: a9 00 00 00 f0 test $0xf0000000,%eax c09: 0f 85 f3 00 00 00 jne d02 <__bitmap_parse+0x1d2> c0f: c1 e0 04 shl $0x4,%eax c12: 89 df mov %ebx,%edi c14: 44 89 55 c0 mov %r10d,-0x40(%rbp) c18: 89 45 c8 mov %eax,-0x38(%rbp) c1b: 41 83 c6 01 add $0x1,%r14d c1f: e8 00 00 00 00 callq c24 <__bitmap_parse+0xf4> c20: R_X86_64_PC32 hex_to_bin-0x4 c24: 83 45 bc 01 addl $0x1,-0x44(%rbp) c28: 0b 45 c8 or -0x38(%rbp),%eax c2b: 44 8b 55 c0 mov -0x40(%rbp),%r10d c2f: 45 85 ed test %r13d,%r13d c32: 74 16 je c4a <__bitmap_parse+0x11a> c34: 89 da mov %ebx,%edx c36: 45 85 d2 test %r10d,%r10d c39: 0f 85 6e ff ff ff jne bad <__bitmap_parse+0x7d> c3f: 41 0f be 1c 24 movsbl (%r12),%ebx c44: 49 83 c4 01 add $0x1,%r12 c48: eb 80 jmp bca <__bitmap_parse+0x9a> c4a: 8b 55 bc mov -0x44(%rbp),%edx c4d: 4d 89 e1 mov %r12,%r9 c50: 41 89 c4 mov %eax,%r12d c53: 85 d2 test %edx,%edx c55: 74 29 je c80 <__bitmap_parse+0x150> c57: 85 c0 test %eax,%eax c59: 75 4d jne ca8 <__bitmap_parse+0x178> c5b: 8b 45 b8 mov -0x48(%rbp),%eax c5e: 85 c0 test %eax,%eax c60: 75 46 jne ca8 <__bitmap_parse+0x178> c62: c7 45 b8 00 00 00 00 movl $0x0,-0x48(%rbp) c69: 83 fb 2c cmp $0x2c,%ebx c6c: ba 2c 00 00 00 mov $0x2c,%edx c71: 75 09 jne c7c <__bitmap_parse+0x14c> c73: 45 85 ed test %r13d,%r13d c76: 0f 85 13 ff ff ff jne b8f <__bitmap_parse+0x5f> c7c: 31 c0 xor %eax,%eax c7e: eb 05 jmp c85 <__bitmap_parse+0x155> c80: b8 ea ff ff ff mov $0xffffffea,%eax c85: 48 83 c4 38 add $0x38,%rsp c89: 5b pop %rbx c8a: 41 5c pop %r12 c8c: 41 5d pop %r13 c8e: 41 5e pop %r14 c90: 41 5f pop %r15 c92: 5d pop %rbp c93: c3 retq c94: 48 83 c4 38 add $0x38,%rsp c98: b8 f2 ff ff ff mov $0xfffffff2,%eax c9d: 5b pop %rbx c9e: 41 5c pop %r12 ca0: 41 5d pop %r13 ca2: 41 5e pop %r14 ca4: 41 5f pop %r15 ca6: 5d pop %rbp ca7: c3 retq ca8: 48 8b 7d a8 mov -0x58(%rbp),%rdi cac: 8b 4d b0 mov -0x50(%rbp),%ecx caf: ba 20 00 00 00 mov $0x20,%edx cb4: 44 89 55 c0 mov %r10d,-0x40(%rbp) cb8: 4c 89 4d c8 mov %r9,-0x38(%rbp) cbc: 48 89 fe mov %rdi,%rsi cbf: e8 00 00 00 00 callq cc4 <__bitmap_parse+0x194> cc0: R_X86_64_PC32 __bitmap_shift_left-0x4 cc4: 48 8b 7d a8 mov -0x58(%rbp),%rdi cc8: 83 45 b8 01 addl $0x1,-0x48(%rbp) ccc: 44 89 e0 mov %r12d,%eax ccf: 4c 8b 4d c8 mov -0x38(%rbp),%r9 cd3: 44 8b 55 c0 mov -0x40(%rbp),%r10d cd7: 48 09 07 or %rax,(%rdi) cda: b8 20 00 00 00 mov $0x20,%eax cdf: 8b 7d b8 mov -0x48(%rbp),%edi ce2: 83 ff 01 cmp $0x1,%edi ce5: 75 0c jne cf3 <__bitmap_parse+0x1c3> ce7: b8 ff ff ff ff mov $0xffffffff,%eax cec: 41 0f bd c4 bsr %r12d,%eax cf0: 83 c0 01 add $0x1,%eax cf3: 01 45 b4 add %eax,-0x4c(%rbp) cf6: 8b 7d b4 mov -0x4c(%rbp),%edi cf9: 39 7d b0 cmp %edi,-0x50(%rbp) cfc: 0f 8d 67 ff ff ff jge c69 <__bitmap_parse+0x139> d02: 48 83 c4 38 add $0x38,%rsp d06: b8 b5 ff ff ff mov $0xffffffb5,%eax d0b: 5b pop %rbx d0c: 41 5c pop %r12 d0e: 41 5d pop %r13 d10: 41 5e pop %r14 d12: 41 5f pop %r15 d14: 5d pop %rbp d15: c3 retq d16: 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:0x0(%rax,%rax,1)
0000000000000d20 <bitmap_parse_user>: d20: 41 89 f1 mov %esi,%r9d d23: 65 48 8b 04 25 00 00 00 00 mov %gs:0x0,%rax d28: R_X86_64_32S cpu_tss+0x4 d2c: 49 01 f9 add %rdi,%r9 d2f: 4c 8b 80 18 c0 ff ff mov -0x3fe8(%rax),%r8 d36: b8 f2 ff ff ff mov $0xfffffff2,%eax d3b: 72 1a jb d57 <bitmap_parse_user+0x37> d3d: 4d 39 c8 cmp %r9,%r8 d40: 72 15 jb d57 <bitmap_parse_user+0x37> d42: 55 push %rbp d43: 41 89 c8 mov %ecx,%r8d d46: 48 89 d1 mov %rdx,%rcx d49: ba 01 00 00 00 mov $0x1,%edx d4e: 48 89 e5 mov %rsp,%rbp d51: e8 00 00 00 00 callq d56 <bitmap_parse_user+0x36> d52: R_X86_64_PC32 __bitmap_parse-0x4 d56: 5d pop %rbp d57: f3 c3 repz retq d59: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
0000000000000d60 <__bitmap_weight>: d60: 89 f1 mov %esi,%ecx d62: 55 push %rbp d63: 49 89 fa mov %rdi,%r10 d66: c1 e9 06 shr $0x6,%ecx d69: 85 c9 test %ecx,%ecx d6b: 48 89 e5 mov %rsp,%rbp d6e: 74 52 je dc2 <__bitmap_weight+0x62> d70: 8d 41 ff lea -0x1(%rcx),%eax d73: 48 89 fa mov %rdi,%rdx d76: 45 31 c0 xor %r8d,%r8d d79: 4c 8d 0c c5 08 00 00 00 lea 0x8(,%rax,8),%r9 d81: 49 01 f9 add %rdi,%r9 d84: 48 8b 3a mov (%rdx),%rdi d87: 48 83 c2 08 add $0x8,%rdx d8b: e8 00 00 00 00 callq d90 <__bitmap_weight+0x30> d8c: R_X86_64_PC32 __sw_hweight64-0x4 d90: 41 01 c0 add %eax,%r8d d93: 4c 39 ca cmp %r9,%rdx d96: 75 ec jne d84 <__bitmap_weight+0x24> d98: 40 f6 c6 3f test $0x3f,%sil d9c: 44 89 c0 mov %r8d,%eax d9f: 74 1f je dc0 <__bitmap_weight+0x60> da1: f7 de neg %esi da3: 89 ca mov %ecx,%edx da5: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax dac: 89 f1 mov %esi,%ecx dae: 48 d3 e8 shr %cl,%rax db1: 49 23 04 d2 and (%r10,%rdx,8),%rax db5: 48 89 c7 mov %rax,%rdi db8: e8 00 00 00 00 callq dbd <__bitmap_weight+0x5d> db9: R_X86_64_PC32 __sw_hweight64-0x4 dbd: 44 01 c0 add %r8d,%eax dc0: 5d pop %rbp dc1: c3 retq dc2: 85 f6 test %esi,%esi dc4: 74 19 je ddf <__bitmap_weight+0x7f> dc6: f7 de neg %esi dc8: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax dcf: 45 31 c0 xor %r8d,%r8d dd2: 89 f1 mov %esi,%ecx dd4: 48 d3 e8 shr %cl,%rax dd7: 49 23 02 and (%r10),%rax dda: 48 89 c7 mov %rax,%rdi ddd: eb d9 jmp db8 <__bitmap_weight+0x58> ddf: 31 c0 xor %eax,%eax de1: 5d pop %rbp de2: c3 retq de3: 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 nopw %cs:0x0(%rax,%rax,1)
0000000000000df0 <bitmap_pos_to_ord>: df0: 39 d6 cmp %edx,%esi df2: 73 17 jae e0b <bitmap_pos_to_ord+0x1b> df4: 89 f0 mov %esi,%eax df6: 48 0f a3 07 bt %rax,(%rdi) dfa: 19 c0 sbb %eax,%eax dfc: 85 c0 test %eax,%eax dfe: 74 0b je e0b <bitmap_pos_to_ord+0x1b> e00: 55 push %rbp e01: 48 89 e5 mov %rsp,%rbp e04: e8 00 00 00 00 callq e09 <bitmap_pos_to_ord+0x19> e05: R_X86_64_PC32 __bitmap_weight-0x4 e09: 5d pop %rbp e0a: c3 retq e0b: b8 ff ff ff ff mov $0xffffffff,%eax e10: c3 retq e11: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0(%rax,%rax,1)
0000000000000e20 <bitmap_ord_to_pos>: e20: 55 push %rbp e21: 48 89 e5 mov %rsp,%rbp e24: 41 56 push %r14 e26: 41 55 push %r13 e28: 41 54 push %r12 e2a: 41 89 d4 mov %edx,%r12d e2d: 53 push %rbx e2e: 41 89 f6 mov %esi,%r14d e31: 4c 89 e6 mov %r12,%rsi e34: 49 89 fd mov %rdi,%r13 e37: e8 00 00 00 00 callq e3c <bitmap_ord_to_pos+0x1c> e38: R_X86_64_PC32 find_first_bit-0x4 e3c: 41 39 c4 cmp %eax,%r12d e3f: 4c 89 e3 mov %r12,%rbx e42: 89 c1 mov %eax,%ecx e44: 77 1a ja e60 <bitmap_ord_to_pos+0x40> e46: eb 1d jmp e65 <bitmap_ord_to_pos+0x45> e48: 8d 51 01 lea 0x1(%rcx),%edx e4b: 4c 89 e6 mov %r12,%rsi e4e: 4c 89 ef mov %r13,%rdi e51: 41 83 ee 01 sub $0x1,%r14d e55: e8 00 00 00 00 callq e5a <bitmap_ord_to_pos+0x3a> e56: R_X86_64_PC32 find_next_bit-0x4 e5a: 39 c3 cmp %eax,%ebx e5c: 89 c1 mov %eax,%ecx e5e: 76 05 jbe e65 <bitmap_ord_to_pos+0x45> e60: 45 85 f6 test %r14d,%r14d e63: 75 e3 jne e48 <bitmap_ord_to_pos+0x28> e65: 5b pop %rbx e66: 89 c8 mov %ecx,%eax e68: 41 5c pop %r12 e6a: 41 5d pop %r13 e6c: 41 5e pop %r14 e6e: 5d pop %rbp e6f: c3 retq
0000000000000e70 <bitmap_remap>: e70: 48 39 f7 cmp %rsi,%rdi e73: 0f 84 cd 00 00 00 je f46 <bitmap_remap+0xd6> e79: 55 push %rbp e7a: 48 89 e5 mov %rsp,%rbp e7d: 41 57 push %r15 e7f: 41 56 push %r14 e81: 41 55 push %r13 e83: 41 54 push %r12 e85: 45 89 c7 mov %r8d,%r15d e88: 53 push %rbx e89: 49 89 ce mov %rcx,%r14 e8c: 49 89 f5 mov %rsi,%r13 e8f: 31 f6 xor %esi,%esi e91: 49 89 fc mov %rdi,%r12 e94: 4c 89 fb mov %r15,%rbx e97: 48 83 ec 28 sub $0x28,%rsp e9b: 48 89 55 c8 mov %rdx,-0x38(%rbp) e9f: 49 8d 57 3f lea 0x3f(%r15),%rdx ea3: 48 89 4d b8 mov %rcx,-0x48(%rbp) ea7: 48 c1 ea 06 shr $0x6,%rdx eab: 48 c1 e2 03 shl $0x3,%rdx eaf: e8 00 00 00 00 callq eb4 <bitmap_remap+0x44> eb0: R_X86_64_PC32 memset-0x4 eb4: 4c 89 f7 mov %r14,%rdi eb7: 44 89 fe mov %r15d,%esi eba: e8 00 00 00 00 callq ebf <bitmap_remap+0x4f> ebb: R_X86_64_PC32 __bitmap_weight-0x4 ebf: 4c 89 fe mov %r15,%rsi ec2: 4c 89 ef mov %r13,%rdi ec5: 89 45 c0 mov %eax,-0x40(%rbp) ec8: e8 00 00 00 00 callq ecd <bitmap_remap+0x5d> ec9: R_X86_64_PC32 find_first_bit-0x4 ecd: 41 39 c7 cmp %eax,%r15d ed0: 41 89 c6 mov %eax,%r14d ed3: 76 63 jbe f38 <bitmap_remap+0xc8> ed5: 8b 45 c0 mov -0x40(%rbp),%eax ed8: 85 c0 test %eax,%eax eda: 0f 94 45 c7 sete -0x39(%rbp) ede: eb 1f jmp eff <bitmap_remap+0x8f> ee0: 44 89 f0 mov %r14d,%eax ee3: f0 49 0f ab 04 24 lock bts %rax,(%r12) ee9: 41 8d 56 01 lea 0x1(%r14),%edx eed: 4c 89 fe mov %r15,%rsi ef0: 4c 89 ef mov %r13,%rdi ef3: e8 00 00 00 00 callq ef8 <bitmap_remap+0x88> ef4: R_X86_64_PC32 find_next_bit-0x4 ef8: 39 c3 cmp %eax,%ebx efa: 41 89 c6 mov %eax,%r14d efd: 76 39 jbe f38 <bitmap_remap+0xc8> eff: 48 8b 7d c8 mov -0x38(%rbp),%rdi f03: 89 da mov %ebx,%edx f05: 44 89 f6 mov %r14d,%esi f08: e8 e3 fe ff ff callq df0 <bitmap_pos_to_ord> f0d: 89 c2 mov %eax,%edx f0f: c1 ea 1f shr $0x1f,%edx f12: 84 d2 test %dl,%dl f14: 75 ca jne ee0 <bitmap_remap+0x70> f16: 80 7d c7 00 cmpb $0x0,-0x39(%rbp) f1a: 75 c4 jne ee0 <bitmap_remap+0x70> f1c: 31 d2 xor %edx,%edx f1e: 48 8b 7d b8 mov -0x48(%rbp),%rdi f22: f7 75 c0 divl -0x40(%rbp) f25: 89 d6 mov %edx,%esi f27: 89 da mov %ebx,%edx f29: e8 00 00 00 00 callq f2e <bitmap_remap+0xbe> f2a: R_X86_64_PC32 bitmap_ord_to_pos-0x4 f2e: 89 c0 mov %eax,%eax f30: f0 49 0f ab 04 24 lock bts %rax,(%r12) f36: eb b1 jmp ee9 <bitmap_remap+0x79> f38: 48 83 c4 28 add $0x28,%rsp f3c: 5b pop %rbx f3d: 41 5c pop %r12 f3f: 41 5d pop %r13 f41: 41 5e pop %r14 f43: 41 5f pop %r15 f45: 5d pop %rbp f46: f3 c3 repz retq f48: 0f 1f 84 00 00 00 00 00 nopl 0x0(%rax,%rax,1)
0000000000000f50 <bitmap_bitremap>: f50: 55 push %rbp f51: 48 89 e5 mov %rsp,%rbp f54: 41 57 push %r15 f56: 41 56 push %r14 f58: 41 55 push %r13 f5a: 41 54 push %r12 f5c: 49 89 f7 mov %rsi,%r15 f5f: 53 push %rbx f60: 41 89 cc mov %ecx,%r12d f63: 89 ce mov %ecx,%esi f65: 89 fb mov %edi,%ebx f67: 48 89 d7 mov %rdx,%rdi f6a: 49 89 d6 mov %rdx,%r14 f6d: 48 83 ec 08 sub $0x8,%rsp f71: e8 00 00 00 00 callq f76 <bitmap_bitremap+0x26> f72: R_X86_64_PC32 __bitmap_weight-0x4 f76: 44 89 e2 mov %r12d,%edx f79: 41 89 c5 mov %eax,%r13d f7c: 89 de mov %ebx,%esi f7e: 4c 89 ff mov %r15,%rdi f81: e8 6a fe ff ff callq df0 <bitmap_pos_to_ord> f86: 45 85 ed test %r13d,%r13d f89: 74 2b je fb6 <bitmap_bitremap+0x66> f8b: 89 c6 mov %eax,%esi f8d: c1 e8 1f shr $0x1f,%eax f90: 84 c0 test %al,%al f92: 75 22 jne fb6 <bitmap_bitremap+0x66> f94: 89 f0 mov %esi,%eax f96: 4c 89 f7 mov %r14,%rdi f99: 99 cltd f9a: 41 f7 fd idiv %r13d f9d: 89 d6 mov %edx,%esi f9f: 44 89 e2 mov %r12d,%edx fa2: e8 00 00 00 00 callq fa7 <bitmap_bitremap+0x57> fa3: R_X86_64_PC32 bitmap_ord_to_pos-0x4 fa7: 48 83 c4 08 add $0x8,%rsp fab: 5b pop %rbx fac: 41 5c pop %r12 fae: 41 5d pop %r13 fb0: 41 5e pop %r14 fb2: 41 5f pop %r15 fb4: 5d pop %rbp fb5: c3 retq fb6: 48 83 c4 08 add $0x8,%rsp fba: 89 d8 mov %ebx,%eax fbc: 5b pop %rbx fbd: 41 5c pop %r12 fbf: 41 5d pop %r13 fc1: 41 5e pop %r14 fc3: 41 5f pop %r15 fc5: 5d pop %rbp fc6: c3 retq
Disassembly of section .altinstr_replacement:
0000000000000000 <.altinstr_replacement>: 0: 0f 01 (bad) 2: cb lret 3: 0f 01 (bad) 5: ca 0f 01 lret $0x10f 8: cb lret 9: 0f 01 (bad) b: ca f3 48 lret $0x48f3 e: 0f b8 (bad) 10: c7 (bad) 11: f3 48 0f b8 c7 popcnt %rdi,%rax
Disassembly of section .fixup:
0000000000000000 <.fixup>: 0: ba f2 ff ff ff mov $0xfffffff2,%edx 5: 30 c0 xor %al,%al 7: e9 00 00 00 00 jmpq c <.fixup+0xc> 8: R_X86_64_PC32 .text+0x747 c: b9 f2 ff ff ff mov $0xfffffff2,%ecx 11: 30 db xor %bl,%bl 13: e9 00 00 00 00 jmpq 18 <__kstrtab_bitmap_release_region+0x1> 14: R_X86_64_PC32 .text+0xbb5 Behan Webster (19): kbuild-clang-detect kbuild, LLVMLinux: Add better clang cross build support kbuild, LLVMLinux: Add more compiler options for clang kbuild, LLVMLinux: Fix asm-offset generation to work with clang mpi, LLVMLinux: Fix ASM for clang in mpi mpi, LLVMLinux: Remove use of extern inline from lib/mpi mpi, LLVMLinux: Don't use __attribute__ ((mode(QI))) for lib/mpi mpi, LLVMLinux: Remove unused headers from mpi-internal.h md, sysfs, LLVMLinux: Remove nested function from bcache sysfs scsi, megaraid, sas, LLVMLinux: Remove inline DO-NOT-UPSTREAM scsi, osd, LLVMLinux: Remove __weak attribute exofs, LLVMLinux: Remove VLAIS from exofs md, raid10, LLVMLinux: Remove VLAIS from raid10 driver fs, nfs, LLVMLinux: Remove VLAIS from nfs net, wimax, i2400, LLVMLinux: Remove VLAIS from wimax i2400m driver Mark inline functions as __maybe_unused LLVMLinux: use -Oz instead of -Os when using clang makefile-print kbuild: LLVMLinux: Clang doesn't support the gcc flags set by CONFIG_ARCH_HWEIGHT_CFLAGS
Jan-Simon Möller (3): x86: LLVMLinux: Add option for clang in export of memcpy. WORKAROUND DO-NOT-UPSTREAM x86, boot: Work around clang PR18415. Revert "x86: Align jump targets to 1-byte boundaries"
Mark Charlebois (3): Kbuild: LLVMLinux: Disable the use of the Integrated Assembler when compiling with Clang fs, LLVMLinux: Remove warning from COMPATIBLE_IOCTL kbuild, LLVMLinux: Add -Werror to cc-option to support clang
Sedat Dilek (2): Revert "ppp: fix device unregistration upon netns deletion" Merge branch 'for-4.2/net-fixes' into 4.2.0-2-llvmlinux-small
Vinícius Tinti (3): kbuild: LLVMLinux: Add support to generate LLVM bitcode files apparmor: LLVMLinux: Remove VLAIS DO-NOT-UPSTREAM xen, LLVMLinux: Remove VLAIS from xen mmu
.gitignore | 1 + Kbuild | 8 ++-- Makefile | 59 +++++++++++++++++------ arch/x86/Makefile | 6 --- arch/x86/boot/memory.c | 7 ++- arch/x86/boot/string.h | 2 + arch/x86/um/ksyms.c | 2 +- arch/x86/xen/mmu.c | 35 +++++++------- drivers/md/bcache/sysfs.c | 10 ++-- drivers/md/raid10.c | 16 +++---- drivers/net/ppp/ppp_generic.c | 78 ++++++++++++++----------------- drivers/net/wimax/i2400m/fw.c | 2 +- drivers/scsi/megaraid/megaraid_sas_base.c | 2 +- fs/compat_ioctl.c | 2 +- fs/exofs/Kconfig | 2 +- fs/exofs/super.c | 22 ++++----- fs/nfs/Kconfig | 2 +- fs/nfs/objlayout/objio_osd.c | 5 +- include/linux/compiler-gcc.h | 10 ++-- include/linux/kbuild.h | 6 +-- include/scsi/osd_types.h | 2 +- lib/Makefile | 2 + lib/mpi/Makefile | 2 + lib/mpi/longlong.h | 9 ++-- lib/mpi/mpi-inline.h | 2 +- lib/mpi/mpi-internal.h | 10 +--- scripts/Kbuild.include | 6 +-- scripts/Makefile.build | 14 ++++++ scripts/mod/Makefile | 8 ++-- security/apparmor/crypto.c | 17 +++---- 30 files changed, 188 insertions(+), 161 deletions(-)
diff --git a/.gitignore b/.gitignore index 4ad4a98b884b..bbd5f34bd5c5 100644 --- a/.gitignore +++ b/.gitignore @@ -33,6 +33,7 @@ *.lzo *.patch *.gcno +*.ll modules.builtin Module.symvers *.dwo diff --git a/Kbuild b/Kbuild index f55cefd9bf29..0bbb86358942 100644 --- a/Kbuild +++ b/Kbuild @@ -8,10 +8,10 @@ # Default sed regexp - multiline due to syntax constraints define sed-y - "/^->/{s:->#\(.*\):/* \1 */:; \ - s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \ - s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \ - s:->::; p;}" + "/^@->/{s:@->#\(.*\):/* \1 */:; \ + s:^@->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \ + s:^@->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \ + s:@->::; p;}" endef # Use filechk to avoid rebuilds when a header changes, but the resulting file diff --git a/Makefile b/Makefile index c3615937df38..0e333fd142a1 100644 --- a/Makefile +++ b/Makefile @@ -302,7 +302,7 @@ HOSTCXXFLAGS = -O2 ifeq ($(shell $(HOSTCC) -v 2>&1 | grep -c "clang version"), 1) HOSTCFLAGS += -Wno-unused-value -Wno-unused-parameter \ - -Wno-missing-field-initializers -fno-delete-null-pointer-checks + -Wno-missing-field-initializers endif # Decide whether to build built-in, modular, or both. @@ -366,6 +366,26 @@ CFLAGS_KERNEL = AFLAGS_KERNEL = CFLAGS_GCOV = -fprofile-arcs -ftest-coverage +ifeq ($(shell $(CC) -v 2>&1 | grep -c "clang version"), 1) +COMPILER := clang +else +COMPILER := gcc +endif +export COMPILER + +ifeq ($(COMPILER),clang) +ifneq ($(CROSS_COMPILE),) +CLANG_TARGET := -target $(notdir $(CROSS_COMPILE:%-=%)) +GCC_TOOLCHAIN := $(dir $(CROSS_COMPILE)) +endif +ifneq ($(GCC_TOOLCHAIN),) +CLANG_GCC_TC := -gcc-toolchain $(GCC_TOOLCHAIN) +endif +ifneq ($(CLANG_ENABLE_IA),1) +CLANG_IA_FLAG = -no-integrated-as +endif +CLANG_FLAGS := $(CLANG_TARGET) $(CLANG_GCC_TC) $(CLANG_IA_FLAG) +endif # Use USERINCLUDE when you must reference the UAPI directories only. USERINCLUDE := \ @@ -391,11 +411,11 @@ KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ -fno-strict-aliasing -fno-common \ -Werror-implicit-function-declaration \ -Wno-format-security \ - -std=gnu89 + -std=gnu89 $(CLANG_FLAGS) KBUILD_AFLAGS_KERNEL := KBUILD_CFLAGS_KERNEL := -KBUILD_AFLAGS := -D__ASSEMBLY__ +KBUILD_AFLAGS := -D__ASSEMBLY__ $(CLANG_FLAGS) KBUILD_AFLAGS_MODULE := -DMODULE KBUILD_CFLAGS_MODULE := -DMODULE KBUILD_LDFLAGS_MODULE := -T $(srctree)/scripts/module-common.lds @@ -604,10 +624,9 @@ ARCH_AFLAGS := ARCH_CFLAGS := include arch/$(SRCARCH)/Makefile -KBUILD_CFLAGS += $(call cc-option,-fno-delete-null-pointer-checks,) - ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE -KBUILD_CFLAGS += -Os $(call cc-disable-warning,maybe-uninitialized,) +KBUILD_CFLAGS += $(call cc-option,-Oz,-Os) +KBUILD_CFLAGS += $(call cc-disable-warning,maybe-uninitialized,) else KBUILD_CFLAGS += -O2 endif @@ -666,28 +685,26 @@ endif endif KBUILD_CFLAGS += $(stackp-flag) -ifeq ($(shell $(CC) -v 2>&1 | grep -c "clang version"), 1) -COMPILER := clang -else -COMPILER := gcc -endif -export COMPILER - ifeq ($(COMPILER),clang) KBUILD_CPPFLAGS += $(call cc-option,-Qunused-arguments,) -KBUILD_CPPFLAGS += $(call cc-option,-Wno-unknown-warning-option,) KBUILD_CFLAGS += $(call cc-disable-warning, unused-variable) KBUILD_CFLAGS += $(call cc-disable-warning, format-invalid-specifier) KBUILD_CFLAGS += $(call cc-disable-warning, gnu) +KBUILD_CFLAGS += -Wno-asm-operand-widths +KBUILD_CFLAGS += -Wno-initializer-overrides +KBUILD_CFLAGS += -fno-builtin + # Quiet clang warning: comparison of unsigned expression < 0 is always false KBUILD_CFLAGS += $(call cc-disable-warning, tautological-compare) + # CLANG uses a _MergedGlobals as optimization, but this breaks modpost, as the # source of a reference will be _MergedGlobals and not on of the whitelisted names. # See modpost pattern 2 KBUILD_CFLAGS += $(call cc-option, -mno-global-merge,) -KBUILD_CFLAGS += $(call cc-option, -fcatch-undefined-behavior) + else +KBUILD_CFLAGS += $(call cc-option,-fno-delete-null-pointer-checks,) # This warning generated too much noise in a regular build. # Use make W=1 to enable this warning (see scripts/Makefile.build) KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable) @@ -1263,6 +1280,8 @@ help: @echo ' (default: $$(INSTALL_MOD_PATH)/lib/firmware)' @echo ' dir/ - Build all files in dir and below' @echo ' dir/file.[oisS] - Build specified target only' + @echo ' dir/file.ll - Build the LLVM bitcode file' + @echo ' (requires compiler support for LLVM bitcode generation)' @echo ' dir/file.lst - Build specified mixed source/assembly target only' @echo ' (requires a recent binutils and recent build (System.map))' @echo ' dir/file.ko - Build module including final link' @@ -1539,6 +1558,10 @@ endif $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@) %.symtypes: %.c prepare scripts FORCE $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@) +%.ll: %.c prepare scripts FORCE + $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@) +%.ll: %.S prepare scripts FORCE + $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@) # Modules /: prepare scripts FORCE @@ -1594,3 +1617,9 @@ FORCE: # Declare the contents of the .PHONY variable as phony. We keep that # information in a variable so we can use it in if_changed and friends. .PHONY: $(PHONY) + +print-%: + @echo '$*=$($*)' + @echo ' origin = $(origin $*)' + @echo ' flavor = $(flavor $*)' + @echo ' value = $(value $*)' diff --git a/arch/x86/Makefile b/arch/x86/Makefile index 118e6debc483..4fea5e90c941 100644 --- a/arch/x86/Makefile +++ b/arch/x86/Makefile @@ -77,12 +77,6 @@ else KBUILD_AFLAGS += -m64 KBUILD_CFLAGS += -m64 - # Align jump targets to 1 byte, not the default 16 bytes: - KBUILD_CFLAGS += -falign-jumps=1 - - # Pack loops tightly as well: - KBUILD_CFLAGS += -falign-loops=1 - # Don't autogenerate traditional x87 instructions KBUILD_CFLAGS += $(call cc-option,-mno-80387) KBUILD_CFLAGS += $(call cc-option,-mno-fp-ret-in-387) diff --git a/arch/x86/boot/memory.c b/arch/x86/boot/memory.c index db75d07c3645..7af65046dfad 100644 --- a/arch/x86/boot/memory.c +++ b/arch/x86/boot/memory.c @@ -63,8 +63,13 @@ static int detect_memory_e820(void) count = 0; break; } - +#ifdef __clang__ + /* PR18415 */ + memcpy(desc, &buf, sizeof(*desc)); + desc++; +#else *desc++ = buf; +#endif count++; } while (ireg.ebx && count < ARRAY_SIZE(boot_params.e820_map)); diff --git a/arch/x86/boot/string.h b/arch/x86/boot/string.h index 725e820602b1..3e07af1d80e3 100644 --- a/arch/x86/boot/string.h +++ b/arch/x86/boot/string.h @@ -14,8 +14,10 @@ int memcmp(const void *s1, const void *s2, size_t len); * Access builtin version by default. If one needs to use optimized version, * do "undef memcpy" in .c file and link against right string.c */ +#ifndef __clang__ /* PR18415 */ #define memcpy(d,s,l) __builtin_memcpy(d,s,l) #define memset(d,c,l) __builtin_memset(d,c,l) #define memcmp __builtin_memcmp +#endif #endif /* BOOT_STRING_H */ diff --git a/arch/x86/um/ksyms.c b/arch/x86/um/ksyms.c index 2e8f43ec6214..04aedcecd887 100644 --- a/arch/x86/um/ksyms.c +++ b/arch/x86/um/ksyms.c @@ -4,7 +4,7 @@ #ifndef CONFIG_X86_32 /*XXX: we need them because they would be exported by x86_64 */ -#if (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) || __GNUC__ > 4 +#if (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) || __GNUC__ > 4 || defined(__clang__) EXPORT_SYMBOL(memcpy); #else EXPORT_SYMBOL(__memcpy); diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c index dd151b2045b0..0c12e370860e 100644 --- a/arch/x86/xen/mmu.c +++ b/arch/x86/xen/mmu.c @@ -1271,36 +1271,37 @@ static void xen_flush_tlb_others(const struct cpumask *cpus, struct mm_struct *mm, unsigned long start, unsigned long end) { - struct { - struct mmuext_op op; -#ifdef CONFIG_SMP - DECLARE_BITMAP(mask, num_processors); -#else - DECLARE_BITMAP(mask, NR_CPUS); -#endif - } *args; struct multicall_space mcs; + struct mmuext_op *op; + struct cpumask *mask; trace_xen_mmu_flush_tlb_others(cpus, mm, start, end); if (cpumask_empty(cpus)) return; /* nothing to do */ - mcs = xen_mc_entry(sizeof(*args)); - args = mcs.args; - args->op.arg2.vcpumask = to_cpumask(args->mask); +#ifdef CONFIG_SMP + mcs = xen_mc_entry(sizeof(struct mmuext_op) + BITS_TO_LONGS(num_processors)*sizeof(unsigned long)); +#else + mcs = xen_mc_entry(sizeof(struct mmuext_op) + BITS_TO_LONGS(NR_CPUS)*sizeof(unsigned long)); +#endif + /* Extract fields */ + op = mcs.args; + mask = to_cpumask(mcs.args + sizeof(struct mmuext_op)); + + op->arg2.vcpumask = mask; /* Remove us, and any offline CPUS. */ - cpumask_and(to_cpumask(args->mask), cpus, cpu_online_mask); - cpumask_clear_cpu(smp_processor_id(), to_cpumask(args->mask)); + cpumask_and(mask, cpus, cpu_online_mask); + cpumask_clear_cpu(smp_processor_id(), mask); - args->op.cmd = MMUEXT_TLB_FLUSH_MULTI; + op->cmd = MMUEXT_TLB_FLUSH_MULTI; if (end != TLB_FLUSH_ALL && (end - start) <= PAGE_SIZE) { - args->op.cmd = MMUEXT_INVLPG_MULTI; - args->op.arg1.linear_addr = start; + op->cmd = MMUEXT_INVLPG_MULTI; + op->arg1.linear_addr = start; } - MULTI_mmuext_op(mcs.mc, &args->op, 1, NULL, DOMID_SELF); + MULTI_mmuext_op(mcs.mc, op, 1, NULL, DOMID_SELF); xen_mc_issue(PARAVIRT_LAZY_MMU); } diff --git a/drivers/md/bcache/sysfs.c b/drivers/md/bcache/sysfs.c index b3ff57d61dde..53d8baa741fb 100644 --- a/drivers/md/bcache/sysfs.c +++ b/drivers/md/bcache/sysfs.c @@ -731,6 +731,11 @@ static struct attribute *bch_cache_set_internal_files[] = { }; KTYPE(bch_cache_set_internal); +static int __bch_cache_cmp(const void *l, const void *r) +{ + return *((uint16_t *) r) - *((uint16_t *) l); +} + SHOW(__bch_cache) { struct cache *ca = container_of(kobj, struct cache, kobj); @@ -755,9 +760,6 @@ SHOW(__bch_cache) CACHE_REPLACEMENT(&ca->sb)); if (attr == &sysfs_priority_stats) { - int cmp(const void *l, const void *r) - { return *((uint16_t *) r) - *((uint16_t *) l); } - struct bucket *b; size_t n = ca->sb.nbuckets, i; size_t unused = 0, available = 0, dirty = 0, meta = 0; @@ -786,7 +788,7 @@ SHOW(__bch_cache) p[i] = ca->buckets[i].prio; mutex_unlock(&ca->set->bucket_lock); - sort(p, n, sizeof(uint16_t), cmp, NULL); + sort(p, n, sizeof(uint16_t), __bch_cache_cmp, NULL); while (n && !cached[n - 1]) diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c index 38c58e19cfce..f3d0859c07da 100644 --- a/drivers/md/raid10.c +++ b/drivers/md/raid10.c @@ -711,11 +711,9 @@ static int raid10_mergeable_bvec(struct mddev *mddev, max = biovec->bv_len; if (mddev->merge_check_needed) { - struct { - struct r10bio r10_bio; - struct r10dev devs[conf->copies]; - } on_stack; - struct r10bio *r10_bio = &on_stack.r10_bio; + /* Allocate space for r10bio on stack */ + u8 r10bio_on_stack[sizeof(struct r10bio) + conf->copies * sizeof(struct r10dev)]; + struct r10bio *r10_bio = (struct r10bio*) r10bio_on_stack; int s; if (conf->reshape_progress != MaxSector) { /* Cannot give any guidance during reshape */ @@ -4548,11 +4546,9 @@ static int handle_reshape_read_error(struct mddev *mddev, /* Use sync reads to get the blocks from somewhere else */ int sectors = r10_bio->sectors; struct r10conf *conf = mddev->private; - struct { - struct r10bio r10_bio; - struct r10dev devs[conf->copies]; - } on_stack; - struct r10bio *r10b = &on_stack.r10_bio; + /* Allocate space for r10bio on stack */ + u8 r10bio_on_stack[sizeof(struct r10bio) + conf->copies * sizeof(struct r10dev)]; + struct r10bio *r10b = (struct r10bio *) r10bio_on_stack; int slot = 0; int idx = 0; struct bio_vec *bvec = r10_bio->master_bio->bi_io_vec; diff --git a/drivers/net/ppp/ppp_generic.c b/drivers/net/ppp/ppp_generic.c index fa8f5046afe9..9d15566521a7 100644 --- a/drivers/net/ppp/ppp_generic.c +++ b/drivers/net/ppp/ppp_generic.c @@ -269,9 +269,9 @@ static void ppp_ccp_peek(struct ppp *ppp, struct sk_buff *skb, int inbound); static void ppp_ccp_closed(struct ppp *ppp); static struct compressor *find_compressor(int type); static void ppp_get_stats(struct ppp *ppp, struct ppp_stats *st); -static struct ppp *ppp_create_interface(struct net *net, int unit, - struct file *file, int *retp); +static struct ppp *ppp_create_interface(struct net *net, int unit, int *retp); static void init_ppp_file(struct ppp_file *pf, int kind); +static void ppp_shutdown_interface(struct ppp *ppp); static void ppp_destroy_interface(struct ppp *ppp); static struct ppp *ppp_find_unit(struct ppp_net *pn, int unit); static struct channel *ppp_find_channel(struct ppp_net *pn, int unit); @@ -392,10 +392,8 @@ static int ppp_release(struct inode *unused, struct file *file) file->private_data = NULL; if (pf->kind == INTERFACE) { ppp = PF_TO_PPP(pf); - rtnl_lock(); if (file == ppp->owner) - unregister_netdevice(ppp->dev); - rtnl_unlock(); + ppp_shutdown_interface(ppp); } if (atomic_dec_and_test(&pf->refcnt)) { switch (pf->kind) { @@ -595,10 +593,8 @@ static long ppp_ioctl(struct file *file, unsigned int cmd, unsigned long arg) mutex_lock(&ppp_mutex); if (pf->kind == INTERFACE) { ppp = PF_TO_PPP(pf); - rtnl_lock(); if (file == ppp->owner) - unregister_netdevice(ppp->dev); - rtnl_unlock(); + ppp_shutdown_interface(ppp); } if (atomic_long_read(&file->f_count) < 2) { ppp_release(NULL, file); @@ -842,10 +838,11 @@ static int ppp_unattached_ioctl(struct net *net, struct ppp_file *pf, /* Create a new ppp unit */ if (get_user(unit, p)) break; - ppp = ppp_create_interface(net, unit, file, &err); + ppp = ppp_create_interface(net, unit, &err); if (!ppp) break; file->private_data = &ppp->file; + ppp->owner = file; err = -EFAULT; if (put_user(ppp->file.index, p)) break; @@ -919,16 +916,6 @@ static __net_init int ppp_init_net(struct net *net) static __net_exit void ppp_exit_net(struct net *net) { struct ppp_net *pn = net_generic(net, ppp_net_id); - struct ppp *ppp; - LIST_HEAD(list); - int id; - - rtnl_lock(); - idr_for_each_entry(&pn->units_idr, ppp, id) - unregister_netdevice_queue(ppp->dev, &list); - - unregister_netdevice_many(&list); - rtnl_unlock(); idr_destroy(&pn->units_idr); } @@ -1101,28 +1088,8 @@ static int ppp_dev_init(struct net_device *dev) return 0; } -static void ppp_dev_uninit(struct net_device *dev) -{ - struct ppp *ppp = netdev_priv(dev); - struct ppp_net *pn = ppp_pernet(ppp->ppp_net); - - ppp_lock(ppp); - ppp->closing = 1; - ppp_unlock(ppp); - - mutex_lock(&pn->all_ppp_mutex); - unit_put(&pn->units_idr, ppp->file.index); - mutex_unlock(&pn->all_ppp_mutex); - - ppp->owner = NULL; - - ppp->file.dead = 1; - wake_up_interruptible(&ppp->file.rwait); -} - static const struct net_device_ops ppp_netdev_ops = { .ndo_init = ppp_dev_init, - .ndo_uninit = ppp_dev_uninit, .ndo_start_xmit = ppp_start_xmit, .ndo_do_ioctl = ppp_net_ioctl, .ndo_get_stats64 = ppp_get_stats64, @@ -2700,8 +2667,8 @@ ppp_get_stats(struct ppp *ppp, struct ppp_stats *st) * or if there is already a unit with the requested number. * unit == -1 means allocate a new number. */ -static struct ppp *ppp_create_interface(struct net *net, int unit, - struct file *file, int *retp) +static struct ppp * +ppp_create_interface(struct net *net, int unit, int *retp) { struct ppp *ppp; struct ppp_net *pn; @@ -2721,7 +2688,6 @@ static struct ppp *ppp_create_interface(struct net *net, int unit, ppp->mru = PPP_MRU; init_ppp_file(&ppp->file, INTERFACE); ppp->file.hdrlen = PPP_HDRLEN - 2; /* don't count proto bytes */ - ppp->owner = file; for (i = 0; i < NUM_NP; ++i) ppp->npmode[i] = NPMODE_PASS; INIT_LIST_HEAD(&ppp->channels); @@ -2810,6 +2776,34 @@ init_ppp_file(struct ppp_file *pf, int kind) } /* + * Take down a ppp interface unit - called when the owning file + * (the one that created the unit) is closed or detached. + */ +static void ppp_shutdown_interface(struct ppp *ppp) +{ + struct ppp_net *pn; + + pn = ppp_pernet(ppp->ppp_net); + mutex_lock(&pn->all_ppp_mutex); + + /* This will call dev_close() for us. */ + ppp_lock(ppp); + if (!ppp->closing) { + ppp->closing = 1; + ppp_unlock(ppp); + unregister_netdev(ppp->dev); + unit_put(&pn->units_idr, ppp->file.index); + } else + ppp_unlock(ppp); + + ppp->file.dead = 1; + ppp->owner = NULL; + wake_up_interruptible(&ppp->file.rwait); + + mutex_unlock(&pn->all_ppp_mutex); +} + +/* * Free the memory used by a ppp unit. This is only called once * there are no channels connected to the unit and no file structs * that reference the unit. diff --git a/drivers/net/wimax/i2400m/fw.c b/drivers/net/wimax/i2400m/fw.c index c9c711dcd0e6..a89b5685e68b 100644 --- a/drivers/net/wimax/i2400m/fw.c +++ b/drivers/net/wimax/i2400m/fw.c @@ -652,7 +652,7 @@ static int i2400m_download_chunk(struct i2400m *i2400m, const void *chunk, struct device *dev = i2400m_dev(i2400m); struct { struct i2400m_bootrom_header cmd; - u8 cmd_payload[chunk_len]; + u8 cmd_payload[]; } __packed *buf; struct i2400m_bootrom_header ack; diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c index 71b884dae27c..8aeb7c72aab8 100644 --- a/drivers/scsi/megaraid/megaraid_sas_base.c +++ b/drivers/scsi/megaraid/megaraid_sas_base.c @@ -228,7 +228,7 @@ struct megasas_cmd *megasas_get_cmd(struct megasas_instance * @instance: Adapter soft state * @cmd: Command packet to be returned to free command pool */ -inline void +void megasas_return_cmd(struct megasas_instance *instance, struct megasas_cmd *cmd) { unsigned long flags; diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index 48851f6ea6ec..67ffab2d33b9 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -811,7 +811,7 @@ static int compat_ioctl_preallocate(struct file *file, */ #define XFORM(i) (((i) ^ ((i) << 27) ^ ((i) << 17)) & 0xffffffff) -#define COMPATIBLE_IOCTL(cmd) XFORM(cmd), +#define COMPATIBLE_IOCTL(cmd) XFORM((u32)cmd), /* ioctl should not be warned about even if it's not implemented. Valid reasons to use this: - It is implemented with ->compat_ioctl on some device, but programs diff --git a/fs/exofs/Kconfig b/fs/exofs/Kconfig index 86194b2f799d..492746f9e61b 100644 --- a/fs/exofs/Kconfig +++ b/fs/exofs/Kconfig @@ -1,6 +1,6 @@ config EXOFS_FS tristate "exofs: OSD based file system support" - depends on SCSI_OSD_ULD + depends on SCSI_OSD_ULD && BROKEN help EXOFS is a file system that uses an OSD storage device, as its backing storage. diff --git a/fs/exofs/super.c b/fs/exofs/super.c index b795c567b5e1..2357dc538bb7 100644 --- a/fs/exofs/super.c +++ b/fs/exofs/super.c @@ -546,27 +546,25 @@ static int exofs_devs_2_odi(struct exofs_dt_device_info *dt_dev, static int __alloc_dev_table(struct exofs_sb_info *sbi, unsigned numdevs, struct exofs_dev **peds) { - struct __alloc_ore_devs_and_exofs_devs { - /* Twice bigger table: See exofs_init_comps() and comment at - * exofs_read_lookup_dev_table() - */ - struct ore_dev *oreds[numdevs * 2 - 1]; - struct exofs_dev eds[numdevs]; - } *aoded; + size_t numoreds = numdevs * 2 - 1; struct exofs_dev *eds; unsigned i; - aoded = kzalloc(sizeof(*aoded), GFP_KERNEL); - if (unlikely(!aoded)) { + /* Twice bigger table: See exofs_init_comps() and comment at + * exofs_read_lookup_dev_table() + * XXX: why -1? + */ + sbi->oc.ods = kzalloc(numoreds * sizeof(struct ore_dev) + + numdevs * sizeof(struct exofs_dev), GFP_KERNEL); + if (unlikely(!sbi->oc.ods)) { EXOFS_ERR("ERROR: failed allocating Device array[%d]\n", numdevs); return -ENOMEM; } - sbi->oc.ods = aoded->oreds; - *peds = eds = aoded->eds; + *peds = eds = (void *)sbi->oc.ods[numoreds]; for (i = 0; i < numdevs; ++i) - aoded->oreds[i] = &eds[i].ored; + sbi->oc.ods[i] = &eds[i].ored; return 0; } diff --git a/fs/nfs/Kconfig b/fs/nfs/Kconfig index f31fd0dd92c6..e6ef7b3725db 100644 --- a/fs/nfs/Kconfig +++ b/fs/nfs/Kconfig @@ -125,7 +125,7 @@ config PNFS_BLOCK config PNFS_OBJLAYOUT tristate - depends on NFS_V4_1 && SCSI_OSD_ULD + depends on NFS_V4_1 && SCSI_OSD_ULD && BROKEN default NFS_V4 config PNFS_FLEXFILE_LAYOUT diff --git a/fs/nfs/objlayout/objio_osd.c b/fs/nfs/objlayout/objio_osd.c index 5aaed363556a..9259037f1cec 100644 --- a/fs/nfs/objlayout/objio_osd.c +++ b/fs/nfs/objlayout/objio_osd.c @@ -301,10 +301,11 @@ objio_alloc_io_state(struct pnfs_layout_hdr *pnfs_layout_type, bool is_reading, int ret; struct __alloc_objio_state { struct objio_state objios; - struct pnfs_osd_ioerr ioerrs[objio_seg->oc.numdevs]; + struct pnfs_osd_ioerr ioerrs[]; } *aos; - aos = kzalloc(sizeof(*aos), gfp_flags); + aos = kzalloc(sizeof(*aos) + objio_seg->oc.numdevs * + sizeof(struct pnfs_osd_ioerr), gfp_flags); if (unlikely(!aos)) return -ENOMEM; diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h index dfaa7b3e9ae9..929a3f0d2b08 100644 --- a/include/linux/compiler-gcc.h +++ b/include/linux/compiler-gcc.h @@ -70,14 +70,14 @@ */ #if !defined(CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING) || \ !defined(CONFIG_OPTIMIZE_INLINING) || (__GNUC__ < 4) -#define inline inline __attribute__((always_inline)) notrace -#define __inline__ __inline__ __attribute__((always_inline)) notrace +#define inline inline __attribute__((always_inline)) notrace __maybe_unused +#define __inline__ __inline__ __attribute__((always_inline)) notrace __maybe_unused #define __inline __inline __attribute__((always_inline)) notrace #else /* A lot of inline functions can cause havoc with function tracing */ -#define inline inline notrace -#define __inline__ __inline__ notrace -#define __inline __inline notrace +#define inline inline notrace __maybe_unused +#define __inline__ __inline__ notrace __maybe_unused +#define __inline __inline notrace __maybe_unused #endif #define __always_inline inline __attribute__((always_inline)) diff --git a/include/linux/kbuild.h b/include/linux/kbuild.h index 22a72198c14b..75fa2c3e0e1d 100644 --- a/include/linux/kbuild.h +++ b/include/linux/kbuild.h @@ -2,14 +2,14 @@ #define __LINUX_KBUILD_H #define DEFINE(sym, val) \ - asm volatile("\n->" #sym " %0 " #val : : "i" (val)) + asm volatile("\n@->" #sym " %0 " #val : : "i" (val)) -#define BLANK() asm volatile("\n->" : : ) +#define BLANK() asm volatile("\n@->" : : ) #define OFFSET(sym, str, mem) \ DEFINE(sym, offsetof(struct str, mem)) #define COMMENT(x) \ - asm volatile("\n->#" x) + asm volatile("\n@->#" x) #endif diff --git a/include/scsi/osd_types.h b/include/scsi/osd_types.h index 48e8a165e136..c7ae7211d15d 100644 --- a/include/scsi/osd_types.h +++ b/include/scsi/osd_types.h @@ -28,7 +28,7 @@ struct osd_obj_id { osd_id id; }; -static const struct __weak osd_obj_id osd_root_object = {0, 0}; +static const struct osd_obj_id osd_root_object __maybe_unused = {0, 0}; struct osd_attr { u32 attr_page; diff --git a/lib/Makefile b/lib/Makefile index 6897b527581a..068188564a6a 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -55,7 +55,9 @@ obj-$(CONFIG_CHECK_SIGNATURE) += check_signature.o obj-$(CONFIG_DEBUG_LOCKING_API_SELFTESTS) += locking-selftest.o GCOV_PROFILE_hweight.o := n +ifneq ($(COMPILER),clang) CFLAGS_hweight.o = $(subst $(quote),,$(CONFIG_ARCH_HWEIGHT_CFLAGS)) +endif obj-$(CONFIG_GENERIC_HWEIGHT) += hweight.o obj-$(CONFIG_BTREE) += btree.o diff --git a/lib/mpi/Makefile b/lib/mpi/Makefile index 019a68c90144..d5553f6b9f09 100644 --- a/lib/mpi/Makefile +++ b/lib/mpi/Makefile @@ -4,6 +4,8 @@ obj-$(CONFIG_MPILIB) = mpi.o +CFLAGS_KERNEL += $(call cc-option,-fheinous-gnu-extensions) + mpi-y = \ generic_mpih-lshift.o \ generic_mpih-mul1.o \ diff --git a/lib/mpi/longlong.h b/lib/mpi/longlong.h index a89d041592c8..d4477621f1eb 100644 --- a/lib/mpi/longlong.h +++ b/lib/mpi/longlong.h @@ -193,8 +193,7 @@ extern UDItype __udiv_qrnnd(UDItype *, UDItype, UDItype, UDItype); "rI" ((USItype)(bl))) #if defined __ARM_ARCH_2__ || defined __ARM_ARCH_3__ #define umul_ppmm(xh, xl, a, b) \ - __asm__ ("%@ Inlined umul_ppmm\n" \ - "mov %|r0, %2, lsr #16 @ AAAA\n" \ + __asm__ ("mov %|r0, %2, lsr #16 @ AAAA\n" \ "mov %|r2, %3, lsr #16 @ BBBB\n" \ "bic %|r1, %2, %|r0, lsl #16 @ aaaa\n" \ "bic %0, %3, %|r2, lsl #16 @ bbbb\n" \ @@ -213,10 +212,8 @@ extern UDItype __udiv_qrnnd(UDItype *, UDItype, UDItype, UDItype); : "r0", "r1", "r2") #else #define umul_ppmm(xh, xl, a, b) \ - __asm__ ("%@ Inlined umul_ppmm\n" \ - "umull %r1, %r0, %r2, %r3" \ - : "=&r" ((USItype)(xh)), \ - "=r" ((USItype)(xl)) \ + __asm__ ("umull %1, %0, %2, %3" \ + : "=&r" ((xh)), "=r" ((xl)) \ : "r" ((USItype)(a)), \ "r" ((USItype)(b)) \ : "r0", "r1") diff --git a/lib/mpi/mpi-inline.h b/lib/mpi/mpi-inline.h index e2b39852b30a..c245ea31f785 100644 --- a/lib/mpi/mpi-inline.h +++ b/lib/mpi/mpi-inline.h @@ -30,7 +30,7 @@ #define G10_MPI_INLINE_H #ifndef G10_MPI_INLINE_DECL -#define G10_MPI_INLINE_DECL extern inline +#define G10_MPI_INLINE_DECL static inline #endif G10_MPI_INLINE_DECL mpi_limb_t diff --git a/lib/mpi/mpi-internal.h b/lib/mpi/mpi-internal.h index c65dd1bff45a..09e9f13c5ba0 100644 --- a/lib/mpi/mpi-internal.h +++ b/lib/mpi/mpi-internal.h @@ -168,20 +168,12 @@ void mpi_rshift_limbs(MPI a, unsigned int count); int mpi_lshift_limbs(MPI a, unsigned int count); /*-- mpihelp-add.c --*/ -mpi_limb_t mpihelp_add_1(mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr, - mpi_size_t s1_size, mpi_limb_t s2_limb); mpi_limb_t mpihelp_add_n(mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr, mpi_ptr_t s2_ptr, mpi_size_t size); -mpi_limb_t mpihelp_add(mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr, mpi_size_t s1_size, - mpi_ptr_t s2_ptr, mpi_size_t s2_size); /*-- mpihelp-sub.c --*/ -mpi_limb_t mpihelp_sub_1(mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr, - mpi_size_t s1_size, mpi_limb_t s2_limb); mpi_limb_t mpihelp_sub_n(mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr, mpi_ptr_t s2_ptr, mpi_size_t size); -mpi_limb_t mpihelp_sub(mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr, mpi_size_t s1_size, - mpi_ptr_t s2_ptr, mpi_size_t s2_size); /*-- mpihelp-cmp.c --*/ int mpihelp_cmp(mpi_ptr_t op1_ptr, mpi_ptr_t op2_ptr, mpi_size_t size); @@ -238,7 +230,7 @@ mpi_limb_t mpihelp_rshift(mpi_ptr_t wp, mpi_ptr_t up, mpi_size_t usize, #define W_TYPE_SIZE BITS_PER_MPI_LIMB typedef mpi_limb_t UWtype; typedef unsigned int UHWtype; -#if defined(__GNUC__) +#if defined(__GNUC__) && !defined(__clang__) typedef unsigned int UQItype __attribute__ ((mode(QI))); typedef int SItype __attribute__ ((mode(SI))); typedef unsigned int USItype __attribute__ ((mode(SI))); diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include index d3437b82ac25..bd5a3e26a277 100644 --- a/scripts/Kbuild.include +++ b/scripts/Kbuild.include @@ -111,12 +111,12 @@ as-instr = $(call try-run,\ # Usage: cflags-y += $(call cc-option,-march=winchip-c6,-march=i586) cc-option = $(call try-run,\ - $(CC) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",$(1),$(2)) + $(CC) -Werror $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",$(1),$(2)) # cc-option-yn # Usage: flag := $(call cc-option-yn,-march=winchip-c6) cc-option-yn = $(call try-run,\ - $(CC) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",y,n) + $(CC) -Werror $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",y,n) # cc-option-align # Prefix align with either -falign or -malign @@ -126,7 +126,7 @@ cc-option-align = $(subst -functions=0,,\ # cc-disable-warning # Usage: cflags-y += $(call cc-disable-warning,unused-but-set-variable) cc-disable-warning = $(call try-run,\ - $(CC) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) -W$(strip $(1)) -c -x c /dev/null -o "$$TMP",-Wno-$(strip $(1))) + $(CC) -Werror $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) -W$(strip $(1)) -c -x c /dev/null -o "$$TMP",-Wno-$(strip $(1))) # cc-version cc-version = $(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-version.sh $(CC)) diff --git a/scripts/Makefile.build b/scripts/Makefile.build index 01df30af4d4a..6ff524dac82b 100644 --- a/scripts/Makefile.build +++ b/scripts/Makefile.build @@ -174,6 +174,20 @@ cmd_cc_symtypes_c = \ $(obj)/%.symtypes : $(src)/%.c FORCE $(call cmd,cc_symtypes_c) +# LLVM bitcode +# Generate .ll files from .s and .c +quiet_cmd_cc_ll_c = CC $(quiet_modtag) $@ + cmd_cc_ll_c = $(CC) $(c_flags) -emit-llvm -S -o $@ $< + +$(obj)/%.ll: $(src)/%.c FORCE + $(call if_changed_dep,cc_ll_c) + +quiet_cmd_as_ll_S = CPP $(quiet_modtag) $@ + cmd_as_ll_S = $(CPP) $(a_flags) -o $@ $< + +$(obj)/%.ll: $(src)/%.S FORCE + $(call if_changed_dep,as_ll_S) + # C (.c) files # The C file is compiled and updated dependency information is generated. # (See cmd_cc_o_c + relevant part of rule_cc_o_c) diff --git a/scripts/mod/Makefile b/scripts/mod/Makefile index c11212ff3510..86f6b852cd93 100644 --- a/scripts/mod/Makefile +++ b/scripts/mod/Makefile @@ -6,10 +6,10 @@ modpost-objs := modpost.o file2alias.o sumversion.o devicetable-offsets-file := devicetable-offsets.h define sed-y - "/^->/{s:->#\(.*\):/* \1 */:; \ - s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \ - s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \ - s:->::; p;}" + "/^@->/{s:@->#\(.*\):/* \1 */:; \ + s:^@->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \ + s:^@->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \ + s:@->::; p;}" endef quiet_cmd_offsets = GEN $@ diff --git a/security/apparmor/crypto.c b/security/apparmor/crypto.c index 532471d0b3a0..c948247e90c2 100644 --- a/security/apparmor/crypto.c +++ b/security/apparmor/crypto.c @@ -32,10 +32,7 @@ unsigned int aa_hash_size(void) int aa_calc_profile_hash(struct aa_profile *profile, u32 version, void *start, size_t len) { - struct { - struct shash_desc shash; - char ctx[crypto_shash_descsize(apparmor_tfm)]; - } desc; + SHASH_DESC_ON_STACK(shash, apparmor_tfm); int error = -ENOMEM; u32 le32_version = cpu_to_le32(version); @@ -46,19 +43,19 @@ int aa_calc_profile_hash(struct aa_profile *profile, u32 version, void *start, if (!profile->hash) goto fail; - desc.shash.tfm = apparmor_tfm; - desc.shash.flags = 0; + shash->tfm = apparmor_tfm; + shash->flags = 0; - error = crypto_shash_init(&desc.shash); + error = crypto_shash_init(shash); if (error) goto fail; - error = crypto_shash_update(&desc.shash, (u8 *) &le32_version, 4); + error = crypto_shash_update(shash, (u8 *) &le32_version, 4); if (error) goto fail; - error = crypto_shash_update(&desc.shash, (u8 *) start, len); + error = crypto_shash_update(shash, (u8 *) start, len); if (error) goto fail; - error = crypto_shash_final(&desc.shash, profile->hash); + error = crypto_shash_final(shash, profile->hash); if (error) goto fail; | |