Index: /trunk/src/VBox/VMM/VMMAll/IEMAll.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMAll/IEMAll.cpp	(revision 38017)
+++ /trunk/src/VBox/VMM/VMMAll/IEMAll.cpp	(revision 38018)
@@ -3535,5 +3535,5 @@
                 pEvtRec->enmEvent = IEMVERIFYEVENT_RAM_READ;
                 pEvtRec->u.RamRead.GCPhys  = GCPhysFirst;
-                pEvtRec->u.RamRead.cb      = cbMem;
+                pEvtRec->u.RamRead.cb      = (uint32_t)cbMem;
                 pEvtRec->pNext = *pIemCpu->ppIemEvtRecNext;
                 *pIemCpu->ppIemEvtRecNext = pEvtRec;
@@ -5504,5 +5504,5 @@
     pEvtRec->enmEvent = IEMVERIFYEVENT_RAM_READ;
     pEvtRec->u.RamRead.GCPhys  = GCPhys;
-    pEvtRec->u.RamRead.cb      = cbValue;
+    pEvtRec->u.RamRead.cb      = (uint32_t)cbValue;
     pEvtRec->pNext = *pIemCpu->ppOtherEvtRecNext;
     *pIemCpu->ppOtherEvtRecNext = pEvtRec;
@@ -5524,5 +5524,5 @@
     pEvtRec->enmEvent = IEMVERIFYEVENT_RAM_WRITE;
     pEvtRec->u.RamWrite.GCPhys   = GCPhys;
-    pEvtRec->u.RamWrite.cb       = cbValue;
+    pEvtRec->u.RamWrite.cb       = (uint32_t)cbValue;
     pEvtRec->u.RamWrite.ab[0]    = RT_BYTE1(u32Value);
     pEvtRec->u.RamWrite.ab[1]    = RT_BYTE2(u32Value);
@@ -5548,5 +5548,5 @@
     pEvtRec->enmEvent = IEMVERIFYEVENT_IOPORT_READ;
     pEvtRec->u.IOPortRead.Port    = Port;
-    pEvtRec->u.IOPortRead.cbValue = cbValue;
+    pEvtRec->u.IOPortRead.cbValue = (uint32_t)cbValue;
     pEvtRec->pNext = *pIemCpu->ppOtherEvtRecNext;
     *pIemCpu->ppOtherEvtRecNext = pEvtRec;
@@ -5567,5 +5567,5 @@
     pEvtRec->enmEvent = IEMVERIFYEVENT_IOPORT_WRITE;
     pEvtRec->u.IOPortWrite.Port     = Port;
-    pEvtRec->u.IOPortWrite.cbValue  = cbValue;
+    pEvtRec->u.IOPortWrite.cbValue  = (uint32_t)cbValue;
     pEvtRec->u.IOPortWrite.u32Value = u32Value;
     pEvtRec->pNext = *pIemCpu->ppOtherEvtRecNext;
@@ -5602,5 +5602,5 @@
         pEvtRec->enmEvent = IEMVERIFYEVENT_IOPORT_READ;
         pEvtRec->u.IOPortRead.Port    = Port;
-        pEvtRec->u.IOPortRead.cbValue = cbValue;
+        pEvtRec->u.IOPortRead.cbValue = (uint32_t)cbValue;
         pEvtRec->pNext = *pIemCpu->ppIemEvtRecNext;
         *pIemCpu->ppIemEvtRecNext = pEvtRec;
@@ -5628,5 +5628,5 @@
         pEvtRec->enmEvent = IEMVERIFYEVENT_IOPORT_WRITE;
         pEvtRec->u.IOPortWrite.Port     = Port;
-        pEvtRec->u.IOPortWrite.cbValue  = cbValue;
+        pEvtRec->u.IOPortWrite.cbValue  = (uint32_t)cbValue;
         pEvtRec->u.IOPortWrite.u32Value = u32Value;
         pEvtRec->pNext = *pIemCpu->ppIemEvtRecNext;
