From c6f3bb87ffbb44d902c4a1f67a71bb108bd01560 Mon Sep 17 00:00:00 2001 From: Ian Rogers Date: Wed, 21 Mar 2012 20:40:33 -0700 Subject: Further x86 progress and image creation. Change-Id: Idafadfc55228541536f25d2c92d40d9e0510b602 --- src/compiler/codegen/CodegenFactory.cc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/compiler/codegen/CodegenFactory.cc') diff --git a/src/compiler/codegen/CodegenFactory.cc b/src/compiler/codegen/CodegenFactory.cc index e1df1a5b45..1b64af2b37 100644 --- a/src/compiler/codegen/CodegenFactory.cc +++ b/src/compiler/codegen/CodegenFactory.cc @@ -273,14 +273,16 @@ void storeValueWide(CompilationUnit* cUnit, RegLocation rlDest, */ void markGCCard(CompilationUnit* cUnit, int valReg, int tgtAddrReg) { -#if defined(TARGET_X86) - UNIMPLEMENTED(WARNING) << "markGCCard"; -#else int regCardBase = oatAllocTemp(cUnit); int regCardNo = oatAllocTemp(cUnit); LIR* branchOver = opCmpImmBranch(cUnit, kCondEq, valReg, 0, NULL); +#if !defined(TARGET_X86) loadWordDisp(cUnit, rSELF, Thread::CardTableOffset().Int32Value(), regCardBase); +#else + newLIR2(cUnit, kX86Mov32RT, regCardBase, + Thread::CardTableOffset().Int32Value()); +#endif opRegRegImm(cUnit, kOpLsr, regCardNo, tgtAddrReg, GC_CARD_SHIFT); storeBaseIndexed(cUnit, regCardBase, regCardNo, regCardBase, 0, kUnsignedByte); @@ -288,7 +290,6 @@ void markGCCard(CompilationUnit* cUnit, int valReg, int tgtAddrReg) branchOver->target = (LIR*)target; oatFreeTemp(cUnit, regCardBase); oatFreeTemp(cUnit, regCardNo); -#endif } /* Utilities to load the current Method* */ -- cgit v1.2.3-59-g8ed1b