VirtualBox

Changeset 103644 in vbox for trunk


Ignore:
Timestamp:
Mar 2, 2024 1:55:02 AM (7 months ago)
Author:
vboxsync
Message:

VMM/IEM: Use native emitter for the reg/reg variant in IEMOP_BODY_BINARY_rm_rv_RO & IEMOP_BODY_BINARY_rm_rv_RW. bugref:10376

File:
1 edited

Legend:

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

    r103643 r103644  
    288288 * memory/register as the destination.
    289289 */
    290 #define IEMOP_BODY_BINARY_rm_rv_RW(a_fnNormalU16, a_fnNormalU32, a_fnNormalU64) \
     290#define IEMOP_BODY_BINARY_rm_rv_RW(a_fnNormalU16, a_fnNormalU32, a_fnNormalU64, a_EmitterBasename, a_fRegRegNativeArchs, a_fMemRegNativeArchs) \
    291291    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); \
    292292    \
     
    301301                IEM_MC_BEGIN(3, 0, 0, 0); \
    302302                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    303                 IEM_MC_ARG(uint16_t *, pu16Dst, 0); \
    304303                IEM_MC_ARG(uint16_t,   u16Src,  1); \
    305                 IEM_MC_ARG(uint32_t *, pEFlags, 2); \
    306                 \
    307304                IEM_MC_FETCH_GREG_U16(u16Src, IEM_GET_MODRM_REG(pVCpu, bRm)); \
    308                 IEM_MC_REF_GREG_U16(pu16Dst, IEM_GET_MODRM_RM(pVCpu, bRm)); \
    309                 IEM_MC_REF_EFLAGS(pEFlags); \
    310                 IEM_MC_CALL_VOID_AIMPL_3(a_fnNormalU16, pu16Dst, u16Src, pEFlags); \
    311                 \
     305                IEM_MC_NATIVE_IF(a_fRegRegNativeArchs) { \
     306                    IEM_MC_LOCAL(uint16_t,   u16Dst); \
     307                    IEM_MC_FETCH_GREG_U16(u16Dst, IEM_GET_MODRM_RM(pVCpu, bRm)); \
     308                    /** @todo IEM_MC_LOCAL_EFLAGS(uEFlags); */ \
     309                    IEM_MC_LOCAL(uint32_t,  uEFlags); \
     310                    IEM_MC_FETCH_EFLAGS(uEFlags); \
     311                    IEM_MC_NATIVE_EMIT_4(RT_CONCAT3(iemNativeEmit_,a_EmitterBasename,_r_r_efl), u16Dst, u16Src, uEFlags, 16); \
     312                    IEM_MC_STORE_GREG_U16(IEM_GET_MODRM_RM(pVCpu, bRm), u16Dst); \
     313                    IEM_MC_COMMIT_EFLAGS(uEFlags); \
     314                } IEM_MC_NATIVE_ELSE() { \
     315                    IEM_MC_ARG(uint16_t *, pu16Dst, 0); \
     316                    IEM_MC_REF_GREG_U16(pu16Dst, IEM_GET_MODRM_RM(pVCpu, bRm)); \
     317                    IEM_MC_ARG(uint32_t *, pEFlags, 2); \
     318                    IEM_MC_REF_EFLAGS(pEFlags); \
     319                    IEM_MC_CALL_VOID_AIMPL_3(a_fnNormalU16, pu16Dst, u16Src, pEFlags); \
     320                } IEM_MC_NATIVE_ENDIF(); \
    312321                IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    313322                IEM_MC_END(); \
     
    317326                IEM_MC_BEGIN(3, 0, IEM_MC_F_MIN_386, 0); \
    318327                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    319                 IEM_MC_ARG(uint32_t *, pu32Dst, 0); \
    320328                IEM_MC_ARG(uint32_t,   u32Src,  1); \
    321                 IEM_MC_ARG(uint32_t *, pEFlags, 2); \
    322                 \
    323329                IEM_MC_FETCH_GREG_U32(u32Src, IEM_GET_MODRM_REG(pVCpu, bRm)); \
    324                 IEM_MC_REF_GREG_U32(pu32Dst, IEM_GET_MODRM_RM(pVCpu, bRm)); \
    325                 IEM_MC_REF_EFLAGS(pEFlags); \
    326                 IEM_MC_CALL_VOID_AIMPL_3(a_fnNormalU32, pu32Dst, u32Src, pEFlags); \
    327                 \
    328                 IEM_MC_CLEAR_HIGH_GREG_U64(IEM_GET_MODRM_RM(pVCpu, bRm)); \
     330                IEM_MC_NATIVE_IF(a_fRegRegNativeArchs) { \
     331                    IEM_MC_LOCAL(uint32_t,   u32Dst); \
     332                    IEM_MC_FETCH_GREG_U32(u32Dst, IEM_GET_MODRM_RM(pVCpu, bRm)); \
     333                    /** @todo IEM_MC_LOCAL_EFLAGS(uEFlags); */ \
     334                    IEM_MC_LOCAL(uint32_t,  uEFlags); \
     335                    IEM_MC_FETCH_EFLAGS(uEFlags); \
     336                    IEM_MC_NATIVE_EMIT_4(RT_CONCAT3(iemNativeEmit_,a_EmitterBasename,_r_r_efl), u32Dst, u32Src, uEFlags, 32); \
     337                    IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_RM(pVCpu, bRm), u32Dst); \
     338                    IEM_MC_COMMIT_EFLAGS(uEFlags); \
     339                } IEM_MC_NATIVE_ELSE() { \
     340                    IEM_MC_ARG(uint32_t *, pu32Dst, 0); \
     341                    IEM_MC_REF_GREG_U32(pu32Dst, IEM_GET_MODRM_RM(pVCpu, bRm)); \
     342                    IEM_MC_ARG(uint32_t *, pEFlags, 2); \
     343                    IEM_MC_REF_EFLAGS(pEFlags); \
     344                    IEM_MC_CALL_VOID_AIMPL_3(a_fnNormalU32, pu32Dst, u32Src, pEFlags); \
     345                    IEM_MC_CLEAR_HIGH_GREG_U64(IEM_GET_MODRM_RM(pVCpu, bRm)); \
     346                } IEM_MC_NATIVE_ENDIF(); \
    329347                IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    330348                IEM_MC_END(); \
     
    334352                IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT, 0); \
    335353                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    336                 IEM_MC_ARG(uint64_t *, pu64Dst, 0); \
    337                 IEM_MC_ARG(uint64_t,   u64Src,  1); \
    338                 IEM_MC_ARG(uint32_t *, pEFlags, 2); \
    339                 \
     354                IEM_MC_ARG(uint64_t,        u64Src,  1); \
    340355                IEM_MC_FETCH_GREG_U64(u64Src, IEM_GET_MODRM_REG(pVCpu, bRm)); \
    341                 IEM_MC_REF_GREG_U64(pu64Dst, IEM_GET_MODRM_RM(pVCpu, bRm)); \
    342                 IEM_MC_REF_EFLAGS(pEFlags); \
    343                 IEM_MC_CALL_VOID_AIMPL_3(a_fnNormalU64, pu64Dst, u64Src, pEFlags); \
    344                 \
     356                IEM_MC_NATIVE_IF(a_fRegRegNativeArchs) { \
     357                    IEM_MC_LOCAL(uint64_t,  u64Dst); \
     358                    IEM_MC_FETCH_GREG_U64(u64Dst, IEM_GET_MODRM_RM(pVCpu, bRm)); \
     359                    /** @todo IEM_MC_LOCAL_EFLAGS(uEFlags); */ \
     360                    IEM_MC_LOCAL(uint32_t,  uEFlags); \
     361                    IEM_MC_FETCH_EFLAGS(uEFlags); \
     362                    IEM_MC_NATIVE_EMIT_4(RT_CONCAT3(iemNativeEmit_,a_EmitterBasename,_r_r_efl), u64Dst, u64Src, uEFlags, 64); \
     363                    IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_RM(pVCpu, bRm), u64Dst); \
     364                    IEM_MC_COMMIT_EFLAGS(uEFlags); \
     365                } IEM_MC_NATIVE_ELSE() { \
     366                    IEM_MC_ARG(uint64_t *,  pu64Dst, 0); \
     367                    IEM_MC_REF_GREG_U64(pu64Dst, IEM_GET_MODRM_RM(pVCpu, bRm)); \
     368                    IEM_MC_ARG(uint32_t *,  pEFlags, 2); \
     369                    IEM_MC_REF_EFLAGS(pEFlags); \
     370                    IEM_MC_CALL_VOID_AIMPL_3(a_fnNormalU64, pu64Dst, u64Src, pEFlags); \
     371                } IEM_MC_NATIVE_ENDIF(); \
    345372                IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    346373                IEM_MC_END(); \
     
    507534 * memory/register as the destination.
    508535 */
    509 #define IEMOP_BODY_BINARY_rm_rv_RO(a_fnNormalU16, a_fnNormalU32, a_fnNormalU64) \
     536#define IEMOP_BODY_BINARY_rm_rv_RO(a_fnNormalU16, a_fnNormalU32, a_fnNormalU64, a_EmitterBasename, a_fRegRegNativeArchs, a_fMemRegNativeArchs) \
    510537    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); \
    511538    \
     
    520547                IEM_MC_BEGIN(3, 0, 0, 0); \
    521548                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    522                 IEM_MC_ARG(uint16_t *, pu16Dst, 0); \
    523549                IEM_MC_ARG(uint16_t,   u16Src,  1); \
    524                 IEM_MC_ARG(uint32_t *, pEFlags, 2); \
    525                 \
    526550                IEM_MC_FETCH_GREG_U16(u16Src, IEM_GET_MODRM_REG(pVCpu, bRm)); \
    527                 IEM_MC_REF_GREG_U16(pu16Dst, IEM_GET_MODRM_RM(pVCpu, bRm)); \
    528                 IEM_MC_REF_EFLAGS(pEFlags); \
    529                 IEM_MC_CALL_VOID_AIMPL_3(a_fnNormalU16, pu16Dst, u16Src, pEFlags); \
    530                 \
     551                IEM_MC_NATIVE_IF(a_fRegRegNativeArchs) { \
     552                    IEM_MC_LOCAL(uint16_t,   u16Dst); \
     553                    IEM_MC_FETCH_GREG_U16(u16Dst, IEM_GET_MODRM_RM(pVCpu, bRm)); \
     554                    /** @todo IEM_MC_LOCAL_EFLAGS(uEFlags); */ \
     555                    IEM_MC_LOCAL(uint32_t,  uEFlags); \
     556                    IEM_MC_FETCH_EFLAGS(uEFlags); \
     557                    IEM_MC_NATIVE_EMIT_4(RT_CONCAT3(iemNativeEmit_,a_EmitterBasename,_r_r_efl), u16Dst, u16Src, uEFlags, 16); \
     558                    IEM_MC_STORE_GREG_U16(IEM_GET_MODRM_RM(pVCpu, bRm), u16Dst); \
     559                    IEM_MC_COMMIT_EFLAGS(uEFlags); \
     560                } IEM_MC_NATIVE_ELSE() { \
     561                    IEM_MC_ARG(uint16_t *, pu16Dst, 0); \
     562                    IEM_MC_REF_GREG_U16(pu16Dst, IEM_GET_MODRM_RM(pVCpu, bRm)); \
     563                    IEM_MC_ARG(uint32_t *, pEFlags, 2); \
     564                    IEM_MC_REF_EFLAGS(pEFlags); \
     565                    IEM_MC_CALL_VOID_AIMPL_3(a_fnNormalU16, pu16Dst, u16Src, pEFlags); \
     566                } IEM_MC_NATIVE_ENDIF(); \
    531567                IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    532568                IEM_MC_END(); \
     
    536572                IEM_MC_BEGIN(3, 0, IEM_MC_F_MIN_386, 0); \
    537573                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    538                 IEM_MC_ARG(uint32_t *, pu32Dst, 0); \
    539574                IEM_MC_ARG(uint32_t,   u32Src,  1); \
    540                 IEM_MC_ARG(uint32_t *, pEFlags, 2); \
    541                 \
    542575                IEM_MC_FETCH_GREG_U32(u32Src, IEM_GET_MODRM_REG(pVCpu, bRm)); \
    543                 IEM_MC_REF_GREG_U32(pu32Dst, IEM_GET_MODRM_RM(pVCpu, bRm)); \
    544                 IEM_MC_REF_EFLAGS(pEFlags); \
    545                 IEM_MC_CALL_VOID_AIMPL_3(a_fnNormalU32, pu32Dst, u32Src, pEFlags); \
    546                 \
     576                IEM_MC_NATIVE_IF(a_fRegRegNativeArchs) { \
     577                    IEM_MC_LOCAL(uint32_t,   u32Dst); \
     578                    IEM_MC_FETCH_GREG_U32(u32Dst, IEM_GET_MODRM_RM(pVCpu, bRm)); \
     579                    /** @todo IEM_MC_LOCAL_EFLAGS(uEFlags); */ \
     580                    IEM_MC_LOCAL(uint32_t,  uEFlags); \
     581                    IEM_MC_FETCH_EFLAGS(uEFlags); \
     582                    IEM_MC_NATIVE_EMIT_4(RT_CONCAT3(iemNativeEmit_,a_EmitterBasename,_r_r_efl), u32Dst, u32Src, uEFlags, 32); \
     583                    IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_RM(pVCpu, bRm), u32Dst); \
     584                    IEM_MC_COMMIT_EFLAGS(uEFlags); \
     585                } IEM_MC_NATIVE_ELSE() { \
     586                    IEM_MC_ARG(uint32_t *, pu32Dst, 0); \
     587                    IEM_MC_REF_GREG_U32(pu32Dst, IEM_GET_MODRM_RM(pVCpu, bRm)); \
     588                    IEM_MC_ARG(uint32_t *, pEFlags, 2); \
     589                    IEM_MC_REF_EFLAGS(pEFlags); \
     590                    IEM_MC_CALL_VOID_AIMPL_3(a_fnNormalU32, pu32Dst, u32Src, pEFlags); \
     591                } IEM_MC_NATIVE_ENDIF(); \
    547592                IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    548593                IEM_MC_END(); \
     
    552597                IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT, 0); \
    553598                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    554                 IEM_MC_ARG(uint64_t *, pu64Dst, 0); \
    555                 IEM_MC_ARG(uint64_t,   u64Src,  1); \
    556                 IEM_MC_ARG(uint32_t *, pEFlags, 2); \
    557                 \
     599                IEM_MC_ARG(uint64_t,        u64Src,  1); \
    558600                IEM_MC_FETCH_GREG_U64(u64Src, IEM_GET_MODRM_REG(pVCpu, bRm)); \
    559                 IEM_MC_REF_GREG_U64(pu64Dst, IEM_GET_MODRM_RM(pVCpu, bRm)); \
    560                 IEM_MC_REF_EFLAGS(pEFlags); \
    561                 IEM_MC_CALL_VOID_AIMPL_3(a_fnNormalU64, pu64Dst, u64Src, pEFlags); \
    562                 \
     601                IEM_MC_NATIVE_IF(a_fRegRegNativeArchs) { \
     602                    IEM_MC_LOCAL(uint64_t,  u64Dst); \
     603                    IEM_MC_FETCH_GREG_U64(u64Dst, IEM_GET_MODRM_RM(pVCpu, bRm)); \
     604                    /** @todo IEM_MC_LOCAL_EFLAGS(uEFlags); */ \
     605                    IEM_MC_LOCAL(uint32_t,  uEFlags); \
     606                    IEM_MC_FETCH_EFLAGS(uEFlags); \
     607                    IEM_MC_NATIVE_EMIT_4(RT_CONCAT3(iemNativeEmit_,a_EmitterBasename,_r_r_efl), u64Dst, u64Src, uEFlags, 64); \
     608                    IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_RM(pVCpu, bRm), u64Dst); \
     609                    IEM_MC_COMMIT_EFLAGS(uEFlags); \
     610                } IEM_MC_NATIVE_ELSE() { \
     611                    IEM_MC_ARG(uint64_t *,  pu64Dst, 0); \
     612                    IEM_MC_REF_GREG_U64(pu64Dst, IEM_GET_MODRM_RM(pVCpu, bRm)); \
     613                    IEM_MC_ARG(uint32_t *,  pEFlags, 2); \
     614                    IEM_MC_REF_EFLAGS(pEFlags); \
     615                    IEM_MC_CALL_VOID_AIMPL_3(a_fnNormalU64, pu64Dst, u64Src, pEFlags); \
     616                } IEM_MC_NATIVE_ENDIF(); \
    563617                IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    564618                IEM_MC_END(); \
     
    780834{
    781835    IEMOP_MNEMONIC2(MR, ADD, add, Ev, Gv, DISOPTYPE_HARMLESS, IEMOPHINT_LOCK_ALLOWED);
    782     IEMOP_BODY_BINARY_rm_rv_RW(    iemAImpl_add_u16,        iemAImpl_add_u32,        iemAImpl_add_u64);
     836    IEMOP_BODY_BINARY_rm_rv_RW(    iemAImpl_add_u16,        iemAImpl_add_u32,        iemAImpl_add_u64,       add, 0, 0);
    783837    IEMOP_BODY_BINARY_rm_rv_LOCKED(iemAImpl_add_u16_locked, iemAImpl_add_u32_locked, iemAImpl_add_u64_locked);
    784838}
     
    905959    IEMOP_MNEMONIC2(MR, OR, or, Ev, Gv, DISOPTYPE_HARMLESS, IEMOPHINT_LOCK_ALLOWED);
    906960    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF);
    907     IEMOP_BODY_BINARY_rm_rv_RW(    iemAImpl_or_u16,        iemAImpl_or_u32,        iemAImpl_or_u64);
     961    IEMOP_BODY_BINARY_rm_rv_RW(    iemAImpl_or_u16,        iemAImpl_or_u32,        iemAImpl_or_u64,       or, 0, 0);
    908962    IEMOP_BODY_BINARY_rm_rv_LOCKED(iemAImpl_or_u16_locked, iemAImpl_or_u32_locked, iemAImpl_or_u64_locked);
    909963}
     
    10611115{
    10621116    IEMOP_MNEMONIC2(MR, ADC, adc, Ev, Gv, DISOPTYPE_HARMLESS, IEMOPHINT_LOCK_ALLOWED);
    1063     IEMOP_BODY_BINARY_rm_rv_RW(    iemAImpl_adc_u16,        iemAImpl_adc_u32,        iemAImpl_adc_u64);
     1117    IEMOP_BODY_BINARY_rm_rv_RW(    iemAImpl_adc_u16,        iemAImpl_adc_u32,        iemAImpl_adc_u64,       adc, 0, 0);
    10641118    IEMOP_BODY_BINARY_rm_rv_LOCKED(iemAImpl_adc_u16_locked, iemAImpl_adc_u32_locked, iemAImpl_adc_u64_locked);
    10651119}
     
    11681222{
    11691223    IEMOP_MNEMONIC2(MR, SBB, sbb, Ev, Gv, DISOPTYPE_HARMLESS, IEMOPHINT_LOCK_ALLOWED);
    1170     IEMOP_BODY_BINARY_rm_rv_RW(    iemAImpl_sbb_u16,        iemAImpl_sbb_u32,        iemAImpl_sbb_u64);
     1224    IEMOP_BODY_BINARY_rm_rv_RW(    iemAImpl_sbb_u16,        iemAImpl_sbb_u32,        iemAImpl_sbb_u64,       sbb, 0, 0);
    11711225    IEMOP_BODY_BINARY_rm_rv_LOCKED(iemAImpl_sbb_u16_locked, iemAImpl_sbb_u32_locked, iemAImpl_sbb_u64_locked);
    11721226}
     
    12751329    IEMOP_MNEMONIC2(MR, AND, and, Ev, Gv, DISOPTYPE_HARMLESS, IEMOPHINT_LOCK_ALLOWED);
    12761330    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF);
    1277     IEMOP_BODY_BINARY_rm_rv_RW(    iemAImpl_and_u16,        iemAImpl_and_u32,        iemAImpl_and_u64);
     1331    IEMOP_BODY_BINARY_rm_rv_RW(    iemAImpl_and_u16,        iemAImpl_and_u32,        iemAImpl_and_u64,       and, 0, 0);
    12781332    IEMOP_BODY_BINARY_rm_rv_LOCKED(iemAImpl_and_u16_locked, iemAImpl_and_u32_locked, iemAImpl_and_u64_locked);
    12791333}
     
    13891443{
    13901444    IEMOP_MNEMONIC2(MR, SUB, sub, Ev, Gv, DISOPTYPE_HARMLESS, IEMOPHINT_LOCK_ALLOWED);
    1391     IEMOP_BODY_BINARY_rm_rv_RW(    iemAImpl_sub_u16,        iemAImpl_sub_u32,        iemAImpl_sub_u64);
     1445    IEMOP_BODY_BINARY_rm_rv_RW(    iemAImpl_sub_u16,        iemAImpl_sub_u32,        iemAImpl_sub_u64,       sub, 0, 0);
    13921446    IEMOP_BODY_BINARY_rm_rv_LOCKED(iemAImpl_sub_u16_locked, iemAImpl_sub_u32_locked, iemAImpl_sub_u64_locked);
    13931447}
     
    15011555    IEMOP_MNEMONIC2(MR, XOR, xor, Ev, Gv, DISOPTYPE_HARMLESS, IEMOPHINT_LOCK_ALLOWED);
    15021556    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF);
    1503     IEMOP_BODY_BINARY_rm_rv_RW(    iemAImpl_xor_u16,        iemAImpl_xor_u32,        iemAImpl_xor_u64);
     1557    IEMOP_BODY_BINARY_rm_rv_RW(    iemAImpl_xor_u16,        iemAImpl_xor_u32,        iemAImpl_xor_u64,       xor, RT_ARCH_VAL_AMD64 | RT_ARCH_VAL_ARM64, 0);
    15041558    IEMOP_BODY_BINARY_rm_rv_LOCKED(iemAImpl_xor_u16_locked, iemAImpl_xor_u32_locked, iemAImpl_xor_u64_locked);
    15051559}
     
    17001754{
    17011755    IEMOP_MNEMONIC(cmp_Ev_Gv, "cmp Ev,Gv");
    1702     IEMOP_BODY_BINARY_rm_rv_RO(iemAImpl_cmp_u16, iemAImpl_cmp_u32, iemAImpl_cmp_u64);
     1756    IEMOP_BODY_BINARY_rm_rv_RO(iemAImpl_cmp_u16, iemAImpl_cmp_u32, iemAImpl_cmp_u64, cmp, 0, 0);
    17031757}
    17041758
     
    52835337    IEMOP_MNEMONIC(test_Ev_Gv, "test Ev,Gv");
    52845338    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF);
    5285     IEMOP_BODY_BINARY_rm_rv_RO(iemAImpl_test_u16, iemAImpl_test_u32, iemAImpl_test_u64);
     5339    IEMOP_BODY_BINARY_rm_rv_RO(iemAImpl_test_u16, iemAImpl_test_u32, iemAImpl_test_u64, test, 0, 0);
    52865340}
    52875341
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