diff options
author | Mike Pall <mike> | 2010-07-14 14:11:48 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2010-07-14 14:11:48 +0200 |
commit | 2ca58aa67d68076f8980395f45ce1215875fc0fc (patch) | |
tree | 16e31746bea6f4d362e727d9d74632ec048fd6d9 /src | |
parent | 0d3f190d94708413117cda819d417fcbc382b4bb (diff) | |
download | luajit-2ca58aa67d68076f8980395f45ce1215875fc0fc.tar.gz luajit-2ca58aa67d68076f8980395f45ce1215875fc0fc.tar.bz2 luajit-2ca58aa67d68076f8980395f45ce1215875fc0fc.zip |
Fix arg check for two-arg SSE math functions in interpreter.
Diffstat (limited to 'src')
-rw-r--r-- | src/buildvm_x64.h | 12 | ||||
-rw-r--r-- | src/buildvm_x64win.h | 12 | ||||
-rw-r--r-- | src/buildvm_x86.dasc | 2 | ||||
-rw-r--r-- | src/buildvm_x86.h | 12 |
4 files changed, 19 insertions, 19 deletions
diff --git a/src/buildvm_x64.h b/src/buildvm_x64.h index d98d225d..a44f7e50 100644 --- a/src/buildvm_x64.h +++ b/src/buildvm_x64.h | |||
@@ -1206,7 +1206,7 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) | |||
1206 | } | 1206 | } |
1207 | dasm_put(Dst, 4774, 2+1, LJ_TISNUM, LJ_TISNUM); | 1207 | dasm_put(Dst, 4774, 2+1, LJ_TISNUM, LJ_TISNUM); |
1208 | if (sse) { | 1208 | if (sse) { |
1209 | dasm_put(Dst, 4826, 1+1, LJ_TISNUM, LJ_TISNUM); | 1209 | dasm_put(Dst, 4826, 2+1, LJ_TISNUM, LJ_TISNUM); |
1210 | } else { | 1210 | } else { |
1211 | dasm_put(Dst, 4873, 2+1, LJ_TISNUM, LJ_TISNUM); | 1211 | dasm_put(Dst, 4873, 2+1, LJ_TISNUM, LJ_TISNUM); |
1212 | } | 1212 | } |
@@ -1319,27 +1319,27 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) | |||
1319 | } | 1319 | } |
1320 | dasm_put(Dst, 6405); | 1320 | dasm_put(Dst, 6405); |
1321 | if (sse) { | 1321 | if (sse) { |
1322 | dasm_put(Dst, 6416, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); | 1322 | dasm_put(Dst, 6416, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); |
1323 | } else { | 1323 | } else { |
1324 | } | 1324 | } |
1325 | dasm_put(Dst, 6485); | 1325 | dasm_put(Dst, 6485); |
1326 | if (sse) { | 1326 | if (sse) { |
1327 | dasm_put(Dst, 6494, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); | 1327 | dasm_put(Dst, 6494, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); |
1328 | } else { | 1328 | } else { |
1329 | } | 1329 | } |
1330 | dasm_put(Dst, 6563); | 1330 | dasm_put(Dst, 6563); |
1331 | if (sse) { | 1331 | if (sse) { |
1332 | dasm_put(Dst, 6573, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); | 1332 | dasm_put(Dst, 6573, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); |
1333 | } else { | 1333 | } else { |
1334 | } | 1334 | } |
1335 | dasm_put(Dst, 6642); | 1335 | dasm_put(Dst, 6642); |
1336 | if (sse) { | 1336 | if (sse) { |
1337 | dasm_put(Dst, 6652, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); | 1337 | dasm_put(Dst, 6652, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); |
1338 | } else { | 1338 | } else { |
1339 | } | 1339 | } |
1340 | dasm_put(Dst, 6721); | 1340 | dasm_put(Dst, 6721); |
1341 | if (sse) { | 1341 | if (sse) { |
1342 | dasm_put(Dst, 6730, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); | 1342 | dasm_put(Dst, 6730, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); |
1343 | } else { | 1343 | } else { |
1344 | } | 1344 | } |
1345 | dasm_put(Dst, 6799, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); | 1345 | dasm_put(Dst, 6799, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); |
diff --git a/src/buildvm_x64win.h b/src/buildvm_x64win.h index 81ca8c03..5e57bb3f 100644 --- a/src/buildvm_x64win.h +++ b/src/buildvm_x64win.h | |||
@@ -1207,7 +1207,7 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) | |||
1207 | } | 1207 | } |
1208 | dasm_put(Dst, 4748, 2+1, LJ_TISNUM, LJ_TISNUM); | 1208 | dasm_put(Dst, 4748, 2+1, LJ_TISNUM, LJ_TISNUM); |
1209 | if (sse) { | 1209 | if (sse) { |
1210 | dasm_put(Dst, 4800, 1+1, LJ_TISNUM, LJ_TISNUM); | 1210 | dasm_put(Dst, 4800, 2+1, LJ_TISNUM, LJ_TISNUM); |
1211 | } else { | 1211 | } else { |
1212 | dasm_put(Dst, 4847, 2+1, LJ_TISNUM, LJ_TISNUM); | 1212 | dasm_put(Dst, 4847, 2+1, LJ_TISNUM, LJ_TISNUM); |
1213 | } | 1213 | } |
@@ -1320,27 +1320,27 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) | |||
1320 | } | 1320 | } |
1321 | dasm_put(Dst, 6364); | 1321 | dasm_put(Dst, 6364); |
1322 | if (sse) { | 1322 | if (sse) { |
1323 | dasm_put(Dst, 6375, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); | 1323 | dasm_put(Dst, 6375, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); |
1324 | } else { | 1324 | } else { |
1325 | } | 1325 | } |
1326 | dasm_put(Dst, 6444); | 1326 | dasm_put(Dst, 6444); |
1327 | if (sse) { | 1327 | if (sse) { |
1328 | dasm_put(Dst, 6453, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); | 1328 | dasm_put(Dst, 6453, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); |
1329 | } else { | 1329 | } else { |
1330 | } | 1330 | } |
1331 | dasm_put(Dst, 6522); | 1331 | dasm_put(Dst, 6522); |
1332 | if (sse) { | 1332 | if (sse) { |
1333 | dasm_put(Dst, 6532, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); | 1333 | dasm_put(Dst, 6532, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); |
1334 | } else { | 1334 | } else { |
1335 | } | 1335 | } |
1336 | dasm_put(Dst, 6601); | 1336 | dasm_put(Dst, 6601); |
1337 | if (sse) { | 1337 | if (sse) { |
1338 | dasm_put(Dst, 6611, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); | 1338 | dasm_put(Dst, 6611, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); |
1339 | } else { | 1339 | } else { |
1340 | } | 1340 | } |
1341 | dasm_put(Dst, 6680); | 1341 | dasm_put(Dst, 6680); |
1342 | if (sse) { | 1342 | if (sse) { |
1343 | dasm_put(Dst, 6689, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); | 1343 | dasm_put(Dst, 6689, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); |
1344 | } else { | 1344 | } else { |
1345 | } | 1345 | } |
1346 | dasm_put(Dst, 6758, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); | 1346 | dasm_put(Dst, 6758, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); |
diff --git a/src/buildvm_x86.dasc b/src/buildvm_x86.dasc index 31845526..36151318 100644 --- a/src/buildvm_x86.dasc +++ b/src/buildvm_x86.dasc | |||
@@ -1211,7 +1211,7 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) | |||
1211 | |.endmacro | 1211 | |.endmacro |
1212 | | | 1212 | | |
1213 | |.macro .ffunc_nnsse, name | 1213 | |.macro .ffunc_nnsse, name |
1214 | | .ffunc_1 name | 1214 | | .ffunc_2 name |
1215 | | cmp dword [BASE+4], LJ_TISNUM; ja ->fff_fallback | 1215 | | cmp dword [BASE+4], LJ_TISNUM; ja ->fff_fallback |
1216 | | cmp dword [BASE+12], LJ_TISNUM; ja ->fff_fallback | 1216 | | cmp dword [BASE+12], LJ_TISNUM; ja ->fff_fallback |
1217 | | movsd xmm0, qword [BASE] | 1217 | | movsd xmm0, qword [BASE] |
diff --git a/src/buildvm_x86.h b/src/buildvm_x86.h index 6f0b6090..e833c3c3 100644 --- a/src/buildvm_x86.h +++ b/src/buildvm_x86.h | |||
@@ -1265,7 +1265,7 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) | |||
1265 | } | 1265 | } |
1266 | dasm_put(Dst, 4858, 2+1, LJ_TISNUM, LJ_TISNUM); | 1266 | dasm_put(Dst, 4858, 2+1, LJ_TISNUM, LJ_TISNUM); |
1267 | if (sse) { | 1267 | if (sse) { |
1268 | dasm_put(Dst, 4910, 1+1, LJ_TISNUM, LJ_TISNUM); | 1268 | dasm_put(Dst, 4910, 2+1, LJ_TISNUM, LJ_TISNUM); |
1269 | } else { | 1269 | } else { |
1270 | dasm_put(Dst, 4957, 2+1, LJ_TISNUM, LJ_TISNUM); | 1270 | dasm_put(Dst, 4957, 2+1, LJ_TISNUM, LJ_TISNUM); |
1271 | } | 1271 | } |
@@ -1404,31 +1404,31 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) | |||
1404 | } | 1404 | } |
1405 | dasm_put(Dst, 6982); | 1405 | dasm_put(Dst, 6982); |
1406 | if (sse) { | 1406 | if (sse) { |
1407 | dasm_put(Dst, 6993, 1+1, LJ_TISNUM, LJ_TISNUM); | 1407 | dasm_put(Dst, 6993, 2+1, LJ_TISNUM, LJ_TISNUM); |
1408 | } else { | 1408 | } else { |
1409 | dasm_put(Dst, 7067, 2+1, LJ_TISNUM, LJ_TISNUM); | 1409 | dasm_put(Dst, 7067, 2+1, LJ_TISNUM, LJ_TISNUM); |
1410 | } | 1410 | } |
1411 | dasm_put(Dst, 7133); | 1411 | dasm_put(Dst, 7133); |
1412 | if (sse) { | 1412 | if (sse) { |
1413 | dasm_put(Dst, 7142, 1+1, LJ_TISNUM, LJ_TISNUM); | 1413 | dasm_put(Dst, 7142, 2+1, LJ_TISNUM, LJ_TISNUM); |
1414 | } else { | 1414 | } else { |
1415 | dasm_put(Dst, 7216, 2+1, LJ_TISNUM, LJ_TISNUM); | 1415 | dasm_put(Dst, 7216, 2+1, LJ_TISNUM, LJ_TISNUM); |
1416 | } | 1416 | } |
1417 | dasm_put(Dst, 7282); | 1417 | dasm_put(Dst, 7282); |
1418 | if (sse) { | 1418 | if (sse) { |
1419 | dasm_put(Dst, 7292, 1+1, LJ_TISNUM, LJ_TISNUM); | 1419 | dasm_put(Dst, 7292, 2+1, LJ_TISNUM, LJ_TISNUM); |
1420 | } else { | 1420 | } else { |
1421 | dasm_put(Dst, 7366, 2+1, LJ_TISNUM, LJ_TISNUM); | 1421 | dasm_put(Dst, 7366, 2+1, LJ_TISNUM, LJ_TISNUM); |
1422 | } | 1422 | } |
1423 | dasm_put(Dst, 7432); | 1423 | dasm_put(Dst, 7432); |
1424 | if (sse) { | 1424 | if (sse) { |
1425 | dasm_put(Dst, 7442, 1+1, LJ_TISNUM, LJ_TISNUM); | 1425 | dasm_put(Dst, 7442, 2+1, LJ_TISNUM, LJ_TISNUM); |
1426 | } else { | 1426 | } else { |
1427 | dasm_put(Dst, 7516, 2+1, LJ_TISNUM, LJ_TISNUM); | 1427 | dasm_put(Dst, 7516, 2+1, LJ_TISNUM, LJ_TISNUM); |
1428 | } | 1428 | } |
1429 | dasm_put(Dst, 7582); | 1429 | dasm_put(Dst, 7582); |
1430 | if (sse) { | 1430 | if (sse) { |
1431 | dasm_put(Dst, 7591, 1+1, LJ_TISNUM, LJ_TISNUM); | 1431 | dasm_put(Dst, 7591, 2+1, LJ_TISNUM, LJ_TISNUM); |
1432 | } else { | 1432 | } else { |
1433 | dasm_put(Dst, 7665, 2+1, LJ_TISNUM, LJ_TISNUM); | 1433 | dasm_put(Dst, 7665, 2+1, LJ_TISNUM, LJ_TISNUM); |
1434 | } | 1434 | } |