* Usage. */
| 231 | * Usage. |
| 232 | */ |
| 233 | static void usage(FILE *stream, const char *progname) |
| 234 | { |
| 235 | fprintf(stream, "usage: %s [OPTIONS]\n\n" |
| 236 | "OPTIONS:\n" |
| 237 | "\n" |
| 238 | "\t-Ocall[=false]\n" |
| 239 | "\t\tRelocate any call instruction \"as is\" (do not correct the\n" |
| 240 | "\t\treturn address). May break transparency for some binaries.\n" |
| 241 | "\t\tDefault: false (disabled)\n" |
| 242 | "\n" |
| 243 | "\t-OCFR[=false]\n" |
| 244 | "\t\tEnables [disables] heuristic-based \"Control-Flow Recovery\"\n" |
| 245 | "\t\t(CRF) analysis and related optimizations. This usually makes\n" |
| 246 | "\t\tthe rewritten binary much faster, but may introduce rewriting\n" |
| 247 | "\t\tbugs if the built-in CRF analysis is inaccurate.\n" |
| 248 | "\t\tDefault: false (disabled)\n" |
| 249 | "\n" |
| 250 | "\t-OCFR-hacks[=false]\n" |
| 251 | "\t\tMakes -OCFR even more conservative. This may help some\n" |
| 252 | "\t\tbinaries that use non-standard relocations.\n" |
| 253 | "\t\tDefault: false (disabled)\n" |
| 254 | "\n" |
| 255 | "\t-Oepilogue=N\n" |
| 256 | "\t\tAppend a epilogue of up to N instructions to the end of each\n" |
| 257 | "\t\ttrampoline. This may enhance -Opeephole.\n" |
| 258 | "\t\tDefault: 0 (disabled)\n" |
| 259 | "\n" |
| 260 | "\t-Oepilogue-size=N\n" |
| 261 | "\t\tAdditionally limits -Oepilogue to N instruction bytes.\n" |
| 262 | "\t\tDefault: 64\n" |
| 263 | "\n" |
| 264 | "\t-Oorder[=false]\n" |
| 265 | "\t\tEnables [disables] the ordering of trampolines with respect\n" |
| 266 | "\t\tto the original instruction ordering (as much as is possible).\n" |
| 267 | "\t\tThis may enhance -Opeephole.\n" |
| 268 | "\t\tDefault: false (disabled)\n" |
| 269 | "\n" |
| 270 | "\t-Opeephole[=false]\n" |
| 271 | "\t\tEnables [disables] jump peephole optimization.\n" |
| 272 | "\t\tDefault: true (enabled)\n" |
| 273 | "\n" |
| 274 | "\t-Oprologue=N\n" |
| 275 | "\t\tPrepend a prologue of up to N instructions to the start of each\n" |
| 276 | "\t\ttrampoline. This may enhance -Opeephole. Requires --batch.\n" |
| 277 | "\t\tDefault: 0 (disabled)\n" |
| 278 | "\n" |
| 279 | "\t-Oprologue-size=N\n" |
| 280 | "\t\tAdditionally limits -Oprologue to N instruction bytes.\n" |
| 281 | "\t\tDefault: 64\n" |
| 282 | "\n" |
| 283 | "\t-Oscratch-stack[=false]\n" |
| 284 | "\t\tAllow the stack to be used as scratch space. This allows\n" |
| 285 | "\t\tfaster code to be emitted, but may break transparency.\n" |
| 286 | "\t\tDefault: false (disabled)\n" |
| 287 | "\n" |
| 288 | "\t--batch[=false]\n" |
| 289 | "\t\tRewrite the binary in one batch rather than incrementally.\n" |
| 290 | "\t\tDefault: false (disabled)\n" |
no test coverage detected