1889 Commits

Author SHA1 Message Date
Lioncash
fe7c21b687
frontend/ir/cond: Remove unused invert() function
This is no longer used by anything in the codebase, so it can be
removed.
2019-04-16 21:37:12 -04:00
Merry
c8446bda2b
Merge pull request #480 from lioncash/info
common/fp/info: Make half-precision info struct functions return correctly sized types
2019-04-15 12:14:30 +01:00
Lioncash
2c2fdb435c
common/fp/info: Make half-precision info struct functions return correctly sized types
While initially done to potentially prevent creating bugs due to C++
having a silly type-promotion mechanism involving types < sizeof(int)
and unsignedness, given that the bulk of these functions' usages
are on exit paths, these can return the correct type to avoid the need
to cast at every usage point.
2019-04-15 04:55:00 -04:00
Merry
973c87445e
Merge pull request #479 from lioncash/rsqrts
A64: Handle half-precision variants of FRSQRTS
2019-04-15 08:28:30 +01:00
Lioncash
28e0f4fe59
A64: Implement FRSQRTS' half-precision vector variant 2019-04-14 21:12:54 -04:00
Lioncash
6f7a370cfb
A64: Implement FRSQRTS' half-precision scalar variant
With the necessary machinery in place, we can now handle the
half-precision variant.
2019-04-14 21:12:54 -04:00
Lioncash
793b3b38d4
frontend/ir_emitter: Add half-precision opcode variant of FPVectorRSqrtStepFused 2019-04-14 21:12:54 -04:00
Lioncash
db4d134726
frontend/ir_emitter: Add half-precision opcode variant of FPRSqrtStepFused 2019-04-14 21:12:49 -04:00
Lioncash
cff4394717
common/fp/op/FPRSqrtStepFused: Add half-precision specialization for FPRSqrtStepFused 2019-04-14 20:51:58 -04:00
Merry
eea732febf
Merge pull request #478 from lioncash/stepfused
A64: Handle half-precision variants of FRECPE and FRECPS
2019-04-14 12:40:18 +01:00
Merry
0c62dba214
Merge pull request #477 from lioncash/rsqrt
A64: Handle half-precision variants of FRSQRTE
2019-04-14 11:21:05 +01:00
Lioncash
b67cc72213
A64: Implement half-precision vector variant of FRECPE 2019-04-14 06:14:20 -04:00
Lioncash
4b3f5b8a30
A64: Implement half-precision scalar variant of FRECPE 2019-04-14 06:14:20 -04:00
Lioncash
4519e4641c
A64: Implement half-precision vector variant of FRECPS 2019-04-14 06:14:19 -04:00
Lioncash
abcf1a6e09
A64: Implement half-precision scalar variant of FRECPS 2019-04-14 06:14:19 -04:00
Lioncash
c55db96819
frontend/ir_emitter: Add half-precision opcode for FPVectorRecipEstimate 2019-04-14 06:14:19 -04:00
Lioncash
1615ba0adc
frontend/ir_emitter: Add half-precision opcode for FPRecipEstimate 2019-04-14 06:14:19 -04:00
Lioncash
e93161e25b
common/fp/op: Add half-precision specialization for FPRecipEstimate 2019-04-14 06:14:19 -04:00
Lioncash
4ae0a27ea4
frontend/ir_emitter: Add half-precision opcode for FPVectorRecipStepFused 2019-04-14 06:14:19 -04:00
Lioncash
065143b395
frontend/ir_emitter: Add half-precision opcode for FPRecipStepFused 2019-04-14 06:14:18 -04:00
Lioncash
408bbfb766
common/fp/op: Add half-precision specialization for FPRecipStepFused 2019-04-14 06:13:43 -04:00
Lioncash
e35352b69e
A64: Implement half-precision variant of FRSQRTE's vector variant 2019-04-14 06:12:20 -04:00
Lioncash
0f677744bb
A64: Implement half-precision variant of FRSQRTE's scalar variant 2019-04-14 06:12:20 -04:00
Lioncash
5edbb415c5
frontend/ir_emitter: Add half-precision opcode variant for FPVectorRSqrtEstimate 2019-04-14 06:12:20 -04:00
Lioncash
f1e556632c
frontend/ir_emitter: Add half-precision opcode variant for FPRSqrtEstimate 2019-04-14 06:11:45 -04:00
Lioncash
9c9087ea47
common/fp/op/FPRSqrtEstimate: Add half-precision specialization for FPRSqrtEstimate 2019-04-14 06:10:27 -04:00
Merry
5ae8e4e043
Merge pull request #476 from lioncash/frint
A64: Handle half-precision variants of FRINT* instructions
2019-04-14 10:57:09 +01:00
Lioncash
f8fb10289a
A64: Enable half-precision vector FRINT* variants 2019-04-13 18:05:00 -04:00
Lioncash
7c5cc15f4e
A64: Enable half-precision variants of floating-point FRINT* variants
With all the backing machinery in place, we can remove the fallback
check for half-precision.
2019-04-13 17:54:36 -04:00
Lioncash
95a96b32c5
frontend/microinstruction: Add FPVectorRoundInt types to ReadsFromAndWritesToFPSRCumulativeExceptionBits()
All variants were previously missing from this.
2019-04-13 17:51:13 -04:00
Lioncash
722daae0d4
frontend/ir_emitter: Add half-precision variant of FPVectorRoundInt 2019-04-13 17:49:04 -04:00
Lioncash
8243705134
frontend/ir_emitter: Add half-precision variant of FPRoundInt 2019-04-13 17:44:37 -04:00
Lioncash
590388b9ec
fp/op/FPRoundInt: Add half-precision specialization of FPRoundInt 2019-04-13 17:37:45 -04:00
Merry
b34f42575d
Merge pull request #475 from lioncash/muladd
A64: Enable half-precision variants of floating-point multiply-add instructions
2019-04-13 14:30:03 +01:00
Merry
2218912292
A64/location_descriptor: Ensure FZ16 is included in the FPCR mask 2019-04-13 08:05:04 -04:00
Merry
9faf1bdfd4
Merge pull request #474 from lioncash/bracing
load_store_*: Make bracing consistent and variables const where applicable
2019-04-13 10:53:21 +01:00
Merry
5f351a669c
Merge pull request #473 from lioncash/sqshlu
A64: Implement SQSHLU
2019-04-13 08:31:17 +01:00
Lioncash
a935f35553
A64: Implement FMLA/FMLS' half-precision vector indexed variants 2019-04-13 02:19:06 -04:00
Lioncash
caaa04cba1
A64: Implement FMLA/FMLS' half-precision scalar indexed variants 2019-04-13 02:11:44 -04:00
Lioncash
894169dc7a
A64: Implement half-precision vector variants of FMLA/FMLS 2019-04-13 01:48:22 -04:00
Lioncash
278c7ae744
ir/frontend: Add half-precision opcode for FPVectorMulAdd 2019-04-13 01:42:35 -04:00
Lioncash
0eb6412c4d
A64: Enable half-precision floating point variants of FP data-processing three register instructions
This handles half-precision floating point for:

