mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-08 16:36:14 +00:00
Add input/output file command line arguments.
This commit is contained in:
parent
2d298742bf
commit
5fbc399062
@ -28,6 +28,8 @@
|
|||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <getopt.h>
|
||||||
|
|
||||||
#include "gen4asm.h"
|
#include "gen4asm.h"
|
||||||
|
|
||||||
@ -35,17 +37,59 @@ extern FILE *yyin;
|
|||||||
|
|
||||||
struct brw_program compiled_program;
|
struct brw_program compiled_program;
|
||||||
|
|
||||||
|
static const struct option longopts[] = {
|
||||||
|
{ NULL, 0, NULL, 0 }
|
||||||
|
};
|
||||||
|
|
||||||
|
void usage(void)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "usage: gen4asm [-o outputfile] inputfile\n");
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
int err;
|
FILE *output = stdout;
|
||||||
struct brw_program_instruction *entry;
|
struct brw_program_instruction *entry;
|
||||||
|
int err;
|
||||||
|
char o;
|
||||||
|
|
||||||
|
while ((o = getopt_long(argc, argv, "o:", longopts, NULL)) != -1) {
|
||||||
|
switch (o) {
|
||||||
|
case 'o':
|
||||||
|
if (strcmp(optarg, "-") != 0) {
|
||||||
|
output = fopen(optarg, "w");
|
||||||
|
if (output == NULL) {
|
||||||
|
perror("Couldn't open output file");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
usage();
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
argc -= optind;
|
||||||
|
argv += optind;
|
||||||
|
if (argc != 1) {
|
||||||
|
usage();
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strcmp(argv[0], "-") != 0) {
|
||||||
|
yyin = fopen(argv[0], "r");
|
||||||
|
if (yyin == NULL) {
|
||||||
|
perror("Couldn't open input file");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
err = yyparse();
|
err = yyparse();
|
||||||
|
|
||||||
for (entry = compiled_program.first;
|
for (entry = compiled_program.first;
|
||||||
entry != NULL;
|
entry != NULL;
|
||||||
entry = entry->next) {
|
entry = entry->next) {
|
||||||
printf(" { 0x%08x, 0x%08x, 0x%08x, 0x%08x },\n",
|
fprintf(output, " { 0x%08x, 0x%08x, 0x%08x, 0x%08x },\n",
|
||||||
((int *)(&entry->instruction))[0],
|
((int *)(&entry->instruction))[0],
|
||||||
((int *)(&entry->instruction))[1],
|
((int *)(&entry->instruction))[1],
|
||||||
((int *)(&entry->instruction))[2],
|
((int *)(&entry->instruction))[2],
|
||||||
|
Loading…
x
Reference in New Issue
Block a user