Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.forth > #51629

Re: Stack Sizes

From Cecil Bayona <cbayona@cbayona.com>
Newsgroups comp.lang.forth
Subject Re: Stack Sizes
Date 2016-10-05 15:44 -0500
Organization A noiseless patient Spider
Message-ID <nt3om1$8rj$1@dont-email.me> (permalink)
References <nstii2$8pl$1@gioia.aioe.org> <nstphb$hbj$2@dont-email.me> <57f3f915$0$875$e4fe514c@news.xs4all.nl> <nt10k9$61u$1@gioia.aioe.org> <b21bd81e-a189-4abd-a931-197e3653caa7@googlegroups.com>

Show all headers | View raw



On 10/5/2016 2:26 PM, hughaguilar96@gmail.com wrote:

> I've pretty much moved on from the Stundurd idea. My new idea is the "hugh-niversal assembler." This is an assembly-language for a hypothetical Forth-centric processor. Different versions of the assembler will generate machine-code for different target processors. The Forth compiler will be a traditional STC Forth that uses a built-in Forth assembler to generate the code. By switching out the assembler however, the same compiler can be retargeted to different targets without needing to be rewritten.
>
> In some cases, the hypothetical processor will be less powerful than the actual processor, in which case the actual processor will not be used to its full potential. For example, the actual processor may have more registers than the hypothetical processor, in which case these extra registers won't get used (an example would be the PIC24 with 20 registers).
>
> In some cases, the hypothetical processor will be more powerful than the actual processor, in which case some instructions will assemble into multiple machine-code instructions, or possibly into a subroutine call. For example, the actual processor may have fewer registers than the hypothetical processor, in which case some registers will have to be memory variables (an example would be the MC6812 with 4 registers).
>
> The hypothetical processor is a pretty close match to the 16-bit x86, so anybody who has written an MS-DOS Forth compiler using an 8086 Forth assembler should be able to easily port it over to use the hugh-niversal Forth assembler. The 80186 was a terrible micro-controller 25 years ago, and it is totally obsolete now --- that was because it had too much interrupt latency, and it was slow as molasses --- these problems aren't inherent in the design however; the hugh-niversal assembler should generate code for the PIC24 that is almost as fast as code written in PIC24 assembly-language.
>
> Here is an excerpt from my document:

> The idea for HUGHasm came from PAF, but HUGHasm is different in every way --- HUGHasm is a design that makes sense in the real-world of commercial micro-controllers; it is not an academic exercise like PAF.
> ----------------------------------------------------------------------------

Interesting, on and off I have worked on a project using a funky virtual 
machine but somewhat different from your idea.

The Forth compiler generates an internal form, basically 
micro-primitives, it takes several micro-primitives do do simple 
operations such a DUP, SWAP, + etc. many of those micro-primitives 
translate to a single instruction on a decent CPU.

  Here is where I take a turn in a different direction, before the 
assembler generates the code for the CPU an optimizer steps in and looks 
for patterns of micro-primitives, if a match is found then a simpler 
pattern replaces the old pattern, these substitutions are directed by a 
template file that specifies how to optimize the code. After the 
optimizer is finished the code is handed over to the assembler that 
generates actual machine code for a specific CPU.

I have experimented with limited versions and it works quite well, the 
assembler which translates the optimized micro-primitives has intimate 
knowledge of the CPU and generates quite good code, the optimizer has 
improved the micro primitives and simplified complex operations. When 
changing to a new CPU one changes the assembler, and may optionally 
change some of the templates to take special advantage of the target CPU 
but overall little changes take place.

It seems complicated, the optimizer is the bear in this setup but it can 
be quite fast and once done it set, the payoff is the generated code 
which tends to be quite good, so running efficiency is the target of the 
scheme.

Over the years I have had computers come and go so some of my test code 
was lost but I want to resurrect it again, I have not forgotten the 
basics on what was done, and now I'm getting close to settling down on 
my Forth software setup so it will soon time to give it a go again.

