V1 trouble with gcc 3.2.3

Dave Ashley linuxbios at xdr.com
Thu Nov 20 16:51:01 CET 2003


>compile that .o with both compilers, and use objdump -D to disassemble and 
>compare. That might help see what's going on.
>ron

Here is the side-by-side diff

obj/vgabios.o:     file format elf32-i386		      |	/build/xfer/vgabios.o:     file format elf32-i386

Disassembly of section .text:					Disassembly of section .text:

00000000 <real_mode_switch_call_vga>:				00000000 <real_mode_switch_call_vga>:
   0:	55                   	push   %ebp			   0:	55                   	push   %ebp
   1:	89 e5                	mov    %esp,%ebp		   1:	89 e5                	mov    %esp,%ebp
   3:	89 25 0b 00 00 00    	mov    %esp,0xb			   3:	89 25 0b 00 00 00    	mov    %esp,0xb
			5: R_386_32	.text						5: R_386_32	.text
   9:	eb 04                	jmp    f <__stack+0x4>		   9:	eb 04                	jmp    f <__stack+0x4>

0000000b <__stack>:						0000000b <__stack>:
   b:	00 00                	add    %al,(%eax)		   b:	00 00                	add    %al,(%eax)
   d:	00 00                	add    %al,(%eax)		   d:	00 00                	add    %al,(%eax)
   f:	ea 16 00 00 00 28 00 	ljmp   $0x28,$0x16		   f:	ea 16 00 00 00 28 00 	ljmp   $0x28,$0x16
			10: R_386_32	.text						10: R_386_32	.text

00000016 <__rms_16bit>:						00000016 <__rms_16bit>:
  16:	b8 30 00 8e d8       	mov    $0xd88e0030,%eax		  16:	b8 30 00 8e d8       	mov    $0xd88e0030,%eax
  1b:	8e c0                	mov    %eax,%es			  1b:	8e c0                	mov    %eax,%es
  1d:	8e e0                	mov    %eax,%fs			  1d:	8e e0                	mov    %eax,%fs
  1f:	8e e8                	mov    %eax,%gs			  1f:	8e e8                	mov    %eax,%gs
  21:	8e d0                	mov    %eax,%ss			  21:	8e d0                	mov    %eax,%ss
  23:	0f 20 c0             	mov    %cr0,%eax		  23:	0f 20 c0             	mov    %cr0,%eax
  26:	66 83 e0 fe          	and    $0xfffffffe,%ax		  26:	66 83 e0 fe          	and    $0xfffffffe,%ax
  2a:	0f 22 c0             	mov    %eax,%cr0		  2a:	0f 22 c0             	mov    %eax,%cr0
  2d:	ea 32 00 00 00 b8 00 	ljmp   $0xb8,$0x32		  2d:	ea 32 00 00 00 b8 00 	ljmp   $0xb8,$0x32
			2e: R_386_16	.text						2e: R_386_16	.text

00000032 <__rms_real>:						00000032 <__rms_real>:
  32:	b8 00 00 8e d0       	mov    $0xd08e0000,%eax		  32:	b8 00 00 8e d0       	mov    $0xd08e0000,%eax
  37:	66 b8 00 10          	mov    $0x1000,%ax		  37:	66 b8 00 10          	mov    $0x1000,%ax
  3b:	00 00                	add    %al,(%eax)		  3b:	00 00                	add    %al,(%eax)
  3d:	66 89 c4             	mov    %ax,%sp			  3d:	66 89 c4             	mov    %ax,%sp
  40:	b0 11                	mov    $0x11,%al		  40:	b0 11                	mov    $0x11,%al
  42:	e6 80                	out    %al,$0x80		  42:	e6 80                	out    %al,$0x80
  44:	31 c0                	xor    %eax,%eax		  44:	31 c0                	xor    %eax,%eax
  46:	8e d8                	mov    %eax,%ds			  46:	8e d8                	mov    %eax,%ds
  48:	8e c0                	mov    %eax,%es			  48:	8e c0                	mov    %eax,%es
  4a:	8e e0                	mov    %eax,%fs			  4a:	8e e0                	mov    %eax,%fs
  4c:	8e e8                	mov    %eax,%gs			  4c:	8e e8                	mov    %eax,%gs
  4e:	9a 03 00 00 c0 b0 55 	lcall  $0x55b0,$0xc0000003	  4e:	9a 03 00 00 c0 b0 55 	lcall  $0x55b0,$0xc0000003
  55:	e6 80                	out    %al,$0x80		  55:	e6 80                	out    %al,$0x80
  57:	0f 20 c0             	mov    %cr0,%eax		  57:	0f 20 c0             	mov    %cr0,%eax
  5a:	66 83 c8 01          	or     $0x1,%ax			  5a:	66 83 c8 01          	or     $0x1,%ax
  5e:	0f 22 c0             	mov    %eax,%cr0		  5e:	0f 22 c0             	mov    %eax,%cr0
  61:	66 ea 69 00 00 00    	ljmpw  $0x0,$0x69		  61:	66 ea 69 00 00 00    	ljmpw  $0x0,$0x69
			63: R_386_32	.text						63: R_386_32	.text
  67:	10 00                	adc    %al,(%eax)		  67:	10 00                	adc    %al,(%eax)

