You can just hack in some code in SAFE_HEAP_LOAD/STORE to actually do
unaligned loads and stores. We could add an option for that, in fact.

- Alon



On Thu, May 8, 2014 at 6:18 AM, Jukka Jylänki <[email protected]> wrote:

> Oh, I misread Module.getValue and Module.setValue that they'd do unaligned
> accesses. Well, what happens if you combine that modification with -s
> UNALIGNED_MEMORY=1? Are those two incompatible?
>
>
> 2014-05-08 15:48 GMT+03:00 Christoph Husse <[email protected]>:
>
> As this was the initial problem. The application does not work without
>> UNALIGNED_MEMORY.
>>
>> On Thu, May 8, 2014 at 2:47 PM, Christoph Husse
>> <[email protected]> wrote:
>> > Well its a nice thought but the issue will most likely be that then
>> > the application gets broken and doesn't do what it would normally do
>> > ;). I need the UNALIGNED_MEMORY fix in combination with a notification
>> > for actual unaligned accesses.
>> >
>> > On Thu, May 8, 2014 at 2:11 PM, Jukka Jylänki <[email protected]> wrote:
>> >> Hmm, looking at the current code, as a quick manual fix you could try
>> >> compiling with -s SAFE_HEAP=1, and then going to the output file and
>> editing
>> >> the generated functions SAFE_HEAP_LOAD and SAFE_HEAP_STORE to just
>> >> 'console.error()' instead of 'abort()'. Does that work?
>> >>
>> >>
>> >> 2014-05-08 14:39 GMT+03:00 Christoph Husse <
>> [email protected]>:
>> >>
>> >>> EWWW!!!
>> >>>
>> >>> Looks like I have alignment issues (and well... my code too xD).
>> >>>
>> >>> So I have now worked a lot on the sources to have the same types on
>> >>> all platforms, compile by using a single "cpp" file, etc... And I also
>> >>> got the emscripten options like SAFE_HEAP really to work.
>> >>> After executing the thing with Node.js I see that I have unaligned
>> >>> reads & writes. using UNALIGNED_MEMORY=1 fixes it but its slow because
>> >>> it generates the machinery for all loads/stores while only few of them
>> >>> are unaligned.
>> >>>
>> >>> Is there a way to use UNALIGNED_MEMORY while at the same time listing
>> >>> all the places where it actually encountered an unaligned load/store?
>> >>> That would be really helpful because right now I would have to find an
>> >>> offending line, recompile, restart, find the next offending line,
>> >>> etc... This would be extremely time consuimg especially since one
>> >>> iteration may well take over 5 minutes...
>> >>>
>> >>> Any ideas?
>> >>>
>> >>> On Wed, May 7, 2014 at 9:31 AM, Jukka Jylänki <[email protected]>
>> wrote:
>> >>> > Emscripten/JS is a little endian platform, just like X86, so the
>> same
>> >>> > code
>> >>> > paths should work for JS and X86. It is ok to test for this at
>> runtime
>> >>> > and
>> >>> > do different things based on the result. Just make sure that the JS
>> >>> > platform
>> >>> > correctly takes the little endian path and that should be all good
>> >>> > there.
>> >>> >
>> >>> >
>> >>> > 2014-05-07 9:49 GMT+03:00 Christoph Husse <
>> [email protected]>:
>> >>> >>
>> >>> >> Okay thanks for that input. Gonna try it today. Maybe SAFE_HEAP
>> was off
>> >>> >> because I didn't get any output.
>> >>> >>
>> >>> >> Besides what you have recommended, I was working on "un-stding" my
>> >>> >> sources
>> >>> >> yesterday with success. There are NO standard library headers and
>> also
>> >>> >> no
>> >>> >> memory allocations (everything froma  static buffer) and no
>> conditional
>> >>> >> compilation macros... All types are the same size and sign on all
>> >>> >> platforms
>> >>> >> now.
>> >>> >>
>> >>> >> Only left is the big/little endian thing. Do you know if it is
>> okay to
>> >>> >> do
>> >>> >> runtime code switches based on endianess? The code needs to take
>> >>> >> different
>> >>> >> paths depending on endianess... Its a very low level CPU emulator,
>> so
>> >>> >> there
>> >>> >> is a lot of very platform specific low-level code in it.
>> >>> >>
>> >>> >>
>> >>> >> --
>> >>> >> You received this message because you are subscribed to the Google
>> >>> >> Groups
>> >>> >> "emscripten-discuss" group.
>> >>> >> To unsubscribe from this group and stop receiving emails from it,
>> send
>> >>> >> an
>> >>> >> email to [email protected].
>> >>> >>
>> >>> >> For more options, visit https://groups.google.com/d/optout.
>> >>> >
>> >>> >
>> >>> > --
>> >>> > You received this message because you are subscribed to a topic in
>> the
>> >>> > Google Groups "emscripten-discuss" group.
>> >>> > To unsubscribe from this topic, visit
>> >>> >
>> >>> >
>> https://groups.google.com/d/topic/emscripten-discuss/tOz2Yc_sLuA/unsubscribe
>> .
>> >>> > To unsubscribe from this group and all its topics, send an email to
>> >>> > [email protected].
>> >>> > For more options, visit https://groups.google.com/d/optout.
>> >>>
>> >>> --
>> >>> You received this message because you are subscribed to the Google
>> Groups
>> >>> "emscripten-discuss" group.
>> >>> To unsubscribe from this group and stop receiving emails from it,
>> send an
>> >>> email to [email protected].
>> >>> For more options, visit https://groups.google.com/d/optout.
>> >>
>> >>
>> >> --
>> >> You received this message because you are subscribed to a topic in the
>> >> Google Groups "emscripten-discuss" group.
>> >> To unsubscribe from this topic, visit
>> >>
>> https://groups.google.com/d/topic/emscripten-discuss/tOz2Yc_sLuA/unsubscribe
>> .
>> >> To unsubscribe from this group and all its topics, send an email to
>> >> [email protected].
>> >> For more options, visit https://groups.google.com/d/optout.
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "emscripten-discuss" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "emscripten-discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to