def push_primitive_constant(self, TYPE, value): ilasm = self.ilasm if TYPE is ootype.Void: pass elif TYPE is ootype.Bool: ilasm.opcode('ldc.i4', str(int(value))) elif TYPE is ootype.Char or TYPE is ootype.UniChar: ilasm.opcode('ldc.i4', ord(value)) elif TYPE is ootype.Float: if isinf(value): if value < 0.0: ilasm.opcode('ldc.r8', '(00 00 00 00 00 00 f0 ff)') else: ilasm.opcode('ldc.r8', '(00 00 00 00 00 00 f0 7f)') elif isnan(value): ilasm.opcode('ldc.r8', '(00 00 00 00 00 00 f8 ff)') else: ilasm.opcode('ldc.r8', repr(value)) elif isinstance(value, CDefinedIntSymbolic): ilasm.opcode('ldc.i4', DEFINED_INT_SYMBOLICS[value.expr]) elif TYPE in (ootype.Signed, ootype.Unsigned, rffi.SHORT): ilasm.opcode('ldc.i4', str(value)) elif TYPE in (ootype.SignedLongLong, ootype.UnsignedLongLong): ilasm.opcode('ldc.i8', str(value)) elif TYPE in (ootype.String, ootype.Unicode): if value._str is None: ilasm.opcode('ldnull') else: ilasm.opcode("ldstr", string_literal(value._str)) else: assert False, "Unexpected constant type"
def stderr(self, msg, cond=True, writeline=True): from pypy.translator.cli.support import string_literal if cond: self.load_stderr() self.opcode("ldstr", string_literal(msg)) self.write_stderr(writeline)
def stderr(self, msg, cond=True, writeline=True): from pypy.translator.cli.support import string_literal if cond: self.load_stderr() self.opcode('ldstr', string_literal(msg)) self.write_stderr(writeline)
def stderr(self, msg, cond=True): from pypy.translator.cli.support import string_literal if cond: self.call('class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()') self.opcode('ldstr', string_literal(msg)) self.call_method('void class [mscorlib]System.IO.TextWriter::WriteLine(string)', virtual=True)