[svn:parrot] r44738 - in branches/ops_pct/compilers/opsc/src/Ops: . Trans
bacek at svn.parrot.org
bacek at svn.parrot.org
Sun Mar 7 12:55:56 UTC 2010
Author: bacek
Date: Sun Mar 7 12:55:55 2010
New Revision: 44738
URL: https://trac.parrot.org/parrot/changeset/44738
Log:
Merge Trans.source_preamble with Trans.defines
Modified:
branches/ops_pct/compilers/opsc/src/Ops/Emitter.pm
branches/ops_pct/compilers/opsc/src/Ops/Trans.pm
branches/ops_pct/compilers/opsc/src/Ops/Trans/C.pm
Modified: branches/ops_pct/compilers/opsc/src/Ops/Emitter.pm
==============================================================================
--- branches/ops_pct/compilers/opsc/src/Ops/Emitter.pm Sun Mar 7 12:55:29 2010 (r44737)
+++ branches/ops_pct/compilers/opsc/src/Ops/Emitter.pm Sun Mar 7 12:55:55 2010 (r44738)
@@ -110,19 +110,10 @@
#include "pmc/pmc_parrotlibrary.h"
#include "pmc/pmc_callcontext.h"
-{self.trans.defines}
+{self.trans.defines(self)}
|);
-# if ( $self->{suffix} eq '' && !$self->{flag}->{dynamic} ) {
-# print $fh <<END_C_2;
-#static int get_op(PARROT_INTERP, const char * name, int full);
-#
-#END_C_2
-# }
-
- $fh.print(self.trans.source_preamble);
-
$fh.print(self.ops_file.preamble);
}
Modified: branches/ops_pct/compilers/opsc/src/Ops/Trans.pm
==============================================================================
--- branches/ops_pct/compilers/opsc/src/Ops/Trans.pm Sun Mar 7 12:55:29 2010 (r44737)
+++ branches/ops_pct/compilers/opsc/src/Ops/Trans.pm Sun Mar 7 12:55:55 2010 (r44738)
@@ -24,9 +24,7 @@
# Called from Ops::Op.
method body_prelude() { '' }
-method defines() { die('...') }
-
-method source_preamble() { '' }
+method defines($emitter) { die('...') }
method emit_source_part($emitter, $fh) { die('...') }
Modified: branches/ops_pct/compilers/opsc/src/Ops/Trans/C.pm
==============================================================================
--- branches/ops_pct/compilers/opsc/src/Ops/Trans/C.pm Sun Mar 7 12:55:29 2010 (r44737)
+++ branches/ops_pct/compilers/opsc/src/Ops/Trans/C.pm Sun Mar 7 12:55:55 2010 (r44738)
@@ -106,7 +106,7 @@
=end
-method defines() {
+method defines($emitter) {
return qq|
#include "pmc/pmc_callcontext.h"
@@ -119,14 +119,12 @@
#define PREG(i) (CUR_CTX->bp_ps.regs_p[-1L - cur_opcode[i]])
#define SREG(i) (CUR_CTX->bp_ps.regs_s[cur_opcode[i]])
#define CONST(i) Parrot_pcc_get_constants(interp, interp->ctx)[cur_opcode[i]]
-|;
-}
-method source_preamble() {
-q/
+static op_info_t {self.op_info($emitter)}[{self<num_entries>}];
+static op_func{self.suffix}_t {self.op_func($emitter)}[{self<num_entries>}];
static int get_op(PARROT_INTERP, const char * name, int full);
-/
+|;
}
method op_info($emitter) { $emitter.bs ~ 'op_info_table' }
More information about the parrot-commits
mailing list