Laurent Vivier
4a4ff4c58f
Remove unnecessary variables for function return value
...
Re-run Coccinelle script scripts/coccinelle/return_directly.cocci
Signed-off-by: Laurent Vivier <lvivier@redhat.com >
ppc part
Acked-by: David Gibson <david@gibson.dropbear.id.au >
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru >
2018-05-20 08:48:13 +03:00
Emilio G. Cota
1d34982155
tcg: fix s/compliment/complement/ typos
...
Signed-off-by: Emilio G. Cota <cota@braap.org >
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru >
2018-05-20 08:25:23 +03:00
Richard Henderson
f29c0b170f
target/xtensa: Honor CPU_DUMP_FPU
...
Acked-by: Max Filippov <jcmvbkbc@gmail.com >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2018-05-18 14:52:38 -07:00
Richard Henderson
a651e033c6
target/unicore32: Honor CPU_DUMP_FPU
...
Cc: Guan Xuetao <gxt@mprc.pku.edu.cn >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2018-05-18 14:52:38 -07:00
Richard Henderson
d13c394c75
target/sparc: Honor CPU_DUMP_FPU
...
Cc: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Cc: Artyom Tarasenko <atar4qemu@gmail.com >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2018-05-18 14:52:38 -07:00
Richard Henderson
af6e5ea28f
target/s390x: Honor CPU_DUMP_FPU
...
Also do not dump both "fpu" and "vector" registers
as the former overlaps the latter.
Cc: Alexander Graf <agraf@suse.de >
Reviewed-by: David Hildenbrand <david@redhat.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2018-05-18 14:52:38 -07:00
Richard Henderson
86ea188012
target/riscv: Honor CPU_DUMP_FPU
...
Cc: Palmer Dabbelt <palmer@sifive.com >
Cc: Sagar Karandikar <sagark@eecs.berkeley.edu >
Cc: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Reviewed-by: Michael Clark <mjc@sifive.com >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2018-05-18 14:52:38 -07:00
Richard Henderson
685f1ce236
target/ppc: Honor CPU_DUMP_FPU
...
Cc: Alexander Graf <agraf@suse.de >
Cc: David Gibson <david@gibson.dropbear.id.au >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2018-05-18 14:52:38 -07:00
Richard Henderson
1cc5af6902
target/mips: Honor CPU_DUMP_FPU
...
Cc: Aurelien Jarno <aurelien@aurel32.net >
Cc: Yongbok Kim <yongbok.kim@mips.com >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2018-05-18 14:52:38 -07:00
Richard Henderson
a68d82b8ad
target/alpha: Honor CPU_DUMP_FPU
...
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2018-05-18 14:52:38 -07:00
Richard Henderson
b94f8f60bd
target/arm: Implement SVE Permute - Extract Group
...
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180516223007.10256-26-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-05-18 17:48:09 +01:00
Richard Henderson
f25a236153
target/arm: Implement SVE Integer Wide Immediate - Predicated Group
...
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180516223007.10256-25-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-05-18 17:48:09 +01:00
Richard Henderson
e1fa1164f3
target/arm: Implement SVE Bitwise Immediate Group
...
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180516223007.10256-24-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-05-18 17:48:09 +01:00
Richard Henderson
24e82e6834
target/arm: Implement SVE Element Count Group
...
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180516223007.10256-23-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-05-18 17:48:09 +01:00
Richard Henderson
a1f233f25f
target/arm: Implement SVE floating-point trig select coefficient
...
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180516223007.10256-22-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-05-18 17:48:09 +01:00
Richard Henderson
0762cd428f
target/arm: Implement SVE floating-point exponential accelerator
...
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180516223007.10256-21-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-05-18 17:48:09 +01:00
Richard Henderson
4b242d9c1b
target/arm: Implement SVE Compute Vector Address Group
...
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180516223007.10256-20-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-05-18 17:48:09 +01:00
Richard Henderson
d9d78dccc8
target/arm: Implement SVE Bitwise Shift - Unpredicated Group
...
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180516223007.10256-19-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-05-18 17:48:09 +01:00
Richard Henderson
96f922cccc
target/arm: Implement SVE Stack Allocation Group
...
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180516223007.10256-18-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-05-18 17:48:09 +01:00
Richard Henderson
9a56c9c3a9
target/arm: Implement SVE Index Generation Group
...
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180516223007.10256-17-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-05-18 17:48:09 +01:00
Richard Henderson
fea98f9c30
target/arm: Implement SVE Integer Arithmetic - Unpredicated Group
...
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180516223007.10256-16-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-05-18 17:48:09 +01:00
Richard Henderson
96a36e4a44
target/arm: Implement SVE Integer Multiply-Add Group
...
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180516223007.10256-15-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-05-18 17:48:08 +01:00
Richard Henderson
afac6d0467
target/arm: Implement SVE Integer Arithmetic - Unary Predicated Group
...
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180516223007.10256-14-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-05-18 17:48:08 +01:00
Richard Henderson
fe7f8dfb2d
target/arm: Implement SVE bitwise shift by wide elements (predicated)
...
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180516223007.10256-13-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-05-18 17:48:08 +01:00
Richard Henderson
27721dbb7a
target/arm: Implement SVE bitwise shift by vector (predicated)
...
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180516223007.10256-12-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-05-18 17:48:08 +01:00
Richard Henderson
ccd841c3d7
target/arm: Implement SVE bitwise shift by immediate (predicated)
...
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180516223007.10256-11-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-05-18 17:48:08 +01:00
Richard Henderson
047cec971d
target/arm: Implement SVE Integer Reduction Group
...
Excepting MOVPRFX, which isn't a reduction. Presumably it is
placed within the group because of its encoding.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180516223007.10256-10-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-05-18 17:48:08 +01:00
Richard Henderson
f97cfd596e
target/arm: Implement SVE Integer Binary Arithmetic - Predicated Group
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180516223007.10256-9-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-05-18 17:48:08 +01:00
Richard Henderson
028e2a7b87
target/arm: Implement SVE Predicate Misc Group
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180516223007.10256-8-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-05-18 17:48:08 +01:00
Richard Henderson
516e246a1a
target/arm: Implement SVE Predicate Logical Operations Group
...
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180516223007.10256-7-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-05-18 17:48:08 +01:00
Richard Henderson
9e18d7a67f
target/arm: Implement SVE predicate test
...
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180516223007.10256-6-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-05-18 17:48:08 +01:00
Richard Henderson
d1822297f6
target/arm: Implement SVE load vector/predicate
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180516223007.10256-5-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-05-18 17:48:08 +01:00
Richard Henderson
39eea56172
target/arm: Implement SVE Bitwise Logical - Unpredicated Group
...
These were the instructions that were stubbed out when
introducing the decode skeleton.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180516223007.10256-4-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-05-18 17:48:08 +01:00
Richard Henderson
38388f7ee3
target/arm: Add SVE decode skeleton
...
Including only 4, as-yet unimplemented, instruction patterns
so that the whole thing compiles.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180516223007.10256-3-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-05-18 17:48:08 +01:00
Richard Henderson
8c71baedb8
target/arm: Introduce translate-a64.h
...
Move some stuff that will be common to both translate-a64.c
and translate-sve.c.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180516223007.10256-2-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-05-18 17:48:07 +01:00
Abdallah Bouassida
200bf5b7ff
target/arm: Add the XML dynamic generation
...
Generate an XML description for the cp-regs.
Register these regs with the gdb_register_coprocessor().
Add arm_gdb_get_sysreg() to use it as a callback to read those regs.
Add a dummy arm_gdb_set_sysreg().
Signed-off-by: Abdallah Bouassida <abdallah.bouassida@lauterbach.com >
Tested-by: Alex Bennée <alex.bennee@linaro.org >
Message-id: 1524153386-3550-4-git-send-email-abdallah.bouassida@lauterbach.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-05-18 17:48:07 +01:00
Abdallah Bouassida
9c513e786d
target/arm: Add "_S" suffix to the secure version of a sysreg
...
This is a preparation for the coming feature of creating dynamically an XML
description for the ARM sysregs.
Add "_S" suffix to the secure version of sysregs that have both S and NS views
Replace (S) and (NS) by _S and _NS for the register that are manually defined,
so all the registers follow the same convention.
Signed-off-by: Abdallah Bouassida <abdallah.bouassida@lauterbach.com >
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Tested-by: Alex Bennée <alex.bennee@linaro.org >
Message-id: 1524153386-3550-3-git-send-email-abdallah.bouassida@lauterbach.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-05-18 17:48:07 +01:00
Abdallah Bouassida
1f16378718
target/arm: Add "ARM_CP_NO_GDB" as a new bit field for ARMCPRegInfo type
...
This is a preparation for the coming feature of creating dynamically an XML
description for the ARM sysregs.
A register has ARM_CP_NO_GDB enabled will not be shown in the dynamic XML.
This bit is enabled automatically when creating CP_ANY wildcard aliases.
This bit could be enabled manually for any register we want to remove from the
dynamic XML description.
Signed-off-by: Abdallah Bouassida <abdallah.bouassida@lauterbach.com >
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Tested-by: Alex Bennée <alex.bennee@linaro.org >
Message-id: 1524153386-3550-2-git-send-email-abdallah.bouassida@lauterbach.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-05-18 17:48:07 +01:00
Richard Henderson
03385dfdaa
fpu/softfloat: Specialize on snan_bit_is_one
...
Only MIPS requires snan_bit_is_one to be variable. While we are
specializing softfloat behaviour, allow other targets to eliminate
this runtime check.
Cc: Aurelien Jarno <aurelien@aurel32.net >
Cc: Yongbok Kim <yongbok.kim@mips.com >
Cc: David Gibson <david@gibson.dropbear.id.au >
Cc: Alexander Graf <agraf@suse.de >
Cc: Guan Xuetao <gxt@mprc.pku.edu.cn >
Tested-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2018-05-17 15:27:15 -07:00
Richard Henderson
d0cfecb50d
target/s390x: Remove floatX_maybe_silence_nan from conversions
...
This is now handled properly by the generic softfloat code.
Cc: Alexander Graf <agraf@suse.de >
Reviewed-by: David Hildenbrand <david@redhat.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2018-05-17 15:27:15 -07:00
Richard Henderson
cab3211261
target/riscv: Remove floatX_maybe_silence_nan from conversions
...
This is now handled properly by the generic softfloat code.
Cc: Palmer Dabbelt <palmer@sifive.com >
Cc: Sagar Karandikar <sagark@eecs.berkeley.edu >
Cc: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Reviewed-by: Michael Clark <mjc@sifive.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2018-05-17 15:27:15 -07:00
Richard Henderson
4accd4a89f
target/mips: Remove floatX_maybe_silence_nan from conversions
...
This is now handled properly by the generic softfloat code.
Cc: Aurelien Jarno <aurelien@aurel32.net >
Cc: Yongbok Kim <yongbok.kim@mips.com >
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2018-05-17 15:27:15 -07:00
Richard Henderson
1c0c951f71
target/m68k: Use floatX_silence_nan when we have already checked for SNaN
...
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Reviewed-by: Laurent Vivier <laurent@vivier.eu >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2018-05-17 15:27:15 -07:00
Richard Henderson
e1cf9adf5b
target/hppa: Remove floatX_maybe_silence_nan from conversions
...
This is now handled properly by the generic softfloat code.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2018-05-17 15:27:15 -07:00
Richard Henderson
a9d173dc60
target/arm: Remove floatX_maybe_silence_nan from conversions
...
This is now handled properly by the generic softfloat code.
Tested-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2018-05-17 15:27:15 -07:00
Richard Henderson
d7ecc062c4
target/arm: Use floatX_silence_nan when we have already checked for SNaN
...
Tested-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2018-05-17 15:27:15 -07:00
Alex Bennée
0acb9e7cb3
target/arm: squash FZ16 behaviour for conversions
...
The ARM ARM specifies FZ16 is suppressed for conversions. Rather than
pushing this logic into the softfloat code we can simply save the FZ
state and temporarily disable it for the softfloat call.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2018-05-17 15:27:15 -07:00
Alex Bennée
486624fcd3
target/arm: convert conversion helpers to fpst/ahp_flag
...
Instead of passing env and leaving it up to the helper to get the
right fpstatus we pass it explicitly. There was already a get_fpstatus
helper for neon for the 32 bit code. We also add an get_ahp_flag() for
passing the state of the alternative FP16 format flag. This leaves
scope for later tracking the AHP state in translation flags.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2018-05-17 15:27:09 -07:00
Peter Maydell
61126a8b4b
Merge remote-tracking branch 'remotes/ehabkost/tags/x86-next-pull-request' into staging
...
x86 queue, 2018-05-15
* KnightsMill CPU model
* CLDEMOTE(Demote Cache Line) cpu feature
* pc-i440fx-2.13 and pc-q35-2.13 machine-types
* Add model-specific cache information to EPYC CPU model
# gpg: Signature made Tue 15 May 2018 22:53:12 BST
# gpg: using RSA key 2807936F984DC5A6
# gpg: Good signature from "Eduardo Habkost <ehabkost@redhat.com >"
# Primary key fingerprint: 5A32 2FD5 ABC4 D3DB ACCF D1AA 2807 936F 984D C5A6
* remotes/ehabkost/tags/x86-next-pull-request:
i386: Add new property to control cache info
pc: add 2.13 machine types
i386: Initialize cache information for EPYC family processors
i386: Add cache information in X86CPUDefinition
i386: Helpers to encode cache information consistently
x86/cpu: Enable CLDEMOTE(Demote Cache Line) cpu feature
i386: add KnightsMill cpu model
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-05-17 09:57:55 +01:00
Babu Moger
ab8f992e3e
i386: Add new property to control cache info
...
The property legacy-cache will be used to control the cache information.
If user passes "-cpu legacy-cache" then older information will
be displayed even if the hardware supports new information. Otherwise
use the statically loaded cache definitions if available.
Renamed the previous cache structures to legacy_*. If there is any change in
the cache information, then it needs to be initialized in builtin_x86_defs.
Signed-off-by: Babu Moger <babu.moger@amd.com >
Tested-by: Geoffrey McRae <geoff@hostfission.com >
Message-Id: <20180514164156.27034-3-babu.moger@amd.com >
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com >
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com >
2018-05-15 11:33:33 -03:00