On Thursday 27 April 2006 10:04, Fred Fish wrote: > I'm doing some work with a mips64-elf toolchain and took a look at why > there are so many gdb testsuite failures. One problem I found is that > calling functions by hand was broken, For mips_o64_push_dummy_call, mips_abi_regsize(gdbarch) always evaluates to 8, and was suppressing a needed left shift of struct and union arguments passed big endian. Attached is an additional patch which fixes the following FAILs: < FAIL: gdb.base/call-rt-st.exp: print print_bit_flags_char(*cflags) < FAIL: gdb.base/call-rt-st.exp: print print_bit_flags_short(*sflags) < FAIL: gdb.base/call-rt-st.exp: print print_bit_flags(*flags) < FAIL: gdb.base/call-rt-st.exp: print print_three_chars(*three_char) < FAIL: gdb.base/call-rt-st.exp: print print_five_chars(*five_char) < FAIL: gdb.base/structs.exp: p/c L; call 1 structs-tc < FAIL: gdb.base/structs.exp: p/c L; call 2 structs-tc < FAIL: gdb.base/structs.exp: p/c L; call 3 structs-tc < FAIL: gdb.base/structs.exp: p/c L; call 4 structs-tc < FAIL: gdb.base/structs.exp: p/c L; call 5 structs-tc < FAIL: gdb.base/structs.exp: p/c L; call 6 structs-tc < FAIL: gdb.base/structs.exp: p/c L; call 7 structs-tc < FAIL: gdb.base/structs.exp: p/c L; call 9 structs-tc < FAIL: gdb.base/structs.exp: p/c L; call 10 structs-tc < FAIL: gdb.base/structs.exp: p/c L; call 11 structs-tc < FAIL: gdb.base/structs.exp: p/c L; call 12 structs-tc < FAIL: gdb.base/structs.exp: p/c L; call 13 structs-tc < FAIL: gdb.base/structs.exp: p/c L; call 14 structs-tc < FAIL: gdb.base/structs.exp: p/c L; call 15 structs-tc < FAIL: gdb.base/structs.exp: p/c L; call 17 structs-tc < FAIL: gdb.base/structs.exp: p/c L; call 1 structs-ts < FAIL: gdb.base/structs.exp: p/c L; call 2 structs-ts < FAIL: gdb.base/structs.exp: p/c L; call 3 structs-ts < FAIL: gdb.base/structs.exp: p/c L; call 5 structs-ts < FAIL: gdb.base/structs.exp: p/c L; call 1 structs-ti < FAIL: gdb.base/structs.exp: p/c L; call 3 structs-ti < FAIL: gdb.base/structs.exp: p/c L; call 1 structs-tl < FAIL: gdb.base/structs.exp: p/c L; call 3 structs-tl < FAIL: gdb.base/structs.exp: p/c L; call 1 structs-tf < FAIL: gdb.base/structs.exp: p/c L; call 3 structs-tf < FAIL: gdb.base/structs.exp: p/c L; call 2 structs-ts-tc < FAIL: gdb.base/structs.exp: p/c L; call 3 structs-ts-tc < FAIL: gdb.base/structs.exp: p/c L; call 4 structs-ts-tc < FAIL: gdb.base/structs.exp: p/c L; call 5 structs-ts-tc < FAIL: gdb.base/structs.exp: p/c L; call 8 structs-ts-tc < FAIL: gdb.base/structs.exp: p/c L; call 6 structs-ti-tc < FAIL: gdb.base/structs.exp: p/c L; call 6 structs-tl-tc < FAIL: gdb.base/structs.exp: p/c L; call 6 structs-tf-tc < FAIL: gdb.base/structs.exp: p/c L; call 2 structs-tc-ts < FAIL: gdb.base/structs.exp: p/c L; call 3 structs-tc-ts < FAIL: gdb.base/structs.exp: p/c L; call 5 structs-tc-ts < FAIL: gdb.base/structs.exp: p/c L; call 6 structs-tc-ts < FAIL: gdb.base/structs.exp: p/c L; call 3 structs-tc-ti < FAIL: gdb.base/structs.exp: p/c L; call 3 structs-tc-tl < FAIL: gdb.base/structs.exp: p/c L; call 3 structs-tc-tf -Fred