x64: Fix lightuserdata comparisons.

This commit is contained in:
Mike Pall 2011-11-04 14:48:44 +01:00
parent 7b0157aa99
commit f1849fa928
3 changed files with 1150 additions and 1146 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -4022,6 +4022,10 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
| je <1 // Same GCobjs or pvalues?
| cmp RB, LJ_TISTABUD
| ja <2 // Different objects and not table/ud?
|.if X64
| cmp RB, LJ_TUDATA // And not 64 bit lightuserdata.
| jb <2
|.endif
|
| // Different tables or userdatas. Need to check __eq metamethod.
| // Field metatable must be at same offset for GCtab and GCudata!