Changeset 34191 in vbox for trunk/src/VBox/Additions
- Timestamp:
- Nov 19, 2010 11:04:16 AM (14 years ago)
- svn:sync-xref-src-repo-rev:
- 67931
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/common/crOpenGL/fakedri_drv.c
r34177 r34191 314 314 FAKEDRI_PatchNode *pFreeNode, *pPatchNode; 315 315 int64_t offset; 316 char patch[1 2];316 char patch[13]; 317 317 318 318 pPatchNode = g_pRepatchList; … … 326 326 while (pFreeNode) 327 327 { 328 if (pFreeNode->pDstEnd-pFreeNode->pDstStart>=1 2)328 if (pFreeNode->pDstEnd-pFreeNode->pDstStart>=13) 329 329 { 330 330 offset = ((intptr_t)pFreeNode->pDstStart-((intptr_t)pPatchNode->pDstStart+5)); … … 353 353 354 354 /*add 64bit abs jmp, from free space to our stub code*/ 355 patch[0] = 0x4 8; /*movq %rax,imm64*/356 patch[1] = 0xB 8;355 patch[0] = 0x49; /*movq %r11,imm64*/ 356 patch[1] = 0xBB; 357 357 crMemcpy(&patch[2], &pPatchNode->pSrcStart, 8); 358 patch[10] = 0xFF; /*jmp *%rax*/ 359 patch[11] = 0xE0; 358 patch[10] = 0x41; /*jmp *%r11*/ 359 patch[11] = 0xFF; 360 patch[12] = 0xE3; 360 361 # ifndef VBOX_NO_MESA_PATCH_REPORTS 361 362 crDebug("Adding jmp from mesa %s+%#lx to vbox %s", pFreeNode->psFuncName, pFreeNode->pDstStart-pFreeNode->pSrcStart, 362 363 pPatchNode->psFuncName); 363 364 # endif 364 vboxApplyPatch(pFreeNode->psFuncName, pFreeNode->pDstStart, &patch[0], 1 2);365 vboxApplyPatch(pFreeNode->psFuncName, pFreeNode->pDstStart, &patch[0], 13); 365 366 /*mark this space as used*/ 366 pFreeNode->pDstStart = pFreeNode->pDstStart+1 2;367 pFreeNode->pDstStart = pFreeNode->pDstStart+13; 367 368 368 369 pPatchNode = pPatchNode->pNext;
Note:
See TracChangeset
for help on using the changeset viewer.