Re: pointers to variables

new topic     » goto parent     » topic index » view thread      » older message » newer message

Sweet. Looks like I got my back end. Supports all them new SIMD x86 opcodes I expect.

I won't want it for a while. Sounds like it's still in active development anyway.

So people like me are execution-time performance junkies. It strikes me that most Euphorians are probably attracted more by development-time performance and ease. I like this too. I think I know how to combine both and make assembled power easily available to the whole Euphoria community.

Currently, the core of the evaluator works like this fragment:

var = --fractal type variable declarations 
"real a  , b  , c  , d  \n"& 
"real x, y, z, old_x, old_y, old_z \n" & 
"real temp_x, temp_y, temp_z \n"& 
"int maxint = 255 \n" 
vars = read_variables(var) 
 
op = --Hopalong fractal iteration 
  parse("temp_x = old_x + d : y = a - old_x")&        
  "fld qword ptr[old_x] " & 
  "ftst " & 
  "fstsw ax " & 
  "fstp st(0) " & 
  "sahf " & 
  "ja hopper_pos " & 
  parse("x = old_y + sqrt(abs(b * temp_x - c))") & --on negative old_x 
  "jmp hopper_done " & 
  "hopper_pos: " & 
  parse("x = old_y - sqrt(abs(b * temp_x - c))") & --on positive old_x 
  "hopper_done: " 
bits = get_asm(op) 
--Everything else... 

As you can see at the moment it is not much more than a asm writer's convenience, it only handles math and simple vars. Logic and flow are still hand crafted. I have made a syntax that already differs from Euphoria despite the fact the evaluator has no statements! This will change, I expect it should be made at least superficially similar to a subset of Euphoria's own syntax and should definitely not require any raw x86 ops.

I would appreciate any comment on this.

Cheers, Nick.

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu