ARM: Use explicit remainder in __mesabi_uldiv call.
This inexplicably fixes a segfault in tcc-boot0. * module/mescc/armv4/as.scm (armv4:r0/r1): Instead of using "push 0", use explicit slot for remainder.
This commit is contained in:
parent
eee5398f3b
commit
2cfce3186b
|
@ -369,10 +369,13 @@
|
|||
`(,(string-append "push___%" r0))
|
||||
(armv4:call-label #f "__mesabi_idiv" 2))
|
||||
;; __mesabi_uldiv(a, b, remainderp)
|
||||
(cons* `(,(string-append "push___0"))
|
||||
`(,(string-append "push___%" r1))
|
||||
`(,(string-append "push___%" r0))
|
||||
(armv4:call-label #f "__mesabi_uldiv" 3)))))
|
||||
(append `(("push___%r3") ; slot for remainder
|
||||
("mov____%esp,%r3")
|
||||
("push___%r3") ; pointer to remainder
|
||||
(,(string-append "push___%" r1))
|
||||
(,(string-append "push___%" r0)))
|
||||
(armv4:call-label #f "__mesabi_uldiv" 3)
|
||||
`(("pop____%r3"))))))
|
||||
|
||||
(define (armv4:r0%r1 info signed?)
|
||||
(let ((r0 (get-r0 info))
|
||||
|
|
Loading…
Reference in a new issue