Index: /trunk/src/VBox/VMM/VMMAll/IEMAllAImpl.asm
===================================================================
--- /trunk/src/VBox/VMM/VMMAll/IEMAllAImpl.asm	(revision 38017)
+++ /trunk/src/VBox/VMM/VMMAll/IEMAllAImpl.asm	(revision 38018)
@@ -168,4 +168,40 @@
  %define T1_16      di
 %endif
+
+;;
+; NAME for fastcall functions.
+;
+;; @todo 'global @fastcall@12' is still broken in yasm and requires dollar 
+;         escaping (or whatever the dollar is good for here).  Thus the ugly
+;         prefix argument.
+;
+%define NAME_FASTCALL(a_Name, a_cbArgs, a_Dollar)   NAME(a_aName)
+%ifdef RT_ARCH_X86
+ %ifdef RT_OS_WINDOWS                                 
+  %undef NAME_FASTCALL
+  %define NAME_FASTCALL(a_Name, a_cbArgs, a_Prefix) a_Prefix %+ a_Name %+ @ %+ a_cbArgs
+ %endif        
+%endif
+
+;;
+; BEGINPROC for fastcall functions.
+;
+; @param        1       The function name (C).
+; @param        2       The argument size on x86.
+;
+%macro BEGINPROC_FASTCALL 2
+ %ifdef ASM_FORMAT_PE
+  export %1=NAME_FASTCALL(%1,%2,$@)
+ %endif
+ %ifdef __NASM__
+  %ifdef ASM_FORMAT_OMF
+   export NAME(%1) NAME_FASTCALL(%1,%2,$@)
+  %endif
+ %endif
+ %ifndef ASM_FORMAT_BIN
+  global NAME_FASTCALL(%1,%2,$@)
+ %endif
+NAME_FASTCALL(%1,%2,@):
+%endmacro
 
 
@@ -228,5 +264,5 @@
 %macro IEMIMPL_BIN_OP 4
 BEGINCODE
-BEGINPROC iemAImpl_ %+ %1 %+ _u8
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u8, 12
         PROLOGUE_3_ARGS
         IEM_MAYBE_LOAD_FLAGS           A2, %3, %4
@@ -237,5 +273,5 @@
 ENDPROC iemAImpl_ %+ %1 %+ _u8
 
-BEGINPROC iemAImpl_ %+ %1 %+ _u16
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16, 12
         PROLOGUE_3_ARGS
         IEM_MAYBE_LOAD_FLAGS           A2, %3, %4
@@ -246,5 +282,5 @@
 ENDPROC iemAImpl_ %+ %1 %+ _u16
 
-BEGINPROC iemAImpl_ %+ %1 %+ _u32
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32, 12
         PROLOGUE_3_ARGS
         IEM_MAYBE_LOAD_FLAGS           A2, %3, %4
@@ -256,5 +292,5 @@
 
  %ifdef RT_ARCH_AMD64
-BEGINPROC iemAImpl_ %+ %1 %+ _u64
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 16
         PROLOGUE_3_ARGS
         IEM_MAYBE_LOAD_FLAGS           A2, %3, %4
@@ -265,5 +301,5 @@
 ENDPROC iemAImpl_ %+ %1 %+ _u64
  %else ; stub it for now - later, replace with hand coded stuff.
-BEGINPROC iemAImpl_ %+ %1 %+ _u64
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 16
         int3
         ret
@@ -273,5 +309,5 @@
  %if %2 != 0 ; locked versions requested?
 
-BEGINPROC iemAImpl_ %+ %1 %+ _u8_locked
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u8_locked, 12
         PROLOGUE_3_ARGS
         IEM_MAYBE_LOAD_FLAGS           A2, %3, %4
@@ -282,5 +318,5 @@
 ENDPROC iemAImpl_ %+ %1 %+ _u8_locked
 
