VirtualBox

Changeset 38018 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Jul 18, 2011 1:43:36 PM (13 years ago)
Author:
vboxsync
Message:

IEM: Made it link on 32-bit windows.

Location:
trunk/src/VBox/VMM/VMMAll
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAll.cpp

    r37955 r38018  
    35353535                pEvtRec->enmEvent = IEMVERIFYEVENT_RAM_READ;
    35363536                pEvtRec->u.RamRead.GCPhys  = GCPhysFirst;
    3537                 pEvtRec->u.RamRead.cb      = cbMem;
     3537                pEvtRec->u.RamRead.cb      = (uint32_t)cbMem;
    35383538                pEvtRec->pNext = *pIemCpu->ppIemEvtRecNext;
    35393539                *pIemCpu->ppIemEvtRecNext = pEvtRec;
     
    55045504    pEvtRec->enmEvent = IEMVERIFYEVENT_RAM_READ;
    55055505    pEvtRec->u.RamRead.GCPhys  = GCPhys;
    5506     pEvtRec->u.RamRead.cb      = cbValue;
     5506    pEvtRec->u.RamRead.cb      = (uint32_t)cbValue;
    55075507    pEvtRec->pNext = *pIemCpu->ppOtherEvtRecNext;
    55085508    *pIemCpu->ppOtherEvtRecNext = pEvtRec;
     
    55245524    pEvtRec->enmEvent = IEMVERIFYEVENT_RAM_WRITE;
    55255525    pEvtRec->u.RamWrite.GCPhys   = GCPhys;
    5526     pEvtRec->u.RamWrite.cb       = cbValue;
     5526    pEvtRec->u.RamWrite.cb       = (uint32_t)cbValue;
    55275527    pEvtRec->u.RamWrite.ab[0]    = RT_BYTE1(u32Value);
    55285528    pEvtRec->u.RamWrite.ab[1]    = RT_BYTE2(u32Value);
     
    55485548    pEvtRec->enmEvent = IEMVERIFYEVENT_IOPORT_READ;
    55495549    pEvtRec->u.IOPortRead.Port    = Port;
    5550     pEvtRec->u.IOPortRead.cbValue = cbValue;
     5550    pEvtRec->u.IOPortRead.cbValue = (uint32_t)cbValue;
    55515551    pEvtRec->pNext = *pIemCpu->ppOtherEvtRecNext;
    55525552    *pIemCpu->ppOtherEvtRecNext = pEvtRec;
     
    55675567    pEvtRec->enmEvent = IEMVERIFYEVENT_IOPORT_WRITE;
    55685568    pEvtRec->u.IOPortWrite.Port     = Port;
    5569     pEvtRec->u.IOPortWrite.cbValue  = cbValue;
     5569    pEvtRec->u.IOPortWrite.cbValue  = (uint32_t)cbValue;
    55705570    pEvtRec->u.IOPortWrite.u32Value = u32Value;
    55715571    pEvtRec->pNext = *pIemCpu->ppOtherEvtRecNext;
     
    56025602        pEvtRec->enmEvent = IEMVERIFYEVENT_IOPORT_READ;
    56035603        pEvtRec->u.IOPortRead.Port    = Port;
    5604         pEvtRec->u.IOPortRead.cbValue = cbValue;
     5604        pEvtRec->u.IOPortRead.cbValue = (uint32_t)cbValue;
    56055605        pEvtRec->pNext = *pIemCpu->ppIemEvtRecNext;
    56065606        *pIemCpu->ppIemEvtRecNext = pEvtRec;
     
    56285628        pEvtRec->enmEvent = IEMVERIFYEVENT_IOPORT_WRITE;
    56295629        pEvtRec->u.IOPortWrite.Port     = Port;
    5630         pEvtRec->u.IOPortWrite.cbValue  = cbValue;
     5630        pEvtRec->u.IOPortWrite.cbValue  = (uint32_t)cbValue;
    56315631        pEvtRec->u.IOPortWrite.u32Value = u32Value;
    56325632        pEvtRec->pNext = *pIemCpu->ppIemEvtRecNext;
  • trunk/src/VBox/VMM/VMMAll/IEMAllAImpl.asm

    r37955 r38018  
    168168 %define T1_16      di
    169169%endif
     170
     171;;
     172; NAME for fastcall functions.
     173;
     174;; @todo 'global @fastcall@12' is still broken in yasm and requires dollar
     175;         escaping (or whatever the dollar is good for here).  Thus the ugly
     176;         prefix argument.
     177;
     178%define NAME_FASTCALL(a_Name, a_cbArgs, a_Dollar)   NAME(a_aName)
     179%ifdef RT_ARCH_X86
     180 %ifdef RT_OS_WINDOWS                                 
     181  %undef NAME_FASTCALL
     182  %define NAME_FASTCALL(a_Name, a_cbArgs, a_Prefix) a_Prefix %+ a_Name %+ @ %+ a_cbArgs
     183 %endif       
     184%endif
     185
     186;;
     187; BEGINPROC for fastcall functions.
     188;
     189; @param        1       The function name (C).
     190; @param        2       The argument size on x86.
     191;
     192%macro BEGINPROC_FASTCALL 2
     193 %ifdef ASM_FORMAT_PE
     194  export %1=NAME_FASTCALL(%1,%2,$@)
     195 %endif
     196 %ifdef __NASM__
     197  %ifdef ASM_FORMAT_OMF
     198   export NAME(%1) NAME_FASTCALL(%1,%2,$@)
     199  %endif
     200 %endif
     201 %ifndef ASM_FORMAT_BIN
     202  global NAME_FASTCALL(%1,%2,$@)
     203 %endif
     204NAME_FASTCALL(%1,%2,@):
     205%endmacro
    170206
    171207
     
    228264%macro IEMIMPL_BIN_OP 4
    229265BEGINCODE
    230 BEGINPROC iemAImpl_ %+ %1 %+ _u8
     266BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u8, 12
    231267        PROLOGUE_3_ARGS
    232268        IEM_MAYBE_LOAD_FLAGS           A2, %3, %4
     
    237273ENDPROC iemAImpl_ %+ %1 %+ _u8
    238274
    239 BEGINPROC iemAImpl_ %+ %1 %+ _u16
     275BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16, 12
    240276        PROLOGUE_3_ARGS
    241277        IEM_MAYBE_LOAD_FLAGS           A2, %3, %4
     
    246282ENDPROC iemAImpl_ %+ %1 %+ _u16
    247283
    248 BEGINPROC iemAImpl_ %+ %1 %+ _u32
     284BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32, 12
    249285        PROLOGUE_3_ARGS
    250286        IEM_MAYBE_LOAD_FLAGS           A2, %3, %4
     
    256292
    257293 %ifdef RT_ARCH_AMD64
    258 BEGINPROC iemAImpl_ %+ %1 %+ _u64
     294BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 16
    259295        PROLOGUE_3_ARGS
    260296        IEM_MAYBE_LOAD_FLAGS           A2, %3, %4
     
    265301ENDPROC iemAImpl_ %+ %1 %+ _u64
    266302 %else ; stub it for now - later, replace with hand coded stuff.
    267 BEGINPROC iemAImpl_ %+ %1 %+ _u64
     303BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 16
    268304        int3
    269305        ret
     
    273309 %if %2 != 0 ; locked versions requested?
    274310
    275 BEGINPROC iemAImpl_ %+ %1 %+ _u8_locked
     311BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u8_locked, 12
    276312        PROLOGUE_3_ARGS
    277313        IEM_MAYBE_LOAD_FLAGS           A2, %3, %4
     
    282318ENDPROC iemAImpl_ %+ %1 %+ _u8_locked
    283319
    284 BEGINPROC iemAImpl_ %+ %1 %+ _u16_locked
     320BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16_locked, 12
    285321        PROLOGUE_3_ARGS
    286322        IEM_MAYBE_LOAD_FLAGS           A2, %3, %4
     
    291327ENDPROC iemAImpl_ %+ %1 %+ _u16_locked
    292328
    293 BEGINPROC iemAImpl_ %+ %1 %+ _u32_locked
     329BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32_locked, 12
    294330        PROLOGUE_3_ARGS
    295331        IEM_MAYBE_LOAD_FLAGS           A2, %3, %4
     
    301337
    302338  %ifdef RT_ARCH_AMD64
    303 BEGINPROC iemAImpl_ %+ %1 %+ _u64_locked
     339BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64_locked, 16
    304340        PROLOGUE_3_ARGS
    305341        IEM_MAYBE_LOAD_FLAGS           A2, %3, %4
     
    310346ENDPROC iemAImpl_ %+ %1 %+ _u64_locked
    311347  %else ; stub it for now - later, replace with hand coded stuff.
    312 BEGINPROC iemAImpl_ %+ %1 %+ _u64_locked
     348BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64_locked, 16
    313349        int3
    314350        ret
     
    347383%macro IEMIMPL_BIT_OP 4
    348384BEGINCODE
    349 BEGINPROC iemAImpl_ %+ %1 %+ _u16
     385BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16, 12
    350386        PROLOGUE_3_ARGS
    351387        IEM_MAYBE_LOAD_FLAGS           A2, %3, %4
     
    356392ENDPROC iemAImpl_ %+ %1 %+ _u16
    357393
    358 BEGINPROC iemAImpl_ %+ %1 %+ _u32
     394BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32, 12
    359395        PROLOGUE_3_ARGS
    360396        IEM_MAYBE_LOAD_FLAGS           A2, %3, %4
     
    366402
    367403 %ifdef RT_ARCH_AMD64
    368 BEGINPROC iemAImpl_ %+ %1 %+ _u64
     404BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 16
    369405        PROLOGUE_3_ARGS
    370406        IEM_MAYBE_LOAD_FLAGS           A2, %3, %4
     
    375411ENDPROC iemAImpl_ %+ %1 %+ _u64
    376412 %else ; stub it for now - later, replace with hand coded stuff.
    377 BEGINPROC iemAImpl_ %+ %1 %+ _u64
     413BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 16
    378414        int3
    379415        ret
     
    383419 %if %2 != 0 ; locked versions requested?
    384420
    385 BEGINPROC iemAImpl_ %+ %1 %+ _u16_locked
     421BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16_locked, 12
    386422        PROLOGUE_3_ARGS
    387423        IEM_MAYBE_LOAD_FLAGS           A2, %3, %4
     
    392428ENDPROC iemAImpl_ %+ %1 %+ _u16_locked
    393429
    394 BEGINPROC iemAImpl_ %+ %1 %+ _u32_locked
     430BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32_locked, 12
    395431        PROLOGUE_3_ARGS
    396432        IEM_MAYBE_LOAD_FLAGS           A2, %3, %4
     
    402438
    403439  %ifdef RT_ARCH_AMD64
    404 BEGINPROC iemAImpl_ %+ %1 %+ _u64_locked
     440BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64_locked, 16
    405441        PROLOGUE_3_ARGS
    406442        IEM_MAYBE_LOAD_FLAGS           A2, %3, %4
     
    411447ENDPROC iemAImpl_ %+ %1 %+ _u64_locked
    412448  %else ; stub it for now - later, replace with hand coded stuff.
    413 BEGINPROC iemAImpl_ %+ %1 %+ _u64_locked
     449BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64_locked, 16
    414450        int3
    415451        ret
     
    438474%macro IEMIMPL_BIT_OP 3
    439475BEGINCODE
    440 BEGINPROC iemAImpl_ %+ %1 %+ _u16
     476BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16, 12
    441477        PROLOGUE_3_ARGS
    442478        IEM_MAYBE_LOAD_FLAGS           A2, %2, %3
     
    448484ENDPROC iemAImpl_ %+ %1 %+ _u16
    449485
    450 BEGINPROC iemAImpl_ %+ %1 %+ _u32
     486BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32, 12
    451487        PROLOGUE_3_ARGS
    452488        IEM_MAYBE_LOAD_FLAGS           A2, %2, %3
     
    459495
    460496 %ifdef RT_ARCH_AMD64
    461 BEGINPROC iemAImpl_ %+ %1 %+ _u64
     497BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 16
    462498        PROLOGUE_3_ARGS
    463499        IEM_MAYBE_LOAD_FLAGS           A2, %2, %3
     
    469505ENDPROC iemAImpl_ %+ %1 %+ _u64
    470506 %else ; stub it for now - later, replace with hand coded stuff.
    471 BEGINPROC iemAImpl_ %+ %1 %+ _u64
     507BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 16
    472508        int3
    473509        ret
     
    484520;
    485521BEGINCODE
    486 BEGINPROC iemAImpl_imul_two_u16
     522BEGINPROC_FASTCALL iemAImpl_imul_two_u16, 12
    487523        PROLOGUE_3_ARGS
    488524        IEM_MAYBE_LOAD_FLAGS A2, (X86_EFL_OF | X86_EFL_CF), (X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF)
     
    494530ENDPROC iemAImpl_imul_two_u16
    495531
    496 BEGINPROC iemAImpl_imul_two_u32
     532BEGINPROC_FASTCALL iemAImpl_imul_two_u32, 12
    497533        PROLOGUE_3_ARGS
    498534        IEM_MAYBE_LOAD_FLAGS A2, (X86_EFL_OF | X86_EFL_CF), (X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF)
     
    504540ENDPROC iemAImpl_imul_two_u32
    505541
    506 BEGINPROC iemAImpl_imul_two_u64
     542BEGINPROC_FASTCALL iemAImpl_imul_two_u64, 16
    507543        PROLOGUE_3_ARGS
    508544%ifdef RT_ARCH_AMD64
     
    526562;
    527563BEGINCODE
    528 BEGINPROC iemAImpl_xchg_u8
     564BEGINPROC_FASTCALL iemAImpl_xchg_u8, 8
    529565        PROLOGUE_2_ARGS
    530566        mov     T0_8, [A1]
     
    535571ENDPROC iemAImpl_xchg_u8
    536572
    537 BEGINPROC iemAImpl_xchg_u16
     573BEGINPROC_FASTCALL iemAImpl_xchg_u16, 8
    538574        PROLOGUE_2_ARGS
    539575        mov     T0_16, [A1]
     
    544580ENDPROC iemAImpl_xchg_u16
    545581
    546 BEGINPROC iemAImpl_xchg_u32
     582BEGINPROC_FASTCALL iemAImpl_xchg_u32, 8
    547583        PROLOGUE_2_ARGS
    548584        mov     T0_32, [A1]
     
    553589ENDPROC iemAImpl_xchg_u32
    554590
    555 BEGINPROC iemAImpl_xchg_u64
     591BEGINPROC_FASTCALL iemAImpl_xchg_u64, 8
    556592%ifdef RT_ARCH_AMD64
    557593        PROLOGUE_2_ARGS
     
    575611;
    576612BEGINCODE
    577 BEGINPROC iemAImpl_xadd_u8
     613BEGINPROC_FASTCALL iemAImpl_xadd_u8, 12
    578614        PROLOGUE_3_ARGS
    579615        IEM_MAYBE_LOAD_FLAGS A2, (X86_EFL_OF | X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF | X86_EFL_CF), 0
     
    586622ENDPROC iemAImpl_xadd_u8
    587623
    588 BEGINPROC iemAImpl_xadd_u16
     624BEGINPROC_FASTCALL iemAImpl_xadd_u16, 12
    589625        PROLOGUE_3_ARGS
    590626        IEM_MAYBE_LOAD_FLAGS A2, (X86_EFL_OF | X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF | X86_EFL_CF), 0
     
    597633ENDPROC iemAImpl_xadd_u16
    598634
    599 BEGINPROC iemAImpl_xadd_u32
     635BEGINPROC_FASTCALL iemAImpl_xadd_u32, 12
    600636        PROLOGUE_3_ARGS
    601637        IEM_MAYBE_LOAD_FLAGS A2, (X86_EFL_OF | X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF | X86_EFL_CF), 0
     
    608644ENDPROC iemAImpl_xadd_u32
    609645
    610 BEGINPROC iemAImpl_xadd_u64
     646BEGINPROC_FASTCALL iemAImpl_xadd_u64, 12
    611647%ifdef RT_ARCH_AMD64
    612648        PROLOGUE_3_ARGS
     
    623659ENDPROC iemAImpl_xadd_u64
    624660
    625 BEGINPROC iemAImpl_xadd_u8_locked
     661BEGINPROC_FASTCALL iemAImpl_xadd_u8_locked, 12
    626662        PROLOGUE_3_ARGS
    627663        IEM_MAYBE_LOAD_FLAGS A2, (X86_EFL_OF | X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF | X86_EFL_CF), 0
     
    634670ENDPROC iemAImpl_xadd_u8_locked
    635671
    636 BEGINPROC iemAImpl_xadd_u16_locked
     672BEGINPROC_FASTCALL iemAImpl_xadd_u16_locked, 12
    637673        PROLOGUE_3_ARGS
    638674        IEM_MAYBE_LOAD_FLAGS A2, (X86_EFL_OF | X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF | X86_EFL_CF), 0
     
    645681ENDPROC iemAImpl_xadd_u16_locked
    646682
    647 BEGINPROC iemAImpl_xadd_u32_locked
     683BEGINPROC_FASTCALL iemAImpl_xadd_u32_locked, 12
    648684        PROLOGUE_3_ARGS
    649685        IEM_MAYBE_LOAD_FLAGS A2, (X86_EFL_OF | X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF | X86_EFL_CF), 0
     
    656692ENDPROC iemAImpl_xadd_u32_locked
    657693
    658 BEGINPROC iemAImpl_xadd_u64_locked
     694BEGINPROC_FASTCALL iemAImpl_xadd_u64_locked, 12
    659695%ifdef RT_ARCH_AMD64
    660696        PROLOGUE_3_ARGS
     
    688724%macro IEMIMPL_UNARY_OP 3
    689725BEGINCODE
    690 BEGINPROC iemAImpl_ %+ %1 %+ _u8
     726BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u8, 8
    691727        PROLOGUE_2_ARGS
    692728        IEM_MAYBE_LOAD_FLAGS A1, %2, %3
     
    697733ENDPROC iemAImpl_ %+ %1 %+ _u8
    698734
    699 BEGINPROC iemAImpl_ %+ %1 %+ _u8_locked
     735BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u8_locked, 8
    700736        PROLOGUE_2_ARGS
    701737        IEM_MAYBE_LOAD_FLAGS A1, %2, %3
     
    706742ENDPROC iemAImpl_ %+ %1 %+ _u8_locked
    707743
    708 BEGINPROC iemAImpl_ %+ %1 %+ _u16
     744BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16, 8
    709745        PROLOGUE_2_ARGS
    710746        IEM_MAYBE_LOAD_FLAGS A1, %2, %3
     
    715751ENDPROC iemAImpl_ %+ %1 %+ _u16
    716752
    717 BEGINPROC iemAImpl_ %+ %1 %+ _u16_locked
     753BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16_locked, 8
    718754        PROLOGUE_2_ARGS
    719755        IEM_MAYBE_LOAD_FLAGS A1, %2, %3
     
    724760ENDPROC iemAImpl_ %+ %1 %+ _u16_locked
    725761
    726 BEGINPROC iemAImpl_ %+ %1 %+ _u32
     762BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32, 8
    727763        PROLOGUE_2_ARGS
    728764        IEM_MAYBE_LOAD_FLAGS A1, %2, %3
     
    733769ENDPROC iemAImpl_ %+ %1 %+ _u32
    734770
    735 BEGINPROC iemAImpl_ %+ %1 %+ _u32_locked
     771BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32_locked, 8
    736772        PROLOGUE_2_ARGS
    737773        IEM_MAYBE_LOAD_FLAGS A1, %2, %3
     
    743779
    744780 %ifdef RT_ARCH_AMD64
    745 BEGINPROC iemAImpl_ %+ %1 %+ _u64
     781BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 8
    746782        PROLOGUE_2_ARGS
    747783        IEM_MAYBE_LOAD_FLAGS A1, %2, %3
     
    752788ENDPROC iemAImpl_ %+ %1 %+ _u64
    753789
    754 BEGINPROC iemAImpl_ %+ %1 %+ _u64_locked
     790BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64_locked, 8
    755791        PROLOGUE_2_ARGS
    756792        IEM_MAYBE_LOAD_FLAGS A1, %2, %3
     
    762798 %else
    763799        ; stub them for now.
    764 BEGINPROC iemAImpl_ %+ %1 %+ _u64
    765         int3
    766         ret
    767 ENDPROC iemAImpl_ %+ %1 %+ _u64
    768 BEGINPROC iemAImpl_ %+ %1 %+ _u64_locked
     800BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 8
     801        int3
     802        ret
     803ENDPROC iemAImpl_ %+ %1 %+ _u64
     804BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64_locked, 8
    769805        int3
    770806        ret
     
    798834%macro IEMIMPL_SHIFT_OP 3
    799835BEGINCODE
    800 BEGINPROC iemAImpl_ %+ %1 %+ _u8
     836BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u8, 12
    801837        PROLOGUE_3_ARGS
    802838        IEM_MAYBE_LOAD_FLAGS A2, %2, %3
     
    813849ENDPROC iemAImpl_ %+ %1 %+ _u8
    814850
    815 BEGINPROC iemAImpl_ %+ %1 %+ _u16
     851BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16, 12
    816852        PROLOGUE_3_ARGS
    817853        IEM_MAYBE_LOAD_FLAGS A2, %2, %3
     
    828864ENDPROC iemAImpl_ %+ %1 %+ _u16
    829865
    830 BEGINPROC iemAImpl_ %+ %1 %+ _u32
     866BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32, 12
    831867        PROLOGUE_3_ARGS
    832868        IEM_MAYBE_LOAD_FLAGS A2, %2, %3
     
    844880
    845881 %ifdef RT_ARCH_AMD64
    846 BEGINPROC iemAImpl_ %+ %1 %+ _u64
     882BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 12
    847883        PROLOGUE_3_ARGS
    848884        IEM_MAYBE_LOAD_FLAGS A2, %2, %3
     
    859895ENDPROC iemAImpl_ %+ %1 %+ _u64
    860896 %else ; stub it for now - later, replace with hand coded stuff.
    861 BEGINPROC iemAImpl_ %+ %1 %+ _u64
     897BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 12
    862898        int3
    863899        ret
     
    877913
    878914;;
    879 ; Macro for implementing a doulbe precision shift operation.
     915; Macro for implementing a double precision shift operation.
    880916;
    881917; This will generate code for the 16, 32 and 64 bit accesses, except on
     
    893929%macro IEMIMPL_SHIFT_DBL_OP 3
    894930BEGINCODE
    895 BEGINPROC iemAImpl_ %+ %1 %+ _u16
     931BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16, 16
    896932        PROLOGUE_4_ARGS
    897933        IEM_MAYBE_LOAD_FLAGS A3, %2, %3
     
    909945ENDPROC iemAImpl_ %+ %1 %+ _u16
    910946
    911 BEGINPROC iemAImpl_ %+ %1 %+ _u32
     947BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32, 16
    912948        PROLOGUE_4_ARGS
    913949        IEM_MAYBE_LOAD_FLAGS A3, %2, %3
     
    926962
    927963 %ifdef RT_ARCH_AMD64
    928 BEGINPROC iemAImpl_ %+ %1 %+ _u64
     964BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 20
    929965        PROLOGUE_4_ARGS
    930966        IEM_MAYBE_LOAD_FLAGS A3, %2, %3
     
    942978ENDPROC iemAImpl_ %+ %1 %+ _u64
    943979 %else ; stub it for now - later, replace with hand coded stuff.
    944 BEGINPROC iemAImpl_ %+ %1 %+ _u64
     980BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 20
    945981        int3
    946982        ret
     
    9751011%macro IEMIMPL_MUL_OP 3
    9761012BEGINCODE
    977 BEGINPROC iemAImpl_ %+ %1 %+ _u8
     1013BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u8, 12
    9781014        PROLOGUE_3_ARGS
    9791015        IEM_MAYBE_LOAD_FLAGS A2, %2, %3
     
    9871023ENDPROC iemAImpl_ %+ %1 %+ _u8
    9881024
    989 BEGINPROC iemAImpl_ %+ %1 %+ _u16
     1025BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16, 16
    9901026        PROLOGUE_4_ARGS
    9911027        IEM_MAYBE_LOAD_FLAGS A3, %2, %3
     
    10071043ENDPROC iemAImpl_ %+ %1 %+ _u16
    10081044
    1009 BEGINPROC iemAImpl_ %+ %1 %+ _u32
     1045BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32, 16
    10101046        PROLOGUE_4_ARGS
    10111047        IEM_MAYBE_LOAD_FLAGS A3, %2, %3
     
    10281064
    10291065 %ifdef RT_ARCH_AMD64
    1030 BEGINPROC iemAImpl_ %+ %1 %+ _u64
     1066BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 20
    10311067        PROLOGUE_4_ARGS
    10321068        IEM_MAYBE_LOAD_FLAGS A3, %2, %3
     
    10481084ENDPROC iemAImpl_ %+ %1 %+ _u64
    10491085 %else ; stub it for now - later, replace with hand coded stuff.
    1050 BEGINPROC iemAImpl_ %+ %1 %+ _u64
     1086BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 20
    10511087        int3
    10521088        ret
     
    10811117%macro IEMIMPL_DIV_OP 3
    10821118BEGINCODE
    1083 BEGINPROC iemAImpl_ %+ %1 %+ _u8
     1119BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u8, 12
    10841120        PROLOGUE_3_ARGS
    10851121
     
    11031139ENDPROC iemAImpl_ %+ %1 %+ _u8
    11041140
    1105 BEGINPROC iemAImpl_ %+ %1 %+ _u16
     1141BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16, 16
    11061142        PROLOGUE_4_ARGS
    11071143
     
    11371173ENDPROC iemAImpl_ %+ %1 %+ _u16
    11381174
    1139 BEGINPROC iemAImpl_ %+ %1 %+ _u32
     1175BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32, 16
    11401176        PROLOGUE_4_ARGS
    11411177
     
    11731209
    11741210 %ifdef RT_ARCH_AMD64
    1175 BEGINPROC iemAImpl_ %+ %1 %+ _u64
     1211BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 20
    11761212        PROLOGUE_4_ARGS
    11771213
     
    12081244ENDPROC iemAImpl_ %+ %1 %+ _u64
    12091245 %else ; stub it for now - later, replace with hand coded stuff.
    1210 BEGINPROC iemAImpl_ %+ %1 %+ _u64
     1246BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 20
    12111247        int3
    12121248        ret
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette