#include <stdio.h>
unsigned xor_all = 0;
unsigned xor_bit[32] = {0};
int main(void)
{
int i, j;
int n, in, out1, out2;
scanf("%i", &n);
for (i = 0; i < n; ++i) {
scanf("%i", &in);
xor_all ^= in;
for (j = 0; j < 32; ++j) {
if (in & (1 << j))
xor_bit[j] ^= in;
}
}
for (j = 0; j < 32; ++j) {
if (xor_all & (1 << j)) {
out1 = xor_bit[j];
out2 = xor_all ^ xor_bit[j];
printf("%d %d\n", out1, out2);
break;
}
}
return 0;
}
биты адреса начинаются с 13-го, т.е. выравнивание по границе страницы
Base Address (BA): Base address of register memory space. This represents a
memory space for support of 32 ports. For HBAs that support fewer than 32-ports,
more bits are allowed to be RW, and therefore less memory space is consumed. For
HBAs that have vendor specific space at the end of the port specific memory space,
more bits are allowed to be RO such that more memory space is consumed.
для возможности, например, тестово запустить прогу на виртуальной Cisc'е, когда гость — обычная x86-ая машина
Простите, что вы имели в виду?
То, что с Qemu можно исполнить код специфичный для процессора, который физически отсутствует на хостовой машине.
Я всегда считал, что KQEMU — быстрая эмуляция(проприетарная технология)
На сайте проекта QEMU до сих указано именно «обеспечение возможности запуска», а не ускорение работы эмулятора
для возможности, например, тестово запустить прогу на виртуальной Cisc'е, когда гость — обычная x86-ая машина
не для того QEMU интегрировали в KVM чтобы летало
Реализацию шаблонных методов / функций нельзя выносить в отдельный translation unit
template <typename T>
class Q
{
T t;
void f(T);
};
#include "q.h"
template <typename T> void Q<T>::f(T v)
{
t += v;
}
template class Q<int>;
$ g++ q.cpp -g -c -o q.o
$ objdump --demangle -d q.o
q.o: file format elf64-x86-64
Disassembly of section .text._ZN1QIiE1fEi:
0000000000000000 <Q<int>::f(int)>:
0: 55 push %rbp
1: 48 89 e5 mov %rsp,%rbp
4: 48 89 7d f8 mov %rdi,-0x8(%rbp)
8: 89 75 f4 mov %esi,-0xc(%rbp)
b: 48 8b 45 f8 mov -0x8(%rbp),%rax
f: 8b 00 mov (%rax),%eax
11: 89 c2 mov %eax,%edx
13: 03 55 f4 add -0xc(%rbp),%edx
16: 48 8b 45 f8 mov -0x8(%rbp),%rax
1a: 89 10 mov %edx,(%rax)
1c: 5d pop %rbp
1d: c3 retq