00000069 <vgarestart>:						00000069 <vgarestart>:
  69:	66 b8 18 00          	mov    $0x18,%ax		  69:	66 b8 18 00          	mov    $0x18,%ax
  6d:	8e d8                	mov    %eax,%ds			  6d:	8e d8                	mov    %eax,%ds
  6f:	8e c0                	mov    %eax,%es			  6f:	8e c0                	mov    %eax,%es
  71:	8e e0                	mov    %eax,%fs			  71:	8e e0                	mov    %eax,%fs
  73:	8e e8                	mov    %eax,%gs			  73:	8e e8                	mov    %eax,%gs
  75:	8e d0                	mov    %eax,%ss			  75:	8e d0                	mov    %eax,%ss
  77:	8b 25 0b 00 00 00    	mov    0xb,%esp			  77:	8b 25 0b 00 00 00    	mov    0xb,%esp
			79: R_386_32	.text						79: R_386_32	.text
  7d:	5d                   	pop    %ebp			  7d:	5d                   	pop    %ebp
  7e:	c3                   	ret    				  7e:	c3                   	ret    

0000007f <unsupportint_recover>:			      |	0000007f <real_mode_switch_end>:
  7f:	55                   	push   %ebp		      |	  7f:	90                   	nop    
  80:	89 e5                	mov    %esp,%ebp	      |
  82:	eb e5                	jmp    69 <vgarestart>	      |	00000080 <unsupportint_recover>:
  84:	5d                   	pop    %ebp		      |	  80:	55                   	push   %ebp
  85:	c3                   	ret    			      |	  81:	89 e5                	mov    %esp,%ebp
							      |	  83:	eb e4                	jmp    69 <vgarestart>