- FMADD
- FMSUB
- FNMADD
- FNMSUB
2019-04-13 01:35:32 -04:00
Lioncash
13b41525cb
frontend/ir_emitter: Add half-precision opcode for FPMulAdd 2019-04-13 00:18:09 -04:00
Lioncash
2ae0c4807a
fp/op/FPMulAdd: Add half-precision floating-point specialization 2019-04-13 00:07:34 -04:00
Lioncash
94ac9becda
load_store_*: Make bracing consistent and variables const where applicable
Makes bracing consistent, and variables const where applicable to be
consistent with the rest of the codebase.

In most bracing cases, they'd need to be added to conditionals that
would involve checking stack pointer alignment in the future anyways.
2019-04-12 23:51:36 -04:00
Lioncash
be3fc0f9ff
A64: Implement SQSHLU's scalar variant 2019-04-12 19:49:33 -04:00
Lioncash
508c77c3ee
A64: Implement SQSHLU's vector variant
The vector shift by immediate category is now fully implemented.
2019-04-12 19:45:20 -04:00
Lioncash
31867874de
frontend/ir_emitter: Add opcodes for signed saturated left shifts with unsigned saturation 2019-04-12 19:44:23 -04:00
Merry
5e77d110cc
Merge pull request #472 from lioncash/exception
general: Mark hash functions as noexcept
2019-04-12 21:33:47 +01:00
Merry
ed8c218076
Merge pull request #471 from lioncash/sqrdmulh
A64: Implement SQRDMULH's scalar vector variant
2019-04-12 20:29:22 +01:00