Petr, That does look like a typo to me, which was probably my bad. libunwind looks fine: Gregs.c:access_nat() compares against Gglobal.c:nat_val_bytes, which has the proper values (0x1, 0xff, 0xfe). GCC used to have the same buggy bits in unwind-ia64.c but I believe that was removed when it switched over to using libunwind. --david On Tue, Jun 12, 2012 at 11:07 AM, Petr Tesarik <ptesarik@xxxxxxx> wrote: > > Hello, > > I've been looking at the following code trying to understand what it does: > > /* simulate getf.sig/setf.sig */ > if (write) { > if (*nat) { > /* write NaTVal and be done with it */ > addr[0] = 0; > addr[1] = 0x1fffe; > return 0; > } > addr[1] = 0x1003e; > } else { > if (addr[0] == 0 && addr[1] == 0x1ffe) { > /* return NaT and be done with it */ > *val = 0; > *nat = 1; > return 0; > } > } > > In particular, I'm puzzled about the "0x1ffe" constant for the read case. > Shouldn't that be 0x1fffe (with one more 'f'), i.e. the binary representation > of NaTVal? > > Petr Tesarik > -- > To unsubscribe from this list: send the line "unsubscribe linux-ia64" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- eGauge Systems LLC, http://egauge.net/, 1.877-EGAUGE1, fax 720.545.9768 ÿôèº{.nÇ+?·?®??+%?Ëÿ±éݶ¥?wÿº{.nÇ+?·¥?{±þ&ºãø§¶?¡Ü¨}©?²Æ zÚ&j:+v?¨þø¯ù®w¥þ?à2?Þ?¨èÚ&¢)ß¡«a¶Úÿÿûàz¿äz¹Þ?ú+?ù???Ý¢jÿ?wèþf