The main thrust is for use with embedded CPUs, the non-ARM variety for 
that I leave it to MPE. Lately I have developed a resurgent interest in 
old CPUs CDP1802, 6502, 6809, Z80, and new FPGA ones, right now it's 
CDP1802 time. I'm not a fan of Intel 386 assembler so for PC's I'll 
stick to my MPE VFX 7 Pro. compiler.

-- 
Cecil - k5nwa

Back to comp.lang.forth | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-03 08:22 -0400
  Re: Stack Sizes foxaudioresearch@gmail.com - 2016-10-03 07:00 -0700
    Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-03 11:14 -0400
      Re: Stack Sizes Bernd Linsel <bl1@gmx.com> - 2016-10-03 18:20 +0200
        Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-03 11:30 -0500
          Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-03 15:27 -0400
          Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-03 18:12 -0400
            Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-03 17:52 -0500
            Re: Stack Sizes Paul Rubin <no.email@nospam.invalid> - 2016-10-03 16:06 -0700
        Re: Stack Sizes Jan Coombs <jenfhaomndgfwutc@murmic.plus.com> - 2016-10-04 08:31 +0100
          Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-04 08:46 +0000
            Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-04 10:38 -0400
            Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-04 11:59 -0700
              Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-05 09:59 +0000
                Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-05 10:16 -0400
                Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-06 08:21 +0000
          Re: Stack Sizes minforth@arcor.de - 2016-10-04 05:00 -0700
          Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-04 08:49 -0400
      Re: Stack Sizes Paul Rubin <no.email@nospam.invalid> - 2016-10-03 16:28 -0700
        Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-04 10:36 -0400
          Re: Stack Sizes Rod Pemberton <NoHaveNotOne@zxdehrnyya.cam> - 2016-10-04 16:15 -0400
          Re: Stack Sizes Brad Eckert <hwfwguy@gmail.com> - 2016-11-09 09:56 -0800
            Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-11-12 09:15 -0500
    Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-03 10:35 -0500
    Re: Stack Sizes Bernd Paysan <bernd@net2o.de> - 2016-10-11 01:01 +0000
  Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-03 10:21 -0400
    Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-03 11:06 -0400
      Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-03 15:22 -0400
        Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-03 18:04 -0400
    Re: Stack Sizes Hans Bezemer <the.beez.speaks@gmail.com> - 2016-10-04 20:46 +0200
      Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-04 15:40 -0400
        Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-05 12:26 -0700
          Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-05 15:44 -0500
            Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-05 16:32 -0700
              Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-05 20:01 -0400
                Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-07 07:39 +0000
              Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-05 20:36 -0500
                Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-05 21:28 -0700
          Re: Stack Sizes alex <alex@rivadpm.com> - 2016-10-05 22:07 +0100
            Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-06 00:05 -0700
            Re: Stack Sizes Andrew Haley <andrew29@littlepinkcloud.invalid> - 2016-10-06 02:17 -0500
      Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-04 19:27 -0400
        Re: Stack Sizes Hans Bezemer <the.beez.speaks@gmail.com> - 2016-10-05 18:58 +0200
          Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-05 13:17 -0400
            Re: Stack Sizes Hans Bezemer <the.beez.speaks@gmail.com> - 2016-10-22 12:35 +0200
          Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-05 12:18 -0500
            Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-05 16:07 -0400
              Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-05 15:50 -0500
                Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-05 17:36 -0400
                Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-05 17:14 -0500
                Re: Stack Sizes "Elizabeth D. Rather" <erather@forth.com> - 2016-10-05 14:48 -1000
                Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-05 20:49 -0500
  Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-03 16:32 +0000
  Re: Stack Sizes Chris Curl <ccurl609@gmail.com> - 2016-10-03 13:53 -0700
    Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-03 17:54 -0400
  Re: Stack Sizes Rod Pemberton <NoHaveNotOne@zxdehrnyya.cam> - 2016-10-03 23:40 -0400
    Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-04 11:30 -0400
  Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-03 21:47 -0700
    Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-04 11:22 -0400
      Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-04 11:44 -0700
        Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-04 15:53 -0400
          Re: Stack Sizes Rod Pemberton <NoHaveNotOne@zxdehrnyya.cam> - 2016-10-04 16:15 -0400
      Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-05 14:31 -0700
        Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-06 08:48 -0400
          Re: Stack Sizes Paul Rubin <no.email@nospam.invalid> - 2016-10-06 13:08 -0700
            Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-06 19:11 -0400
  Re: Stack Sizes jim.brakefield@ieee.org - 2016-10-06 12:08 -0700
    Re: Stack Sizes alex <alex@rivadpm.com> - 2016-10-06 21:47 +0100
    Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-06 19:05 -0400
    Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-06 21:57 -0400
      Re: Stack Sizes jim.brakefield@ieee.org - 2016-10-06 19:21 -0700
        Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-07 00:10 -0400
          Re: Stack Sizes Paul Rubin <no.email@nospam.invalid> - 2016-10-06 23:14 -0700
            Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-07 02:26 -0400
              Re: Stack Sizes Paul Rubin <no.email@nospam.invalid> - 2016-10-06 23:57 -0700
                Re: Stack Sizes Andrew Haley <andrew29@littlepinkcloud.invalid> - 2016-10-07 08:18 -0500
                Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-07 10:52 -0400
                Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-09 16:22 -0700
                Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-10 01:49 -0400
                Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-10 10:21 -0500
                Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-10 22:39 -0400
                Straight Forth Re: Stack Sizes albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2016-10-10 12:36 +0200
                Re: Straight Forth Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-13 13:45 -0700
                Re: Straight Forth Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-14 01:16 -0700
                Re: Straight Forth Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-15 20:38 -0700
                Re: Straight Forth Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-16 02:00 -0400
                Re: Straight Forth Re: Stack Sizes lawrencedo99@gmail.com - 2016-10-16 18:38 -0700
                Re: Straight Forth Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-16 22:27 -0400
                Re: Straight Forth Re: Stack Sizes Raimond Dragomir <raimond.dragomir@gmail.com> - 2016-10-16 21:14 -0700
                Re: Straight Forth Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-17 00:35 -0400
                Re: Straight Forth Re: Stack Sizes Raimond Dragomir <raimond.dragomir@gmail.com> - 2016-10-16 23:31 -0700
                Re: Straight Forth Re: Stack Sizes "Elizabeth D. Rather" <erather@forth.com> - 2016-10-16 20:36 -1000
                Re: Straight Forth Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-17 13:11 -0700
                Re: Straight Forth Re: Stack Sizes Rod Pemberton <NeedNotReplyHere@xrsevnneqk.cem> - 2016-10-17 19:14 -0400
                Re: Straight Forth Re: Stack Sizes Bernd Paysan <bernd@net2o.de> - 2016-10-17 21:53 +0000
                Re: Straight Forth Re: Stack Sizes lawrencedo99@gmail.com - 2016-10-17 16:54 -0700
                Re: Straight Forth Re: Stack Sizes Bernd Paysan <bernd@net2o.de> - 2016-10-21 22:13 +0000
                Re: Straight Forth Re: Stack Sizes lawrencedo99@gmail.com - 2016-10-21 17:46 -0700
                Re: Straight Forth Re: Stack Sizes Bernd Paysan <bernd@net2o.de> - 2016-10-23 22:26 +0000
                Re: Straight Forth Re: Stack Sizes JUERGEN <epldfpga@aol.com> - 2016-10-24 09:13 -0700
                Re: Straight Forth Re: Stack Sizes lawrencedo99@gmail.com - 2016-10-24 16:28 -0700
                Re: Straight Forth Re: Stack Sizes Paul Rubin <no.email@nospam.invalid> - 2016-10-24 17:20 -0700
                Re: Straight Forth Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-24 22:23 -0400
                Re: Straight Forth Re: Stack Sizes Bernd Paysan <bernd@net2o.de> - 2016-11-04 20:39 +0000
                Re: Straight Forth Re: Stack Sizes lawrencedo99@gmail.com - 2016-10-16 22:42 -0700
                Re: Straight Forth Re: Stack Sizes albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2016-10-17 11:12 +0200
                Re: Straight Forth Re: Stack Sizes Paul Rubin <no.email@nospam.invalid> - 2016-10-17 09:20 -0700
                Re: Straight Forth Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-17 19:11 -0400
                Re: Straight Forth Re: Stack Sizes Paul Rubin <no.email@nospam.invalid> - 2016-10-17 16:40 -0700
                Re: Straight Forth Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-17 20:19 -0400
                Re: Straight Forth Re: Stack Sizes Paul Rubin <no.email@nospam.invalid> - 2016-10-17 17:25 -0700
                Re: Straight Forth Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-17 20:50 -0400
                Re: Straight Forth Re: Stack Sizes albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2016-10-18 02:04 +0200
                Re: Straight Forth Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-18 06:13 +0000
                Re: Straight Forth Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-16 15:21 -0700
                Re: Straight Forth Re: Stack Sizes Doug Hoffman <glidedog@gmail.com> - 2016-10-17 04:09 -0400
                Re: Straight Forth Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-17 13:48 -0700
                Re: Straight Forth Re: Stack Sizes albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2016-10-18 02:12 +0200
                Re: Straight Forth Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-18 00:35 -0700
                Re: Straight Forth Re: Stack Sizes albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2016-10-18 12:53 +0200
                Re: Straight Forth Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-18 12:12 -0700
                Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-07 16:53 +0000
                Re: Stack Sizes Andrew Haley <andrew29@littlepinkcloud.invalid> - 2016-10-09 08:34 -0500
                Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-09 16:03 +0000
                Re: Stack Sizes Andrew Haley <andrew29@littlepinkcloud.invalid> - 2016-10-10 03:25 -0500
                Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-10 10:29 -0500
                Re: Stack Sizes Andrew Haley <andrew29@littlepinkcloud.invalid> - 2016-10-11 05:19 -0500
                Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-10 14:41 +0000
                Re: Stack Sizes Lars Brinkhoff <lars.spam@nocrew.org> - 2016-10-10 20:23 +0200
                Re: Stack Sizes Andrew Haley <andrew29@littlepinkcloud.invalid> - 2016-10-11 05:16 -0500
                Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-12 12:54 +0000
                Re: Stack Sizes albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2016-10-12 18:27 +0200
                Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-12 17:06 +0000
                Re: Stack Sizes Andrew Haley <andrew29@littlepinkcloud.invalid> - 2016-10-12 13:01 -0500
                Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-12 17:07 -0400
                Re: Stack Sizes albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2016-10-13 03:18 +0200
                Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-14 14:26 -0400
                Re: Stack Sizes lawrencedo99@gmail.com - 2016-10-12 20:30 -0700
                Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-13 15:52 +0000
                Re: Stack Sizes lawrencedo99@gmail.com - 2016-10-13 15:05 -0700
                Re: Stack Sizes Andrew Haley <andrew29@littlepinkcloud.invalid> - 2016-10-14 03:08 -0500
                Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-14 14:41 -0400
                Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-07 12:33 -0500
                Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-08 01:12 -0400
              Re: Stack Sizes Rod Pemberton <NeedNotReplyHere@xrsevnneqk.cem> - 2016-10-07 23:05 -0400
                Re: Stack Sizes jim.brakefield@ieee.org - 2016-10-07 21:56 -0700
                Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-08 07:23 -0400
                Re: Stack Sizes lawrencedo99@gmail.com - 2016-10-11 22:39 -0700
            Re: Stack Sizes Lars Brinkhoff <lars.spam@nocrew.org> - 2016-10-07 08:21 +0200
            Re: Stack Sizes albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2016-10-07 09:22 +0200
              Re: Stack Sizes Lars Brinkhoff <lars.spam@nocrew.org> - 2016-10-07 09:35 +0200
                Re: Stack Sizes jim.brakefield@ieee.org - 2016-10-07 10:51 -0700
                Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-07 13:21 -0500
                Re: Stack Sizes Lars Brinkhoff <lars.spam@nocrew.org> - 2016-10-07 20:40 +0200
                Re: Stack Sizes albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2016-10-07 20:53 +0200
            Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-07 07:35 +0000
              Re: Stack Sizes Paul Rubin <no.email@nospam.invalid> - 2016-10-07 01:09 -0700
                Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-07 15:59 +0000
                Re: Stack Sizes Bernd Paysan <bernd@net2o.de> - 2016-10-17 22:05 +0000

csiph-web