| " Syntax highlighting rules for RTL dump files (for Vim). |
| " |
| " Copyright (C) 2018 Free Software Foundation, Inc. |
| " |
| " This script is free software; you can redistribute it and/or modify |
| " it under the terms of the GNU General Public License as published by |
| " the Free Software Foundation; either version 3, or (at your option) |
| " any later version |
| |
| |
| " Do not continue, if syntax is already enabled in current buffer. |
| if exists("b:current_syntax") |
| finish |
| endif |
| |
| " General-purpose comments. |
| syn match rtlComment ";;.*$" |
| |
| syn keyword rtlInstruction debug_expr insn_list int_list sequence |
| \ address debug_insn insn expr_list |
| \ jump_table_data barrier code_label |
| \ cond_exec parallel asm_input asm_operands |
| \ unspec unspec_volatile addr_vec |
| \ addr_diff_vec prefetch set use clobber |
| \ call return simple_return eh_return |
| \ trap_if scratch strict_low_part concat concatn |
| \ mem label_ref symbol_ref cc0 compare plus minus |
| \ neg mult ss_mult us_mult div ss_div us_div mod |
| \ udiv umod and ior xor not ashift rotate ashiftrt |
| \ lshiftrt rotatert smin smax umin umax pre_dec |
| \ pre_inc post_dec post_inc pre_modify post_modify |
| \ unordered ordered uneq unge ungt unle unlt ltgt sign_extend |
| \ zero_extend truncate float_extend float_truncate |
| \ float fix unsigned_float unsigned_fix fract_convert |
| \ unsigned_fract_convert sat_fract unsigned_sat_fract |
| \ abs sqrt bswap ffs clrsb clz ctz popcount parity |
| \ sign_extract zero_extract high lo_sum vec_merge |
| \ vec_select vec_concat vec_duplicate vec_series ss_plus |
| \ us_plus ss_minus ss_neg us_neg ss_abs ss_ashift |
| \ us_ashift us_minus ss_truncate us_truncate fma |
| \ entry_value exclusion_set presence_set final_presence_set |
| \ absence_set final_absence_set automata_option attr set_attr |
| \ set_attr_alternative eq_attr eq_attr_alt attr_flag cond |
| syn keyword rtlConditional call_insn jump_insn if_then_else |
| \ eq ne gt gtu lt ltu ge geu le leu |
| syn keyword rtlNote note barrier code_label |
| syn keyword rtlVariableLoation var_location |
| syn keyword rtlPcRegister pc |
| |
| syn keyword rtlModes VOID BLK BI QI HI SI DI TI SF DF CC QQ HQ SQ |
| \ DQ TQ UQQ UHQ USQ UDQ UTQ HA SA DA TA UHA |
| \ USA UDA UTA SD DD TD |
| |
| " String literals |
| syn region rtlString start=/\v"/ skip=/\v\\./ end=/\v"/ |
| |
| syn match rtlNoteInsn "NOTE_INSN_[A-Z_]*" |
| syn match rtlIntegerConstant "\vconst_int -?\d+" |
| syn match rtlFloatConstant "\vconst_double:[A-Z]+ -?\d*\.\d+(e\+\d+)?" |
| syn match rtlRegister "\vreg(\/[a-z])?:[A-Z0-9]+ \d+ [a-z0-9]+" |
| syn match rtlLocation /\v"[^"]*":\d+/ |
| |
| hi def link rtlInstruction Statement |
| hi def link rtlConditional Conditional |
| hi def link rtlNote Debug |
| hi def link rtlNoteInsn Debug |
| hi def link rtlIntegerConstant Number |
| hi def link rtlFloatConstant Number |
| hi def link rtlRegister Type |
| hi def link rtlPcRegister Type |
| hi def link rtlModes Type |
| hi def link rtlVariableLoation Debug |
| hi def link rtlComment Comment |
| hi def link rtlLocation Debug |
| hi def link rtlString String |
| |
| let b:current_syntax = "gcc-rtl" |