IN:
0x000ffff0: ljmp 0xf000,0xe05b
AFTER FLAGS OPT:
0x0000: movl_T0_im 0xf000
0x0001: movl_T1_im 0xe05b
0x0002: movl_seg_T0_vm 0xb0
0x0003: movl_T0_T1
0x0004: jmp_T0
0x0005: movl_T0_0
0x0006: exit_tb
0x0007: end
OUT: [size=60]
0x002071f0: lis r2,184
0x002071f4: lwz r24,-28096(r2)
0x002071f8: lis r2,184
0x002071fc: lwz r25,-28096(r2)
0x00207200: lis r2,184
0x00207204: clrlwi r0,r24,16
0x00207208: lwz r2,-28096(r2)
0x0020720c: mr r9,r27
0x00207210: stwux r0,r9,r2
0x00207214: rlwinm r0,r0,4,0,27
0x00207218: stw r0,4(r9)
0x0020721c: mr r24,r25
0x00207220: stw r24,32(r27)
0x00207224: li r24,0
0x00207228: blr
Trace 0x002071f0 [0x000ffff0]
EAX=00000000 EBX=00000000 ECX=00000000 EDX=00000600
ESI=00000000 EDI=00000000 EBP=00000000 ESP=00000000
EIP=00000000 EFL=00000002 [-------] CPL=0 II=0
ES =0000 00000000 0000ffff 00000000
CS =f000 000f0000 0000ffff 00000000
SS =0000 00000000 0000ffff 00000000
DS =0000 00000000 0000ffff 00000000
FS =0000 00000000 0000ffff 00000000
GS =0000 00000000 0000ffff 00000000
LDT=0000 00000000 0000ffff 00008000
TR =0000 00000000 0000ffff 00008000
GDT= 00000000 0000ffff
IDT= 00000000 0000ffff
CR0=60000010 CR2=00000000 CR3=00000000 CR4=00000000
CCS=00000000 CCD=00000000 CCO=EFLAGS
----------------
IN:
0x000f0000: pushw %bp
0x000f0001: movw %sp,%bp
0x000f0003: pushw %ax
0x000f0004: pushw %cx
0x000f0005: pushw %es
0x000f0006: pushw %di
0x000f0007: movw 0xa(bp),%cx
0x000f000a: cmpw $0x0,%cx
0x000f000d: je 0xf001f
AFTER FLAGS OPT:
0x0000: movl_T0_EBP
0x0001: movl_A0_ESP
[snip]
I am still fiddling around with it and trying to wrap my head around
what Fabrice has done, but will post a diff if anyone wants it.