Add ops for creating and accessing 64 bit ints as dwords.

runtime/mercury_int.h:
    Add macros to create double-word int64s/uint64s from two words,
    and to access each word of a double-word int64 or uint64.

    Put the int64 and uint64 versions of the same macro next to each other.

    Add parentheses where this clarifies code.

runtime/mercury_float.h:
    Note the parallel to the new code in mercury_int.h.

    Add comments to #elses and #endifs that repeat the condition of the
    initial #if, to make the code easier to read.

    Put macro definitions into a consistent order.

    Use lower-case names for macro parameters, since this is standard.

    Add parentheses where this clarifies code.

    Delete a macro definition that is now in mercury_std.h.

runtime/mercury_std.h:
    Move a macro here from mercury_float.h, since mercury_int.h now
    uses it too.

runtime/mercury_memory.h:
    Improve some comments.

compiler/builtin_ops.m:
    Add operations to create double-word int64s/uint64s from two words,
    and to access each word of a double-word int64 or uint64.
    These correspond to the new macros in mercury_int.h.
    The new operations are not used yet.

compiler/bytecode.m:
compiler/c_util.m:
compiler/erl_call_gen.m:
compiler/llds.m:
compiler/llds_out_data.m:
compiler/ml_global_data.m:
compiler/mlds_to_c.m:
compiler/mlds_to_cs.m:
compiler/mlds_to_java.m:
compiler/opt_debug.m:
    Conform to the change to builtin_ops.m.
This commit is contained in:
Zoltan Somogyi
2018-03-28 11:42:24 +11:00
parent 947ee87c8f
commit 5d9a63ac57
15 changed files with 331 additions and 130 deletions

View File

@@ -851,6 +851,10 @@ dump_unop(hash_string5) = "hash_string5".
dump_unop(hash_string6) = "hash_string6".
dump_unop(dword_float_get_word0) = "dword_float_get_word0".
dump_unop(dword_float_get_word1) = "dword_float_get_word1".
dump_unop(dword_int64_get_word0) = "dword_int64_get_word0".
dump_unop(dword_int64_get_word1) = "dword_int64_get_word1".
dump_unop(dword_uint64_get_word0) = "dword_uint64_get_word0".
dump_unop(dword_uint64_get_word1) = "dword_uint64_get_word1".
dump_binop(array_index(_)) = "array_index".
dump_binop(string_unsafe_index_code_unit) = "string_unsafe_index_code_unit".
@@ -875,6 +879,8 @@ dump_binop(float_ge) = "fl>=".
dump_binop(float_lt) = "fl<".
dump_binop(float_gt) = "fl>".
dump_binop(float_from_dword) = "float_from_dword".
dump_binop(int64_from_dword) = "int64_from_dword".
dump_binop(uint64_from_dword) = "uint64_from_dword".
dump_binop(int_add(_)) = "+".
dump_binop(int_sub(_)) = "-".
dump_binop(int_mul(_)) = "*".