From: Mike Frysinger <vapier@gentoo.org>
To: Stafford Horne <shorne@gmail.com>
Cc: gdb-patches@sourceware.org, openrisc@lists.librecores.org
Subject: Re: [PATCH v2 4/6] sim: or1k: add or1k target to sim
Date: Tue, 14 Feb 2017 18:52:00 -0000 [thread overview]
Message-ID: <20170214185208.GJ28432@vapier> (raw)
In-Reply-To: <92c04bd768b66a48e03850af185e975d01605435.1484967575.git.shorne@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 3808 bytes --]
On 21 Jan 2017 12:03, Stafford Horne wrote:
> --- /dev/null
> +++ b/sim/or1k/Makefile.in
>
> +# Extra headers included by sim-main.h.
you shouldn't need to do any manual dep management. i'd suggest
deleting all this logic and seeing if things still work.
> --- /dev/null
> +++ b/sim/or1k/configure.ac
> @@ -0,0 +1,41 @@
> +dnl Process this file with autoconf to produce a configure script.
> +AC_PREREQ(2.64)dnl
> +AC_INIT(Makefile.in)
> +sinclude(../common/acinclude.m4)
> +
> + case "${target_alias}" in
drop the indentation
> + or1k-linux*|or1knd-linux*)
> + traps_obj=traps32-linux.o
> + ;;
> + or1k-*|or1knd-*)
> + traps_obj=traps32.o
> + ;;
> + esac
we really don't like to see this kind of logic. can't you do a single
build and then select the right details at runtime ?
--- /dev/null
> +++ b/sim/or1k/or1k.h
> @@ -0,0 +1,38 @@
> +#ifndef OR1K_H
> +#define OR1K_H
all files should have a header with copyright & license info
also, please use namespaced defines like SIM_OR1K_H
> --- /dev/null
> +++ b/sim/or1k/sim-if.c
> @@ -0,0 +1,318 @@
> +/* Main simulator entry points specific to the OR1K.
> + Copyright (C) 1996-1999, 2003, 2007-2012 Free Software Foundation,
> + Inc.
> + Contributed by Cygnus Support.
looks like you need to double check where you copied & pasted things from.
cygnus isn't doing this port ;).
> +SIM_DESC
> +sim_open (kind, callback, abfd, argv)
> + SIM_OPEN_KIND kind;
> + host_callback *callback;
> + struct bfd *abfd;
> + char * const *argv;
you need to update all your prototypes. we don't do old style ones like
this anymore.
> +#ifdef HAVE_DV_SOCKSER /* FIXME: was done differently before */
> + if (dv_sockser_install (sd) != SIM_RC_OK)
> + {
> + free_state (sd);
> + return 0;
> + }
> +#endif
delete this. common code handles it for you now.
> + /* Allocate core managed memory if none specified by user.
> + Use address 4 here in case the user wanted address 0 unmapped. */
> + if (sim_core_read_buffer (sd, NULL, read_map, &c, 4, 1) == 0) {
> + sim_do_commandf (sd, "memory region 0,0x%x", OR1K_DEFAULT_MEM_SIZE);
> + }
this isn't using GNU style for the braces/if body. this comes up
multiple times in this patch, so please fix them all.
> + /* check for/establish the reference program image */
this comment isn't using GNU style. this comes up
multiple times in this patch, so please fix them all.
> +
> + for (c = 0; c < MAX_NR_PROCESSORS; ++c)
> + {
> + SIM_CPU *cpu = STATE_CPU (sd, i);
> + /* Only needed for profiling, but the structure member is small. */
> + memset (CPU_OR1K_MISC_PROFILE (cpu), 0,
> + sizeof (* CPU_OR1K_MISC_PROFILE (cpu)));
> +
> +#ifdef WANT_CPU_OR1K32BF
> + or1k32bf_h_spr_set_raw(cpu, SPR_ADDR(SYS,VR), or1k_vr);
> + or1k32bf_h_spr_set_raw(cpu, SPR_ADDR(SYS,UPR), or1k_upr);
> + or1k32bf_h_spr_set_raw(cpu, SPR_ADDR(SYS,CPUCFGR), or1k_cpucfgr);
> +
> + or1k32bf_cpu_init (sd, cpu);
> +#endif
> + }
this loop has to call these funcs:
CPU_REG_FETCH
CPU_REG_STORE
CPU_PC_FETCH
CPU_PC_STORE
> + /* Store in a global so things like sparc32_dump_regs can be invoked
> + from the gdb command line. */
> + current_state = sd;
you must kill current_state. we do not allow global state anymore.
> --- /dev/null
> +++ b/sim/or1k/sim-main.h
>
> +typedef IAI sim_cia;
> +#define CIA_GET(cpu) CPU_PC_GET (cpu)
> +#define CIA_SET(cpu,val) CPU_PC_SET ((cpu),(val))
these defines are dead -> delete
> +typedef struct _sim_cpu SIM_CPU;
delete this
> +#ifdef OR1K_LINUX
nothing defines this -> delete
> +#if (WITH_SMP)
> +#define STATE_CPU(sd, n) ((sd)->cpu[n])
> +#else
> +#define STATE_CPU(sd, n) ((sd)->cpu[0])
> +#endif
delete these -- common code does it for you now
-mike
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2017-02-14 18:52 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-21 3:04 [PATCH v2 0/6] sim: Port for OpenRISC Stafford Horne
2017-01-21 3:04 ` [PATCH v2 3/6] sim: cgen: allow suffix on generated arch.[ch] and cpuall.h Stafford Horne
2017-01-21 3:04 ` [PATCH v2 1/6] sim: cgen: add rem (remainder) function (needed for OR1K lf.rem.[sd]) Stafford Horne
2017-01-21 3:04 ` [PATCH v2 4/6] sim: or1k: add or1k target to sim Stafford Horne
2017-02-14 18:52 ` Mike Frysinger [this message]
2017-02-15 13:25 ` Stafford Horne
2017-02-15 15:42 ` Mike Frysinger
2017-02-28 11:39 ` Stafford Horne
2017-01-21 3:04 ` [PATCH v2 2/6] sim: cgen: add mul-o1flag, mul-o2flag RTL functions to CGEN Stafford Horne
2017-01-21 3:05 ` [PATCH v2 6/6] sim: testsuite: add testsuite for or1k sim Stafford Horne
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170214185208.GJ28432@vapier \
--to=vapier@gentoo.org \
--cc=gdb-patches@sourceware.org \
--cc=openrisc@lists.librecores.org \
--cc=shorne@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox