1159b3361Sopenharmony_ci; 2159b3361Sopenharmony_ci; (C) Frank Klemm 1995,99,2000 3159b3361Sopenharmony_ci; Dedicated to the LAME project 4159b3361Sopenharmony_ci; 5159b3361Sopenharmony_ci; 6159b3361Sopenharmony_ci %include "nasm.h" 7159b3361Sopenharmony_ci 8159b3361Sopenharmony_ci segment_code 9159b3361Sopenharmony_ci 10159b3361Sopenharmony_ci; float_t scalar04_float32_i387 ( 11159b3361Sopenharmony_ci; const float32_t* const p, 12159b3361Sopenharmony_ci; const float32_t* const q ); 13159b3361Sopenharmony_ci 14159b3361Sopenharmony_ciproc scalar04_float32_i387 15159b3361Sopenharmony_ci%$p arg 4 16159b3361Sopenharmony_ci%$q arg 4 17159b3361Sopenharmony_ci;;; alloc 18159b3361Sopenharmony_ci 19159b3361Sopenharmony_ci mov eax,[sp(%$p)] 20159b3361Sopenharmony_ci mov edx,[sp(%$q)] 21159b3361Sopenharmony_ci fld dword [eax] 22159b3361Sopenharmony_ci fmul dword [edx] 23159b3361Sopenharmony_ci fld dword [eax + 4] 24159b3361Sopenharmony_ci fmul dword [edx + 4] 25159b3361Sopenharmony_ci faddp st1,st0 26159b3361Sopenharmony_ci fld dword [eax + 8] 27159b3361Sopenharmony_ci fmul dword [edx + 8] 28159b3361Sopenharmony_ci faddp st1,st0 29159b3361Sopenharmony_ci fld dword [eax + 12] 30159b3361Sopenharmony_ci fmul dword [edx + 12] 31159b3361Sopenharmony_ci faddp st1,st0 32159b3361Sopenharmony_ciendproc 33159b3361Sopenharmony_ci 34159b3361Sopenharmony_ci 35159b3361Sopenharmony_ciproc scalar08_float32_i387 36159b3361Sopenharmony_ci%$p arg 4 37159b3361Sopenharmony_ci%$q arg 4 38159b3361Sopenharmony_ci;;; alloc 39159b3361Sopenharmony_ci 40159b3361Sopenharmony_ci mov eax,[sp(%$p)] 41159b3361Sopenharmony_ci mov edx,[sp(%$q)] 42159b3361Sopenharmony_ci fld dword [eax] 43159b3361Sopenharmony_ci fmul dword [edx] 44159b3361Sopenharmony_ci fld dword [eax + 4] 45159b3361Sopenharmony_ci fmul dword [edx + 4] 46159b3361Sopenharmony_ci faddp st1,st0 47159b3361Sopenharmony_ci fld dword [eax + 8] 48159b3361Sopenharmony_ci fmul dword [edx + 8] 49159b3361Sopenharmony_ci faddp st1,st0 50159b3361Sopenharmony_ci fld dword [eax + 12] 51159b3361Sopenharmony_ci fmul dword [edx + 12] 52159b3361Sopenharmony_ci faddp st1,st0 53159b3361Sopenharmony_ci fld dword [eax + 16] 54159b3361Sopenharmony_ci fmul dword [edx + 16] 55159b3361Sopenharmony_ci faddp st1,st0 56159b3361Sopenharmony_ci fld dword [eax + 20] 57159b3361Sopenharmony_ci fmul dword [edx + 20] 58159b3361Sopenharmony_ci faddp st1,st0 59159b3361Sopenharmony_ci fld dword [eax + 24] 60159b3361Sopenharmony_ci fmul dword [edx + 24] 61159b3361Sopenharmony_ci faddp st1,st0 62159b3361Sopenharmony_ci fld dword [eax + 28] 63159b3361Sopenharmony_ci fmul dword [edx + 28] 64159b3361Sopenharmony_ci faddp st1,st0 65159b3361Sopenharmony_ciendproc 66159b3361Sopenharmony_ci 67159b3361Sopenharmony_ci 68159b3361Sopenharmony_ciproc scalar12_float32_i387 69159b3361Sopenharmony_ci%$p arg 4 70159b3361Sopenharmony_ci%$q arg 4 71159b3361Sopenharmony_ci;;; alloc 72159b3361Sopenharmony_ci 73159b3361Sopenharmony_ci mov eax,[sp(%$p)] 74159b3361Sopenharmony_ci mov edx,[sp(%$q)] 75159b3361Sopenharmony_ci fld dword [eax] 76159b3361Sopenharmony_ci fmul dword [edx] 77159b3361Sopenharmony_ci fld dword [eax + 4] 78159b3361Sopenharmony_ci fmul dword [edx + 4] 79159b3361Sopenharmony_ci faddp st1,st0 80159b3361Sopenharmony_ci fld dword [eax + 8] 81159b3361Sopenharmony_ci fmul dword [edx + 8] 82159b3361Sopenharmony_ci faddp st1,st0 83159b3361Sopenharmony_ci fld dword [eax + 12] 84159b3361Sopenharmony_ci fmul dword [edx + 12] 85159b3361Sopenharmony_ci faddp st1,st0 86159b3361Sopenharmony_ci fld dword [eax + 16] 87159b3361Sopenharmony_ci fmul dword [edx + 16] 88159b3361Sopenharmony_ci faddp st1,st0 89159b3361Sopenharmony_ci fld dword [eax + 20] 90159b3361Sopenharmony_ci fmul dword [edx + 20] 91159b3361Sopenharmony_ci faddp st1,st0 92159b3361Sopenharmony_ci fld dword [eax + 24] 93159b3361Sopenharmony_ci fmul dword [edx + 24] 94159b3361Sopenharmony_ci faddp st1,st0 95159b3361Sopenharmony_ci fld dword [eax + 28] 96159b3361Sopenharmony_ci fmul dword [edx + 28] 97159b3361Sopenharmony_ci faddp st1,st0 98159b3361Sopenharmony_ci fld dword [eax + 32] 99159b3361Sopenharmony_ci fmul dword [edx + 32] 100159b3361Sopenharmony_ci faddp st1,st0 101159b3361Sopenharmony_ci fld dword [eax + 36] 102159b3361Sopenharmony_ci fmul dword [edx + 36] 103159b3361Sopenharmony_ci faddp st1,st0 104159b3361Sopenharmony_ci fld dword [eax + 40] 105159b3361Sopenharmony_ci fmul dword [edx + 40] 106159b3361Sopenharmony_ci faddp st1,st0 107159b3361Sopenharmony_ci fld dword [eax + 44] 108159b3361Sopenharmony_ci fmul dword [edx + 44] 109159b3361Sopenharmony_ci faddp st1,st0 110159b3361Sopenharmony_ciendproc 111159b3361Sopenharmony_ci 112159b3361Sopenharmony_ci 113159b3361Sopenharmony_ciproc scalar16_float32_i387 114159b3361Sopenharmony_ci%$p arg 4 115159b3361Sopenharmony_ci%$q arg 4 116159b3361Sopenharmony_ci;;; alloc 117159b3361Sopenharmony_ci 118159b3361Sopenharmony_ci mov eax,[sp(%$p)] 119159b3361Sopenharmony_ci mov edx,[sp(%$q)] 120159b3361Sopenharmony_ci fld dword [eax] 121159b3361Sopenharmony_ci fmul dword [edx] 122159b3361Sopenharmony_ci fld dword [eax + 4] 123159b3361Sopenharmony_ci fmul dword [edx + 4] 124159b3361Sopenharmony_ci faddp st1,st0 125159b3361Sopenharmony_ci fld dword [eax + 8] 126159b3361Sopenharmony_ci fmul dword [edx + 8] 127159b3361Sopenharmony_ci faddp st1,st0 128159b3361Sopenharmony_ci fld dword [eax + 12] 129159b3361Sopenharmony_ci fmul dword [edx + 12] 130159b3361Sopenharmony_ci faddp st1,st0 131159b3361Sopenharmony_ci fld dword [eax + 16] 132159b3361Sopenharmony_ci fmul dword [edx + 16] 133159b3361Sopenharmony_ci faddp st1,st0 134159b3361Sopenharmony_ci fld dword [eax + 20] 135159b3361Sopenharmony_ci fmul dword [edx + 20] 136159b3361Sopenharmony_ci faddp st1,st0 137159b3361Sopenharmony_ci fld dword [eax + 24] 138159b3361Sopenharmony_ci fmul dword [edx + 24] 139159b3361Sopenharmony_ci faddp st1,st0 140159b3361Sopenharmony_ci fld dword [eax + 28] 141159b3361Sopenharmony_ci fmul dword [edx + 28] 142159b3361Sopenharmony_ci faddp st1,st0 143159b3361Sopenharmony_ci fld dword [eax + 32] 144159b3361Sopenharmony_ci fmul dword [edx + 32] 145159b3361Sopenharmony_ci faddp st1,st0 146159b3361Sopenharmony_ci fld dword [eax + 36] 147159b3361Sopenharmony_ci fmul dword [edx + 36] 148159b3361Sopenharmony_ci faddp st1,st0 149159b3361Sopenharmony_ci fld dword [eax + 40] 150159b3361Sopenharmony_ci fmul dword [edx + 40] 151159b3361Sopenharmony_ci faddp st1,st0 152159b3361Sopenharmony_ci fld dword [eax + 44] 153159b3361Sopenharmony_ci fmul dword [edx + 44] 154159b3361Sopenharmony_ci faddp st1,st0 155159b3361Sopenharmony_ci fld dword [eax + 48] 156159b3361Sopenharmony_ci fmul dword [edx + 48] 157159b3361Sopenharmony_ci faddp st1,st0 158159b3361Sopenharmony_ci fld dword [eax + 52] 159159b3361Sopenharmony_ci fmul dword [edx + 52] 160159b3361Sopenharmony_ci faddp st1,st0 161159b3361Sopenharmony_ci fld dword [eax + 56] 162159b3361Sopenharmony_ci fmul dword [edx + 56] 163159b3361Sopenharmony_ci faddp st1,st0 164159b3361Sopenharmony_ci fld dword [eax + 60] 165159b3361Sopenharmony_ci fmul dword [edx + 60] 166159b3361Sopenharmony_ci faddp st1,st0 167159b3361Sopenharmony_ciendproc 168159b3361Sopenharmony_ci 169159b3361Sopenharmony_ci 170159b3361Sopenharmony_ciproc scalar20_float32_i387 171159b3361Sopenharmony_ci%$p arg 4 172159b3361Sopenharmony_ci%$q arg 4 173159b3361Sopenharmony_ci;;; alloc 174159b3361Sopenharmony_ci 175159b3361Sopenharmony_ci mov eax,[sp(%$p)] 176159b3361Sopenharmony_ci mov edx,[sp(%$q)] 177159b3361Sopenharmony_ci fld dword [eax] 178159b3361Sopenharmony_ci fmul dword [edx] 179159b3361Sopenharmony_ci fld dword [eax + 4] 180159b3361Sopenharmony_ci fmul dword [edx + 4] 181159b3361Sopenharmony_ci faddp st1,st0 182159b3361Sopenharmony_ci fld dword [eax + 8] 183159b3361Sopenharmony_ci fmul dword [edx + 8] 184159b3361Sopenharmony_ci faddp st1,st0 185159b3361Sopenharmony_ci fld dword [eax + 12] 186159b3361Sopenharmony_ci fmul dword [edx + 12] 187159b3361Sopenharmony_ci faddp st1,st0 188159b3361Sopenharmony_ci fld dword [eax + 16] 189159b3361Sopenharmony_ci fmul dword [edx + 16] 190159b3361Sopenharmony_ci faddp st1,st0 191159b3361Sopenharmony_ci fld dword [eax + 20] 192159b3361Sopenharmony_ci fmul dword [edx + 20] 193159b3361Sopenharmony_ci faddp st1,st0 194159b3361Sopenharmony_ci fld dword [eax + 24] 195159b3361Sopenharmony_ci fmul dword [edx + 24] 196159b3361Sopenharmony_ci faddp st1,st0 197159b3361Sopenharmony_ci fld dword [eax + 28] 198159b3361Sopenharmony_ci fmul dword [edx + 28] 199159b3361Sopenharmony_ci faddp st1,st0 200159b3361Sopenharmony_ci fld dword [eax + 32] 201159b3361Sopenharmony_ci fmul dword [edx + 32] 202159b3361Sopenharmony_ci faddp st1,st0 203159b3361Sopenharmony_ci fld dword [eax + 36] 204159b3361Sopenharmony_ci fmul dword [edx + 36] 205159b3361Sopenharmony_ci faddp st1,st0 206159b3361Sopenharmony_ci fld dword [eax + 40] 207159b3361Sopenharmony_ci fmul dword [edx + 40] 208159b3361Sopenharmony_ci faddp st1,st0 209159b3361Sopenharmony_ci fld dword [eax + 44] 210159b3361Sopenharmony_ci fmul dword [edx + 44] 211159b3361Sopenharmony_ci faddp st1,st0 212159b3361Sopenharmony_ci fld dword [eax + 48] 213159b3361Sopenharmony_ci fmul dword [edx + 48] 214159b3361Sopenharmony_ci faddp st1,st0 215159b3361Sopenharmony_ci fld dword [eax + 52] 216159b3361Sopenharmony_ci fmul dword [edx + 52] 217159b3361Sopenharmony_ci faddp st1,st0 218159b3361Sopenharmony_ci fld dword [eax + 56] 219159b3361Sopenharmony_ci fmul dword [edx + 56] 220159b3361Sopenharmony_ci faddp st1,st0 221159b3361Sopenharmony_ci fld dword [eax + 60] 222159b3361Sopenharmony_ci fmul dword [edx + 60] 223159b3361Sopenharmony_ci faddp st1,st0 224159b3361Sopenharmony_ci fld dword [eax + 64] 225159b3361Sopenharmony_ci fmul dword [edx + 64] 226159b3361Sopenharmony_ci faddp st1,st0 227159b3361Sopenharmony_ci fld dword [eax + 68] 228159b3361Sopenharmony_ci fmul dword [edx + 68] 229159b3361Sopenharmony_ci faddp st1,st0 230159b3361Sopenharmony_ci fld dword [eax + 72] 231159b3361Sopenharmony_ci fmul dword [edx + 72] 232159b3361Sopenharmony_ci faddp st1,st0 233159b3361Sopenharmony_ci fld dword [eax + 76] 234159b3361Sopenharmony_ci fmul dword [edx + 76] 235159b3361Sopenharmony_ci faddp st1,st0 236159b3361Sopenharmony_ciendproc 237159b3361Sopenharmony_ci 238159b3361Sopenharmony_ci 239159b3361Sopenharmony_ciproc scalar24_float32_i387 240159b3361Sopenharmony_ci%$p arg 4 241159b3361Sopenharmony_ci%$q arg 4 242159b3361Sopenharmony_ci;;; alloc 243159b3361Sopenharmony_ci 244159b3361Sopenharmony_ci mov eax,[sp(%$p)] 245159b3361Sopenharmony_ci mov edx,[sp(%$q)] 246159b3361Sopenharmony_ci fld dword [eax] 247159b3361Sopenharmony_ci fmul dword [edx] 248159b3361Sopenharmony_ci fld dword [eax + 4] 249159b3361Sopenharmony_ci fmul dword [edx + 4] 250159b3361Sopenharmony_ci faddp st1,st0 251159b3361Sopenharmony_ci fld dword [eax + 8] 252159b3361Sopenharmony_ci fmul dword [edx + 8] 253159b3361Sopenharmony_ci faddp st1,st0 254159b3361Sopenharmony_ci fld dword [eax + 12] 255159b3361Sopenharmony_ci fmul dword [edx + 12] 256159b3361Sopenharmony_ci faddp st1,st0 257159b3361Sopenharmony_ci fld dword [eax + 16] 258159b3361Sopenharmony_ci fmul dword [edx + 16] 259159b3361Sopenharmony_ci faddp st1,st0 260159b3361Sopenharmony_ci fld dword [eax + 20] 261159b3361Sopenharmony_ci fmul dword [edx + 20] 262159b3361Sopenharmony_ci faddp st1,st0 263159b3361Sopenharmony_ci fld dword [eax + 24] 264159b3361Sopenharmony_ci fmul dword [edx + 24] 265159b3361Sopenharmony_ci faddp st1,st0 266159b3361Sopenharmony_ci fld dword [eax + 28] 267159b3361Sopenharmony_ci fmul dword [edx + 28] 268159b3361Sopenharmony_ci faddp st1,st0 269159b3361Sopenharmony_ci fld dword [eax + 32] 270159b3361Sopenharmony_ci fmul dword [edx + 32] 271159b3361Sopenharmony_ci faddp st1,st0 272159b3361Sopenharmony_ci fld dword [eax + 36] 273159b3361Sopenharmony_ci fmul dword [edx + 36] 274159b3361Sopenharmony_ci faddp st1,st0 275159b3361Sopenharmony_ci fld dword [eax + 40] 276159b3361Sopenharmony_ci fmul dword [edx + 40] 277159b3361Sopenharmony_ci faddp st1,st0 278159b3361Sopenharmony_ci fld dword [eax + 44] 279159b3361Sopenharmony_ci fmul dword [edx + 44] 280159b3361Sopenharmony_ci faddp st1,st0 281159b3361Sopenharmony_ci fld dword [eax + 48] 282159b3361Sopenharmony_ci fmul dword [edx + 48] 283159b3361Sopenharmony_ci faddp st1,st0 284159b3361Sopenharmony_ci fld dword [eax + 52] 285159b3361Sopenharmony_ci fmul dword [edx + 52] 286159b3361Sopenharmony_ci faddp st1,st0 287159b3361Sopenharmony_ci fld dword [eax + 56] 288159b3361Sopenharmony_ci fmul dword [edx + 56] 289159b3361Sopenharmony_ci faddp st1,st0 290159b3361Sopenharmony_ci fld dword [eax + 60] 291159b3361Sopenharmony_ci fmul dword [edx + 60] 292159b3361Sopenharmony_ci faddp st1,st0 293159b3361Sopenharmony_ci fld dword [eax + 64] 294159b3361Sopenharmony_ci fmul dword [edx + 64] 295159b3361Sopenharmony_ci faddp st1,st0 296159b3361Sopenharmony_ci fld dword [eax + 68] 297159b3361Sopenharmony_ci fmul dword [edx + 68] 298159b3361Sopenharmony_ci faddp st1,st0 299159b3361Sopenharmony_ci fld dword [eax + 72] 300159b3361Sopenharmony_ci fmul dword [edx + 72] 301159b3361Sopenharmony_ci faddp st1,st0 302159b3361Sopenharmony_ci fld dword [eax + 76] 303159b3361Sopenharmony_ci fmul dword [edx + 76] 304159b3361Sopenharmony_ci faddp st1,st0 305159b3361Sopenharmony_ci fld dword [eax + 80] 306159b3361Sopenharmony_ci fmul dword [edx + 80] 307159b3361Sopenharmony_ci faddp st1,st0 308159b3361Sopenharmony_ci fld dword [eax + 84] 309159b3361Sopenharmony_ci fmul dword [edx + 84] 310159b3361Sopenharmony_ci faddp st1,st0 311159b3361Sopenharmony_ci fld dword [eax + 88] 312159b3361Sopenharmony_ci fmul dword [edx + 88] 313159b3361Sopenharmony_ci faddp st1,st0 314159b3361Sopenharmony_ci fld dword [eax + 92] 315159b3361Sopenharmony_ci fmul dword [edx + 92] 316159b3361Sopenharmony_ci faddp st1,st0 317159b3361Sopenharmony_ciendproc 318159b3361Sopenharmony_ci 319159b3361Sopenharmony_ci 320159b3361Sopenharmony_ciproc scalar32_float32_i387 321159b3361Sopenharmony_ci%$p arg 4 322159b3361Sopenharmony_ci%$q arg 4 323159b3361Sopenharmony_ci;;; alloc 324159b3361Sopenharmony_ci 325159b3361Sopenharmony_ci mov eax,[sp(%$p)] 326159b3361Sopenharmony_ci mov edx,[sp(%$q)] 327159b3361Sopenharmony_ci fld dword [eax] 328159b3361Sopenharmony_ci fmul dword [edx] 329159b3361Sopenharmony_ci fld dword [eax + 4] 330159b3361Sopenharmony_ci fmul dword [edx + 4] 331159b3361Sopenharmony_ci faddp st1,st0 332159b3361Sopenharmony_ci fld dword [eax + 8] 333159b3361Sopenharmony_ci fmul dword [edx + 8] 334159b3361Sopenharmony_ci faddp st1,st0 335159b3361Sopenharmony_ci fld dword [eax + 12] 336159b3361Sopenharmony_ci fmul dword [edx + 12] 337159b3361Sopenharmony_ci faddp st1,st0 338159b3361Sopenharmony_ci fld dword [eax + 16] 339159b3361Sopenharmony_ci fmul dword [edx + 16] 340159b3361Sopenharmony_ci faddp st1,st0 341159b3361Sopenharmony_ci fld dword [eax + 20] 342159b3361Sopenharmony_ci fmul dword [edx + 20] 343159b3361Sopenharmony_ci faddp st1,st0 344159b3361Sopenharmony_ci fld dword [eax + 24] 345159b3361Sopenharmony_ci fmul dword [edx + 24] 346159b3361Sopenharmony_ci faddp st1,st0 347159b3361Sopenharmony_ci fld dword [eax + 28] 348159b3361Sopenharmony_ci fmul dword [edx + 28] 349159b3361Sopenharmony_ci faddp st1,st0 350159b3361Sopenharmony_ci fld dword [eax + 32] 351159b3361Sopenharmony_ci fmul dword [edx + 32] 352159b3361Sopenharmony_ci faddp st1,st0 353159b3361Sopenharmony_ci fld dword [eax + 36] 354159b3361Sopenharmony_ci fmul dword [edx + 36] 355159b3361Sopenharmony_ci faddp st1,st0 356159b3361Sopenharmony_ci fld dword [eax + 40] 357159b3361Sopenharmony_ci fmul dword [edx + 40] 358159b3361Sopenharmony_ci faddp st1,st0 359159b3361Sopenharmony_ci fld dword [eax + 44] 360159b3361Sopenharmony_ci fmul dword [edx + 44] 361159b3361Sopenharmony_ci faddp st1,st0 362159b3361Sopenharmony_ci fld dword [eax + 48] 363159b3361Sopenharmony_ci fmul dword [edx + 48] 364159b3361Sopenharmony_ci faddp st1,st0 365159b3361Sopenharmony_ci fld dword [eax + 52] 366159b3361Sopenharmony_ci fmul dword [edx + 52] 367159b3361Sopenharmony_ci faddp st1,st0 368159b3361Sopenharmony_ci fld dword [eax + 56] 369159b3361Sopenharmony_ci fmul dword [edx + 56] 370159b3361Sopenharmony_ci faddp st1,st0 371159b3361Sopenharmony_ci fld dword [eax + 60] 372159b3361Sopenharmony_ci fmul dword [edx + 60] 373159b3361Sopenharmony_ci faddp st1,st0 374159b3361Sopenharmony_ci fld dword [eax + 64] 375159b3361Sopenharmony_ci fmul dword [edx + 64] 376159b3361Sopenharmony_ci faddp st1,st0 377159b3361Sopenharmony_ci fld dword [eax + 68] 378159b3361Sopenharmony_ci fmul dword [edx + 68] 379159b3361Sopenharmony_ci faddp st1,st0 380159b3361Sopenharmony_ci fld dword [eax + 72] 381159b3361Sopenharmony_ci fmul dword [edx + 72] 382159b3361Sopenharmony_ci faddp st1,st0 383159b3361Sopenharmony_ci fld dword [eax + 76] 384159b3361Sopenharmony_ci fmul dword [edx + 76] 385159b3361Sopenharmony_ci faddp st1,st0 386159b3361Sopenharmony_ci fld dword [eax + 80] 387159b3361Sopenharmony_ci fmul dword [edx + 80] 388159b3361Sopenharmony_ci faddp st1,st0 389159b3361Sopenharmony_ci fld dword [eax + 84] 390159b3361Sopenharmony_ci fmul dword [edx + 84] 391159b3361Sopenharmony_ci faddp st1,st0 392159b3361Sopenharmony_ci fld dword [eax + 88] 393159b3361Sopenharmony_ci fmul dword [edx + 88] 394159b3361Sopenharmony_ci faddp st1,st0 395159b3361Sopenharmony_ci fld dword [eax + 92] 396159b3361Sopenharmony_ci fmul dword [edx + 92] 397159b3361Sopenharmony_ci faddp st1,st0 398159b3361Sopenharmony_ci fld dword [eax + 96] 399159b3361Sopenharmony_ci fmul dword [edx + 96] 400159b3361Sopenharmony_ci faddp st1,st0 401159b3361Sopenharmony_ci fld dword [eax +100] 402159b3361Sopenharmony_ci fmul dword [edx +100] 403159b3361Sopenharmony_ci faddp st1,st0 404159b3361Sopenharmony_ci fld dword [eax +104] 405159b3361Sopenharmony_ci fmul dword [edx +104] 406159b3361Sopenharmony_ci faddp st1,st0 407159b3361Sopenharmony_ci fld dword [eax +108] 408159b3361Sopenharmony_ci fmul dword [edx +108] 409159b3361Sopenharmony_ci faddp st1,st0 410159b3361Sopenharmony_ci fld dword [eax +112] 411159b3361Sopenharmony_ci fmul dword [edx +112] 412159b3361Sopenharmony_ci faddp st1,st0 413159b3361Sopenharmony_ci fld dword [eax +116] 414159b3361Sopenharmony_ci fmul dword [edx +116] 415159b3361Sopenharmony_ci faddp st1,st0 416159b3361Sopenharmony_ci fld dword [eax +120] 417159b3361Sopenharmony_ci fmul dword [edx +120] 418159b3361Sopenharmony_ci faddp st1,st0 419159b3361Sopenharmony_ci fld dword [eax +124] 420159b3361Sopenharmony_ci fmul dword [edx +124] 421159b3361Sopenharmony_ci faddp st1,st0 422159b3361Sopenharmony_ciendproc 423159b3361Sopenharmony_ci 424159b3361Sopenharmony_ci 425159b3361Sopenharmony_ci; float_t scalar4n_float32_i387 ( 426159b3361Sopenharmony_ci; const float32_t* const p, 427159b3361Sopenharmony_ci; const float32_t* const q, 428159b3361Sopenharmony_ci; const size_t len ); 429159b3361Sopenharmony_ci 430159b3361Sopenharmony_ciproc scalar4n_float32_i387 431159b3361Sopenharmony_ci%$p arg 4 432159b3361Sopenharmony_ci%$q arg 4 433159b3361Sopenharmony_ci%$len arg 4 434159b3361Sopenharmony_ci;;; alloc 435159b3361Sopenharmony_ci 436159b3361Sopenharmony_ci mov eax,[sp(%$p)] 437159b3361Sopenharmony_ci mov edx,[sp(%$q)] 438159b3361Sopenharmony_ci mov ecx,[sp(%$len)] 439159b3361Sopenharmony_ci fld dword [eax] 440159b3361Sopenharmony_ci fmul dword [edx] 441159b3361Sopenharmony_ci fld dword [eax + 4] 442159b3361Sopenharmony_ci fmul dword [edx + 4] 443159b3361Sopenharmony_ci faddp st1,st0 444159b3361Sopenharmony_ci fld dword [eax + 8] 445159b3361Sopenharmony_ci fmul dword [edx + 8] 446159b3361Sopenharmony_ci faddp st1,st0 447159b3361Sopenharmony_ci fld dword [eax + 12] 448159b3361Sopenharmony_ci fmul dword [edx + 12] 449159b3361Sopenharmony_ci faddp st1,st0 450159b3361Sopenharmony_ci dec ecx 451159b3361Sopenharmony_ci jz .ret1 452159b3361Sopenharmony_ci add eax,byte 16 453159b3361Sopenharmony_ci add edx,byte 16 454159b3361Sopenharmony_ci.lbl1 455159b3361Sopenharmony_ci fld dword [eax] 456159b3361Sopenharmony_ci fmul dword [edx] 457159b3361Sopenharmony_ci faddp st1,st0 458159b3361Sopenharmony_ci fld dword [eax + 4] 459159b3361Sopenharmony_ci fmul dword [edx + 4] 460159b3361Sopenharmony_ci faddp st1,st0 461159b3361Sopenharmony_ci fld dword [eax + 8] 462159b3361Sopenharmony_ci fmul dword [edx + 8] 463159b3361Sopenharmony_ci faddp st1,st0 464159b3361Sopenharmony_ci fld dword [eax + 12] 465159b3361Sopenharmony_ci fmul dword [edx + 12] 466159b3361Sopenharmony_ci faddp st1,st0 467159b3361Sopenharmony_ci add eax,byte 16 468159b3361Sopenharmony_ci add edx,byte 16 469159b3361Sopenharmony_ci dec ecx 470159b3361Sopenharmony_ci jnz .lbl1 471159b3361Sopenharmony_ci.ret1 472159b3361Sopenharmony_ciendproc 473159b3361Sopenharmony_ci 474159b3361Sopenharmony_ci 475159b3361Sopenharmony_ci; float_t scalar1n_float32_i387 ( 476159b3361Sopenharmony_ci; const float32_t* const p, 477159b3361Sopenharmony_ci; const float32_t* const q, 478159b3361Sopenharmony_ci; const size_t len ); 479159b3361Sopenharmony_ci 480159b3361Sopenharmony_ciproc scalar1n_float32_i387 481159b3361Sopenharmony_ci%$p arg 4 482159b3361Sopenharmony_ci%$q arg 4 483159b3361Sopenharmony_ci%$len arg 4 484159b3361Sopenharmony_ci;;; alloc 485159b3361Sopenharmony_ci 486159b3361Sopenharmony_ci mov eax,[sp(%$p)] 487159b3361Sopenharmony_ci mov edx,[sp(%$q)] 488159b3361Sopenharmony_ci mov ecx,[sp(%$len)] 489159b3361Sopenharmony_ci fld0 490159b3361Sopenharmony_ci shr ecx,1 491159b3361Sopenharmony_ci jnc .lbl2 492159b3361Sopenharmony_ci fld dword [eax] 493159b3361Sopenharmony_ci fmul dword [edx] 494159b3361Sopenharmony_ci faddp st1,st0 495159b3361Sopenharmony_ci add eax,byte 4 496159b3361Sopenharmony_ci add edx,byte 4 497159b3361Sopenharmony_ci.lbl2 498159b3361Sopenharmony_ci shr ecx,1 499159b3361Sopenharmony_ci jnc .lbl3 500159b3361Sopenharmony_ci fld dword [eax] 501159b3361Sopenharmony_ci fmul dword [edx] 502159b3361Sopenharmony_ci faddp st1,st0 503159b3361Sopenharmony_ci fld dword [eax + 4] 504159b3361Sopenharmony_ci fmul dword [edx + 4] 505159b3361Sopenharmony_ci faddp st1,st0 506159b3361Sopenharmony_ci add eax,byte 8 507159b3361Sopenharmony_ci add edx,byte 8 508159b3361Sopenharmony_ci and ecx,ecx 509159b3361Sopenharmony_ci.lbl3 510159b3361Sopenharmony_ci jz .ret2 511159b3361Sopenharmony_ci.lbl4 512159b3361Sopenharmony_ci fld dword [eax] 513159b3361Sopenharmony_ci fmul dword [edx] 514159b3361Sopenharmony_ci faddp st1,st0 515159b3361Sopenharmony_ci fld dword [eax + 4] 516159b3361Sopenharmony_ci fmul dword [edx + 4] 517159b3361Sopenharmony_ci faddp st1,st0 518159b3361Sopenharmony_ci fld dword [eax + 8] 519159b3361Sopenharmony_ci fmul dword [edx + 8] 520159b3361Sopenharmony_ci faddp st1,st0 521159b3361Sopenharmony_ci fld dword [eax + 12] 522159b3361Sopenharmony_ci fmul dword [edx + 12] 523159b3361Sopenharmony_ci faddp st1,st0 524159b3361Sopenharmony_ci add eax,byte 16 525159b3361Sopenharmony_ci add edx,byte 16 526159b3361Sopenharmony_ci dec ecx 527159b3361Sopenharmony_ci jnz .lbl4 528159b3361Sopenharmony_ci.ret2 529159b3361Sopenharmony_ciendproc 530159b3361Sopenharmony_ci 531159b3361Sopenharmony_ci 532159b3361Sopenharmony_ciproc scalar04_float32_3DNow 533159b3361Sopenharmony_ci%$p arg 4 534159b3361Sopenharmony_ci%$q arg 4 535159b3361Sopenharmony_ci mov eax,[sp(%$p)] 536159b3361Sopenharmony_ci mov edx,[sp(%$q)] 537159b3361Sopenharmony_ci 538159b3361Sopenharmony_ci pmov mm0,qword [eax] 539159b3361Sopenharmony_ci pmov mm1,qword [eax+8] 540159b3361Sopenharmony_ci pfmul mm0,qword [edx] 541159b3361Sopenharmony_ci pfmul mm1,qword [edx+8] 542159b3361Sopenharmony_ci 543159b3361Sopenharmony_ci pfadd mm0,mm1 544159b3361Sopenharmony_ci pmov qword [sp(%$p)],mm0 545159b3361Sopenharmony_ci femms 546159b3361Sopenharmony_ci fld dword [sp(%$p)] 547159b3361Sopenharmony_ci fadd dword [sp(%$p)+4] 548159b3361Sopenharmony_ciendproc 549159b3361Sopenharmony_ci 550159b3361Sopenharmony_ci 551159b3361Sopenharmony_ciproc scalar08_float32_3DNow 552159b3361Sopenharmony_ci%$p arg 4 553159b3361Sopenharmony_ci%$q arg 4 554159b3361Sopenharmony_ci mov eax,[sp(%$p)] 555159b3361Sopenharmony_ci mov edx,[sp(%$q)] 556159b3361Sopenharmony_ci 557159b3361Sopenharmony_ci pmov mm0,qword [eax] 558159b3361Sopenharmony_ci pmov mm1,qword [eax+8] 559159b3361Sopenharmony_ci pfmul mm0,qword [edx] 560159b3361Sopenharmony_ci pfmul mm1,qword [edx+8] 561159b3361Sopenharmony_ci 562159b3361Sopenharmony_ci pmov mm2,qword [eax+16] 563159b3361Sopenharmony_ci pmov mm3,qword [eax+24] 564159b3361Sopenharmony_ci pfmul mm2,qword [edx+16] 565159b3361Sopenharmony_ci pfmul mm3,qword [edx+24] 566159b3361Sopenharmony_ci pfadd mm0,mm2 567159b3361Sopenharmony_ci pfadd mm1,mm3 568159b3361Sopenharmony_ci 569159b3361Sopenharmony_ci pfadd mm0,mm1 570159b3361Sopenharmony_ci pmov qword [sp(%$p)],mm0 571159b3361Sopenharmony_ci femms 572159b3361Sopenharmony_ci fld dword [sp(%$p)] 573159b3361Sopenharmony_ci fadd dword [sp(%$p)+4] 574159b3361Sopenharmony_ciendproc 575159b3361Sopenharmony_ci 576159b3361Sopenharmony_ci 577159b3361Sopenharmony_ciproc scalar12_float32_3DNow 578159b3361Sopenharmony_ci%$p arg 4 579159b3361Sopenharmony_ci%$q arg 4 580159b3361Sopenharmony_ci mov eax,[sp(%$p)] 581159b3361Sopenharmony_ci mov edx,[sp(%$q)] 582159b3361Sopenharmony_ci 583159b3361Sopenharmony_ci pmov mm0,qword [eax] 584159b3361Sopenharmony_ci pmov mm1,qword [eax+8] 585159b3361Sopenharmony_ci pfmul mm0,qword [edx] 586159b3361Sopenharmony_ci pfmul mm1,qword [edx+8] 587159b3361Sopenharmony_ci 588159b3361Sopenharmony_ci pmov mm2,qword [eax+16] 589159b3361Sopenharmony_ci pmov mm3,qword [eax+24] 590159b3361Sopenharmony_ci pfmul mm2,qword [edx+16] 591159b3361Sopenharmony_ci pfmul mm3,qword [edx+24] 592159b3361Sopenharmony_ci pfadd mm0,mm2 593159b3361Sopenharmony_ci pfadd mm1,mm3 594159b3361Sopenharmony_ci 595159b3361Sopenharmony_ci pmov mm2,qword [eax+32] 596159b3361Sopenharmony_ci pmov mm3,qword [eax+40] 597159b3361Sopenharmony_ci pfmul mm2,qword [edx+32] 598159b3361Sopenharmony_ci pfmul mm3,qword [edx+40] 599159b3361Sopenharmony_ci pfadd mm0,mm2 600159b3361Sopenharmony_ci pfadd mm1,mm3 601159b3361Sopenharmony_ci 602159b3361Sopenharmony_ci pfadd mm0,mm1 603159b3361Sopenharmony_ci pmov qword [sp(%$p)],mm0 604159b3361Sopenharmony_ci femms 605159b3361Sopenharmony_ci fld dword [sp(%$p)] 606159b3361Sopenharmony_ci fadd dword [sp(%$p)+4] 607159b3361Sopenharmony_ciendproc 608159b3361Sopenharmony_ci 609159b3361Sopenharmony_ci 610159b3361Sopenharmony_ciproc scalar16_float32_3DNow 611159b3361Sopenharmony_ci%$p arg 4 612159b3361Sopenharmony_ci%$q arg 4 613159b3361Sopenharmony_ci mov eax,[sp(%$p)] 614159b3361Sopenharmony_ci mov edx,[sp(%$q)] 615159b3361Sopenharmony_ci 616159b3361Sopenharmony_ci pmov mm0,qword [eax] 617159b3361Sopenharmony_ci pmov mm1,qword [eax+8] 618159b3361Sopenharmony_ci pfmul mm0,qword [edx] 619159b3361Sopenharmony_ci pfmul mm1,qword [edx+8] 620159b3361Sopenharmony_ci 621159b3361Sopenharmony_ci pmov mm2,qword [eax+16] 622159b3361Sopenharmony_ci pmov mm3,qword [eax+24] 623159b3361Sopenharmony_ci pfmul mm2,qword [edx+16] 624159b3361Sopenharmony_ci pfmul mm3,qword [edx+24] 625159b3361Sopenharmony_ci pfadd mm0,mm2 626159b3361Sopenharmony_ci pfadd mm1,mm3 627159b3361Sopenharmony_ci 628159b3361Sopenharmony_ci pmov mm2,qword [eax+32] 629159b3361Sopenharmony_ci pmov mm3,qword [eax+40] 630159b3361Sopenharmony_ci pfmul mm2,qword [edx+32] 631159b3361Sopenharmony_ci pfmul mm3,qword [edx+40] 632159b3361Sopenharmony_ci pfadd mm0,mm2 633159b3361Sopenharmony_ci pfadd mm1,mm3 634159b3361Sopenharmony_ci 635159b3361Sopenharmony_ci pmov mm2,qword [eax+48] 636159b3361Sopenharmony_ci pmov mm3,qword [eax+56] 637159b3361Sopenharmony_ci pfmul mm2,qword [edx+48] 638159b3361Sopenharmony_ci pfmul mm3,qword [edx+56] 639159b3361Sopenharmony_ci pfadd mm0,mm2 640159b3361Sopenharmony_ci pfadd mm1,mm3 641159b3361Sopenharmony_ci 642159b3361Sopenharmony_ci pfadd mm0,mm1 643159b3361Sopenharmony_ci pmov qword [sp(%$p)],mm0 644159b3361Sopenharmony_ci femms 645159b3361Sopenharmony_ci fld dword [sp(%$p)] 646159b3361Sopenharmony_ci fadd dword [sp(%$p)+4] 647159b3361Sopenharmony_ciendproc 648159b3361Sopenharmony_ci 649159b3361Sopenharmony_ci 650159b3361Sopenharmony_ciproc scalar20_float32_3DNow 651159b3361Sopenharmony_ci%$p arg 4 652159b3361Sopenharmony_ci%$q arg 4 653159b3361Sopenharmony_ci mov eax,[sp(%$p)] 654159b3361Sopenharmony_ci mov edx,[sp(%$q)] 655159b3361Sopenharmony_ci 656159b3361Sopenharmony_ci pmov mm0,qword [eax] 657159b3361Sopenharmony_ci pmov mm1,qword [eax+8] 658159b3361Sopenharmony_ci pfmul mm0,qword [edx] 659159b3361Sopenharmony_ci pfmul mm1,qword [edx+8] 660159b3361Sopenharmony_ci 661159b3361Sopenharmony_ci pmov mm2,qword [eax+16] 662159b3361Sopenharmony_ci pmov mm3,qword [eax+24] 663159b3361Sopenharmony_ci pfmul mm2,qword [edx+16] 664159b3361Sopenharmony_ci pfmul mm3,qword [edx+24] 665159b3361Sopenharmony_ci pfadd mm0,mm2 666159b3361Sopenharmony_ci pfadd mm1,mm3 667159b3361Sopenharmony_ci 668159b3361Sopenharmony_ci pmov mm2,qword [eax+32] 669159b3361Sopenharmony_ci pmov mm3,qword [eax+40] 670159b3361Sopenharmony_ci pfmul mm2,qword [edx+32] 671159b3361Sopenharmony_ci pfmul mm3,qword [edx+40] 672159b3361Sopenharmony_ci pfadd mm0,mm2 673159b3361Sopenharmony_ci pfadd mm1,mm3 674159b3361Sopenharmony_ci 675159b3361Sopenharmony_ci pmov mm2,qword [eax+48] 676159b3361Sopenharmony_ci pmov mm3,qword [eax+56] 677159b3361Sopenharmony_ci pfmul mm2,qword [edx+48] 678159b3361Sopenharmony_ci pfmul mm3,qword [edx+56] 679159b3361Sopenharmony_ci pfadd mm0,mm2 680159b3361Sopenharmony_ci pfadd mm1,mm3 681159b3361Sopenharmony_ci 682159b3361Sopenharmony_ci pmov mm2,qword [eax+64] 683159b3361Sopenharmony_ci pmov mm3,qword [eax+72] 684159b3361Sopenharmony_ci pfmul mm2,qword [edx+64] 685159b3361Sopenharmony_ci pfmul mm3,qword [edx+72] 686159b3361Sopenharmony_ci pfadd mm0,mm2 687159b3361Sopenharmony_ci pfadd mm1,mm3 688159b3361Sopenharmony_ci 689159b3361Sopenharmony_ci pfadd mm0,mm1 690159b3361Sopenharmony_ci pmov qword [sp(%$p)],mm0 691159b3361Sopenharmony_ci femms 692159b3361Sopenharmony_ci fld dword [sp(%$p)] 693159b3361Sopenharmony_ci fadd dword [sp(%$p)+4] 694159b3361Sopenharmony_ciendproc 695159b3361Sopenharmony_ci 696159b3361Sopenharmony_ci 697159b3361Sopenharmony_ciproc scalar24_float32_3DNow 698159b3361Sopenharmony_ci%$p arg 4 699159b3361Sopenharmony_ci%$q arg 4 700159b3361Sopenharmony_ci mov eax,[sp(%$p)] 701159b3361Sopenharmony_ci mov edx,[sp(%$q)] 702159b3361Sopenharmony_ci 703159b3361Sopenharmony_ci pmov mm0,qword [eax] 704159b3361Sopenharmony_ci pmov mm1,qword [eax+8] 705159b3361Sopenharmony_ci pfmul mm0,qword [edx] 706159b3361Sopenharmony_ci pfmul mm1,qword [edx+8] 707159b3361Sopenharmony_ci 708159b3361Sopenharmony_ci pmov mm2,qword [eax+16] 709159b3361Sopenharmony_ci pmov mm3,qword [eax+24] 710159b3361Sopenharmony_ci pfmul mm2,qword [edx+16] 711159b3361Sopenharmony_ci pfmul mm3,qword [edx+24] 712159b3361Sopenharmony_ci pfadd mm0,mm2 713159b3361Sopenharmony_ci pfadd mm1,mm3 714159b3361Sopenharmony_ci 715159b3361Sopenharmony_ci pmov mm2,qword [eax+32] 716159b3361Sopenharmony_ci pmov mm3,qword [eax+40] 717159b3361Sopenharmony_ci pfmul mm2,qword [edx+32] 718159b3361Sopenharmony_ci pfmul mm3,qword [edx+40] 719159b3361Sopenharmony_ci pfadd mm0,mm2 720159b3361Sopenharmony_ci pfadd mm1,mm3 721159b3361Sopenharmony_ci 722159b3361Sopenharmony_ci pmov mm2,qword [eax+48] 723159b3361Sopenharmony_ci pmov mm3,qword [eax+56] 724159b3361Sopenharmony_ci pfmul mm2,qword [edx+48] 725159b3361Sopenharmony_ci pfmul mm3,qword [edx+56] 726159b3361Sopenharmony_ci pfadd mm0,mm2 727159b3361Sopenharmony_ci pfadd mm1,mm3 728159b3361Sopenharmony_ci 729159b3361Sopenharmony_ci pmov mm2,qword [eax+64] 730159b3361Sopenharmony_ci pmov mm3,qword [eax+72] 731159b3361Sopenharmony_ci pfmul mm2,qword [edx+64] 732159b3361Sopenharmony_ci pfmul mm3,qword [edx+72] 733159b3361Sopenharmony_ci pfadd mm0,mm2 734159b3361Sopenharmony_ci pfadd mm1,mm3 735159b3361Sopenharmony_ci 736159b3361Sopenharmony_ci pmov mm2,qword [eax+80] 737159b3361Sopenharmony_ci pmov mm3,qword [eax+88] 738159b3361Sopenharmony_ci pfmul mm2,qword [edx+80] 739159b3361Sopenharmony_ci pfmul mm3,qword [edx+88] 740159b3361Sopenharmony_ci pfadd mm0,mm2 741159b3361Sopenharmony_ci pfadd mm1,mm3 742159b3361Sopenharmony_ci 743159b3361Sopenharmony_ci pfadd mm0,mm1 744159b3361Sopenharmony_ci pmov qword [sp(%$p)],mm0 745159b3361Sopenharmony_ci femms 746159b3361Sopenharmony_ci fld dword [sp(%$p)] 747159b3361Sopenharmony_ci fadd dword [sp(%$p)+4] 748159b3361Sopenharmony_ciendproc 749159b3361Sopenharmony_ci 750159b3361Sopenharmony_ciproc scalar32_float32_3DNow 751159b3361Sopenharmony_ci%$p arg 4 752159b3361Sopenharmony_ci%$q arg 4 753159b3361Sopenharmony_ci mov eax,[sp(%$p)] 754159b3361Sopenharmony_ci mov edx,[sp(%$q)] 755159b3361Sopenharmony_ci 756159b3361Sopenharmony_ci pmov mm0,qword [eax] 757159b3361Sopenharmony_ci pmov mm1,qword [eax+8] 758159b3361Sopenharmony_ci pfmul mm0,qword [edx] 759159b3361Sopenharmony_ci pfmul mm1,qword [edx+8] 760159b3361Sopenharmony_ci 761159b3361Sopenharmony_ci pmov mm2,qword [eax+16] 762159b3361Sopenharmony_ci pmov mm3,qword [eax+24] 763159b3361Sopenharmony_ci pfmul mm2,qword [edx+16] 764159b3361Sopenharmony_ci pfmul mm3,qword [edx+24] 765159b3361Sopenharmony_ci pfadd mm0,mm2 766159b3361Sopenharmony_ci pfadd mm1,mm3 767159b3361Sopenharmony_ci 768159b3361Sopenharmony_ci pmov mm2,qword [eax+32] 769159b3361Sopenharmony_ci pmov mm3,qword [eax+40] 770159b3361Sopenharmony_ci pfmul mm2,qword [edx+32] 771159b3361Sopenharmony_ci pfmul mm3,qword [edx+40] 772159b3361Sopenharmony_ci pfadd mm0,mm2 773159b3361Sopenharmony_ci pfadd mm1,mm3 774159b3361Sopenharmony_ci 775159b3361Sopenharmony_ci pmov mm2,qword [eax+48] 776159b3361Sopenharmony_ci pmov mm3,qword [eax+56] 777159b3361Sopenharmony_ci pfmul mm2,qword [edx+48] 778159b3361Sopenharmony_ci pfmul mm3,qword [edx+56] 779159b3361Sopenharmony_ci pfadd mm0,mm2 780159b3361Sopenharmony_ci pfadd mm1,mm3 781159b3361Sopenharmony_ci 782159b3361Sopenharmony_ci pmov mm2,qword [eax+64] 783159b3361Sopenharmony_ci pmov mm3,qword [eax+72] 784159b3361Sopenharmony_ci pfmul mm2,qword [edx+64] 785159b3361Sopenharmony_ci pfmul mm3,qword [edx+72] 786159b3361Sopenharmony_ci pfadd mm0,mm2 787159b3361Sopenharmony_ci pfadd mm1,mm3 788159b3361Sopenharmony_ci 789159b3361Sopenharmony_ci pmov mm2,qword [eax+80] 790159b3361Sopenharmony_ci pmov mm3,qword [eax+88] 791159b3361Sopenharmony_ci pfmul mm2,qword [edx+80] 792159b3361Sopenharmony_ci pfmul mm3,qword [edx+88] 793159b3361Sopenharmony_ci pfadd mm0,mm2 794159b3361Sopenharmony_ci pfadd mm1,mm3 795159b3361Sopenharmony_ci 796159b3361Sopenharmony_ci pmov mm2,qword [eax+96] 797159b3361Sopenharmony_ci pmov mm3,qword [eax+104] 798159b3361Sopenharmony_ci pfmul mm2,qword [edx+96] 799159b3361Sopenharmony_ci pfmul mm3,qword [edx+104] 800159b3361Sopenharmony_ci pfadd mm0,mm2 801159b3361Sopenharmony_ci pfadd mm1,mm3 802159b3361Sopenharmony_ci 803159b3361Sopenharmony_ci pmov mm2,qword [eax+112] 804159b3361Sopenharmony_ci pmov mm3,qword [eax+120] 805159b3361Sopenharmony_ci pfmul mm2,qword [edx+112] 806159b3361Sopenharmony_ci pfmul mm3,qword [edx+120] 807159b3361Sopenharmony_ci pfadd mm0,mm2 808159b3361Sopenharmony_ci pfadd mm1,mm3 809159b3361Sopenharmony_ci 810159b3361Sopenharmony_ci pfadd mm0,mm1 811159b3361Sopenharmony_ci pmov qword [sp(%$p)],mm0 812159b3361Sopenharmony_ci femms 813159b3361Sopenharmony_ci fld dword [sp(%$p)] 814159b3361Sopenharmony_ci fadd dword [sp(%$p)+4] 815159b3361Sopenharmony_ciendproc 816159b3361Sopenharmony_ci 817159b3361Sopenharmony_ci 818159b3361Sopenharmony_ciproc scalar4n_float32_3DNow 819159b3361Sopenharmony_ci%$p arg 4 820159b3361Sopenharmony_ci%$q arg 4 821159b3361Sopenharmony_ci%$len arg 4 822159b3361Sopenharmony_ci 823159b3361Sopenharmony_ci mov eax,[sp(%$p)] 824159b3361Sopenharmony_ci mov edx,[sp(%$q)] 825159b3361Sopenharmony_ci mov ecx,[sp(%$len)] 826159b3361Sopenharmony_ci 827159b3361Sopenharmony_ci pmov mm0,qword [eax] 828159b3361Sopenharmony_ci pmov mm1,qword [eax+8] 829159b3361Sopenharmony_ci pfmul mm0,qword [edx] 830159b3361Sopenharmony_ci pfmul mm1,qword [edx+8] 831159b3361Sopenharmony_ci dec ecx 832159b3361Sopenharmony_ci jz .ret4 833159b3361Sopenharmony_ci 834159b3361Sopenharmony_ci add eax,byte 16 835159b3361Sopenharmony_ci add edx,byte 16 836159b3361Sopenharmony_ci.lbl4: 837159b3361Sopenharmony_ci pmov mm2,qword [eax] 838159b3361Sopenharmony_ci pmov mm3,qword [eax+8] 839159b3361Sopenharmony_ci pfmul mm2,qword [edx] 840159b3361Sopenharmony_ci pfmul mm3,qword [edx+8] 841159b3361Sopenharmony_ci add eax,byte 16 842159b3361Sopenharmony_ci add edx,byte 16 843159b3361Sopenharmony_ci pfadd mm0,mm2 844159b3361Sopenharmony_ci pfadd mm1,mm3 845159b3361Sopenharmony_ci dec ecx 846159b3361Sopenharmony_ci jnz .lbl4 847159b3361Sopenharmony_ci 848159b3361Sopenharmony_ci.ret4: pfadd mm0,mm1 849159b3361Sopenharmony_ci pmov qword [sp(%$p)],mm0 850159b3361Sopenharmony_ci femms 851159b3361Sopenharmony_ci fld dword [sp(%$p)] 852159b3361Sopenharmony_ci fadd dword [sp(%$p)+4] 853159b3361Sopenharmony_ciendproc 854159b3361Sopenharmony_ci 855159b3361Sopenharmony_ci 856159b3361Sopenharmony_ciproc scalar1n_float32_3DNow 857159b3361Sopenharmony_ci jmp scalar24_float32_i387 858159b3361Sopenharmony_ciendproc 859159b3361Sopenharmony_ci 860159b3361Sopenharmony_ci 861159b3361Sopenharmony_ciproc scalar04_float32_SIMD 862159b3361Sopenharmony_ci jmp scalar04_float32_i387 863159b3361Sopenharmony_ciendproc 864159b3361Sopenharmony_ci 865159b3361Sopenharmony_ci 866159b3361Sopenharmony_ciproc scalar08_float32_SIMD 867159b3361Sopenharmony_ci%$p arg 4 868159b3361Sopenharmony_ci%$q arg 4 869159b3361Sopenharmony_ci mov eax,[sp(%$p)] 870159b3361Sopenharmony_ci mov edx,[sp(%$q)] 871159b3361Sopenharmony_ci 872159b3361Sopenharmony_ci movups xmm0, [eax] 873159b3361Sopenharmony_ci movups xmm1, [eax+16] 874159b3361Sopenharmony_ci mulps xmm0, [edx] 875159b3361Sopenharmony_ci mulps xmm1, [edx+16] 876159b3361Sopenharmony_ci 877159b3361Sopenharmony_ci addps xmm0,xmm1 878159b3361Sopenharmony_ci sub esp,16 879159b3361Sopenharmony_ci movups [esp],xmm0 880159b3361Sopenharmony_ci fld dword [esp+ 0] 881159b3361Sopenharmony_ci fadd dword [esp+ 4] 882159b3361Sopenharmony_ci fadd dword [esp+ 8] 883159b3361Sopenharmony_ci fadd dword [esp+12] 884159b3361Sopenharmony_ci add esp,16 885159b3361Sopenharmony_ciendproc 886159b3361Sopenharmony_ci 887159b3361Sopenharmony_ci 888159b3361Sopenharmony_ciproc scalar12_float32_SIMD 889159b3361Sopenharmony_ci jmp scalar12_float32_i387 890159b3361Sopenharmony_ciendproc 891159b3361Sopenharmony_ci 892159b3361Sopenharmony_ci 893159b3361Sopenharmony_ciproc scalar16_float32_SIMD 894159b3361Sopenharmony_ci%$p arg 4 895159b3361Sopenharmony_ci%$q arg 4 896159b3361Sopenharmony_ci mov eax,[sp(%$p)] 897159b3361Sopenharmony_ci mov edx,[sp(%$q)] 898159b3361Sopenharmony_ci 899159b3361Sopenharmony_ci movups xmm0, [eax] 900159b3361Sopenharmony_ci movups xmm1, [eax+16] 901159b3361Sopenharmony_ci mulps xmm0, [edx] 902159b3361Sopenharmony_ci mulps xmm1, [edx+16] 903159b3361Sopenharmony_ci 904159b3361Sopenharmony_ci movups xmm2, [eax+32] 905159b3361Sopenharmony_ci movups xmm3, [eax+48] 906159b3361Sopenharmony_ci mulps xmm2, [edx+32] 907159b3361Sopenharmony_ci mulps xmm3, [edx+48] 908159b3361Sopenharmony_ci addps xmm0,xmm2 909159b3361Sopenharmony_ci addps xmm1,xmm3 910159b3361Sopenharmony_ci 911159b3361Sopenharmony_ci addps xmm0,xmm1 912159b3361Sopenharmony_ci sub esp,16 913159b3361Sopenharmony_ci movups [esp],xmm0 914159b3361Sopenharmony_ci fld dword [esp+ 0] 915159b3361Sopenharmony_ci fadd dword [esp+ 4] 916159b3361Sopenharmony_ci fadd dword [esp+ 8] 917159b3361Sopenharmony_ci fadd dword [esp+12] 918159b3361Sopenharmony_ci add esp,16 919159b3361Sopenharmony_ciendproc 920159b3361Sopenharmony_ci 921159b3361Sopenharmony_ci 922159b3361Sopenharmony_ciproc scalar20_float32_SIMD 923159b3361Sopenharmony_ci jmp scalar20_float32_i387 924159b3361Sopenharmony_ciendproc 925159b3361Sopenharmony_ci 926159b3361Sopenharmony_ci 927159b3361Sopenharmony_ciproc scalar24_float32_SIMD 928159b3361Sopenharmony_ci%$p arg 4 929159b3361Sopenharmony_ci%$q arg 4 930159b3361Sopenharmony_ci mov eax,[sp(%$p)] 931159b3361Sopenharmony_ci mov edx,[sp(%$q)] 932159b3361Sopenharmony_ci 933159b3361Sopenharmony_ci movups xmm0, [eax] 934159b3361Sopenharmony_ci movups xmm1, [eax+16] 935159b3361Sopenharmony_ci mulps xmm0, [edx] 936159b3361Sopenharmony_ci mulps xmm1, [edx+16] 937159b3361Sopenharmony_ci 938159b3361Sopenharmony_ci movups xmm2, [eax+32] 939159b3361Sopenharmony_ci movups xmm3, [eax+48] 940159b3361Sopenharmony_ci mulps xmm2, [edx+32] 941159b3361Sopenharmony_ci mulps xmm3, [edx+48] 942159b3361Sopenharmony_ci addps xmm0,xmm2 943159b3361Sopenharmony_ci addps xmm1,xmm3 944159b3361Sopenharmony_ci 945159b3361Sopenharmony_ci movups xmm2, [eax+64] 946159b3361Sopenharmony_ci movups xmm3, [eax+80] 947159b3361Sopenharmony_ci mulps xmm2, [edx+64] 948159b3361Sopenharmony_ci mulps xmm3, [edx+80] 949159b3361Sopenharmony_ci addps xmm0,xmm2 950159b3361Sopenharmony_ci addps xmm1,xmm3 951159b3361Sopenharmony_ci 952159b3361Sopenharmony_ci addps xmm0,xmm1 953159b3361Sopenharmony_ci sub esp,16 954159b3361Sopenharmony_ci movups [esp],xmm0 955159b3361Sopenharmony_ci fld dword [esp+ 0] 956159b3361Sopenharmony_ci fadd dword [esp+ 4] 957159b3361Sopenharmony_ci fadd dword [esp+ 8] 958159b3361Sopenharmony_ci fadd dword [esp+12] 959159b3361Sopenharmony_ci add esp,16 960159b3361Sopenharmony_ciendproc 961159b3361Sopenharmony_ci 962159b3361Sopenharmony_ci 963159b3361Sopenharmony_ciproc scalar32_float32_SIMD 964159b3361Sopenharmony_ci%$p arg 4 965159b3361Sopenharmony_ci%$q arg 4 966159b3361Sopenharmony_ci mov eax,[sp(%$p)] 967159b3361Sopenharmony_ci mov edx,[sp(%$q)] 968159b3361Sopenharmony_ci 969159b3361Sopenharmony_ci movups xmm0, [eax] 970159b3361Sopenharmony_ci movups xmm1, [eax+16] 971159b3361Sopenharmony_ci mulps xmm0, [edx] 972159b3361Sopenharmony_ci mulps xmm1, [edx+16] 973159b3361Sopenharmony_ci 974159b3361Sopenharmony_ci movups xmm2, [eax+32] 975159b3361Sopenharmony_ci movups xmm3, [eax+48] 976159b3361Sopenharmony_ci mulps xmm2, [edx+32] 977159b3361Sopenharmony_ci mulps xmm3, [edx+48] 978159b3361Sopenharmony_ci addps xmm0,xmm2 979159b3361Sopenharmony_ci addps xmm1,xmm3 980159b3361Sopenharmony_ci 981159b3361Sopenharmony_ci movups xmm2, [eax+64] 982159b3361Sopenharmony_ci movups xmm3, [eax+80] 983159b3361Sopenharmony_ci mulps xmm2, [edx+64] 984159b3361Sopenharmony_ci mulps xmm3, [edx+80] 985159b3361Sopenharmony_ci addps xmm0,xmm2 986159b3361Sopenharmony_ci addps xmm1,xmm3 987159b3361Sopenharmony_ci 988159b3361Sopenharmony_ci movups xmm2, [eax+96] 989159b3361Sopenharmony_ci movups xmm3, [eax+112] 990159b3361Sopenharmony_ci mulps xmm2, [edx+96] 991159b3361Sopenharmony_ci mulps xmm3, [edx+112] 992159b3361Sopenharmony_ci addps xmm0,xmm2 993159b3361Sopenharmony_ci addps xmm1,xmm3 994159b3361Sopenharmony_ci 995159b3361Sopenharmony_ci addps xmm0,xmm1 996159b3361Sopenharmony_ci 997159b3361Sopenharmony_ci ;sub esp,16 998159b3361Sopenharmony_ci ;movups [esp],xmm0 999159b3361Sopenharmony_ci ;fld dword [esp+ 0] 1000159b3361Sopenharmony_ci ;fadd dword [esp+ 4] 1001159b3361Sopenharmony_ci ;fadd dword [esp+ 8] 1002159b3361Sopenharmony_ci ;fadd dword [esp+12] 1003159b3361Sopenharmony_ci ;add esp,16 1004159b3361Sopenharmony_ci 1005159b3361Sopenharmony_ci movhlps xmm1,xmm0 1006159b3361Sopenharmony_ci addps xmm0,xmm1 1007159b3361Sopenharmony_ci movlps [sp(%$p)],xmm0 1008159b3361Sopenharmony_ci fld dword [sp(%$p)] 1009159b3361Sopenharmony_ci fadd dword [sp(%$p)+4] 1010159b3361Sopenharmony_ciendproc 1011159b3361Sopenharmony_ci 1012159b3361Sopenharmony_ci 1013159b3361Sopenharmony_ciproc scalar4n_float32_SIMD 1014159b3361Sopenharmony_ci jmp scalar4n_float32_i387 1015159b3361Sopenharmony_ciendproc 1016159b3361Sopenharmony_ci 1017159b3361Sopenharmony_ci 1018159b3361Sopenharmony_ciproc scalar1n_float32_SIMD 1019159b3361Sopenharmony_ci jmp scalar1n_float32_i387 1020159b3361Sopenharmony_ciendproc 1021159b3361Sopenharmony_ci 1022159b3361Sopenharmony_ci; end of scalar.nas 1023