00000086 <do_vgabios>:					      |	  85:	5d                   	pop    %ebp
  86:	55                   	push   %ebp		      |	  86:	c3                   	ret    
  87:	89 e5                	mov    %esp,%ebp	      |	  87:	90                   	nop    
  89:	53                   	push   %ebx		      |
  8a:	6a 00                	push   $0x0		      |	00000088 <do_vgabios>:
  8c:	68 00 00 03 00       	push   $0x30000		      |	  88:	55                   	push   %ebp
  91:	e8 fc ff ff ff       	call   92 <do_vgabios+0xc>    |	  89:	89 e5                	mov    %esp,%ebp
			92: R_386_PC32	pci_find_class	      |	  8b:	56                   	push   %esi
  96:	89 c2                	mov    %eax,%edx	      |	  8c:	53                   	push   %ebx
  98:	85 d2                	test   %edx,%edx	      |	  8d:	53                   	push   %ebx
  9a:	58                   	pop    %eax		      |	  8e:	53                   	push   %ebx
  9b:	59                   	pop    %ecx		      |	  8f:	6a 00                	push   $0x0
  9c:	0f 84 91 00 00 00    	je     133 <do_vgabios+0xad>  |	  91:	68 00 00 03 00       	push   $0x30000
  a2:	0f b7 42 1e          	movzwl 0x1e(%edx),%eax	      |	  96:	e8 fc ff ff ff       	call   97 <do_vgabios+0xf>
  a6:	50                   	push   %eax		      |				97: R_386_PC32	pci_find_class
  a7:	0f b7 42 1c          	movzwl 0x1c(%edx),%eax	      |	  9b:	89 c2                	mov    %eax,%edx
  ab:	50                   	push   %eax		      |	  9d:	83 c4 10             	add    $0x10,%esp
  ac:	68 00 00 00 00       	push   $0x0		      |	  a0:	85 d2                	test   %edx,%edx
			ad: R_386_32	.rodata.str1.1	      |	  a2:	75 14                	jne    b8 <do_vgabios+0x30>
  b1:	6a 07                	push   $0x7		      |	  a4:	51                   	push   %ecx
  b3:	e8 fc ff ff ff       	call   b4 <do_vgabios+0x2e>   |	  a5:	51                   	push   %ecx
			b4: R_386_PC32	do_printk	      |	  a6:	68 00 00 00 00       	push   $0x0
  b8:	83 c4 10             	add    $0x10,%esp	      |				a7: R_386_32	.rodata
  bb:	80 3d 00 00 fe ff 55 	cmpb   $0x55,0xfffe0000	      |	  ab:	6a 07                	push   $0x7
  c2:	74 24                	je     e8 <do_vgabios+0x62>   |	  ad:	e8 fc ff ff ff       	call   ae <do_vgabios+0x26>
  c4:	0f b6 05 01 00 fe ff 	movzbl 0xfffe0001,%eax	      |				ae: R_386_PC32	do_printk
  cb:	50                   	push   %eax		      |	  b2:	e9 90 00 00 00       	jmp    147 <do_vgabios+0xbf>
  cc:	0f b6 05 00 00 fe ff 	movzbl 0xfffe0000,%eax	      |	  b7:	90                   	nop    
  d3:	50                   	push   %eax		      |	  b8:	0f b7 42 1e          	movzwl 0x1e(%edx),%eax
  d4:	68 1b 00 00 00       	push   $0x1b		      |	  bc:	50                   	push   %eax
			d5: R_386_32	.rodata.str1.1	      |	  bd:	0f b7 42 1c          	movzwl 0x1c(%edx),%eax
  d9:	6a 07                	push   $0x7		      |	  c1:	50                   	push   %eax
  db:	e8 fc ff ff ff       	call   dc <do_vgabios+0x56>   |	  c2:	68 0e 00 00 00       	push   $0xe
			dc: R_386_PC32	do_printk	      |				c3: R_386_32	.rodata
  e0:	83 c4 10             	add    $0x10,%esp	      |	  c7:	6a 07                	push   $0x7
  e3:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx  |	  c9:	e8 fc ff ff ff       	call   ca <do_vgabios+0x42>
  e6:	c9                   	leave  			      |				ca: R_386_PC32	do_printk
  e7:	c3                   	ret    			      |	  ce:	83 c4 10             	add    $0x10,%esp
  e8:	c6 05 01 00 fe ff aa 	movb   $0xaa,0xfffe0001	      |	  d1:	80 3d 00 00 fe ff 55 	cmpb   $0x55,0xfffe0000
  ef:	68 00 00 01 00       	push   $0x10000		      |	  d8:	be 00 00 fe ff       	mov    $0xfffe0000,%esi
  f4:	68 00 00 fe ff       	push   $0xfffe0000	      |	  dd:	75 49                	jne    128 <do_vgabios+0xa0>
  f9:	68 00 00 0c 00       	push   $0xc0000		      |	  df:	c6 05 01 00 fe ff aa 	movb   $0xaa,0xfffe0001
  fe:	e8 fc ff ff ff       	call   ff <do_vgabios+0x79>   |	  e6:	52                   	push   %edx
			ff: R_386_PC32	memcpy		      |	  e7:	68 00 00 01 00       	push   $0x10000
 103:	31 db                	xor    %ebx,%ebx	      |	  ec:	56                   	push   %esi
 105:	e8 fc ff ff ff       	call   106 <do_vgabios+0x80>  |	  ed:	68 00 00 0c 00       	push   $0xc0000
			106: R_386_PC32	write_protect_vgabios |	  f2:	e8 fc ff ff ff       	call   f3 <do_vgabios+0x6b>
 10a:	83 c4 0c             	add    $0xc,%esp	      |				f3: R_386_PC32	memcpy
 10d:	0f b6 83 00 00 fe ff 	movzbl 0xfffe0000(%ebx),%eax  |	  f7:	e8 fc ff ff ff       	call   f8 <do_vgabios+0x70>
 114:	50                   	push   %eax		      |				f8: R_386_PC32	write_protect_vgabios
 115:	68 34 00 00 00       	push   $0x34		      |	  fc:	31 db                	xor    %ebx,%ebx
			116: R_386_32	.rodata.str1.1	      |	  fe:	83 c4 10             	add    $0x10,%esp
 11a:	6a 07                	push   $0x7		      |	 101:	8d 76 00             	lea    0x0(%esi),%esi
 11c:	43                   	inc    %ebx		      |	 104:	50                   	push   %eax
 11d:	e8 fc ff ff ff       	call   11e <do_vgabios+0x98>  |	 105:	0f b6 04 33          	movzbl (%ebx,%esi,1),%eax
			11e: R_386_PC32	do_printk	      |	 109:	50                   	push   %eax
 122:	83 c4 0c             	add    $0xc,%esp	      |	 10a:	68 29 00 00 00       	push   $0x29
 125:	83 fb 0f             	cmp    $0xf,%ebx	      |				10b: R_386_32	.rodata
 128:	7e e3                	jle    10d <do_vgabios+0x87>  |	 10f:	6a 07                	push   $0x7
 12a:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx  |	 111:	43                   	inc    %ebx
 12d:	c9                   	leave  			      |	 112:	e8 fc ff ff ff       	call   113 <do_vgabios+0x8b>
 12e:	e9 cd fe ff ff       	jmp    0 <real_mode_switch_ca |				113: R_386_PC32	do_printk
 133:	68 3a 00 00 00       	push   $0x3a		      |	 117:	83 c4 10             	add    $0x10,%esp
			134: R_386_32	.rodata.str1.1	      |	 11a:	83 fb 0f             	cmp    $0xf,%ebx
 138:	6a 07                	push   $0x7		      |	 11d:	7e e5                	jle    104 <do_vgabios+0x7c>
 13a:	e8 fc ff ff ff       	call   13b <do_vgabios+0xb5>  |	 11f:	e8 dc fe ff ff       	call   0 <real_mode_switch_ca
			13b: R_386_PC32	do_printk	      |	 124:	eb 21                	jmp    147 <do_vgabios+0xbf>
 13f:	eb a2                	jmp    e3 <do_vgabios+0x5d>   |	 126:	89 f6                	mov    %esi,%esi
							      >	 128:	0f b6 05 01 00 fe ff 	movzbl 0xfffe0001,%eax
							      >	 12f:	50                   	push   %eax
							      >	 130:	0f b6 05 00 00 fe ff 	movzbl 0xfffe0000,%eax
							      >	 137:	50                   	push   %eax
							      >	 138:	68 2f 00 00 00       	push   $0x2f
							      >				139: R_386_32	.rodata
							      >	 13d:	6a 07                	push   $0x7
							      >	 13f:	e8 fc ff ff ff       	call   140 <do_vgabios+0xb8>
							      >				140: R_386_PC32	do_printk
							      >	 144:	83 c4 10             	add    $0x10,%esp
							      >	 147:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
							      >	 14a:	5b                   	pop    %ebx
							      >	 14b:	5e                   	pop    %esi
							      >	 14c:	5d                   	pop    %ebp
							      >	 14d:	c3                   	ret    
Disassembly of section .data:					Disassembly of section .data:

00000000 <rcsid>:						00000000 <rcsid>:
   0:	24 49                	and    $0x49,%al		   0:	24 49                	and    $0x49,%al
   2:	64 3a 20             	cmp    %fs:(%eax),%ah		   2:	64 3a 20             	cmp    %fs:(%eax),%ah
   5:	76 67                	jbe    6e <vgarestart+0x5>	   5:	76 67                	jbe    6e <vgarestart+0x5>
   7:	61                   	popa   				   7:	61                   	popa   
   8:	62 69 6f             	bound  %ebp,0x6f(%ecx)		   8:	62 69 6f             	bound  %ebp,0x6f(%ecx)
   b:	73 2e                	jae    3b <__rms_real+0x9>	   b:	73 2e                	jae    3b <__rms_real+0x9>
   d:	63 2c 76             	arpl   %bp,(%esi,%esi,2)	   d:	63 2c 76             	arpl   %bp,(%esi,%esi,2)
  10:	20 31                	and    %dh,(%ecx)		  10:	20 31                	and    %dh,(%ecx)
  12:	2e 31 30             	xor    %esi,%cs:(%eax)		  12:	2e 31 30             	xor    %esi,%cs:(%eax)
  15:	20 32                	and    %dh,(%edx)		  15:	20 32                	and    %dh,(%edx)
  17:	30 30                	xor    %dh,(%eax)		  17:	30 30                	xor    %dh,(%eax)
  19:	33 2f                	xor    (%edi),%ebp		  19:	33 2f                	xor    (%edi),%ebp
  1b:	30 37                	xor    %dh,(%edi)		  1b:	30 37                	xor    %dh,(%edi)
  1d:	2f                   	das    				  1d:	2f                   	das    
  1e:	32 32                	xor    (%edx),%dh		  1e:	32 32                	xor    (%edx),%dh
  20:	20 32                	and    %dh,(%edx)		  20:	20 32                	and    %dh,(%edx)
  22:	32 3a                	xor    (%edx),%bh		  22:	32 3a                	xor    (%edx),%bh
  24:	31 33                	xor    %esi,(%ebx)		  24:	31 33                	xor    %esi,(%ebx)
  26:	3a 30                	cmp    (%eax),%dh		  26:	3a 30                	cmp    (%eax),%dh
  28:	35 20 64 61 73       	xor    $0x73616420,%eax		  28:	35 20 64 61 73       	xor    $0x73616420,%eax
  2d:	68 20 45 78 70       	push   $0x70784520		  2d:	68 20 45 78 70       	push   $0x70784520
  32:	20 24 00             	and    %ah,(%eax,%eax,1)	  32:	20 24 00             	and    %ah,(%eax,%eax,1)
