[Patch, microblaze]: Add TARGET_ASM_OUTPUT_MI_THUNK to support varargs thunk

Michael Eager eager@eagerm.com
Sat Jan 25 15:57:00 GMT 2014


On 07/14/13 21:37, David Holsgrove wrote:
> Hi Michael,
>
>> -----Original Message-----
>> From: Michael Eager [mailto:eager@eagerm.com]
>> Sent: Saturday, 13 July 2013 9:33 am
>> To: David Holsgrove
>> Cc: gcc-patches@gcc.gnu.org; Edgar Iglesias; John Williams; Vinod Kathail;
>> Vidhumouli Hunsigida; Nagaraju Mekala; Tom Shui
>> Subject: Re: [Patch, microblaze]: Add TARGET_ASM_OUTPUT_MI_THUNK to
>> support varargs thunk
>>
>> On 03/18/13 05:49, David Holsgrove wrote:
>>> Changelog
>>>
>>> 2013-03-18  David Holsgrove <david.holsgrove@xilinx.com>
>>>
>>>    * gcc/config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk
>>>      and define TARGET_ASM_OUTPUT_MI_THUNK and
>> TARGET_ASM_CAN_OUTPUT_MI_THUNK
>>
>> Sorry it has taken so long to review this patch.
>>
>> The gcc microblaze-xilinx-elf build with this patch fails here:
>>
>> +microblaze_asm_output_mi_thunk (FILE *file, tree thunk_fndecl
>> ATTRIBUTE_UNUSED,
>> +				HOST_WIDE_INT delta, HOST_WIDE_INT
>> vcall_offset,
>> +				tree function)
>> ...
>> +  emit_insn (gen_jump (funexp));
>>
>> (actually, in output_operand() downstream from this statement) while compiling
>> c++98/strstream.cc, with an error that the "%l" operand was not a label.
>>
>> This is the first occasion when this routine is called.
>>
>
> I had sent a separate patch which should have been applied prior to this one which
> extended the jump insn to accommodate branching without the "%l" print operand,
> but I've since reworked our thunk support to avoid needing this second patch.
>
> Please find attached updated patch, and new Changelog entry;	
>
> 2013-07-15  David Holsgrove <david.holsgrove@xilinx.com>
>
>   * gcc/config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk
>     and define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK

This patch causes a number of regressions in the G++ test suite.
For example, abi/covariant{3,4,5}.C, abi/vcall1.C, inherit/covariant{1,2,3,4,17,18}.C,
inherit/thunk{7,10}.C and others.


-- 
Michael Eager	 eager@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077



More information about the Gcc-patches mailing list