Bill,

> mov will be aliased to mov_q, the 64-bit move.
> mov_l will be implemented for the 32 bit move.

In my experience it is much less error-prone if you use the explicit
instruction names especially if they overlap with the one you are
basing it on and their meaning changes.

Here is the problem that will happen (105% probability):
- existing code in xyz_ia32.cc uses a mov(reg, memory_op) to read an
32-bit integer value from memory
- somebody implements xyz_x64.cc and uses mov(rev, memory_op)
- this works well for a while because the memory location following
the memory operand is generally zero
- somebody changes something unrelated, causing the memory location to
be non-zero
- collective team-wide head-scratching for weeks to try to identify
why this unrelated change caused these random bugs

Please do not use aliasing such as this. And if the amount of typing
is a concern, then rather save the _ character in the mov_l and mov_q
instructions.

Thanks!
-Ivan

--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to