flat assembler
Message board for the users of flat assembler.
![]() Goto page Previous 1, 2, 3, 4, 5 Next |
Author |
|
rugxulo 14 Apr 2008, 20:59
revolution wrote:
Well, the obvious guess is that either Windows (which 95% of PCs have run at one point) or something inside Intel (their famous compiler?) use it. Besides, I don't think it takes up much silicon for that one measly instruction, so why not keep it?? |
|||
![]() |
|
rugxulo 14 Apr 2008, 22:07
They dropped LOADALL286 and LOADALL386 as well as some undocumented 386 instructions (IBTS ??) whose encodings were used for later processors. Oh, and don't forget "POP CS", which isn't available either.
![]() And no, they didn't drop SALC, just someone was wondering why they didn't since it was never officially documented. But obviously, people began using it once they discovered it, so dropping it would break something (at least TetrOS). ![]() |
|||
![]() |
|
f0dder 14 Apr 2008, 22:14
bitRAKE wrote: It would have been a good idea to completely clean the ABI for long mode - wonder why AMD opted for such minimal changes. I still believe x64 wasn't the best idea in the world, and that we'd been better off with a somewhat more "sane" architecture (and more powerful, like specifying destination register... ARM style), but with powerful virtualization/emulation hooks. |
|||
![]() |
|
chaoscode 15 Apr 2008, 15:42
i think, a new operating mode would be a good idea,
like a 64 bit mode, a 64 bit RISC mode would be a nice idea. switchabel by a flag in the Pagingtabels, so that different modes could be used and mixed^^. |
|||
![]() |
|
revolution 15 Apr 2008, 15:48
Be careful what you all ask for because you just might get it, look at the Itanium mess. That was a RISC, load/op/store, dest/source1/source2 architecture. It failed, miserably. Why? Because it wasn't compatible with existing code. Therein lies the difficulty, all that legacy code and the programmers desire not to have to throw it away for something new.
|
|||
![]() |
|
f0dder 15 Apr 2008, 16:05
revolution: the Itanium didn't exactly "fail miserably", it's used for high-end servers and the like... it wasn't ever meant as a desktop replacement (afaik, anyway), and thus the pricetag shows. The original Itanium had x86 hardware emulation, but it was horribly slow - software emulation turned out faster.
Also, Itanium is a pretty funky, as I understand it each opcode is more like an "instruction bundle" - probably somewhat complicated writing a decent compiler for that? I don't think going entirely RISC (Itanium isn't RISC, btw, it's EPIC ![]() I'm currently having consideration wrt. out-of-order vs. in-order execution, paging vs. MTRRs (but lots of them!), whether user/supervisor is enough or if there should be multiple rings, how virtualization should be implemented (Vanderpool and Pacifica aren't perfect, but x86 isn't the easiest platform to virtualize), what facilities one could have for making other-cpu emulation easier, etc etc etc. There's pro and con arguments for most, and it certainly wouldn't be an easy task coming up with a "perfect" CPU design. But x86 is a goddamn patchwork, with so much legacy and so many hacks. |
|||
![]() |
|
revolution 15 Apr 2008, 16:15
I predict Itanium will die. It is only still going because Intel don't want to throw away the billions they invested in it. I say it failed because it cannot compete with the current X86 CPUs. It costs more and gives almost nothing extra.
I still see the EPIC thing as RISC in disguise. Just because they stick 3 instructions together and call it a bundle doesn't make it magically something other than RISC. The out-of-order x86 cores can perform equally well as a bundler compiler, and with less expense for the user. There is no perfect CPU design, different goals and needs mean we need different CPUs. My TV remote doesn't need an Itanium in there! |
|||
![]() |
|
MazeGen 15 Apr 2008, 16:51
rugxulo wrote: They dropped LOADALL286 and LOADALL386 as well as some undocumented 386 instructions (IBTS ??) whose encodings were used for later processors. Oh, and don't forget "POP CS", which isn't available either. LOADALLs were never documented. rugxulo wrote:
AMD documents SALC for long time. Only Intel pretends it doesn't exist (0xD6 is documented as reserved & undefined, never causes #UD) rugxulo wrote:
Both Intel and AMD dropped SALC in 64-bit mode. And few more documented instructions are dropped in 64-bit mode. |
|||
![]() |
|
rugxulo 16 Apr 2008, 01:24
MazeGen wrote:
Well, there is no V86 mode under 64-bit mode either, so 16-bit stuff won't work at all anyways. And that's a bigger "drop" than little ol' SALC. ![]() |
|||
![]() |
|
f0dder 16 Apr 2008, 11:20
rugxulo wrote:
...and if you're masochistic enough to want to run 16-bit apps, any CPU that has 64-bit long mode support should be quite fast enough to emulate 16-bit apps ![]() _________________ ![]() |
|||
![]() |
|
revolution 16 Apr 2008, 13:40
salc ~= sbb al,al
Only a few flags might end up different. So I don't really care for salc, especially when it is not officially documented and might just catch me out one day and make my program crash on some unknown cpu variant. |
|||
![]() |
|
bitRAKE 16 Apr 2008, 14:21
It's only really handy for size optimization.
_________________ ¯\(°_o)/¯ The hardcore cynic mistakes good for guile. |
|||
![]() |
|
rugxulo 21 Apr 2008, 18:04
f0dder wrote:
I wouldn't call it masochistic to run pre-existing 16-bit apps. Besides, I definitely do NOT think DOSBox is "fast enough." It's good, but it could (in theory) be much much better. |
|||
![]() |
|
mattst88 27 Apr 2008, 01:31
To reply to those who think processors shouldn't have AES and other complicated instructions:
I guess you must hate VAX, as it had instructions to evaluate polynomials and to insert into and delete from queues. ![]() I read somewhere that instruction encodings on VAX ranged from 1 to 50 bytes. |
|||
![]() |
|
revolution 27 Apr 2008, 05:40
mattst88 wrote: I read somewhere that instruction encodings on VAX ranged from 1 to 50 bytes. |
|||
![]() |
|
revolution 27 Apr 2008, 08:11
I just downloaded the instruction set manual for the VAX11/780. It seems it does have polynomial evaluation and queue (linked list) insertion and deletion instructions.
The introductory text say that the instructions vary from 1 to 30 bytes in length. After a quick scan the longest would appear to be 'INDEX', any of the 'move translated characters' or packed arithmetic with six parameters following. But the GOTO instruction takes an arbitrary number of destination operands, the manual does not seem to include those as part of the instruction but if it did you could have some extremely long instruction (i.e. megabytes). |
|||
![]() |
|
Azu 02 Aug 2009, 17:07
tom tobias wrote:
Have fun. ![]() revolution wrote:
|
|||
![]() |
|
mattst88 03 Aug 2009, 04:18
You responded to a 15 month old thread for... that?
|
|||
![]() |
|
Azu 03 Aug 2009, 06:35
Should I have waited until it turned 18?
![]() |
|||
![]() |
|
Goto page Previous 1, 2, 3, 4, 5 Next < Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2023, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.