The original AmigaE can be seen as having a single-value system. All mathematical, bitwise, comparisons, etc, operations are done on the 32bit LONG value. ECX allows other types of values of other sizes to coexist with the default 32bit LONG value.
-
The (LONG) General purpose value [default]
LONG can hold Addresses: {}, `, ARRAY OF , PTR TO * Single floats: FLOAT 32bit Immediate values: 100, 99.78, -6, MY_VALUE10, ..
Values smaller than LONG are automatically converted to/from LONG:
CHAR/INT <=> LONG
-
The (DOUBLE) Floating point value
Values smaller than DOUBLE are automatically converted to/from DOUBLE:
LONG/99.78/-6.0/!MY_VALUE*10.0, .. <=> DOUBLE
-
The (WIDE) 64bit integer
Values scale WIDE <=> LONG/INT/CHAR
-
Possibly in future: VECTOR type.
Would use intrinsics to do math/bitwise/comparison.