Commit 04c6b99
committed
py/emitnative: Improve Viper register-indexed code for Thumb.
This commit lets the Viper code generator use optimised code sequence
for register-indexed load and store operations when generating Thumb
code.
Register-indexed load and store operations for Thumb now can take at
most two machine opcodes for halfword and word values, and just a single
machine opcode for byte values. The original implementation could
generate up to four opcodes in the worst case (dealing with word
values).
Signed-off-by: Alessandro Gatti <a.gatti@frob.it>1 parent 1d37caa commit 04c6b99
3 files changed
+87
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
491 | 491 | | |
492 | 492 | | |
493 | 493 | | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
494 | 514 | | |
495 | 515 | | |
496 | 516 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
251 | 251 | | |
252 | 252 | | |
253 | 253 | | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
254 | 298 | | |
255 | 299 | | |
256 | 300 | | |
| |||
341 | 385 | | |
342 | 386 | | |
343 | 387 | | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
344 | 393 | | |
345 | 394 | | |
346 | 395 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1641 | 1641 | | |
1642 | 1642 | | |
1643 | 1643 | | |
| 1644 | + | |
| 1645 | + | |
| 1646 | + | |
1644 | 1647 | | |
1645 | 1648 | | |
1646 | 1649 | | |
| |||
1652 | 1655 | | |
1653 | 1656 | | |
1654 | 1657 | | |
| 1658 | + | |
| 1659 | + | |
| 1660 | + | |
1655 | 1661 | | |
1656 | 1662 | | |
1657 | 1663 | | |
| |||
1667 | 1673 | | |
1668 | 1674 | | |
1669 | 1675 | | |
| 1676 | + | |
| 1677 | + | |
| 1678 | + | |
1670 | 1679 | | |
1671 | 1680 | | |
1672 | 1681 | | |
| |||
1944 | 1953 | | |
1945 | 1954 | | |
1946 | 1955 | | |
| 1956 | + | |
| 1957 | + | |
| 1958 | + | |
1947 | 1959 | | |
1948 | 1960 | | |
1949 | 1961 | | |
| |||
1954 | 1966 | | |
1955 | 1967 | | |
1956 | 1968 | | |
| 1969 | + | |
| 1970 | + | |
| 1971 | + | |
1957 | 1972 | | |
1958 | 1973 | | |
1959 | 1974 | | |
| |||
1969 | 1984 | | |
1970 | 1985 | | |
1971 | 1986 | | |
| 1987 | + | |
| 1988 | + | |
| 1989 | + | |
1972 | 1990 | | |
1973 | 1991 | | |
1974 | 1992 | | |
| |||
0 commit comments