ARM: Fix left shifts.

* lib/arm-mes/arm.M1: Add macros "lsl____%r0,%r0,%r9", "lsl____%r1,%r1,%r9",
"mov____$i8,%r9".
* module/mescc/armv4/as.scm (armv4:shl-r): Use them.
This commit is contained in:
Danny Milosavljevic 2019-02-22 17:29:13 +01:00 committed by Jan Nieuwenhuizen
parent c72d349f53
commit 8a6092f2b4
No known key found for this signature in database
GPG Key ID: F3C1A0D9C1D65273
2 changed files with 5 additions and 1 deletions

View File

@ -79,6 +79,7 @@ DEFINE jne 1a
DEFINE mov____$i8,%r0 00a0e3
DEFINE mov____$i8,%r1 10a0e3 # mov r1, #66
DEFINE mov____$i8,%r7 70a0e3
DEFINE mov____$i8,%r9 90a0e3
DEFINE mov____%r0,%r1 0010a0e1
DEFINE mov____%r0,%r2 0020a0e1
DEFINE mov____%r0,(%r1) 000081e5
@ -204,6 +205,8 @@ DEFINE moveq__%r0,$i8 00a003 # moveq r0, #xx
#DEFINE teq____%r1,$i8 420031e3 # teq r1, #xx
DEFINE asr____%r0,%r0,%r1 5001a0e1 # asr %r0, %r0, %r1
DEFINE lsl____%r0,%r0,%r1 1001a0e1 # lsl %r0, %r0, %r1
DEFINE lsl____%r0,%r0,%r9 1009a0e1 # lsl %r0, %r0, %r9
DEFINE lsl____%r1,%r1,%r9 1119a0e1 # lsl %r1, %r1, %r9
DEFINE lsr____%r0,%r0,%r1 3001a0e1 # lsr %r0, %r0, %r1
DEFINE ldr____%r0,(%sp,#$i8) 009de5 # ldr r0, [r13+xx]
DEFINE ldr____%r1,(%sp,#$i8) 109de5 # ldr r1, [r13+xx]

View File

@ -401,7 +401,8 @@
(define (armv4:shl-r info n)
(let ((r (get-r info)))
`(((#:immediate1 ,n) ,(string-append "shl____$i8,%" r)))))
`(((#:immediate1 ,n) "mov____$i8,%r9")
((#:immediate1 ,n) ,(string-append "lsl____%" r ",%" r ",%r9")))))
(define (armv4:r+r info)
(let ((r (get-r info)))