diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2015-06-14 10:35:16 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2015-06-14 10:35:16 (GMT) |
commit | 4a2f5c39a29bdb4f626bfdb109753ca106a71a33 (patch) | |
tree | 9e16d13c063ebd861e9d6c48f940cb2bc62554d3 /src/arch/arm/v7/opdefs/b_A8818.d | |
parent | 04d108111fe7ddd01713b4ca22f8d96961ec2486 (diff) |
Handled properly the sign extension when extending values.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@539 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/arch/arm/v7/opdefs/b_A8818.d')
-rw-r--r-- | src/arch/arm/v7/opdefs/b_A8818.d | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/arch/arm/v7/opdefs/b_A8818.d b/src/arch/arm/v7/opdefs/b_A8818.d index f06367b..ab5971f 100644 --- a/src/arch/arm/v7/opdefs/b_A8818.d +++ b/src/arch/arm/v7/opdefs/b_A8818.d @@ -25,14 +25,14 @@ @encoding(t1) { - @half 1 1 0 1 cond(4) top(1) imm8(7) + @half 1 1 0 1 cond(4) imm8(8) @syntax {c} <label> @conv { c = Condition(cond) - label = SignExtend(top:imm8:'0', top, 32) + label = SignExtend(imm8:'0', imm8 & 0x80, 32) } @@ -56,13 +56,13 @@ @encoding(t2) { - @half 1 1 1 0 0 top(1) imm11(10) + @half 1 1 1 0 0 imm11(11) @syntax <label> @conv { - label = SignExtend(top:imm11:'0', top, 32) + label = SignExtend(imm11:'0', imm11 & 0x400, 32) } @@ -147,14 +147,14 @@ @encoding(A1) { - @word cond(4) 1 0 1 0 top(1) imm24(23) + @word cond(4) 1 0 1 0 imm24(24) @syntax {c} <label> @conv { c = Condition(cond) - label = SignExtend(top:imm24:'00', top, 32) + label = SignExtend(imm24:'00', imm24 & 0x800000, 32) } |