aboutsummaryrefslogtreecommitdiffstats
path: root/lib/hipe/arm/hipe_rtl_to_arm.erl
AgeCommit message (Collapse)Author
2016-11-15hipe_rtl: unify branch and alubMagnus Lång
branch and alub overlap in their use cases, but the backends rely on knowing that the result is unused in their lowering of branch. By extending alub so that the destination is optional, it can fully replace branch. This simplifies rtl by reducing code duplication and the number of instructions. Also, in the x86 and arm backends, we can now use 'test' and {'tst','mvn','teq'} to lower some alubs without destinations. This is particularly good for x86, as sequences such as 'is_boxed' type tests now get shorter (both from not needing a mov to copy the variable, but also from the fact that 'testb' encodes shorter than 'andq').
2016-08-30hipe_arm: Be resilient to crappy RTLMagnus Lång
The ARM backend crashes if certain RTL optimisations were omitted, preventing it from being usable at lower optimisation levels. One of the problems were caused by shift-by-immediate-zero, which wraps to immediate-32 with some shiftops. TODO: Someplace should be modified to crash when these are generated so debuging further instances of this gets easier in the future.
2016-08-22hipe_arm: Fix translation of shift by 0Magnus Lång
The problem was caused by shift-by-immediate-zero, which wraps to immediate-32 with some shiftops. TODO: Someplace should be modified to crash when these are generated so debugging further instances of this gets easier in the future.
2016-03-15update copyright-yearHenrik Nord
2015-06-18Change license text to APLv2Bruce Yinhe
2009-11-20The R13B03 release.OTP_R13B03Erlang/OTP