|
From: Dan K. <da...@ke...> - 2007-11-08 00:34:17
|
On Nov 7, 2007 4:17 PM, Julian Seward <js...@ac...> wrote:
> > 0x758591: subw $0x28, %sp
>
> Looks like you're in some hazy world between 16-bit and 32-bit code.
No doubt. You'd be surprised how many win32 apps use a bit of win16.
> Can you rerun all that stuff but with --trace-flags=10001000 so I
> can see what's going into the instruction selector.
See below. Do you prefer attachments?
> It would also be helpful to know if the app runs ok if you run
> with --took=none.
$ valgrind --took=none --trace-children=yes wine Picasa2.exe
valgrind: Bad option '--took=none'; aborting.
- Dan
==== BB 47751 (0x758580) BBs exec'd 68596482 ====
------------------------ Front end ------------------------
0x758580: pushl %ebp
------ IMark(0x758580, 1) ------
t0 = GET:I32(20)
t1 = Sub32(GET:I32(16),0x4:I32)
PUT(16) = t1
STle(t1) = t0
0x758581: movl %esp,%ebp
------ IMark(0x758581, 2) ------
PUT(60) = 0x758581:I32
PUT(20) = GET:I32(16)
0x758583: pushl %ecx
------ IMark(0x758583, 1) ------
PUT(60) = 0x758583:I32
t2 = GET:I32(4)
t3 = Sub32(GET:I32(16),0x4:I32)
PUT(16) = t3
STle(t3) = t2
0x758584: pushl %ebx
------ IMark(0x758584, 1) ------
PUT(60) = 0x758584:I32
t4 = GET:I32(12)
t5 = Sub32(GET:I32(16),0x4:I32)
PUT(16) = t5
STle(t5) = t4
0x758585: movl $0x0, -4(%ebp)
------ IMark(0x758585, 7) ------
PUT(60) = 0x758585:I32
t6 = Add32(GET:I32(20),0xFFFFFFFC:I32)
STle(t6) = 0x0:I32
0x75858C: pushw %bp
------ IMark(0x75858C, 2) ------
PUT(60) = 0x75858C:I32
t7 = GET:I16(20)
t8 = Sub32(GET:I32(16),0x2:I32)
PUT(16) = t8
STle(t8) = t7
0x75858E: movw %sp,%bp
------ IMark(0x75858E, 3) ------
PUT(60) = 0x75858E:I32
PUT(20) = GET:I16(16)
0x758591: subw $0x28, %sp
------ IMark(0x758591, 4) ------
PUT(60) = 0x758591:I32
t11 = GET:I16(16)
t10 = 0x28:I16
t9 = Sub16(t11,t10)
PUT(32) = 0x5:I32
PUT(36) = 16Uto32(t11)
PUT(40) = 16Uto32(t10)
PUT(44) = 0x0:I32
PUT(16) = t9
0x758595: pushl %eax
------ IMark(0x758595, 1) ------
PUT(60) = 0x758595:I32
t12 = GET:I32(0)
t13 = Sub32(GET:I32(16),0x4:I32)
PUT(16) = t13
STle(t13) = t12
0x758596: pushl %ebx
------ IMark(0x758596, 1) ------
PUT(60) = 0x758596:I32
t14 = GET:I32(12)
t15 = Sub32(GET:I32(16),0x4:I32)
PUT(16) = t15
STle(t15) = t14
0x758597: pushfl
------ IMark(0x758597, 1) ------
PUT(60) = 0x758597:I32
t16 = Sub32(GET:I32(16),0x4:I32)
PUT(16) = t16
t17 =
Or32(x86g_calculate_eflags_all[mcx=0x9]{0x380aab50}(GET:I32(32),GET:I32(36),GET:I32(40),GET:I32(44)):I32,0x202:I32)
t18 = Or32(t17,And32(GET:I32(48),0x400:I32))
t19 = Or32(t18,And32(Shl32(GET:I32(52),0x15:I8),0x200000:I32))
t20 = Or32(t19,And32(Shl32(GET:I32(56),0x12:I8),0x40000:I32))
STle(t16) = t20
0x758598: popl %eax
------ IMark(0x758598, 1) ------
PUT(60) = 0x758598:I32
t22 = GET:I32(16)
t21 = LDle:I32(t22)
PUT(16) = Add32(t22,0x4:I32)
PUT(0) = t21
0x758599: movl %eax,%ebx
------ IMark(0x758599, 2) ------
PUT(60) = 0x758599:I32
PUT(12) = GET:I32(0)
0x75859B: xorl $0x200000, %eax
------ IMark(0x75859B, 5) ------
PUT(60) = 0x75859B:I32
t23 = GET:I32(0)
t24 = 0x200000:I32
t25 = Xor32(t23,t24)
PUT(32) = 0xF:I32
PUT(36) = t25
PUT(40) = 0x0:I32
PUT(44) = 0x0:I32
PUT(0) = t25
0x7585A0: pushl %eax
------ IMark(0x7585A0, 1) ------
PUT(60) = 0x7585A0:I32
t26 = GET:I32(0)
t27 = Sub32(GET:I32(16),0x4:I32)
PUT(16) = t27
STle(t27) = t26
0x7585A1: popfl
------ IMark(0x7585A1, 1) ------
PUT(60) = 0x7585A1:I32
t29 = GET:I32(16)
t28 = LDle:I32(t29)
PUT(16) = Add32(t29,0x4:I32)
PUT(32) = 0x0:I32
PUT(40) = 0x0:I32
PUT(36) = And32(t28,0x8D5:I32)
PUT(44) = 0x0:I32
PUT(48) =
Mux0X(32to8(And32(Shr32(t28,0xA:I8),0x1:I32)),0x1:I32,0xFFFFFFFF:I32)
PUT(52) =
Mux0X(32to8(And32(Shr32(t28,0x15:I8),0x1:I32)),0x0:I32,0x1:I32)
PUT(56) =
Mux0X(32to8(And32(Shr32(t28,0x12:I8),0x1:I32)),0x0:I32,0x1:I32)
PUT(300) = 0x6:I32
if (CmpNE32(And32(t28,0x40000:I32),0x0:I32)) goto
{EmWarn} 0x7585A2:I32
0x7585A2: pushfl
------ IMark(0x7585A2, 1) ------
PUT(60) = 0x7585A2:I32
t30 = Sub32(GET:I32(16),0x4:I32)
PUT(16) = t30
t31 =
Or32(x86g_calculate_eflags_all[mcx=0x9]{0x380aab50}(GET:I32(32),GET:I32(36),GET:I32(40),GET:I32(44)):I32,0x202:I32)
t32 = Or32(t31,And32(GET:I32(48),0x400:I32))
t33 = Or32(t32,And32(Shl32(GET:I32(52),0x15:I8),0x200000:I32))
t34 = Or32(t33,And32(Shl32(GET:I32(56),0x12:I8),0x40000:I32))
STle(t30) = t34
0x7585A3: popl %eax
------ IMark(0x7585A3, 1) ------
PUT(60) = 0x7585A3:I32
t36 = GET:I32(16)
t35 = LDle:I32(t36)
PUT(16) = Add32(t36,0x4:I32)
PUT(0) = t35
0x7585A4: pushl %ebx
------ IMark(0x7585A4, 1) ------
PUT(60) = 0x7585A4:I32
t37 = GET:I32(12)
t38 = Sub32(GET:I32(16),0x4:I32)
PUT(16) = t38
STle(t38) = t37
0x7585A5: popfl
------ IMark(0x7585A5, 1) ------
PUT(60) = 0x7585A5:I32
t40 = GET:I32(16)
t39 = LDle:I32(t40)
PUT(16) = Add32(t40,0x4:I32)
PUT(32) = 0x0:I32
PUT(40) = 0x0:I32
PUT(36) = And32(t39,0x8D5:I32)
PUT(44) = 0x0:I32
PUT(48) =
Mux0X(32to8(And32(Shr32(t39,0xA:I8),0x1:I32)),0x1:I32,0xFFFFFFFF:I32)
PUT(52) =
Mux0X(32to8(And32(Shr32(t39,0x15:I8),0x1:I32)),0x0:I32,0x1:I32)
PUT(56) =
Mux0X(32to8(And32(Shr32(t39,0x12:I8),0x1:I32)),0x0:I32,0x1:I32)
PUT(300) = 0x6:I32
if (CmpNE32(And32(t39,0x40000:I32),0x0:I32)) goto
{EmWarn} 0x7585A6:I32
0x7585A6: xorl %ebx,%eax
------ IMark(0x7585A6, 2) ------
PUT(60) = 0x7585A6:I32
t43 = GET:I32(0)
t42 = GET:I32(12)
t41 = Xor32(t43,t42)
PUT(32) = 0xF:I32
PUT(36) = t41
PUT(40) = 0x0:I32
PUT(44) = 0x0:I32
PUT(0) = t41
0x7585A8: popl %ebx
------ IMark(0x7585A8, 1) ------
PUT(60) = 0x7585A8:I32
t45 = GET:I32(16)
t44 = LDle:I32(t45)
PUT(16) = Add32(t45,0x4:I32)
PUT(12) = t44
0x7585A9: popl %eax
------ IMark(0x7585A9, 1) ------
PUT(60) = 0x7585A9:I32
t47 = GET:I32(16)
t46 = LDle:I32(t47)
PUT(16) = Add32(t47,0x4:I32)
PUT(0) = t46
0x7585AA: jz-8 0x7585B2
------ IMark(0x7585AA, 2) ------
PUT(60) = 0x7585AA:I32
if
(32to1(x86g_calculate_condition[mcx=0x13]{0x380aa9f0}(0x4:I32,GET:I32(32),GET:I32(36),GET:I32(40),GET:I32(44)):I32))
goto {Boring} 0x7585B2:I32
goto {Boring} 0x7585AC:I32
. 0 758580 44
. 55 8B EC 51 53 C7 45 FC 00 00 00 00 66 55 66 8B EC 66 83 EC 28 50 53
9C 58 8B D8 35 00 00 20 00 50 9D 9C 58 53 9D 33 C3 5B 58 74 06
------------------------ After tree-building ------------------------
IRBB {
t0:I32 t1:I32 t2:I32 t3:I32 t4:I32 t5:I32 t6:I32 t7:I16
t8:I32 t9:I16 t10:I16 t11:I16 t12:I32 t13:I32 t14:I32 t15:I32
t16:I32 t17:I32 t18:I32 t19:I32 t20:I32 t21:I32 t22:I32 t23:I32
t24:I32 t25:I32 t26:I32 t27:I32 t28:I32 t29:I32 t30:I32 t31:I32
t32:I32 t33:I32 t34:I32 t35:I32 t36:I32 t37:I32 t38:I32 t39:I32
t40:I32 t41:I32 t42:I32 t43:I32 t44:I32 t45:I32 t46:I32 t47:I32
t48:I32 t49:I32 t50:I32 t51:I32 t52:I32 t53:I32 t54:I32 t55:I32
t56:I32 t57:I32 t58:I32 t59:I16 t60:I32 t61:I32 t62:I32 t63:I32
t64:I32 t65:I32 t66:I32 t67:I32 t68:I32 t69:I32 t70:I32 t71:I32
t72:I32 t73:I32 t74:I32 t75:I32 t76:I32 t77:I32 t78:I32 t79:I32
t80:I32 t81:I32 t82:I32 t83:I32 t84:I32 t85:I32 t86:I32 t87:I32
t88:I32 t89:I32 t90:I32 t91:I32 t92:I8 t93:I32 t94:I32 t95:I32
t96:I8 t97:I32 t98:I32 t99:I32 t100:I8 t101:I32
t102:I32 t103:I1
t104:I32 t105:I32 t106:I32 t107:I32 t108:I32 t109:I32
t110:I32 t111:I32
t112:I32 t113:I32 t114:I32 t115:I32 t116:I32 t117:I32
t118:I32 t119:I32
t120:I32 t121:I32 t122:I32 t123:I32 t124:I32 t125:I32
t126:I32 t127:I32
t128:I32 t129:I32 t130:I8 t131:I32 t132:I32 t133:I32
t134:I8 t135:I32
t136:I32 t137:I32 t138:I8 t139:I32 t140:I32 t141:I1
t142:I32 t143:I32
t144:I32 t145:I1 t146:I32 t147:I32 t148:I32 t149:I32
t150:I32 t151:I32
t152:I32 t153:I8 t154:I32 t155:I8 t156:I32 t157:I8
t158:I32 t159:I8
t160:I32 t161:I8 t162:I32 t163:I8 t164:I32 t165:I32
t166:I1 t167:I1
t168:I32 t169:I32 t170:I32 t171:I32 t172:I32 t173:I32
t174:I1 t175:I32
t176:I32 t177:I32 t178:I32 t179:I32 t180:I32 t181:I1
t182:I32 t183:I32
t184:I32 t185:I32 t186:I32 t187:I32 t188:I1 t189:I32
t190:I32 t191:I32
t192:I32 t193:I32 t194:I1 t195:I32 t196:I16 t197:I32
t198:I32 t199:I32
t200:I32 t201:I1 t202:I32 t203:I32 t204:I16 t205:I16
t206:I16 t207:I16
t208:I16 t209:I32 t210:I32 t211:I32 t212:I32 t213:I32
t214:I32 t215:I32
t216:I32 t217:I32 t218:I1 t219:I32 t220:I32 t221:I32
t222:I32 t223:I32
t224:I1 t225:I32 t226:I32 t227:I32 t228:I32 t229:I32
t230:I1 t231:I32
t232:I32 t233:I1 t234:I32 t235:I32 t236:I1 t237:I32
t238:I32 t239:I32
t240:I32 t241:I32 t242:I32 t243:I32 t244:I32 t245:I32
t246:I32 t247:I32
t248:I32 t249:I32 t250:I32 t251:I32 t252:I32 t253:I32
t254:I32 t255:I32
t256:I32 t257:I32 t258:I32 t259:I32 t260:I32 t261:I32
t262:I32 t263:I32
t264:I32 t265:I32 t266:I32 t267:I1 t268:I32 t269:I32
t270:I32 t271:I32
t272:I32 t273:I32 t274:I32 t275:I32 t276:I32 t277:I32
t278:I32 t279:I32
t280:I32 t281:I32 t282:I32 t283:I32 t284:I32 t285:I32
t286:I32 t287:I32
t288:I32 t289:I32 t290:I1 t291:I32 t292:I32 t293:I32
t294:I32 t295:I32
t296:I32 t297:I32 t298:I32 t299:I32 t300:I32 t301:I32
t302:I32 t303:I32
t304:I32 t305:I32 t306:I32 t307:I32 t308:I32 t309:I32
t310:I32 t311:I32
t312:I1 t313:I32 t314:I1 t315:I32 t316:I32 t317:I32
t318:I32 t319:I32
t320:I32 t321:I32 t322:I32 t323:I32 t324:I32 t325:I32
t326:I32 t327:I32
t328:I1 t329:I32 t330:I1 t331:I32 t332:I32 t333:I32
t334:I32 t335:I32
t336:I32 t337:I32 t338:I32 t339:I32 t340:I32 t341:I32
t342:I32 t343:I32
t344:I32 t345:I1 t346:I32 t347:I32 t348:I32 t349:I32
t350:I32 t351:I32
t352:I32 t353:I32 t354:I32 t355:I32 t356:I32 t357:I32
t358:I8 t359:I8
t360:I8 t361:I1 t362:I32 t363:I32 t364:I32 t365:I32
t366:I32 t367:I1
t368:I32 t369:I32 t370:I32 t371:I32 t372:I32 t373:I32
t374:I32 t375:I32
t376:I32 t377:I32 t378:I32 t379:I32 t380:I8 t381:I8
t382:I8 t383:I1
t384:I32 t385:I32 t386:I32 t387:I32 t388:I32 t389:I1
t390:I32 t391:I32
t392:I32 t393:I32 t394:I32 t395:I32 t396:I32 t397:I32
t398:I32 t399:I32
t400:I32 t401:I32 t402:I8 t403:I8 t404:I8 t405:I1
t406:I32 t407:I32
t408:I32 t409:I32 t410:I32 t411:I32 t412:I32 t413:I32
t414:I32 t415:I32
t416:I32 t417:I32 t418:I32 t419:I1 t420:I1 t421:I1
t422:I32 t423:I32
t424:I32 t425:I32 t426:I32 t427:I32 t428:I32 t429:I32
t430:I32 t431:I32
t432:I32 t433:I32 t434:I32 t435:I32 t436:I32 t437:I32
t438:I32 t439:I32
t440:I32 t441:I32 t442:I32 t443:I32 t444:I32 t445:I32
t446:I32 t447:I32
t448:I32 t449:I32 t450:I32 t451:I32 t452:I32 t453:I32
t454:I32 t455:I32
t456:I32 t457:I32 t458:I1 t459:I32 t460:I32 t461:I32
t462:I32 t463:I32
t464:I32 t465:I32 t466:I32 t467:I32 t468:I32 t469:I32
t470:I32 t471:I32
t472:I32 t473:I32 t474:I32 t475:I32 t476:I32 t477:I32
t478:I32 t479:I32
t480:I1 t481:I32 t482:I32 t483:I32 t484:I32 t485:I32
t486:I32 t487:I32
t488:I32 t489:I32 t490:I32 t491:I32 t492:I32 t493:I32
t494:I32 t495:I32
t496:I32 t497:I32 t498:I32 t499:I32 t500:I32 t501:I32
t502:I1 t503:I32
t504:I1 t505:I32 t506:I32 t507:I32 t508:I32 t509:I32
t510:I32 t511:I32
t512:I32 t513:I32 t514:I32 t515:I32 t516:I1 t517:I32
t518:I1 t519:I32
t520:I32 t521:I32 t522:I32 t523:I32 t524:I32 t525:I32
t526:I32 t527:I32
t528:I32 t529:I32 t530:I32 t531:I32 t532:I32 t533:I1
t534:I32 t535:I32
t536:I32 t537:I32 t538:I32 t539:I32 t540:I32 t541:I32
t542:I32 t543:I32
t544:I32 t545:I32 t546:I8 t547:I8 t548:I8 t549:I1
t550:I32 t551:I32
t552:I32 t553:I32 t554:I32 t555:I1 t556:I32 t557:I32
t558:I32 t559:I32
t560:I32 t561:I32 t562:I32 t563:I32 t564:I32 t565:I32
t566:I32 t567:I32
t568:I8 t569:I8 t570:I8 t571:I1 t572:I32 t573:I32
t574:I32 t575:I32
t576:I32 t577:I1 t578:I32 t579:I32 t580:I32 t581:I32
t582:I32 t583:I32
t584:I32 t585:I32 t586:I32 t587:I32 t588:I32 t589:I32
t590:I8 t591:I8
t592:I8 t593:I1 t594:I32 t595:I32 t596:I32 t597:I32
t598:I32 t599:I32
t600:I32 t601:I32 t602:I32 t603:I32 t604:I32 t605:I32
t606:I32 t607:I1
t608:I1 t609:I1 t610:I32 t611:I32 t612:I1 t613:I32
t614:I32 t615:I32
t616:I32 t617:I32 t618:I32 t619:I32 t620:I1 t621:I32
t622:I32 t623:I32
t624:I32 t625:I32 t626:I32 t627:I32 t628:I32 t629:I1
t630:I1 t631:I32
t632:I32 t633:I32 t634:I1 t635:I1 t636:I1 t637:I1
t638:I1 t639:I32
t640:I32
------ IMark(0x758580, 1) ------
t169 = GET:I32(336)
t172 = Or32(t169,Neg32(t169))
t48 = Sub32(GET:I32(16),0x4:I32)
t168 = GET:I32(340)
t0 = GET:I32(20)
PUT(336) = t172
DIRTY 1:I1 RdFX-gst(16,4) ::: track_new_mem_stack_4[rp=1]{0x3800aa50}(t48)
PUT(16) = t48
DIRTY CmpNEZ32(t172) RdFX-gst(16,4) RdFX-gst(60,4) :::
MC_(helperc_value_check4_fail){0x38005760}()
DIRTY 1:I1 RdFX-gst(16,4) RdFX-gst(60,4) :::
MC_(helperc_STOREV32le)[rp=2]{0x380059f0}(t48,t168)
STle(t48) = t0
------ IMark(0x758581, 2) ------
PUT(340) = 0x0:I32
PUT(20) = t48
------ IMark(0x758583, 1) ------
PUT(60) = 0x758583:I32
t51 = Sub32(t48,0x4:I32)
t176 = GET:I32(324)
t2 = GET:I32(4)
PUT(336) = 0x0:I32
DIRTY 1:I1 RdFX-gst(16,4) ::: track_new_mem_stack_4[rp=1]{0x3800aa50}(t51)
PUT(16) = t51
DIRTY 1:I1 RdFX-gst(16,4) RdFX-gst(60,4) :::
MC_(helperc_STOREV32le)[rp=2]{0x380059f0}(t51,t176)
STle(t51) = t2
------ IMark(0x758584, 1) ------
PUT(60) = 0x758584:I32
t183 = GET:I32(332)
t4 = GET:I32(12)
t53 = Sub32(t51,0x4:I32)
PUT(336) = 0x0:I32
DIRTY 1:I1 RdFX-gst(16,4) ::: track_new_mem_stack_4[rp=1]{0x3800aa50}(t53)
PUT(16) = t53
DIRTY 1:I1 RdFX-gst(16,4) RdFX-gst(60,4) :::
MC_(helperc_STOREV32le)[rp=2]{0x380059f0}(t53,t183)
STle(t53) = t4
------ IMark(0x758585, 7) ------
PUT(60) = 0x758585:I32
t55 = Add32(t48,0xFFFFFFFC:I32)
DIRTY 1:I1 RdFX-gst(16,4) RdFX-gst(60,4) :::
MC_(helperc_STOREV32le)[rp=2]{0x380059f0}(t55,0x0:I32)
STle(t55) = 0x0:I32
------ IMark(0x75858C, 2) ------
PUT(60) = 0x75858C:I32
t57 = Sub32(t53,0x2:I32)
t196 = GET:I16(340)
t7 = GET:I16(20)
PUT(336) = 0x0:I32
DIRTY 1:I1 ::: VG_(unknown_SP_update)[rp=2]{0x38025f32}(GET:I32(16),t57)
PUT(16) = t57
DIRTY 1:I1 RdFX-gst(16,4) RdFX-gst(60,4) :::
MC_(helperc_STOREV16le)[rp=2]{0x38005920}(t57,16Uto32(t196))
STle(t57) = t7
------ IMark(0x75858E, 3) ------
t204 = GET:I16(336)
t59 = GET:I16(16)
PUT(340) = t204
PUT(20) = t59
------ IMark(0x758591, 4) ------
t9 = Sub16(t59,0x28:I16)
PUT(336) = Or16(t204,Neg16(t204))
DIRTY 1:I1 ::: VG_(unknown_SP_update)[rp=2]{0x38025f32}(GET:I32(16),t9)
PUT(16) = t9
------ IMark(0x758595, 1) ------
PUT(60) = 0x758595:I32
t213 = GET:I32(336)
t216 = Or32(t213,Neg32(t213))
t62 = Sub32(GET:I32(16),0x4:I32)
t212 = GET:I32(320)
t12 = GET:I32(0)
PUT(336) = t216
DIRTY 1:I1 RdFX-gst(16,4) ::: track_new_mem_stack_4[rp=1]{0x3800aa50}(t62)
PUT(16) = t62
DIRTY CmpNEZ32(t216) RdFX-gst(16,4) RdFX-gst(60,4) :::
MC_(helperc_value_check4_fail){0x38005760}()
DIRTY 1:I1 RdFX-gst(16,4) RdFX-gst(60,4) :::
MC_(helperc_STOREV32le)[rp=2]{0x380059f0}(t62,t212)
STle(t62) = t12
------ IMark(0x758596, 1) ------
PUT(60) = 0x758596:I32
t64 = Sub32(t62,0x4:I32)
PUT(336) = 0x0:I32
DIRTY 1:I1 RdFX-gst(16,4) ::: track_new_mem_stack_4[rp=1]{0x3800aa50}(t64)
PUT(16) = t64
DIRTY 1:I1 RdFX-gst(16,4) RdFX-gst(60,4) :::
MC_(helperc_STOREV32le)[rp=2]{0x380059f0}(t64,t183)
STle(t64) = t4
------ IMark(0x758597, 1) ------
PUT(60) = 0x758597:I32
t66 = Sub32(t64,0x4:I32)
PUT(336) = 0x0:I32
DIRTY 1:I1 RdFX-gst(16,4) ::: track_new_mem_stack_4[rp=1]{0x3800aa50}(t66)
PUT(16) = t66
t237 = 1Sto32(CmpNEZ32(1Sto32(CmpNEZ32(16Uto32(t204)))))
t152 = x86g_calculate_eflags_all[mcx=0x9]{0x380aab50}(0x5:I32,16Uto32(t59),0x28:I32,0x0:I32):I32
t246 = And32(t237,And32(Or32(Not32(t152),t237),0xFFFFFDFD:I32))
t68 = Or32(t152,0x202:I32)
t75 = And32(GET:I32(48),0x400:I32)
t263 = And32(t246,And32(Or32(Not32(t68),t246),Not32(t75)))
t74 = Or32(t68,t75)
t78 = And32(Shl32(GET:I32(52),0x15:I8),0x200000:I32)
t286 = And32(t263,And32(Or32(Not32(t74),t263),Not32(t78)))
t77 = Or32(t74,t78)
t82 = And32(Shl32(GET:I32(56),0x12:I8),0x40000:I32)
DIRTY 1:I1 RdFX-gst(16,4) RdFX-gst(60,4) :::
MC_(helperc_STOREV32le)[rp=2]{0x380059f0}(t66,And32(t286,And32(Or32(Not32(t77),t286),Not32(t82))))
STle(t66) = Or32(t77,t82)
------ IMark(0x758598, 1) ------
PUT(60) = 0x758598:I32
t316 = DIRTY 1:I1 RdFX-gst(16,4) RdFX-gst(60,4) :::
MC_(helperc_LOADV32le)[rp=1]{0x38005dd0}(t66)
t21 = LDle:I32(t66)
------ IMark(0x758599, 2) ------
PUT(332) = t316
PUT(12) = t21
------ IMark(0x75859B, 5) ------
t25 = Xor32(t21,0x200000:I32)
PUT(320) = t316
PUT(0) = t25
------ IMark(0x7585A0, 1) ------
PUT(60) = 0x7585A0:I32
t87 = Sub32(Add32(t66,0x4:I32),0x4:I32)
PUT(336) = 0x0:I32
PUT(16) = t87
DIRTY 1:I1 RdFX-gst(16,4) RdFX-gst(60,4) :::
MC_(helperc_STOREV32le)[rp=2]{0x380059f0}(t87,t316)
STle(t87) = t25
------ IMark(0x7585A1, 1) ------
PUT(60) = 0x7585A1:I32
t332 = DIRTY 1:I1 RdFX-gst(16,4) RdFX-gst(60,4) :::
MC_(helperc_LOADV32le)[rp=1]{0x38005dd0}(t87)
t28 = LDle:I32(t87)
t89 = Add32(t87,0x4:I32)
PUT(336) = 0x0:I32
DIRTY 1:I1 RdFX-gst(16,4) ::: track_die_mem_stack_4[rp=1]{0x3800a1c0}(t89)
PUT(16) = t89
PUT(32) = 0x0:I32
PUT(360) = 0x0:I32
PUT(40) = 0x0:I32
t342 = And32(t332,And32(Or32(t28,t332),0x8D5:I32))
t90 = And32(t28,0x8D5:I32)
PUT(356) = t342
PUT(36) = t90
PUT(44) = 0x0:I32
t347 = Shr32(t332,0xA:I8)
t94 = Shr32(t28,0xA:I8)
t153 = 32to8(And32(t94,0x1:I32))
t364 = Or32(Mux0X(t153,0x0:I32,0x0:I32),1Sto32(CmpNEZ8(32to8(And32(t347,And32(Or32(t94,t347),0x1:I32))))))
t154 = Mux0X(t153,0x1:I32,0xFFFFFFFF:I32)
PUT(48) = t154
t369 = Shr32(t332,0x15:I8)
t98 = Shr32(t28,0x15:I8)
t155 = 32to8(And32(t98,0x1:I32))
t156 = Mux0X(t155,0x0:I32,0x1:I32)
PUT(52) = t156
t391 = Shr32(t332,0x12:I8)
t102 = Shr32(t28,0x12:I8)
t157 = 32to8(And32(t102,0x1:I32))
t158 = Mux0X(t157,0x0:I32,0x1:I32)
PUT(56) = t158
PUT(300) = 0x6:I32
DIRTY CmpNEZ32(And32(t332,And32(Or32(t28,t332),0x40000:I32)))
RdFX-gst(16,4) RdFX-gst(60,4) :::
MC_(helperc_value_check0_fail){0x380057a0}()
if (CmpNE32(And32(t28,0x40000:I32),0x0:I32)) goto {EmWarn} 0x7585A2:I32
------ IMark(0x7585A2, 1) ------
PUT(60) = 0x7585A2:I32
t105 = Sub32(t89,0x4:I32)
PUT(336) = 0x0:I32
DIRTY 1:I1 RdFX-gst(16,4) ::: track_new_mem_stack_4[rp=1]{0x3800aa50}(t105)
PUT(16) = t105
t430 = And32(t342,And32(Or32(t90,t342),0x8D5:I32))
t112 = And32(t90,0x8D5:I32)
t439 = And32(t430,And32(Or32(Not32(t112),t430),0xFFFFFDFD:I32))
t107 = Or32(t112,0x202:I32)
t446 = And32(t364,And32(Or32(t154,t364),0x400:I32))
t114 = And32(t154,0x400:I32)
t455 = And32(Or32(t439,t446),And32(Or32(Not32(t107),t439),Or32(Not32(t114),t446)))
t113 = Or32(t107,t114)
t460 = Shl32(Or32(Mux0X(t155,0x0:I32,0x0:I32),1Sto32(CmpNEZ8(32to8(And32(t369,And32(Or32(t98,t369),0x1:I32)))))),0x15:I8)
t118 = Shl32(t156,0x15:I8)
t468 = And32(t460,And32(Or32(t118,t460),0x200000:I32))
t117 = And32(t118,0x200000:I32)
t477 = And32(Or32(t455,t468),And32(Or32(Not32(t113),t455),Or32(Not32(t117),t468)))
t116 = Or32(t113,t117)
t482 = Shl32(Or32(Mux0X(t157,0x0:I32,0x0:I32),1Sto32(CmpNEZ8(32to8(And32(t391,And32(Or32(t102,t391),0x1:I32)))))),0x12:I8)
t122 = Shl32(t158,0x12:I8)
t490 = And32(t482,And32(Or32(t122,t482),0x40000:I32))
t121 = And32(t122,0x40000:I32)
DIRTY 1:I1 RdFX-gst(16,4) RdFX-gst(60,4) :::
MC_(helperc_STOREV32le)[rp=2]{0x380059f0}(t105,And32(Or32(t477,t490),And32(Or32(Not32(t116),t477),Or32(Not32(t121),t490))))
STle(t105) = Or32(t116,t121)
------ IMark(0x7585A3, 1) ------
PUT(60) = 0x7585A3:I32
t506 = DIRTY 1:I1 RdFX-gst(16,4) RdFX-gst(60,4) :::
MC_(helperc_LOADV32le)[rp=1]{0x38005dd0}(t105)
t35 = LDle:I32(t105)
PUT(320) = t506
PUT(0) = t35
------ IMark(0x7585A4, 1) ------
PUT(60) = 0x7585A4:I32
t125 = Sub32(Add32(t105,0x4:I32),0x4:I32)
PUT(336) = 0x0:I32
PUT(16) = t125
DIRTY 1:I1 RdFX-gst(16,4) RdFX-gst(60,4) :::
MC_(helperc_STOREV32le)[rp=2]{0x380059f0}(t125,t316)
STle(t125) = t21
------ IMark(0x7585A5, 1) ------
PUT(60) = 0x7585A5:I32
t520 = DIRTY 1:I1 RdFX-gst(16,4) RdFX-gst(60,4) :::
MC_(helperc_LOADV32le)[rp=1]{0x38005dd0}(t125)
t39 = LDle:I32(t125)
t127 = Add32(t125,0x4:I32)
PUT(336) = 0x0:I32
DIRTY 1:I1 RdFX-gst(16,4) ::: track_die_mem_stack_4[rp=1]{0x3800a1c0}(t127)
PUT(16) = t127
PUT(32) = 0x0:I32
PUT(360) = 0x0:I32
PUT(40) = 0x0:I32
PUT(356) = And32(t520,And32(Or32(t39,t520),0x8D5:I32))
PUT(36) = And32(t39,0x8D5:I32)
PUT(44) = 0x0:I32
PUT(48) = Mux0X(32to8(And32(Shr32(t39,0xA:I8),0x1:I32)),0x1:I32,0xFFFFFFFF:I32)
PUT(52) = Mux0X(32to8(And32(Shr32(t39,0x15:I8),0x1:I32)),0x0:I32,0x1:I32)
PUT(56) = Mux0X(32to8(And32(Shr32(t39,0x12:I8),0x1:I32)),0x0:I32,0x1:I32)
PUT(300) = 0x6:I32
DIRTY CmpNEZ32(And32(t520,And32(Or32(t39,t520),0x40000:I32)))
RdFX-gst(16,4) RdFX-gst(60,4) :::
MC_(helperc_value_check0_fail){0x380057a0}()
if (CmpNE32(And32(t39,0x40000:I32),0x0:I32)) goto {EmWarn} 0x7585A6:I32
------ IMark(0x7585A6, 2) ------
t610 = Or32(t506,t316)
t41 = Xor32(t35,t21)
PUT(32) = 0xF:I32
PUT(356) = t610
PUT(36) = t41
PUT(360) = 0x0:I32
PUT(40) = 0x0:I32
PUT(44) = 0x0:I32
------ IMark(0x7585A8, 1) ------
PUT(60) = 0x7585A8:I32
t614 = DIRTY 1:I1 RdFX-gst(16,4) RdFX-gst(60,4) :::
MC_(helperc_LOADV32le)[rp=1]{0x38005dd0}(t127)
t143 = Add32(t127,0x4:I32)
t44 = LDle:I32(t127)
PUT(336) = 0x0:I32
DIRTY 1:I1 RdFX-gst(16,4) ::: track_die_mem_stack_4[rp=1]{0x3800a1c0}(t143)
PUT(16) = t143
PUT(332) = t614
PUT(12) = t44
------ IMark(0x7585A9, 1) ------
PUT(60) = 0x7585A9:I32
t622 = DIRTY 1:I1 RdFX-gst(16,4) RdFX-gst(60,4) :::
MC_(helperc_LOADV32le)[rp=1]{0x38005dd0}(t143)
t144 = Add32(t143,0x4:I32)
t46 = LDle:I32(t143)
PUT(336) = 0x0:I32
DIRTY 1:I1 RdFX-gst(16,4) ::: track_die_mem_stack_4[rp=1]{0x3800a1c0}(t144)
PUT(16) = t144
PUT(320) = t622
PUT(0) = t46
------ IMark(0x7585AA, 2) ------
PUT(60) = 0x7585AA:I32
DIRTY 32to1(1Uto32(CmpNEZ32(t610))) RdFX-gst(16,4) RdFX-gst(60,4)
::: MC_(helperc_value_check0_fail){0x380057a0}()
if (32to1(1Uto32(CmpEQ32(t41,0x0:I32)))) goto {Boring} 0x7585B2:I32
goto {Boring} 0x7585AC:I32
}
vex: priv/host-x86/isel.c:510 (doHelperCall): Assertion
`typeOfIRExpr(env->type_env, args[i]) == Ity_I32' failed.
vex storage: T total 1290600092 bytes allocated
valgrind: the 'impossible' happened:
LibVEX called failure_exit().
==7065== at 0x380165D9: report_and_quit (m_libcassert.c:136)
==7065== by 0x3: ???
==7065== by 0x3: ???
==7065== by 0x621CE9F3: ???
==7065== by 0x621CEA63: ???
==7065== by 0x38017D1F: vgPlain_vprintf (m_libcprint.c:103)
==7065== by 0x38017EB1: vgPlain_message (m_libcprint.c:340)
==7065== by 0x621CE9F3: ???
==7065== by 0x3812FA62: (within
/usr/local/valgrind-3.2.3-wine/lib/valgrind/x86-linux/memcheck)
==7065== by 0x621CEA93: ???
==7065== by 0xA646573: ???
sched status:
running_tid=1
Thread 1: status = VgTs_Runnable
==7065== at 0x758580: ???
==7065== by 0x4522C2D: start_process (process.c:839)
==7065== by 0x402D9D6: (within /home/dank/wine-git/libs/wine/libwine.so.1.0)
|