GIMPLE_ASM (GNU Compiler Collection (GCC) Internals)

#### 12.8.1 `GIMPLE_ASM` ¶

GIMPLE function: `gasm` *gimple_build_asm_vec `( const char *string, vec<tree, va_gc> *inputs, vec<tree, va_gc> *outputs, vec<tree, va_gc> *clobbers, vec<tree, va_gc> *labels)` ¶

  Build a `GIMPLE_ASM` statement. This statement is used for building in-line assembly constructs. `STRING` is the assembly code. `INPUTS`, `OUTPUTS`, `CLOBBERS` and `LABELS` are the inputs, outputs, clobbered registers and labels.

GIMPLE function: `unsigned` gimple_asm_ninputs `(const gasm *g)` ¶

  Return the number of input operands for `GIMPLE_ASM` `G`.

GIMPLE function: `unsigned` gimple_asm_noutputs `(const gasm *g)` ¶

  Return the number of output operands for `GIMPLE_ASM` `G`.

GIMPLE function: `unsigned` gimple_asm_nclobbers `(const gasm *g)` ¶

  Return the number of clobber operands for `GIMPLE_ASM` `G`.

GIMPLE function: `tree` gimple_asm_input_op `(const gasm *g, unsigned index)` ¶

  Return input operand `INDEX` of `GIMPLE_ASM` `G`.

GIMPLE function: `void` gimple_asm_set_input_op `(gasm *g, unsigned index, tree in_op)` ¶

  Set `IN_OP` to be input operand `INDEX` in `GIMPLE_ASM` `G`.

GIMPLE function: `tree` gimple_asm_output_op `(const gasm *g, unsigned index)` ¶

  Return output operand `INDEX` of `GIMPLE_ASM` `G`.

GIMPLE function: `void` gimple_asm_set_output_op `(gasm *g, unsigned index, tree out_op)` ¶

  Set `OUT_OP` to be output operand `INDEX` in `GIMPLE_ASM` `G`.

GIMPLE function: `tree` gimple_asm_clobber_op `(const gasm *g, unsigned index)` ¶

  Return clobber operand `INDEX` of `GIMPLE_ASM` `G`.

GIMPLE function: `void` gimple_asm_set_clobber_op `(gasm *g, unsigned index, tree clobber_op)` ¶

  Set `CLOBBER_OP` to be clobber operand `INDEX` in `GIMPLE_ASM` `G`.

GIMPLE function: `const char *` gimple_asm_string `(const gasm *g)` ¶

  Return the string representing the assembly instruction in `GIMPLE_ASM` `G`.

GIMPLE function: `bool` gimple_asm_basic_p `(const gasm *g)` ¶

  Return true if `G` is a basic asm rather than an extended asm.

GIMPLE function: `void` gimple_asm_set_basic `(gasm *g, bool basic_p)` ¶

  Mark asm statement `G` as a basic asm or an extended asm based on `BASIC_P`.

GIMPLE function: `bool` gimple_asm_volatile_p `(const gasm *g)` ¶

  Return true if `G` is an asm statement marked volatile.

GIMPLE function: `void` gimple_asm_set_volatile `(gasm *g, bool volatile_p)` ¶

  Mark asm statement `G` as volatile or non-volatile based on `VOLATILE_P`.