mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-03-03 11:03:14 +01:00
Always pass an address expression (not a var expression) to asm operands of
type Arg_Memory.
This fixes the following code:
{{{
void f(real x) { asm { fld x[RBP]; } }
void g(int x) { asm { mov EAX, x[RBP]; } }
}}}
This commit is contained in:
@@ -415,6 +415,26 @@ assert(0);
|
||||
asmblock->clobs.insert(clobstr);
|
||||
}
|
||||
|
||||
if (Logger::enabled()) {
|
||||
typedef std::deque<LLValue*>::iterator It;
|
||||
{
|
||||
Logger::println("Output values:");
|
||||
LOG_SCOPE
|
||||
size_t i = 0;
|
||||
for (It I = output_values.begin(), E = output_values.end(); I != E; ++I) {
|
||||
Logger::cout() << "Out " << i++ << " = " << **I << '\n';
|
||||
}
|
||||
}
|
||||
{
|
||||
Logger::println("Input values:");
|
||||
LOG_SCOPE
|
||||
size_t i = 0;
|
||||
for (It I = input_values.begin(), E = input_values.end(); I != E; ++I) {
|
||||
Logger::cout() << "In " << i++ << " = " << **I << '\n';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// excessive commas are removed later...
|
||||
|
||||
// push asm statement
|
||||
|
||||
Reference in New Issue
Block a user