Browse Source

32 bit only builds one elf, not an elf in an elf, so account for it to be able to bfi int patch properly.

nfactor-troky
Con Kolivas 14 years ago
parent
commit
11c8818558
  1. 16
      ocl.c

16
ocl.c

@ -426,18 +426,22 @@ retry: @@ -426,18 +426,22 @@ retry:
* back and find the 2nd incidence of \x7ELF (rewind by one
* from ELF) and then patch the opcocdes */
if (!advance(&w, &remaining, ".text"))
{patchbfi = false; goto retry;}
{patchbfi = false; goto retry;}
w++; remaining--;
if (!advance(&w, &remaining, ".text"))
{patchbfi = false; goto retry;}
if (!advance(&w, &remaining, ".text")) {
/* 32 bit builds only one ELF */
w--; remaining++;
}
memcpy(&start, w + 285, 4);
memcpy(&length, w + 289, 4);
w = binaries[gpu]; remaining = binary_sizes[gpu];
if (!advance(&w, &remaining, "ELF"))
{patchbfi = false; goto retry;}
{patchbfi = false; goto retry;}
w++; remaining--;
if (!advance(&w, &remaining, "ELF"))
{patchbfi = false; goto retry;}
if (!advance(&w, &remaining, "ELF")) {
/* 32 bit builds only one ELF */
w--; remaining++;
}
w--; remaining++;
w += start; remaining -= start;
if (opt_debug)

Loading…
Cancel
Save