[M3commit] CVS Update: cm3

Jay K jay.krell at cornell.edu
Sun Feb 28 00:58:34 CET 2010


> mostly resolve the double shift source vs. dest problem


Clarification, I don't know of any bug here, just that 

 - the code looked wrong but acted right  

 - the debug output was probably wrong and definitely a little bit missing (I'm sure nobody ever runs cm3 -debug

   and looks at NT386/foo.molog, but I've been doing that a lot lately, it is similar

   to cm3cg -y, but shows the generated code as well, interleaved).

 

 

The actual generated code seemed ok, based on stuff in m3-sys/m3tests.

"mostly resolve" as in, the code reads more sensibly now, though

there is too much code duplication, build_modrm isn't as useful as it should be..

 

Also "double shift" doesn't mean "extra shift", but "double precision shift" -- 64bit shift.

x86 has the instructions shld and shrd, shift left double, shift right double.

You shift a register "into" another a register, instead of shifting in zeros or sign bits.

 

 - Jay
 
> Date: Sun, 28 Feb 2010 00:52:38 +0000
> To: m3commit at elegosoft.com
> From: jkrell at elego.de
> Subject: [M3commit] CVS Update: cm3
> 
> CVSROOT: /usr/cvs
> Changes by: jkrell at birch. 10/02/28 00:52:37
> 
> Modified files:
> cm3/m3-sys/m3back/src/: Codex86.m3 M3x86.m3 M3x86Rep.i3 
> Stackx86.m3 
> 
> Log message:
> mostly resolve the double shift source vs. dest problem
> the underlying helper function sometimes reverses dest and src, in the
> interest of getting reg, mem
> These helper functions need cleanup and unification.
> build_modrm, load_like_helper, etc.
> 
> abtract out some assumptions of 32bit sizes to be type-based
> so that we might inline some shift/insert/extract
> no actual bug here, only 32bit types get here currently, the
> rest generate function calls
> 
 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3commit/attachments/20100227/966f8fb7/attachment-0002.html>


More information about the M3commit mailing list