I also want backwards compatibility with current 32 bit hardware and operating systems.
Switching to 64 bit mode where extra registers and maybe new instructions would be used would break compatibility.
So even these new flexible instructions would break compatibility, so this discussion is probably pointless except maybe for the future.
But then again if I want compatibility mode... I wonder if it would be interesting.
The cpu would have to do two adds and an add with carrie for 64 bit simulation.
Would this be interesting for cpu makes to implement ?
Probably not... or maybe it would still be interesting... I don't know.
If this would make software automatically scale then people might be interested.
However then intel could have implemented it already by writing:
OperationSize := 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 bytes whereever you want to place the limit.
OperationCode...
Then the cpu does the operation is good as it can with it's current resources.
Unfortunately intel thought 32 bit was enough, for now it is... but for how long ? not that long I think ;)
For some things it is already not enough like file system stuff.
That's what I need it for mainly...
However I shall have to examine the code more...
Maybe it only requires 64 bit data transfers and 64 bit adds and subs...
That could be done with 3 instructions instead of 1... but then again other parts of the program need to be 64 bit as well...
So still many parts need to be 64 bit I think... so it could become a slow down issue... like twice or three times, maybe even 5 or 6 times as slow...
Don't know yet...
I am not happy that my program will slow down if I convert if from 32 bit mode to 64 bit simulated mode.
Real 64 bit mode is not option yet, many people don't have it, and I really want my program to work on 32 bit with 64 bit emulation as well.
I would like to keep my program 32 bit fast as well though.
And I would like to keep the source code in one version.
Two versions sux, three versions would be even worse.
The pain is clearly feelable :)
Current options looking bad:
- Switch to real 64 bit, result: many systems won't be able to use it.
- Switch to emulated 64 bit, result: slower program.
Absolutely no option available to keep source code the same without wacky constructs like ifdefs, or whatever.
Only solution so far might be might presented solution and implement it as operator overloading... this will slow down the program even more because of all the if statements... which makes switching between 32 and 64 bit pointless... because than the 32 bit mode will become slower as well.
Not to mention possible 16 bit modes...
Just in time compiling could be a solution but this requires the source to be available or byte code to be available which is easily reverse enginerable.
The concepts of a computer and math are pretty simple, basic math is even thought to school kids of 7 to 14 years old.
How intel managed to f*ck up the world so much is beyong my comprehension lol.. no just kidding.
It was all about speeeeed. Who had the fastest CPU ?!
They didn't care about backwards compatibility... sure their cpu's were compatible but only in certain modes....
Not in the higher 32 bit modes or een 64 bit modes...
You want the new modes... change/upgrade and recompile your code they say !
Hehehe...
Tell it Albert Einstein to recompile his E=MC2 formula !
Ludicrious !
Bye, Skybuck.