Commit 15f35478 authored by Xavier Leroy's avatar Xavier Leroy
Browse files

PowerPC: wrong computation of the position of the first vararg argument

In function Asmexpand.next_arg_locations:

If 7 integer parameter passing registers have been used already,
and the next fixed arguments are Tlong then Tint, the Tlong argument
was correctly analyzed as being passed on the stack, but the Tint
argument was incorrectly analyzed as being passed in the 8th register.
parent 0895388e
......@@ -388,8 +388,9 @@ let rec next_arg_locations ir fr ofs = function
then next_arg_locations ir (fr + 1) ofs l
else next_arg_locations ir fr (align ofs 8 + 8) l
| Tlong :: l ->
if ir < 7
then next_arg_locations (align ir 2 + 2) fr ofs l
let ir = align ir 2 in
if ir < 8
then next_arg_locations (ir + 2) fr ofs l
else next_arg_locations ir fr (align ofs 8 + 8) l
let expand_builtin_va_start r =
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment