Improve EAT_STREAM_PARAMETERS for Windows x86

Dumps of check_example.exe

Current:

?DoBlinkReleaseAssert@@YAX_N@Z:
  00404EDC: 55                 push        ebp
  00404EDD: 8B EC              mov         ebp,esp
  00404EDF: 80 7D 08 00        cmp         byte ptr [ebp+8],0
  00404EE3: 75 07              jne         00404EEC
  00404EE5: C6 05 00 00 00 00  mov         byte ptr ds:[0],0
            00
  00404EEC: 5D                 pop         ebp
  00404EED: C3                 ret
?DoCheck@@YAX_N@Z:
  00404EEE: 55                 push        ebp
  00404EEF: 8B EC              mov         ebp,esp
  00404EF1: 51                 push        ecx
  00404EF2: 83 65 FC 00        and         dword ptr [ebp-4],0
  00404EF6: 80 7D 08 00        cmp         byte ptr [ebp+8],0
  00404EFA: 75 07              jne         00404F03
  00404EFC: C6 05 00 00 00 00  mov         byte ptr ds:[0],0
            00
  00404F03: 8B E5              mov         esp,ebp
  00404F05: 5D                 pop         ebp
  00404F06: C3                 ret
_main:
  00404F07: 55                 push        ebp
  00404F08: 8B EC              mov         ebp,esp
  00404F0A: 83 7D 08 02        cmp         dword ptr [ebp+8],2
  00404F0E: 53                 push        ebx
  00404F0F: 0F 9F C3           setg        bl
  00404F12: 53                 push        ebx
  00404F13: E8 D6 FF FF FF     call        ?DoCheck@@YAX_N@Z
  00404F18: 53                 push        ebx
  00404F19: E8 BE FF FF FF     call        ?DoBlinkReleaseAssert@@YAX_N@Z
  00404F1E: 59                 pop         ecx
  00404F1F: 59                 pop         ecx
  00404F20: 33 C0              xor         eax,eax
  00404F22: 5B                 pop         ebx
  00404F23: 5D                 pop         ebp
  00404F24: C3                 ret

After this CL:

?DoBlinkReleaseAssert@@YAX_N@Z:
  00404EAC: 55                 push        ebp
  00404EAD: 8B EC              mov         ebp,esp
  00404EAF: 80 7D 08 00        cmp         byte ptr [ebp+8],0
  00404EB3: 75 07              jne         00404EBC
  00404EB5: C6 05 00 00 00 00  mov         byte ptr ds:[0],0
            00
  00404EBC: 5D                 pop         ebp
  00404EBD: C3                 ret
_main:
  00404EBE: 55                 push        ebp
  00404EBF: 8B EC              mov         ebp,esp
  00404EC1: 83 7D 08 02        cmp         dword ptr [ebp+8],2
  00404EC5: 53                 push        ebx
  00404EC6: 0F 9F C3           setg        bl
  00404EC9: 53                 push        ebx
  00404ECA: E8 DD FF FF FF     call        ?DoBlinkReleaseAssert@@YAX_N@Z
  00404ECF: 53                 push        ebx
  00404ED0: E8 D7 FF FF FF     call        ?DoBlinkReleaseAssert@@YAX_N@Z
  00404ED5: 59                 pop         ecx
  00404ED6: 59                 pop         ecx
  00404ED7: 33 C0              xor         eax,eax
  00404ED9: 5B                 pop         ebx
  00404EDA: 5D                 pop         ebp
  00404EDB: C3                 ret

Amusingly, I was confused because I thought I was going crazy when
DoCheck wasn't showing up in the /disasm. But of course, it's because it
got COMDAT'd with the Blink one, as we want. :)

R=primiano@chromium.org
BUG=672699

Review-Url: https://codereview.chromium.org/2559323007
Cr-Commit-Position: refs/heads/master@{#437763}
2 files changed