-BEGINPROC iemAImpl_ %+ %1 %+ _u16_locked
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16_locked, 12
         PROLOGUE_3_ARGS
         IEM_MAYBE_LOAD_FLAGS           A2, %3, %4
@@ -291,5 +327,5 @@
 ENDPROC iemAImpl_ %+ %1 %+ _u16_locked
 
-BEGINPROC iemAImpl_ %+ %1 %+ _u32_locked
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32_locked, 12
         PROLOGUE_3_ARGS
         IEM_MAYBE_LOAD_FLAGS           A2, %3, %4
@@ -301,5 +337,5 @@
 
   %ifdef RT_ARCH_AMD64
-BEGINPROC iemAImpl_ %+ %1 %+ _u64_locked
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64_locked, 16
         PROLOGUE_3_ARGS
         IEM_MAYBE_LOAD_FLAGS           A2, %3, %4
@@ -310,5 +346,5 @@
 ENDPROC iemAImpl_ %+ %1 %+ _u64_locked
   %else ; stub it for now - later, replace with hand coded stuff.
-BEGINPROC iemAImpl_ %+ %1 %+ _u64_locked
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64_locked, 16
         int3
         ret
@@ -347,5 +383,5 @@
 %macro IEMIMPL_BIT_OP 4
 BEGINCODE
-BEGINPROC iemAImpl_ %+ %1 %+ _u16
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16, 12
         PROLOGUE_3_ARGS
         IEM_MAYBE_LOAD_FLAGS           A2, %3, %4
@@ -356,5 +392,5 @@
 ENDPROC iemAImpl_ %+ %1 %+ _u16
 
-BEGINPROC iemAImpl_ %+ %1 %+ _u32
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32, 12
         PROLOGUE_3_ARGS
         IEM_MAYBE_LOAD_FLAGS           A2, %3, %4
@@ -366,5 +402,5 @@
 
  %ifdef RT_ARCH_AMD64
-BEGINPROC iemAImpl_ %+ %1 %+ _u64
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 16
         PROLOGUE_3_ARGS
         IEM_MAYBE_LOAD_FLAGS           A2, %3, %4
@@ -375,5 +411,5 @@
 ENDPROC iemAImpl_ %+ %1 %+ _u64
  %else ; stub it for now - later, replace with hand coded stuff.
-BEGINPROC iemAImpl_ %+ %1 %+ _u64
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 16
         int3
         ret
@@ -383,5 +419,5 @@
  %if %2 != 0 ; locked versions requested?
 
-BEGINPROC iemAImpl_ %+ %1 %+ _u16_locked
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16_locked, 12
         PROLOGUE_3_ARGS
         IEM_MAYBE_LOAD_FLAGS           A2, %3, %4
@@ -392,5 +428,5 @@
 ENDPROC iemAImpl_ %+ %1 %+ _u16_locked
 
-BEGINPROC iemAImpl_ %+ %1 %+ _u32_locked
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32_locked, 12
         PROLOGUE_3_ARGS
         IEM_MAYBE_LOAD_FLAGS           A2, %3, %4
@@ -402,5 +438,5 @@
 
   %ifdef RT_ARCH_AMD64
-BEGINPROC iemAImpl_ %+ %1 %+ _u64_locked
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64_locked, 16
         PROLOGUE_3_ARGS
         IEM_MAYBE_LOAD_FLAGS           A2, %3, %4
@@ -411,5 +447,5 @@
 ENDPROC iemAImpl_ %+ %1 %+ _u64_locked
   %else ; stub it for now - later, replace with hand coded stuff.
-BEGINPROC iemAImpl_ %+ %1 %+ _u64_locked
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64_locked, 16
         int3
         ret
@@ -438,5 +474,5 @@
 %macro IEMIMPL_BIT_OP 3
 BEGINCODE
