code *nteh_gensindex(int sindex) { code *c; if (!(config.flags2 & CFG2seh)) return NULL; // Generate: // MOV -4[EBP],sindex c = genc(NULL,0xC7,modregrm(1,0,BP),FLconst,(targ_uns)nteh_EBPoffset_sindex(),FLconst,sindex); // 7 bytes long c->Iflags |= CFvolatile; #ifdef DEBUG //assert(GENSINDEXSIZE == calccodsize(c)); #endif return c; }
code *nteh_gensindex(int sindex) { if (config.exe != EX_WIN32) return NULL; // Generate: // MOV -4[EBP],sindex CodeBuilder cdb; cdb.genc(0xC7,modregrm(1,0,BP),FLconst,(targ_uns)nteh_EBPoffset_sindex(),FLconst,sindex); // 7 bytes long code *c = cdb.finish(); c->Iflags |= CFvolatile; #ifdef DEBUG //assert(GENSINDEXSIZE == calccodsize(c)); #endif return c; }