Disassembly of section .rodata.str1.1:			      |	Disassembly of section .note:

00000000 <.rodata.str1.1>:				      |	00000000 <.note>:
   0:	66 6f                	outsw  %ds:(%esi),(%dx)	      |	   0:	08 00                	or     %al,(%eax)
   2:	75 6e                	jne    72 <vgarestart+0x9>    |	   2:	00 00                	add    %al,(%eax)
   4:	64 20 56 47          	and    %dl,%fs:0x47(%esi)     |	   4:	00 00                	add    %al,(%eax)
   8:	41                   	inc    %ecx		      |	   6:	00 00                	add    %al,(%eax)
   9:	3a 20                	cmp    (%eax),%ah	      |	   8:	01 00                	add    %eax,(%eax)
   b:	76 69                	jbe    76 <vgarestart+0xd>    |	   a:	00 00                	add    %al,(%eax)
   d:	64                   	fs			      |	   c:	30 31                	xor    %dh,(%ecx)
   e:	3d 25 78 2c 20       	cmp    $0x202c7825,%eax	      |	   e:	2e 30 31             	xor    %dh,%cs:(%ecx)
  13:	64 69 64 3d 25 78 0a 	imul   $0x42000a78,%fs:0x25(% |	  11:	00 00                	add    %al,(%eax)
  1a:	00 42 						      |		...
  1c:	41                   	inc    %ecx		      |	Disassembly of section .rodata:
  1d:	44                   	inc    %esp		      |
  1e:	20 53 49             	and    %dl,0x49(%ebx)	      |	00000000 <.rodata>:
  21:	47                   	inc    %edi		      |	   0:	4e                   	dec    %esi
  22:	4e                   	dec    %esi		      |	   1:	4f                   	dec    %edi
  23:	41                   	inc    %ecx		      |	   2:	20 56 47             	and    %dl,0x47(%esi)
  24:	54                   	push   %esp		      |	   5:	41                   	inc    %ecx
  25:	55                   	push   %ebp		      |	   6:	20 46 4f             	and    %al,0x4f(%esi)
  26:	52                   	push   %edx		      |	   9:	55                   	push   %ebp
  27:	45                   	inc    %ebp		      |	   a:	4e                   	dec    %esi
  28:	20 30                	and    %dh,(%eax)	      |	   b:	44                   	inc    %esp
							      >	   c:	0a 00                	or     (%eax),%al
							      >	   e:	66 6f                	outsw  %ds:(%esi),(%dx)
							      >	  10:	75 6e                	jne    80 <unsupportint_recov
							      >	  12:	64 20 56 47          	and    %dl,%fs:0x47(%esi)
							      >	  16:	41                   	inc    %ecx
							      >	  17:	3a 20                	cmp    (%eax),%ah
							      >	  19:	76 69                	jbe    84 <unsupportint_recov
							      >	  1b:	64                   	fs
							      >	  1c:	3d 25 78 2c 20       	cmp    $0x202c7825,%eax
							      >	  21:	64 69 64 3d 25 78 0a 	imul   $0x30000a78,%fs:0x25(%
							      >	  28:	00 30 
  2a:	78 25                	js     51 <__rms_real+0x1f>	  2a:	78 25                	js     51 <__rms_real+0x1f>
  2c:	78 20                	js     4e <__rms_real+0x1c>	  2c:	78 20                	js     4e <__rms_real+0x1c>
  2e:	30 78 25             	xor    %bh,0x25(%eax)	      |	  2e:	00 42 41             	add    %al,0x41(%edx)
  31:	78 0a                	js     3d <.rodata.str1.1+0x3 |	  31:	44                   	inc    %esp
  33:	00 30                	add    %dh,(%eax)	      |	  32:	20 53 49             	and    %dl,0x49(%ebx)
  35:	78 25                	js     5c <__rms_real+0x2a>   |	  35:	47                   	inc    %edi
  37:	78 20                	js     59 <__rms_real+0x27>   |	  36:	4e                   	dec    %esi
  39:	00 4e 4f             	add    %cl,0x4f(%esi)	      |	  37:	41                   	inc    %ecx
  3c:	20 56 47             	and    %dl,0x47(%esi)	      |	  38:	54                   	push   %esp
  3f:	41                   	inc    %ecx		      |	  39:	55                   	push   %ebp
  40:	20 46 4f             	and    %al,0x4f(%esi)	      |	  3a:	52                   	push   %edx
  43:	55                   	push   %ebp		      |	  3b:	45                   	inc    %ebp
  44:	4e                   	dec    %esi		      |	  3c:	20 30                	and    %dh,(%eax)
  45:	44                   	inc    %esp		      |	  3e:	78 25                	js     65 <__rms_real+0x33>
  46:	0a 00                	or     (%eax),%al	      |	  40:	78 20                	js     62 <__rms_real+0x30>
							      >	  42:	30 78 25             	xor    %bh,0x25(%eax)
							      >	  45:	78 0a                	js     51 <__rms_real+0x1f>
							      >		...
Disassembly of section .comment:				Disassembly of section .comment:

00000000 <.comment>:						00000000 <.comment>:
   0:	00 47 43             	add    %al,0x43(%edi)		   0:	00 47 43             	add    %al,0x43(%edi)
   3:	43                   	inc    %ebx			   3:	43                   	inc    %ebx
   4:	3a 20                	cmp    (%eax),%ah		   4:	3a 20                	cmp    (%eax),%ah
   6:	28 47 4e             	sub    %al,0x4e(%edi)		   6:	28 47 4e             	sub    %al,0x4e(%edi)
   9:	55                   	push   %ebp			   9:	55                   	push   %ebp
   a:	29 20                	sub    %esp,(%eax)		   a:	29 20                	sub    %esp,(%eax)
   c:	33 2e                	xor    (%esi),%ebp	      |	   c:	32 2e                	xor    (%esi),%ch
   e:	32 2e                	xor    (%esi),%ch	      |	   e:	39 36                	cmp    %esi,(%esi)
  10:	33 00                	xor    (%eax),%eax	      |	  10:	20 32                	and    %dh,(%edx)
							      >	  12:	30 30                	xor    %dh,(%eax)
							      >	  14:	30 30                	xor    %dh,(%eax)
							      >	  16:	37                   	aaa    
							      >	  17:	33 31                	xor    (%ecx),%esi
							      >	  19:	20 28                	and    %ch,(%eax)
							      >	  1b:	52                   	push   %edx
							      >	  1c:	65 64 20 48 61       	and    %cl,%fs:%gs:0x61(%eax)
							      >	  21:	74 20                	je     43 <__rms_real+0x11>
							      >	  23:	4c                   	dec    %esp
							      >	  24:	69 6e 75 78 20 37 2e 	imul   $0x2e372078,0x75(%esi)
							      >	  2b:	32 20                	xor    (%eax),%ah
							      >	  2d:	32 2e                	xor    (%esi),%ch
							      >	  2f:	39 36                	cmp    %esi,(%esi)
							      >	  31:	2d 31 31 32 2e       	sub    $0x2e323131,%eax
							      >	  36:	37                   	aaa    
							      >	  37:	2e 31 29             	xor    %ebp,%cs:(%ecx)
							      >		...


The left side is the failure side, the right side is the working side.

Right side has nops in between functions, don't know if that matters.

-Dave



More information about the coreboot mailing list