-BEGINPROC iemAImpl_ %+ %1 %+ _u16
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16, 12
         PROLOGUE_3_ARGS
         IEM_MAYBE_LOAD_FLAGS           A2, %2, %3
@@ -448,5 +484,5 @@
 ENDPROC iemAImpl_ %+ %1 %+ _u16
 
-BEGINPROC iemAImpl_ %+ %1 %+ _u32
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32, 12
         PROLOGUE_3_ARGS
         IEM_MAYBE_LOAD_FLAGS           A2, %2, %3
@@ -459,5 +495,5 @@
 
  %ifdef RT_ARCH_AMD64
-BEGINPROC iemAImpl_ %+ %1 %+ _u64
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 16
         PROLOGUE_3_ARGS
         IEM_MAYBE_LOAD_FLAGS           A2, %2, %3
@@ -469,5 +505,5 @@
 ENDPROC iemAImpl_ %+ %1 %+ _u64
  %else ; stub it for now - later, replace with hand coded stuff.
-BEGINPROC iemAImpl_ %+ %1 %+ _u64
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 16
         int3
         ret
@@ -484,5 +520,5 @@
 ;
 BEGINCODE
-BEGINPROC iemAImpl_imul_two_u16
+BEGINPROC_FASTCALL iemAImpl_imul_two_u16, 12
         PROLOGUE_3_ARGS
         IEM_MAYBE_LOAD_FLAGS A2, (X86_EFL_OF | X86_EFL_CF), (X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF)
@@ -494,5 +530,5 @@
 ENDPROC iemAImpl_imul_two_u16
 
-BEGINPROC iemAImpl_imul_two_u32
+BEGINPROC_FASTCALL iemAImpl_imul_two_u32, 12
         PROLOGUE_3_ARGS
         IEM_MAYBE_LOAD_FLAGS A2, (X86_EFL_OF | X86_EFL_CF), (X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF)
@@ -504,5 +540,5 @@
 ENDPROC iemAImpl_imul_two_u32
 
-BEGINPROC iemAImpl_imul_two_u64
+BEGINPROC_FASTCALL iemAImpl_imul_two_u64, 16
         PROLOGUE_3_ARGS
 %ifdef RT_ARCH_AMD64
@@ -526,5 +562,5 @@
 ;
 BEGINCODE
-BEGINPROC iemAImpl_xchg_u8
+BEGINPROC_FASTCALL iemAImpl_xchg_u8, 8
         PROLOGUE_2_ARGS
         mov     T0_8, [A1]
@@ -535,5 +571,5 @@
 ENDPROC iemAImpl_xchg_u8
 
-BEGINPROC iemAImpl_xchg_u16
+BEGINPROC_FASTCALL iemAImpl_xchg_u16, 8
         PROLOGUE_2_ARGS
         mov     T0_16, [A1]
@@ -544,5 +580,5 @@
 ENDPROC iemAImpl_xchg_u16
 
-BEGINPROC iemAImpl_xchg_u32
+BEGINPROC_FASTCALL iemAImpl_xchg_u32, 8
         PROLOGUE_2_ARGS
         mov     T0_32, [A1]
@@ -553,5 +589,5 @@
 ENDPROC iemAImpl_xchg_u32
 
-BEGINPROC iemAImpl_xchg_u64
+BEGINPROC_FASTCALL iemAImpl_xchg_u64, 8
 %ifdef RT_ARCH_AMD64
         PROLOGUE_2_ARGS
@@ -575,5 +611,5 @@
 ;
 BEGINCODE
-BEGINPROC iemAImpl_xadd_u8
+BEGINPROC_FASTCALL iemAImpl_xadd_u8, 12
         PROLOGUE_3_ARGS
         IEM_MAYBE_LOAD_FLAGS A2, (X86_EFL_OF | X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF | X86_EFL_CF), 0
@@ -586,5 +622,5 @@
 ENDPROC iemAImpl_xadd_u8
 
