FPC for DOS / FreeDOS (DOSX)
> .h files interpretation are bound to all preprocessor symbols getting in.
> two #includes of the same header can have totally different preprocessor
> state (and thus preprocessed code) as result.
So it's impossible without breaking things? (I dunno, honestly.)
> > If people still used 486s or non-superscalar architectures (e.g. VIA
> ?),
> > they'd probably all be assembly programmers.
>
> I doubt that. It was already waning in 486 times.
Kinda silly to buy a 10 x faster computer and then slow it down 10 x by more useless abstraction. :-/
> Note that I turned away from assembler when I had a 486 DX2/80, except for
> really reusable routines. I turned away from that with my
From what I've (barely) learned recently: 486 was pipelined (vs. 386 partially pipelined) while Pentium was superscalar (two pipelines), and later models even moreso. The Pentium even had a pipelined FPU. And yet, there is plenty you can do to help a 486, 586, 686, etc. At least the Quake authors thought so (which used DJGPP for the compiler, BTW).
> > BTW, assembly doesn't usually get slower with newer processor upgrades.
>
> Yes it does. (based on a per cycle basis). E.g. pre pentium assembler
> doesn't take register stalls into account.
486s do indeed suffer from AGIs, just not as bad as Pentiums. And since acceptable 486 code will "by default" run much much faster (usually twice as fast or more), such penalties are easily offset. But yes, it's inherently hard to optimize, period! But it's still worthwhile, IMO.
> Not taking prefetch into
> account can hurt, similar with branch prediction (the branch taken is a
> simple heuristic, if your handcoded assembler does otherwise, it hurts).
>
> For an assembler programmer you don't seem to know much about this
> !?!?!?!
I don't understand it fully (who can?), it's very complex. Plus, it's hard to prove it easily, so I tend to still look for easy answers. I know this, for sure: 386, 486, 586, 686 all require different measures of optimization. You can somewhat optimize for all of them, though.
> > Sure, if you have infinite amounts of money and are willing to upgrade
> > your cpu. Most people don't do that, however.
>
> I hardly consider a CPU of Eur 40 "infinite amounts of money". Let alone,
> that I had a 486 when I stopped being obsessive about assembler (admitted,
> a fairly heavy one, at least for that generation)
The "infinite" here is regarding the continual process of upgrading your processor every so often when a faster one is released (assuming your motherboard is compatible, ugh). And yes, a 486 DX2/80 is quite fast. But even the lowliest Pentium is faster than that. (Of course, early Pentiums had the FDIV bug, plus they generate / require more heat / energy).
> > The YASM and NASM I use are DOS/DJGPP compiles, and DJGPP is not the
> best
> > optimizing compiler (although fairly good). So that makes a difference
> > too.
>
> I'm no real wizard, but afaik gcc optimizes fairly decently with generic
> optimizations, but largely misses a decent CPU dependant peephole
> optimizer.
IMO, they could use tons more help regarding their 586 or less optimizations. However, I'm unlikely to be of use in that regard (at least, not yet). :-/
> > "Bare" Assembly (language) is of course superior because without it you
> > can't run anything!
>
> Well, that is because you have a 486. With the introduction of the P6
> cores (PPRo+) that changed.
Early PPros actually ran 16-bit code slower than later-model Pentiums! (And yes, I have other computers too, including this P4, heh). They all act differently, but for sure they should mostly run things as fast, if not faster.
Complete thread:
- HX-DOS Extender & Virtual Pascal 2.1.279 - ho1459, 14.03.2008, 14:28 (DOSX)
![Open in board view [Board]](img/board_d.gif)
![Open in mix view [Mix]](img/mix_d.gif)
- HX-DOS Extender & Virtual Pascal 2.1.279 - Japheth, 15.03.2008, 11:26
- HX-DOS Extender & Virtual Pascal 2.1.279 - Rugxulo, 16.03.2008, 19:15
- HX-DOS Extender & Virtual Pascal 2.1.279 - ho1459, 17.03.2008, 21:07
- HX-DOS Extender & Virtual Pascal 2.1.279 - marcov, 07.04.2008, 11:45
- HX-DOS Extender & Virtual Pascal 2.1.279 - Rugxulo, 07.04.2008, 23:27
- HX-DOS Extender & Virtual Pascal 2.1.279 - marcov, 08.04.2008, 13:28
- HX-DOS Extender & Virtual Pascal 2.1.279 - Rugxulo, 08.04.2008, 15:58
- HX-DOS Extender & Virtual Pascal 2.1.279 - marcov, 10.04.2008, 10:02
- FPC for DOS / FreeDOS - Rugxulo, 11.04.2008, 07:14
- FPC for DOS / FreeDOS - marcov, 11.04.2008, 13:08
- FPC for DOS / FreeDOS - Rugxulo, 11.04.2008, 15:50
- FPC for DOS / FreeDOS - Japheth, 11.04.2008, 17:22
- FPC for DOS / FreeDOS - marcov, 11.04.2008, 19:50
- FPC for DOS / FreeDOS - Rugxulo, 12.04.2008, 00:43
- FPC for DOS / FreeDOS - marcov, 12.04.2008, 14:38
- FPC for DOS / FreeDOS - Rugxulo, 12.04.2008, 20:52
- FPC for DOS / FreeDOS - marcov, 13.04.2008, 23:36
- FPC for DOS / FreeDOS - Rugxulo, 14.04.2008, 20:40
- FPC for DOS / FreeDOS - marcov, 14.04.2008, 21:59
- FPC for DOS / FreeDOS - Rugxulo, 15.04.2008, 01:45
- FPC for DOS / FreeDOS - marcov, 15.04.2008, 16:11
- FPC for DOS / FreeDOS - Rugxulo, 16.04.2008, 02:23
- FPC for DOS / FreeDOS - marcov, 15.04.2008, 16:11
- FPC for DOS / FreeDOS - Rugxulo, 15.04.2008, 01:45
- FPC for DOS / FreeDOS - marcov, 14.04.2008, 21:59
- FPC for DOS / FreeDOS - Rugxulo, 14.04.2008, 20:40
- FPC for DOS / FreeDOS - marcov, 13.04.2008, 23:36
- FPC for DOS / FreeDOS - Rugxulo, 12.04.2008, 20:52
- FPC for DOS / FreeDOS - marcov, 12.04.2008, 14:38
- FPC for DOS / FreeDOS - Japheth, 12.04.2008, 07:33
- FPC for DOS / FreeDOS - marcov, 12.04.2008, 13:27
- FPC for DOS / FreeDOS - Japheth, 12.04.2008, 16:18
- FPC for DOS / FreeDOS - marcov, 13.04.2008, 02:54
- FPC for DOS / FreeDOS - Japheth, 13.04.2008, 09:50
- FPC for DOS / FreeDOS - marcov, 13.04.2008, 23:17
- Compiler debate - Steve, 14.04.2008, 05:51
- FPC for DOS / FreeDOS - Japheth, 14.04.2008, 08:49
- FPC for DOS / FreeDOS - marcov, 13.04.2008, 23:18
- Compiler debate - Steve, 14.04.2008, 06:00
- FPC for DOS / FreeDOS - Japheth, 14.04.2008, 08:21
- FPC for DOS / FreeDOS - marcov, 14.04.2008, 11:12
- FPC for DOS / FreeDOS - Japheth, 14.04.2008, 12:52
- FPC for DOS / FreeDOS - Steve, 14.04.2008, 15:05
- FPC for DOS / FreeDOS - marcov, 14.04.2008, 11:12
- FPC for DOS / FreeDOS - marcov, 13.04.2008, 23:17
- FPC for DOS / FreeDOS - Japheth, 13.04.2008, 09:50
- FPC for DOS / FreeDOS - marcov, 13.04.2008, 02:54
- FPC for DOS / FreeDOS - Rugxulo, 12.04.2008, 20:34
- FPC for DOS / FreeDOS - Japheth, 12.04.2008, 16:18
- FPC for DOS / FreeDOS - marcov, 12.04.2008, 13:27
- FPC for DOS / FreeDOS - Rugxulo, 12.04.2008, 00:43
- FPC for DOS / FreeDOS - Rugxulo, 11.04.2008, 15:50
- FPC for DOS / FreeDOS - marcov, 11.04.2008, 13:08
- FPC for DOS / FreeDOS - Rugxulo, 11.04.2008, 07:14
- HX-DOS Extender & Virtual Pascal 2.1.279 - marcov, 10.04.2008, 10:02
- HX-DOS Extender & Virtual Pascal 2.1.279 - Rugxulo, 08.04.2008, 15:58
- HX-DOS Extender & Virtual Pascal 2.1.279 - marcov, 08.04.2008, 13:28
- HX-DOS Extender & Virtual Pascal 2.1.279 - Rugxulo, 07.04.2008, 23:27
- HX-DOS Extender & Virtual Pascal 2.1.279 - ho1459, 17.03.2008, 20:56
- HX-DOS Extender & Virtual Pascal 2.1.279 - Rugxulo, 16.03.2008, 19:15
- HX-DOS Extender & Virtual Pascal 2.1.279 - Laaca, 15.03.2008, 18:56
- HX-DOS Extender & Virtual Pascal 2.1.279 - rr, 16.03.2008, 19:12
- HX-DOS Extender & Virtual Pascal 2.1.279 - Japheth, 15.03.2008, 11:26
Mix view