Dump of assembler code for function face_inherited_attr: xfaces.c: 2156 { 0x000000010015fa50 <+0>: push %rbp 0x000000010015fa51 <+1>: mov %rsp,%rbp 0x000000010015fa54 <+4>: sub $0x130,%rsp 0x000000010015fa5b <+11>: mov $0xa0,%eax 0x000000010015fa60 <+16>: mov %eax,%r9d 0x000000010015fa63 <+19>: lea -0xb0(%rbp),%r10 0x000000010015fa6a <+26>: mov 0x2a571f(%rip),%r11 # 0x100405190 0x000000010015fa71 <+33>: mov (%r11),%r11 0x000000010015fa74 <+36>: mov %r11,-0x8(%rbp) 0x000000010015fa78 <+40>: mov %rdi,-0xb8(%rbp) 0x000000010015fa7f <+47>: mov %rsi,-0xc0(%rbp) 0x000000010015fa86 <+54>: mov %rdx,-0xc8(%rbp) 0x000000010015fa8d <+61>: mov %ecx,-0xcc(%rbp) 0x000000010015fa93 <+67>: mov %r8,-0xd8(%rbp) 2157 Lisp_Object inherited_attrs[LFACE_VECTOR_SIZE]; 2158 Lisp_Object attr_val = attrs[attr_idx]; 0x000000010015fa9a <+74>: mov -0xc8(%rbp),%rdx 0x000000010015faa1 <+81>: mov -0xcc(%rbp),%eax 0x000000010015faa7 <+87>: mov %eax,%esi 0x000000010015faa9 <+89>: mov (%rdx,%rsi,8),%rdx 0x000000010015faad <+93>: mov %rdx,-0xe0(%rbp) 2159 2160 memcpy (inherited_attrs, attrs, LFACE_VECTOR_SIZE * sizeof (attrs[0])); 0x000000010015fab4 <+100>: mov -0xc8(%rbp),%rdx 0x000000010015fabb <+107>: mov %r10,%rdi 0x000000010015fabe <+110>: mov %rdx,%rsi 0x000000010015fac1 <+113>: mov %r9,%rdx 0x000000010015fac4 <+116>: callq 0x1003cfb12 2161 while (UNSPECIFIEDP (attr_val) 0x000000010015fac9 <+121>: mov -0xe0(%rbp),%rax 0x000000010015fad0 <+128>: mov $0x45c,%edi 0x000000010015fad5 <+133>: mov %rax,-0x100(%rbp) 0x000000010015fadc <+140>: callq 0x10014c7b0 0x000000010015fae1 <+145>: xor %edi,%edi 0x000000010015fae3 <+147>: mov %dil,%cl 0x000000010015fae6 <+150>: mov -0x100(%rbp),%rdx 0x000000010015faed <+157>: cmp %rax,%rdx 2162 && !NILP (inherited_attrs[LFACE_INHERIT_INDEX]) 0x000000010015faf0 <+160>: mov %cl,-0x101(%rbp) 0x000000010015faf6 <+166>: jne 0x10015fb54 0x000000010015fafc <+172>: xor %edi,%edi 0x000000010015fafe <+174>: mov -0x30(%rbp),%rax 0x000000010015fb02 <+178>: mov %rax,-0x110(%rbp) 0x000000010015fb09 <+185>: callq 0x10014c7b0 0x000000010015fb0e <+190>: xor %edi,%edi 0x000000010015fb10 <+192>: mov %dil,%cl 0x000000010015fb13 <+195>: mov -0x110(%rbp),%rdx 0x000000010015fb1a <+202>: cmp %rax,%rdx 2163 && !UNSPECIFIEDP (inherited_attrs[LFACE_INHERIT_INDEX])) 0x000000010015fb1d <+205>: mov %cl,-0x101(%rbp) 0x000000010015fb23 <+211>: je 0x10015fb54 0x000000010015fb29 <+217>: mov -0x30(%rbp),%rax 0x000000010015fb2d <+221>: mov $0x45c,%edi 0x000000010015fb32 <+226>: mov %rax,-0x118(%rbp) 0x000000010015fb39 <+233>: callq 0x10014c7b0 0x000000010015fb3e <+238>: mov -0x118(%rbp),%rcx 0x000000010015fb45 <+245>: cmp %rax,%rcx 0x000000010015fb48 <+248>: sete %dl 0x000000010015fb4b <+251>: xor $0xff,%dl 0x000000010015fb4e <+254>: mov %dl,-0x101(%rbp) 0x000000010015fb54 <+260>: mov -0x101(%rbp),%al 2161 while (UNSPECIFIEDP (attr_val) 0x000000010015fb5a <+266>: test $0x1,%al 0x000000010015fb5c <+268>: jne 0x10015fb67 0x000000010015fb62 <+274>: jmpq 0x10015fd0e 2164 { 2165 Lisp_Object parent_face = inherited_attrs[LFACE_INHERIT_INDEX]; 0x000000010015fb67 <+279>: mov -0x30(%rbp),%rax 0x000000010015fb6b <+283>: mov %rax,-0xe8(%rbp) 2166 bool ok; 2167 2168 if (CONSP (parent_face)) 0x000000010015fb72 <+290>: mov -0xe8(%rbp),%rax 0x000000010015fb79 <+297>: sar $0x0,%rax 0x000000010015fb7d <+301>: mov %eax,%ecx 0x000000010015fb7f <+303>: sub $0x3,%ecx 0x000000010015fb82 <+306>: and $0x7,%ecx 0x000000010015fb85 <+309>: cmp $0x0,%ecx 0x000000010015fb88 <+312>: jne 0x10015fcad 2169 { 2170 Lisp_Object tail; 2171 ok = false; 0x000000010015fb8e <+318>: movb $0x0,-0xe9(%rbp) 2172 for (tail = parent_face; !NILP (tail); tail = XCDR (tail)) 0x000000010015fb95 <+325>: mov -0xe8(%rbp),%rax 0x000000010015fb9c <+332>: mov %rax,-0xf8(%rbp) 0x000000010015fba3 <+339>: xor %edi,%edi 0x000000010015fba5 <+341>: mov -0xf8(%rbp),%rax 0x000000010015fbac <+348>: mov %rax,-0x120(%rbp) 0x000000010015fbb3 <+355>: callq 0x10014c7b0 0x000000010015fbb8 <+360>: mov -0x120(%rbp),%rcx 0x000000010015fbbf <+367>: cmp %rax,%rcx 0x000000010015fbc2 <+370>: sete %dl 0x000000010015fbc5 <+373>: xor $0xff,%dl 0x000000010015fbc8 <+376>: test $0x1,%dl 0x000000010015fbcb <+379>: jne 0x10015fbd6 0x000000010015fbd1 <+385>: jmpq 0x10015fc96 0x000000010015fbd6 <+390>: xor %r8d,%r8d 0x000000010015fbd9 <+393>: lea -0xb0(%rbp),%rcx 2173 { 2174 ok = get_lface_attributes (w, f, XCAR (tail), inherited_attrs, 0x000000010015fbe0 <+400>: mov -0xb8(%rbp),%rdi 0x000000010015fbe7 <+407>: mov -0xc0(%rbp),%rsi 0x000000010015fbee <+414>: mov -0xf8(%rbp),%rax 0x000000010015fbf5 <+421>: mov -0x3(%rax),%rdx 2175 false, named_merge_points); 0x000000010015fbf9 <+425>: mov -0xd8(%rbp),%r9 2174 ok = get_lface_attributes (w, f, XCAR (tail), inherited_attrs, 0x000000010015fc00 <+432>: callq 0x100156d50 0x000000010015fc05 <+437>: and $0x1,%al 0x000000010015fc07 <+439>: mov %al,-0xe9(%rbp) 2176 if (!ok) 0x000000010015fc0d <+445>: testb $0x1,-0xe9(%rbp) 0x000000010015fc14 <+452>: jne 0x10015fc1f 2177 break; 0x000000010015fc1a <+458>: jmpq 0x10015fc96 0x000000010015fc1f <+463>: lea -0xb0(%rbp),%rdx 2178 attr_val = face_inherited_attr (w, f, inherited_attrs, attr_idx, 0x000000010015fc26 <+470>: mov -0xb8(%rbp),%rdi 0x000000010015fc2d <+477>: mov -0xc0(%rbp),%rsi 0x000000010015fc34 <+484>: mov -0xcc(%rbp),%ecx 2179 named_merge_points); 0x000000010015fc3a <+490>: mov -0xd8(%rbp),%r8 2178 attr_val = face_inherited_attr (w, f, inherited_attrs, attr_idx, 0x000000010015fc41 <+497>: callq 0x10015fa50 0x000000010015fc46 <+502>: mov %rax,-0xe0(%rbp) 2180 if (!UNSPECIFIEDP (attr_val)) 0x000000010015fc4d <+509>: mov -0xe0(%rbp),%rax 0x000000010015fc54 <+516>: mov $0x45c,%edi 0x000000010015fc59 <+521>: mov %rax,-0x128(%rbp) 0x000000010015fc60 <+528>: callq 0x10014c7b0 0x000000010015fc65 <+533>: mov -0x128(%rbp),%rdx 0x000000010015fc6c <+540>: cmp %rax,%rdx 0x000000010015fc6f <+543>: je 0x10015fc7a 2181 break; 0x000000010015fc75 <+549>: jmpq 0x10015fc96 2182 } 0x000000010015fc7a <+554>: jmpq 0x10015fc7f 2172 for (tail = parent_face; !NILP (tail); tail = XCDR (tail)) 0x000000010015fc7f <+559>: mov -0xf8(%rbp),%rax 0x000000010015fc86 <+566>: mov 0x5(%rax),%rax 0x000000010015fc8a <+570>: mov %rax,-0xf8(%rbp) 0x000000010015fc91 <+577>: jmpq 0x10015fba3 2183 if (!ok) /* bad face? */ 0x000000010015fc96 <+582>: testb $0x1,-0xe9(%rbp) 0x000000010015fc9d <+589>: jne 0x10015fca8 2184 break; 0x000000010015fca3 <+595>: jmpq 0x10015fd0e 2185 } 0x000000010015fca8 <+600>: jmpq 0x10015fd09 0x000000010015fcad <+605>: xor %r8d,%r8d 0x000000010015fcb0 <+608>: lea -0xb0(%rbp),%rcx 2186 else 2187 { 2188 ok = get_lface_attributes (w, f, parent_face, inherited_attrs, 0x000000010015fcb7 <+615>: mov -0xb8(%rbp),%rdi 0x000000010015fcbe <+622>: mov -0xc0(%rbp),%rsi 0x000000010015fcc5 <+629>: mov -0xe8(%rbp),%rdx 2189 false, named_merge_points); 0x000000010015fccc <+636>: mov -0xd8(%rbp),%r9 2188 ok = get_lface_attributes (w, f, parent_face, inherited_attrs, 0x000000010015fcd3 <+643>: callq 0x100156d50 0x000000010015fcd8 <+648>: and $0x1,%al 0x000000010015fcda <+650>: mov %al,-0xe9(%rbp) 2190 if (!ok) 0x000000010015fce0 <+656>: testb $0x1,-0xe9(%rbp) 0x000000010015fce7 <+663>: jne 0x10015fcf2 2191 break; 0x000000010015fced <+669>: jmpq 0x10015fd0e 2192 attr_val = inherited_attrs[attr_idx]; 0x000000010015fcf2 <+674>: mov -0xcc(%rbp),%eax 0x000000010015fcf8 <+680>: mov %eax,%ecx 0x000000010015fcfa <+682>: mov -0xb0(%rbp,%rcx,8),%rcx 0x000000010015fd02 <+690>: mov %rcx,-0xe0(%rbp) 2161 while (UNSPECIFIEDP (attr_val) 0x000000010015fd09 <+697>: jmpq 0x10015fac9 2193 } 2194 } 2195 return attr_val; 0x000000010015fd0e <+702>: mov -0xe0(%rbp),%rax 0x000000010015fd15 <+709>: mov 0x2a5474(%rip),%rcx # 0x100405190 0x000000010015fd1c <+716>: mov (%rcx),%rcx 0x000000010015fd1f <+719>: mov -0x8(%rbp),%rdx 0x000000010015fd23 <+723>: cmp %rdx,%rcx 0x000000010015fd26 <+726>: mov %rax,-0x130(%rbp) 0x000000010015fd2d <+733>: jne 0x10015fd43 0x000000010015fd33 <+739>: mov -0x130(%rbp),%rax 0x000000010015fd3a <+746>: add $0x130,%rsp 0x000000010015fd41 <+753>: pop %rbp 0x000000010015fd42 <+754>: retq 0x000000010015fd43 <+755>: callq 0x1003cf4a6 0x000000010015fd48 <+760>: ud2 End of assembler dump.