diff options
| author | Cyrille Bagard <nocbos@gmail.com> | 2018-05-28 20:34:24 (GMT) | 
|---|---|---|
| committer | Cyrille Bagard <nocbos@gmail.com> | 2018-05-28 20:34:24 (GMT) | 
| commit | 5311a943dffcc410739509b9215ca464f6d1e54c (patch) | |
| tree | 9c34b5176606aa7bb3dcfb5970a20e3f9b27f1c3 /plugins/arm/v7/opdefs/sub_A88221.d | |
| parent | 9f5ed46de568d3db882c939c8ca9d0117bff3369 (diff) | |
Included support for ARMv7 system instructions.
Diffstat (limited to 'plugins/arm/v7/opdefs/sub_A88221.d')
| -rw-r--r-- | plugins/arm/v7/opdefs/sub_A88221.d | 149 | 
1 files changed, 0 insertions, 149 deletions
diff --git a/plugins/arm/v7/opdefs/sub_A88221.d b/plugins/arm/v7/opdefs/sub_A88221.d deleted file mode 100644 index 30ccb68..0000000 --- a/plugins/arm/v7/opdefs/sub_A88221.d +++ /dev/null @@ -1,149 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * ##FILE## - traduction d'instructions ARMv7 - * - * Copyright (C) 2017 Cyrille Bagard - * - *  This file is part of Chrysalide. - * - *  Chrysalide is free software; you can redistribute it and/or modify - *  it under the terms of the GNU General Public License as published by - *  the Free Software Foundation; either version 3 of the License, or - *  (at your option) any later version. - * - *  Chrysalide is distributed in the hope that it will be useful, - *  but WITHOUT ANY WARRANTY; without even the implied warranty of - *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - *  GNU General Public License for more details. - * - *  You should have received a copy of the GNU General Public License - *  along with Chrysalide.  If not, see <http://www.gnu.org/licenses/>. - */ - - -@title SUB (immediate, Thumb) - -@id 220 - -@desc { - -	This instruction subtracts an immediate value from a register value, and writes the result to the destination register. It can optionally update the condition flags based on the result. - -} - -@encoding (t1) { - -	@half 0 0 0 1 1 1 1 imm3(3) Rn(3) Rd(3) - -	@syntax { - -		@subid 673 - -		@conv { - -			reg_D = Register(Rd) -			reg_N = Register(Rn) -			imm32 = ZeroExtend(imm3, 32) - -		} - -		@asm sub ?reg_D reg_N imm32 - -	} - -} - -@encoding (t2) { - -	@half 0 0 1 1 1 Rdn(3) imm8(8) - -	@syntax { - -		@subid 674 - -		@conv { - -			reg_D = Register(Rdn) -			reg_N = Register(Rdn) -			imm32 = ZeroExtend(imm8, 32) - -		} - -		@asm sub ?reg_D reg_N imm32 - -	} - -} - -@encoding (T3) { - -	@word 1 1 1 1 0 i(1) 0 1 1 0 1 S(1) Rn(4) 0 imm3(3) Rd(4) imm8(8) - -	@syntax { - -		@subid 675 - -		@assert { - -			S == 0 - -		} - -		@conv { - -			reg_D = Register(Rd) -			reg_N = Register(Rn) -			imm32 = ThumbExpandImm(i:imm3:imm8) - -		} - -		@asm sub.w ?reg_D reg_N imm32 - -	} - -	@syntax { - -		@subid 676 - -		@assert { - -			S == 1 - -		} - -		@conv { - -			reg_D = Register(Rd) -			reg_N = Register(Rn) -			imm32 = ThumbExpandImm(i:imm3:imm8) - -		} - -		@asm subs.w ?reg_D reg_N imm32 - -	} - -} - -@encoding (T4) { - -	@word 1 1 1 1 0 i(1) 1 0 1 0 1 0 Rn(4) 0 imm3(3) Rd(4) imm8(8) - -	@syntax { - -		@subid 677 - -		@conv { - -			reg_D = Register(Rd) -			reg_N = Register(Rn) -			imm32 = ZeroExtend(i:imm3:imm8, 32) - -		} - -		@asm subw ?reg_D reg_N imm32 - -	} - -} -  | 
