kernal function single variable

Anybody know if I pass a single variable to a kernel, are they pass by value and stored in registers automatically?
Seems we dont create a host memory for single variable.

eg

int a = 1;

testkernel<<<16,16>>> (a);

Stored in shared memory IIRC.