Date: Thu, 21 Aug 2014 19:00:30 GMT From: dpl@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r272791 - soc2014/dpl/netmap-ipfwjit/sys/netpfil/ipfw Message-ID: <201408211900.s7LJ0UbO046574@socsvn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: dpl Date: Thu Aug 21 19:00:30 2014 New Revision: 272791 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=272791 Log: Corrected some GEP instructions, and removed the args and chain from the object instantiation. Modified: soc2014/dpl/netmap-ipfwjit/sys/netpfil/ipfw/jit.cc Modified: soc2014/dpl/netmap-ipfwjit/sys/netpfil/ipfw/jit.cc ============================================================================== --- soc2014/dpl/netmap-ipfwjit/sys/netpfil/ipfw/jit.cc Thu Aug 21 18:26:32 2014 (r272790) +++ soc2014/dpl/netmap-ipfwjit/sys/netpfil/ipfw/jit.cc Thu Aug 21 19:00:30 2014 (r272791) @@ -298,11 +298,11 @@ // m = args->m (idx: 0) m = irb.CreateAlloca(mbufPtrTy); - irb.CreateStore(irb.CreateInBoundsGEP(args, ConstantInt::get(int32Ty, 0)), m); + irb.CreateStore(irb.CreateInBoundsGEP(irb.CreateLoad(args), ConstantInt::get(int32Ty, 0)), m); // ip = (struct ip *)((m)->m_data) (idx: 2) ip = irb.CreateAlloca(ipPtrTy); - irb.CreateStore(irb.CreateBitCast(irb.CreateInBoundsGEP(args, ConstantInt::get(int32Ty, 2)), ipPtrTy), ip); + irb.CreateStore(irb.CreateBitCast(irb.CreateInBoundsGEP(irb.CreateLoad(args), ConstantInt::get(int32Ty, 2)), ipPtrTy), ip); #ifdef __FreeBSD__ ucred_cache = irb.CreateAlloca(ucredPtrTy); // Init: NULL if type ucred. @@ -330,7 +330,7 @@ proto = irb.CreateAlloca(int8Ty); irb.CreateStore(ConstantInt::get(int8Ty, 0), proto); // args->f_id.proto = 0 (idx: 6, 5) - irb.CreateStore(ConstantInt::get(int8Ty, 0), irb.CreateInBoundsGEP(args, {ConstantInt::get(int32Ty, 6), ConstantInt::get(int32Ty, 5)} )); + irb.CreateStore(ConstantInt::get(int8Ty, 0), irb.CreateInBoundsGEP(irb.CreateLoad(args), {ConstantInt::get(int32Ty, 6), ConstantInt::get(int32Ty, 5)} )); src_port = irb.CreateAlloca(int16Ty); irb.CreateStore(ConstantInt::get(int16Ty, 0), src_port); @@ -703,7 +703,7 @@ } public: - ipfwJIT(struct ip_fw_args *args, struct ip_fw_chain *chain): irb(con) + ipfwJIT(): irb(con) { // Create the module and load the code. mod = loadbc("ip_fw_rules.bc"); @@ -731,7 +731,7 @@ // Get struct types, and store vars setEnv(); - allocaAndInit(args, chain); + allocaAndInit(); emit_check_tag(); emit_pullup_failed(); @@ -843,7 +843,7 @@ InitializeNativeTarget(); LLVMLinkInJIT(); - ipfwJIT compiler(args, chain); + ipfwJIT compiler; // Fill up needed local variables. compiler.emit_lookpkt_call();
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201408211900.s7LJ0UbO046574>
