VirtualBox

Changeset 66138 in vbox


Ignore:
Timestamp:
Mar 16, 2017 4:27:11 PM (8 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
114044
Message:

IEM: Implemented AAS.

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

Legend:

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

    r66135 r66138  
    901901 * @opfltest    af,cf
    902902 * @opflmodify  cf,pf,af,zf,sf,of
    903  * @opflundef   of
     903 * @opflundef   pf,zf,sf,of
    904904 * @opgroup     og_gen_arith_dec
    905905 * @optest      efl&~=af ax=9      -> efl&|=nc,po,na,nz,pl,nv
    906906 * @optest      efl&~=af ax=0      -> efl&|=nc,po,na,zf,pl,nv
     907 * @optest      efl&~=af ax=0x00f0 -> ax=0x0000 efl&|=nc,po,na,zf,pl,nv
     908 * @optest      efl&~=af ax=0x00f9 -> ax=0x0009 efl&|=nc,po,na,nz,pl,nv
    907909 * @optest      efl|=af  ax=0      -> ax=0x0106 efl&|=cf,po,af,nz,pl,nv
    908910 * @optest      efl|=af  ax=0x0100 -> ax=0x0206 efl&|=cf,po,af,nz,pl,nv
     
    10071009/**
    10081010 * @opcode      0x3f
    1009  */
    1010 FNIEMOP_STUB(iemOp_aas);
     1011 * @opfltest    af,cf
     1012 * @opflmodify  cf,pf,af,zf,sf,of
     1013 * @opflundef   pf,zf,sf,of
     1014 * @opgroup     og_gen_arith_dec
     1015 * @optest      efl&~=af ax=0x0009 -> efl&|=nc,po,na,nz,pl,nv
     1016 * @optest      efl&~=af ax=0x0000 -> efl&|=nc,po,na,zf,pl,nv
     1017 * @optest      efl&~=af ax=0x00f0 -> ax=0x0000 efl&|=nc,po,na,zf,pl,nv
     1018 * @optest      efl&~=af ax=0x00f9 -> ax=0x0009 efl&|=nc,po,na,nz,pl,nv
     1019 * @optest      efl|=af  ax=0x0000 -> ax=0xfe0a efl&|=cf,po,af,nz,pl,nv
     1020 * @optest      efl|=af  ax=0x0100 -> ax=0xff0a efl&|=cf,po,af,nz,pl,nv
     1021 * @optest      efl|=af  ax=0x000a -> ax=0xff04 efl&|=cf,pe,af,nz,pl,nv
     1022 * @optest      efl|=af  ax=0x010a -> ax=0x0004 efl&|=cf,pe,af,nz,pl,nv
     1023 * @optest      efl|=af  ax=0x020a -> ax=0x0104 efl&|=cf,pe,af,nz,pl,nv
     1024 * @optest      efl|=af  ax=0x0f0a -> ax=0x0e04 efl&|=cf,pe,af,nz,pl,nv
     1025 * @optest      efl|=af  ax=0x7f0a -> ax=0x7e04 efl&|=cf,pe,af,nz,pl,nv
     1026 * @optest      efl|=af  ax=0xff0a -> ax=0xfe04 efl&|=cf,pe,af,nz,pl,nv
     1027 * @optest      efl&~=af ax=0xff0a -> ax=0xfe04 efl&|=cf,pe,af,nz,pl,nv
     1028 * @optest      efl&~=af ax=0xff09 -> ax=0xff09 efl&|=nc,po,na,nz,pl,nv
     1029 * @optest      efl&~=af ax=0x000b -> ax=0xff05 efl&|=cf,po,af,nz,pl,nv
     1030 * @optest      efl&~=af ax=0x000c -> ax=0xff06 efl&|=cf,po,af,nz,pl,nv
     1031 * @optest      efl&~=af ax=0x000d -> ax=0xff07 efl&|=cf,pe,af,nz,pl,nv
     1032 * @optest      efl&~=af ax=0x000e -> ax=0xff08 efl&|=cf,pe,af,nz,pl,nv
     1033 * @optest      efl&~=af ax=0x000f -> ax=0xff09 efl&|=cf,po,af,nz,pl,nv
     1034 */
     1035FNIEMOP_DEF(iemOp_aas)
     1036{
     1037    IEMOP_MNEMONIC0(FIXED, AAS, aas, DISOPTYPE_HARMLESS | DISOPTYPE_INVALID_64, 0); /* express implicit AL/AX register use */
     1038    IEMOP_HLP_NO_64BIT();
     1039    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     1040    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_OF | X86_EFL_OF);
     1041
     1042    return IEM_MC_DEFER_TO_CIMPL_0(iemCImpl_aas);
     1043}
     1044
    10111045
    10121046/**
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsPython.py

    r66135 r66138  
    20152015            sFlatSection = self.flattenAllSections([asSectionLines,]);
    20162016            if not sFlatSection:
    2017                 self.errorComment(iTagLine, '%s: missing value' % ( sTag,));
     2017                self.errorComment(iTagLine, '%s: missing value (dbg: aasSections=%s)' % ( sTag, aasSections));
    20182018                continue;
    20192019            oTest = InstructionTest(oInstr);
     
    23182318                # Process the previous tag.
    23192319                #
     2320                if not asCurSection and len(aasSections) > 1:
     2321                    aasSections.pop(-1);
    23202322                if sCurTag in self.dTagHandlers:
    23212323                    self.dTagHandlers[sCurTag](sCurTag, aasSections, iCurTagLine, iLine);
     
    23452347        # Process the final tag.
    23462348        #
     2349        if not asCurSection and len(aasSections) > 1:
     2350            aasSections.pop(-1);
    23472351        if sCurTag in self.dTagHandlers:
    23482352            self.dTagHandlers[sCurTag](sCurTag, aasSections, iCurTagLine, iLine);
Note: See TracChangeset for help on using the changeset viewer.

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