-BEGINPROC iemAImpl_xadd_u16
+BEGINPROC_FASTCALL iemAImpl_xadd_u16, 12
         PROLOGUE_3_ARGS
         IEM_MAYBE_LOAD_FLAGS A2, (X86_EFL_OF | X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF | X86_EFL_CF), 0
@@ -597,5 +633,5 @@
 ENDPROC iemAImpl_xadd_u16
 
-BEGINPROC iemAImpl_xadd_u32
+BEGINPROC_FASTCALL iemAImpl_xadd_u32, 12
         PROLOGUE_3_ARGS
         IEM_MAYBE_LOAD_FLAGS A2, (X86_EFL_OF | X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF | X86_EFL_CF), 0
@@ -608,5 +644,5 @@
 ENDPROC iemAImpl_xadd_u32
 
-BEGINPROC iemAImpl_xadd_u64
+BEGINPROC_FASTCALL iemAImpl_xadd_u64, 12
 %ifdef RT_ARCH_AMD64
         PROLOGUE_3_ARGS
@@ -623,5 +659,5 @@
 ENDPROC iemAImpl_xadd_u64
 
-BEGINPROC iemAImpl_xadd_u8_locked
+BEGINPROC_FASTCALL iemAImpl_xadd_u8_locked, 12
         PROLOGUE_3_ARGS
         IEM_MAYBE_LOAD_FLAGS A2, (X86_EFL_OF | X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF | X86_EFL_CF), 0
@@ -634,5 +670,5 @@
 ENDPROC iemAImpl_xadd_u8_locked
 
-BEGINPROC iemAImpl_xadd_u16_locked
+BEGINPROC_FASTCALL iemAImpl_xadd_u16_locked, 12
         PROLOGUE_3_ARGS
         IEM_MAYBE_LOAD_FLAGS A2, (X86_EFL_OF | X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF | X86_EFL_CF), 0
@@ -645,5 +681,5 @@
 ENDPROC iemAImpl_xadd_u16_locked
 
-BEGINPROC iemAImpl_xadd_u32_locked
+BEGINPROC_FASTCALL iemAImpl_xadd_u32_locked, 12
         PROLOGUE_3_ARGS
         IEM_MAYBE_LOAD_FLAGS A2, (X86_EFL_OF | X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF | X86_EFL_CF), 0
@@ -656,5 +692,5 @@
 ENDPROC iemAImpl_xadd_u32_locked
 
-BEGINPROC iemAImpl_xadd_u64_locked
+BEGINPROC_FASTCALL iemAImpl_xadd_u64_locked, 12
 %ifdef RT_ARCH_AMD64
         PROLOGUE_3_ARGS
@@ -688,5 +724,5 @@
 %macro IEMIMPL_UNARY_OP 3
 BEGINCODE
-BEGINPROC iemAImpl_ %+ %1 %+ _u8
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u8, 8
         PROLOGUE_2_ARGS
         IEM_MAYBE_LOAD_FLAGS A1, %2, %3
@@ -697,5 +733,5 @@
 ENDPROC iemAImpl_ %+ %1 %+ _u8
 
-BEGINPROC iemAImpl_ %+ %1 %+ _u8_locked
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u8_locked, 8
         PROLOGUE_2_ARGS
         IEM_MAYBE_LOAD_FLAGS A1, %2, %3
@@ -706,5 +742,5 @@
 ENDPROC iemAImpl_ %+ %1 %+ _u8_locked
 
-BEGINPROC iemAImpl_ %+ %1 %+ _u16
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16, 8
         PROLOGUE_2_ARGS
         IEM_MAYBE_LOAD_FLAGS A1, %2, %3
@@ -715,5 +751,5 @@
 ENDPROC iemAImpl_ %+ %1 %+ _u16
 
