diff options
| author | Matthias Andreas Benkard <matthias@benkard.de> | 2008-08-13 00:25:48 +0200 | 
|---|---|---|
| committer | Matthias Andreas Benkard <matthias@benkard.de> | 2008-08-13 00:25:48 +0200 | 
| commit | 5e51a3a7b0ff7044c60a57afc66738699f38e076 (patch) | |
| tree | 788938c3484c910cd32fb09cfb6d44f4114544b6 | |
| parent | b9311b05909f586b364e771b3e0f48ddfdfd0d76 (diff) | |
MLKLexicalContext(MLKLLVMCompilation): Add value and function property setter methods.
| -rw-r--r-- | MLKLexicalContext-MLKLLVMCompilation.h | 4 | ||||
| -rw-r--r-- | MLKLexicalContext-MLKLLVMCompilation.mm | 28 | 
2 files changed, 32 insertions, 0 deletions
| 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 | 
