|
@@ -912,8 +912,7 @@ implementation
|
|
|
const
|
|
|
overflowops = [OP_MUL,OP_SHL,OP_ADD,OP_SUB,OP_NOT,OP_NEG];
|
|
|
begin
|
|
|
- if ((op in overflowops) or
|
|
|
- (current_settings.cputype=cpu_dalvik)) and
|
|
|
+ if (op in overflowops) and
|
|
|
(def_cgsize(size) in [OS_8,OS_S8,OS_16,OS_S16]) then
|
|
|
resize_stack_int_val(list,s32inttype,size,false);
|
|
|
end;
|
|
@@ -2157,18 +2156,10 @@ implementation
|
|
|
destination type is smaller that the source type, or has a different
|
|
|
sign. In case the destination is a widechar and the source is not, we
|
|
|
also have to insert a conversion to widechar.
|
|
|
-
|
|
|
- In case of Dalvik, we also have to insert conversions for e.g. byte
|
|
|
- -> smallint, because truncating a byte happens via "and 255", and the
|
|
|
- result is a longint in Dalvik's type verification model (so we have
|
|
|
- to "truncate" it back to smallint) }
|
|
|
+ }
|
|
|
if (not(fromcgsize in [OS_S64,OS_64,OS_32,OS_S32]) or
|
|
|
not(tocgsize in [OS_S64,OS_64,OS_32,OS_S32])) and
|
|
|
- (((current_settings.cputype=cpu_dalvik) and
|
|
|
- not(tocgsize in [OS_32,OS_S32]) and
|
|
|
- not is_signed(fromsize) and
|
|
|
- is_signed(tosize)) or
|
|
|
- (tcgsize2size[fromcgsize]>tcgsize2size[tocgsize]) or
|
|
|
+ ((tcgsize2size[fromcgsize]>tcgsize2size[tocgsize]) or
|
|
|
((tcgsize2size[fromcgsize]=tcgsize2size[tocgsize]) and
|
|
|
(fromcgsize<>tocgsize)) or
|
|
|
{ needs to mask out the sign in the top 16 bits }
|