VirtualBox

Changeset 40007 in vbox for trunk/src/VBox/VMM/VMMR3


Ignore:
Timestamp:
Feb 6, 2012 11:16:59 AM (13 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
76118
Message:

VMMR3/PATMA.asm: moved all patch records to the data section to prevent text relocations in the binary (thanks Mathias Krause!)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR3/PATMA.asm

    r37955 r40007  
    9292
    9393
     94SECTION .data
    9495; Patch record for setting PATM_INTERRUPTFLAG
    9596GLOBALNAME PATMSetPIFRecord
     
    103104    DD      0
    104105    DD      0ffffffffh
     106SECTION .text
    105107
    106108;
     
    117119
    118120
     121SECTION .data
    119122; Patch record for clearing PATM_INTERRUPTFLAG
    120123GLOBALNAME PATMClearPIFRecord
     
    128131    DD      0
    129132    DD      0ffffffffh
     133SECTION .text
    130134
    131135;
     
    170174
    171175
     176SECTION .data
    172177; Patch record for clearing PATM_INHIBITIRQADDR
    173178GLOBALNAME PATMClearInhibitIRQFaultIF0Record
     
    203208    DD      0
    204209    DD      0ffffffffh
     210SECTION .text
    205211
    206212;
     
    240246
    241247
     248SECTION .data
    242249; Patch record for clearing PATM_INHIBITIRQADDR
    243250GLOBALNAME PATMClearInhibitIRQContIF0Record
     
    271278    DD      0
    272279    DD      0ffffffffh
     280SECTION .text
    273281
    274282
     
    299307
    300308
     309SECTION .data
    301310; Patch record for 'cli'
    302311GLOBALNAME PATMCliRecord
     
    322331    DD      0
    323332    DD      0ffffffffh
     333SECTION .text
    324334
    325335
     
    345355ENDPROC     PATMStiReplacement
    346356
     357SECTION .data
    347358; Patch record for 'sti'
    348359GLOBALNAME PATMStiRecord
     
    372383    DD      0
    373384    DD      0ffffffffh
     385SECTION .text
    374386
    375387;
     
    433445
    434446
     447SECTION .data
    435448; Patch record for trap gate entrypoint
    436449GLOBALNAME PATMTrapEntryRecord
     
    456469    DD      0
    457470    DD      0ffffffffh
     471SECTION .text
    458472
    459473;
     
    518532
    519533
     534SECTION .data
    520535; Patch record for trap gate entrypoint
    521536GLOBALNAME PATMTrapEntryRecordErrorCode
     
    541556    DD      0
    542557    DD      0ffffffffh
     558SECTION .text
    543559
    544560
     
    600616
    601617
     618SECTION .data
    602619; Patch record for interrupt gate entrypoint
    603620GLOBALNAME PATMIntEntryRecord
     
    623640    DD      0
    624641    DD      0ffffffffh
     642SECTION .text
    625643
    626644;
     
    682700
    683701
     702SECTION .data
    684703; Patch record for interrupt gate entrypoint
    685704GLOBALNAME PATMIntEntryRecordErrorCode
     
    705724    DD      0
    706725    DD      0ffffffffh
     726SECTION .text
    707727
    708728;
     
    767787
    768788
     789SECTION .data
    769790; Patch record for 'popfd'
    770791GLOBALNAME PATMPopf32Record
     
    806827    DD      0
    807828    DD      0ffffffffh
     829SECTION .text
    808830
    809831; no need to check the IF flag when popf isn't an exit point of a patch (e.g. function duplication)
     
    859881
    860882
     883SECTION .data
    861884; Patch record for 'popfd'
    862885GLOBALNAME PATMPopf32Record_NoExit
     
    902925    DD      0
    903926    DD      0ffffffffh
     927SECTION .text
    904928
    905929
     
    941965
    942966
     967SECTION .data
    943968; Patch record for 'popf'
    944969GLOBALNAME PATMPopf16Record
     
    968993    DD      0
    969994    DD      0ffffffffh
     995SECTION .text
    970996
    971997;
     
    10021028
    10031029
     1030SECTION .data
    10041031; Patch record for 'popf'
    10051032GLOBALNAME PATMPopf16Record_NoExit
     
    10291056    DD      0
    10301057    DD      0ffffffffh
     1058SECTION .text
    10311059
    10321060
     
    10591087
    10601088
     1089SECTION .data
    10611090; Patch record for 'pushfd'
    10621091GLOBALNAME PATMPushf32Record
     
    10821111    DD      0
    10831112    DD      0ffffffffh
     1113SECTION .text
    10841114
    10851115
     
    11061136
    11071137
     1138SECTION .data
    11081139; Patch record for 'pushf'
    11091140GLOBALNAME PATMPushf16Record
     
    11211152    DD      0
    11221153    DD      0ffffffffh
     1154SECTION .text
    11231155
    11241156
     
    11461178
    11471179
     1180SECTION .data
    11481181; Patch record for 'push cs'
    11491182GLOBALNAME PATMPushCSRecord
     
    11591192    DD      0
    11601193    DD      0ffffffffh
     1194SECTION .text
    11611195
    11621196;;****************************************************
     
    13581392ENDPROC     PATMIretReplacement
    13591393
     1394SECTION .data
    13601395; Patch record for 'iretd'
    13611396GLOBALNAME PATMIretRecord
     
    14251460    DD      0
    14261461    DD      0ffffffffh
     1462SECTION .text
    14271463
    14281464
     
    15081544ENDPROC     PATMIretFunction
    15091545
     1546SECTION .data
    15101547GLOBALNAME PATMIretFunctionRecord
    15111548    RTCCPTR_DEF PATMIretFunction_Start
     
    15201557    DD      0
    15211558    DD      0ffffffffh
     1559SECTION .text
    15221560
    15231561
     
    15741612ENDPROC PATMCpuidReplacement
    15751613
     1614SECTION .data
    15761615; Patch record for 'cpuid'
    15771616GLOBALNAME PATMCpuidRecord
     
    16011640    DD      0
    16021641    DD      0ffffffffh
     1642SECTION .text
    16031643
    16041644
     
    16241664ENDPROC PATMJEcxReplacement
    16251665
     1666SECTION .data
    16261667; Patch record for 'JEcx'
    16271668GLOBALNAME PATMJEcxRecord
     
    16391680    DD      0
    16401681    DD      0ffffffffh
     1682SECTION .text
    16411683
    16421684align 32; yasm / nasm diffing. remove me!
     
    16621704ENDPROC PATMLoopReplacement
    16631705
     1706SECTION .data
    16641707; Patch record for 'Loop'
    16651708GLOBALNAME PATMLoopRecord
     
    16771720    DD      0
    16781721    DD      0ffffffffh
     1722SECTION .text
    16791723
    16801724BEGINPROC   PATMLoopZReplacement
     
    17021746ENDPROC PATMLoopZReplacement
    17031747
     1748SECTION .data
    17041749; Patch record for 'Loopz'
    17051750GLOBALNAME PATMLoopZRecord
     
    17171762    DD      0
    17181763    DD      0ffffffffh
     1764SECTION .text
    17191765
    17201766
     
    17431789ENDPROC PATMLoopNZReplacement
    17441790
     1791SECTION .data
    17451792; Patch record for 'LoopNZ'
    17461793GLOBALNAME PATMLoopNZRecord
     
    17581805    DD      0
    17591806    DD      0ffffffffh
     1807SECTION .text
    17601808
    17611809align 32
     
    18761924ENDPROC PATMLookupAndCall
    18771925
     1926SECTION .data
    18781927; Patch record for indirect calls and jumps
    18791928GLOBALNAME PATMLookupAndCallRecord
     
    19111960    DD      0
    19121961    DD      0ffffffffh
     1962SECTION .text
    19131963
    19141964
     
    19932043ENDPROC PATMLookupAndJump
    19942044
     2045SECTION .data
    19952046; Patch record for indirect calls and jumps
    19962047GLOBALNAME PATMLookupAndJumpRecord
     
    20122063    DD      0
    20132064    DD      0ffffffffh
     2065SECTION .text
    20142066
    20152067
     
    20522104ENDPROC PATMCall
    20532105
     2106SECTION .data
    20542107; Patch record for direct calls
    20552108GLOBALNAME PATMCallRecord
     
    20712124    DD      0
    20722125    DD      0ffffffffh
     2126SECTION .text
    20732127
    20742128
     
    21082162ENDPROC PATMCallIndirect
    21092163
     2164SECTION .data
    21102165; Patch record for indirect calls
    21112166GLOBALNAME PATMCallIndirectRecord
     
    21272182    DD      0
    21282183    DD      0ffffffffh
     2184SECTION .text
    21292185
    21302186
     
    21692225ENDPROC PATMJumpIndirect
    21702226
     2227SECTION .data
    21712228; Patch record for indirect jumps
    21722229GLOBALNAME PATMJumpIndirectRecord
     
    21882245    DD      0
    21892246    DD      0ffffffffh
     2247SECTION .text
    21902248
    21912249;
     
    22342292ENDPROC     PATMRet
    22352293
     2294SECTION .data
    22362295GLOBALNAME PATMRetRecord
    22372296    RTCCPTR_DEF PATMRet_Start
     
    22502309    DD      0
    22512310    DD      0ffffffffh
     2311SECTION .text
    22522312
    22532313;
     
    23992459ENDPROC     PATMRetFunction
    24002460
     2461SECTION .data
    24012462GLOBALNAME PATMRetFunctionRecord
    24022463    RTCCPTR_DEF PATMRetFunction_Start
     
    24332494%endif
    24342495    DD      0ffffffffh
     2496SECTION .text
    24352497
    24362498
     
    24742536ENDPROC     PATMCheckIF
    24752537
     2538SECTION .data
    24762539; Patch record for call instructions
    24772540GLOBALNAME PATMCheckIFRecord
     
    25012564    DD      0
    25022565    DD      0ffffffffh
     2566SECTION .text
    25032567
    25042568;
     
    25282592ENDPROC     PATMJumpToGuest_IF1
    25292593
     2594SECTION .data
    25302595; Patch record for call instructions
    25312596GLOBALNAME PATMJumpToGuest_IF1Record
     
    25452610    DD      0
    25462611    DD      0ffffffffh
     2612SECTION .text
    25472613
    25482614
     
    25642630ENDPROC PATMMovFromSS
    25652631
     2632SECTION .data
    25662633GLOBALNAME PATMMovFromSSRecord
    25672634    RTCCPTR_DEF PATMMovFromSS_Start
     
    25762643
    25772644
     2645SECTION .rodata
    25782646; For assertion during init (to make absolutely sure the flags are in sync in vm.mac & vm.h)
    25792647GLOBALNAME PATMInterruptFlag
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