Commit | Line | Data |
---|---|---|
2213f746 NC |
1 | .text |
2 | errata: | |
3 | .cpu msp430 | |
4 | # CPU4: PUSH #4/#8 has to be encoded using the long form | |
5 | push #4 | |
6 | push #8 | |
7 | ||
8 | # CPU8: Do not use odd offsets with the stack pointer | |
9 | .set fred,3 | |
10 | .set bert,1 | |
11 | mov.w #4, 7(sp) | |
12 | mov 3(r1), 5(r0) | |
13 | mov.b @r10+,fred-bert+1(sp) | |
14 | add.w #1,1(sp) | |
15 | add.w #7,-1(sp) | |
16 | ||
17 | # CPU11: The SR flags can be left in a bogus state after writing to the PC | |
18 | add.w #3, pc | |
19 | and #1, pc | |
20 | bit #1, pc | |
21 | dadd #1, pc | |
22 | inc pc | |
23 | incd pc | |
24 | sub #1, pc | |
25 | subc #1, pc | |
26 | xor #1, pc | |
27 | ||
28 | #CPU12: A CMP or BIT instruction with the PC as the second operand may | |
29 | # not execute the instruction after it. | |
30 | cmp &200, PC | |
31 | bit r1, pc | |
32 | ||
33 | #CPU13: Arithmetic operations with SR as the destination do not work. | |
34 | add #3, sr | |
35 | adc sr | |
36 | addc #3, sr | |
37 | and #3, sr | |
38 | dadd #3, sr | |
39 | dec sr | |
40 | decd sr | |
41 | inc sr | |
42 | incd sr | |
43 | inv sr | |
44 | rla sr | |
45 | rlc sr | |
46 | rra sr | |
47 | rrc sr | |
48 | sbc sr | |
49 | sub #3, sr | |
50 | subc #3, sr | |
51 | sxt sr | |
52 | xor #3, sr | |
53 | ||
54 | #CPU19: Instructions that sets CPUOFF must be followed by a NOP | |
55 | bis #0x10, r2 | |
56 | mov #0x10, r2 | |
57 | xor #0x10, r2 | |
58 | nop | |
59 |