summaryrefslogtreecommitdiff
path: root/gcc/final.c
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2018-01-06 22:29:56 -0800
committerH.J. Lu <hjl.tools@gmail.com>2018-01-07 08:56:08 -0800
commitdd56ccab96b033571f2c1d91804bc43449e46fcc (patch)
tree9ff5e62887a6565c2cc1d4e2e2e2ddea15c39abc /gcc/final.c
parent7664b9be7b9c8fd3a3d25cbe7ac817e6869fb3d4 (diff)
downloadgcc-dd56ccab96b033571f2c1d91804bc43449e46fcc.tar.gz
x86: Add 'V' register operand modifierhjl/indirect/loop
Add 'V', a special modifier which prints the name of the full integer register without '%'. For extern void (*func_p) (void); void foo (void) { asm ("call __x86_indirect_thunk_%V0" : : "a" (func_p)); } it generates: foo: movq func_p(%rip), %rax call __x86_indirect_thunk_rax ret gcc/ * config/i386/i386.c (print_reg): Print the name of the full integer register without '%'. (ix86_print_operand): Handle 'V'. * doc/extend.texi: Document 'V' modifier. gcc/testsuite/ * gcc.target/i386/indirect-thunk-register-4.c: New test.
Diffstat (limited to 'gcc/final.c')
0 files changed, 0 insertions, 0 deletions