summaryrefslogtreecommitdiff
path: root/CHANGELOG.md
blob: 547b2081ded7d60cbb1e37935796ea17bae89077 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# Changelog

This is the changelog of Pollex.
See `"README.md"` for more information.

## 0.5.1

* Update package metadata

## 0.5.0

* Document `assert_or_err`
* Add docs logo
* Restructure tests
* Bump minor
* Update lints
* Add new errors: `IllegalFlag`, `IllegalShifter`, `InvalidOpcode`, `UnknownMnemonic`
* Update readme
* Update documentation
* Improve diagnostics

### Arm32

* Encode more instructions for Thumb
* Make `InstructionCodec::encode_thumb` return tuple
* Add new instructions: `Test`, `TestEquivalence`, `UnsignedSaturate`, `PreloadData`, `BranchLinkExchange`, `Swap`, `Load`, `Store`
* Rework `Flag`
* Add `Address` type
* Add `as_register` method to `Shifter`
* Add `skip_words`, `skip_halfwords`, and `skib_bytes` methods to `InstructionCodec`
* Add `from_register` method to `Shifter`
* Add Thumb decoding to `InstructionCodec`
* Add `from_u8` method to `Predicate`
* Add `from_u8` method to `Register`
* Implement `FromStr` for `Instruction`
* Add new `Sflag`, `Bflag`, and `Tflag` flags
* Add `seek_to` method to `InstructionCodec`

## 0.4.0

* Bump minor version
* Add logo
* Add more errors
* Add macro `assert_or_err`
* Document errors
* Remove `Arch`

### Arm32

* Add `encode_thumb` method to `InstructionCodec`
* Add `is_low` and `is_high` methods to `Register`
* Implement `FromStr` for `Register`
* Rename `Sb`, `Sl`, and `Ip` in `Register` to `R9`, `R10`, and `R12`
* Display instruction synonyms
* Document `Flag`

### Arm64

* Add module

## 0.3.0

* Bump minor
* Add `arm32::InstructionCodec`
* Remove `arm32::Unsigned` and `arm32::Signed`
* Add `SIZE` constant to `arm32::ArmOpcode` and `arm32::ThumbOpcode`
* Implement `From<u32>` and `Into<u32>` for `ArmOpcode`
* Implement `From<u16>` and `Into<u16>` for `ThumbOpcode`
* Update documentation
* Add new Arm32 instructions: `AddCarry`, `And`, `BitClear`, `CountLeadingZeroes`, `CompareNegated` `Compare`, `ExclusiveOr`, `MultiplyAccumulate`, `Multiply`, `InclusiveOr`, `SaturatingAdd`, `SaturatingSubtract`, `Reverse`, `ReverseSubtract`, `ReverseSubtractCarry`, `Subtract`, `SubtractCarry`,
* Rename `MoveNegated` in `arm32::Instruction` to `MoveNot`
* Implement `Into<bool>`, `Into<u8>`, `Into<u16>`, `Into<u32>`, `Into<u64>`, `Into<u128>`, and `Into<usize>` for `Flag`
* Implement `From<bool>` for `Flag`

## 0.2.0

* Bump minor
* Update copyright years
* Add new Arm32 instructions: `SoftwareInterrupt`, `Move`, `BranchExchange`, `Breakpoint`, `MoveNegated`, `Add`
* Derive more
* Add `arm32::Flag`, `arm32::Unsigned`, and `arm32::Signed` types
* Add instruction encoder (currently only for Arm)
* Add `arm32::ArmOpcode` and `arm32::ThumbOpcode` types
* Rename `arm32::Address` to `arm32::Shifter`
* Add `Error` type
* Rework instructions
* Update readme
* Rename `arm32::Condition` to `arm32::Predicate`
* Update documentation

## 0.1.2

* Update project description
* Add documentation

## 0.1.1

* Set documentation link
* Update homepage
* Update readme

## 0.1.0

* Bump minor
* Add `arm32` module
* Add `arm32::Address` type
* Add `arm32::Condition` type
* Add new ARM32 instructions: `BranchLink`
* Add tests
* Use `alloc`
* Add `Arch` type

## 0.0.0

* Fork from Luma and eAS
* Add gitignore
* Add changelog
* Add readme
* License under AGPL
* Add `Instruction` type
* Add `Register` type