|
From: Florian K. <br...@ac...> - 2012-08-21 01:52:09
|
When it comes to propagation of undefinedness in memcheck these operators currently behave like Iop_Not64. I.e. if bit X in the input is undefined so is the same bit in the result (and no other bit). >From the comments in libvex_ir.h it seems that more is involved: Convert 50-bit densely packed BCD string to 60 bit BCD string Convert 60 bit BCD string to 50-bit densely packed BCD string Can somebody confirm this propagation scheme is indeed correct ? Thanks, Florian |
|
From: Julian S. <js...@ac...> - 2012-08-21 10:13:38
|
On Tuesday, August 21, 2012, Florian Krohm wrote: > When it comes to propagation of undefinedness in memcheck these > operators currently behave like Iop_Not64. I.e. if bit X in the input is > undefined so is the same bit in the result (and no other bit). > > >From the comments in libvex_ir.h it seems that more is involved: > Convert 50-bit densely packed BCD string to 60 bit BCD string > Convert 60 bit BCD string to 50-bit densely packed BCD string > > Can somebody confirm this propagation scheme is indeed correct ? That doesn't sound right to me. If for no other reason than it implies that each output bit depends only on the corresponding input bit, which rules out any possibility that the input and output widths (50 vs 60 bits) are different. Maybe we should just PCast in this case -- it's at least guaranteed safe. J |