- if ( get_mode_arithmetic(sm) == get_mode_arithmetic(lm)
- && get_mode_arithmetic(sm) == irma_twos_complement) {
- return lm_bits >= sm_bits;
- } else if (mode_is_signed(sm)) {
- if ( mode_is_signed(lm) && (lm_bits >= sm_bits) )
- return 1;
- } else if (mode_is_signed(lm)) {
- if (lm_bits > sm_bits + 1)
- return 1;
- } else if (lm_bits >= sm_bits) {
- return 1;
+ if(mode_is_signed(sm)) {
+ if(!mode_is_signed(lm))
+ return 0;
+ return sm_bits <= lm_bits;
+ } else {
+ if(mode_is_signed(lm)) {
+ return sm_bits < lm_bits;
+ }
+ return sm_bits <= lm_bits;