зеркало из https://github.com/mozilla/pjs.git
LoadString now has JSString* as second operand
This commit is contained in:
Родитель
9acc5cacea
Коммит
2a42ae2d9b
|
@ -149,7 +149,7 @@ namespace ICG {
|
|||
Register ICodeGenerator::loadString(String &value)
|
||||
{
|
||||
Register dest = getRegister();
|
||||
LoadString *instr = new LoadString(dest, &value);
|
||||
LoadString *instr = new LoadString(dest, new JSString(value));
|
||||
iCode->push_back(instr);
|
||||
return dest;
|
||||
}
|
||||
|
|
|
@ -303,7 +303,7 @@ JSValue Context::interpret(ICodeModule* iCode, const JSValues& args)
|
|||
case LOAD_STRING:
|
||||
{
|
||||
LoadString* ls = static_cast<LoadString*>(instruction);
|
||||
(*registers)[dst(ls)] = JSValue(new JSString(src1(ls)));
|
||||
(*registers)[dst(ls)] = JSValue(src1(ls));
|
||||
}
|
||||
break;
|
||||
case BRANCH:
|
||||
|
|
|
@ -89,7 +89,7 @@ $ops{"LOAD_STRING"} =
|
|||
{
|
||||
super => "Instruction_2",
|
||||
rem => "dest, immediate value (string)",
|
||||
params => [ ("Register", "String" ) ]
|
||||
params => [ ("Register", "JSString*" ) ]
|
||||
};
|
||||
$ops{"LOAD_NAME"} =
|
||||
{
|
||||
|
@ -415,7 +415,7 @@ sub get_print_body {
|
|||
push (@oplist, "\"R\" << mOp$op");
|
||||
} elsif ($type eq "Label*") {
|
||||
push (@oplist, "\"Offset \" << mOp$op->mOffset");
|
||||
} elsif ($type =~ /StringAtom/) {
|
||||
} elsif ($type =~ /String/) {
|
||||
push (@oplist, "\"'\" << *mOp$op << \"'\"");
|
||||
} else {
|
||||
push (@oplist, "mOp$op");
|
||||
|
|
|
@ -43,6 +43,7 @@ namespace JavaScript {
|
|||
namespace VM {
|
||||
|
||||
using JSTypes::JSValues;
|
||||
using JSTypes::JSString;
|
||||
|
||||
enum ICodeOp {
|
||||
ADD, /* dest, source1, source2 */
|
||||
|
@ -637,11 +638,11 @@ namespace VM {
|
|||
}
|
||||
};
|
||||
|
||||
class LoadString : public Instruction_2<Register, String *> {
|
||||
class LoadString : public Instruction_2<Register, JSString*> {
|
||||
public:
|
||||
/* dest, immediate value (string) */
|
||||
LoadString (Register aOp1, String *aOp2) :
|
||||
Instruction_2<Register, String *>
|
||||
LoadString (Register aOp1, JSString* aOp2) :
|
||||
Instruction_2<Register, JSString*>
|
||||
(LOAD_STRING, aOp1, aOp2) {};
|
||||
virtual Formatter& print(Formatter& f) {
|
||||
f << opcodeNames[LOAD_STRING] << "\t" << "R" << mOp1 << ", " << "'" << *mOp2 << "'";
|
||||
|
|
|
@ -149,7 +149,7 @@ namespace ICG {
|
|||
Register ICodeGenerator::loadString(String &value)
|
||||
{
|
||||
Register dest = getRegister();
|
||||
LoadString *instr = new LoadString(dest, &value);
|
||||
LoadString *instr = new LoadString(dest, new JSString(value));
|
||||
iCode->push_back(instr);
|
||||
return dest;
|
||||
}
|
||||
|
|
|
@ -303,7 +303,7 @@ JSValue Context::interpret(ICodeModule* iCode, const JSValues& args)
|
|||
case LOAD_STRING:
|
||||
{
|
||||
LoadString* ls = static_cast<LoadString*>(instruction);
|
||||
(*registers)[dst(ls)] = JSValue(new JSString(src1(ls)));
|
||||
(*registers)[dst(ls)] = JSValue(src1(ls));
|
||||
}
|
||||
break;
|
||||
case BRANCH:
|
||||
|
|
|
@ -43,6 +43,7 @@ namespace JavaScript {
|
|||
namespace VM {
|
||||
|
||||
using JSTypes::JSValues;
|
||||
using JSTypes::JSString;
|
||||
|
||||
enum ICodeOp {
|
||||
ADD, /* dest, source1, source2 */
|
||||
|
@ -637,11 +638,11 @@ namespace VM {
|
|||
}
|
||||
};
|
||||
|
||||
class LoadString : public Instruction_2<Register, String *> {
|
||||
class LoadString : public Instruction_2<Register, JSString*> {
|
||||
public:
|
||||
/* dest, immediate value (string) */
|
||||
LoadString (Register aOp1, String *aOp2) :
|
||||
Instruction_2<Register, String *>
|
||||
LoadString (Register aOp1, JSString* aOp2) :
|
||||
Instruction_2<Register, JSString*>
|
||||
(LOAD_STRING, aOp1, aOp2) {};
|
||||
virtual Formatter& print(Formatter& f) {
|
||||
f << opcodeNames[LOAD_STRING] << "\t" << "R" << mOp1 << ", " << "'" << *mOp2 << "'";
|
||||
|
|
|
@ -89,7 +89,7 @@ $ops{"LOAD_STRING"} =
|
|||
{
|
||||
super => "Instruction_2",
|
||||
rem => "dest, immediate value (string)",
|
||||
params => [ ("Register", "String" ) ]
|
||||
params => [ ("Register", "JSString*" ) ]
|
||||
};
|
||||
$ops{"LOAD_NAME"} =
|
||||
{
|
||||
|
@ -415,7 +415,7 @@ sub get_print_body {
|
|||
push (@oplist, "\"R\" << mOp$op");
|
||||
} elsif ($type eq "Label*") {
|
||||
push (@oplist, "\"Offset \" << mOp$op->mOffset");
|
||||
} elsif ($type =~ /StringAtom/) {
|
||||
} elsif ($type =~ /String/) {
|
||||
push (@oplist, "\"'\" << *mOp$op << \"'\"");
|
||||
} else {
|
||||
push (@oplist, "mOp$op");
|
||||
|
|
Загрузка…
Ссылка в новой задаче