Originally Posted by
Elysia
That sounds a little too good to be true. I'm going to take that with a grain of salt. True, the x86 architecture isn't the most efficient around, but I honestly don't think it will loose out to another architecture on such a degree. It's not like Intel/AMD are rolling their thumbs.
What does C++ being an assembly language mean anyway?
As you know, nobody writes assembly by typing in machine code directly
Each assembly language is a macro language
in other words, most assembly languages have the capability of writing
Code:
repeat 3
add ax, [bx]
add bx, 2
endm
this would generate an intermediate code of
Code:
add ax, [bx]
add bx, 2
add ax, [bx]
add bx, 2
add ax, [bx]
add bx, 2
add ax, [bx]
and then get generated to machine code
this is the "macro" part of the macro assembler language
on the mill, that "macro" language is C++
so you write
Code:
for (int i = 0; i < 3; ++i)
addu(b3, b6);
and that will generate an executable file
that executable file contains three calls to the addu "function"
all the addu "function" does is generate the correct machine code for that instruction, so once you call it three times, it's just the same thing as generating a temporary file that says
Code:
addu(b3, b6);
addu(b3, b6);
addu(b3, b6);
this means that you can use all the if statements, loops, classes, templates, anything you want in C++, and eventually you'll get native Mill machine code as the output
I attended this talk about the Mill where Ivan Godard explained how it worked: http://millcomputing.com/topic/specification/