-BEGINPROC iemAImpl_ %+ %1 %+ _u16_locked
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16_locked, 8
         PROLOGUE_2_ARGS
         IEM_MAYBE_LOAD_FLAGS A1, %2, %3
@@ -724,5 +760,5 @@
 ENDPROC iemAImpl_ %+ %1 %+ _u16_locked
 
-BEGINPROC iemAImpl_ %+ %1 %+ _u32
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32, 8
         PROLOGUE_2_ARGS
         IEM_MAYBE_LOAD_FLAGS A1, %2, %3
@@ -733,5 +769,5 @@
 ENDPROC iemAImpl_ %+ %1 %+ _u32
 
-BEGINPROC iemAImpl_ %+ %1 %+ _u32_locked
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32_locked, 8
         PROLOGUE_2_ARGS
         IEM_MAYBE_LOAD_FLAGS A1, %2, %3
@@ -743,5 +779,5 @@
 
  %ifdef RT_ARCH_AMD64
-BEGINPROC iemAImpl_ %+ %1 %+ _u64
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 8
         PROLOGUE_2_ARGS
         IEM_MAYBE_LOAD_FLAGS A1, %2, %3
@@ -752,5 +788,5 @@
 ENDPROC iemAImpl_ %+ %1 %+ _u64
 
-BEGINPROC iemAImpl_ %+ %1 %+ _u64_locked
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64_locked, 8
         PROLOGUE_2_ARGS
         IEM_MAYBE_LOAD_FLAGS A1, %2, %3
@@ -762,9 +798,9 @@
  %else
         ; stub them for now.
-BEGINPROC iemAImpl_ %+ %1 %+ _u64
-        int3
-        ret
-ENDPROC iemAImpl_ %+ %1 %+ _u64
-BEGINPROC iemAImpl_ %+ %1 %+ _u64_locked
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 8
+        int3
+        ret
+ENDPROC iemAImpl_ %+ %1 %+ _u64
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64_locked, 8
         int3
         ret
@@ -798,5 +834,5 @@
 %macro IEMIMPL_SHIFT_OP 3
 BEGINCODE
-BEGINPROC iemAImpl_ %+ %1 %+ _u8
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u8, 12
         PROLOGUE_3_ARGS
         IEM_MAYBE_LOAD_FLAGS A2, %2, %3
@@ -813,5 +849,5 @@
 ENDPROC iemAImpl_ %+ %1 %+ _u8
 
-BEGINPROC iemAImpl_ %+ %1 %+ _u16
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16, 12
         PROLOGUE_3_ARGS
         IEM_MAYBE_LOAD_FLAGS A2, %2, %3
@@ -828,5 +864,5 @@
 ENDPROC iemAImpl_ %+ %1 %+ _u16
 
-BEGINPROC iemAImpl_ %+ %1 %+ _u32
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32, 12
         PROLOGUE_3_ARGS
         IEM_MAYBE_LOAD_FLAGS A2, %2, %3
@@ -844,5 +880,5 @@
 
  %ifdef RT_ARCH_AMD64
-BEGINPROC iemAImpl_ %+ %1 %+ _u64
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 12
         PROLOGUE_3_ARGS
         IEM_MAYBE_LOAD_FLAGS A2, %2, %3
@@ -859,5 +895,5 @@
 ENDPROC iemAImpl_ %+ %1 %+ _u64
  %else ; stub it for now - later, replace with hand coded stuff.
-BEGINPROC iemAImpl_ %+ %1 %+ _u64
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 12
         int3
         ret
@@ -877,5 +913,5 @@
 
 ;;
-; Macro for implementing a doulbe precision shift operation.
+; Macro for implementing a double precision shift operation.
 ;
 ; This will generate code for the 16, 32 and 64 bit accesses, except on
@@ -893,5 +929,5 @@
 %macro IEMIMPL_SHIFT_DBL_OP 3
 BEGINCODE
