]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - create_jit_stubs
JavaScriptCore-7600.1.4.9.tar.gz
[apple/javascriptcore.git] / create_jit_stubs
index d90fa8eb42cd34a5b869ba382cd4a40d73103595..404fa3698074f812189944512202f4999e6cea86 100644 (file)
@@ -22,23 +22,25 @@ use strict;
 use File::Basename;
 use Getopt::Long;
 
-my $usage = basename($0) . " --prefix prefix file";
+my $usage = basename($0) . " --prefix prefix --header header file";
 
 my $rtype_template = quotemeta("#rtype#");
 my $op_template = quotemeta("#op#");
 
 my $prefix;
+my $header;
 my $enable_dfg = 0;
 my $file;
 
 my $getOptionsResult = GetOptions(
     'prefix=s' => \$prefix,
+    'header=s' => \$header,
     'dfg!' => \$enable_dfg
 );
 
 $file = $ARGV[0];
 
-die "$usage\n" unless ($prefix and $file);
+die "$usage\n" unless ($header and $prefix and $file);
 
 my $stub_template = "";
 my $output_end = "";
@@ -50,6 +52,22 @@ my $if_counter = 0;
 my $dfg_begin = 0;
 
 print STDERR "Creating JIT stubs for $file \n";
+open(IN, $header) or die "No such file $header";
+
+while ( $_ = <IN> ) {
+    if ( /^$prefix\_BEGIN\((.*)\)/ ) {
+        $stub = $1;
+        print $stub . "\n";
+    }
+    if ( /^$prefix\((.*)\)/ ) {
+        $stub_template .= $1 . "\n";
+    }
+    if ( /^$prefix\_END\((.*)\)/ ) {
+        $output_end .= $1 . "\n";
+    }
+}
+
+close(IN);
 open(IN, $file) or die "No such file $file";
 
 while ( $_ = <IN> ) {
@@ -65,16 +83,6 @@ while ( $_ = <IN> ) {
         }
         $if_counter--;
     }
-    if ( /^$prefix\_BEGIN\((.*)\)/ ) {
-        $stub = $1;
-        print $stub . "\n";
-    }
-    if ( /^$prefix\((.*)\)/ ) {
-        $stub_template .= $1 . "\n";
-    }
-    if ( /^$prefix\_END\((.*)\)/ ) {
-        $output_end .= $1 . "\n";
-    }
     if ( /^DEFINE_STUB_FUNCTION\((.*), (.*)\)/ ) {
         $stub = $stub_template;
         $rtype = quotemeta($1);