aboutsummaryrefslogtreecommitdiff
path: root/emulators
diff options
context:
space:
mode:
authorMark Peek <mp@FreeBSD.org>2003-11-21 01:29:18 +0000
committerMark Peek <mp@FreeBSD.org>2003-11-21 01:29:18 +0000
commitbed69ef0ec9e81ca9761172af46ba87f25c272a7 (patch)
treed55b4daad9b3e366bdec5c9aa1e38b761345aab1 /emulators
parentec0975dc4df403f14ed701b3983b412c442db028 (diff)
downloadports-bed69ef0ec9e81ca9761172af46ba87f25c272a7.tar.gz
ports-bed69ef0ec9e81ca9761172af46ba87f25c272a7.zip
Notes
Diffstat (limited to 'emulators')
-rw-r--r--emulators/psim-freebsd/Makefile8
-rw-r--r--emulators/psim-freebsd/files/patch-gen_idecode.c58
-rw-r--r--emulators/psim-freebsd/files/patch-gen_model.c11
-rw-r--r--emulators/psim-freebsd/files/patch-lf.c53
4 files changed, 123 insertions, 7 deletions
diff --git a/emulators/psim-freebsd/Makefile b/emulators/psim-freebsd/Makefile
index a6a5fee1823f..31817646187c 100644
--- a/emulators/psim-freebsd/Makefile
+++ b/emulators/psim-freebsd/Makefile
@@ -21,12 +21,6 @@ GNU_CONFIGURE= yes
CONFIGURE_ARGS= --enable-psim --target=powerpc-freebsd-elf \
--program-suffix=psim
-.include <bsd.port.pre.mk>
-
-.if ${OSVERSION} >= 501000
-BROKEN= "Does not compile"
-.endif
-
pre-configure:
@cd ${WRKSRC} ; ${RM} -rf dejagnu expect tcl texinfo
@@ -45,4 +39,4 @@ cklatest:
ftp://mirrors.rcn.net/mirrors/sources.redhat.com/${MASTER_SITE_SUBDIR}/ \
| ${GREP} gdb+dejagnu-
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff --git a/emulators/psim-freebsd/files/patch-gen_idecode.c b/emulators/psim-freebsd/files/patch-gen_idecode.c
new file mode 100644
index 000000000000..8aac77126e62
--- /dev/null
+++ b/emulators/psim-freebsd/files/patch-gen_idecode.c
@@ -0,0 +1,58 @@
+--- sim/ppc/gen-idecode.c 2003/10/20 23:10:45 1.1
++++ sim/ppc/gen-idecode.c 2003/10/20 23:16:21
+@@ -757,21 +757,21 @@
+
+ if (!generate_smp) {
+
+- lf_putstr(file, "
+-/* CASE 1: NO SMP (with or with out instruction cache).
+-
+- In this case, we can take advantage of the fact that the current
+- instruction address does not need to be returned to the cpu object
+- after every execution of an instruction. Instead it only needs to
+- be saved when either A. the main loop exits or B. A cpu-halt or
+- cpu-restart call forces the loop to be re-enered. The later
+- functions always save the current cpu instruction address.
+-
+- Two subcases also exist that with and that without an instruction
+- cache.
+-
+- An additional complexity is the need to ensure that a 1:1 ratio
+- is maintained between the execution of an instruction and the
++ lf_putstr(file, "\n\
++/* CASE 1: NO SMP (with or with out instruction cache).\n\
++\n\
++ In this case, we can take advantage of the fact that the current\n\
++ instruction address does not need to be returned to the cpu object\n\
++ after every execution of an instruction. Instead it only needs to\n\
++ be saved when either A. the main loop exits or B. A cpu-halt or\n\
++ cpu-restart call forces the loop to be re-enered. The later\n\
++ functions always save the current cpu instruction address.\n\
++\n\
++ Two subcases also exist that with and that without an instruction\n\
++ cache.\n\
++\n\
++ An additional complexity is the need to ensure that a 1:1 ratio\n\
++ is maintained between the execution of an instruction and the\n\
+ incrementing of the simulation clock */");
+
+ lf_putstr(file, "\n");
+@@ -867,12 +867,12 @@
+
+ if (generate_smp) {
+
+- lf_putstr(file, "
+-/* CASE 2: SMP (With or without ICACHE)
+-
+- The complexity here comes from needing to correctly restart the
+- system when it is aborted. In particular if cpu0 requests a
+- restart, the next cpu is still cpu1. Cpu0 being restarted after
++ lf_putstr(file, "\n\
++/* CASE 2: SMP (With or without ICACHE)\n\
++\n\
++ The complexity here comes from needing to correctly restart the\n\
++ system when it is aborted. In particular if cpu0 requests a\n\
++ restart, the next cpu is still cpu1. Cpu0 being restarted after\n\
+ all the other CPU's and the event queue have been processed */");
+
+ lf_putstr(file, "\n");
diff --git a/emulators/psim-freebsd/files/patch-gen_model.c b/emulators/psim-freebsd/files/patch-gen_model.c
new file mode 100644
index 000000000000..bbb13f1fdbb9
--- /dev/null
+++ b/emulators/psim-freebsd/files/patch-gen_model.c
@@ -0,0 +1,11 @@
+--- sim/ppc/gen-model.c 2003/10/20 23:38:14 1.1
++++ sim/ppc/gen-model.c 2003/10/20 23:38:53
+@@ -377,7 +377,7 @@
+ lf_printf(file, " }\n");
+ lf_printf(file, " }\n");
+ lf_printf(file, "\n");
+- lf_printf(file, " error(\"Unknown model '%%s', Models which are known are:%%s\n\",\n");
++ lf_printf(file, " error(\"Unknown model '%%s', Models which are known are:%%s\\n\",\n");
+ lf_printf(file, " name,\n");
+ lf_printf(file, " \"");
+ for(model_ptr = models; model_ptr; model_ptr = model_ptr->next) {
diff --git a/emulators/psim-freebsd/files/patch-lf.c b/emulators/psim-freebsd/files/patch-lf.c
new file mode 100644
index 000000000000..49fe575089df
--- /dev/null
+++ b/emulators/psim-freebsd/files/patch-lf.c
@@ -0,0 +1,53 @@
+--- sim/ppc/lf.c 2003/10/20 23:08:19 1.1
++++ sim/ppc/lf.c 2003/10/20 23:09:15
+@@ -273,28 +273,28 @@
+ switch (file->type) {
+ case lf_is_c:
+ case lf_is_h:
+- nr += lf_printf(file, "\
+-/* This file is part of the program psim.
+-
+- Copyright (C) 1994-1995, Andrew Cagney <cagney@highland.com.au>
+-
+- This program is free software; you can redistribute it and/or modify
+- it under the terms of the GNU General Public License as published by
+- the Free Software Foundation; either version 2 of the License, or
+- (at your option) any later version.
+-
+- This program is distributed in the hope that it will be useful,
+- but WITHOUT ANY WARRANTY; without even the implied warranty of
+- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+- GNU General Public License for more details.
+-
+- You should have received a copy of the GNU General Public License
+- along with this program; if not, write to the Free Software
+- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+-
+- --
+-
+- This file was generated by the program %s */
++ nr += lf_printf(file, "\n\
++/* This file is part of the program psim.\n\
++\n\
++ Copyright (C) 1994-1995, Andrew Cagney <cagney@highland.com.au>\n\
++\n\
++ This program is free software; you can redistribute it and/or modify\n\
++ it under the terms of the GNU General Public License as published by\n\
++ the Free Software Foundation; either version 2 of the License, or\n\
++ (at your option) any later version.\n\
++\n\
++ This program is distributed in the hope that it will be useful,\n\
++ but WITHOUT ANY WARRANTY; without even the implied warranty of\n\
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\
++ GNU General Public License for more details.\n\
++ \n\
++ You should have received a copy of the GNU General Public License\n\
++ along with this program; if not, write to the Free Software\n\
++ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n\
++ \n\
++ --\n\
++\n\
++ This file was generated by the program %s */\n\
+ ", filter_filename(file->program));
+ break;
+ default: