[Bug jit/87291] Add support for inline asm to libgccjit

bouanto at zoho dot com gcc-bugzilla@gcc.gnu.org
Wed Jun 3 23:11:59 GMT 2020


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87291

--- Comment #9 from bouanto at zoho dot com ---
Ok, so you would go without a function-like API.

I think you're missing a few parameters here, like the ASM dialect (intel vs
ATT) unless that would be the string ".intel_syntax;" at the start of the
asm_template. Also, the parameter location might be missing.

Does gcc provide a way to specify whether the stack should be aligned properly,
or is it done automatically, or should it be specified manually in asm_template
with a string like ".align 32"?

(In reply to David Malcolm from comment #8)
> Reading the docs for extended asm, I think the API entrypoint would need to
> look something like:
> 
> extern void
> gcc_jit_block_add_extended_asm (gcc_jit_block *block,
> 			        int is_volatile,
> 			        int is_inline,
>                                 const char *asm_template,
> 				int num_output_operands,
> 				gcc_jit_asm_operand **output_operands,
> 				int num_input_operands,
> 				gcc_jit_asm_operand **input_operands,
> 				int num_clobbers,
> 				const char **clobbers,
> 				int num_goto_labels,
> 				gcc_jit_block **goto_labels);
> 
> which is a lot of arguments, and we'd also need a way to create
> gcc_jit_asm_operand instances.
> 
> If there are goto_labels, then the asm is implicitly "goto"-qualified; the
> asm also is treated as potentially falling through to whatever is after it
> in the block; it doesn't terminated its gcc_jit_block.


More information about the Gcc-bugs mailing list