Class: LLVM::GenericValue
- Inherits:
-
Object
- Object
- LLVM::GenericValue
- Defined in:
- lib/llvm/execution_engine.rb
Class Method Summary collapse
-
.from_b(b) ⇒ Object
Creates a GenericValue from a Ruby boolean.
- .from_d(val) ⇒ Object
-
.from_f(f) ⇒ Object
Creates a Generic Value from a Float.
-
.from_i(i, options = {}) ⇒ Object
Creates a Generic Value from an integer.
-
.from_ptr(ptr) ⇒ Object
Casts an FFI::Pointer pointing to a GenericValue to an instance.
-
.from_value_ptr(ptr) ⇒ Object
Creates a GenericValue from an FFI::Pointer pointing to some arbitrary value.
Instance Method Summary collapse
- #dispose ⇒ Object
-
#to_b ⇒ Object
Converts a GenericValue to a Ruby boolean.
-
#to_f(type = LLVM::Float.type) ⇒ Object
Converts a GenericValue to a Ruby Float.
-
#to_i(signed = true) ⇒ Object
Converts a GenericValue to a Ruby Integer.
- #to_ptr ⇒ Object
- #to_value_ptr ⇒ Object
Class Method Details
.from_b(b) ⇒ Object
Creates a GenericValue from a Ruby boolean.
280 281 282 |
# File 'lib/llvm/execution_engine.rb', line 280 def self.from_b(b) from_i(b ? 1 : 0, LLVM::Int1, false) end |
.from_d(val) ⇒ Object
275 276 277 |
# File 'lib/llvm/execution_engine.rb', line 275 def self.from_d(val) from_ptr(C.create_generic_value_of_float(LLVM::Double, val)) end |
.from_f(f) ⇒ Object
Creates a Generic Value from a Float.
271 272 273 |
# File 'lib/llvm/execution_engine.rb', line 271 def self.from_f(f) from_ptr(C.create_generic_value_of_float(LLVM::Float, f)) end |
.from_i(i, options = {}) ⇒ Object
Creates a Generic Value from an integer. Type is the size of integer to create (ex. Int32, Int8, etc.)
264 265 266 267 268 |
# File 'lib/llvm/execution_engine.rb', line 264 def self.from_i(i, = {}) type = .fetch(:type, LLVM::Int) signed = .fetch(:signed, true) from_ptr(C.create_generic_value_of_int(type, i, signed ? 1 : 0)) end |
.from_ptr(ptr) ⇒ Object
Casts an FFI::Pointer pointing to a GenericValue to an instance.
249 250 251 252 253 254 |
# File 'lib/llvm/execution_engine.rb', line 249 def self.from_ptr(ptr) return if ptr.null? val = allocate val.instance_variable_set(:@ptr, ptr) val end |
.from_value_ptr(ptr) ⇒ Object
Creates a GenericValue from an FFI::Pointer pointing to some arbitrary value.
285 286 287 |
# File 'lib/llvm/execution_engine.rb', line 285 def self.from_value_ptr(ptr) from_ptr(LLVM::C.create_generic_value_of_pointer(ptr)) end |
Instance Method Details
#dispose ⇒ Object
256 257 258 259 260 |
# File 'lib/llvm/execution_engine.rb', line 256 def dispose return if @ptr.nil? C.dispose_generic_value(@ptr) @ptr = nil end |
#to_b ⇒ Object
Converts a GenericValue to a Ruby boolean.
302 303 304 |
# File 'lib/llvm/execution_engine.rb', line 302 def to_b to_i(false) != 0 end |
#to_f(type = LLVM::Float.type) ⇒ Object
Converts a GenericValue to a Ruby Float.
297 298 299 |
# File 'lib/llvm/execution_engine.rb', line 297 def to_f(type = LLVM::Float.type) C.generic_value_to_float(type, self) end |
#to_i(signed = true) ⇒ Object
Converts a GenericValue to a Ruby Integer.
290 291 292 293 294 |
# File 'lib/llvm/execution_engine.rb', line 290 def to_i(signed = true) v = C.generic_value_to_int(self, signed ? 1 : 0) v -= 2**64 if signed and v >= 2**63 v end |
#to_ptr ⇒ Object
244 245 246 |
# File 'lib/llvm/execution_engine.rb', line 244 def to_ptr @ptr end |
#to_value_ptr ⇒ Object
306 307 308 |
# File 'lib/llvm/execution_engine.rb', line 306 def to_value_ptr C.generic_value_to_pointer(self) end |