This is the mail archive of the
cgen@sourceware.org
mailing list for the CGEN project.
sim-model.scm @cpu@ vs @prefix@ confusion
- From: Dave Korn <dave dot korn dot cygwin at googlemail dot com>
- To: cgen at sourceware dot org
- Date: Tue, 25 Aug 2009 01:52:18 +0100
- Subject: sim-model.scm @cpu@ vs @prefix@ confusion
Hi CGEN,
It looks to me like there are a couple of spots in -gen-mach-defns where the
prefix should be used instead of the cpu, specifically when referencing
*_INSN__MAX and in the names of the *_engine_run_* functions. Certainly
that's how genmloop.sh and friends expect them to look. I had to apply the
attached patch otherwise I get undefined references in the generated mloop.c,
so here it is.
cgen/ChangeLog:
* sim-model.scm (-gen-mach-defns): Replace @cpu@ and @CPU@ by @prefix@
and @PREFIX@ when setting CPU_MAX_INSNS and the CPU_*_ENGINE_FNs.
I'm not sure about the relation between cpu and prefix yet, but in my
generated files the prefix appears to be a concatenation of isa and cpu.
Maybe in other ports the prefix ends up just being equal to the cpu and that's
why this hasn't caused any problems in /src? I didn't investigate yet.
cheers,
DaveK
Index: sim-model.scm
===================================================================
--- sim-model.scm (revision 141)
+++ sim-model.scm (working copy)
@@ -333,13 +333,13 @@ static void\n"
CPU_PC_FETCH (cpu) = " (gen-sym (mach-cpu mach)) "_h_pc_get;
CPU_PC_STORE (cpu) = " (gen-sym (mach-cpu mach)) "_h_pc_set;
CPU_GET_IDATA (cpu) = @cpu@_get_idata;
- CPU_MAX_INSNS (cpu) = @CPU@_INSN__MAX;
+ CPU_MAX_INSNS (cpu) = @PREFIX@_INSN__MAX;
CPU_INSN_NAME (cpu) = cgen_insn_name;
- CPU_FULL_ENGINE_FN (cpu) = @cpu@_engine_run_full;
+ CPU_FULL_ENGINE_FN (cpu) = @prefix@_engine_run_full;
#if WITH_FAST
- CPU_FAST_ENGINE_FN (cpu) = @cpu@_engine_run_fast;
+ CPU_FAST_ENGINE_FN (cpu) = @prefix@_engine_run_fast;
#else
- CPU_FAST_ENGINE_FN (cpu) = @cpu@_engine_run_full;
+ CPU_FAST_ENGINE_FN (cpu) = @prefix@_engine_run_full;
#endif
}