On Fri, Jul 13, 2018 at 03:03:47PM +1200, Robert O'Callahan wrote: > On Fri, Jul 13, 2018 at 11:40 AM, Steve Fink <sf...@mozilla.com> wrote: > > > On 07/12/2018 04:27 PM, Cameron McCormack wrote: > > > >> On Fri, Jul 13, 2018, at 6:51 AM, Kris Maglione wrote: > >> > >>> I actually have a patch sitting around with helpers to make it super > >>> easy to > >>> use smart pointers as tagged pointers :) I never wound up putting it up > >>> for > >>> review, since my original use case went away, but it you can think of any > >>> specific cases where it would be useful, I'd be happy to try and get it > >>> landed. > >>> > >> Speaking of tagged pointers, I've used lower one or two bits for tagging > >> a number of times, but I've never tried packing things into the high bits > >> of a 64 bit pointer. Is that inadvisable for any reason? How many bits > >> can I use, given the 64 bit platforms we need to support? > >> > > > > JS::Value makes use of this. We preserve the bottom 47 bits, but that's > > starting to be problematic as some systems want 48. So, stashing stuff into > > the high 16 bits is pretty safe! > > > > 57-bit address space support is coming for x86-64.
The high 16 bits are also used for user-space address space on some tier-3 platforms, and we've had to make the memory allocator avoid those addresses to make JS::Value work there. Mike _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform