aboutsummaryrefslogtreecommitdiff
path: root/gas/doc
diff options
context:
space:
mode:
authorDominik Vogt <vogt@linux.vnet.ibm.com>2015-09-29 13:22:07 +0100
committerNick Clifton <nickc@redhat.com>2015-09-29 13:22:07 +0100
commit7ecc513a44095d614f10e89c67d9be5826abacf9 (patch)
tree150a49774f29ce8a95989942d9780c3edc10bf17 /gas/doc
parent56e6cf80bd4be6dc95ed9b84b633e3c11ae8c86b (diff)
downloadgdb-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.texi30
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