-BEGINPROC iemAImpl_ %+ %1 %+ _u16
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16, 16
         PROLOGUE_4_ARGS
         IEM_MAYBE_LOAD_FLAGS A3, %2, %3
@@ -909,5 +945,5 @@
 ENDPROC iemAImpl_ %+ %1 %+ _u16
 
-BEGINPROC iemAImpl_ %+ %1 %+ _u32
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32, 16
         PROLOGUE_4_ARGS
         IEM_MAYBE_LOAD_FLAGS A3, %2, %3
@@ -926,5 +962,5 @@
 
  %ifdef RT_ARCH_AMD64
-BEGINPROC iemAImpl_ %+ %1 %+ _u64
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 20
         PROLOGUE_4_ARGS
         IEM_MAYBE_LOAD_FLAGS A3, %2, %3
@@ -942,5 +978,5 @@
 ENDPROC iemAImpl_ %+ %1 %+ _u64
  %else ; stub it for now - later, replace with hand coded stuff.
-BEGINPROC iemAImpl_ %+ %1 %+ _u64
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 20
         int3
         ret
@@ -975,5 +1011,5 @@
 %macro IEMIMPL_MUL_OP 3
 BEGINCODE
-BEGINPROC iemAImpl_ %+ %1 %+ _u8
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u8, 12
         PROLOGUE_3_ARGS
         IEM_MAYBE_LOAD_FLAGS A2, %2, %3
@@ -987,5 +1023,5 @@
 ENDPROC iemAImpl_ %+ %1 %+ _u8
 
-BEGINPROC iemAImpl_ %+ %1 %+ _u16
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16, 16
         PROLOGUE_4_ARGS
         IEM_MAYBE_LOAD_FLAGS A3, %2, %3
@@ -1007,5 +1043,5 @@
 ENDPROC iemAImpl_ %+ %1 %+ _u16
 
-BEGINPROC iemAImpl_ %+ %1 %+ _u32
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32, 16
         PROLOGUE_4_ARGS
         IEM_MAYBE_LOAD_FLAGS A3, %2, %3
@@ -1028,5 +1064,5 @@
 
  %ifdef RT_ARCH_AMD64
-BEGINPROC iemAImpl_ %+ %1 %+ _u64
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 20
         PROLOGUE_4_ARGS
         IEM_MAYBE_LOAD_FLAGS A3, %2, %3
@@ -1048,5 +1084,5 @@
 ENDPROC iemAImpl_ %+ %1 %+ _u64
  %else ; stub it for now - later, replace with hand coded stuff.
-BEGINPROC iemAImpl_ %+ %1 %+ _u64
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 20
         int3
         ret
@@ -1081,5 +1117,5 @@
 %macro IEMIMPL_DIV_OP 3
 BEGINCODE
-BEGINPROC iemAImpl_ %+ %1 %+ _u8
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u8, 12
         PROLOGUE_3_ARGS
 
@@ -1103,5 +1139,5 @@
 ENDPROC iemAImpl_ %+ %1 %+ _u8
 
-BEGINPROC iemAImpl_ %+ %1 %+ _u16
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16, 16
         PROLOGUE_4_ARGS
 
@@ -1137,5 +1173,5 @@
 ENDPROC iemAImpl_ %+ %1 %+ _u16
 
-BEGINPROC iemAImpl_ %+ %1 %+ _u32
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32, 16
         PROLOGUE_4_ARGS
 
@@ -1173,5 +1209,5 @@
 
  %ifdef RT_ARCH_AMD64
-BEGINPROC iemAImpl_ %+ %1 %+ _u64
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 20
         PROLOGUE_4_ARGS
 
@@ -1208,5 +1244,5 @@
 ENDPROC iemAImpl_ %+ %1 %+ _u64
  %else ; stub it for now - later, replace with hand coded stuff.
-BEGINPROC iemAImpl_ %+ %1 %+ _u64
+BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 20
         int3
         ret
