Linked by Thom Holwerda on Wed 18th May 2011 21:50 UTC, submitted by fran
Windows The ARM version of Windows 8 might have just become the most desired version of Windows in our hearts and minds. After us talking about legacy code and backwards compatibility in Windows for years now, an Intel senior vice president, Renee James, has just stated that Windows 8 on ARM will not have any form of compatibility for legacy applications whatsoever. Update: Microsoft has responded to Intel's claims. "Intel's statements during yesterday's Intel Investor Meeting about Microsoft's plans for the next version of Windows were factually inaccurate and unfortunately misleading," the company said, "From the first demonstrations of Windows on SoC, we have been clear about our goals and have emphasized that we are at the technology demonstration stage. As such, we have no further details or information at this time."
Thread beginning with comment 473986
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[4]: It makes sense
by viton on Fri 20th May 2011 16:26 UTC in reply to "RE[3]: It makes sense"
viton
Member since:
2005-08-09

assembly->C is hard
x86 asm -> ARM asm is not

Reply Parent Score: 2

RE[5]: It makes sense
by pgeorgi on Fri 20th May 2011 23:45 in reply to "RE[4]: It makes sense"
pgeorgi Member since:
2010-02-18

assembly->C is hard

It's only hard if you want to get a higher level view of what's going on (ie. "decompile").

For mere translation it's easy: create a struct representing all registers, then replace "mov %eax, 0" with "registers.eax = 0" and so on. x86/ARM even shares endianess and register size (in the common configurations).

It will look ugly, it will be lots of "goto" statements, but a C compiler will happily create acceptable ARM assembly from that.

Reply Parent Score: 1

RE[6]: It makes sense
by viton on Sat 21st May 2011 00:41 in reply to "RE[5]: It makes sense"
viton Member since:
2005-08-09

For mere translation it's easy: create a struct representing all registers, then replace "mov %eax, 0" with "registers.eax = 0" and so on. x86/ARM even shares endianess and register size (in the common configurations).


You'll need to create fake stack and emulate calls. That will be a real mess (and very slow mess).

Reply Parent Score: 2