From: Bastian Koppelmann Date: Tue, 5 May 2015 17:36:55 +0000 (+0200) Subject: target-tricore: fix BO_OFF10_SEXT calculating the wrong offset X-Git-Tag: v2.4.0-rc0~140^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4959d6b3662d94a5add5811ba1ff5243116b8987;p=thirdparty%2Fqemu.git target-tricore: fix BO_OFF10_SEXT calculating the wrong offset The lower part of the combined offset was sign extended and could lead to wrong results. Signed-off-by: Bastian Koppelmann --- diff --git a/target-tricore/tricore-opcodes.h b/target-tricore/tricore-opcodes.h index d3a9bc158b4..2291f75fd9b 100644 --- a/target-tricore/tricore-opcodes.h +++ b/target-tricore/tricore-opcodes.h @@ -107,7 +107,7 @@ /* BO Format */ #define MASK_OP_BO_OFF10(op) (MASK_BITS_SHIFT(op, 16, 21) + \ (MASK_BITS_SHIFT(op, 28, 31) << 6)) -#define MASK_OP_BO_OFF10_SEXT(op) (MASK_BITS_SHIFT_SEXT(op, 16, 21) + \ +#define MASK_OP_BO_OFF10_SEXT(op) (MASK_BITS_SHIFT(op, 16, 21) + \ (MASK_BITS_SHIFT_SEXT(op, 28, 31) << 6)) #define MASK_OP_BO_OP2(op) MASK_BITS_SHIFT(op, 22, 27) #define MASK_OP_BO_S2(op) MASK_BITS_SHIFT(op, 12, 15)