diff options
author | Dominik Vogt <vogt@linux.vnet.ibm.com> | 2015-09-29 13:22:07 +0100 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2015-09-29 13:22:07 +0100 |
commit | 7ecc513a44095d614f10e89c67d9be5826abacf9 (patch) | |
tree | 150a49774f29ce8a95989942d9780c3edc10bf17 /gas/doc | |
parent | 56e6cf80bd4be6dc95ed9b84b633e3c11ae8c86b (diff) | |
download | gdb-7ecc513a44095d614f10e89c67d9be5826abacf9.zip gdb-7ecc513a44095d614f10e89c67d9be5826abacf9.tar.gz gdb-7ecc513a44095d614f10e89c67d9be5826abacf9.tar.bz2 |
Add support for extensions in the .machine pseudoop on S/390, e.g. ".machine zEC12+nohtm+vx"
gas * doc/c-s390.texi: Add documentation.
Add missing code markup.
* config/tc-s390.c (current_flags): New static variable.
(s390_parse_cpu): Parse cpu flags a la "+nohtm" etc.
(s390_setup_opcodes): Use cpu flags to determine the set of opcodes.
Fix indentation.
(md_parse_option): Call s390_parse_cpu with the new signature.
(s390_machine): Likewise.
Keep track of current_flags.
Simplify code a bit.
undefine MAX_HISTORY at end of function.
(s390_machinemode): undefine MAX_HISTORY at end of function.
Update an error message.
tests * gas/s390/s390.exp: Add new tests.
* gas/s390/machine-parsing-1.s: New test file.
* gas/s390/machine-parsing-1.l: Likewise.
* gas/s390/machine-parsing-2.s: Likewise.
* gas/s390/machine-parsing-2.l: Likewise.
* gas/s390/machine-parsing-3.s: Likewise.
* gas/s390/machine-parsing-3.l: Likewise.
* gas/s390/machine-parsing-4.s: Likewise.
* gas/s390/machine-parsing-4.l: Likewise.
* gas/s390/machine-parsing-5.s: Likewise.
* gas/s390/machine-parsing-5.l: Likewise.
* gas/s390/machine-parsing-6.s: Likewise.
* gas/s390/machine-parsing-6.l: Likewise.
opcode * s390.h (S390_INSTR_FLAG_HTM): New flag.
(S390_INSTR_FLAG_VX): New flag.
(S390_INSTR_FLAG_FACILITY_MASK): New flag mask.
opcodes * s390-mkopc.c (main): Parse htm and vx flag.
* s390-opc.txt: Mark instructions from the hardware transactional
memory and vector facilities with the "htm"/"vx" flag.
Diffstat (limited to 'gas/doc')
-rw-r--r-- | gas/doc/c-s390.texi | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/gas/doc/c-s390.texi b/gas/doc/c-s390.texi index ec36188..5a6e3a7 100644 --- a/gas/doc/c-s390.texi +++ b/gas/doc/c-s390.texi @@ -865,15 +865,27 @@ This directive causes the current contents of the literal pool to be dumped to the current location (@ref{s390 Literal Pool Entries}). @cindex @code{.machine} directive, s390 -@item .machine string -This directive allows you to change the machine for which code is -generated. @code{string} may be any of the @code{-march=} selection -options (without the -march=), @code{push}, or @code{pop}. -@code{.machine push} saves the currently selected cpu, which may be -restored with @code{.machine pop}. Be aware that the cpu string has -to be put into double quotes in case it contains characters not -appropriate for identifiers. So you have to write @code{"z9-109"} -instead of just @code{z9-109}. +@item .machine @var{STRING}[+@var{EXTENSION}]@dots{} + +This directive allows changing the machine for which code is +generated. @code{string} may be any of the @code{-march=} +selection options, or @code{push}, or @code{pop}. @code{.machine +push} saves the currently selected cpu, which may be restored with +@code{.machine pop}. Be aware that the cpu string has to be put +into double quotes in case it contains characters not appropriate +for identifiers. So you have to write @code{"z9-109"} instead of +just @code{z9-109}. Extensions can be specified after the cpu +name, separated by plus charaters. Valid extensions are: +@code{htm}, +@code{nohtm}, +@code{vx}, +@code{novx}. +They extend the basic instruction set with features from a higher +cpu level, or remove support for a feature from the given cpu +level. + +Example: @code{z13+nohtm} allows all instructions of the z13 cpu +except instructions from the HTM facility. @cindex @code{.machinemode} directive, s390 @item .machinemode string |