From 5e51a3a7b0ff7044c60a57afc66738699f38e076 Mon Sep 17 00:00:00 2001 From: Matthias Andreas Benkard Date: Wed, 13 Aug 2008 00:25:48 +0200 Subject: MLKLexicalContext(MLKLLVMCompilation): Add value and function property setter methods. --- MLKLexicalContext-MLKLLVMCompilation.h | 4 ++++ MLKLexicalContext-MLKLLVMCompilation.mm | 28 ++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/MLKLexicalContext-MLKLLVMCompilation.h b/MLKLexicalContext-MLKLLVMCompilation.h index 37e80dc..0e9056b 100644 --- a/MLKLexicalContext-MLKLLVMCompilation.h +++ b/MLKLexicalContext-MLKLLVMCompilation.h @@ -38,5 +38,9 @@ using namespace llvm; -(Value *) closureDataPointerForSymbol:(id)name; -(Value *) bindingForSymbol:(id)name; -(Value *) valueForSymbol:(id)name; +-(void) setFunctionCell:(Value *)cellPtr forSymbol:(id)name; +-(void) setClosureDataPointer:(Value *)pointer forSymbol:(id)name; +-(void) setBinding:(Value *)binding forSymbol:(id)name; +-(void) setValue:(Value *)value forSymbol:(id)name; #endif @end diff --git a/MLKLexicalContext-MLKLLVMCompilation.mm b/MLKLexicalContext-MLKLLVMCompilation.mm index 7e81ccb..8be1f24 100644 --- a/MLKLexicalContext-MLKLLVMCompilation.mm +++ b/MLKLexicalContext-MLKLLVMCompilation.mm @@ -72,4 +72,32 @@ using namespace std; key:@"LLVM.variable-value"] pointerValue]; } + +-(void) setFunctionCell:(Value *)cellPtr forSymbol:(id)name +{ + [self setDeepProperty:[NSValue valueWithPointer:cellPtr] + forFunction:name + key:@"LLVM.function-cell"]; +} + +-(void) setClosureDataPointer:(Value *)pointer forSymbol:(id)name +{ + [self setDeepProperty:[NSValue valueWithPointer:pointer] + forFunction:name + key:@"LLVM.closure-data"]; +} + +-(void) setBinding:(Value *)binding forSymbol:(id)name +{ + [self setDeepProperty:[NSValue valueWithPointer:binding] + forVariable:name + key:@"LLVM.variable-binding"]; +} + +-(void) setValue:(Value *)value forSymbol:(id)name +{ + [self setDeepProperty:[NSValue valueWithPointer:value] + forVariable:name + key:@"LLVM.variable-value"]; +} @end -- cgit v1.2.3