Changeset 38018 in vbox for trunk/src/VBox
- Timestamp:
- Jul 18, 2011 1:43:36 PM (13 years ago)
- Location:
- trunk/src/VBox/VMM/VMMAll
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAll.cpp
r37955 r38018 3535 3535 pEvtRec->enmEvent = IEMVERIFYEVENT_RAM_READ; 3536 3536 pEvtRec->u.RamRead.GCPhys = GCPhysFirst; 3537 pEvtRec->u.RamRead.cb = cbMem;3537 pEvtRec->u.RamRead.cb = (uint32_t)cbMem; 3538 3538 pEvtRec->pNext = *pIemCpu->ppIemEvtRecNext; 3539 3539 *pIemCpu->ppIemEvtRecNext = pEvtRec; … … 5504 5504 pEvtRec->enmEvent = IEMVERIFYEVENT_RAM_READ; 5505 5505 pEvtRec->u.RamRead.GCPhys = GCPhys; 5506 pEvtRec->u.RamRead.cb = cbValue;5506 pEvtRec->u.RamRead.cb = (uint32_t)cbValue; 5507 5507 pEvtRec->pNext = *pIemCpu->ppOtherEvtRecNext; 5508 5508 *pIemCpu->ppOtherEvtRecNext = pEvtRec; … … 5524 5524 pEvtRec->enmEvent = IEMVERIFYEVENT_RAM_WRITE; 5525 5525 pEvtRec->u.RamWrite.GCPhys = GCPhys; 5526 pEvtRec->u.RamWrite.cb = cbValue;5526 pEvtRec->u.RamWrite.cb = (uint32_t)cbValue; 5527 5527 pEvtRec->u.RamWrite.ab[0] = RT_BYTE1(u32Value); 5528 5528 pEvtRec->u.RamWrite.ab[1] = RT_BYTE2(u32Value); … … 5548 5548 pEvtRec->enmEvent = IEMVERIFYEVENT_IOPORT_READ; 5549 5549 pEvtRec->u.IOPortRead.Port = Port; 5550 pEvtRec->u.IOPortRead.cbValue = cbValue;5550 pEvtRec->u.IOPortRead.cbValue = (uint32_t)cbValue; 5551 5551 pEvtRec->pNext = *pIemCpu->ppOtherEvtRecNext; 5552 5552 *pIemCpu->ppOtherEvtRecNext = pEvtRec; … … 5567 5567 pEvtRec->enmEvent = IEMVERIFYEVENT_IOPORT_WRITE; 5568 5568 pEvtRec->u.IOPortWrite.Port = Port; 5569 pEvtRec->u.IOPortWrite.cbValue = cbValue;5569 pEvtRec->u.IOPortWrite.cbValue = (uint32_t)cbValue; 5570 5570 pEvtRec->u.IOPortWrite.u32Value = u32Value; 5571 5571 pEvtRec->pNext = *pIemCpu->ppOtherEvtRecNext; … … 5602 5602 pEvtRec->enmEvent = IEMVERIFYEVENT_IOPORT_READ; 5603 5603 pEvtRec->u.IOPortRead.Port = Port; 5604 pEvtRec->u.IOPortRead.cbValue = cbValue;5604 pEvtRec->u.IOPortRead.cbValue = (uint32_t)cbValue; 5605 5605 pEvtRec->pNext = *pIemCpu->ppIemEvtRecNext; 5606 5606 *pIemCpu->ppIemEvtRecNext = pEvtRec; … … 5628 5628 pEvtRec->enmEvent = IEMVERIFYEVENT_IOPORT_WRITE; 5629 5629 pEvtRec->u.IOPortWrite.Port = Port; 5630 pEvtRec->u.IOPortWrite.cbValue = cbValue;5630 pEvtRec->u.IOPortWrite.cbValue = (uint32_t)cbValue; 5631 5631 pEvtRec->u.IOPortWrite.u32Value = u32Value; 5632 5632 pEvtRec->pNext = *pIemCpu->ppIemEvtRecNext; -
trunk/src/VBox/VMM/VMMAll/IEMAllAImpl.asm
r37955 r38018 168 168 %define T1_16 di 169 169 %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 204 NAME_FASTCALL(%1,%2,@): 205 %endmacro 170 206 171 207 … … 228 264 %macro IEMIMPL_BIN_OP 4 229 265 BEGINCODE 230 BEGINPROC iemAImpl_ %+ %1 %+ _u8266 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u8, 12 231 267 PROLOGUE_3_ARGS 232 268 IEM_MAYBE_LOAD_FLAGS A2, %3, %4 … … 237 273 ENDPROC iemAImpl_ %+ %1 %+ _u8 238 274 239 BEGINPROC iemAImpl_ %+ %1 %+ _u16275 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16, 12 240 276 PROLOGUE_3_ARGS 241 277 IEM_MAYBE_LOAD_FLAGS A2, %3, %4 … … 246 282 ENDPROC iemAImpl_ %+ %1 %+ _u16 247 283 248 BEGINPROC iemAImpl_ %+ %1 %+ _u32284 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32, 12 249 285 PROLOGUE_3_ARGS 250 286 IEM_MAYBE_LOAD_FLAGS A2, %3, %4 … … 256 292 257 293 %ifdef RT_ARCH_AMD64 258 BEGINPROC iemAImpl_ %+ %1 %+ _u64294 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 16 259 295 PROLOGUE_3_ARGS 260 296 IEM_MAYBE_LOAD_FLAGS A2, %3, %4 … … 265 301 ENDPROC iemAImpl_ %+ %1 %+ _u64 266 302 %else ; stub it for now - later, replace with hand coded stuff. 267 BEGINPROC iemAImpl_ %+ %1 %+ _u64303 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 16 268 304 int3 269 305 ret … … 273 309 %if %2 != 0 ; locked versions requested? 274 310 275 BEGINPROC iemAImpl_ %+ %1 %+ _u8_locked311 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u8_locked, 12 276 312 PROLOGUE_3_ARGS 277 313 IEM_MAYBE_LOAD_FLAGS A2, %3, %4 … … 282 318 ENDPROC iemAImpl_ %+ %1 %+ _u8_locked 283 319 284 BEGINPROC iemAImpl_ %+ %1 %+ _u16_locked320 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16_locked, 12 285 321 PROLOGUE_3_ARGS 286 322 IEM_MAYBE_LOAD_FLAGS A2, %3, %4 … … 291 327 ENDPROC iemAImpl_ %+ %1 %+ _u16_locked 292 328 293 BEGINPROC iemAImpl_ %+ %1 %+ _u32_locked329 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32_locked, 12 294 330 PROLOGUE_3_ARGS 295 331 IEM_MAYBE_LOAD_FLAGS A2, %3, %4 … … 301 337 302 338 %ifdef RT_ARCH_AMD64 303 BEGINPROC iemAImpl_ %+ %1 %+ _u64_locked339 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64_locked, 16 304 340 PROLOGUE_3_ARGS 305 341 IEM_MAYBE_LOAD_FLAGS A2, %3, %4 … … 310 346 ENDPROC iemAImpl_ %+ %1 %+ _u64_locked 311 347 %else ; stub it for now - later, replace with hand coded stuff. 312 BEGINPROC iemAImpl_ %+ %1 %+ _u64_locked348 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64_locked, 16 313 349 int3 314 350 ret … … 347 383 %macro IEMIMPL_BIT_OP 4 348 384 BEGINCODE 349 BEGINPROC iemAImpl_ %+ %1 %+ _u16385 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16, 12 350 386 PROLOGUE_3_ARGS 351 387 IEM_MAYBE_LOAD_FLAGS A2, %3, %4 … … 356 392 ENDPROC iemAImpl_ %+ %1 %+ _u16 357 393 358 BEGINPROC iemAImpl_ %+ %1 %+ _u32394 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32, 12 359 395 PROLOGUE_3_ARGS 360 396 IEM_MAYBE_LOAD_FLAGS A2, %3, %4 … … 366 402 367 403 %ifdef RT_ARCH_AMD64 368 BEGINPROC iemAImpl_ %+ %1 %+ _u64404 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 16 369 405 PROLOGUE_3_ARGS 370 406 IEM_MAYBE_LOAD_FLAGS A2, %3, %4 … … 375 411 ENDPROC iemAImpl_ %+ %1 %+ _u64 376 412 %else ; stub it for now - later, replace with hand coded stuff. 377 BEGINPROC iemAImpl_ %+ %1 %+ _u64413 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 16 378 414 int3 379 415 ret … … 383 419 %if %2 != 0 ; locked versions requested? 384 420 385 BEGINPROC iemAImpl_ %+ %1 %+ _u16_locked421 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16_locked, 12 386 422 PROLOGUE_3_ARGS 387 423 IEM_MAYBE_LOAD_FLAGS A2, %3, %4 … … 392 428 ENDPROC iemAImpl_ %+ %1 %+ _u16_locked 393 429 394 BEGINPROC iemAImpl_ %+ %1 %+ _u32_locked430 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32_locked, 12 395 431 PROLOGUE_3_ARGS 396 432 IEM_MAYBE_LOAD_FLAGS A2, %3, %4 … … 402 438 403 439 %ifdef RT_ARCH_AMD64 404 BEGINPROC iemAImpl_ %+ %1 %+ _u64_locked440 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64_locked, 16 405 441 PROLOGUE_3_ARGS 406 442 IEM_MAYBE_LOAD_FLAGS A2, %3, %4 … … 411 447 ENDPROC iemAImpl_ %+ %1 %+ _u64_locked 412 448 %else ; stub it for now - later, replace with hand coded stuff. 413 BEGINPROC iemAImpl_ %+ %1 %+ _u64_locked449 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64_locked, 16 414 450 int3 415 451 ret … … 438 474 %macro IEMIMPL_BIT_OP 3 439 475 BEGINCODE 440 BEGINPROC iemAImpl_ %+ %1 %+ _u16476 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16, 12 441 477 PROLOGUE_3_ARGS 442 478 IEM_MAYBE_LOAD_FLAGS A2, %2, %3 … … 448 484 ENDPROC iemAImpl_ %+ %1 %+ _u16 449 485 450 BEGINPROC iemAImpl_ %+ %1 %+ _u32486 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32, 12 451 487 PROLOGUE_3_ARGS 452 488 IEM_MAYBE_LOAD_FLAGS A2, %2, %3 … … 459 495 460 496 %ifdef RT_ARCH_AMD64 461 BEGINPROC iemAImpl_ %+ %1 %+ _u64497 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 16 462 498 PROLOGUE_3_ARGS 463 499 IEM_MAYBE_LOAD_FLAGS A2, %2, %3 … … 469 505 ENDPROC iemAImpl_ %+ %1 %+ _u64 470 506 %else ; stub it for now - later, replace with hand coded stuff. 471 BEGINPROC iemAImpl_ %+ %1 %+ _u64507 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 16 472 508 int3 473 509 ret … … 484 520 ; 485 521 BEGINCODE 486 BEGINPROC iemAImpl_imul_two_u16522 BEGINPROC_FASTCALL iemAImpl_imul_two_u16, 12 487 523 PROLOGUE_3_ARGS 488 524 IEM_MAYBE_LOAD_FLAGS A2, (X86_EFL_OF | X86_EFL_CF), (X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF) … … 494 530 ENDPROC iemAImpl_imul_two_u16 495 531 496 BEGINPROC iemAImpl_imul_two_u32532 BEGINPROC_FASTCALL iemAImpl_imul_two_u32, 12 497 533 PROLOGUE_3_ARGS 498 534 IEM_MAYBE_LOAD_FLAGS A2, (X86_EFL_OF | X86_EFL_CF), (X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF) … … 504 540 ENDPROC iemAImpl_imul_two_u32 505 541 506 BEGINPROC iemAImpl_imul_two_u64542 BEGINPROC_FASTCALL iemAImpl_imul_two_u64, 16 507 543 PROLOGUE_3_ARGS 508 544 %ifdef RT_ARCH_AMD64 … … 526 562 ; 527 563 BEGINCODE 528 BEGINPROC iemAImpl_xchg_u8564 BEGINPROC_FASTCALL iemAImpl_xchg_u8, 8 529 565 PROLOGUE_2_ARGS 530 566 mov T0_8, [A1] … … 535 571 ENDPROC iemAImpl_xchg_u8 536 572 537 BEGINPROC iemAImpl_xchg_u16573 BEGINPROC_FASTCALL iemAImpl_xchg_u16, 8 538 574 PROLOGUE_2_ARGS 539 575 mov T0_16, [A1] … … 544 580 ENDPROC iemAImpl_xchg_u16 545 581 546 BEGINPROC iemAImpl_xchg_u32582 BEGINPROC_FASTCALL iemAImpl_xchg_u32, 8 547 583 PROLOGUE_2_ARGS 548 584 mov T0_32, [A1] … … 553 589 ENDPROC iemAImpl_xchg_u32 554 590 555 BEGINPROC iemAImpl_xchg_u64591 BEGINPROC_FASTCALL iemAImpl_xchg_u64, 8 556 592 %ifdef RT_ARCH_AMD64 557 593 PROLOGUE_2_ARGS … … 575 611 ; 576 612 BEGINCODE 577 BEGINPROC iemAImpl_xadd_u8613 BEGINPROC_FASTCALL iemAImpl_xadd_u8, 12 578 614 PROLOGUE_3_ARGS 579 615 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 622 ENDPROC iemAImpl_xadd_u8 587 623 588 BEGINPROC iemAImpl_xadd_u16624 BEGINPROC_FASTCALL iemAImpl_xadd_u16, 12 589 625 PROLOGUE_3_ARGS 590 626 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 633 ENDPROC iemAImpl_xadd_u16 598 634 599 BEGINPROC iemAImpl_xadd_u32635 BEGINPROC_FASTCALL iemAImpl_xadd_u32, 12 600 636 PROLOGUE_3_ARGS 601 637 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 644 ENDPROC iemAImpl_xadd_u32 609 645 610 BEGINPROC iemAImpl_xadd_u64646 BEGINPROC_FASTCALL iemAImpl_xadd_u64, 12 611 647 %ifdef RT_ARCH_AMD64 612 648 PROLOGUE_3_ARGS … … 623 659 ENDPROC iemAImpl_xadd_u64 624 660 625 BEGINPROC iemAImpl_xadd_u8_locked661 BEGINPROC_FASTCALL iemAImpl_xadd_u8_locked, 12 626 662 PROLOGUE_3_ARGS 627 663 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 670 ENDPROC iemAImpl_xadd_u8_locked 635 671 636 BEGINPROC iemAImpl_xadd_u16_locked672 BEGINPROC_FASTCALL iemAImpl_xadd_u16_locked, 12 637 673 PROLOGUE_3_ARGS 638 674 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 681 ENDPROC iemAImpl_xadd_u16_locked 646 682 647 BEGINPROC iemAImpl_xadd_u32_locked683 BEGINPROC_FASTCALL iemAImpl_xadd_u32_locked, 12 648 684 PROLOGUE_3_ARGS 649 685 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 692 ENDPROC iemAImpl_xadd_u32_locked 657 693 658 BEGINPROC iemAImpl_xadd_u64_locked694 BEGINPROC_FASTCALL iemAImpl_xadd_u64_locked, 12 659 695 %ifdef RT_ARCH_AMD64 660 696 PROLOGUE_3_ARGS … … 688 724 %macro IEMIMPL_UNARY_OP 3 689 725 BEGINCODE 690 BEGINPROC iemAImpl_ %+ %1 %+ _u8726 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u8, 8 691 727 PROLOGUE_2_ARGS 692 728 IEM_MAYBE_LOAD_FLAGS A1, %2, %3 … … 697 733 ENDPROC iemAImpl_ %+ %1 %+ _u8 698 734 699 BEGINPROC iemAImpl_ %+ %1 %+ _u8_locked735 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u8_locked, 8 700 736 PROLOGUE_2_ARGS 701 737 IEM_MAYBE_LOAD_FLAGS A1, %2, %3 … … 706 742 ENDPROC iemAImpl_ %+ %1 %+ _u8_locked 707 743 708 BEGINPROC iemAImpl_ %+ %1 %+ _u16744 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16, 8 709 745 PROLOGUE_2_ARGS 710 746 IEM_MAYBE_LOAD_FLAGS A1, %2, %3 … … 715 751 ENDPROC iemAImpl_ %+ %1 %+ _u16 716 752 717 BEGINPROC iemAImpl_ %+ %1 %+ _u16_locked753 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16_locked, 8 718 754 PROLOGUE_2_ARGS 719 755 IEM_MAYBE_LOAD_FLAGS A1, %2, %3 … … 724 760 ENDPROC iemAImpl_ %+ %1 %+ _u16_locked 725 761 726 BEGINPROC iemAImpl_ %+ %1 %+ _u32762 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32, 8 727 763 PROLOGUE_2_ARGS 728 764 IEM_MAYBE_LOAD_FLAGS A1, %2, %3 … … 733 769 ENDPROC iemAImpl_ %+ %1 %+ _u32 734 770 735 BEGINPROC iemAImpl_ %+ %1 %+ _u32_locked771 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32_locked, 8 736 772 PROLOGUE_2_ARGS 737 773 IEM_MAYBE_LOAD_FLAGS A1, %2, %3 … … 743 779 744 780 %ifdef RT_ARCH_AMD64 745 BEGINPROC iemAImpl_ %+ %1 %+ _u64781 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 8 746 782 PROLOGUE_2_ARGS 747 783 IEM_MAYBE_LOAD_FLAGS A1, %2, %3 … … 752 788 ENDPROC iemAImpl_ %+ %1 %+ _u64 753 789 754 BEGINPROC iemAImpl_ %+ %1 %+ _u64_locked790 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64_locked, 8 755 791 PROLOGUE_2_ARGS 756 792 IEM_MAYBE_LOAD_FLAGS A1, %2, %3 … … 762 798 %else 763 799 ; stub them for now. 764 BEGINPROC iemAImpl_ %+ %1 %+ _u64765 int3 766 ret 767 ENDPROC iemAImpl_ %+ %1 %+ _u64 768 BEGINPROC iemAImpl_ %+ %1 %+ _u64_locked800 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 8 801 int3 802 ret 803 ENDPROC iemAImpl_ %+ %1 %+ _u64 804 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64_locked, 8 769 805 int3 770 806 ret … … 798 834 %macro IEMIMPL_SHIFT_OP 3 799 835 BEGINCODE 800 BEGINPROC iemAImpl_ %+ %1 %+ _u8836 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u8, 12 801 837 PROLOGUE_3_ARGS 802 838 IEM_MAYBE_LOAD_FLAGS A2, %2, %3 … … 813 849 ENDPROC iemAImpl_ %+ %1 %+ _u8 814 850 815 BEGINPROC iemAImpl_ %+ %1 %+ _u16851 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16, 12 816 852 PROLOGUE_3_ARGS 817 853 IEM_MAYBE_LOAD_FLAGS A2, %2, %3 … … 828 864 ENDPROC iemAImpl_ %+ %1 %+ _u16 829 865 830 BEGINPROC iemAImpl_ %+ %1 %+ _u32866 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32, 12 831 867 PROLOGUE_3_ARGS 832 868 IEM_MAYBE_LOAD_FLAGS A2, %2, %3 … … 844 880 845 881 %ifdef RT_ARCH_AMD64 846 BEGINPROC iemAImpl_ %+ %1 %+ _u64882 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 12 847 883 PROLOGUE_3_ARGS 848 884 IEM_MAYBE_LOAD_FLAGS A2, %2, %3 … … 859 895 ENDPROC iemAImpl_ %+ %1 %+ _u64 860 896 %else ; stub it for now - later, replace with hand coded stuff. 861 BEGINPROC iemAImpl_ %+ %1 %+ _u64897 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 12 862 898 int3 863 899 ret … … 877 913 878 914 ;; 879 ; Macro for implementing a dou lbe precision shift operation.915 ; Macro for implementing a double precision shift operation. 880 916 ; 881 917 ; This will generate code for the 16, 32 and 64 bit accesses, except on … … 893 929 %macro IEMIMPL_SHIFT_DBL_OP 3 894 930 BEGINCODE 895 BEGINPROC iemAImpl_ %+ %1 %+ _u16931 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16, 16 896 932 PROLOGUE_4_ARGS 897 933 IEM_MAYBE_LOAD_FLAGS A3, %2, %3 … … 909 945 ENDPROC iemAImpl_ %+ %1 %+ _u16 910 946 911 BEGINPROC iemAImpl_ %+ %1 %+ _u32947 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32, 16 912 948 PROLOGUE_4_ARGS 913 949 IEM_MAYBE_LOAD_FLAGS A3, %2, %3 … … 926 962 927 963 %ifdef RT_ARCH_AMD64 928 BEGINPROC iemAImpl_ %+ %1 %+ _u64964 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 20 929 965 PROLOGUE_4_ARGS 930 966 IEM_MAYBE_LOAD_FLAGS A3, %2, %3 … … 942 978 ENDPROC iemAImpl_ %+ %1 %+ _u64 943 979 %else ; stub it for now - later, replace with hand coded stuff. 944 BEGINPROC iemAImpl_ %+ %1 %+ _u64980 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 20 945 981 int3 946 982 ret … … 975 1011 %macro IEMIMPL_MUL_OP 3 976 1012 BEGINCODE 977 BEGINPROC iemAImpl_ %+ %1 %+ _u81013 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u8, 12 978 1014 PROLOGUE_3_ARGS 979 1015 IEM_MAYBE_LOAD_FLAGS A2, %2, %3 … … 987 1023 ENDPROC iemAImpl_ %+ %1 %+ _u8 988 1024 989 BEGINPROC iemAImpl_ %+ %1 %+ _u161025 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16, 16 990 1026 PROLOGUE_4_ARGS 991 1027 IEM_MAYBE_LOAD_FLAGS A3, %2, %3 … … 1007 1043 ENDPROC iemAImpl_ %+ %1 %+ _u16 1008 1044 1009 BEGINPROC iemAImpl_ %+ %1 %+ _u321045 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32, 16 1010 1046 PROLOGUE_4_ARGS 1011 1047 IEM_MAYBE_LOAD_FLAGS A3, %2, %3 … … 1028 1064 1029 1065 %ifdef RT_ARCH_AMD64 1030 BEGINPROC iemAImpl_ %+ %1 %+ _u641066 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 20 1031 1067 PROLOGUE_4_ARGS 1032 1068 IEM_MAYBE_LOAD_FLAGS A3, %2, %3 … … 1048 1084 ENDPROC iemAImpl_ %+ %1 %+ _u64 1049 1085 %else ; stub it for now - later, replace with hand coded stuff. 1050 BEGINPROC iemAImpl_ %+ %1 %+ _u641086 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 20 1051 1087 int3 1052 1088 ret … … 1081 1117 %macro IEMIMPL_DIV_OP 3 1082 1118 BEGINCODE 1083 BEGINPROC iemAImpl_ %+ %1 %+ _u81119 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u8, 12 1084 1120 PROLOGUE_3_ARGS 1085 1121 … … 1103 1139 ENDPROC iemAImpl_ %+ %1 %+ _u8 1104 1140 1105 BEGINPROC iemAImpl_ %+ %1 %+ _u161141 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u16, 16 1106 1142 PROLOGUE_4_ARGS 1107 1143 … … 1137 1173 ENDPROC iemAImpl_ %+ %1 %+ _u16 1138 1174 1139 BEGINPROC iemAImpl_ %+ %1 %+ _u321175 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u32, 16 1140 1176 PROLOGUE_4_ARGS 1141 1177 … … 1173 1209 1174 1210 %ifdef RT_ARCH_AMD64 1175 BEGINPROC iemAImpl_ %+ %1 %+ _u641211 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 20 1176 1212 PROLOGUE_4_ARGS 1177 1213 … … 1208 1244 ENDPROC iemAImpl_ %+ %1 %+ _u64 1209 1245 %else ; stub it for now - later, replace with hand coded stuff. 1210 BEGINPROC iemAImpl_ %+ %1 %+ _u641246 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u64, 20 1211 1247 int3 1212 1248 ret
Note:
See TracChangeset
for help on using the changeset viewer.