- Timestamp:
- Jul 26, 2024 9:42:19 AM (6 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-4.c32
r105514 r105516 4188 4188 4189 4189 4190 #if 04191 4190 /* 4192 4191 * [V]MULPS. … … 4202 4201 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4203 4202 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4204 /*mask */ X86_MXCSR_XCPT_MASK, 4205 /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST, 4206 /*flags */ 0, 0 }, 4203 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 4204 /*128:out */ X86_MXCSR_XCPT_MASK, 4205 /*256:out */ X86_MXCSR_XCPT_MASK, 4206 /*xcpt? */ false, false }, 4207 4207 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4208 4208 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4209 4209 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4210 /*mask */ ~X86_MXCSR_XCPT_MASK, 4211 /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST, 4212 /*flags */ 0, 0 }, 4210 /*mxcsr:in */ 0, 4211 /*128:out */ 0, 4212 /*256:out */ 0, 4213 /*xcpt? */ false, false }, 4213 4214 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4214 4215 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4215 4216 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4216 /*mask */ ~X86_MXCSR_XCPT_MASK, 4217 /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_UP, 4218 /*flags */ 0, 0 }, 4217 /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 4218 /*128:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 4219 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 4220 /*xcpt? */ false, false }, 4219 4221 { { /*src2 */ { FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1) } }, 4220 4222 { /*src1 */ { FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1) } }, 4221 4223 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4222 /*mask */ ~X86_MXCSR_XCPT_MASK, 4223 /*daz,fz,rc*/ X86_MXCSR_DAZ, 0, X86_MXCSR_RC_ZERO, 4224 /*flags */ 0, 0 }, 4224 /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO, 4225 /*128:out */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO, 4226 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO, 4227 /*xcpt? */ false, false }, 4225 4228 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1) } }, 4226 4229 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1) } }, 4227 4230 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4228 /*mask */ ~X86_MXCSR_XCPT_MASK, 4229 /*daz,fz,rc*/ 0, X86_MXCSR_FZ, X86_MXCSR_RC_ZERO, 4230 /*flags */ 0, 0 }, 4231 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 4232 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 4233 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 4234 /*xcpt? */ false, false }, 4231 4235 { { /*src2 */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1) } }, 4232 4236 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1) } }, 4233 4237 { /* => */ { FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0) } }, 4234 /*mask */ X86_MXCSR_XCPT_MASK, 4235 /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_DOWN, 4236 /*flags */ 0, 0 }, 4238 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO, 4239 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO, 4240 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO, 4241 /*xcpt? */ false, false }, 4237 4242 { { /*src2 */ { FP32_NORM_V0(0), FP32_NORM_V1(1), FP32_0(0), FP32_NORM_V3(1), FP32_0(0), FP32_NORM_V1(1), FP32_NORM_V4(0), FP32_NORM_V3(0) } }, 4238 4243 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_NORM_V2(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1) } }, 4239 4244 { /* => */ { FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1) } }, 4240 /*mask */ X86_MXCSR_XCPT_MASK, 4241 /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_DOWN, 4242 /*flags */ 0, 0 }, 4245 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 4246 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 4247 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 4248 /*xcpt? */ false, false }, 4243 4249 /* 4244 4250 * Infinity. … … 4247 4253 { /*src1 */ { FP32_INF(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4248 4254 { /* => */ { FP32_INF(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4249 /*mask */ ~X86_MXCSR_IM, 4250 /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST, 4251 /*flags */ 0, 0 }, 4255 /*mxcsr:in */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM, 4256 /*128:out */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM, 4257 /*256:out */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM, 4258 /*xcpt? */ false, false }, 4252 4259 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_INF(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4253 4260 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_INF(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4254 4261 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_INF(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4255 /*mask */ X86_MXCSR_XCPT_MASK, 4256 /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST, 4257 /*flags */ 0, 0 }, 4262 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 4263 /*128:out */ X86_MXCSR_XCPT_MASK, 4264 /*256:out */ X86_MXCSR_XCPT_MASK, 4265 /*xcpt? */ false, false }, 4258 4266 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_INF(0), FP32_0(1), FP32_0(1), FP32_0(0) } }, 4259 4267 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_INF(1), FP32_0(1), FP32_0(1), FP32_0(0) } }, 4260 4268 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_INF(1), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4261 /*mask */ X86_MXCSR_XCPT_MASK, 4262 /*daz,fz,rc*/ 0, X86_MXCSR_FZ, X86_MXCSR_RC_NEAREST, 4263 /*flags */ 0, 0 }, 4269 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_XCPT_MASK, 4270 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_XCPT_MASK, 4271 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_XCPT_MASK, 4272 /*xcpt? */ false, false }, 4264 4273 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_INF(0) } }, 4265 4274 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_INF(1) } }, 4266 4275 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_INF(1) } }, 4267 /*mask */ ~X86_MXCSR_XCPT_MASK, 4268 /*daz,fz,rc*/ 0, X86_MXCSR_FZ, X86_MXCSR_RC_NEAREST, 4269 /*flags */ 0, 0 }, 4276 /*mxcsr:in */ X86_MXCSR_FZ, 4277 /*128:out */ X86_MXCSR_FZ, 4278 /*256:out */ X86_MXCSR_FZ, 4279 /*xcpt? */ false, false }, 4270 4280 { { /*src2 */ { FP32_INF(0), FP32_INF(1), FP32_0(0), FP32_INF(1), FP32_0(1), FP32_INF(1), FP32_INF(1), FP32_INF(0) } }, 4271 4281 { /*src1 */ { FP32_INF(1), FP32_INF(0), FP32_0(1), FP32_INF(0), FP32_0(0), FP32_INF(0), FP32_INF(0), FP32_INF(1) } }, 4272 4282 { /* => */ { FP32_INF(1), FP32_INF(1), FP32_0(1), FP32_INF(1), FP32_0(1), FP32_INF(1), FP32_INF(1), FP32_INF(1) } }, 4273 /*mask */ ~X86_MXCSR_XCPT_MASK, 4274 /*daz,fz,rc*/ 0, X86_MXCSR_FZ, X86_MXCSR_RC_ZERO, 4275 /*flags */ 0, 0 }, 4283 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 4284 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 4285 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 4286 /*xcpt? */ false, false }, 4287 #if 0 4276 4288 /* 4277 4289 * Normals. … … 4452 4464 /*flags */ X86_MXCSR_IE, X86_MXCSR_IE }, 4453 4465 /** @todo Underflow, Precision; Rounding, FZ etc. */ 4466 #endif 4454 4467 }; 4455 4468 … … 4501 4514 4502 4515 4516 #if 0 4503 4517 /* 4504 4518 * [V]MULPD. … … 5285 5299 { "[v]subpd", bs3CpuInstr4_v_subpd, 0 }, 5286 5300 { "[v]subss", bs3CpuInstr4_v_subss, 0 }, 5301 { "[v]mulps", bs3CpuInstr4_v_mulps, 0 }, 5287 5302 # if 0 5288 { "[v]mulps", bs3CpuInstr4_v_mulps, 0 },5289 5303 { "[v]mulpd", bs3CpuInstr4_v_mulpd, 0 }, 5290 5304 { "[v]mulss", bs3CpuInstr4_v_mulss, 0 },
Note:
See TracChangeset
for help on using the changeset viewer.