1 #as: -O -q 2 #objdump: -drw 3 #name: x86-64 LEA optimizations 4 #source: lea64.s 5 6 .*: +file format .* 7 8 Disassembly of section .text: 9 10 0+ <start>: 11 [ ]*[0-9a-f]+:[ ]+8d 04 08[ ]+lea[ ]+\(%rax,%rcx(,1)?\),%eax 12 [ ]*[0-9a-f]+:[ ]+8d 04 08[ ]+lea[ ]+\(%rax,%rcx(,1)?\),%eax 13 [ ]*[0-9a-f]+:[ ]+8d 48 01[ ]+lea[ ]+0x1\(%rax\),%ecx 14 [ ]*[0-9a-f]+:[ ]+8d 88 00 00 00 00[ ]+lea[ ]+0x0\(%rax\),%ecx[ ]+[0-9a-f]+: (R_X86_64_32|IMAGE_REL_AMD64_ADDR32)[ ]+sym 15 [ ]*[0-9a-f]+:[ ]+8d 0c 25 00 00 00 00[ ]+lea[ ]+0x0,%ecx[ ]+[0-9a-f]+: (R_X86_64_32|IMAGE_REL_AMD64_ADDR32)[ ]+sym 16 [ ]*[0-9a-f]+:[ ]+8d 04 00[ ]+lea[ ]+\(%rax,%rax(,1)?\),%eax 17 [ ]*[0-9a-f]+:[ ]+8d 04 45 00 00 00 00[ ]+lea[ ]+0x0\(,%rax,2\),%eax 18 [ ]*[0-9a-f]+:[ ]+8d 05 00 00 00 00[ ]+lea[ ]+0x0\(%rip\),%eax($| *#.*) 19 [ ]*[0-9a-f]+:[ ]+8d 04 25 00 00 00 00[ ]+lea[ ]+0x0,%eax 20 [ ]*[0-9a-f]+:[ ]+48 8b c0[ ]+mov[ ]+%rax,%rax 21 [ ]*[0-9a-f]+:[ ]+48 8b c8[ ]+mov[ ]+%rax,%rcx 22 [ ]*[0-9a-f]+:[ ]+48 8b c8[ ]+mov[ ]+%rax,%rcx 23 [ ]*[0-9a-f]+:[ ]+48 8b c8[ ]+mov[ ]+%rax,%rcx 24 [ ]*[0-9a-f]+:[ ]+8b c6[ ]+mov[ ]+%esi,%eax 25 [ ]*[0-9a-f]+:[ ]+8b f6[ ]+mov[ ]+%esi,%esi 26 [ ]*[0-9a-f]+:[ ]+8b c6[ ]+mov[ ]+%esi,%eax 27 [ ]*[0-9a-f]+:[ ]+66 8b c6[ ]+mov[ ]+%si,%ax 28 [ ]*[0-9a-f]+:[ ]+66 8b f6[ ]+mov[ ]+%si,%si 29 [ ]*[0-9a-f]+:[ ]+66 8b c6[ ]+mov[ ]+%si,%ax 30 [ ]*[0-9a-f]+:[ ]+8b c0[ ]+mov[ ]+%eax,%eax 31 [ ]*[0-9a-f]+:[ ]+8b c8[ ]+mov[ ]+%eax,%ecx 32 [ ]*[0-9a-f]+:[ ]+8b c8[ ]+mov[ ]+%eax,%ecx 33 [ ]*[0-9a-f]+:[ ]+8b c0[ ]+mov[ ]+%eax,%eax 34 [ ]*[0-9a-f]+:[ ]+8b c8[ ]+mov[ ]+%eax,%ecx 35 [ ]*[0-9a-f]+:[ ]+66 8b c6[ ]+mov[ ]+%si,%ax 36 [ ]*[0-9a-f]+:[ ]+66 8b f6[ ]+mov[ ]+%si,%si 37 [ ]*[0-9a-f]+:[ ]+66 8b c6[ ]+mov[ ]+%si,%ax 38 [ ]*[0-9a-f]+:[ ]+48 8b c9[ ]+mov[ ]+%rcx,%rcx 39 [ ]*[0-9a-f]+:[ ]+48 8b c1[ ]+mov[ ]+%rcx,%rax 40 [ ]*[0-9a-f]+:[ ]+8b c9[ ]+mov[ ]+%ecx,%ecx 41 [ ]*[0-9a-f]+:[ ]+8b c1[ ]+mov[ ]+%ecx,%eax 42 [ ]*[0-9a-f]+:[ ]+66 8b c9[ ]+mov[ ]+%cx,%cx 43 [ ]*[0-9a-f]+:[ ]+66 8b c1[ ]+mov[ ]+%cx,%ax 44 [ ]*[0-9a-f]+:[ ]+8b c9[ ]+mov[ ]+%ecx,%ecx 45 [ ]*[0-9a-f]+:[ ]+8b c1[ ]+mov[ ]+%ecx,%eax 46 [ ]*[0-9a-f]+:[ ]+8b c9[ ]+mov[ ]+%ecx,%ecx 47 [ ]*[0-9a-f]+:[ ]+8b c1[ ]+mov[ ]+%ecx,%eax 48 [ ]*[0-9a-f]+:[ ]+66 8b c9[ ]+mov[ ]+%cx,%cx 49 [ ]*[0-9a-f]+:[ ]+66 8b c1[ ]+mov[ ]+%cx,%ax 50 [ ]*[0-9a-f]+:[ ]+b8 01 00 00 00[ ]+mov[ ]+\$0x1,%eax 51 [ ]*[0-9a-f]+:[ ]+b8 02 00 00 00[ ]+mov[ ]+\$0x2,%eax 52 [ ]*[0-9a-f]+:[ ]+66 b8 03 00[ ]+mov[ ]+\$0x3,%ax 53 [ ]*[0-9a-f]+:[ ]+48 c7 c0 ff ff ff ff[ ]+mov[ ]+\$0xffffffffffffffff,%rax 54 [ ]*[0-9a-f]+:[ ]+b8 fe ff ff ff[ ]+mov[ ]+\$0xfffffffe,%eax 55 [ ]*[0-9a-f]+:[ ]+66 b8 fd ff[ ]+mov[ ]+\$0xfffd,%ax 56 [ ]*[0-9a-f]+:[ ]+b8 01 00 00 00[ ]+mov[ ]+\$0x1,%eax 57 [ ]*[0-9a-f]+:[ ]+b8 02 00 00 00[ ]+mov[ ]+\$0x2,%eax 58 [ ]*[0-9a-f]+:[ ]+66 b8 03 00[ ]+mov[ ]+\$0x3,%ax 59 [ ]*[0-9a-f]+:[ ]+b8 ff ff ff ff[ ]+mov[ ]+\$0xffffffff,%eax 60 [ ]*[0-9a-f]+:[ ]+b8 fe ff ff ff[ ]+mov[ ]+\$0xfffffffe,%eax 61 [ ]*[0-9a-f]+:[ ]+66 b8 fd ff[ ]+mov[ ]+\$0xfffd,%ax 62 [ ]*[0-9a-f]+:[ ]+48 c7 c0 00 00 00 00[ ]+mov[ ]+\$0x0,%rax[ ]+[0-9a-f]+: R_X86_64_32S[ ]+sym 63 [ ]*[0-9a-f]+:[ ]+b8 00 00 00 00[ ]+mov[ ]+\$0x0,%eax[ ]+[0-9a-f]+: (R_X86_64_32|IMAGE_REL_AMD64_ADDR32)[ ]+sym 64 [ ]*[0-9a-f]+:[ ]+66 8d 04 25 00 00 00 00[ ]+lea[ ]+0x0,%ax[ ]+[0-9a-f]+: (R_X86_64_32|IMAGE_REL_AMD64_ADDR32)[ ]+sym 65 [ ]*[0-9a-f]+:[ ]+b8 00 00 00 00[ ]+mov[ ]+\$0x0,%eax[ ]+[0-9a-f]+: (R_X86_64_32|IMAGE_REL_AMD64_ADDR32)[ ]+sym 66 [ ]*[0-9a-f]+:[ ]+b8 00 00 00 00[ ]+mov[ ]+\$0x0,%eax[ ]+[0-9a-f]+: (R_X86_64_32|IMAGE_REL_AMD64_ADDR32)[ ]+sym 67 [ ]*[0-9a-f]+:[ ]+66 8d 04 25 00 00 00 00[ ]+lea[ ]+0x0,%ax[ ]+[0-9a-f]+: (R_X86_64_32|IMAGE_REL_AMD64_ADDR32)[ ]+sym 68 [ ]*[0-9a-f]+:[ ]+48 c7 c0 00 00 00 00[ ]+mov[ ]+\$0x0,%rax 69 [ ]*[0-9a-f]+:[ ]+b8 00 00 00 00[ ]+mov[ ]+\$0x0,%eax 70 [ ]*[0-9a-f]+:[ ]+66 b8 00 00[ ]+mov[ ]+\$0x0,%ax 71 [ ]*[0-9a-f]+:[ ]+8d 41 ff[ ]+lea[ ]+-0x1\(%rcx\),%eax 72 [ ]*[0-9a-f]+:[ ]+8d 41 ff[ ]+lea[ ]+-0x1\(%rcx\),%eax 73 [ ]*[0-9a-f]+:[ ]+8d 41 ff[ ]+lea[ ]+-0x1\(%rcx\),%eax 74 [ ]*[0-9a-f]+:[ ]+8d 81 01 00 00 00[ ]+lea[ ]+0x1\(%rcx\),%eax 75 [ ]*[0-9a-f]+:[ ]+8d 81 01 00 00 00[ ]+lea[ ]+0x1\(%rcx\),%eax 76 [ ]*[0-9a-f]+:[ ]+8d 81 01 00 00 00[ ]+lea[ ]+0x1\(%rcx\),%eax 77 #pass 78