From 6e7c6d814a51ae563df4fc310b2e35f8ffe5c2f8 Mon Sep 17 00:00:00 2001 From: Torsten Ruger Date: Sat, 14 Nov 2015 00:21:24 +0200 Subject: [PATCH] long const avoidance arm can only load 10 bits and some funny logic so for now avoid big fffffff const --- lib/soml/parfait/word.soml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/soml/parfait/word.soml b/lib/soml/parfait/word.soml index 57872511..af6588f4 100644 --- a/lib/soml/parfait/word.soml +++ b/lib/soml/parfait/word.soml @@ -34,8 +34,15 @@ class Word < Object int was = get_internal( word_index ) int mask = rest * 8 + int const = 255 << 8 + const = const + 255 + const = const << 8 + const = const + 255 + const = const << 8 + const = const + 255 + mask = 255 << mask - mask = 4294967295 - mask + mask = const - mask int masked = was & mask int put = masked + shifted